Shion のもくログ(旧: Shion の技術メモ)

使った技術のメモや、うまくいかなかった事とかを綴ります

PR

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 なし

参考資料

PR