From 4e7085e82e7aa48b8bc404fd7926b673fc425cdf Mon Sep 17 00:00:00 2001 From: Melody Horn Date: Tue, 17 Nov 2020 16:23:51 -0700 Subject: rework around cactus-ssg --- .build.yml | 22 ++++ Dockerfile | 6 -- Gemfile | 4 - README.md | 5 +- _config.yml | 9 -- _layouts/default.gmi | 5 + _layouts/default.html | 22 ++-- _posts/2018-06-23-slicing-images-gimp-python.md | 2 +- _posts/2020-06-26-police-scanner-setup.md | 6 +- ...urvey-of-rust-embeddable-scripting-languages.md | 12 +-- ...020-10-13-crowbar-2-simplifying-c-type-names.md | 14 +-- _posts/2020-10-19-crowbar-3-this-is-tough.md | 2 +- assets/fuck-hn.js | 4 + assets/site.css | 116 +++++++++++++++++++++ feed.xml | 23 ++++ fuck-hn.js | 4 - index.md | 6 +- site.css | 116 --------------------- 18 files changed, 205 insertions(+), 173 deletions(-) create mode 100644 .build.yml delete mode 100644 Dockerfile delete mode 100644 Gemfile delete mode 100644 _config.yml create mode 100644 _layouts/default.gmi create mode 100644 assets/fuck-hn.js create mode 100644 assets/site.css create mode 100644 feed.xml delete mode 100644 fuck-hn.js delete mode 100644 site.css diff --git a/.build.yml b/.build.yml new file mode 100644 index 0000000..130204f --- /dev/null +++ b/.build.yml @@ -0,0 +1,22 @@ +image: alpine/latest +packages: + - python3-pip + - rsync +sources: + - https://git.sr.ht/~boringcactus/boringcactus.com + - https://git.sr.ht/~boringcactus/cactus-ssg +environment: + deploy: services@boringcactus.com +secrets: + - b5cb9b2b-1461-4486-95e1-886451674a89 +tasks: + - install: | + cd cactus-ssg + python3 -m pip install -r requirements.txt + - build: | + cd boringcactus.com + python3 ../cactus-ssg/build.py + - deploy: | + cd boringcactus.com + rsync -rP _site/html/ $deploy:/var/www/html/www.boringcactus.com/ + rsync -rP _site/gmi/ $deploy:/var/gemini/gmi/boringcactus.com/ diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index cac9cee..0000000 --- a/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM jekyll/jekyll AS build -COPY . /srv/jekyll -RUN jekyll build && cp -r /srv/jekyll/_site /var/jekyll_site - -FROM nginx -COPY --from=build /var/jekyll_site /usr/share/nginx/html diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 594877b..0000000 --- a/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' -gem 'jekyll-feed' -gem 'github-pages', group: :jekyll_plugins -gem 'wdm', '>= 0.1.0' if Gem.win_platform? diff --git a/README.md b/README.md index 4fdb38b..e766570 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ -# boringcactus.github.io -http://boringcactus.com + + + diff --git a/_config.yml b/_config.yml deleted file mode 100644 index 929180d..0000000 --- a/_config.yml +++ /dev/null @@ -1,9 +0,0 @@ -plugins: - - jekyll-feed -title: boringcactus -description: boringcactus's blog posts -author: boringcactus (Melody Horn) -exclude: - - Dockerfile - - LICENSE - - README.md diff --git a/_layouts/default.gmi b/_layouts/default.gmi new file mode 100644 index 0000000..4a249fd --- /dev/null +++ b/_layouts/default.gmi @@ -0,0 +1,5 @@ +{% if page.url != "/" %}=> / (brought to you by boringcactus) +{% endif %}# {{ page.title }} +{% if page.date %}## {{ page.date.strftime('%d %b %Y') }} +{% endif %} +{{ content }} diff --git a/_layouts/default.html b/_layouts/default.html index 3aa9e43..c56a2d4 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -4,36 +4,36 @@ - + - - + + - - {% if page.url == "/" %} + + {% if page.url == "index" %} {{ page.title }} {% else %} - + {{ page.title }} | boringcactus {% endif %} - - {% feed_meta %} + +
- {% if page.url != "/" %} + {% if page.url != "index" %}

(brought to you by boringcactus)

{% endif %}
-

{{ page.title }}{% if page.date %} ({{ page.date | date_to_string }}){% endif %}

+

{{ page.title }}{% if page.date %} ({{ page.date.strftime('%d %b %Y') }}){% endif %}

{{ content }}
- + diff --git a/_posts/2018-06-23-slicing-images-gimp-python.md b/_posts/2018-06-23-slicing-images-gimp-python.md index 1ad3514..83264b8 100644 --- a/_posts/2018-06-23-slicing-images-gimp-python.md +++ b/_posts/2018-06-23-slicing-images-gimp-python.md @@ -70,7 +70,7 @@ def crop(image, x, width, y, height): ``` The next step is to figure out the filename for this specific tile; here we're getting an index back from the offsets and width and height. -```python +```python x_idx = x / width + 1 y_idx = y / width + 1 filename = pdb.gimp_image_get_filename(image) diff --git a/_posts/2020-06-26-police-scanner-setup.md b/_posts/2020-06-26-police-scanner-setup.md index 3f51871..b8c621b 100644 --- a/_posts/2020-06-26-police-scanner-setup.md +++ b/_posts/2020-06-26-police-scanner-setup.md @@ -79,7 +79,7 @@ of audio input and output devices. check the number in the input list that goes with CABLE Output - for me it's 3. pull up notepad and make a new file. since my input was number 3, i'm typing -``` +```bat DSDPlus.exe -i3M ``` @@ -89,7 +89,7 @@ is set to "All Files", and name the file `run.bat`. close dsd+, go to that folder, and open that `run.bat` file you just created. it should pull up dsd+ and if you're lucky it'll print -``` +```text audio input device #3 (CABLE Output (VB-Audio Virtual ) initialized ``` @@ -194,7 +194,7 @@ you'll need to set DSD+ to output to "CABLE-A Input" like how you set it to input from "CABLE Output" - Cable A is the fourth output in DSD+, so my run.bat now looks like this: -``` +```bat DSDPlus.exe -i3M -o4 ``` diff --git a/_posts/2020-09-16-survey-of-rust-embeddable-scripting-languages.md b/_posts/2020-09-16-survey-of-rust-embeddable-scripting-languages.md index 27df9f3..c2214c0 100644 --- a/_posts/2020-09-16-survey-of-rust-embeddable-scripting-languages.md +++ b/_posts/2020-09-16-survey-of-rust-embeddable-scripting-languages.md @@ -275,7 +275,7 @@ As you may notice, we have to put the number into a string before we can add it This is because all values in Duckscript are strings. Well, now that we've got all the code to pass in variables and run it, let's write our event handler script: -``` +```duckscript if eq ${event.type} "number" echo "number!" ${event.value} else @@ -332,7 +332,7 @@ impl ScriptHost for RhaiScriptHost { That's all of it. That's the whole damn thing. Our script is pretty darn straightforward, too, unsurprisingly: -``` +```rhai fn handle_event(data) { if type_of(data) == "i64" { print("number! " + data); @@ -392,7 +392,7 @@ impl ScriptHost for DyonScriptHost { ``` Our script is likewise pretty straightforward: -``` +```dyon fn handle_event(data) { if typeof(data) == "number" { println("number! " + str(data)) @@ -472,7 +472,7 @@ impl ScriptHost for KetosScriptHost { ``` Our script itself is... definitely Lisp-y. -``` +```ketos (define (handle-event event) (do (println "~a ~a" (type-of event) event) @@ -529,7 +529,7 @@ impl ScriptHost for RuneScriptHost { Again, we have zero glue required for our `print_fancy` function, which is nice. Our script looks pretty decent too: -``` +```rune fn handle_event(event) { match event { n if n is int => println(`Number! {n}`), @@ -622,7 +622,7 @@ impl ScriptHost for RuwrenScriptHost { ``` And our test script in Wren looks nice: -``` +```wren import "demo" for Demo class EventHandler { static handleEvent(data) { diff --git a/_posts/2020-10-13-crowbar-2-simplifying-c-type-names.md b/_posts/2020-10-13-crowbar-2-simplifying-c-type-names.md index 8a63947..9a825e3 100644 --- a/_posts/2020-10-13-crowbar-2-simplifying-c-type-names.md +++ b/_posts/2020-10-13-crowbar-2-simplifying-c-type-names.md @@ -2,7 +2,7 @@ title: "Crowbar: Simplifying C's type names" --- -(Previously in Crowbar: [Defining a good C replacement]({% link _posts/2020-09-28-crowbar-1-defining-a-c-replacement.md %}).) +(Previously in Crowbar: [Defining a good C replacement](/2020/09/28/crowbar-1-defining-a-c-replacement.md).) I've been working intermittently on drawing up a specification for [Crowbar](https://sr.ht/~boringcactus/crowbar-lang/), a C replacement aiming to be both simpler and safer. I'm still nowhere near done, but I'm proud of the concept I've reached for type names, and I want to explain it in depth here. @@ -21,7 +21,7 @@ Ideally, we can preserve the syntax as is for simple cases, while cutting down o As of right now, the Crowbar specification gives the syntax as a [parsing expression grammar](https://en.wikipedia.org/wiki/Parsing_expression_grammar), which I'll give an excerpt from here: -``` +```peg Type ← 'const' BasicType / BasicType '*' / BasicType '[' Expression ']' / @@ -50,7 +50,7 @@ char *str[10]; Evidently this means "str is an array 10 of pointers to char". How would we express that in Crowbar (as it hypothetically exists so far)? -``` +```crowbar (char *)[10] str; ``` @@ -58,7 +58,7 @@ Now that's more like it. We can look at it and tell right away that the array is the outermost piece and so `str` is an array. In C, I'm not sure how we'd express a pointer-to-arrays-of-10-chars, but in Crowbar it's also straightforward: -``` +```crowbar (char[10])* str; ``` @@ -72,7 +72,7 @@ char *(*fp)( int, float *); which supposedly means "fp is a pointer to a function passing an int and a pointer to float returning a pointer to a char". That's not extremely dreadful, merely somewhat off-putting, but let's see how it looks in Crowbar. -``` +```crowbar ((char *) function(int, (float *),)* fp; ``` @@ -93,7 +93,7 @@ That fractal mess is "a function passing an int and a pointer to a function pass My eyes glaze over reading that description even more than they do reading the original C. Can we make this not look awful? -``` +```crowbar ((void function(int,))*) signal(int, ((void function(int,))*),); ``` @@ -114,7 +114,7 @@ int * const const_pointer; // can never do const_pointer = &x; You have to remember which is which. And why memorize when you can read? -``` +```crowbar (const int)* points_to_const; const (int *) const_pointer; ``` diff --git a/_posts/2020-10-19-crowbar-3-this-is-tough.md b/_posts/2020-10-19-crowbar-3-this-is-tough.md index 85dd7bd..a499bc1 100644 --- a/_posts/2020-10-19-crowbar-3-this-is-tough.md +++ b/_posts/2020-10-19-crowbar-3-this-is-tough.md @@ -2,7 +2,7 @@ title: "Crowbar: Turns out, language development is hard" --- -(Previously in Crowbar: [Defining a good C replacement]({% link _posts/2020-09-28-crowbar-1-defining-a-c-replacement.md %}), [Simplifying C's type names]({% link _posts/2020-10-13-crowbar-2-simplifying-c-type-names.md %})) +(Previously in Crowbar: [Defining a good C replacement](/2020/09/28/crowbar-1-defining-a-c-replacement.md), [Simplifying C's type names](/2020/10/13/crowbar-2-simplifying-c-type-names.md)) Originally, I hadn't decided whether Crowbar should be designed with an eye towards compiling to C or with an eye towards compiling directly. Compiling to C massively cuts down the scope of Crowbar as a project, but compiling directly gives me more comprehensive control over what all happens. diff --git a/assets/fuck-hn.js b/assets/fuck-hn.js new file mode 100644 index 0000000..07ff942 --- /dev/null +++ b/assets/fuck-hn.js @@ -0,0 +1,4 @@ +// Hacker News is bad. +if (document.referrer.startsWith("https://news.ycombinator.com")) { + document.location = "https://upload.wikimedia.org/wikipedia/commons/d/d4/Human_fart.wav" +} diff --git a/assets/site.css b/assets/site.css new file mode 100644 index 0000000..31bfa5c --- /dev/null +++ b/assets/site.css @@ -0,0 +1,116 @@ +/* "derived" (stolen) from evenbettermotherfucking.website */ +html { + margin: 1rem auto; + background: #f2f2f2; + color: #444444; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 1.8; + text-shadow: 0 1px 0 #ffffff; + max-width: 60em; +} +body { + margin: 0 1rem; +} +code { + background: white; +} +pre { + line-height: 1.25; +} +.highlight code { + background: unset; +} +div.highlight { + background: white; + padding: 1rem; + line-height: 1; + overflow-x: auto; +} +div.highlight pre { + padding: 0; + margin: 0; +} +a { + border-bottom: 1px solid #444444; + color: #444444; + text-decoration: none; +} +a:hover { + border-bottom-style: dashed; +} +blockquote { + margin-left: 1em; + border-left: 2px solid #444444; + padding-left: 1em; +} + +/* https://github.com/richleland/pygments-css/blob/master/friendly.css */ +.highlight .hll { background-color: #ffffcc } +.highlight .c { color: #60a0b0; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #40a070 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #40a070 } /* Literal.Number.Bin */ +.highlight .mf { color: #40a070 } /* Literal.Number.Float */ +.highlight .mh { color: #40a070 } /* Literal.Number.Hex */ +.highlight .mi { color: #40a070 } /* Literal.Number.Integer */ +.highlight .mo { color: #40a070 } /* Literal.Number.Oct */ +.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #06287e } /* Name.Function.Magic */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ +.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/feed.xml b/feed.xml new file mode 100644 index 0000000..551c13e --- /dev/null +++ b/feed.xml @@ -0,0 +1,23 @@ + + + + + {{ now }} + /feed.xml + boringcactus + boringcactus's blog posts + + boringcactus / Melody Horn + / + + {% for post in posts %} + + {{ post.title }} + + {{ post.date }}T00:00:00Z + {{ post.date }}T00:00:00Z + {{ post.url }} + {{ post | attr(content_attr) }} + + {% endfor %} + diff --git a/fuck-hn.js b/fuck-hn.js deleted file mode 100644 index 07ff942..0000000 --- a/fuck-hn.js +++ /dev/null @@ -1,4 +0,0 @@ -// Hacker News is bad. -if (document.referrer.startsWith("https://news.ycombinator.com")) { - document.location = "https://upload.wikimedia.org/wikipedia/commons/d/d4/Human_fart.wav" -} diff --git a/index.md b/index.md index af101da..27fb800 100644 --- a/index.md +++ b/index.md @@ -5,7 +5,7 @@ description: immortal programming goddess --- i am an immortal programming goddess and a trans ≈woman. -i've been programming for over a decade, and in that time i've worked on [a wide variety of projects]({% link projects.md %}). +i've been programming for over a decade, and in that time i've worked on [a wide variety of projects](/projects/). my pronouns, in descending order of preference, are [ze/hir, it/its, and she/her](https://pronoun.is/ze/hir?or=it&or=she). i exist in a lot of places: @@ -17,6 +17,6 @@ i exist in a lot of places: every once in a very great while i write things here: -{% for post in site.posts %} -- [{{ post.title }} ({{ post.date | date_to_string }})]({{ post.url }}) +{% for post in posts %} +- [{{ post.title }} ({{ post.date.strftime('%d %b %Y') }})](/{{ post.url }}.md) {% endfor %} diff --git a/site.css b/site.css deleted file mode 100644 index 5b6fa18..0000000 --- a/site.css +++ /dev/null @@ -1,116 +0,0 @@ -/* "derived" (stolen) from evenbettermotherfucking.website */ -html { - margin: 1rem auto; - background: #f2f2f2; - color: #444444; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; - font-size: 16px; - line-height: 1.8; - text-shadow: 0 1px 0 #ffffff; - max-width: 60em; -} -body { - margin: 0 1rem; -} -code { - background: white; -} -pre { - line-height: 1.25; -} -.highlight code { - background: unset; -} -div.highlighter-rouge { - background: white; - padding: 1rem; - line-height: 1; - overflow-x: auto; -} -div.highlighter-rouge pre { - padding: 0; - margin: 0; -} -a { - border-bottom: 1px solid #444444; - color: #444444; - text-decoration: none; -} -a:hover { - border-bottom-style: dashed; -} -blockquote { - margin-left: 1em; - border-left: 2px solid #444444; - padding-left: 1em; -} - -/* https://github.com/richleland/pygments-css/blob/master/friendly.css */ -.highlight .hll { background-color: #ffffcc } -.highlight .c { color: #60a0b0; font-style: italic } /* Comment */ -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .k { color: #007020; font-weight: bold } /* Keyword */ -.highlight .o { color: #666666 } /* Operator */ -.highlight .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #007020 } /* Comment.Preproc */ -.highlight .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0044DD } /* Generic.Traceback */ -.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #007020 } /* Keyword.Pseudo */ -.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #902000 } /* Keyword.Type */ -.highlight .m { color: #40a070 } /* Literal.Number */ -.highlight .s { color: #4070a0 } /* Literal.String */ -.highlight .na { color: #4070a0 } /* Name.Attribute */ -.highlight .nb { color: #007020 } /* Name.Builtin */ -.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ -.highlight .no { color: #60add5 } /* Name.Constant */ -.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ -.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #007020 } /* Name.Exception */ -.highlight .nf { color: #06287e } /* Name.Function */ -.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ -.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #bb60d5 } /* Name.Variable */ -.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mb { color: #40a070 } /* Literal.Number.Bin */ -.highlight .mf { color: #40a070 } /* Literal.Number.Float */ -.highlight .mh { color: #40a070 } /* Literal.Number.Hex */ -.highlight .mi { color: #40a070 } /* Literal.Number.Integer */ -.highlight .mo { color: #40a070 } /* Literal.Number.Oct */ -.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ -.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ -.highlight .sc { color: #4070a0 } /* Literal.String.Char */ -.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ -.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ -.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ -.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ -.highlight .sx { color: #c65d09 } /* Literal.String.Other */ -.highlight .sr { color: #235388 } /* Literal.String.Regex */ -.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ -.highlight .ss { color: #517918 } /* Literal.String.Symbol */ -.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #06287e } /* Name.Function.Magic */ -.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ -.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ -.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ -.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ -.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */ \ No newline at end of file -- cgit v1.2.3