layout updates, git link

This commit is contained in:
kitsunecafe 2024-02-21 09:10:31 -05:00
parent b040598c56
commit 34ed33e0ba
17 changed files with 167 additions and 559 deletions

View File

@ -4,7 +4,7 @@ if [ -f ".env" ]; then
source .env
rm -rf "${OUT}/*"
../roxy-cli/target/debug/roxy_cli ${IN} ${OUT}
echo "$CNAME" > "${OUT}/CNAME"
#echo "$CNAME" > "${OUT}/CNAME"
fi

View File

@ -2,5 +2,7 @@
{% block main %}
# Roxy
Roxy is a static site generator written with Rust. It's meant to be easy to use and powerful. It isn't meant for large scale projects -- I haven't done any performance testing or even focused on it. Check out the [quick start](/pages/quick-start) for tips on how to get started.
{% endblock main %}

View File

@ -12,7 +12,7 @@ theme = "base16-ocean.dark" # the name of the theme for syntax highlighting
theme_dir = "./themes" # directory to load themes into syntect
```
* `roxy.slug_wold_limit` limits the amount of words during slug generation
* `roxy.slug_word_limit` limits the amount of words during slug generation
* `syntect.theme` is the key that should be used for syntax highlighting
* `syntect.theme_dir` is the directory that should be read and loaded to find syntax themes
{% endblock content %}

View File

@ -0,0 +1,14 @@
{% extends "../../../layouts/topic.tera" %}
{% block content %}
In the repository for [this site](https://fem.mint.lgbt/kitsunecafe/roxy-docs) there are a few bash scripts to help get an okay experience developing locally. Running `./start.sh` will set up a watcher to detect files changes, regenerate the files, and host a python HTTP server at localhost:8000.
Create a file named `.env` and add these variables, substituting their values for appropriate ones.
```bash
IN="my/input/dir"
OUT="my/output/folder"
WATCH="./layouts/ ./includes/ $IN"
```
{% endblock content %}

View File

@ -0,0 +1,4 @@
title = "Local development"
type = "page"
order = 1

View File

@ -0,0 +1,36 @@
{% extends "../../../layouts/topic.tera" %}
{% block content %}
Roxy attempts to preserve the original directory structure of its input.
An example of a possible Roxy-generated site is demonstrated below.
```
.
└── my-site/
├── content/
│ ├── blog/
│ │ ├── index.md
│ │ ├── index.toml
│ │ ├── post-1.md
│ │ ├── post-1.toml
│ │ ├── post-2.md
│ │ ├── post-2.toml
│ │ └── post-3/
│ │ ├── index.md
│ │ └── index.toml
│ ├── index.md
│ └── index.toml
└── output/
├── blog/
│ ├── index.html
│ ├── post-1/
│ │ └── index.html
│ ├── post-2/
│ │ └── index.html
│ └── post-3/
│ └── index.html
└── index.html
```
{% endblock content %}

View File

@ -0,0 +1,4 @@
title = "Routing"
type = "page"
order = 2

View File

@ -8,6 +8,8 @@ Roxy is a static site generator. The hope is that using it will reduce the amoun
* [Tera](https://docs.rs/tera/1.19.1/tera/index.html) for templating
* [Syntect](https://docs.rs/syntect/5.2.0/syntect/index.html) for syntax highlighting
When creating the output, Roxy will do its best to preserve the original directory structure with a few changes. Mostly notably, any bare markdown files will be given their own subdirectory and named `index.html`.
This tool was written for my use case and there is a high chance it may not support yours. In that case, do some combination of the following things: open an issue against `roxy-cli`, write your own generator using `roxy-core`, or find another generator (it won't hurt my feelings, promise).
{% endblock content %}

View File

@ -94,6 +94,7 @@ aside.navigation {
aside.navigation {
height: 100%;
max-width: 25rem;
padding-left: 5rem;
}
.menu {

View File

@ -18,7 +18,7 @@
--primary-color: var(--indigo);
--default-font-size: 1.4rem;
--desktop-font-size: 1.8rem;
--desktop-font-size: 1.6rem;
--font-color-primary: var(--white);
--font-family-paragraph: "robotoregular", sans-serif;
@ -26,6 +26,8 @@
--font-family-header: sans-serif;
--link-color: var(--soft-white);
--rule-color: var(--softest-black);
}
/* Boilerplate */
@ -60,7 +62,6 @@ html {
a {
text-underline-position: under;
text-decoration-thickness: 8;
}
@ -107,6 +108,10 @@ body {
flex-direction: row;
font-size: var(--desktop-font-size);
}
.content {
padding-top: 8rem;
}
}
h1, h2, h3, h4, h5, h6 {
@ -114,16 +119,58 @@ h1, h2, h3, h4, h5, h6 {
}
main {
padding: 2rem;
width: 100%;
overflow: auto;
padding-bottom: 8rem;
width: 100%;
}
.header {
width: 100%;
padding: 0.5rem;
}
.header .title {
font-size: 2.4rem;
font-weight: 200;
color: var(--softer-white);
}
.header .layout {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.header .icons object {
fill: var(--softer-white);
}
hr {
color: var(--rule-color);
}
.content {
padding: 3rem;
padding-bottom: 8rem;
max-width: 75rem;
margin: 0 auto;
}
.content .title {
padding-bottom: 2rem;
}
a { color: var(--link-color); }
a:hover { color: var(--link-color); }
a:visited { color: var(--link-color); }
a:active { color: var(--link-color); }
ul, ol {
line-height: 2.4rem;
}
.icon path {
fill: var(--softer-white) !important;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

View File

@ -1,129 +0,0 @@
/*Notes about grid:
Columns: 12
Grid Width: 825px
Column Width: 55px
Gutter Width: 15px
-------------------------------*/
.section {margin-bottom: 18px;
}
.section:after {content: ".";display: block;height: 0;clear: both;visibility: hidden;}
.section {*zoom: 1;}
.section .firstcolumn,
.section .firstcol {margin-left: 0;}
/* Border on left hand side of a column. */
.border {
padding-left: 7px;
margin-left: 7px;
border-left: 1px solid #eee;
}
/* Border with more whitespace, spans one column. */
.colborder {
padding-left: 42px;
margin-left: 42px;
border-left: 1px solid #eee;
}
/* The Grid Classes */
.grid1, .grid1_2cols, .grid1_3cols, .grid1_4cols, .grid2, .grid2_3cols, .grid2_4cols, .grid3, .grid3_2cols, .grid3_4cols, .grid4, .grid4_3cols, .grid5, .grid5_2cols, .grid5_3cols, .grid5_4cols, .grid6, .grid6_4cols, .grid7, .grid7_2cols, .grid7_3cols, .grid7_4cols, .grid8, .grid8_3cols, .grid9, .grid9_2cols, .grid9_4cols, .grid10, .grid10_3cols, .grid10_4cols, .grid11, .grid11_2cols, .grid11_3cols, .grid11_4cols, .grid12
{margin-left: 15px;float: left;display: inline; overflow: hidden;}
.width1, .grid1, .span-1 {width: 55px;}
.width1_2cols,.grid1_2cols {width: 20px;}
.width1_3cols,.grid1_3cols {width: 8px;}
.width1_4cols,.grid1_4cols {width: 2px;}
.input_width1 {width: 49px;}
.width2, .grid2, .span-2 {width: 125px;}
.width2_3cols,.grid2_3cols {width: 31px;}
.width2_4cols,.grid2_4cols {width: 20px;}
.input_width2 {width: 119px;}
.width3, .grid3, .span-3 {width: 195px;}
.width3_2cols,.grid3_2cols {width: 90px;}
.width3_4cols,.grid3_4cols {width: 37px;}
.input_width3 {width: 189px;}
.width4, .grid4, .span-4 {width: 265px;}
.width4_3cols,.grid4_3cols {width: 78px;}
.input_width4 {width: 259px;}
.width5, .grid5, .span-5 {width: 335px;}
.width5_2cols,.grid5_2cols {width: 160px;}
.width5_3cols,.grid5_3cols {width: 101px;}
.width5_4cols,.grid5_4cols {width: 72px;}
.input_width5 {width: 329px;}
.width6, .grid6, .span-6 {width: 405px;}
.width6_4cols,.grid6_4cols {width: 90px;}
.input_width6 {width: 399px;}
.width7, .grid7, .span-7 {width: 475px;}
.width7_2cols,.grid7_2cols {width: 230px;}
.width7_3cols,.grid7_3cols {width: 148px;}
.width7_4cols,.grid7_4cols {width: 107px;}
.input_width7 {width: 469px;}
.width8, .grid8, .span-8 {width: 545px;}
.width8_3cols,.grid8_3cols {width: 171px;}
.input_width8 {width: 539px;}
.width9, .grid9, .span-9 {width: 615px;}
.width9_2cols,.grid9_2cols {width: 300px;}
.width9_4cols,.grid9_4cols {width: 142px;}
.input_width9 {width: 609px;}
.width10, .grid10, .span-10 {width: 685px;}
.width10_3cols,.grid10_3cols {width: 218px;}
.width10_4cols,.grid10_4cols {width: 160px;}
.input_width10 {width: 679px;}
.width11, .grid11, .span-11 {width: 755px;}
.width11_2cols,.grid11_2cols {width: 370px;}
.width11_3cols,.grid11_3cols {width: 241px;}
.width11_4cols,.grid11_4cols {width: 177px;}
.input_width11 {width: 749px;}
.width12, .grid12, .span-12 {width: 825px;}
.input_width12 {width: 819px;}
/* Subdivided grid spaces */
.emptycols_left1, .prepend-1 {padding-left: 70px;}
.emptycols_right1, .append-1 {padding-right: 70px;}
.emptycols_left2, .prepend-2 {padding-left: 140px;}
.emptycols_right2, .append-2 {padding-right: 140px;}
.emptycols_left3, .prepend-3 {padding-left: 210px;}
.emptycols_right3, .append-3 {padding-right: 210px;}
.emptycols_left4, .prepend-4 {padding-left: 280px;}
.emptycols_right4, .append-4 {padding-right: 280px;}
.emptycols_left5, .prepend-5 {padding-left: 350px;}
.emptycols_right5, .append-5 {padding-right: 350px;}
.emptycols_left6, .prepend-6 {padding-left: 420px;}
.emptycols_right6, .append-6 {padding-right: 420px;}
.emptycols_left7, .prepend-7 {padding-left: 490px;}
.emptycols_right7, .append-7 {padding-right: 490px;}
.emptycols_left8, .prepend-8 {padding-left: 560px;}
.emptycols_right8, .append-8 {padding-right: 560px;}
.emptycols_left9, .prepend-9 {padding-left: 630px;}
.emptycols_right9, .append-9 {padding-right: 630px;}
.emptycols_left10, .prepend-10 {padding-left: 700px;}
.emptycols_right10, .append-10 {padding-right: 700px;}
.emptycols_left11, .prepend-11 {padding-left: 770px;}
.emptycols_right11, .append-11 {padding-right: 770px;}
.pull-1 {margin-left: -70px;}
.push-1 {margin-right: -70px;margin-left: 18px;float: right;}
.pull-2 {margin-left: -140px;}
.push-2 {margin-right: -140px;margin-left: 18px;float: right;}
.pull-3 {margin-left: -210px;}
.push-3 {margin-right: -210px;margin-left: 18px;float: right;}
.pull-4 {margin-left: -280px;}
.push-4 {margin-right: -280px;margin-left: 18px;float: right;}

View File

@ -1,396 +0,0 @@
@import url('grid_12-825-55-15.css');
/*
CSS Reset by Eric Meyer - Released under Public Domain
http://meyerweb.com/eric/tools/css/reset/
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, table,
caption, tbody, tfoot, thead, tr, th, td
{margin: 0;padding: 0;border: 0;outline: 0;
font-size: 100%;vertical-align: baseline;
background: transparent;}
body {line-height: 1;}
ol, ul {list-style: none;}
blockquote, q {quotes: none;}
blockquote:before, blockquote:after,
q:before, q:after {content: ''; content: none;}
:focus {outline: 0;}
ins {text-decoration: none;}
del {text-decoration: line-through;}
table {border-collapse: collapse;border-spacing: 0;}
body {
color: #000;
background-color: #dcdcdc;
}
a {
text-decoration: none;
color: #1883ba;
}
h1{
font-size: 32px;
font-weight: normal;
font-style: normal;
margin-bottom: 18px;
}
h2{
font-size: 18px;
}
#container {
width: 865px;
margin: 0px auto;
}
#header {
padding: 20px;
font-size: 36px;
background-color: #000;
color: #fff;
}
#header span {
color: #666;
}
#main_content {
background-color: #fff;
padding: 60px 20px 20px;
}
#footer p {
margin: 0;
padding-top: 10px;
padding-bottom: 50px;
color: #333;
font: 10px Arial, sans-serif;
}
.tabs {
width: 100%;
height: 31px;
background-color: #444;
}
.tabs li {
float: left;
margin: 0;
overflow: hidden;
background-color: #444;
}
.tabs li a {
display: block;
color: #fff;
text-decoration: none;
font: bold 11px/11px 'Arial';
text-transform: uppercase;
padding: 10px 15px;
border-right: 1px solid #fff;
}
.tabs li a:hover {
background-color: #00b3ff;
}
.tabs li.active a {
color: #000;
background-color: #fff;
}
div.huge {
font-size: 300px;
line-height: 1em;
padding: 0;
letter-spacing: -.02em;
overflow: hidden;
}
div.glyph_range {
font-size: 72px;
line-height: 1.1em;
}
.size10{ font-size: 10px; }
.size11{ font-size: 11px; }
.size12{ font-size: 12px; }
.size13{ font-size: 13px; }
.size14{ font-size: 14px; }
.size16{ font-size: 16px; }
.size18{ font-size: 18px; }
.size20{ font-size: 20px; }
.size24{ font-size: 24px; }
.size30{ font-size: 30px; }
.size36{ font-size: 36px; }
.size48{ font-size: 48px; }
.size60{ font-size: 60px; }
.size72{ font-size: 72px; }
.size90{ font-size: 90px; }
.psample_row1 { height: 120px;}
.psample_row1 { height: 120px;}
.psample_row2 { height: 160px;}
.psample_row3 { height: 160px;}
.psample_row4 { height: 160px;}
.psample {
overflow: hidden;
position: relative;
}
.psample p {
line-height: 1.3em;
display: block;
overflow: hidden;
margin: 0;
}
.psample span {
margin-right: .5em;
}
.white_blend {
width: 100%;
height: 61px;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO1JREFUeNrs3TsKgFAMRUE/eer+NxztxMYuEWQG3ECKwwUF58ycAKixOAGAyAKILAAiCyCyACILgMgCiCyAyAIgsgAiCyCyAIgsgMgCiCwAIgsgsgAiC4DIAogsACIL0CWuZ3UGgLrIhjMA1EV2OAOAJQtgyQLwjOzmDAAiCyCyAIgsQFtkd2cAEFkAkQVAZAHaIns4A4AlC2DJAiCyACILILIAiCzAV5H1dQGAJQsgsgCILIDIAvwisl58AViyAJYsACILILIAIgvAe2T9EhxAZAFEFgCRBeiL7HAGgLrIhjMAWLIAliwAt1OAAQDwygTBulLIlQAAAABJRU5ErkJggg==);
position: absolute;
bottom: 0;
}
.black_blend {
width: 100%;
height: 61px;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPJJREFUeNrs3TEKhTAQRVGjibr/9QoxhY2N3Ywo50A28IrLwP9g6b1PAMSYTQAgsgAiC4DIAogsgMgCILIAIgsgsgCILIDIAogsACILILIAIguAyAKILIDIAiCyACILgMgCZCnjLWYAiFGvB0BQZJsZAFyyAC5ZAO6RXc0AILIAIguAyAKkRXYzA4DIAogsACILkBbZ3QwALlkAlywAIgsgsgAiC4DIArwVWf8uAHDJAogsACILILIAv4isH74AXLIALlkARBZAZAFEFoDnyPokOIDIAogsACILkBfZZgaAuMhWMwC4ZAE+p4x3mAEgxinAAJ+XBbPWGkwAAAAAAElFTkSuQmCC);
position: absolute;
bottom: 0;
}
.fullreverse {
background: #000 !important;
color: #fff !important;
margin-left: -20px;
padding-left: 20px;
margin-right: -20px;
padding-right: 20px;
padding: 20px;
margin-bottom:0;
}
.sample_table td {
padding-top: 3px;
padding-bottom:5px;
padding-left: 5px;
vertical-align: middle;
line-height: 1.2em;
}
.sample_table td:first-child {
background-color: #eee;
text-align: right;
padding-right: 5px;
padding-left: 0;
padding: 5px;
font: 11px/12px "Courier New", Courier, mono;
}
code {
white-space: pre;
background-color: #eee;
display: block;
padding: 10px;
margin-bottom: 18px;
overflow: auto;
}
.bottom,.last {margin-bottom:0 !important; padding-bottom:0 !important;}
.box {
padding: 18px;
margin-bottom: 18px;
background: #eee;
}
.reverse,.reversed { background: #000 !important;color: #fff !important; border: none !important;}
#bodycomparison {
position: relative;
overflow: hidden;
font-size: 72px;
height: 90px;
white-space: nowrap;
}
#bodycomparison div{
font-size: 72px;
line-height: 90px;
display: inline;
margin: 0 15px 0 0;
padding: 0;
}
#bodycomparison div span{
font: 10px Arial;
position: absolute;
left: 0;
}
#xheight {
float: none;
position: absolute;
color: #d9f3ff;
font-size: 72px;
line-height: 90px;
}
.fontbody {
position: relative;
}
.arialbody{
font-family: Arial;
position: relative;
}
.verdanabody{
font-family: Verdana;
position: relative;
}
.georgiabody{
font-family: Georgia;
position: relative;
}
/* @group Layout page
*/
#layout h1 {
font-size: 36px;
line-height: 42px;
font-weight: normal;
font-style: normal;
}
#layout h2 {
font-size: 24px;
line-height: 23px;
font-weight: normal;
font-style: normal;
}
#layout h3 {
font-size: 22px;
line-height: 1.4em;
margin-top: 1em;
font-weight: normal;
font-style: normal;
}
#layout p.byline {
font-size: 12px;
margin-top: 18px;
line-height: 12px;
margin-bottom: 0;
}
#layout p {
font-size: 14px;
line-height: 21px;
margin-bottom: .5em;
}
#layout p.large{
font-size: 18px;
line-height: 26px;
}
#layout .sidebar p{
font-size: 12px;
line-height: 1.4em;
}
#layout p.caption {
font-size: 10px;
margin-top: -16px;
margin-bottom: 18px;
}
/* @end */
/* @group Glyphs */
#glyph_chart div{
background-color: #d9f3ff;
color: black;
float: left;
font-size: 36px;
height: 1.2em;
line-height: 1.2em;
margin-bottom: 1px;
margin-right: 1px;
text-align: center;
width: 1.2em;
position: relative;
padding: .6em .2em .2em;
}
#glyph_chart div p {
position: absolute;
left: 0;
top: 0;
display: block;
text-align: center;
font: bold 9px Arial, sans-serif;
background-color: #3a768f;
width: 100%;
color: #fff;
padding: 2px 0;
}
#glyphs h1 {
font-family: Arial, sans-serif;
}
/* @end */
/* @group Installing */
#installing {
font: 13px Arial, sans-serif;
}
#installing p,
#glyphs p{
line-height: 1.2em;
margin-bottom: 18px;
font: 13px Arial, sans-serif;
}
#installing h3{
font-size: 15px;
margin-top: 18px;
}
/* @end */
#rendering h1 {
font-family: Arial, sans-serif;
}
.render_table td {
font: 11px "Courier New", Courier, mono;
vertical-align: middle;
}

1
in/static/img/git.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="92pt" height="92pt" viewBox="0 0 92 92"><defs><clipPath id="a"><path d="M0 .113h91.887V92H0Zm0 0"/></clipPath></defs><g clip-path="url(#a)"><path style="stroke:none;fill-rule:nonzero;fill:#fff;fill-opacity:1" d="M90.156 41.965 50.036 1.848a5.918 5.918 0 0 0-8.372 0l-8.328 8.332 10.566 10.566a7.03 7.03 0 0 1 7.23 1.684 7.034 7.034 0 0 1 1.669 7.277l10.187 10.184a7.028 7.028 0 0 1 7.278 1.672 7.04 7.04 0 0 1 0 9.957 7.05 7.05 0 0 1-9.965 0 7.044 7.044 0 0 1-1.528-7.66l-9.5-9.497V59.36a7.04 7.04 0 0 1 1.86 11.29 7.04 7.04 0 0 1-9.957 0 7.04 7.04 0 0 1 0-9.958 7.06 7.06 0 0 1 2.304-1.539V33.926a7.049 7.049 0 0 1-3.82-9.234L29.242 14.272 1.73 41.777a5.925 5.925 0 0 0 0 8.371L41.852 90.27a5.925 5.925 0 0 0 8.37 0l39.934-39.934a5.925 5.925 0 0 0 0-8.371"/></g></svg>

After

Width:  |  Height:  |  Size: 816 B

View File

@ -1,23 +1,29 @@
{% macro menu_items(key="") %}
{% for page in pages | get(key=key, default=pages) | unzip | filter(attribute="1.order") | sort(attribute="1.order") %}
{% set parent = key %}
{% set key = page.0 %}
{% set value = page.1 %}
{% if value.type and value.type == "page" %}
<li><a href="{{value.path}}">{{value.title}}</a></li>
{% elif value.type and value.type == "category" %}
{% set next = [parent, key] | join(sep=".") | trim_start_matches(pat=".") %}
</menu>
<details open>
<summary>
{{value.title}}
</summary>
<menu class="menu-item-list">
{{ self::menu_items(key=next) }}
{% for page in pages | get(key=key, default=pages) | unzip | filter(attribute="1.order") | sort(attribute="1.order") %}
{% set parent = key %}
{% set key = page.0 %}
{% set value = page.1 %}
{% if value.type and value.type == "page" %}
<li><a href="{{value.path}}">{{value.title}}</a></li>
{% elif value.type and value.type == "category" %}
{% set next = [parent, key] | join(sep=".") | trim_start_matches(pat=".") %}
</menu>
</details>
<menu class="menu-item-list">
{% endif %}
{% endfor %}
<details open>
<summary>
{{value.title}}
</summary>
<menu class="menu-item-list">
{{ self::menu_items(key=next) }}
</menu>
</details>
<menu class="menu-item-list">
{% endif %}
{% endfor %}
{% endmacro category %}
{% macro icon(name, size="24") %}
{% if name == "git" -%}
<svg class="icon git" height="{{size}}" width="{{size}}" xmlns="http://www.w3.org/2000/svg" width="92pt" height="92pt" viewBox="0 0 92 92"><defs><clipPath id="a"><path d="M0 .113h91.887V92H0Zm0 0"/></clipPath></defs><g clip-path="url(#a)"><path style="stroke:none;fill-rule:nonzero;fill:#fff;fill-opacity:1" d="M90.156 41.965 50.036 1.848a5.918 5.918 0 0 0-8.372 0l-8.328 8.332 10.566 10.566a7.03 7.03 0 0 1 7.23 1.684 7.034 7.034 0 0 1 1.669 7.277l10.187 10.184a7.028 7.028 0 0 1 7.278 1.672 7.04 7.04 0 0 1 0 9.957 7.05 7.05 0 0 1-9.965 0 7.044 7.044 0 0 1-1.528-7.66l-9.5-9.497V59.36a7.04 7.04 0 0 1 1.86 11.29 7.04 7.04 0 0 1-9.957 0 7.04 7.04 0 0 1 0-9.958 7.06 7.06 0 0 1 2.304-1.539V33.926a7.049 7.049 0 0 1-3.82-9.234L29.242 14.272 1.73 41.777a5.925 5.925 0 0 0 0 8.371L41.852 90.27a5.925 5.925 0 0 0 8.37 0l39.934-39.934a5.925 5.925 0 0 0 0-8.371"/></g></svg>
{% endif %}
{% endmacro icon %}

View File

@ -1,10 +1,6 @@
{% import "macros.html" as macros %}
<aside class="navigation">
<div class="logo">
<h1>Roxy</h1>
</div>
{% include "menu-toggle.html" %}
<nav class="menu">
<menu class="menu-item-list">

View File

@ -1,9 +1,29 @@
{% extends "index.tera" %}
{% import "../includes/macros.html" as macros %}
{% block main %}
<h1>{% block title %}{{ this.title }}{% endblock title %}</h1>
<div>
{% block content %}{% endblock content %}
</div>
<div class="header">
<div class="layout">
<div class="spacer"></div>
<h1 class="title">
{% block header_title %}Roxy{% endblock header_title %}
</h1>
<div class="icons">
<a href="https://fem.mint.lgbt/kitsunecafe/roxy-cli">
{{ macros::icon(name="git") }}
</a>
</div>
</div>
<hr />
</div>
<div class="content">
<h1 class="title">{% block content_title %}{{ this.title }}{% endblock content_title %}</h1>
<div>
{% block content %}{% endblock content %}
</div>
</div>
{% endblock main %}