mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-27 10:01:37 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // CodeMirror, copyright (c) by Marijn Haverbeke and others
 | |
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE
 | |
| 
 | |
| (function (mod) {
 | |
|   "use strict";
 | |
|   if (typeof exports === "object" && typeof module === "object") {// CommonJS
 | |
|     mod(require("../../lib/codemirror"),
 | |
|         require("../../addon/mode/overlay"),
 | |
|         require("../xml/xml"),
 | |
|         require("../javascript/javascript"),
 | |
|         require("../coffeescript/coffeescript"),
 | |
|         require("../css/css"),
 | |
|         require("../sass/sass"),
 | |
|         require("../stylus/stylus"),
 | |
|         require("../pug/pug"),
 | |
|         require("../handlebars/handlebars"));
 | |
|   } else if (typeof define === "function" && define.amd) { // AMD
 | |
|     define(["../../lib/codemirror",
 | |
|             "../../addon/mode/overlay",
 | |
|             "../xml/xml",
 | |
|             "../javascript/javascript",
 | |
|             "../coffeescript/coffeescript",
 | |
|             "../css/css",
 | |
|             "../sass/sass",
 | |
|             "../stylus/stylus",
 | |
|             "../pug/pug",
 | |
|             "../handlebars/handlebars"], mod);
 | |
|   } else { // Plain browser env
 | |
|     mod(CodeMirror);
 | |
|   }
 | |
| })(function (CodeMirror) {
 | |
|   var tagLanguages = {
 | |
|     script: [
 | |
|       ["lang", /coffee(script)?/, "coffeescript"],
 | |
|       ["type", /^(?:text|application)\/(?:x-)?coffee(?:script)?$/, "coffeescript"],
 | |
|       ["lang", /^babel$/, "javascript"],
 | |
|       ["type", /^text\/babel$/, "javascript"],
 | |
|       ["type", /^text\/ecmascript-\d+$/, "javascript"]
 | |
|     ],
 | |
|     style: [
 | |
|       ["lang", /^stylus$/i, "stylus"],
 | |
|       ["lang", /^sass$/i, "sass"],
 | |
|       ["lang", /^less$/i, "text/x-less"],
 | |
|       ["lang", /^scss$/i, "text/x-scss"],
 | |
|       ["type", /^(text\/)?(x-)?styl(us)?$/i, "stylus"],
 | |
|       ["type", /^text\/sass/i, "sass"],
 | |
|       ["type", /^(text\/)?(x-)?scss$/i, "text/x-scss"],
 | |
|       ["type", /^(text\/)?(x-)?less$/i, "text/x-less"]
 | |
|     ],
 | |
|     template: [
 | |
|       ["lang", /^vue-template$/i, "vue"],
 | |
|       ["lang", /^pug$/i, "pug"],
 | |
|       ["lang", /^handlebars$/i, "handlebars"],
 | |
|       ["type", /^(text\/)?(x-)?pug$/i, "pug"],
 | |
|       ["type", /^text\/x-handlebars-template$/i, "handlebars"],
 | |
|       [null, null, "vue-template"]
 | |
|     ]
 | |
|   };
 | |
| 
 | |
|   CodeMirror.defineMode("vue-template", function (config, parserConfig) {
 | |
|     var mustacheOverlay = {
 | |
|       token: function (stream) {
 | |
|         if (stream.match(/^\{\{.*?\}\}/)) return "meta mustache";
 | |
|         while (stream.next() && !stream.match("{{", false)) {}
 | |
|         return null;
 | |
|       }
 | |
|     };
 | |
|     return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || "text/html"), mustacheOverlay);
 | |
|   });
 | |
| 
 | |
|   CodeMirror.defineMode("vue", function (config) {
 | |
|     return CodeMirror.getMode(config, {name: "htmlmixed", tags: tagLanguages});
 | |
|   }, "htmlmixed", "xml", "javascript", "coffeescript", "css", "sass", "stylus", "pug", "handlebars");
 | |
| 
 | |
|   CodeMirror.defineMIME("script/x-vue", "vue");
 | |
|   CodeMirror.defineMIME("text/x-vue", "vue");
 | |
| });
 | 
