1
1
mirror of https://github.com/go-gitea/gitea synced 2024-12-26 10:34:26 +00:00
gitea/public/vendor/plugins/codemirror/mode/vue/vue.js
Michael Lustfield a915a09e4f Moved vendored js/css into public/vendor and documented sources (#1484) (#2241)
* Cleaning up public/ and documenting js/css libs.

This commit mostly addresses #1484 by moving vendor'ed plugins into a
vendor/ directory and documenting their upstream source and license in
vendor/librejs.html.

This also proves gitea is using only open source js/css libraries which
helps toward reaching #1524.

* Removing unused css file.

The version of this file in use is located at:
  vendor/plugins/highlight/github.css

* Cleaned up librejs.html and added javascript header

A SafeJS function was added to templates/helper.go to allow keeping
comments inside of javascript.

A javascript comment was added in the header of templates/base/head.tmpl
to mark all non-inline source as free.

The librejs.html file was updated to meet the current librejs spec. I
have now verified that the librejs plugin detects most of the scripts
included in gitea and suspect the non-free detections are the result of
a bug in the plugin. I believe this commit is enough to meet the C0.0
requirement of #1534.

* Updating SafeJS function per lint suggestion

* Added VERSIONS file, per request
2017-08-23 16:58:05 +02:00

70 lines
2.4 KiB
JavaScript

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/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("../jade/jade"),
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",
"../jade/jade",
"../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"]
],
style: [
["lang", /^stylus$/i, "stylus"],
["lang", /^sass$/i, "sass"],
["type", /^(text\/)?(x-)?styl(us)?$/i, "stylus"],
["type", /^text\/sass/i, "sass"]
],
template: [
["lang", /^vue-template$/i, "vue"],
["lang", /^jade$/i, "jade"],
["lang", /^handlebars$/i, "handlebars"],
["type", /^(text\/)?(x-)?jade$/i, "jade"],
["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", "jade", "handlebars");
CodeMirror.defineMIME("script/x-vue", "vue");
});