Initial commit
This commit is contained in:
commit
2498b5e59c
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/public
|
12
README.md
Normal file
12
README.md
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
# [lix.systems]
|
||||||
|
|
||||||
|
Built with [Zola][zola].
|
||||||
|
|
||||||
|
```sh
|
||||||
|
zola serve
|
||||||
|
zola build
|
||||||
|
zola check
|
||||||
|
```
|
||||||
|
|
||||||
|
[zola]: https://www.getzola.org/
|
||||||
|
[lix.systems]: https://lix.systems/
|
21
config.toml
Normal file
21
config.toml
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# The URL the site will be built for
|
||||||
|
base_url = "https://lix.systems"
|
||||||
|
|
||||||
|
# The site title and description; used in feeds by default.
|
||||||
|
title = "Lix"
|
||||||
|
description = "A fresh take on Nix focused on stability and UX"
|
||||||
|
|
||||||
|
# Whether to build a search index to be used later on by a JavaScript library
|
||||||
|
build_search_index = false
|
||||||
|
|
||||||
|
# Generate atom/rss feeds.
|
||||||
|
generate_feed = true
|
||||||
|
|
||||||
|
[markdown]
|
||||||
|
# Whether to do syntax highlighting
|
||||||
|
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
|
||||||
|
highlight_code = false
|
||||||
|
|
||||||
|
# Whether smart punctuation is enabled (changing quotes, dashes, dots in their typographic form)
|
||||||
|
# For example, `...` into `…`, `"quote"` into `“curly”` etc
|
||||||
|
smart_punctuation = true
|
10
content/404.md
Normal file
10
content/404.md
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
title: '404'
|
||||||
|
description: '404: file not found'
|
||||||
|
extra:
|
||||||
|
hidden: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# 404: File not found
|
||||||
|
|
||||||
|
Sorry! If you expected to see something here, [drop me a line](/contact)!
|
6
content/_index.md
Normal file
6
content/_index.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
permalink: /
|
||||||
|
layout: main
|
||||||
|
---
|
||||||
|
|
||||||
|
Lix is a fresh take on Nix focused on stability and user experience.
|
10
content/about.md
Normal file
10
content/about.md
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
title: about
|
||||||
|
extra:
|
||||||
|
# Visible in the top-bar
|
||||||
|
hidden: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# about
|
||||||
|
|
||||||
|
# why Lix?
|
14
content/contribute.md
Normal file
14
content/contribute.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
title: contribute
|
||||||
|
extra:
|
||||||
|
# Visible in the top-bar
|
||||||
|
hidden: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# contribute to Lix
|
||||||
|
|
||||||
|
## filing bugs
|
||||||
|
|
||||||
|
## making changes
|
||||||
|
|
||||||
|
## code review
|
8
content/doc.md
Normal file
8
content/doc.md
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
---
|
||||||
|
title: documentation
|
||||||
|
extra:
|
||||||
|
# Visible in the top-bar
|
||||||
|
hidden: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# documentation
|
8
content/install.md
Normal file
8
content/install.md
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
---
|
||||||
|
title: install Lix
|
||||||
|
extra:
|
||||||
|
# Visible in the top-bar
|
||||||
|
hidden: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# install Lix
|
11
content/switch.md
Normal file
11
content/switch.md
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
---
|
||||||
|
title: switch from Nix
|
||||||
|
extra:
|
||||||
|
# Visible in the top-bar
|
||||||
|
hidden: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# switch from Nix
|
||||||
|
|
||||||
|
Already use and love Nix? We do too! Here's how to try out or switch to Lix
|
||||||
|
from an existing Nix install.
|
88
content/test.md
Normal file
88
content/test.md
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
---
|
||||||
|
title: markup test page
|
||||||
|
description: a page to demonstrate markup and take advantage of all the features of
|
||||||
|
markdown
|
||||||
|
toc: true
|
||||||
|
extra:
|
||||||
|
hidden: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# markup test page
|
||||||
|
|
||||||
|
i don't ever actually use six titles. but here's a test page so i can figure out
|
||||||
|
what theyd look like if i did. nothing differentiates titles 3--6. solution:
|
||||||
|
don't use them.
|
||||||
|
|
||||||
|
text from [lipsum.com]
|
||||||
|
|
||||||
|
<!-- toc -->
|
||||||
|
|
||||||
|
# 1: title
|
||||||
|
|
||||||
|
*Lorem* **ipsum** ***dolor*** *`sit`* **`amet,`** ***`consectetur`***
|
||||||
|
[adipiscing](#) [`elit`](#). Maecenas dignissim elementum ipsum sit amet
|
||||||
|
pellentesque. Vestibulum vel cursus urna. Aenean sollicitudin, leo gravida
|
||||||
|
tempus luctus, mi dolor ornare nulla, at placerat tortor ex vitae urna. ❤
|
||||||
|
100/200
|
||||||
|
|
||||||
|
## 2: subtitle
|
||||||
|
|
||||||
|
Maecenas dignissim elementum ipsum sit amet pellentesque.
|
||||||
|
|
||||||
|
1. A list
|
||||||
|
2. A list
|
||||||
|
3. A list
|
||||||
|
```
|
||||||
|
xyz
|
||||||
|
code
|
||||||
|
here
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Another item
|
||||||
|
1. A sub-item
|
||||||
|
2. A sub-item
|
||||||
|
1. A sub-sub item
|
||||||
|
5. A final item
|
||||||
|
|
||||||
|
### 3: subsubtitle
|
||||||
|
|
||||||
|
Vestibulum vel cursus urna.
|
||||||
|
|
||||||
|
* An unordered list
|
||||||
|
* an unordered list
|
||||||
|
* Aenean sollicitudin, leo gravida tempus luctus, mi dolor ornare nulla, at
|
||||||
|
placerat tortor ex vitae urna.
|
||||||
|
|
||||||
|
#### 4: ??? title
|
||||||
|
|
||||||
|
Aenean sollicitudin, leo gravida tempus luctus, mi dolor ornare nulla, at
|
||||||
|
placerat tortor ex vitae urna.
|
||||||
|
|
||||||
|
> A blockquote. Lorem Ipsum is simply dummy text of the printing and typesetting
|
||||||
|
> industry. Lorem Ipsum has been the industry's standard dummy text ever since
|
||||||
|
> the 1500s, when an unknown printer took a galley of type and scrambled it to
|
||||||
|
> make a type specimen book. It has survived not only five centuries, but also
|
||||||
|
> the leap into electronic typesetting, remaining essentially unchanged. It was
|
||||||
|
> popularised in the 1960s with the release of Letraset sheets containing Lorem
|
||||||
|
> Ipsum passages, and more recently with desktop publishing software like Aldus
|
||||||
|
> PageMaker including versions of Lorem Ipsum.
|
||||||
|
>
|
||||||
|
>> A nested blockquote. Contrary to popular belief, Lorem Ipsum is not simply
|
||||||
|
>> random text. It has roots in a piece of classical Latin literature from 45
|
||||||
|
>> BC, making it over 2000 years old.
|
||||||
|
|
||||||
|
* This list has paragraph tags
|
||||||
|
|
||||||
|
* This list has paragraph tags within the `<li>` tags.
|
||||||
|
|
||||||
|
* Aawuefoufeououuu
|
||||||
|
|
||||||
|
##### 5: title
|
||||||
|
|
||||||
|
Filler
|
||||||
|
|
||||||
|
###### 6: paragraph
|
||||||
|
|
||||||
|
Filler
|
||||||
|
|
||||||
|
[lipsum.com]: https://www.lipsum.com/
|
BIN
static/android-chrome-192x192.png
Normal file
BIN
static/android-chrome-192x192.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9 KiB |
BIN
static/android-chrome-512x512.png
Normal file
BIN
static/android-chrome-512x512.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
BIN
static/apple-touch-icon.png
Normal file
BIN
static/apple-touch-icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.3 KiB |
BIN
static/favicon.ico
Normal file
BIN
static/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
1
static/favicon.svg
Normal file
1
static/favicon.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg viewBox="0 0 411.4 411.4" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" clip-rule="evenodd" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="2"><g stroke-width=".1" stroke="#fff"><path d="m127.4 210 97.8 169.3-45 .5-26-45.5-26.3 45.2h-22.4l-11.4-19.7 37.5-64.4-26.6-46.3z" fill="#5277c3"/><path d="M162.7 140.2 64.9 309.6l-22.8-38.7 26.4-45.4-52.4-.1L5 206.1l11.4-19.8 74.4.2 26.8-46.1zm7.5 135.4h195.5l-22 39.1-52.5-.1 26 45.4-11.1 19.3h-22.9l-37-64.6-53.3-.1zM284 201.4 186.3 32.2l44.9-.5 26 45.5L283.6 32h22.3l11.4 19.8-37.4 64.3 26.6 46.3z" fill="#d52d00"/><path d="M240.9 135.4H45.5l22.1-39.2 52.5.2-26-45.4 11.1-19.3h22.7l37 64.6h53.4z" fill="#d362a4"/><path d="m248.6 271.2 97.8-169.4 22.8 38.7-26.4 45.3 52.4.2 11.1 19.3-11.4 19.9-74.4-.2-26.8 46.1z" fill="#a30262"/><path d="m127.5 209.9 97.8 169.3-45 .5-26-45.5-26.3 45.2h-22.3l-11.5-19.8 37.5-64.3-26.6-46.3z" fill="#ff9a56"/></g></svg>
|
After Width: | Height: | Size: 949 B |
21
static/manifest.json
Normal file
21
static/manifest.json
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"lang": "en-US",
|
||||||
|
"display": "standalone",
|
||||||
|
"name": "Lix",
|
||||||
|
"short_name": "Lix",
|
||||||
|
"description": "A fresh take on Nix focused on stability and UX",
|
||||||
|
"theme_color": "#D362A4",
|
||||||
|
"background_color": "#170A0D",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "/android-chrome-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/android-chrome-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
146
static/styles/main.css
Normal file
146
static/styles/main.css
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
body {
|
||||||
|
--background-color: #fff;
|
||||||
|
--text-color: #000;
|
||||||
|
--light-text-color: #D52D00;
|
||||||
|
--highlight-color: #A30262;
|
||||||
|
--body-width: 800px;
|
||||||
|
|
||||||
|
font: 16px/20px "Segoe UI", "-apple-system", sans-serif;
|
||||||
|
background-color: var(--background-color);
|
||||||
|
color: var(--text-color);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
body {
|
||||||
|
--background-color: #170a0d;
|
||||||
|
--text-color: #fff;
|
||||||
|
--light-text-color: #FF9A56;
|
||||||
|
--highlight-color: #d362a4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3 {
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 300;
|
||||||
|
margin: 1em 0 0.5em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headerlink {
|
||||||
|
text-decoration: none;
|
||||||
|
color: var(--light-text-color);
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headerlink::before {
|
||||||
|
content: '#';
|
||||||
|
}
|
||||||
|
|
||||||
|
.headerlink:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
:hover>.headerlink {
|
||||||
|
display: inline-block;
|
||||||
|
min-width: 1em;
|
||||||
|
margin-left: -1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 2rem;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1:first-child {
|
||||||
|
margin-top: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-weight: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: var(--highlight-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
main,
|
||||||
|
header {
|
||||||
|
margin: auto;
|
||||||
|
max-width: var(--body-width);
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
padding-bottom: 5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
max-width: 5em;
|
||||||
|
border: none;
|
||||||
|
border-bottom: 5px dotted var(--highlight-color);
|
||||||
|
margin: 3em auto;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav ul {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav li {
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav li:not(:first-child)::before {
|
||||||
|
content: "•";
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date {
|
||||||
|
color: var(--light-text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
aside {
|
||||||
|
float: right;
|
||||||
|
margin-left: 1rem;
|
||||||
|
max-width: calc(var(--body-width) * 0.33);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Code line numbers. */
|
||||||
|
.gutter>pre>.line {
|
||||||
|
color: var(--light-text-color);
|
||||||
|
margin-right: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 550px) {
|
||||||
|
|
||||||
|
/* Chosen because it looks good :) */
|
||||||
|
aside {
|
||||||
|
float: none;
|
||||||
|
margin-left: 0;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
}
|
1
templates/404.html
Normal file
1
templates/404.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{% extends "base.html" %}
|
85
templates/base.html
Normal file
85
templates/base.html
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
{%- if section -%}
|
||||||
|
{#- Zola's `section` and `page` variables share many fields, so we set `page`
|
||||||
|
to whichever one is present and access common fields through that variable to
|
||||||
|
simplify templating. -#}
|
||||||
|
{%- set page = section -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- if not page -%}
|
||||||
|
{#- Hack: Zola's 404.html doesn't get rendered with `page` or `section` set to
|
||||||
|
anything. -#}
|
||||||
|
{%- set page = get_page(path="404.md") -%}
|
||||||
|
{%- endif -%}
|
||||||
|
<!doctype html>
|
||||||
|
<html lang=en-US>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<!-- *lix you* OwO -->
|
||||||
|
<title>{% if page.title %}{{ page.title }} @ {% endif %}{{ config.title }}</title>
|
||||||
|
<meta name=description content="{{ page.description|default(value=config.description) }}">
|
||||||
|
<meta name=viewport content="width=device-width, initial-scale=1">
|
||||||
|
<link rel=icon href=/favicon.ico sizes=48x48>
|
||||||
|
<link rel=icon href=/favicon.svg sizes=any type=image/svg+xml>
|
||||||
|
<link rel=apple-touch-icon href=/apple-touch-icon.png />
|
||||||
|
<link rel=manifest href=/manifest.json>
|
||||||
|
<meta property=og:title content="{{ page.title }}">
|
||||||
|
<meta property=og:description content="{{ page.description|default(value=config.description) }}">
|
||||||
|
<meta property=og:type content=article>
|
||||||
|
<meta property=og:url content="{{ page.permalink|safe }}">
|
||||||
|
<meta property=og:image content="{{ config.base_url|safe }}/img/favicon-1024.png">
|
||||||
|
<meta name=theme-color content=#D362A4>
|
||||||
|
<link rel=stylesheet type=text/css href=/styles/main.css>
|
||||||
|
<div id=container>
|
||||||
|
<header>
|
||||||
|
<a aria-label="Skip to main content" href="#main"></a>
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li><a href="/" aria-label="Homepage">{{ config.title }}</a></li>
|
||||||
|
<li><a href="/about">about</a></li>
|
||||||
|
<li><a href="/doc" aria-label="Documentation">docs</a></li>
|
||||||
|
<li><a href="/contribute">contribute</a></li>
|
||||||
|
<li><a href="/install">install</a></li>
|
||||||
|
<li><a href="/switch">switch from Nix</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main id=main>
|
||||||
|
{{ page.content|safe }}
|
||||||
|
{% block post_content %}{% endblock -%}
|
||||||
|
{%- if section.subsections or section.pages -%}
|
||||||
|
{% block ls_title -%}
|
||||||
|
{#- <h1>further reading</h1> -#}
|
||||||
|
{%- endblock %}
|
||||||
|
<ul>
|
||||||
|
{%- endif %}
|
||||||
|
{% block ls -%}
|
||||||
|
{%- if section.subsections -%}
|
||||||
|
{% for subsection_path in section.subsections %}
|
||||||
|
{%- set subsection = get_section(path=subsection_path, metadata_only=true) %}
|
||||||
|
<li><a href="{{ subsection.permalink | safe }}">{{ subsection.title }}</a>
|
||||||
|
{%- if subsection.description -%}
|
||||||
|
: <span class=description>{{ subsection.description }}</span>
|
||||||
|
{%- endif -%}
|
||||||
|
{%- if subsection.date -%}
|
||||||
|
: <span class=date>{{ subsection.date }}</span>
|
||||||
|
{%- endif -%}
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- if section.pages -%}
|
||||||
|
{% for subsection in section.pages %}
|
||||||
|
{% if subsection.extra.hidden %}{% continue %}{% endif -%}
|
||||||
|
<li><a href="{{ subsection.permalink | safe }}">{{ subsection.title }}</a>
|
||||||
|
{%- if subsection.description -%}
|
||||||
|
: <span class=description>{{ subsection.description }}</span>
|
||||||
|
{%- endif -%}
|
||||||
|
{%- if subsection.date %}
|
||||||
|
<span class=date>({{ subsection.date }})</span>
|
||||||
|
{%- endif -%}
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- if section.subsections or section.pages -%}
|
||||||
|
</ul>
|
||||||
|
{%- endif %}
|
||||||
|
{%- endblock %}
|
||||||
|
</main>
|
||||||
|
</div>
|
4
templates/blog.html
Normal file
4
templates/blog.html
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% block ls_title %}
|
||||||
|
<h1>posts</h1>
|
||||||
|
{%- endblock %}
|
1
templates/index.html
Normal file
1
templates/index.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{% extends "base.html" %}
|
1
templates/page.html
Normal file
1
templates/page.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{% extends "base.html" %}
|
1
templates/section.html
Normal file
1
templates/section.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{% extends "base.html" %}
|
Loading…
Reference in a new issue