laravel / nova-issues

554 stars 35 forks source link

Twig/html support in the code field. #1064

Closed dkulyk closed 5 years ago

dkulyk commented 5 years ago

Description:

Twig templates can using for editing template for pages/emails/other in admin side.

Posible patch

htmltwig need for mixin html and twig modes.

diff --git a/resources/js/components/Detail/CodeField.vue b/resources/js/components/Detail/CodeField.vue
index af3c09b..7d2867b 100644
--- a/resources/js/components/Detail/CodeField.vue
+++ b/resources/js/components/Detail/CodeField.vue
@@ -82,6 +82,12 @@ import 'codemirror/mode/xml/xml'
 import 'codemirror/mode/vue/vue'
 import 'codemirror/mode/dockerfile/dockerfile'
 import 'codemirror/keymap/vim'
+import 'codemirror/mode/twig/twig'
+import 'codemirror/mode/htmlmixed/htmlmixed'
+
+CodeMirror.defineMode("htmltwig", function(config, parserConfig) {
+    return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || "text/html"), CodeMirror.getMode(config, "twig"));
+});

 export default {
     props: ['resource', 'resourceName', 'resourceId', 'field'],
diff --git a/resources/js/components/Form/CodeField.vue b/resources/js/components/Form/CodeField.vue
index b3c5ec1..8b707cb 100644
--- a/resources/js/components/Form/CodeField.vue
+++ b/resources/js/components/Form/CodeField.vue
@@ -84,9 +84,15 @@ import 'codemirror/mode/vue/vue'
 import 'codemirror/mode/dockerfile/dockerfile'
 import 'codemirror/keymap/vim'
 import 'codemirror/mode/sql/sql'
+import 'codemirror/mode/twig/twig'
+import 'codemirror/mode/htmlmixed/htmlmixed'

 import { FormField, HandlesValidationErrors } from 'laravel-nova'

+CodeMirror.defineMode("htmltwig", function(config, parserConfig) {
+    return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || "text/html"), CodeMirror.getMode(config, "twig"));
+});
+
 export default {
     mixins: [HandlesValidationErrors, FormField],
davidhemphill commented 5 years ago

This has been fixed and will be included in the next release. 👍