forked from pikelet-lang/pikelet
/
index.js
49 lines (42 loc) 路 1008 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import hljs from "highlight.js/lib/core";
hljs.registerLanguage("pikelet", (hljs) => {
const KEYWORDS = {
keyword: "as fun Fun record Record",
built_in: "Type Bool true false U8 U16 U32 U64 S8 S16 S32 S64 F32 F64 String Char Array List",
};
const CHARACTER = {
className: "string",
begin: /'([^'\\]|\\.)*'/,
};
const STRING = {
className: "string",
begin: /"([^"\\]|\\.)*"/,
};
const NUMBER = {
className: "number",
begin: /\b[-+]?[0-9][a-zA-Z0-9_\.]*\b/,
relevance: 0,
};
const COMMENT = {
variants: [
hljs.COMMENT("--", "$"),
hljs.COMMENT("|||", "$"),
],
};
return {
name: "Fathom",
keywords: KEYWORDS,
contains: [
STRING,
CHARACTER,
NUMBER,
COMMENT,
{ begin: "->|<-" }, // No markup, relevance booster
],
};
});
window.addEventListener("load", (event) => {
document
.querySelectorAll("code.language-pikelet")
.forEach((block) => hljs.highlightBlock(block));
});