forked from zhongshaofa/layuimini
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
fc32c7d
commit 30da6bd
Showing
80 changed files
with
26,467 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,342 @@ | ||
"use strict"; | ||
|
||
var os = require("os"); | ||
var gulp = require("gulp"); | ||
var gutil = require("gulp-util"); | ||
var sass = require("gulp-ruby-sass"); | ||
var jshint = require("gulp-jshint"); | ||
var uglify = require("gulp-uglifyjs"); | ||
var rename = require("gulp-rename"); | ||
var concat = require("gulp-concat"); | ||
var notify = require("gulp-notify"); | ||
var header = require("gulp-header"); | ||
var minifycss = require("gulp-minify-css"); | ||
//var jsdoc = require("gulp-jsdoc"); | ||
//var jsdoc2md = require("gulp-jsdoc-to-markdown"); | ||
var pkg = require("./package.json"); | ||
var dateFormat = require("dateformatter").format; | ||
var replace = require("gulp-replace"); | ||
|
||
pkg.name = "Editor.md"; | ||
pkg.today = dateFormat; | ||
|
||
var headerComment = ["/*", | ||
" * <%= pkg.name %>", | ||
" *", | ||
" * @file <%= fileName(file) %> ", | ||
" * @version v<%= pkg.version %> ", | ||
" * @description <%= pkg.description %>", | ||
" * @license MIT License", | ||
" * @author <%= pkg.author %>", | ||
" * {@link <%= pkg.homepage %>}", | ||
" * @updateTime <%= pkg.today('Y-m-d') %>", | ||
" */", | ||
"\r\n"].join("\r\n"); | ||
|
||
var headerMiniComment = "/*! <%= pkg.name %> v<%= pkg.version %> | <%= fileName(file) %> | <%= pkg.description %> | MIT License | By: <%= pkg.author %> | <%= pkg.homepage %> | <%=pkg.today('Y-m-d') %> */\r\n"; | ||
|
||
var scssTask = function(fileName, path) { | ||
|
||
path = path || "scss/"; | ||
|
||
var distPath = "css"; | ||
|
||
return sass(path + fileName + ".scss", { style: "expanded", sourcemap: false, noCache : true }) | ||
.pipe(gulp.dest(distPath)) | ||
.pipe(header(headerComment, {pkg : pkg, fileName : function(file) { | ||
var name = file.path.split(file.base); | ||
return name[1].replace("\\", ""); | ||
}})) | ||
.pipe(gulp.dest(distPath)) | ||
.pipe(rename({ suffix: ".min" })) | ||
.pipe(gulp.dest(distPath)) | ||
.pipe(minifycss()) | ||
.pipe(gulp.dest(distPath)) | ||
.pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) { | ||
var name = file.path.split(file.base); | ||
return name[1].replace("\\", ""); | ||
}})) | ||
.pipe(gulp.dest(distPath)) | ||
.pipe(notify({ message: fileName + ".scss task completed!" })); | ||
}; | ||
|
||
gulp.task("scss", function() { | ||
return scssTask("editormd"); | ||
}); | ||
|
||
gulp.task("scss2", function() { | ||
return scssTask("editormd.preview"); | ||
}); | ||
|
||
gulp.task("scss3", function() { | ||
return scssTask("editormd.logo"); | ||
}); | ||
|
||
gulp.task("js", function() { | ||
return gulp.src("./src/editormd.js") | ||
.pipe(jshint("./.jshintrc")) | ||
.pipe(jshint.reporter("default")) | ||
.pipe(header(headerComment, {pkg : pkg, fileName : function(file) { | ||
var name = file.path.split(file.base); | ||
return name[1].replace(/[\\\/]?/, ""); | ||
}})) | ||
.pipe(gulp.dest("./")) | ||
.pipe(rename({ suffix: ".min" })) | ||
.pipe(uglify()) // {outSourceMap: true, sourceRoot: './'} | ||
.pipe(gulp.dest("./")) | ||
.pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) { | ||
var name = file.path.split(file.base + ( (os.platform() === "win32") ? "\\" : "/") ); | ||
return name[1].replace(/[\\\/]?/, ""); | ||
}})) | ||
.pipe(gulp.dest("./")) | ||
.pipe(notify({ message: "editormd.js task complete" })); | ||
}); | ||
|
||
gulp.task("amd", function() { | ||
var replaceText1 = [ | ||
'var cmModePath = "codemirror/mode/";', | ||
' var cmAddonPath = "codemirror/addon/";', | ||
'', | ||
' var codeMirrorModules = [', | ||
' "jquery", "marked", "prettify",', | ||
' "katex", "raphael", "underscore", "flowchart", "jqueryflowchart", "sequenceDiagram",', | ||
'', | ||
' "codemirror/lib/codemirror",', | ||
' cmModePath + "css/css",', | ||
' cmModePath + "sass/sass",', | ||
' cmModePath + "shell/shell",', | ||
' cmModePath + "sql/sql",', | ||
' cmModePath + "clike/clike",', | ||
' cmModePath + "php/php",', | ||
' cmModePath + "xml/xml",', | ||
' cmModePath + "markdown/markdown",', | ||
' cmModePath + "javascript/javascript",', | ||
' cmModePath + "htmlmixed/htmlmixed",', | ||
' cmModePath + "gfm/gfm",', | ||
' cmModePath + "http/http",', | ||
' cmModePath + "go/go",', | ||
' cmModePath + "dart/dart",', | ||
' cmModePath + "coffeescript/coffeescript",', | ||
' cmModePath + "nginx/nginx",', | ||
' cmModePath + "python/python",', | ||
' cmModePath + "perl/perl",', | ||
' cmModePath + "lua/lua",', | ||
' cmModePath + "r/r", ', | ||
' cmModePath + "ruby/ruby", ', | ||
' cmModePath + "rst/rst",', | ||
' cmModePath + "smartymixed/smartymixed",', | ||
' cmModePath + "vb/vb",', | ||
' cmModePath + "vbscript/vbscript",', | ||
' cmModePath + "velocity/velocity",', | ||
' cmModePath + "xquery/xquery",', | ||
' cmModePath + "yaml/yaml",', | ||
' cmModePath + "erlang/erlang",', | ||
' cmModePath + "jade/jade",', | ||
'', | ||
' cmAddonPath + "edit/trailingspace", ', | ||
' cmAddonPath + "dialog/dialog", ', | ||
' cmAddonPath + "search/searchcursor", ', | ||
' cmAddonPath + "search/search", ', | ||
' cmAddonPath + "scroll/annotatescrollbar", ', | ||
' cmAddonPath + "search/matchesonscrollbar", ', | ||
' cmAddonPath + "display/placeholder", ', | ||
' cmAddonPath + "edit/closetag", ', | ||
' cmAddonPath + "fold/foldcode",', | ||
' cmAddonPath + "fold/foldgutter",', | ||
' cmAddonPath + "fold/indent-fold",', | ||
' cmAddonPath + "fold/brace-fold",', | ||
' cmAddonPath + "fold/xml-fold", ', | ||
' cmAddonPath + "fold/markdown-fold",', | ||
' cmAddonPath + "fold/comment-fold", ', | ||
' cmAddonPath + "mode/overlay", ', | ||
' cmAddonPath + "selection/active-line", ', | ||
' cmAddonPath + "edit/closebrackets", ', | ||
' cmAddonPath + "display/fullscreen",', | ||
' cmAddonPath + "search/match-highlighter"', | ||
' ];', | ||
'', | ||
' define(codeMirrorModules, factory);' | ||
].join("\r\n"); | ||
|
||
var replaceText2 = [ | ||
"if (typeof define == \"function\" && define.amd) {", | ||
" $ = arguments[0];", | ||
" marked = arguments[1];", | ||
" prettify = arguments[2];", | ||
" katex = arguments[3];", | ||
" Raphael = arguments[4];", | ||
" _ = arguments[5];", | ||
" flowchart = arguments[6];", | ||
" CodeMirror = arguments[9];", | ||
" }" | ||
].join("\r\n"); | ||
|
||
gulp.src("src/editormd.js") | ||
.pipe(rename({ suffix: ".amd" })) | ||
.pipe(gulp.dest('./')) | ||
.pipe(header(headerComment, {pkg : pkg, fileName : function(file) { | ||
var name = file.path.split(file.base); | ||
return name[1].replace(/[\\\/]?/, ""); | ||
}})) | ||
.pipe(gulp.dest("./")) | ||
.pipe(replace("/* Require.js define replace */", replaceText1)) | ||
.pipe(gulp.dest('./')) | ||
.pipe(replace("/* Require.js assignment replace */", replaceText2)) | ||
.pipe(gulp.dest('./')) | ||
.pipe(rename({ suffix: ".min" })) | ||
.pipe(uglify()) //{outSourceMap: true, sourceRoot: './'} | ||
.pipe(gulp.dest("./")) | ||
.pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) { | ||
var name = file.path.split(file.base + ( (os.platform() === "win32") ? "\\" : "/") ); | ||
return name[1].replace(/[\\\/]?/, ""); | ||
}})) | ||
.pipe(gulp.dest("./")) | ||
.pipe(notify({ message: "amd version task complete"})); | ||
}); | ||
|
||
|
||
var codeMirror = { | ||
path : { | ||
src : { | ||
mode : "lib/codemirror/mode", | ||
addon : "lib/codemirror/addon" | ||
}, | ||
dist : "lib/codemirror" | ||
}, | ||
modes : [ | ||
"css", | ||
"sass", | ||
"shell", | ||
"sql", | ||
"clike", | ||
"php", | ||
"xml", | ||
"markdown", | ||
"javascript", | ||
"htmlmixed", | ||
"gfm", | ||
"http", | ||
"go", | ||
"dart", | ||
"coffeescript", | ||
"nginx", | ||
"python", | ||
"perl", | ||
"lua", | ||
"r", | ||
"ruby", | ||
"rst", | ||
"smartymixed", | ||
"vb", | ||
"vbscript", | ||
"velocity", | ||
"xquery", | ||
"yaml", | ||
"erlang", | ||
"jade", | ||
], | ||
|
||
addons : [ | ||
"edit/trailingspace", | ||
"dialog/dialog", | ||
"search/searchcursor", | ||
"search/search", | ||
"scroll/annotatescrollbar", | ||
"search/matchesonscrollbar", | ||
"display/placeholder", | ||
"edit/closetag", | ||
"fold/foldcode", | ||
"fold/foldgutter", | ||
"fold/indent-fold", | ||
"fold/brace-fold", | ||
"fold/xml-fold", | ||
"fold/markdown-fold", | ||
"fold/comment-fold", | ||
"mode/overlay", | ||
"selection/active-line", | ||
"edit/closebrackets", | ||
"display/fullscreen", | ||
"search/match-highlighter" | ||
] | ||
}; | ||
|
||
gulp.task("cm-mode", function() { | ||
|
||
var modes = [ | ||
codeMirror.path.src.mode + "/meta.js" | ||
]; | ||
|
||
for(var i in codeMirror.modes) { | ||
var mode = codeMirror.modes[i]; | ||
modes.push(codeMirror.path.src.mode + "/" + mode + "/" + mode + ".js"); | ||
} | ||
|
||
return gulp.src(modes) | ||
.pipe(concat("modes.min.js")) | ||
.pipe(gulp.dest(codeMirror.path.dist)) | ||
.pipe(uglify()) // {outSourceMap: true, sourceRoot: codeMirror.path.dist} | ||
.pipe(gulp.dest(codeMirror.path.dist)) | ||
.pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) { | ||
var name = file.path.split(file.base + "\\"); | ||
return (name[1]?name[1]:name[0]).replace(/\\/g, ""); | ||
}})) | ||
.pipe(gulp.dest(codeMirror.path.dist)) | ||
.pipe(notify({ message: "codemirror-mode task complete!" })); | ||
}); | ||
|
||
gulp.task("cm-addon", function() { | ||
|
||
var addons = []; | ||
|
||
for(var i in codeMirror.addons) { | ||
var addon = codeMirror.addons[i]; | ||
addons.push(codeMirror.path.src.addon + "/" + addon + ".js"); | ||
} | ||
|
||
return gulp.src(addons) | ||
.pipe(concat("addons.min.js")) | ||
.pipe(gulp.dest(codeMirror.path.dist)) | ||
.pipe(uglify()) //{outSourceMap: true, sourceRoot: codeMirror.path.dist} | ||
.pipe(gulp.dest(codeMirror.path.dist)) | ||
.pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) { | ||
var name = file.path.split(file.base + "\\"); | ||
return (name[1]?name[1]:name[0]).replace(/\\/g, ""); | ||
}})) | ||
.pipe(gulp.dest(codeMirror.path.dist)) | ||
.pipe(notify({ message: "codemirror-addon.js task complete" })); | ||
}); | ||
/* | ||
gulp.task("jsdoc", function(){ | ||
return gulp.src(["./src/editormd.js", "README.md"]) | ||
.pipe(jsdoc.parser()) | ||
.pipe(jsdoc.generator("./docs/html")); | ||
}); | ||
gulp.task("jsdoc2md", function() { | ||
return gulp.src("src/js/editormd.js") | ||
.pipe(jsdoc2md()) | ||
.on("error", function(err){ | ||
gutil.log(gutil.colors.red("jsdoc2md failed"), err.message); | ||
}) | ||
.pipe(rename(function(path) { | ||
path.extname = ".md"; | ||
})) | ||
.pipe(gulp.dest("docs/markdown")); | ||
}); | ||
*/ | ||
gulp.task("watch", function() { | ||
gulp.watch("scss/editormd.scss", ["scss"]); | ||
gulp.watch("scss/editormd.preview.scss", ["scss", "scss2"]); | ||
gulp.watch("scss/editormd.logo.scss", ["scss", "scss3"]); | ||
gulp.watch("src/editormd.js", ["js", "amd"]); | ||
}); | ||
|
||
gulp.task("default", function() { | ||
gulp.run("scss"); | ||
gulp.run("scss2"); | ||
gulp.run("scss3"); | ||
gulp.run("js"); | ||
gulp.run("amd"); | ||
gulp.run("cm-addon"); | ||
gulp.run("cm-mode"); | ||
}); |
Oops, something went wrong.