diff --git a/README.md b/README.md new file mode 100644 index 0000000..8fa7cea --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +wezm.net +======== + +My website. Corrections for typos and other minor errors welcome via issue or +pull request. + +v2 +-- + +This is the current version of the website, built with [Zola]. + +v1 +-- + +This is the original version of the website containing posts from 2008–2019. It +is built with [Nanoc]. + +--- + +Copyright Β© 2003 – 2020 Wesley Moore. All rights reserved + +[Nanoc]: https://nanoc.ws/ +[Zola]: https://www.getzola.org/ diff --git a/v2/.gitignore b/v2/.gitignore new file mode 100644 index 0000000..880f35a --- /dev/null +++ b/v2/.gitignore @@ -0,0 +1,2 @@ +static/processed_images/ +public diff --git a/v2/README.md b/v2/README.md new file mode 100644 index 0000000..da3da51 --- /dev/null +++ b/v2/README.md @@ -0,0 +1,13 @@ +# wezm.net v2 + +Build with the [Zola] static site compiler: + + zola serve + +## Dates + +Generate dates in front-matter from vim: + + :r! date +\%Y-\%m-\%dT\%H:\%M:\%S\%:z + +[Zola]: https://www.getzola.org/ diff --git a/v2/config.toml b/v2/config.toml new file mode 100644 index 0000000..379c4b2 --- /dev/null +++ b/v2/config.toml @@ -0,0 +1,22 @@ +# The URL the site will be built for +base_url = "https://files.wezm.net/v2" + +title = "Wesley Moore" + +description = "TODO" + +# Whether to automatically compile all Sass files in the sass directory +compile_sass = true + +generate_rss = true + +# Whether to do syntax highlighting +# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola +highlight_code = true + +# Whether to build a search index to be used later on by a JavaScript library +build_search_index = false + +[extra] +author = "Wesley Moore" +email = "wes@wezm.net" diff --git a/v2/content/_index.md b/v2/content/_index.md new file mode 100644 index 0000000..916c320 --- /dev/null +++ b/v2/content/_index.md @@ -0,0 +1,16 @@ ++++ +title = "Wesley Moore" +[extra] +body_class = "home" ++++ + +I'm a software developer from Melbourne, Australia. I like warm weather +{{ quiet(text="🏝️") }} and tinkering with computers; ranging from small +microcontrollers, up to large servers and the operating systems that run upon +them. I'm a [Rustacean] {{ quiet(text="πŸ¦€") }} with a fondness for mechanical +keyboards and I work at [YesLogic] on the [Prince] HTML to PDF converter. +[Read more on the about page β†’](@/about.md) + +[Prince]: https://www.princexml.com/ +[Rustacean]: https://www.rust-lang.org/learn/get-started#ferris +[YesLogic]: https://yeslogic.com/ diff --git a/v2/content/about.md b/v2/content/about.md new file mode 100644 index 0000000..31f25aa --- /dev/null +++ b/v2/content/about.md @@ -0,0 +1,60 @@ ++++ +title = "About" +date = 2020-01-27T08:38:24+11:00 + +[extra] +show_date = false ++++ + +![Photo of me in Nepal](../images/Photo%20of%20Wesley%20Moore.jpg) + +I'm a software developer from Melbourne, Australia. I like open-source and warm +weather (Melbourne is not in the warm part of Australia unfortunately). I enjoy +tinkering with computers, ranging from small microcontrollers up to large +servers and the operating systems that run upon them. + +I run [Arch Linux] on [my desktop computer][my desktop] and [Void +Linux (musl)][Void Linux] on [my laptop], with the [Awesome] window manager. +The [server hosting this website][my server] runs [Alpine Linux]. +You can read more about my OS adventures on [bitcannon.net]. + +[{{ float_image(image="../static/images/keyboards.jpg", float="right", width=128, alt="Photo of my keyboards") }}](../images/keyboards.jpg) +I enjoy typing on mechanical keyboards. I have a small collection in a range of +sizes. All are fully programmable. My current favourite is a Filco Majestouch +Ninja 2, which has had the factory controller replaced with a programmable one. + +[Rust] is my programming language of choice. I am fairly active in the Rust +community and curate [Read Rust], a website that collects interesting posts +from the Rust community. + +I work at [YesLogic] on the [Prince] HTML to PDF converter. Prince is a very +interesting product to work on as it is essentially a web-browser that outputs +well typeset PDFs. It is largely implemented in the [Mercury] logic programming +language, with portions now in [Rust] as well. + +I am fine with either he/him or they/them pronouns. + +[Alpine Linux]: https://alpinelinux.org/ +[Arch Linux]: https://www.archlinux.org/ +[Awesome]: https://awesomewm.org/ +[bitcannon.net]: https://bitcannon.net/ +[Mercury]: http://www.mercurylang.org/ +[my desktop]: https://bitcannon.net/page/ryzen9-pc/ +[my laptop]: https://bitcannon.net/post/huawei-matebook-x-pro-void-linux/ +[my server]: https://www.wezm.net/technical/2019/02/alpine-linux-docker-infrastructure/ +[Prince]: https://www.princexml.com/ +[Read Rust]: https://readrust.net/ +[Rust]: https://www.rust-lang.org/ +[Void Linux]: https://voidlinux.org/ +[YesLogic]: https://yeslogic.com/ + +## Contact + +See the footer for my email and social media links. + +## Credits + +This website would not be possible without the generous work of others: + +* [Zola](https://www.getzola.org/) static site compiler. +* [Manrope](https://manropefont.com/) font. diff --git a/v2/content/posts/2020/_index.md b/v2/content/posts/2020/_index.md new file mode 100644 index 0000000..ad5f014 --- /dev/null +++ b/v2/content/posts/2020/_index.md @@ -0,0 +1,5 @@ ++++ +title = "2020" +sort_by = "date" +paginate_by = 5 ++++ diff --git a/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/clion.png b/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/clion.png new file mode 100644 index 0000000..397eaf2 Binary files /dev/null and b/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/clion.png differ diff --git a/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/index.md b/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/index.md new file mode 100644 index 0000000..a7b7438 --- /dev/null +++ b/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/index.md @@ -0,0 +1,98 @@ ++++ +title = "Neovim Versus the 28Mb XML File" +date = 2020-01-26T10:47:41+10:00 +draft = true + +# [extra] +# updated = 2019-07-01T22:40:53+10:00 ++++ + +I had occasion recently to open and navigate a 28Mb XML file. This proved a +challenge for Neovim's syntax highlighting, which prompted me to see how some +other editors handled the file. In this post I want to expand on the problem a +bit more and explore ways in which the task can be handled without the need to +switch to another editor. + + + +It all started withe the following [tweet](https://twitter.com/wezm/status/1219759981441871875?s=20): + +> Battle of the editors! It's 2020, on a 12c/24t Ryzen 9 system with 16Gb of RAM, which Linux text editor can open, syntax highlight, and provide folding for a 28Mb XML file? +> +> Not Neovim, VS Code, or CLion. Sublime did. gedit opened and highlighted it but doesn't support folding. + + + + + + + + + + +
+ +It wasn't meant to shame any editors or highlight any particular editor's +superiority. Mostly I thought it was interesting β€” opening a large but not +ridiculously sized file proved to be a challenge for several professional +editors running on a modern, fairly high-end desktop computer. + +{% aside(title="Want to see how your editor handles the file?", float="right") %} +You can [download it](https://files.wezm.net/twitter/NotoColorEmoji.ttx.bz2), +just be sure to uncompress it first. +{% end %} + +I use Neovim for most text editing, except Rust where I use CLion and it will +take a lot more than a once in a decade experience with one file to make me +switch editors. The XML file in question was produced by the `ttx` +tool. This tool generates an XML representation of a font file. It can also +convert the XML back into a font file. I was interested in navigating to a +specific element in the file and examining its children. I was not interested +in the children's children. + +I opened the file in Neovim (which happens instantaneously despite the size). +My planned workflow was to jump to the `CBLC` element and use folding to +collapse the child elements. However, when I navigated to the `CBLC` element +(98% through the file) the syntax highlighting disappeared and the following +message was shown in the status line: + +> 'redrawtime' exceeded, syntax highlighting disabled + +`:set redrawtime` tells me it is set to 2000 (2 seconds), which is the default +value. Additionally I have `foldmethod=syntax` so with syntax highlighting +disabled I lose the automatic folding too (or so I thought…). + +So how might the task be completed? We can increase `redrawtime`. Turns out it needs to be `10000` +for it not to disable syntax highlighting. And there is of course a nearly 10s delay when redrawing +now. However, folding still doesn't work. + +It turns out there is a setting that's required to enable syntax based folding for xml: + +```vim +let g:xml_syntax_folding=1 +``` + +If I turn this on and reopen the file, the syntax highlighting remains on but every movement +is excruciatingly slow β€” I imagine this is why it's not enabled by default. + +So what else can we try? Well Neovim lets us navigate the file fine, the size +is only an issue for syntax highlighting and folding. If we make the +amount of text we're dealing with smaller everything should work. + +We can navigate to the `CBLC` element with `/CBLC`, the syntax highlighting +turns off but we can still use the [tag text object][text-objects] to yank the `CBLC` element +and its children to a new buffer: `yat` (yank outside tag) followed by `:enew` +to open a new buffer and `p` to paste. Now we have a much smaller subset to +deal with (3121 lines). If we enable `xml_syntax_folding` in this smaller buffer it now +works as expected and it perfectly responsive: + +```vim +:let g:xml_syntax_folding=1 +:set ft=xml +``` + +The kicker is that there's actually one one child `strike` element of the `CBLC` element β€” I was +expecting more. With this knowledge the folding wasn't really needed. Nonetheless I learnt some +things. πŸ€“ + +[text-objects]: https://neovim.io/doc/user/motion.html#at diff --git a/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/neovim.png b/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/neovim.png new file mode 100644 index 0000000..ee7eff8 Binary files /dev/null and b/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/neovim.png differ diff --git a/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/sublime.png b/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/sublime.png new file mode 100644 index 0000000..a488b76 Binary files /dev/null and b/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/sublime.png differ diff --git a/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/vscode.png b/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/vscode.png new file mode 100644 index 0000000..6c7c4e7 Binary files /dev/null and b/v2/content/posts/2020/neovim-versus-the-28-megabyte-xml-file/vscode.png differ diff --git a/v2/content/posts/2020/new-design.md b/v2/content/posts/2020/new-design.md new file mode 100644 index 0000000..a200867 --- /dev/null +++ b/v2/content/posts/2020/new-design.md @@ -0,0 +1,47 @@ ++++ +title = "New Design 2020" +date = 2020-01-27T15:42:29+11:00 + +# [extra] +# updated = 2019-07-01T22:40:53+10:00 ++++ + +It's been more than 10 years since I started working on [the previous design] +for this website πŸ˜…, although it won't have been public for 10 years until July +2020. This feels like a good point to come up with a one! + + + +The previous design served me well. The uncluttered design focussed on text was +fast and responsive. It saw the introduction of new devices like iPad and a +gradual increase in mobile display size without needing updating. The new +design aims to retain these features while giving it a lighter feel. I'm using +the [Manrope] variable font for all text. + +Technology wise, the previous site was built with [Nanoc], a Ruby static site +compiler. I've been very happy with Nanoc. As my programming interests have +shifted away from Ruby to Rust in the last decade I wanted to try a Rust static +site compiler. The site is now built with [Zola]. Zola is perhaps not quite as +flexible as Nanoc but I've been able to achieve everything I wanted to with it. +It's super fast and has nice conveniences like live-reload when editing +content. Being a single file native binary also makes installation +straightforward β€” no need to juggle Ruby versions or install gems. + +Inspired by [Chris Krycho] and [Shaun Inman] I've taken to versioning the +website instead of attempting to port all the existing content over to the new +technology. This makes the redesign more of a clean slate and leaves old posts +appearing how the did when originally posted. The new site is hosted under the +`/v2/` prefix. This allows all existing pages to stay where they are and +retains the `www.wezm.net` domain. + +Finally, I've now open sourced [the repository][repo] that the site is generated from. This +is to allow others to see how the site is built and also to submit corrections/fixes +if they're noticed. + +[Chris Krycho]: https://v4.chriskrycho.com/2019/my-final-round-of-url-rewrites-ever.html +[Shaun Inman]: https://web.archive.org/web/20160422175043/http://shauninman.com/archive/2006/12/04/the_original_heap +[Nanoc]: https://nanoc.ws/ +[the previous design]: https://www.wezm.net/technical/2010/07/new-design/ +[Manrope]: https://manropefont.com/ +[Zola]: https://www.getzola.org/ +[repo]: https://github.com/wezm/wezm.net diff --git a/v2/content/posts/_index.md b/v2/content/posts/_index.md new file mode 100644 index 0000000..472d85c --- /dev/null +++ b/v2/content/posts/_index.md @@ -0,0 +1,5 @@ ++++ +title = "Posts" +sort_by = "date" +paginate_by = 5 ++++ diff --git a/v2/sass/screen.scss b/v2/sass/screen.scss new file mode 100644 index 0000000..f87a684 --- /dev/null +++ b/v2/sass/screen.scss @@ -0,0 +1,410 @@ +$heading-margin: 0.25em 0 0.5em 0; +$heading-family: "Manrope VF", sans-serif; +$link-color: hsl(204, 50.8%, 26.1%); + +@font-face { + font-family: "Manrope VF"; + src: url("ManropeGX.ttf") format("truetype-variations"); + font-style: normal; + font-weight: 200 800; +} + +html { + background-color: #fcfcfc; + min-height: 100%; +} +body { + margin:40px auto; + max-width: 800px; + line-height:1.6; + font-family: "Manrope VF", sans-serif; + font-size:18px; + color:#444; + padding:0 10px; + display: flex; + flex-direction: column; + min-height: 100%; +} +body.home { + max-width: 1000px; +} +pre, code { + font-family: "Pragmata Pro", "Pragmata Pro Mono", "JetBrains Mono", "Iosevka", "Consolas", monospace; + font-size: 16px; +} +code { + background-color: #ffedf0; + padding: 0.1em 0.2em; + border-radius: 3px; +} +pre { + padding: 0.5em 1em; +} +h1,h2,h3,h4 { + font-family: $heading-family; + margin: $heading-margin; + line-height: 1.2; +} +h1,h2 { + font-weight: 300; +} +h3 { + font-weight: 400; +} +main img { + max-width: 100%; +} +main.home { + h1 { + text-align: center; + font-size: 5em; + font-weight: 200; + line-height: 1.2; + } + h2 { + font-size: 2em; + font-weight: 800; + } + h3 { + font-weight: 300; + } + article { + h3 { + font-size: 1.5em; + } + .post-metadata { + font-size: smaller; + color: #666; + } + .date-icon { + width: 20px; + } + } + section h2 { + margin-bottom: 1em; + } +} + +a { + text-decoration: underline; +} +a:link, a:visited { + color: $link-color; +} +.hover-underline:hover { + border-bottom: 1px solid currentColor; +} +nav a:link, nav a:visited { + color: #666; +} +.intro { + max-width: 800px; + margin: 0 auto 3em; +} +.post-metadata { + display: flex; + flex-wrap: wrap; + font-weight: 500; + color: #555; + + em { + color: #7a7a7a; + font-style: oblique 10deg; + + .updated { + margin-right: 0.5em; + } + } +} +article { + margin-bottom: 3em; + + h2,h3 { + a:link, a:visited { + color: currentColor; + text-decoration: none; + border-bottom: 2px solid currentColor; + } + } + h2 { + font-size: 2.5em; + } + h3 { + font-size: 2em; + font-weight: 300; + line-height: 1.5; + } + h4 { + font-size: 1.25em; + font-weight: 400; + } + blockquote { + border-left: 3px solid skyblue; + font-style: oblique 10deg; + background-color: hsl(197.4, 23.4%, 97.5%); + padding: 1px 1em; + margin: 1em 0; + clear: both; + } + aside { + padding: 1em 1em 0; + box-sizing: border-box; + border: 1px solid #eaeae1; + background-color: rgba(255, 255, 246, 0.3); + border-radius: 5px; + font-size: smaller; + width: 240px; + + .emoji { + margin-bottom: 0.5em; + } + } + aside.float-right { + margin: 0 0 1em 1em; + } +} +img, canvas, iframe, video, svg { + max-width: 100%; + margin: 0 auto; +} +figure { + margin: 0 auto 1.5em; +} +figcaption { + font-size: 16px; + font-weight: 500; + text-align: center; +} +footer { + color: #888; + font-size: 14px; + border-top: 1px solid #AAA; + margin: 1em 0px 2em; + clear: both; +} +footer .copyright { + margin-top: 1em; +} + +.no-border { + border: none; + text-decoration: none; +} +.text-center { + text-align: center; +} +.text-smaller { + font-size: 0.5em; +} +.flex { + display: flex; +} + +.logo { + font-size: 1.75em; + a { + color: #555; + } +} + +.breadcrumb-sep { + color: #999; +} + +.tagline { + line-height: 2; + font-weight: 300; + font-size: 2em; + margin: $heading-margin; + font-family: $heading-family; + display: flex; + flex-wrap: wrap; + justify-content: space-between; +} + +.action-button { + background-color: $link-color; + border-radius: 0.25em; + border: 2px solid $link-color; + color: white; + display: inline-block; + font-size: 12px; + font-weight: 750; + margin: 0.75em 0; + padding: 0.5em 1em; + text-decoration: none; + text-transform: uppercase; +} +.action-button-ghost { + background-color: initial; + color: $link-color; +} +.action-button-ghost:hover { + background-color: $link-color; + color: white; +} + +.posts-section { + width: 100%; +} +.projects-section { + width: 300px; + flex-shrink: 0; + margin-left: 2em; +} +ul.projects { + padding: 0; + margin: 0; + list-style: none; + + li { + margin: 1em 0; + } + img, svg { + width: 32px; + vertical-align: middle; + margin-right: 0.5em; + } + p { + margin-left: calc(32px + 0.5em); + font-size: smaller; + margin-top: 0; + } +} + +#zola-continue-reading { + margin: 0; +} + +.post-body h3 { + margin-top: 1.5em; +} + +.footnote-definition { + font-size: smaller; +} +.footnote-definition-label { + float: left; + margin-right: 0.5em; +} + +.date-icon { + width: 24px; + vertical-align: top; + margin-right: 9px; +} +.ornament { + display: inline-block; + margin: 0 auto; + width: 33px; + text-align: center; +} +.screenshot img { + border: 1px solid #666; +} +.image-right { + float: right; + margin: 0.5em 0 1em 1em; +} +.float-right { + float: right; +} + +.small-caps { + text-transform: uppercase; + font-size: 14px; + letter-spacing: 1px; + font-weight: 600; +} + +.three-columns { + columns: 3; + + ul { + margin-top: 0; + margin-bottom: 0; + } +} + +.socials { + margin-top: 1em; + + a { + text-transform: uppercase; + font-weight: 600; + font-size: 12px; + letter-spacing: 1px; + color: #888; + padding: 0 0.5em; + text-decoration: none; + } +} + +@media screen and (max-width: 800px) { + .tagline { + display: initial; + } + .emoji-pair { + text-align: center; + } + .home .flex { + flex-direction: column + } + .projects-section { + margin: 0; + width: auto; + } +} +@media screen and (max-width: 600px) { + article { + h2 { + a:link, a:visited { + border-bottom: none; + } + } + } +} +@media screen and (max-width: 375px) { + main.home { + h1 { + font-size: 4em; + } + } + article { + aside { + width: auto; + + &.float-right, &.float-left { + float: none; + margin-left: 0; + margin-right: 0; + } + } + } + footer { + font-size: 16px; + } + .tagline { + font-size: 1.75em; + } + .date-published { + margin-top: 0.75em; + } + .ornament { + visibility: hidden; + } + .date-updated { + margin-top: 0.5em; + position: relative; + left: -33px; + } + .socials { + text-align: center; + + a { + font-size: 14px; + line-height: 3; + padding: 0 1em; + } + } +} diff --git a/v2/static/ManropeGX.ttf b/v2/static/ManropeGX.ttf new file mode 100644 index 0000000..de4f379 Binary files /dev/null and b/v2/static/ManropeGX.ttf differ diff --git a/v2/static/images/Photo of Wesley Moore.jpg b/v2/static/images/Photo of Wesley Moore.jpg new file mode 100644 index 0000000..b55b974 Binary files /dev/null and b/v2/static/images/Photo of Wesley Moore.jpg differ diff --git a/v2/static/images/keyboards.jpg b/v2/static/images/keyboards.jpg new file mode 100644 index 0000000..a60e84c Binary files /dev/null and b/v2/static/images/keyboards.jpg differ diff --git a/v2/static/images/read-rust.svg b/v2/static/images/read-rust.svg new file mode 100644 index 0000000..1b4a935 --- /dev/null +++ b/v2/static/images/read-rust.svg @@ -0,0 +1,9 @@ + diff --git a/v2/templates/article.html b/v2/templates/article.html new file mode 100644 index 0000000..514396f --- /dev/null +++ b/v2/templates/article.html @@ -0,0 +1,14 @@ +
+

{{ page.title }}

+
+
+ + +
+
+ +
+ {{ page.summary | safe }} +
+ Continue Reading β†’ +
diff --git a/v2/templates/index.html b/v2/templates/index.html new file mode 100644 index 0000000..bd0a850 --- /dev/null +++ b/v2/templates/index.html @@ -0,0 +1,67 @@ +{% extends "layout.html" %} +{% block title %}{{ config.title }}{% endblock %} + +{% block body %} +
+

{{ section.title }}

+ +
+
+
πŸ‘¨β€πŸ’» Software Developer
+
🌏 Melbourne, Australia
+
+ + {{ section.content | safe }} +
+ +
+
+

Recent Posts

+ + {% set section = get_section(path="posts/_index.md") %} + {% for sub in section.subsections %} + {% set section = get_section(path=sub) %} + {% for page in section.pages %} + {% include "article.html" %} + {% endfor %} + {% endfor %} +
+ +
+

Projects

+ + +
+
+ +
+{% endblock %} diff --git a/v2/templates/layout.html b/v2/templates/layout.html new file mode 100644 index 0000000..191f1fb --- /dev/null +++ b/v2/templates/layout.html @@ -0,0 +1,31 @@ + + + + + + {% block title %}{% endblock %} + + + + + {% block body %}{% endblock %} + + + + diff --git a/v2/templates/page.html b/v2/templates/page.html new file mode 100644 index 0000000..67eb7be --- /dev/null +++ b/v2/templates/page.html @@ -0,0 +1,44 @@ +{% extends "layout.html" %} + +{% block title %}{{ page.title }} - {{ config.title }}{% endblock %} + +{% block body %} +

πŸ‘¨β€πŸ’» {{ config.title }}

+ + + +
+

+ {{ page.title }} +

+ {% if page.extra.show_date | default(value=true) %} +
+
+ + +
+ {%- if page.extra.updated %} +
+ ·updated + + +
+ {% endif %} +
+ {% endif %} + +
+ {{ page.content | safe }} +
+
+{% endblock %} diff --git a/v2/templates/rss.xml b/v2/templates/rss.xml new file mode 100644 index 0000000..85de120 --- /dev/null +++ b/v2/templates/rss.xml @@ -0,0 +1,26 @@ + + + + {{ config.title }} + {{ config.base_url }} + {{ config.description }} + Zola + {{ config.default_language }} + {{ config.extra.email }} ({{ config.extra.author }}) + {{ config.extra.email }} ({{ config.extra.author }}) + + {{ last_build_date | date(format="%a, %d %b %Y %H:%M:%S %z") }} + {% for page in pages %} + + {{ page.title }} + {{ page.date | date(format="%a, %d %b %Y %H:%M:%S %z") }} + {{ page.date | date(format="%Y-%m-%dT%H:%M:%S%:z") }} + {% if page.extra.updated %}{{ page.extra.updated | date(format="%Y-%m-%dT%H:%M:%S%:z") }}{% endif %} + {{ config.extra.email }} ({{ config.extra.author }}) + {{ page.permalink }} + {{ page.permalink }} + {{ page.content }} + + {% endfor %} + + diff --git a/v2/templates/section.html b/v2/templates/section.html new file mode 100644 index 0000000..b365a80 --- /dev/null +++ b/v2/templates/section.html @@ -0,0 +1,36 @@ +{% extends "layout.html" %} + +{% block title %}{{ section.title }} - {{ config.title }}{% endblock %} + +{% block body %} +

πŸ‘¨β€πŸ’» {{ config.title }}

+ + + +
+

{{ section.title }}

+ + {{ section.content | safe }} + + {% for sub in section.subsections %} + {% set section = get_section(path=sub) %} + {% for page in section.pages %} + {% include "article.html" %} + {% endfor %} + {% endfor %} + + {% for page in paginator.pages %} + {% include "article.html" %} + {% endfor %} +
+{% endblock %} diff --git a/v2/templates/shortcodes/aside.html b/v2/templates/shortcodes/aside.html new file mode 100644 index 0000000..2c4d5f7 --- /dev/null +++ b/v2/templates/shortcodes/aside.html @@ -0,0 +1,6 @@ + diff --git a/v2/templates/shortcodes/float_image.html b/v2/templates/shortcodes/float_image.html new file mode 100644 index 0000000..b108dd1 --- /dev/null +++ b/v2/templates/shortcodes/float_image.html @@ -0,0 +1 @@ +{{ alt }} diff --git a/v2/templates/shortcodes/quiet.html b/v2/templates/shortcodes/quiet.html new file mode 100644 index 0000000..d911e5b --- /dev/null +++ b/v2/templates/shortcodes/quiet.html @@ -0,0 +1 @@ +