lifeblood 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 42110934322c18c62aa64cdfd8d891568eac0ae5b3742d1364a421446cc72c4a
4
+ data.tar.gz: 0a51aa68e2d6c2a05bc56bebf03c581b19a6db74d854b450ae2af3391e7f9658
5
+ SHA512:
6
+ metadata.gz: 6b811802d51173a5764ed291db731ad05dd8d7d732c0ebb83f8522d529ebb05e26fa28255d68135c2e0eaa48371f4b04fda83cbfafcf602ad0292558dd4b2ee7
7
+ data.tar.gz: ae9f6f7f4c46c64ef169196167db7115a6c888125561fc6405d9bf757d546280aa24f96b9ea1b1eea3b1243083726db4a5fc0398293ad78d5c116a8479d22d62
data/404.md ADDED
@@ -0,0 +1,11 @@
1
+ ---
2
+ title: 404
3
+ layout: default
4
+ permalink: /404.html
5
+ ---
6
+
7
+ # page not found
8
+
9
+ sorry, we couldn't find that page.
10
+
11
+ try using the site navigation, or go to the <a href="{{ '/' | absolute_url }}">home page</a>.
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 sporeball
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # lifeblood
2
+
3
+ <a href="https://rubygems.org/gems/lifeblood"><img src="https://img.shields.io/gem/v/lifeblood" /></a>
4
+
5
+ **lifeblood** is a hyperfocused Jekyll theme for documentation - clean, customizable, cutesy.\
6
+ it's designed as the theme for [victus](https://sporeball.dev/victus)' documentation, while being available for all to use.
7
+
8
+ <img src="https://user-images.githubusercontent.com/12767408/140596116-f18c34c1-28c6-401e-97f9-26ef95e06420.png" width="638" height="640" />
9
+
10
+
11
+ ### quick start
12
+ if your site is hosted on GitHub Pages, you can add lifeblood to your site's `_config.yml` as a remote theme:
13
+
14
+ ```yml
15
+ remote_theme: sporeball/lifeblood
16
+ ```
17
+
18
+ #### gem-based theme
19
+ alternatively, you can install lifeblood as a gem-based theme.
20
+ 1. add the gem to your `Gemfile`:
21
+ ```ruby
22
+ gem "lifeblood"
23
+ ```
24
+ 2. change the `theme` parameter in your `_config.yml`:
25
+ ```yaml
26
+ theme: lifeblood
27
+ ```
28
+ 3. use [Bundler](https://bundler.io)'s `bundle` command to update all bundled gems.
29
+
30
+ ### usage
31
+ to see lifeblood in action, and for more information on usage and customization options, you can [view the documentation](https://sporeball.dev/lifeblood).
32
+
33
+ ### donate
34
+ you can support the development of this project and others via Patreon:
35
+
36
+ [![Support me on Patreon](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3Dsporeball%26type%3Dpledges%26suffix%3D%252Fmonth&style=for-the-badge)](https://patreon.com/sporeball)
data/_config.yml ADDED
@@ -0,0 +1,27 @@
1
+ title: lifeblood
2
+ description: a hyperfocused Jekyll theme for documentation
3
+ encoding: utf-8
4
+
5
+ sass:
6
+ style: compressed
7
+
8
+ exclude: ["README.md", "LICENSE", "*.gem", "*.gemspec", "Gemfile.lock"]
9
+
10
+ compress_html:
11
+ clippings: all
12
+ comments: all
13
+ endings: all
14
+ startings: []
15
+ blanklines: false
16
+ profile: false
17
+
18
+ theme_color: "#fc88fc"
19
+
20
+ footer_left: "made with <span class='love'>&lt;3</span> by <a href='https://sporeball.dev' target='_blank'>sporeball</a>"
21
+ footer_right: "&copy; 2021"
22
+
23
+ # enable_custom: true
24
+ # fonts: []
25
+
26
+ enable_dark_theme: true
27
+ # enable_versions: true
@@ -0,0 +1,6 @@
1
+ {%- if site.footer_left or site.footer_right -%}
2
+ <footer>
3
+ <small id="footer_left">{{ site.footer_left }}</small>
4
+ <small id="footer_right">{{ site.footer_right }}</small>
5
+ </footer>
6
+ {%- endif -%}
@@ -0,0 +1,48 @@
1
+ <head>
2
+ {%- capture title -%}{{ page.title }} | {{ site.title }}{%- endcapture -%}
3
+ {%- if site.enable_versions == true and page.version != nil -%}
4
+ {%- capture version -%}({{ page.version }}){%- endcapture -%}
5
+ {%- assign title = title | append: " " | append: version -%}
6
+ {%- endif -%}
7
+ <title>{{ title }}</title>
8
+
9
+ <meta charset="utf-8">
10
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
11
+
12
+ {%- assign desc = page.content | markdownify | newline_to_br | split: "<br />" -%}
13
+ {%- assign desc_hless = "" | split: "" -%}
14
+ {%- for item in desc -%}
15
+ {%- unless item contains "</h1>" or item contains "</h2>" or item contains "</h3>" or item contains "</h4>" or item contains "</h5>" or item contains "</h6>" -%}
16
+ {%- assign desc_hless = desc_hless | push: item -%}
17
+ {%- endunless -%}
18
+ {%- endfor -%}
19
+ {%- assign desc_hless = desc_hless | join: "" | strip_html | truncate: 180 | strip -%}
20
+ <meta name="description" content="{{ desc_hless }}">
21
+
22
+ <meta property="og:title" content="{{ page.title }}">
23
+ <meta property="og:type" content="website">
24
+ <meta property="og:url" content="{{ page.url | absolute_url }}">
25
+ <meta property="og:site_name" content="{{ site.title }}">
26
+ {%-
27
+ assign excerpt = page.content | markdownify |
28
+ replace: "</h1>", ":" | replace: "</h2>", ":" | replace: "</h3>", ":" | replace: "</h4>", ":" | replace: "</h5>", ":" | replace: "</h6>", ":" |
29
+ strip_html | truncatewords: 36
30
+ -%}
31
+ <meta property="og:description" content="{{ excerpt }}">
32
+ <meta name="theme-color" content="{{ site.theme_color }}">
33
+
34
+ <link rel="stylesheet" href="{{ '/assets/lifeblood.css' | relative_url }}">
35
+ {%- if site.enable_dark_theme -%}
36
+ <link rel="stylesheet" href="{{ '/assets/lifeblood_dark.css' | relative_url }}">
37
+ {%- endif -%}
38
+ <link rel="icon" href="{{ '/assets/favicon.ico' | relative_url }}">
39
+
40
+ {%- if site.fonts -%}
41
+ <link rel="preconnect" href="https://fonts.googleapis.com">
42
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
43
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family={{ site.fonts | join: '&family=' }}&display=swap">
44
+ {%- endif -%}
45
+ {%- if site.enable_custom -%}
46
+ <link rel="stylesheet" href="{{ '/assets/custom.css' | relative_url }}">
47
+ {%- endif -%}
48
+ </head>
@@ -0,0 +1,57 @@
1
+ <div class="wrapper wrapper-nav">
2
+ <input type="checkbox" id="invis"></input>
3
+ <div id="nav_top">
4
+ <a id="site_title" href="{{ '/' | absolute_url }}">{{ site.title }}</a>
5
+ <label for="invis" id="toggle">
6
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
7
+ <line x1="3" y1="12" x2="21" y2="12"></line>
8
+ <line x1="3" y1="6" x2="21" y2="6"></line>
9
+ <line x1="3" y1="18" x2="21" y2="18"></line>
10
+ </svg>
11
+ </label>
12
+ </div>
13
+
14
+ <div id="nav_content">
15
+ <nav>
16
+ <ul>
17
+ {%- assign titled_pages = site.html_pages | where_exp: "item", "item.title != nil" | where_exp: "item", "item.title != 404" -%}
18
+
19
+ {%- if site.enable_versions == true -%}
20
+ {%- assign versions_map = titled_pages | map: "version" | uniq | compact -%}
21
+ {%- assign same_titled_pages = titled_pages | where_exp: "item", "item.title == page.title" -%}
22
+ <!-- restrict the nav to pages which share the same version as the page we're on -->
23
+ {%- assign titled_pages = titled_pages | where_exp: "item", "item.version != nil" | where_exp: "item", "item.version == page.version" -%}
24
+ {%- endif -%}
25
+
26
+ {%- assign numeric_pages = titled_pages | where_exp: "item", "item.nav_order != nil" | sort: "nav_order" -%}
27
+ {%- assign alphabetic_pages = titled_pages | where_exp: "item", "item.nav_order == nil" | sort: "title" -%}
28
+
29
+ {%- for node in numeric_pages -%}
30
+ <li class="{% if node.title == page.title %}active{% endif %}"><a href="{{ node.url | absolute_url }}">{{ node.title }}</a></li>
31
+ {%- endfor -%}
32
+ </ul>
33
+
34
+ {%- if alphabetic_pages.size != 0 -%}
35
+ <hr>
36
+ <ul>
37
+ {%- for node in alphabetic_pages -%}
38
+ <li class="{% if node.title == page.title %}active{% endif %}"><a href="{{ node.url | absolute_url }}">{{ node.title }}</a></li>
39
+ {%- endfor -%}
40
+ </ul>
41
+ {%- endif -%}
42
+ </nav>
43
+
44
+ {%- if site.enable_versions == true and page.title != 404 -%}
45
+ <p id="versions">
46
+ {%- for version in versions_map -%}
47
+ {%- assign match = same_titled_pages | where_exp: "item", "item.version == version" | first -%}
48
+ {%- if match == nil -%}
49
+ <a class="redlink" title="page does not exist">{{ version }}</a>
50
+ {%- else -%}
51
+ <a href="{{ match.url | absolute_url }}">{{ version }}</a>
52
+ {%- endif -%}
53
+ {%- endfor -%}
54
+ </p>
55
+ {%- endif -%}
56
+ </div>
57
+ </div>
@@ -0,0 +1,10 @@
1
+ ---
2
+ # Jekyll layout that compresses HTML
3
+ # v3.1.0
4
+ # http://jch.penibelst.de/
5
+ # © 2014–2015 Anatol Broder
6
+ # MIT License
7
+ ---
8
+
9
+ {% capture _LINE_FEED %}
10
+ {% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
@@ -0,0 +1,15 @@
1
+ ---
2
+ layout: compress
3
+ ---
4
+
5
+ <!DOCTYPE html>
6
+ <html>
7
+ {% include head.html %}
8
+ <body>
9
+ {% include nav.html %}
10
+ <div class="wrapper wrapper-content">
11
+ <main>{{ content }}</main>
12
+ {% include footer.html %}
13
+ </div>
14
+ </body>
15
+ </html>
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {{ content }}
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {{ content }}
data/_sass/base.scss ADDED
@@ -0,0 +1,108 @@
1
+ * {
2
+ margin:0;
3
+ border:0;
4
+ box-sizing:border-box;
5
+ padding:0
6
+ }
7
+
8
+ :root {
9
+ --font-stack:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif;
10
+ --font-stack-code:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
11
+ --color-background:#f9f9f9;
12
+ --color-text:#363636;
13
+ --color-text-muted:#888;
14
+ --color-link:#0076d1;
15
+ --color-link-alt:#0d96ff;
16
+ --color-redlink:#d10000;
17
+ --color-nav:#efefef;
18
+ --color-nav-active:#e8e8e8;
19
+ --color-code:#e8e8e8;
20
+ --color-code-name:#e45649;
21
+ --color-code-string:#50a14f;
22
+ --color-code-function:#4078f2;
23
+ --color-code-keyword:#a626a4;
24
+ --color-code-constant:#986801;
25
+ --color-code-attribute:#b76b01;
26
+ --color-code-builtin:#cb7701;
27
+ --color-code-operator:#0184bc;
28
+ --color-code-comment:#727272;
29
+ --color-hr:#d8d8d8;
30
+ --color-table-stripe:#e8e8e8;
31
+ --color-tip:#e7fdb8;
32
+ --color-tip-accent:#5ac54f;
33
+ --color-note:#cffeff;
34
+ --color-note-accent:#0098dc;
35
+ --color-caution:#fff4a5;
36
+ --color-caution-accent:#ffc825;
37
+ --color-selection:#ddd
38
+ }
39
+
40
+ html {
41
+ scrollbar-color:#bdbdbd transparent
42
+ }
43
+
44
+ body {
45
+ margin:auto;
46
+ max-width:1000px;
47
+ padding:20px;
48
+ background-color:var(--color-background);
49
+ font-family:var(--font-body, var(--font-stack));
50
+ line-height:1.4;
51
+ color:var(--color-text)
52
+ }
53
+
54
+ .wrapper-content {
55
+ width:calc(100% - 250px);
56
+ padding-left:15px
57
+ }
58
+
59
+ .wrapper-nav {
60
+ flex-direction:column;
61
+ display:flex;
62
+ width:250px;
63
+ height:min-content;
64
+ background-color:var(--color-nav)
65
+ }
66
+
67
+ main {
68
+ margin-bottom:4rem
69
+ }
70
+
71
+ footer {
72
+ display:flex;
73
+ color:var(--color-text-muted)
74
+ }
75
+
76
+ #footer_right {
77
+ margin-left:auto
78
+ }
79
+
80
+ @media (min-width:960px) {
81
+ html {
82
+ margin-left:calc(100vw - 100%)
83
+ }
84
+ }
85
+
86
+ @media (min-width:769px) {
87
+ .wrapper-content {
88
+ position:relative;
89
+ left:250px
90
+ }
91
+ .wrapper-nav {
92
+ position:fixed;
93
+ max-height:calc(100% - 40px)
94
+ }
95
+ }
96
+
97
+ @media (max-width:768px) {
98
+ body {
99
+ margin:0 auto;
100
+ padding:0
101
+ }
102
+ .wrapper {
103
+ width:100%
104
+ }
105
+ .wrapper-content {
106
+ padding:15px
107
+ }
108
+ }
data/_sass/code.scss ADDED
@@ -0,0 +1,62 @@
1
+ pre {
2
+ overflow:auto;
3
+ margin:0 0 1rem;
4
+ border-radius:6px;
5
+ padding:1rem;
6
+ background-color:var(--color-code);
7
+ font-size:0.875em;
8
+ white-space:pre
9
+ }
10
+
11
+ code {
12
+ font-size:0.875em;
13
+ font-family:var(--font-code, var(--font-stack-code));
14
+ word-break:normal
15
+ }
16
+
17
+ pre code {
18
+ font-size:inherit
19
+ }
20
+
21
+ /* inline code */
22
+ code.highlighter-rouge {
23
+ border-radius:3px;
24
+ padding:1px 5px;
25
+ background-color:var(--color-code)
26
+ }
27
+
28
+ .nt, .gh, .si, .se {
29
+ color:var(--color-code-name)
30
+ }
31
+
32
+ .dl, .s, .s1, .s2, .sb, .sc, .nl, .sr {
33
+ color:var(--color-code-string)
34
+ }
35
+
36
+ .nx, .nf, .nn, .nc, .ss, .sx {
37
+ color:var(--color-code-function)
38
+ }
39
+
40
+ .k, .kd, .kn, .kp, .kr, .ge {
41
+ color:var(--color-code-keyword)
42
+ }
43
+
44
+ .kc, .m, .mf, .mh, .mi, .il, .mo, .mx, .mb, .nv, .kt, .nd, .gs, .py, .no {
45
+ color:var(--color-code-constant)
46
+ }
47
+
48
+ .na {
49
+ color:var(--color-code-attribute)
50
+ }
51
+
52
+ .nb {
53
+ color:var(--color-code-builtin)
54
+ }
55
+
56
+ .o {
57
+ color:var(--color-code-operator)
58
+ }
59
+
60
+ .c, .cm, .cp, .c1 {
61
+ color:var(--color-code-comment)
62
+ }
@@ -0,0 +1,120 @@
1
+ main {
2
+ ul, ol {
3
+ margin-bottom:1rem;
4
+ counter-reset:step-counter
5
+ }
6
+ li {
7
+ margin-bottom:0.5rem;
8
+ margin-left:1rem;
9
+ padding-left:2rem;
10
+ list-style:none;
11
+ ol, ol *, ul, ul * {
12
+ margin:0.25rem 0
13
+ }
14
+ }
15
+ }
16
+
17
+ main ol li ol {
18
+ counter-reset:sub-counter
19
+ }
20
+
21
+ main ul li:before {
22
+ content:"\2022";
23
+ position:absolute;
24
+ margin-left:-2rem;
25
+ color:var(--color-text-muted)
26
+ }
27
+
28
+ main ol li:before {
29
+ content:counter(step-counter) ".";
30
+ position:absolute;
31
+ margin-left:-2rem;
32
+ color:var(--color-text-muted);
33
+ counter-increment:step-counter
34
+ }
35
+
36
+ ol li ol li:before {
37
+ content:counter(sub-counter, lower-alpha) ".";
38
+ counter-increment:sub-counter
39
+ }
40
+
41
+ #markdown-toc {
42
+ padding-top:1.75rem
43
+ }
44
+
45
+ #markdown-toc:before {
46
+ content:"Table of Contents";
47
+ font-variant:small-caps;
48
+ position:absolute;
49
+ margin-top:-1.75rem
50
+ }
51
+
52
+ blockquote {
53
+ border-left:4px solid #ccc;
54
+ padding-left:1.5rem;
55
+ font-style:italic
56
+ }
57
+
58
+ table {
59
+ margin-bottom:0.5rem;
60
+ border-spacing:0;
61
+ width:100%;
62
+ table-layout:fixed
63
+ }
64
+
65
+ th, td {
66
+ padding:6px;
67
+ text-align:left
68
+ }
69
+
70
+ th {
71
+ border-bottom:1px solid var(--color-hr)
72
+ }
73
+
74
+ tr:nth-child(2n) {
75
+ background-color:var(--color-table-stripe)
76
+ }
77
+
78
+ img {
79
+ margin-bottom:-0.5rem;
80
+ max-width:100%
81
+ }
82
+
83
+ hr {
84
+ margin:1.5rem 0 0.75rem 0;
85
+ border-bottom:1px solid var(--color-hr)
86
+ }
87
+
88
+ .tip, .note, .caution {
89
+ padding:0.5rem 1.5rem;
90
+ &:before {
91
+ font-weight:bold
92
+ }
93
+ }
94
+
95
+ .tip {
96
+ border-left:4px solid var(--color-tip-accent);
97
+ background-color:var(--color-tip)
98
+ }
99
+
100
+ .tip:before {
101
+ content:"tip: "
102
+ }
103
+
104
+ .note {
105
+ border-left:4px solid var(--color-note-accent);
106
+ background-color:var(--color-note)
107
+ }
108
+
109
+ .note:before {
110
+ content:"note: "
111
+ }
112
+
113
+ .caution {
114
+ border-left:4px solid var(--color-caution-accent);
115
+ background-color:var(--color-caution)
116
+ }
117
+
118
+ .caution:before {
119
+ content:"caution: "
120
+ }
data/_sass/nav.scss ADDED
@@ -0,0 +1,100 @@
1
+ nav a, #site_title {
2
+ display:inline-block;
3
+ width:100%;
4
+ &:hover {
5
+ background-color:var(--color-nav-active);
6
+ text-decoration:none
7
+ }
8
+ }
9
+
10
+ #nav_content {
11
+ display:flex;
12
+ flex-direction:column;
13
+ overflow-y:auto
14
+ }
15
+
16
+ nav {
17
+ overflow-y:auto
18
+ }
19
+
20
+ nav li {
21
+ line-height:1.5rem;
22
+ word-break:break-word;
23
+ list-style:none
24
+ }
25
+
26
+ nav li a {
27
+ padding:0.25rem 1rem
28
+ }
29
+
30
+ nav hr {
31
+ margin:0 auto;
32
+ width:90%
33
+ }
34
+
35
+ .active {
36
+ background-color:var(--color-nav-active)
37
+ }
38
+
39
+ #invis {
40
+ display:none
41
+ }
42
+
43
+ #toggle {
44
+ float:right;
45
+ display:none;
46
+ width:48px;
47
+ height:48px
48
+ }
49
+
50
+ #site_title {
51
+ padding-left:1rem;
52
+ cursor:pointer;
53
+ font-size:1.25rem;
54
+ line-height:3rem;
55
+ color:var(--color-text)
56
+ }
57
+
58
+ #versions {
59
+ margin-bottom:0;
60
+ padding:0.5rem 1rem;
61
+ line-height:1.5rem
62
+ }
63
+
64
+ #versions a {
65
+ display:inline-block;
66
+ width:initial;
67
+ color:var(--color-link-alt);
68
+ &:not(:last-child) {
69
+ margin-right:0.5rem
70
+ }
71
+ }
72
+
73
+ #versions a.redlink {
74
+ cursor:help;
75
+ color:var(--color-redlink)
76
+ }
77
+
78
+ @media (max-width:768px) {
79
+ #nav_content {
80
+ display:none
81
+ }
82
+ nav li a {
83
+ padding:0.5rem 1rem
84
+ }
85
+ #toggle {
86
+ display:flex;
87
+ cursor:pointer;
88
+ align-items:center;
89
+ justify-content:center;
90
+ &:hover {
91
+ background-color:var(--color-nav-active)
92
+ }
93
+ }
94
+ #site_title {
95
+ width:calc(100% - 48px)
96
+ }
97
+ #invis:checked ~ #nav_content {
98
+ display:block
99
+ }
100
+ }
data/_sass/pseudo.scss ADDED
@@ -0,0 +1,19 @@
1
+ ::-webkit-scrollbar {
2
+ width:16px
3
+ }
4
+
5
+ ::-webkit-scrollbar-thumb {
6
+ border:4px solid transparent;
7
+ border-radius:8px;
8
+ background:#bdbdbd;
9
+ background-clip:content-box
10
+ }
11
+
12
+ ::-webkit-scrollbar-thumb:hover {
13
+ background:#999999;
14
+ background-clip:content-box
15
+ }
16
+
17
+ ::selection {
18
+ background-color:var(--color-selection)
19
+ }
@@ -0,0 +1,56 @@
1
+ h1, h2, h3, h4, h5, h6, p {
2
+ margin-bottom:1rem;
3
+ font-weight:400
4
+ }
5
+
6
+ h1, h2, h3, h4, h5, h6 {
7
+ margin-top:1.5rem;
8
+ font-family:var(--font-heading, var(--font-stack))
9
+ }
10
+
11
+ h1 {
12
+ font-weight:700;
13
+ font-size:2rem;
14
+ &:first-child {
15
+ margin-top:0
16
+ }
17
+ }
18
+
19
+ h1:first-of-type {
20
+ border-bottom:1px solid var(--color-hr);
21
+ padding-bottom:0.75rem
22
+ }
23
+
24
+ h2 {
25
+ font-size:1.75rem
26
+ }
27
+
28
+ h3 {
29
+ font-size:1.5rem
30
+ }
31
+
32
+ h4 {
33
+ font-size:1.25rem
34
+ }
35
+
36
+ h5, h6 {
37
+ font-size:0.9rem
38
+ }
39
+
40
+ h6 {
41
+ font-style:italic;
42
+ color:var(--color-text-muted)
43
+ }
44
+
45
+ small {
46
+ font-size:80%
47
+ }
48
+
49
+ a {
50
+ text-decoration:none;
51
+ color:var(--color-link)
52
+ }
53
+
54
+ a:hover {
55
+ text-decoration:underline
56
+ }
data/_sass/util.scss ADDED
@@ -0,0 +1,7 @@
1
+ .love {
2
+ color:#db3ffd
3
+ }
4
+
5
+ .caps:first-letter {
6
+ text-transform:uppercase
7
+ }
Binary file
@@ -0,0 +1,10 @@
1
+ ---
2
+ ---
3
+
4
+ @import "base";
5
+ @import "code";
6
+ @import "typography";
7
+ @import "elements";
8
+ @import "pseudo";
9
+ @import "nav";
10
+ @import "util"
@@ -0,0 +1,30 @@
1
+ ---
2
+ ---
3
+
4
+ @media (prefers-color-scheme: dark) {
5
+ :root {
6
+ --color-background:#141414;
7
+ --color-text:#efefef;
8
+ --color-link:#14afff;
9
+ --color-link-alt:#5bb8ff;
10
+ --color-redlink:#ff3434;
11
+ --color-nav:#222;
12
+ --color-nav-active:#333;
13
+ --color-code:#222;
14
+ --color-code-name:#e06c75;
15
+ --color-code-string:#98c379;
16
+ --color-code-function:#61afef;
17
+ --color-code-keyword:#c678dd;
18
+ --color-code-constant:#d19a66;
19
+ --color-code-attribute:#d19a66;
20
+ --color-code-builtin:#e6c07b;
21
+ --color-code-operator:#56b6c2;
22
+ --color-code-comment:#5c6370;
23
+ --color-hr:#666;
24
+ --color-table-stripe:#222;
25
+ --color-tip:#145631;
26
+ --color-note:#144756;
27
+ --color-caution:#464310;
28
+ --color-selection:#444
29
+ }
30
+ }
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lifeblood
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - sporeball
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-11-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 3.9.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 3.9.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description:
42
+ email:
43
+ - sporeballdev@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - 404.md
49
+ - LICENSE
50
+ - README.md
51
+ - _config.yml
52
+ - _includes/footer.html
53
+ - _includes/head.html
54
+ - _includes/nav.html
55
+ - _layouts/compress.html
56
+ - _layouts/default.html
57
+ - _layouts/page.html
58
+ - _layouts/post.html
59
+ - _sass/base.scss
60
+ - _sass/code.scss
61
+ - _sass/elements.scss
62
+ - _sass/nav.scss
63
+ - _sass/pseudo.scss
64
+ - _sass/typography.scss
65
+ - _sass/util.scss
66
+ - assets/favicon.ico
67
+ - assets/lifeblood.scss
68
+ - assets/lifeblood_dark.scss
69
+ homepage: https://github.com/sporeball/lifeblood
70
+ licenses:
71
+ - MIT
72
+ metadata: {}
73
+ post_install_message:
74
+ rdoc_options: []
75
+ require_paths:
76
+ - lib
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ requirements: []
88
+ rubygems_version: 3.1.6
89
+ signing_key:
90
+ specification_version: 4
91
+ summary: a hyperfocused Jekyll theme for documentation
92
+ test_files: []