diff --git a/generate.sh b/generate.sh index 05a1d00..1619d07 100755 --- a/generate.sh +++ b/generate.sh @@ -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 diff --git a/in/index.md b/in/index.md index 4bb1f47..5d90beb 100644 --- a/in/index.md +++ b/in/index.md @@ -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 %} diff --git a/in/pages/guides/configuration.md b/in/pages/guides/configuration.md index d32ea24..3b608f1 100644 --- a/in/pages/guides/configuration.md +++ b/in/pages/guides/configuration.md @@ -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 %} diff --git a/in/pages/guides/local-development.md b/in/pages/guides/local-development.md new file mode 100644 index 0000000..f9e0413 --- /dev/null +++ b/in/pages/guides/local-development.md @@ -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 %} + diff --git a/in/pages/guides/local-development.toml b/in/pages/guides/local-development.toml new file mode 100644 index 0000000..158c3d6 --- /dev/null +++ b/in/pages/guides/local-development.toml @@ -0,0 +1,4 @@ +title = "Local development" +type = "page" +order = 1 + diff --git a/in/pages/guides/routing.md b/in/pages/guides/routing.md new file mode 100644 index 0000000..2165762 --- /dev/null +++ b/in/pages/guides/routing.md @@ -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 %} + diff --git a/in/pages/guides/routing.toml b/in/pages/guides/routing.toml new file mode 100644 index 0000000..34070df --- /dev/null +++ b/in/pages/guides/routing.toml @@ -0,0 +1,4 @@ +title = "Routing" +type = "page" +order = 2 + diff --git a/in/pages/overview.md b/in/pages/overview.md index 7c93a76..2cb6f27 100644 --- a/in/pages/overview.md +++ b/in/pages/overview.md @@ -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 %} diff --git a/in/static/css/nav.css b/in/static/css/nav.css index 3644124..1e563aa 100644 --- a/in/static/css/nav.css +++ b/in/static/css/nav.css @@ -94,6 +94,7 @@ aside.navigation { aside.navigation { height: 100%; max-width: 25rem; + padding-left: 5rem; } .menu { diff --git a/in/static/css/style.css b/in/static/css/style.css index 636de0b..b915a75 100644 --- a/in/static/css/style.css +++ b/in/static/css/style.css @@ -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; +} diff --git a/in/static/fonts/roboto_regular/specimen_files/Roboto-Regular-cleartype.png b/in/static/fonts/roboto_regular/specimen_files/Roboto-Regular-cleartype.png deleted file mode 100644 index 031d8a3..0000000 Binary files a/in/static/fonts/roboto_regular/specimen_files/Roboto-Regular-cleartype.png and /dev/null differ diff --git a/in/static/fonts/roboto_regular/specimen_files/grid_12-825-55-15.css b/in/static/fonts/roboto_regular/specimen_files/grid_12-825-55-15.css deleted file mode 100644 index 3d6aef7..0000000 --- a/in/static/fonts/roboto_regular/specimen_files/grid_12-825-55-15.css +++ /dev/null @@ -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;} \ No newline at end of file diff --git a/in/static/fonts/roboto_regular/specimen_files/specimen_stylesheet.css b/in/static/fonts/roboto_regular/specimen_files/specimen_stylesheet.css deleted file mode 100644 index aecc43c..0000000 --- a/in/static/fonts/roboto_regular/specimen_files/specimen_stylesheet.css +++ /dev/null @@ -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; -} - - diff --git a/in/static/img/git.svg b/in/static/img/git.svg new file mode 100644 index 0000000..cb1a374 --- /dev/null +++ b/in/static/img/git.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/includes/macros.html b/includes/macros.html index 8cf0dd6..e3fe57d 100644 --- a/includes/macros.html +++ b/includes/macros.html @@ -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" %} -
  • {{value.title}}
  • - {% elif value.type and value.type == "category" %} - {% set next = [parent, key] | join(sep=".") | trim_start_matches(pat=".") %} - -
    - - {{value.title}} - - - {{ 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" %} +
  • {{value.title}}
  • + {% elif value.type and value.type == "category" %} + {% set next = [parent, key] | join(sep=".") | trim_start_matches(pat=".") %}
    -
    - - {% endif %} -{% endfor %} +
    + + {{value.title}} + + + {{ self::menu_items(key=next) }} + +
    + + {% endif %} + {% endfor %} {% endmacro category %} + +{% macro icon(name, size="24") %} + {% if name == "git" -%} + + {% endif %} +{% endmacro icon %} diff --git a/includes/nav.html b/includes/nav.html index 46792e2..b58f9ca 100644 --- a/includes/nav.html +++ b/includes/nav.html @@ -1,10 +1,6 @@ {% import "macros.html" as macros %}