소스 검색

Add build folder

simov 7 년 전
부모
커밋
e4f2c6057d
7개의 변경된 파일419개의 추가작업 그리고 0개의 파일을 삭제
  1. 40 0
      build/fontello/fontello.json
  2. 82 0
      build/mdc/build.js
  3. 19 0
      build/mdc/index.js
  4. 8 0
      build/mdc/mdc.js
  5. 14 0
      build/mdc/mdc.scss
  6. 70 0
      build/prism/index.js
  7. 186 0
      build/prism/prism.json

+ 40 - 0
build/fontello/fontello.json

@@ -0,0 +1,40 @@
+{
+  "name": "",
+  "css_prefix_text": "icon-",
+  "css_use_suffix": false,
+  "hinting": true,
+  "units_per_em": 1000,
+  "ascent": 850,
+  "glyphs": [
+    {
+      "uid": "0f6a2573a7b6df911ed199bb63717e27",
+      "css": "github",
+      "code": 61595,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "bd7fd67bed189448225cad0fe4ef3d7c",
+      "css": "chrome",
+      "code": 62056,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "d5fabfa46384953ae055fceacb2229a7",
+      "css": "refresh",
+      "code": 59393,
+      "src": "elusive"
+    },
+    {
+      "uid": "8da3ac534210aae9c0f0e13804c1df97",
+      "css": "remove",
+      "code": 59394,
+      "src": "websymbols"
+    },
+    {
+      "uid": "62c089cb34e74b3a1200bc7f5314eb4e",
+      "css": "firefox",
+      "code": 59456,
+      "src": "fontelico"
+    }
+  ]
+}

+ 82 - 0
build/mdc/build.js

@@ -0,0 +1,82 @@
+
+var sass = require('node-sass')
+var csso = require('csso')
+
+var rollup = require('rollup')
+var common = require('rollup-plugin-commonjs')
+var resolve = require('rollup-plugin-node-resolve')
+var babel = require('babel-core')
+var uglify = require('uglify-js')
+
+
+module.exports = () => {
+
+  var css = {
+    compile: (file) =>
+      sass.renderSync({
+        file,
+        includePaths: [
+          'node_modules/'
+        ]
+      }).css
+    ,
+    minify: (data) =>
+      csso.minify(data).css
+    ,
+    build: (file) =>
+      css.minify(css.compile(file))
+    ,
+  }
+
+  var js = {
+    bundle: async (input) => {
+      var options = {
+        input,
+        context: 'window',
+        moduleContext: {id: 'window'},
+        format: 'iife',
+        name: 'mdc',
+        plugins: [
+          // common(),
+          resolve(),
+        ]
+      }
+
+      var bundle = await rollup.rollup(options)
+      var bundled = await bundle.generate(options)
+
+      return bundled.code
+    }
+    ,
+    transpile: (code) => {
+      var options = {
+        presets: ['es2015'],
+        // comments: false,
+        // compact: true,
+        // minified: true
+      }
+
+      var transpiled = babel.transform(code, options)
+
+      return transpiled.code
+    }
+    ,
+    minify: (code) => {
+      var options = {
+        compress: {},
+        mangle: true
+      }
+
+      var minified = uglify.minify(code, options)
+
+      return minified.code
+    }
+    ,
+    build: (file) =>
+      js.bundle(file)
+        .then((code) => js.minify(js.transpile(code)))
+    ,
+  }
+
+  return {css, js}
+}

+ 19 - 0
build/mdc/index.js

@@ -0,0 +1,19 @@
+#!/usr/bin/env node
+
+var fs = require('fs')
+var path = require('path')
+
+
+var write = (file, data) => {
+  fs.writeFileSync(path.resolve(__dirname, '../../vendor/', file), data)
+}
+
+
+var mdc = require('./build')()
+
+write('mdc.min.css', mdc.css.build(path.resolve(__dirname, 'mdc.scss')))
+
+mdc.js.build(path.resolve(__dirname, 'mdc.js'))
+.then((code) => {
+  write('mdc.min.js', code)
+})

+ 8 - 0
build/mdc/mdc.js

@@ -0,0 +1,8 @@
+
+import * as ripple from '@material/ripple'
+import * as tabs from '@material/tabs'
+
+export {
+  ripple,
+  tabs,
+}

+ 14 - 0
build/mdc/mdc.scss

@@ -0,0 +1,14 @@
+
+$mdc-theme-primary: #607d8b;
+$mdc-theme-secondary: #607d8b;
+$mdc-theme-background: #fff;
+
+@import "@material/button/mdc-button";
+@import "@material/elevation/mdc-elevation";
+@import "@material/ripple/mdc-ripple";
+@import "@material/switch/mdc-switch";
+@import "@material/tabs/mdc-tabs";
+@import "@material/textfield/mdc-text-field";
+@import "@material/theme/mdc-theme";
+@import "@material/toolbar/mdc-toolbar";
+@import "@material/typography/mdc-typography";

+ 70 - 0
build/prism/index.js

@@ -0,0 +1,70 @@
+
+var fs = require('fs')
+var path = require('path')
+var vm = require('vm')
+var uglify = require('uglify-js')
+
+
+// load prism languages
+var include = (file) => {
+  var fpath = path.resolve(__dirname, `../../node_modules/prismjs/${file}.js`)
+  var source = fs.readFileSync(fpath, 'utf8')
+  var ctx = vm.createContext()
+  vm.runInContext(source, ctx)
+  return ctx
+}
+
+var {components: {languages}} = include('components')
+delete languages.meta
+
+
+// update prism languages config
+var config = require('./prism.json')
+// sort the included ones
+config['markdown-viewer'] = config['markdown-viewer'].sort()
+// add any new
+config.all = Object.keys(languages)
+
+fs.writeFileSync(path.resolve(__dirname, 'prism.json'),
+  JSON.stringify(config, null, 2), 'utf8')
+
+
+// build prism.min.js
+var core = fs.readFileSync(
+  path.resolve(__dirname, '../../node_modules/prismjs/prism.js'), 'utf8')
+// core
+var source = uglify.minify(core, {compress: {}, mangle: true}).code
+// components
+source += config['markdown-viewer'].reduce((source, component) => (
+  source += fs.readFileSync(path.resolve(__dirname,
+    `../../node_modules/prismjs/components/prism-${component}.min.js`), 'utf8') + '\n',
+  source
+), '')
+
+fs.writeFileSync(path.resolve(__dirname, '../../vendor/prism.min.js'), source, 'utf8')
+
+
+// print the excluded ones and their corresponding files sizes
+console.log('Excluded:')
+config.all
+  .filter((component) => !config['markdown-viewer'].includes(component))
+  .map((component) => console.log(
+    component, '\t\t\t',
+    fs.lstatSync(path.resolve(__dirname,
+      `../../node_modules/prismjs/components/prism-${component}.min.js`)).size
+  ))
+
+
+// build css
+var csso = require('csso')
+
+var source = fs.readFileSync(
+  path.resolve(__dirname, '../../node_modules/prismjs/themes/prism.css'),
+  'utf8'
+)
+
+fs.writeFileSync(
+  path.resolve(__dirname, '../../vendor/prism.min.css'),
+  csso.minify(source).css,
+  'utf8'
+)

+ 186 - 0
build/prism/prism.json

@@ -0,0 +1,186 @@
+{
+  "all": [
+    "markup",
+    "css",
+    "clike",
+    "javascript",
+    "abap",
+    "actionscript",
+    "ada",
+    "apacheconf",
+    "apl",
+    "applescript",
+    "arduino",
+    "asciidoc",
+    "aspnet",
+    "autohotkey",
+    "autoit",
+    "bash",
+    "basic",
+    "batch",
+    "bison",
+    "brainfuck",
+    "bro",
+    "c",
+    "csharp",
+    "cpp",
+    "coffeescript",
+    "crystal",
+    "css-extras",
+    "d",
+    "dart",
+    "django",
+    "diff",
+    "docker",
+    "eiffel",
+    "elixir",
+    "erlang",
+    "fsharp",
+    "flow",
+    "fortran",
+    "gherkin",
+    "git",
+    "glsl",
+    "go",
+    "graphql",
+    "groovy",
+    "haml",
+    "handlebars",
+    "haskell",
+    "haxe",
+    "http",
+    "icon",
+    "inform7",
+    "ini",
+    "j",
+    "java",
+    "jolie",
+    "json",
+    "julia",
+    "keyman",
+    "kotlin",
+    "latex",
+    "less",
+    "livescript",
+    "lolcode",
+    "lua",
+    "makefile",
+    "markdown",
+    "matlab",
+    "mel",
+    "mizar",
+    "monkey",
+    "n4js",
+    "nasm",
+    "nginx",
+    "nim",
+    "nix",
+    "nsis",
+    "objectivec",
+    "ocaml",
+    "opencl",
+    "oz",
+    "parigp",
+    "parser",
+    "pascal",
+    "perl",
+    "php",
+    "php-extras",
+    "powershell",
+    "processing",
+    "prolog",
+    "properties",
+    "protobuf",
+    "pug",
+    "puppet",
+    "pure",
+    "python",
+    "q",
+    "qore",
+    "r",
+    "jsx",
+    "renpy",
+    "reason",
+    "rest",
+    "rip",
+    "roboconf",
+    "ruby",
+    "rust",
+    "sas",
+    "sass",
+    "scss",
+    "scala",
+    "scheme",
+    "smalltalk",
+    "smarty",
+    "sql",
+    "stylus",
+    "swift",
+    "tcl",
+    "textile",
+    "twig",
+    "typescript",
+    "vbnet",
+    "verilog",
+    "vhdl",
+    "vim",
+    "wiki",
+    "xojo",
+    "yaml"
+  ],
+  "markdown-viewer": [
+    "actionscript",
+    "apacheconf",
+    "applescript",
+    "aspnet",
+    "bash",
+    "basic",
+    "batch",
+    "c",
+    "clike",
+    "coffeescript",
+    "cpp",
+    "csharp",
+    "css",
+    "css-extras",
+    "d",
+    "dart",
+    "docker",
+    "elixir",
+    "erlang",
+    "flow",
+    "fsharp",
+    "go",
+    "graphql",
+    "haskell",
+    "java",
+    "javascript",
+    "json",
+    "kotlin",
+    "lua",
+    "makefile",
+    "markdown",
+    "markup",
+    "nginx",
+    "objectivec",
+    "ocaml",
+    "perl",
+    "php",
+    "prolog",
+    "python",
+    "r",
+    "reason",
+    "ruby",
+    "rust",
+    "sass",
+    "scala",
+    "scheme",
+    "scss",
+    "smalltalk",
+    "sql",
+    "swift",
+    "typescript",
+    "vbnet",
+    "yaml"
+  ]
+}