diff --git a/config.yml b/config.yml
index efb7187..5381f7a 100644
--- a/config.yml
+++ b/config.yml
@@ -13,6 +13,10 @@ markup:
goldmark:
renderer:
unsafe: true
+ highlight:
+ codeFences: true
+ noClasses: false
+ style: monokai
summaryLength: 40
enableEmoji: true
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 73c6599..103a61e 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -5,7 +5,6 @@
{{ partial "style.html" "scss/style.scss" }}
- {{ partial "style.html" "css/highlight.css" }}
{{ partial "style.html" "css/font-awesome.css" }}
{{ partial "favicon.html" }}
diff --git a/scripts/build.sh b/scripts/build.sh
index a79e85a..10c8e38 100755
--- a/scripts/build.sh
+++ b/scripts/build.sh
@@ -23,5 +23,4 @@ cp -r "$STATIC_SRC/scss"/* "$STATIC_BUILD/scss"
cp -r "$BASEDIR/node_modules/@fortawesome/fontawesome-free/webfonts" "$STATIC_BUILD"
-hugo gen chromastyles --style=monokai > "$STATIC_BUILD/css/highlight.css"
hugo -vDEF --gc $@
diff --git a/static/src/scss/_chroma.scss b/static/src/scss/_chroma.scss
new file mode 100644
index 0000000..862d41e
--- /dev/null
+++ b/static/src/scss/_chroma.scss
@@ -0,0 +1,82 @@
+/* Background */ .chroma { color: #f8f8f2; background-color: $codeblock-background }
+/* Other */ .chroma .x { }
+/* Error */ .chroma .err { color: #960050; background-color: #1e0010 }
+/* 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: #3c3d38 }
+/* 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: #66d9ef }
+/* KeywordConstant */ .chroma .kc { color: #66d9ef }
+/* KeywordDeclaration */ .chroma .kd { color: #66d9ef }
+/* KeywordNamespace */ .chroma .kn { color: #f92672 }
+/* KeywordPseudo */ .chroma .kp { color: #66d9ef }
+/* KeywordReserved */ .chroma .kr { color: #66d9ef }
+/* KeywordType */ .chroma .kt { color: #66d9ef }
+/* Name */ .chroma .n { }
+/* NameAttribute */ .chroma .na { color: #a6e22e }
+/* NameBuiltin */ .chroma .nb { }
+/* NameBuiltinPseudo */ .chroma .bp { }
+/* NameClass */ .chroma .nc { color: #a6e22e }
+/* NameConstant */ .chroma .no { color: #66d9ef }
+/* NameDecorator */ .chroma .nd { color: #a6e22e }
+/* NameEntity */ .chroma .ni { }
+/* NameException */ .chroma .ne { color: #a6e22e }
+/* NameFunction */ .chroma .nf { color: #a6e22e }
+/* NameFunctionMagic */ .chroma .fm { }
+/* NameLabel */ .chroma .nl { }
+/* NameNamespace */ .chroma .nn { }
+/* NameOther */ .chroma .nx { color: #a6e22e }
+/* NameProperty */ .chroma .py { }
+/* NameTag */ .chroma .nt { color: #f92672 }
+/* NameVariable */ .chroma .nv { }
+/* NameVariableClass */ .chroma .vc { }
+/* NameVariableGlobal */ .chroma .vg { }
+/* NameVariableInstance */ .chroma .vi { }
+/* NameVariableMagic */ .chroma .vm { }
+/* Literal */ .chroma .l { color: #ae81ff }
+/* LiteralDate */ .chroma .ld { color: #e6db74 }
+/* LiteralString */ .chroma .s { color: #e6db74 }
+/* LiteralStringAffix */ .chroma .sa { color: #e6db74 }
+/* LiteralStringBacktick */ .chroma .sb { color: #e6db74 }
+/* LiteralStringChar */ .chroma .sc { color: #e6db74 }
+/* LiteralStringDelimiter */ .chroma .dl { color: #e6db74 }
+/* LiteralStringDoc */ .chroma .sd { color: #e6db74 }
+/* LiteralStringDouble */ .chroma .s2 { color: #e6db74 }
+/* LiteralStringEscape */ .chroma .se { color: #ae81ff }
+/* LiteralStringHeredoc */ .chroma .sh { color: #e6db74 }
+/* LiteralStringInterpol */ .chroma .si { color: #e6db74 }
+/* LiteralStringOther */ .chroma .sx { color: #e6db74 }
+/* LiteralStringRegex */ .chroma .sr { color: #e6db74 }
+/* LiteralStringSingle */ .chroma .s1 { color: #e6db74 }
+/* LiteralStringSymbol */ .chroma .ss { color: #e6db74 }
+/* LiteralNumber */ .chroma .m { color: #ae81ff }
+/* LiteralNumberBin */ .chroma .mb { color: #ae81ff }
+/* LiteralNumberFloat */ .chroma .mf { color: #ae81ff }
+/* LiteralNumberHex */ .chroma .mh { color: #ae81ff }
+/* LiteralNumberInteger */ .chroma .mi { color: #ae81ff }
+/* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff }
+/* LiteralNumberOct */ .chroma .mo { color: #ae81ff }
+/* Operator */ .chroma .o { color: #f92672 }
+/* OperatorWord */ .chroma .ow { color: #f92672 }
+/* Punctuation */ .chroma .p { }
+/* Comment */ .chroma .c { color: #75715e }
+/* CommentHashbang */ .chroma .ch { color: #75715e }
+/* CommentMultiline */ .chroma .cm { color: #75715e }
+/* CommentSingle */ .chroma .c1 { color: #75715e }
+/* CommentSpecial */ .chroma .cs { color: #75715e }
+/* CommentPreproc */ .chroma .cp { color: #75715e }
+/* CommentPreprocFile */ .chroma .cpf { color: #75715e }
+/* Generic */ .chroma .g { }
+/* GenericDeleted */ .chroma .gd { color: #f92672 }
+/* GenericEmph */ .chroma .ge { font-style: italic }
+/* GenericError */ .chroma .gr { }
+/* GenericHeading */ .chroma .gh { }
+/* GenericInserted */ .chroma .gi { color: #a6e22e }
+/* GenericOutput */ .chroma .go { }
+/* GenericPrompt */ .chroma .gp { }
+/* GenericStrong */ .chroma .gs { font-weight: bold }
+/* GenericSubheading */ .chroma .gu { color: #75715e }
+/* GenericTraceback */ .chroma .gt { }
+/* GenericUnderline */ .chroma .gl { }
+/* TextWhitespace */ .chroma .w { }
diff --git a/static/src/scss/_code.scss b/static/src/scss/_code.scss
new file mode 100644
index 0000000..29370d5
--- /dev/null
+++ b/static/src/scss/_code.scss
@@ -0,0 +1,71 @@
+code {
+ font-family: $font-family-mono;
+ font-display: auto;
+ font-feature-settings: normal;
+ background: $inline-code-background;
+ padding: 1px 6px;
+ margin: 0 2px;
+ border-radius: 5px;
+ font-size: 0.95rem;
+ color: $inline-code-color;
+}
+
+.highlight {
+ margin: 3rem 0 1rem;
+}
+.highlight > div {
+ background: $codeblock-background;
+}
+
+.highlight > pre {
+ margin: 0 0 2rem;
+ padding: 1rem;
+ // border-radius: 1 rem;
+}
+
+code[class*="language-"],
+pre[class*="language-"] {
+ color: #ccc;
+ font-family: $font-family-mono;
+ font-size: 1em;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ word-wrap: normal;
+ tab-size: 4;
+ hyphens: none;
+}
+
+.chroma [data-lang]:before {
+ position: absolute;
+ z-index: 0;
+ top: -22px;
+ left: 0;
+ content: attr(data-lang);
+ font-size: 0.8em;
+ color: #a9a9b3;
+ background-color: $codeblock-background;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+ padding: 5px 10px 7px;
+ line-height: 1.2;
+}
+
+pre {
+ background: $codeblock-background;
+ text-align: left;
+ border-radius: 8px;
+ font-size: 0.95rem;
+ overflow: auto;
+
+ code {
+ background: none !important;
+ color: inherit;
+ margin: 0;
+ padding: 0;
+ font-size: inherit;
+ }
+}
diff --git a/static/src/scss/style.scss b/static/src/scss/style.scss
index 32e6b0e..4780068 100644
--- a/static/src/scss/style.scss
+++ b/static/src/scss/style.scss
@@ -3,24 +3,45 @@ $primary-light: #FF773D;
$primary-lighter: #F19143;
$primary-yellow: #FFB238;
$primary-red: #B20600;
+
+$inline-code-color: #E2777A;
+$inline-code-background: #3B3D42;
+$codeblock-background: #272822;
+
$body-bg: #17181C;
$footer-height: 110px;
$headings-margin-bottom: 1.5rem;
$paragraph-margin-bottom: $headings-margin-bottom * 0.85;
$font-family-body: "Inter", -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", Helvetica, Arial, sans-serif;
+$font-family-mono: "JetBrains Mono", monospace;
$font-size-base: 1.2rem;
@import "node_modules/bootstrap/scss/bootstrap";
+
@import url('https://rsms.me/inter/inter.css');
+@font-face {
+ font-style: normal;
+ font-family: "JetBrains Mono";
+ font-display: swap;
+ src: local("JetBrains Mono"),
+ local("JetBrains-Mono"),
+ url("../lib/JetBrainsMono/web/woff2/JetBrainsMono-Regular.woff2") format("woff2"),
+ url("../lib/JetBrainsMono/web/woff/JetBrainsMono-Regular.woff") format("woff"),
+ url("../lib/JetBrainsMono/web/eot/JetBrainsMono-Regular.eot") format("embedded-opentype"),
+ url("../lib/JetBrainsMono/ttf/JetBrainsMono-Regular.ttf") format("truetype");
+};
$navbar-height: 40px;
$body-color: $gray-300;
+
+@import "chroma";
@import "main";
@import "navbar";
@import "footer";
@import "items";
@import "table_of_contents";
@import "anchors";
+@import "code";
@import "code_copy";