Skip to content

Commit

Permalink
fix: add shiki to special case list (#366)
Browse files Browse the repository at this point in the history
Adds shiki to the special case list so grammars and themes will be
traced and loaded correctly when deploying.

---------

Co-authored-by: Steven <steven@ceriously.com>
  • Loading branch information
souporserious and styfle committed Oct 12, 2023
1 parent 544e352 commit 1fc9e01
Show file tree
Hide file tree
Showing 6 changed files with 269 additions and 0 deletions.
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -115,6 +115,7 @@
"semver": "^7.5.2",
"sequelize": "^6.29.0",
"sharp": "^0.30.5",
"shiki": "^0.14.5",
"socket.io": "^2.4.0",
"socket.io-client": "^2.2.0",
"stripe": "^7.4.0",
Expand Down
6 changes: 6 additions & 0 deletions src/utils/special-cases.ts
Expand Up @@ -109,6 +109,12 @@ const specialCases: Record<string, (o: SpecialCaseOpts) => void> = {
emitAsset(resolve(id.replace('index.js', 'preload.js')));
}
},
'shiki' ({ id, emitAssetDirectory }) {
if (id.endsWith('/dist/index.js')) {
emitAssetDirectory(resolve(dirname(id), '..', 'languages'));
emitAssetDirectory(resolve(dirname(id), '..', 'themes'));
}
},
'socket.io': async function ({ id, ast, job }) {
if (id.endsWith('socket.io/lib/index.js')) {
async function replaceResolvePathStatement (statement: Node) {
Expand Down
9 changes: 9 additions & 0 deletions test/integration/shiki.js
@@ -0,0 +1,9 @@
const { getHighlighter } = require('shiki')

async function main() {
const { codeToThemedTokens } = await getHighlighter({ theme: 'nord', langs: ['javascript'] })
const result = codeToThemedTokens('let n=1', 'javascript');
Array.isArray(result);
}

main();
9 changes: 9 additions & 0 deletions test/unit/shiki/input.js
@@ -0,0 +1,9 @@
const { getHighlighter } = require('shiki')

async function main() {
const { codeToThemedTokens } = await getHighlighter({ theme: 'nord', langs: ['javascript'] })
const result = codeToThemedTokens('let n=1', 'javascript');
Array.isArray(result);
}

main();
214 changes: 214 additions & 0 deletions test/unit/shiki/output.js
@@ -0,0 +1,214 @@
[
"node_modules/shiki/dist/index.js",
"node_modules/shiki/languages/abap.tmLanguage.json",
"node_modules/shiki/languages/actionscript-3.tmLanguage.json",
"node_modules/shiki/languages/ada.tmLanguage.json",
"node_modules/shiki/languages/apache.tmLanguage.json",
"node_modules/shiki/languages/apex.tmLanguage.json",
"node_modules/shiki/languages/apl.tmLanguage.json",
"node_modules/shiki/languages/applescript.tmLanguage.json",
"node_modules/shiki/languages/ara.tmLanguage.json",
"node_modules/shiki/languages/asm.tmLanguage.json",
"node_modules/shiki/languages/astro.tmLanguage.json",
"node_modules/shiki/languages/awk.tmLanguage.json",
"node_modules/shiki/languages/ballerina.tmLanguage.json",
"node_modules/shiki/languages/bat.tmLanguage.json",
"node_modules/shiki/languages/beancount.tmLanguage.json",
"node_modules/shiki/languages/berry.tmLanguage.json",
"node_modules/shiki/languages/bibtex.tmLanguage.json",
"node_modules/shiki/languages/bicep.tmLanguage.json",
"node_modules/shiki/languages/blade.tmLanguage.json",
"node_modules/shiki/languages/c.tmLanguage.json",
"node_modules/shiki/languages/cadence.tmLanguage.json",
"node_modules/shiki/languages/clarity.tmLanguage.json",
"node_modules/shiki/languages/clojure.tmLanguage.json",
"node_modules/shiki/languages/cmake.tmLanguage.json",
"node_modules/shiki/languages/cobol.tmLanguage.json",
"node_modules/shiki/languages/codeql.tmLanguage.json",
"node_modules/shiki/languages/coffee.tmLanguage.json",
"node_modules/shiki/languages/cpp-macro.tmLanguage.json",
"node_modules/shiki/languages/cpp.tmLanguage.json",
"node_modules/shiki/languages/crystal.tmLanguage.json",
"node_modules/shiki/languages/csharp.tmLanguage.json",
"node_modules/shiki/languages/css.tmLanguage.json",
"node_modules/shiki/languages/cue.tmLanguage.json",
"node_modules/shiki/languages/cypher.tmLanguage.json",
"node_modules/shiki/languages/d.tmLanguage.json",
"node_modules/shiki/languages/dart.tmLanguage.json",
"node_modules/shiki/languages/dax.tmLanguage.json",
"node_modules/shiki/languages/diff.tmLanguage.json",
"node_modules/shiki/languages/docker.tmLanguage.json",
"node_modules/shiki/languages/dream-maker.tmLanguage.json",
"node_modules/shiki/languages/elixir.tmLanguage.json",
"node_modules/shiki/languages/elm.tmLanguage.json",
"node_modules/shiki/languages/erb.tmLanguage.json",
"node_modules/shiki/languages/erlang.tmLanguage.json",
"node_modules/shiki/languages/fish.tmLanguage.json",
"node_modules/shiki/languages/fsharp.tmLanguage.json",
"node_modules/shiki/languages/gdresource.tmLanguage.json",
"node_modules/shiki/languages/gdscript.tmLanguage.json",
"node_modules/shiki/languages/gdshader.tmLanguage.json",
"node_modules/shiki/languages/gherkin.tmLanguage.json",
"node_modules/shiki/languages/git-commit.tmLanguage.json",
"node_modules/shiki/languages/git-rebase.tmLanguage.json",
"node_modules/shiki/languages/glimmer-js.tmLanguage.json",
"node_modules/shiki/languages/glimmer-ts.tmLanguage.json",
"node_modules/shiki/languages/glsl.tmLanguage.json",
"node_modules/shiki/languages/gnuplot.tmLanguage.json",
"node_modules/shiki/languages/go.tmLanguage.json",
"node_modules/shiki/languages/graphql.tmLanguage.json",
"node_modules/shiki/languages/groovy.tmLanguage.json",
"node_modules/shiki/languages/hack.tmLanguage.json",
"node_modules/shiki/languages/haml.tmLanguage.json",
"node_modules/shiki/languages/handlebars.tmLanguage.json",
"node_modules/shiki/languages/haskell.tmLanguage.json",
"node_modules/shiki/languages/hcl.tmLanguage.json",
"node_modules/shiki/languages/hjson.tmLanguage.json",
"node_modules/shiki/languages/hlsl.tmLanguage.json",
"node_modules/shiki/languages/html.tmLanguage.json",
"node_modules/shiki/languages/http.tmLanguage.json",
"node_modules/shiki/languages/imba.tmLanguage.json",
"node_modules/shiki/languages/ini.tmLanguage.json",
"node_modules/shiki/languages/java.tmLanguage.json",
"node_modules/shiki/languages/javascript.tmLanguage.json",
"node_modules/shiki/languages/jinja-html.tmLanguage.json",
"node_modules/shiki/languages/jinja.tmLanguage.json",
"node_modules/shiki/languages/jison.tmLanguage.json",
"node_modules/shiki/languages/json.tmLanguage.json",
"node_modules/shiki/languages/json5.tmLanguage.json",
"node_modules/shiki/languages/jsonc.tmLanguage.json",
"node_modules/shiki/languages/jsonl.tmLanguage.json",
"node_modules/shiki/languages/jsonnet.tmLanguage.json",
"node_modules/shiki/languages/jssm.tmLanguage.json",
"node_modules/shiki/languages/jsx.tmLanguage.json",
"node_modules/shiki/languages/julia.tmLanguage.json",
"node_modules/shiki/languages/kotlin.tmLanguage.json",
"node_modules/shiki/languages/kusto.tmLanguage.json",
"node_modules/shiki/languages/latex.tmLanguage.json",
"node_modules/shiki/languages/less.tmLanguage.json",
"node_modules/shiki/languages/liquid.tmLanguage.json",
"node_modules/shiki/languages/lisp.tmLanguage.json",
"node_modules/shiki/languages/logo.tmLanguage.json",
"node_modules/shiki/languages/lua.tmLanguage.json",
"node_modules/shiki/languages/make.tmLanguage.json",
"node_modules/shiki/languages/markdown.tmLanguage.json",
"node_modules/shiki/languages/marko.tmLanguage.json",
"node_modules/shiki/languages/matlab.tmLanguage.json",
"node_modules/shiki/languages/mdc.tmLanguage.json",
"node_modules/shiki/languages/mdx.tmLanguage.json",
"node_modules/shiki/languages/mermaid.tmLanguage.json",
"node_modules/shiki/languages/mojo.tmLanguage.json",
"node_modules/shiki/languages/narrat.tmLanguage.json",
"node_modules/shiki/languages/nextflow.tmLanguage.json",
"node_modules/shiki/languages/nginx.tmLanguage.json",
"node_modules/shiki/languages/nim.tmLanguage.json",
"node_modules/shiki/languages/nix.tmLanguage.json",
"node_modules/shiki/languages/objective-c.tmLanguage.json",
"node_modules/shiki/languages/objective-cpp.tmLanguage.json",
"node_modules/shiki/languages/ocaml.tmLanguage.json",
"node_modules/shiki/languages/pascal.tmLanguage.json",
"node_modules/shiki/languages/perl.tmLanguage.json",
"node_modules/shiki/languages/php-html.tmLanguage.json",
"node_modules/shiki/languages/php.tmLanguage.json",
"node_modules/shiki/languages/plsql.tmLanguage.json",
"node_modules/shiki/languages/postcss.tmLanguage.json",
"node_modules/shiki/languages/powerquery.tmLanguage.json",
"node_modules/shiki/languages/powershell.tmLanguage.json",
"node_modules/shiki/languages/prisma.tmLanguage.json",
"node_modules/shiki/languages/prolog.tmLanguage.json",
"node_modules/shiki/languages/proto.tmLanguage.json",
"node_modules/shiki/languages/pug.tmLanguage.json",
"node_modules/shiki/languages/puppet.tmLanguage.json",
"node_modules/shiki/languages/purescript.tmLanguage.json",
"node_modules/shiki/languages/python.tmLanguage.json",
"node_modules/shiki/languages/r.tmLanguage.json",
"node_modules/shiki/languages/raku.tmLanguage.json",
"node_modules/shiki/languages/razor.tmLanguage.json",
"node_modules/shiki/languages/reg.tmLanguage.json",
"node_modules/shiki/languages/rel.tmLanguage.json",
"node_modules/shiki/languages/riscv.tmLanguage.json",
"node_modules/shiki/languages/rst.tmLanguage.json",
"node_modules/shiki/languages/ruby.tmLanguage.json",
"node_modules/shiki/languages/rust.tmLanguage.json",
"node_modules/shiki/languages/sas.tmLanguage.json",
"node_modules/shiki/languages/sass.tmLanguage.json",
"node_modules/shiki/languages/scala.tmLanguage.json",
"node_modules/shiki/languages/scheme.tmLanguage.json",
"node_modules/shiki/languages/scss.tmLanguage.json",
"node_modules/shiki/languages/shaderlab.tmLanguage.json",
"node_modules/shiki/languages/shellscript.tmLanguage.json",
"node_modules/shiki/languages/shellsession.tmLanguage.json",
"node_modules/shiki/languages/smalltalk.tmLanguage.json",
"node_modules/shiki/languages/solidity.tmLanguage.json",
"node_modules/shiki/languages/sparql.tmLanguage.json",
"node_modules/shiki/languages/splunk.tmLanguage.json",
"node_modules/shiki/languages/sql.tmLanguage.json",
"node_modules/shiki/languages/ssh-config.tmLanguage.json",
"node_modules/shiki/languages/stata.tmLanguage.json",
"node_modules/shiki/languages/stylus.tmLanguage.json",
"node_modules/shiki/languages/svelte.tmLanguage.json",
"node_modules/shiki/languages/swift.tmLanguage.json",
"node_modules/shiki/languages/system-verilog.tmLanguage.json",
"node_modules/shiki/languages/tasl.tmLanguage.json",
"node_modules/shiki/languages/tcl.tmLanguage.json",
"node_modules/shiki/languages/tex.tmLanguage.json",
"node_modules/shiki/languages/toml.tmLanguage.json",
"node_modules/shiki/languages/tsx.tmLanguage.json",
"node_modules/shiki/languages/turtle.tmLanguage.json",
"node_modules/shiki/languages/twig.tmLanguage.json",
"node_modules/shiki/languages/typescript.tmLanguage.json",
"node_modules/shiki/languages/v.tmLanguage.json",
"node_modules/shiki/languages/vb.tmLanguage.json",
"node_modules/shiki/languages/verilog.tmLanguage.json",
"node_modules/shiki/languages/vhdl.tmLanguage.json",
"node_modules/shiki/languages/viml.tmLanguage.json",
"node_modules/shiki/languages/vue-html.tmLanguage.json",
"node_modules/shiki/languages/vue.tmLanguage.json",
"node_modules/shiki/languages/vyper.tmLanguage.json",
"node_modules/shiki/languages/wasm.tmLanguage.json",
"node_modules/shiki/languages/wenyan.tmLanguage.json",
"node_modules/shiki/languages/wgsl.tmLanguage.json",
"node_modules/shiki/languages/wolfram.tmLanguage.json",
"node_modules/shiki/languages/xml.tmLanguage.json",
"node_modules/shiki/languages/xsl.tmLanguage.json",
"node_modules/shiki/languages/yaml.tmLanguage.json",
"node_modules/shiki/languages/zenscript.tmLanguage.json",
"node_modules/shiki/languages/zig.tmLanguage.json",
"node_modules/shiki/package.json",
"node_modules/shiki/themes/css-variables.json",
"node_modules/shiki/themes/dark-plus.json",
"node_modules/shiki/themes/dracula-soft.json",
"node_modules/shiki/themes/dracula.json",
"node_modules/shiki/themes/github-dark-dimmed.json",
"node_modules/shiki/themes/github-dark.json",
"node_modules/shiki/themes/github-light.json",
"node_modules/shiki/themes/hc_light.json",
"node_modules/shiki/themes/light-plus.json",
"node_modules/shiki/themes/material-theme-darker.json",
"node_modules/shiki/themes/material-theme-lighter.json",
"node_modules/shiki/themes/material-theme-ocean.json",
"node_modules/shiki/themes/material-theme-palenight.json",
"node_modules/shiki/themes/material-theme.json",
"node_modules/shiki/themes/min-dark.json",
"node_modules/shiki/themes/min-light.json",
"node_modules/shiki/themes/monokai.json",
"node_modules/shiki/themes/nord.json",
"node_modules/shiki/themes/one-dark-pro.json",
"node_modules/shiki/themes/poimandres.json",
"node_modules/shiki/themes/rose-pine-dawn.json",
"node_modules/shiki/themes/rose-pine-moon.json",
"node_modules/shiki/themes/rose-pine.json",
"node_modules/shiki/themes/slack-dark.json",
"node_modules/shiki/themes/slack-ochin.json",
"node_modules/shiki/themes/solarized-dark.json",
"node_modules/shiki/themes/solarized-light.json",
"node_modules/shiki/themes/vitesse-dark.json",
"node_modules/shiki/themes/vitesse-light.json",
"node_modules/vscode-oniguruma/package.json",
"node_modules/vscode-oniguruma/release/main.js",
"node_modules/vscode-oniguruma/release/onig.wasm",
"node_modules/vscode-textmate/package.json",
"node_modules/vscode-textmate/release/main.js",
"package.json",
"test/unit/shiki/input.js"
]
30 changes: 30 additions & 0 deletions yarn.lock
Expand Up @@ -2682,6 +2682,11 @@ ansi-regex@^5.0.1:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==

ansi-sequence-parser@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz#e0aa1cdcbc8f8bb0b5bca625aac41f5f056973cf"
integrity sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==

ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
Expand Down Expand Up @@ -9409,6 +9414,11 @@ json5@^2.1.2:
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==

jsonc-parser@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76"
integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==

jsonfile@^2.1.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
Expand Down Expand Up @@ -14473,6 +14483,16 @@ shell-quote@^1.4.2, shell-quote@^1.6.1:
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123"
integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==

shiki@^0.14.5:
version "0.14.5"
resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.5.tgz#375dd214e57eccb04f0daf35a32aa615861deb93"
integrity sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==
dependencies:
ansi-sequence-parser "^1.1.0"
jsonc-parser "^3.2.0"
vscode-oniguruma "^1.7.0"
vscode-textmate "^8.0.0"

shortid@^2.2.6:
version "2.2.16"
resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608"
Expand Down Expand Up @@ -16555,6 +16575,16 @@ void-elements@^3.1.0:
resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09"
integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=

vscode-oniguruma@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b"
integrity sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==

vscode-textmate@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-8.0.0.tgz#2c7a3b1163ef0441097e0b5d6389cd5504b59e5d"
integrity sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==

vue-server-renderer@^2.6.10:
version "2.6.12"
resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.6.12.tgz#a8cb9c49439ef205293cb41c35d0d2b0541653a5"
Expand Down

0 comments on commit 1fc9e01

Please sign in to comment.