Prism.js で言語設定する際の依存関係のメモ
Prism.js は文中にあるプログラム言語のキーワードをコードハイライトしてくれるライブラリです。 Markdown 記法のパーサーであるmarked.js などに組み込まれていたりします。
実際にコードハイライトするためには、各プログラミング言語に対応したJavaScript Mudule を設定する必要があります。 そのJavaScript Mudule には依存関係があったりするので、この記事でまとめていきたいと思います。
基本的な使い方
コードハイライトについて
Markdown 記法でコードハイライトするためには、まず下記のように言語名を書く必要があります。 コードハイライトライブラリは、この言語名を解析して、適切なスタイルを適用してくれます。
``` javascript
+function() {
console.log('Hello World!')
}()
```
上記の記述をMarkdown 中に記述すると、下記のようにハイライトがあたります。
+function() {
console.log('Hello World!')
}()
JavaScript Mudule 設定について
Prism.js の場合、ハイライトしたいプログラミング言語に合わせてJavaScript Module を設定していく必要があります。
Angular の場合
Angular.json
の"architect" > "build" > "options" > "scripts" に依存関係を記述していきます。
設定例(省略している記述があるので注意してください)
{
"projects": {
"app": {
"architect": {
"build": {
"options": {
"styles": [
"node_modules/prismjs/plugins/line-numbers/prism-line-numbers.css",
"node_modules/prismjs/themes/prism-okaidia.css"
],
"scripts": [
"node_modules/marked/lib/marked.js",
"node_modules/prismjs/prism.js",
"node_modules/prismjs/components/prism-aspnet.min.js",
"node_modules/prismjs/components/prism-bash.min.js",
"node_modules/prismjs/components/prism-c.min.js",
"node_modules/prismjs/components/prism-clike.min.js",
"node_modules/prismjs/components/prism-csharp.min.js",
"node_modules/prismjs/components/prism-css.min.js",
"node_modules/prismjs/components/prism-dart.min.js",
"node_modules/prismjs/components/prism-docker.min.js",
"node_modules/prismjs/components/prism-java.min.js",
"node_modules/prismjs/components/prism-javascript.min.js",
"node_modules/prismjs/components/prism-json.min.js",
"node_modules/prismjs/components/prism-kotlin.min.js",
"node_modules/prismjs/components/prism-markdown.min.js",
"node_modules/prismjs/components/prism-markup.min.js",
"node_modules/prismjs/components/prism-objectivec.min.js",
"node_modules/prismjs/components/prism-powershell.min.js",
"node_modules/prismjs/components/prism-scss.min.js",
"node_modules/prismjs/components/prism-sql.min.js",
"node_modules/prismjs/components/prism-swift.min.js",
"node_modules/prismjs/components/prism-typescript.min.js",
"node_modules/prismjs/components/prism-yaml.min.js",
"node_modules/prismjs/plugins/line-numbers/prism-line-numbers.js"
]
},
},
}
},
},
}
依存関係一覧
追加で必要なCSS は「依存関係」欄に記載しています。
言語名 | コードに書く言語名 | 依存関係 |
---|---|---|
ABAP | abap | なし |
Augmented Backus–Naur form | abnf | なし |
ActionScript | actionscript | javascript |
Ada | ada | なし |
Apache Configuration | apacheconf | なし |
APL | apl | なし |
AppleScript | applescript | なし |
Arduino | arduino | cpp |
ARFF | arff | なし |
AsciiDoc | asciidoc, adoc | なし |
6502 Assembly | asm6502 | なし |
ASP .NET (C#) | aspnet | markup |
AutoHotkey | autohotkey | なし |
AutoIt | autoit | なし |
Bash | bash, shell | なし |
BASIC | basic | なし |
Batch | batch | なし |
Bison | bison | c |
Backus–Naur form | bnf, rbnf | なし |
Brainfuck | brainfuck | なし |
Bro | bro | なし |
C | c | clike |
C-like | clike | なし |
C# | csharp, cs, dotnet | clike |
C++ | cpp | なし |
CIL | cil | なし |
CoffeeScript | coffeescript, coffee | javascript |
CMake | cmake | なし |
Clojure | clojure | なし |
Crystal | crystal | ruby |
Content-Security-Policy | csp | なし |
CSS | css | なし |
CSS Extras | css-extras | なし |
D | d | clike |
Dart | dart | clike |
Diff | diff | なし |
Django/Jinja2 | django, jinja2 | なし |
DNS zone file | dns-zone-file, dns-zone | なし |
Docker | docker, dockerfile | なし |
Extended Backus–Naur form | ebnf | なし |
Eiffel | eiffel | なし |
EJS | ejs | なし |
Elixir | elixir | なし |
Elm | elm | なし |
ERB | erb | ruby |
Erlang | erlang | なし |
F# | fsharp | clike |
Firestore security rules | firestore-security-rules | なし |
Flow | flow | javascript |
Fortran | fortran | なし |
G-code | gcode | なし |
GDScript | gdscript | なし |
GEDCOM | gedcom | なし |
Gherkin | gherkin | なし |
Git | git | なし |
GLSL | glsl | clike |
GameMaker Language | gml, gamemakerlanguage | clike |
Go | go | clike |
GraphQL | graphql | なし |
Groovy | groovy | clike |
Haml | haml | なし |
Handlebars | handlebars | なし |
Haskell | haskell, hs | なし |
Haxe | haxe | clike |
HCL | hcl | なし |
HTTP | http | なし |
HTTP Public-Key-Pins | hpkp | なし |
HTTP Strict-Transport-Security | hsts | なし |
IchigoJam | ichigojam | なし |
Icon | icon | なし |
Inform 7 | inform7 | なし |
Ini | ini | なし |
Io | io | なし |
J | j | なし |
Java | java | clike |
JavaDoc | javadoc | javadoclike |
JavaDoc-like | javadoclike | なし |
Java stack trace | javastacktrace | なし |
JavaScript | javascript, js | clike |
Jolie | jolie | clike |
JQ | jq | なし |
JSDoc | jsdoc | javadoclike |
JS Extras | js-extras | なし |
JS Templates | js-templates | なし |
JSON | json | なし |
JSONP | jsonp | json |
JSON5 | json5 | json |
Julia | julia | なし |
Keyman | keyman | なし |
Kotlin | kotlin | clike |
LaTeX | latex, tex, context | なし |
Less | less | css |
LilyPond | lilypond, ly | なし |
Liquid | liquid | なし |
Lisp | lisp, emacs, elisp, emacs-lisp | なし |
LiveScript | livescript | なし |
LOLCODE | lolcode | なし |
Lua | lua | なし |
Makefile | makefile | なし |
Markdown | markdown, md | markup |
Markup | markup, html, xml, svg, mathml | なし |
Markup templating | markup-templating | なし |
MATLAB | matlab | なし |
MEL | mel | なし |
Mizar | mizar | なし |
Monkey | monkey | なし |
N1QL | n1ql | なし |
N4JS | n4js, n4jsd | javascript |
Nand To Tetris HDL | nand2tetris-hdl | なし |
NASM | nasm | なし |
nginx | nginx | clike |
Nim | nim | なし |
Nix | nix | なし |
NSIS | nsis | なし |
Objective-C | objectivec | c |
OCaml | ocaml | なし |
OpenCL | opencl | c |
Oz | oz | なし |
PARI/GP | parigp | なし |
Parser | parser | markup |
Pascal | pascal, objectpascal | なし |
Pascaligo | pascaligo | なし |
PC-Axis | pcaxis, px | なし |
Perl | perl | なし |
PHP | php | clike |
PHPDoc | phpdoc | javadoclike |
PHP Extras | php-extras | なし |
PL/SQL | plsql | sql |
PowerShell | powershell | なし |
Processing | processing | clike |
Prolog | prolog | なし |
.properties | properties | なし |
Protocol Buffers | protobuf | clike |
Pug | pug | なし |
Puppet | puppet | なし |
Pure | pure | なし |
Python | python, py | なし |
Q (kdb+ database) | q | なし |
Qore | qore | clike |
R | r | なし |
React JSX | jsx | markup, javascript |
React TSX | tsx | markup, typescript |
Ren'py | renpy | なし |
Reason | reason | clike |
Regex | regex | なし |
reST (reStructuredText) | rest | なし |
Rip | rip | なし |
Roboconf | roboconf | なし |
Ruby | ruby, rb | clike |
Rust | rust | なし |
SAS | sas | なし |
Sass (Sass) | sass | css |
Sass (Scss) | scss | css |
Scala | scala | java |
Scheme | scheme | なし |
Shell session | shell-session | なし |
Smalltalk | smalltalk | なし |
Smarty | smarty | なし |
Soy (Closure Template) | soy | なし |
Splunk SPL | splunk-spl | なし |
SQL | sql | なし |
Stylus | stylus | なし |
Swift | swift | clike |
TAP | tap | なし |
Tcl | tcl | なし |
Textile | textile | markup |
TOML | toml | なし |
Template Toolkit 2 | tt2 | clike |
Turtle | turtle, trig | なし |
Twig | twig | なし |
TypeScript | typescript, ts | javascript |
T4 Text Templates (C#) | t4-cs, t4 | なし |
T4 Text Templates (VB) | t4-vb | なし |
T4 templating | t4-templating | なし |
Vala | vala | clike |
VB.Net | vbnet | basic |
Velocity | velocity | markup |
Verilog | verilog | なし |
VHDL | vhdl | なし |
vim | vim | なし |
Visual Basic | visual-basic, vb | なし |
WebAssembly | wasm | なし |
Wiki markup | wiki | markup |
Xeora | xeora, xeoracube | markup |
Xojo (REALbasic) | xojo | なし |
XQuery | xquery | markup |
YAML | yaml, yml | なし |
Zig | zig | なし |