瀏覽代碼

Update build script

simov 2 年之前
父節點
當前提交
e7767039b4

+ 40 - 47
build/README.md

@@ -5,7 +5,7 @@ Build the `themes` and `vendor` folders, and create the `markdown-viewer.zip` pa
 
 ```bash
 # pick a release tag
-git clone --depth 1 --branch 5.0 https://github.com/simov/markdown-viewer.git
+git clone --depth 1 --branch 5.2 https://github.com/simov/markdown-viewer.git
 cd markdown-viewer/
 # build
 sh build/package.sh
@@ -16,54 +16,47 @@ sh build/package.sh
 - node >= 18
 - npm >= 10
 - git
-- curl
 - zip
 
 ## Markdown Viewer Dependencies
 
-| Module              | Version
-| :-                  | :-
-| @material/button    | ^0.37.1
-| @material/ripple    | ^0.37.1
-| @material/switch    | ^0.36.1
-| @material/tabs      | ^0.37.1
-| @material/textfield | ^0.37.1
-| bootstrap           |  5.2.3
-| cleanrmd            |  0.1.0
-| emojione            |  2.2.7
-| github-markdown-css |  5.2.0
-| github-slugger      | ^2.0.0
-| markdown-it         | ^13.0.1
-| markdown-it-abbr    | ^1.0.4
-| markdown-it-anchor  | ^8.6.7
-| markdown-it-attrs   | ^4.1.6
-| markdown-it-cjk-breaks | ^1.1.3
-| markdown-it-deflist | ^2.1.0
-| markdown-it-footnote| ^3.0.3
-| markdown-it-ins     | ^3.0.1
-| markdown-it-mark    | ^3.0.1
-| markdown-it-sub     | ^1.0.0
-| markdown-it-sup     | ^1.0.0
-| markdown-it-task-lists | ^2.1.1
-| marked                | ^9.0.3
-| marked-gfm-heading-id | ^3.0.8
-| marked-linkify-it     | ^3.1.4
-| marked-smartypants    | ^1.1.3
-| mathjax             |  3.2.2
+| module | version
+| :-     | -:
+| bootstrap           | 5.2.3
+| cleanrmd            | 0.1.0
+| github-markdown-css | 5.2.0
+| mathjax             | 3.2.2
 | mermaid             | 10.4.0
-| mithril             |  1.1.6
-| prismjs             | ^1.29.0
-| remark              | ^14.0.2
-| remark-breaks       | ^3.0.2
-| remark-footnotes    | ^4.0.1
-| remark-gfm          | ^3.0.1
-| remark-html         | ^15.0.2
-| remark-slug         | ^7.0.1
-
-## Additional Compilers
-
-| Module              | Version
-| :-                  | :-
-| commonmark          | 0.29.3
-| remarkable          | 1.7.4
-| showdown            | 2.1.0
+| mithril             | 1.1.7
+| prismjs             | 1.29.0
+| **markdown-it**
+| markdown-it            | 13.0.1
+| markdown-it-abbr       | 1.0.4
+| markdown-it-anchor     | 8.6.7
+| markdown-it-attrs      | 4.1.6
+| markdown-it-cjk-breaks | 1.1.3
+| markdown-it-deflist    | 2.1.0
+| markdown-it-footnote   | 3.0.3
+| markdown-it-ins        | 3.0.1
+| markdown-it-mark       | 3.0.1
+| markdown-it-sub        | 1.0.0
+| markdown-it-sup        | 1.0.0
+| markdown-it-task-lists | 2.1.1
+| github-slugger         | 2.0.0
+| **marked**
+| marked                | 9.0.3
+| marked-gfm-heading-id | 3.1.0
+| marked-linkify-it     | 3.1.4
+| marked-smartypants    | 1.1.3
+| **mdc**
+| @material/button    | 0.37.1
+| @material/ripple    | 0.37.1
+| @material/switch    | 0.36.1
+| @material/tabs      | 0.37.1
+| @material/textfield | 0.37.1
+| **remark**
+| remark        | 14.0.2
+| remark-breaks | 3.0.2
+| remark-gfm    | 3.0.1
+| remark-html   | 15.0.2
+| remark-slug   | 7.0.1

+ 8 - 1
build/bootstrap/build.sh

@@ -3,4 +3,11 @@
 # set current working directory to directory of the shell script
 cd "$(dirname "$0")"
 
-curl https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.2.3/css/bootstrap.min.css --output ../../vendor/bootstrap.min.css
+# before
+npm ci 2> /dev/null || npm i
+
+# copy
+cp node_modules/bootstrap/dist/css/bootstrap.min.css ../../vendor/bootstrap.min.css
+
+# after
+rm -rf node_modules/

+ 12 - 0
build/bootstrap/package.json

@@ -0,0 +1,12 @@
+{
+  "name": "markdown-viewer",
+  "version": "0.0.0",
+  "description": "Markdown Viewer / Browser Extension",
+  "private": true,
+  "dependencies": {
+    "bootstrap": "5.2.3"
+  },
+  "engines": {
+    "node": ">=18.0.0"
+  }
+}

+ 0 - 10
build/compilers/build.sh

@@ -1,10 +0,0 @@
-#!/bin/bash
-
-# set current working directory to directory of the shell script
-cd "$(dirname "$0")"
-
-curl https://cdnjs.cloudflare.com/ajax/libs/showdown/2.1.0/showdown.min.js --output ../../vendor/showdown.min.js
-curl https://cdnjs.cloudflare.com/ajax/libs/commonmark/0.29.3/commonmark.min.js --output ../../vendor/commonmark.min.js
-curl https://cdnjs.cloudflare.com/ajax/libs/remarkable/1.7.4/remarkable.min.js --output ../../vendor/remarkable.min.js
-
-node import.js

+ 0 - 35
build/compilers/import.js

@@ -1,35 +0,0 @@
-
-var fs = require('fs')
-var path = require('path')
-
-var fpath = {
-  background: path.resolve(__dirname, '../../background/index.js'),
-  compilers: path.resolve(__dirname, '../../background/index-compilers.js'),
-  manifest: path.resolve(__dirname, '../../manifest.json'),
-}
-
-var compilers = `
-importScripts('/vendor/showdown.min.js')
-importScripts('/vendor/remarkable.min.js')
-importScripts('/vendor/commonmark.min.js')
-importScripts('/background/compilers/showdown.js')
-importScripts('/background/compilers/remarkable.js')
-importScripts('/background/compilers/commonmark.js')
-`
-
-// background/index-compilers.js
-var source = fs.readFileSync(fpath.background, 'utf8')
-var lines = source.split('\n')
-fs.writeFileSync(
-  fpath.compilers,
-  lines.slice(0, 5).concat(compilers.split('\n')).concat(lines.slice(6)).join('\n'),
-  'utf8'
-)
-
-// manifest.json
-var source = fs.readFileSync(fpath.manifest, 'utf8')
-fs.writeFileSync(
-  fpath.manifest,
-  source.replace('/background/index.js', '/background/index-compilers.js'),
-  'utf8'
-)

+ 2 - 3
build/markdown-it/build.sh

@@ -4,7 +4,7 @@
 cd "$(dirname "$0")"
 
 # before
-npm install
+npm ci 2> /dev/null || npm i
 mkdir -p tmp
 
 # markdown-it.min.js
@@ -15,5 +15,4 @@ npx terser --compress --mangle -- tmp/markdown-it.js > tmp/markdown-it.min.js
 cp tmp/markdown-it.min.js ../../vendor/
 
 # after
-rm -r tmp/
-rm -rf node_modules/ package-lock.json
+rm -rf node_modules/ tmp/

+ 19 - 19
build/markdown-it/package.json

@@ -4,27 +4,27 @@
   "description": "Markdown Viewer / Browser Extension",
   "private": true,
   "dependencies": {
-    "github-slugger": "^2.0.0",
-    "markdown-it": "^13.0.1",
-    "markdown-it-abbr": "^1.0.4",
-    "markdown-it-anchor": "^8.6.7",
-    "markdown-it-attrs": "^4.1.6",
-    "markdown-it-cjk-breaks": "^1.1.3",
-    "markdown-it-deflist": "^2.1.0",
-    "markdown-it-footnote": "^3.0.3",
-    "markdown-it-ins": "^3.0.1",
-    "markdown-it-mark": "^3.0.1",
-    "markdown-it-sub": "^1.0.0",
-    "markdown-it-sup": "^1.0.0",
-    "markdown-it-task-lists": "^2.1.1"
+    "github-slugger": "2.0.0",
+    "markdown-it": "13.0.1",
+    "markdown-it-abbr": "1.0.4",
+    "markdown-it-anchor": "8.6.7",
+    "markdown-it-attrs": "4.1.6",
+    "markdown-it-cjk-breaks": "1.1.3",
+    "markdown-it-deflist": "2.1.0",
+    "markdown-it-footnote": "3.0.3",
+    "markdown-it-ins": "3.0.1",
+    "markdown-it-mark": "3.0.1",
+    "markdown-it-sub": "1.0.0",
+    "markdown-it-sup": "1.0.0",
+    "markdown-it-task-lists": "2.1.1"
   },
   "devDependencies": {
-    "@rollup/plugin-commonjs": "^25.0.4",
-    "@rollup/plugin-json": "^6.0.0",
-    "@rollup/plugin-node-resolve": "^15.2.1",
-    "rollup": "^3.29.2",
-    "rollup-plugin-polyfill-node": "^0.12.0",
-    "terser": "^5.20.0"
+    "@rollup/plugin-commonjs": "25.0.4",
+    "@rollup/plugin-json": "6.0.0",
+    "@rollup/plugin-node-resolve": "15.2.1",
+    "rollup": "3.29.2",
+    "rollup-plugin-polyfill-node": "0.12.0",
+    "terser": "5.20.0"
   },
   "engines": {
     "node": ">=18.0.0"

+ 2 - 3
build/marked/build.sh

@@ -4,7 +4,7 @@
 cd "$(dirname "$0")"
 
 # before
-npm install
+npm ci 2> /dev/null || npm i
 mkdir -p tmp
 
 # marked.min.js
@@ -15,5 +15,4 @@ npx terser --compress --mangle -- tmp/marked.js > tmp/marked.min.js
 cp tmp/marked.min.js ../../vendor/
 
 # after
-rm -r tmp/
-rm -rf node_modules/ package-lock.json
+rm -rf node_modules/ tmp/

+ 9 - 9
build/marked/package.json

@@ -4,17 +4,17 @@
   "description": "Markdown Viewer / Browser Extension",
   "private": true,
   "dependencies": {
-    "marked": "^9.0.3",
-    "marked-gfm-heading-id": "^3.1.0",
-    "marked-linkify-it": "^3.1.4",
-    "marked-smartypants": "^1.1.3"
+    "marked": "9.0.3",
+    "marked-gfm-heading-id": "3.1.0",
+    "marked-linkify-it": "3.1.4",
+    "marked-smartypants": "1.1.3"
   },
   "devDependencies": {
-    "@rollup/plugin-commonjs": "^23.0.4",
-    "@rollup/plugin-node-resolve": "^15.2.1",
-    "rollup": "^3.29.2",
-    "rollup-plugin-polyfill-node": "^0.12.0",
-    "terser": "^5.20.0"
+    "@rollup/plugin-commonjs": "23.0.4",
+    "@rollup/plugin-node-resolve": "15.2.1",
+    "rollup": "3.29.2",
+    "rollup-plugin-polyfill-node": "0.12.0",
+    "terser": "5.20.0"
   },
   "engines": {
     "node": ">=18.0.0"

+ 14 - 7
build/mathjax/build.sh

@@ -3,16 +3,23 @@
 # set current working directory to directory of the shell script
 cd "$(dirname "$0")"
 
-git clone --depth 1 --branch 3.2.2 https://github.com/mathjax/MathJax.git tmp
+# before
+npm ci 2> /dev/null || npm i
 
+# copy
 # https://github.com/mathjax/MathJax#reducing-the-size-of-the-components-directory
-mkdir -p ../../vendor/mathjax
-cp tmp/es5/tex-mml-chtml.js ../../vendor/mathjax
 
-mkdir -p ../../vendor/mathjax/fonts
-cp tmp/es5/output/chtml/fonts/woff-v2/*.woff ../../vendor/mathjax/fonts
+# tex-mml-chtml.js
+mkdir -p ../../vendor/mathjax
+cp node_modules/mathjax/es5/tex-mml-chtml.js ../../vendor/mathjax
 
+# extensions/
 mkdir -p ../../vendor/mathjax/extensions
-cp tmp/es5/input/tex/extensions/*.js ../../vendor/mathjax/extensions/
+cp node_modules/mathjax/es5/input/tex/extensions/*.js ../../vendor/mathjax/extensions/
+
+# fonts/
+mkdir -p ../../vendor/mathjax/fonts
+cp node_modules/mathjax/es5/output/chtml/fonts/woff-v2/*.woff ../../vendor/mathjax/fonts
 
-rm -rf tmp/
+# after
+rm -rf node_modules/

+ 12 - 0
build/mathjax/package.json

@@ -0,0 +1,12 @@
+{
+  "name": "markdown-viewer",
+  "version": "0.0.0",
+  "description": "Markdown Viewer / Browser Extension",
+  "private": true,
+  "dependencies": {
+    "mathjax": "3.2.2"
+  },
+  "engines": {
+    "node": ">=18.0.0"
+  }
+}

+ 0 - 19
build/mdc/.babelrc

@@ -1,19 +0,0 @@
-{
-  "presets": [
-    [
-      "env",
-      {
-        "targets": {
-          "browsers":
-          [
-            "chrome >= 60",
-            "firefox >= 57"
-          ]
-        }
-      }
-    ]
-  ],
-  "compact": true,
-  "minified": true,
-  "comments": false
-}

+ 4 - 5
build/mdc/build.sh

@@ -4,12 +4,12 @@
 cd "$(dirname "$0")"
 
 # before
-npm install
+npm ci 2> /dev/null || npm i
 mkdir -p tmp
 
 # mdc.min.js
-npx rollup --config rollup.mjs --input mdc.js --file tmp/mdc.js
-npx babel tmp/mdc.js --out-file tmp/mdc.min.js
+npx rollup --config rollup.mjs --input mdc.mjs --file tmp/mdc.js
+npx terser --compress --mangle -- tmp/mdc.js > tmp/mdc.min.js
 
 # mdc.min.css
 npx node-sass --include-path node_modules/ mdc.scss tmp/mdc.css
@@ -19,5 +19,4 @@ npx csso --input tmp/mdc.css --output tmp/mdc.min.css
 cp tmp/mdc.min.* ../../vendor/
 
 # after
-rm -r tmp/
-rm -rf node_modules/ package-lock.json
+rm -rf node_modules/ tmp/

+ 0 - 0
build/mdc/mdc.js → build/mdc/mdc.mjs


+ 11 - 12
build/mdc/package.json

@@ -4,20 +4,19 @@
   "description": "Markdown Viewer / Browser Extension",
   "private": true,
   "dependencies": {
-    "@material/button": "^0.37.1",
-    "@material/ripple": "^0.37.1",
-    "@material/switch": "^0.36.1",
-    "@material/tabs": "^0.37.1",
-    "@material/textfield": "^0.37.1"
+    "@material/button": "0.37.1",
+    "@material/ripple": "0.37.1",
+    "@material/switch": "0.36.1",
+    "@material/tabs": "0.37.1",
+    "@material/textfield": "0.37.1"
   },
   "devDependencies": {
-    "@rollup/plugin-commonjs": "^23.0.2",
-    "@rollup/plugin-node-resolve": "^15.0.1",
-    "babel-cli": "^6.26.0",
-    "babel-preset-env": "^1.7.0",
-    "csso-cli": "^4.0.2",
-    "node-sass": "^9.0.0",
-    "rollup": "^3.29.2"
+    "@rollup/plugin-commonjs": "23.0.2",
+    "@rollup/plugin-node-resolve": "15.0.1",
+    "csso-cli": "4.0.2",
+    "node-sass": "9.0.0",
+    "rollup": "3.29.2",
+    "terser": "5.20.0"
   },
   "engines": {
     "node": ">=18.0.0"

+ 8 - 1
build/mermaid/build.sh

@@ -3,4 +3,11 @@
 # set current working directory to directory of the shell script
 cd "$(dirname "$0")"
 
-curl https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.4.0/mermaid.min.js --output ../../vendor/mermaid.min.js
+# before
+npm ci 2> /dev/null || npm i
+
+# copy
+cp node_modules/mermaid/dist/mermaid.min.js ../../vendor/mermaid.min.js
+
+# after
+rm -rf node_modules/

+ 12 - 0
build/mermaid/package.json

@@ -0,0 +1,12 @@
+{
+  "name": "markdown-viewer",
+  "version": "0.0.0",
+  "description": "Markdown Viewer / Browser Extension",
+  "private": true,
+  "dependencies": {
+    "mermaid": "10.4.0"
+  },
+  "engines": {
+    "node": ">=18.0.0"
+  }
+}

+ 8 - 1
build/mithril/build.sh

@@ -3,4 +3,11 @@
 # set current working directory to directory of the shell script
 cd "$(dirname "$0")"
 
-curl https://cdnjs.cloudflare.com/ajax/libs/mithril/1.1.6/mithril.min.js --output ../../vendor/mithril.min.js
+# before
+npm ci 2> /dev/null || npm i
+
+# copy
+cp node_modules/mithril/mithril.min.js ../../vendor/mithril.min.js
+
+# after
+rm -rf node_modules/

+ 12 - 0
build/mithril/package.json

@@ -0,0 +1,12 @@
+{
+  "name": "markdown-viewer",
+  "version": "0.0.0",
+  "description": "Markdown Viewer / Browser Extension",
+  "private": true,
+  "dependencies": {
+    "mithril": "1.1.7"
+  },
+  "engines": {
+    "node": ">=18.0.0"
+  }
+}

+ 1 - 7
build/package.sh

@@ -4,7 +4,6 @@
 set -e
 
 browser=$1
-compilers=$2
 
 if [ -z "$browser" ]; then
   echo "Specify target browser"
@@ -19,7 +18,6 @@ cd "$(dirname "$0")"
 rm -rf ../themes
 rm -rf ../vendor
 rm -f ../markdown-viewer.zip
-rm -f ../background/index-compilers.js
 mkdir -p ../themes
 mkdir -p ../vendor
 
@@ -41,6 +39,7 @@ mkdir -p tmp/markdown-viewer
 cd ..
 cp -r background content icons options popup themes vendor LICENSE build/tmp/markdown-viewer/
 
+# copy manifest.json
 if [ "$browser" = "chrome" ]; then
   cp manifest.chrome.json build/tmp/markdown-viewer/manifest.json
   cp manifest.chrome.json manifest.json
@@ -63,8 +62,3 @@ fi
 
 # cleanup
 rm -rf tmp/
-
-# compilers
-if [ "$compilers" = "compilers" ]; then
-  sh compilers/build.sh
-fi

+ 19 - 4
build/prism/build.sh

@@ -4,11 +4,27 @@
 cd "$(dirname "$0")"
 
 # before
-npm install
+npm ci 2> /dev/null || npm i
 mkdir -p tmp
 
 # build
-node prism.js
+
+# prism.min.js
+npx terser --compress --mangle -- node_modules/prismjs/prism.js > tmp/prism.min.js
+
+# prism-autoloader.min.js
+node fix-autoloader.js \
+  node_modules/prismjs/plugins/autoloader/prism-autoloader.js \
+  tmp/prism-autoloader.js
+npx terser --compress --mangle -- tmp/prism-autoloader.js > tmp/prism-autoloader.min.js
+
+# prism.min.css
+# prism-okaidia.min.css
+npx csso --input node_modules/prismjs/themes/prism.css --output tmp/prism.min.css
+npx csso --input node_modules/prismjs/themes/prism-okaidia.css --output tmp/prism-okaidia.min.css
+node fix-themes.js \
+  tmp/prism.min.css \
+  tmp/prism-okaidia.min.css
 
 # copy
 cp tmp/prism.min.js ../../vendor/
@@ -20,5 +36,4 @@ mkdir -p ../../vendor/prism/
 cp node_modules/prismjs/components/prism-*.min.js ../../vendor/prism/
 
 # after
-rm -r tmp/
-rm -rf node_modules/ package-lock.json
+rm -rf node_modules/ tmp/

+ 17 - 0
build/prism/fix-autoloader.js

@@ -0,0 +1,17 @@
+
+var fs = require('fs')
+var path = require('path')
+
+// prism-autoloader.js
+var source = path.resolve(__dirname, process.argv[2])
+var target = path.resolve(__dirname, process.argv[3])
+fs.writeFileSync(
+  target,
+  fs.readFileSync(source, 'utf8')
+    .replace(
+      // https://github.com/PrismJS/prism/issues/3654
+      'addScript(getLanguagePath(lang), function () {',
+      'Prism.plugins.autoloader.addScript(lang, function () {'
+    ),
+  'utf8'
+)

+ 30 - 0
build/prism/fix-themes.js

@@ -0,0 +1,30 @@
+
+var fs = require('fs')
+var path = require('path')
+
+// prism.min.css
+var file = path.resolve(__dirname, process.argv[2])
+fs.writeFileSync(
+  file,
+  fs.readFileSync(file, 'utf8')
+    .replace('background:0 0;', '')
+    .replace('background:#f5f2f0', '')
+    .replace('border-radius:.3em', '')
+    .replace('padding:1em;', '')
+    .replace('margin:.5em 0;', '')
+    .replace('background:rgba(255,255,255,.5)', ''),
+  'utf8'
+)
+
+// prism-okaidia.min.css
+var file = path.resolve(__dirname, process.argv[3])
+fs.writeFileSync(
+  file,
+  fs.readFileSync(file, 'utf8')
+    .replace('background:0 0;', '')
+    .replace('background:#272822', '')
+    .replace('border-radius:.3em', '')
+    .replace('padding:1em;', '')
+    .replace('margin:.5em 0;', ''),
+  'utf8'
+)

+ 3 - 3
build/prism/package.json

@@ -4,11 +4,11 @@
   "description": "Markdown Viewer / Browser Extension",
   "private": true,
   "dependencies": {
-    "prismjs": "^1.29.0"
+    "prismjs": "1.29.0"
   },
   "devDependencies": {
-    "csso-cli": "^4.0.2",
-    "terser": "^5.20.0"
+    "csso-cli": "4.0.2",
+    "terser": "5.20.0"
   },
   "engines": {
     "node": ">=18.0.0"

+ 0 - 73
build/prism/prism.js

@@ -1,73 +0,0 @@
-
-var fs = require('fs')
-var path = require('path')
-var terser = require('terser')
-var csso = require('csso')
-
-var js = async () => {
-  // prism.min.js
-  var prism = fs.readFileSync(
-    path.resolve(__dirname, 'node_modules/prismjs/prism.js'),
-    'utf8'
-  )
-  fs.writeFileSync(
-    path.resolve(__dirname, 'tmp/prism.min.js'),
-    (await terser.minify(prism, {format: {comments: false}})).code,
-    'utf8'
-  )
-
-  // prism-autoloader.min.js
-  var autoloader = fs.readFileSync(
-    path.resolve(__dirname, 'node_modules/prismjs/plugins/autoloader/prism-autoloader.js'),
-    'utf8'
-  ).replace(
-    // https://github.com/PrismJS/prism/issues/3654
-    'addScript(getLanguagePath(lang), function () {',
-    'Prism.plugins.autoloader.addScript(lang, function () {'
-  )
-  fs.writeFileSync(
-    path.resolve(__dirname, 'tmp/prism-autoloader.min.js'),
-    (await terser.minify(autoloader, {format: {comments: false}})).code,
-    'utf8'
-  )
-}
-
-var css = () => {
-  // prism.min.css
-  var source = fs.readFileSync(
-    path.resolve(__dirname, 'node_modules/prismjs/themes/prism.css'),
-    'utf8'
-  )
-  fs.writeFileSync(
-    path.resolve(__dirname, 'tmp/prism.min.css'),
-    csso.minify(source).css
-      .replace('background:0 0;', '')
-      .replace('background:#f5f2f0', '')
-      .replace('border-radius:.3em', '')
-      .replace('padding:1em;', '')
-      .replace('margin:.5em 0;', '')
-      .replace('background:rgba(255,255,255,.5)', ''),
-    'utf8'
-  )
-
-  // prism-okaidia.min.css
-  var source = fs.readFileSync(
-    path.resolve(__dirname, 'node_modules/prismjs/themes/prism-okaidia.css'),
-    'utf8'
-  )
-  fs.writeFileSync(
-    path.resolve(__dirname, 'tmp/prism-okaidia.min.css'),
-    csso.minify(source).css
-      .replace('background:0 0;', '')
-      .replace('background:#272822', '')
-      .replace('border-radius:.3em', '')
-      .replace('padding:1em;', '')
-      .replace('margin:.5em 0;', ''),
-    'utf8'
-  )
-}
-
-;(async () => {
-  await js()
-  css()
-})()

+ 2 - 3
build/remark/build.sh

@@ -4,7 +4,7 @@
 cd "$(dirname "$0")"
 
 # before
-npm install
+npm ci 2> /dev/null || npm i
 mkdir -p tmp
 
 # remark.min.js
@@ -15,5 +15,4 @@ npx terser --compress --mangle -- tmp/remark.js > tmp/remark.min.js
 cp tmp/remark.min.js ../../vendor/
 
 # after
-rm -r tmp/
-rm -rf node_modules/ package-lock.json
+rm -rf node_modules/ tmp/

+ 10 - 10
build/remark/package.json

@@ -4,18 +4,18 @@
   "description": "Markdown Viewer / Browser Extension",
   "private": true,
   "dependencies": {
-    "remark": "^14.0.2",
-    "remark-breaks": "^3.0.2",
-    "remark-gfm": "^3.0.1",
-    "remark-html": "^15.0.2",
-    "remark-slug": "^7.0.1"
+    "remark": "14.0.2",
+    "remark-breaks": "3.0.2",
+    "remark-gfm": "3.0.1",
+    "remark-html": "15.0.2",
+    "remark-slug": "7.0.1"
   },
   "devDependencies": {
-    "@rollup/plugin-commonjs": "^25.0.4",
-    "@rollup/plugin-node-resolve": "^15.2.1",
-    "rollup": "^3.29.2",
-    "rollup-plugin-polyfill-node": "^0.12.0",
-    "terser": "^5.20.0"
+    "@rollup/plugin-commonjs": "25.0.4",
+    "@rollup/plugin-node-resolve": "15.2.1",
+    "rollup": "3.29.2",
+    "rollup-plugin-polyfill-node": "0.12.0",
+    "terser": "5.20.0"
   },
   "engines": {
     "node": ">=18.0.0"

+ 11 - 8
build/themes/build.sh

@@ -3,16 +3,18 @@
 # set current working directory to directory of the shell script
 cd "$(dirname "$0")"
 
+# before
+npm ci 2> /dev/null || npm i
+git -c https.proxy="" clone --depth 1 --branch v0.1.0 https://github.com/gadenbuie/cleanrmd.git
 mkdir -p ../../themes
 
-# https://github.com/sindresorhus/github-markdown-css
-curl https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.2.0/github-markdown-light.min.css --output ../../themes/github.css
-curl https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.2.0/github-markdown-dark.min.css --output ../../themes/github-dark.css
+# minify
 
-# https://github.com/gadenbuie/cleanrmd
-git clone --depth 1 --branch v0.1.0 https://github.com/gadenbuie/cleanrmd.git
+# github
+npx csso --input node_modules/github-markdown-css/github-markdown-light.css --output ../../themes/github.css
+npx csso --input node_modules/github-markdown-css/github-markdown-dark.css --output ../../themes/github-dark.css
 
-npm install
+# themes
 npx csso --input cleanrmd/inst/resources/almond/almond.css --output ../../themes/almond.css
 npx csso --input cleanrmd/inst/resources/awsm.css/awsm.css --output ../../themes/awsm.css
 npx csso --input cleanrmd/inst/resources/axist/axist.css --output ../../themes/axist.css
@@ -44,6 +46,7 @@ npx csso --input cleanrmd/inst/resources/water/water.css --output ../../themes/w
 npx csso --input cleanrmd/inst/resources/water-dark/water-dark.css --output ../../themes/water-dark.css
 npx csso --input cleanrmd/inst/resources/writ/writ.css --output ../../themes/writ.css
 
-rm -rf cleanrmd/ node_modules/ package-lock.json
+# after
+rm -rf node_modules/ cleanrmd/
 
-node fix.js
+node fix-themes.js

+ 0 - 0
build/themes/fix.js → build/themes/fix-themes.js


+ 4 - 1
build/themes/package.json

@@ -3,8 +3,11 @@
   "version": "0.0.0",
   "description": "Markdown Viewer / Browser Extension",
   "private": true,
+  "dependencies": {
+    "github-markdown-css": "5.2.0"
+  },
   "devDependencies": {
-    "csso-cli": "^4.0.2"
+    "csso-cli": "4.0.2"
   },
   "engines": {
     "node": ">=14.0.0"