From 21152696861356d211a09aabc408a8f0a8494e8e Mon Sep 17 00:00:00 2001 From: Harry Chen Date: Tue, 9 Apr 2024 11:07:03 +0800 Subject: [PATCH] Tree-shake modules from hljs to reduce artifact size Signed-off-by: Harry Chen --- _src/entrypoints/help.js | 2 +- _src/entrypoints/helpz.js | 2 +- _src/lib/hljs.js | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 _src/lib/hljs.js diff --git a/_src/entrypoints/help.js b/_src/entrypoints/help.js index da30c02..52e8f25 100644 --- a/_src/entrypoints/help.js +++ b/_src/entrypoints/help.js @@ -4,7 +4,7 @@ import { mirrorz_help_link as MirrorzHelpLink, } from "virtual:jekyll-config"; import { options as globalOptions } from "virtual:jekyll-data"; -import hljs from "highlight.js"; +import hljs from "../lib/hljs"; import Mark from "markup-js"; import { TUNASYNC_JSON_PATH } from "../lib/consts"; import { mirrorId } from "../lib/mirrorid"; diff --git a/_src/entrypoints/helpz.js b/_src/entrypoints/helpz.js index fdfc04c..508352a 100644 --- a/_src/entrypoints/helpz.js +++ b/_src/entrypoints/helpz.js @@ -1,6 +1,6 @@ import "./help"; import "../styles/helpz.scss"; -import hljs from "highlight.js"; +import hljs from "../lib/hljs"; import { mirrorId } from "../lib/mirrorid"; import Mustache from "mustache"; diff --git a/_src/lib/hljs.js b/_src/lib/hljs.js new file mode 100644 index 0000000..50c6f03 --- /dev/null +++ b/_src/lib/hljs.js @@ -0,0 +1,37 @@ +import hljs from "highlight.js/lib/core"; +import yaml from "highlight.js/lib/languages/yaml"; +import json from "highlight.js/lib/languages/json"; +import bash from "highlight.js/lib/languages/bash"; +import python from "highlight.js/lib/languages/python"; +import markdown from "highlight.js/lib/languages/markdown"; +import ini from "highlight.js/lib/languages/ini"; +import nginx from "highlight.js/lib/languages/nginx"; +import plaintext from "highlight.js/lib/languages/plaintext"; +import lisp from "highlight.js/lib/languages/lisp"; +import xml from "highlight.js/lib/languages/xml"; +import julia from "highlight.js/lib/languages/julia"; +import r from "highlight.js/lib/languages/r"; +import perl from "highlight.js/lib/languages/perl"; +import clojure from "highlight.js/lib/languages/clojure"; +import dos from "highlight.js/lib/languages/dos"; +import nix from "highlight.js/lib/languages/nix"; + +hljs.registerLanguage("yaml", yaml); +hljs.registerLanguage("json", json); +hljs.registerLanguage("bash", bash); +hljs.registerLanguage("python", python); +hljs.registerLanguage("markdown", markdown); +hljs.registerLanguage("ini", ini); +hljs.registerLanguage("nginx", nginx); +hljs.registerLanguage("plaintext", plaintext); +hljs.registerAliases("text", { languageName: "plaintext" }); +hljs.registerLanguage("lisp", lisp); +hljs.registerLanguage("xml", xml); +hljs.registerLanguage("julia", julia); +hljs.registerLanguage("r", r); +hljs.registerLanguage("perl", perl); +hljs.registerLanguage("clojure", clojure); +hljs.registerLanguage("dos", dos); +hljs.registerLanguage("nix", nix); + +export default hljs;