Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/wangchucheng/hugo-eureka.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWANG Chucheng <me@wangchucheng.com>2022-02-04 06:52:18 +0300
committerWANG Chucheng <me@wangchucheng.com>2022-02-04 06:52:18 +0300
commit022f844c82995cd4b06f4454d3bec755a8fecbb8 (patch)
tree5c9864f889f06d29e840d0c9abab5072c46057c7
parent89c48bd92b34b165770069b01aa9e2511d0448ca (diff)
refactor: allow users to disable highlight.js
Closes #141
-rw-r--r--assets/css/syntax.css82
-rw-r--r--layouts/_default/single.html3
-rw-r--r--layouts/partials/components/doc-layout.html3
-rw-r--r--layouts/partials/head.html13
4 files changed, 98 insertions, 3 deletions
diff --git a/assets/css/syntax.css b/assets/css/syntax.css
new file mode 100644
index 0000000..83a208e
--- /dev/null
+++ b/assets/css/syntax.css
@@ -0,0 +1,82 @@
+/* Background */ .chroma { color: #e7e9db; background-color: #2f1e2e }
+/* Other */ .chroma .x { }
+/* Error */ .chroma .err { color: #ef6155 }
+/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
+/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
+/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc }
+/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
+/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
+/* Keyword */ .chroma .k { color: #815ba4 }
+/* KeywordConstant */ .chroma .kc { color: #815ba4 }
+/* KeywordDeclaration */ .chroma .kd { color: #815ba4 }
+/* KeywordNamespace */ .chroma .kn { color: #5bc4bf }
+/* KeywordPseudo */ .chroma .kp { color: #815ba4 }
+/* KeywordReserved */ .chroma .kr { color: #815ba4 }
+/* KeywordType */ .chroma .kt { color: #fec418 }
+/* Name */ .chroma .n { }
+/* NameAttribute */ .chroma .na { color: #06b6ef }
+/* NameBuiltin */ .chroma .nb { }
+/* NameBuiltinPseudo */ .chroma .bp { }
+/* NameClass */ .chroma .nc { color: #fec418 }
+/* NameConstant */ .chroma .no { color: #ef6155 }
+/* NameDecorator */ .chroma .nd { color: #5bc4bf }
+/* NameEntity */ .chroma .ni { }
+/* NameException */ .chroma .ne { color: #ef6155 }
+/* NameFunction */ .chroma .nf { color: #06b6ef }
+/* NameFunctionMagic */ .chroma .fm { }
+/* NameLabel */ .chroma .nl { }
+/* NameNamespace */ .chroma .nn { color: #fec418 }
+/* NameOther */ .chroma .nx { color: #06b6ef }
+/* NameProperty */ .chroma .py { }
+/* NameTag */ .chroma .nt { color: #5bc4bf }
+/* NameVariable */ .chroma .nv { color: #ef6155 }
+/* NameVariableClass */ .chroma .vc { }
+/* NameVariableGlobal */ .chroma .vg { }
+/* NameVariableInstance */ .chroma .vi { }
+/* NameVariableMagic */ .chroma .vm { }
+/* Literal */ .chroma .l { color: #f99b15 }
+/* LiteralDate */ .chroma .ld { color: #48b685 }
+/* LiteralString */ .chroma .s { color: #48b685 }
+/* LiteralStringAffix */ .chroma .sa { color: #48b685 }
+/* LiteralStringBacktick */ .chroma .sb { color: #48b685 }
+/* LiteralStringChar */ .chroma .sc { }
+/* LiteralStringDelimiter */ .chroma .dl { color: #48b685 }
+/* LiteralStringDoc */ .chroma .sd { color: #776e71 }
+/* LiteralStringDouble */ .chroma .s2 { color: #48b685 }
+/* LiteralStringEscape */ .chroma .se { color: #f99b15 }
+/* LiteralStringHeredoc */ .chroma .sh { color: #48b685 }
+/* LiteralStringInterpol */ .chroma .si { color: #f99b15 }
+/* LiteralStringOther */ .chroma .sx { color: #48b685 }
+/* LiteralStringRegex */ .chroma .sr { color: #48b685 }
+/* LiteralStringSingle */ .chroma .s1 { color: #48b685 }
+/* LiteralStringSymbol */ .chroma .ss { color: #48b685 }
+/* LiteralNumber */ .chroma .m { color: #f99b15 }
+/* LiteralNumberBin */ .chroma .mb { color: #f99b15 }
+/* LiteralNumberFloat */ .chroma .mf { color: #f99b15 }
+/* LiteralNumberHex */ .chroma .mh { color: #f99b15 }
+/* LiteralNumberInteger */ .chroma .mi { color: #f99b15 }
+/* LiteralNumberIntegerLong */ .chroma .il { color: #f99b15 }
+/* LiteralNumberOct */ .chroma .mo { color: #f99b15 }
+/* Operator */ .chroma .o { color: #5bc4bf }
+/* OperatorWord */ .chroma .ow { color: #5bc4bf }
+/* Punctuation */ .chroma .p { }
+/* Comment */ .chroma .c { color: #776e71 }
+/* CommentHashbang */ .chroma .ch { color: #776e71 }
+/* CommentMultiline */ .chroma .cm { color: #776e71 }
+/* CommentSingle */ .chroma .c1 { color: #776e71 }
+/* CommentSpecial */ .chroma .cs { color: #776e71 }
+/* CommentPreproc */ .chroma .cp { color: #776e71 }
+/* CommentPreprocFile */ .chroma .cpf { color: #776e71 }
+/* Generic */ .chroma .g { }
+/* GenericDeleted */ .chroma .gd { color: #ef6155 }
+/* GenericEmph */ .chroma .ge { font-style: italic }
+/* GenericError */ .chroma .gr { }
+/* GenericHeading */ .chroma .gh { font-weight: bold }
+/* GenericInserted */ .chroma .gi { color: #48b685 }
+/* GenericOutput */ .chroma .go { }
+/* GenericPrompt */ .chroma .gp { color: #776e71; font-weight: bold }
+/* GenericStrong */ .chroma .gs { font-weight: bold }
+/* GenericSubheading */ .chroma .gu { color: #5bc4bf; font-weight: bold }
+/* GenericTraceback */ .chroma .gt { }
+/* GenericUnderline */ .chroma .gl { }
+/* TextWhitespace */ .chroma .w { }
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
index 1d1245d..bb5b178 100644
--- a/layouts/_default/single.html
+++ b/layouts/_default/single.html
@@ -55,9 +55,12 @@
</div>
{{ end }}
</div>
+{{/* highlight */}}
+{{- if eq .Site.Params.highlight.handler "highlightjs" }}
<script>
document.addEventListener('DOMContentLoaded', ()=>{
hljs.initHighlightingOnLoad();
})
</script>
+{{- end }}
{{ end }} \ No newline at end of file
diff --git a/layouts/partials/components/doc-layout.html b/layouts/partials/components/doc-layout.html
index ef0a38f..3e12176 100644
--- a/layouts/partials/components/doc-layout.html
+++ b/layouts/partials/components/doc-layout.html
@@ -53,7 +53,10 @@
<script>
document.addEventListener('DOMContentLoaded', () => {
+ {{/* highlight */}}
+ {{- if eq .Site.Params.highlight.handler "highlightjs" }}
hljs.initHighlightingOnLoad();
+ {{- end }}
changeSidebarHeight();
switchDocToc();
})
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
index 7d98c8e..80a4a22 100644
--- a/layouts/partials/head.html
+++ b/layouts/partials/head.html
@@ -67,16 +67,23 @@
as="style" onload="this.onload=null;this.rel='stylesheet'">
{{- $assets := .Site.Data.assets }}
-{{ $highlightjsStyle := .Site.Params.highlight.highlightjs.style | default "solarized-light" }}
+
+{{/* highlight */}}
+{{- if eq .Site.Params.highlight.handler "chroma" }}
+{{- $highlightCSS := resources.Get "css/syntax.css" | minify | fingerprint "sha384" }}
+<link rel="stylesheet" href="{{ $highlightCSS.Permalink }}" integrity="{{ $highlightCSS.Data.Integrity }}" media="print" onload="this.media='all';this.onload=null">
+{{- else if eq .Site.Params.highlight.handler "highlightjs" }}
+{{- $highlightjsStyle := .Site.Params.highlight.highlightjs.style | default "solarized-light" }}
<link rel="stylesheet" href="{{ printf $assets.highlightjs.css.url $assets.highlightjs.version $highlightjsStyle }}"
{{ with $assets.highlightjs.css.sri }} integrity="{{ . }}" {{ end }} media="print"
onload="this.media='all';this.onload=null" crossorigin>
<script defer src="{{ printf $assets.highlightjs.js.url $assets.highlightjs.version }}"
{{ with $assets.highlightjs.js.sri }} integrity="{{ . }}" {{ end }} crossorigin></script>
-{{ range .Site.Params.highlight.highlightjs.languages }}
+{{- range .Site.Params.highlight.highlightjs.languages }}
<script defer src="{{ printf $assets.highlightjs.languages.url $assets.highlightjs.version . }}"
{{ with $assets.highlightjs.languages.sri }} integrity="{{ . }}" {{ end }} crossorigin></script>
-{{ end }}
+{{- end }}
+{{- end }}
{{ $fontawesomeJS := resources.Get "js/fontawesome.js" | resources.ExecuteAsTemplate "js/fontawesome.js" . | js.Build (dict "minify" true) | minify | fingerprint "sha384" }}
<script defer type="text/javascript" src="{{ $fontawesomeJS.Permalink }}" integrity="{{ $fontawesomeJS.Data.Integrity }}"></script>