diff --git a/.bundle/config b/.bundle/config
deleted file mode 100644
index aea37992..00000000
--- a/.bundle/config
+++ /dev/null
@@ -1,3 +0,0 @@
----
-BUNDLE_BUILD__LIBV8: "--with-system-v8"
-BUNDLE_BUILD__THERUBYRACER: "--with-v8-dir=/usr/local/opt/v8@3.15"
diff --git a/.gitignore b/.gitignore
index 5a137d9a..ff704489 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,3 @@
-_site
-.sass-cache
-.jekyll-cache
-.jekyll-metadata
-vendor
node_modules
_drafts/*
+public
diff --git a/Gemfile b/Gemfile
deleted file mode 100644
index c256cbe0..00000000
--- a/Gemfile
+++ /dev/null
@@ -1,13 +0,0 @@
-source "https://rubygems.org"
-
-ruby '~> 2.7'
-
-gem "jekyll", "~> 4.4.1"
-
-group :jekyll_plugins do
- gem "jekyll-feed", "~> 0.12"
- gem "jekyll-last-modified-at", "~> 1.3"
- gem "jekyll-seo-tag", "~> 2.6"
- gem "jekyll-sitemap", "~> 1.4"
- gem "jekyll-target-blank", "~> 2.0"
-end
diff --git a/Gemfile.lock b/Gemfile.lock
deleted file mode 100644
index 40e4dc29..00000000
--- a/Gemfile.lock
+++ /dev/null
@@ -1,102 +0,0 @@
-GEM
- remote: https://rubygems.org/
- specs:
- addressable (2.8.7)
- public_suffix (>= 2.0.2, < 7.0)
- base64 (0.2.0)
- colorator (1.1.0)
- concurrent-ruby (1.3.5)
- csv (3.3.2)
- em-websocket (0.5.3)
- eventmachine (>= 0.12.9)
- http_parser.rb (~> 0)
- eventmachine (1.2.7)
- ffi (1.17.1)
- forwardable-extended (2.6.0)
- google-protobuf (3.25.6)
- http_parser.rb (0.8.0)
- i18n (1.14.7)
- concurrent-ruby (~> 1.0)
- jekyll (4.4.1)
- addressable (~> 2.4)
- base64 (~> 0.2)
- colorator (~> 1.0)
- csv (~> 3.0)
- em-websocket (~> 0.5)
- i18n (~> 1.0)
- jekyll-sass-converter (>= 2.0, < 4.0)
- jekyll-watch (~> 2.0)
- json (~> 2.6)
- kramdown (~> 2.3, >= 2.3.1)
- kramdown-parser-gfm (~> 1.0)
- liquid (~> 4.0)
- mercenary (~> 0.3, >= 0.3.6)
- pathutil (~> 0.9)
- rouge (>= 3.0, < 5.0)
- safe_yaml (~> 1.0)
- terminal-table (>= 1.8, < 4.0)
- webrick (~> 1.7)
- jekyll-feed (0.17.0)
- jekyll (>= 3.7, < 5.0)
- jekyll-last-modified-at (1.3.2)
- jekyll (>= 3.7, < 5.0)
- jekyll-sass-converter (3.0.0)
- sass-embedded (~> 1.54)
- jekyll-seo-tag (2.8.0)
- jekyll (>= 3.8, < 5.0)
- jekyll-sitemap (1.4.0)
- jekyll (>= 3.7, < 5.0)
- jekyll-target-blank (2.0.2)
- jekyll (>= 3.0, < 5.0)
- nokogiri (~> 1.10)
- jekyll-watch (2.2.1)
- listen (~> 3.0)
- json (2.9.1)
- kramdown (2.5.1)
- rexml (>= 3.3.9)
- kramdown-parser-gfm (1.1.0)
- kramdown (~> 2.0)
- liquid (4.0.4)
- listen (3.9.0)
- rb-fsevent (~> 0.10, >= 0.10.3)
- rb-inotify (~> 0.9, >= 0.9.10)
- mercenary (0.4.0)
- mini_portile2 (2.8.2)
- nokogiri (1.15.2)
- mini_portile2 (~> 2.8.2)
- racc (~> 1.4)
- pathutil (0.16.2)
- forwardable-extended (~> 2.6)
- public_suffix (5.1.1)
- racc (1.7.1)
- rake (13.2.1)
- rb-fsevent (0.11.2)
- rb-inotify (0.11.1)
- ffi (~> 1.0)
- rexml (3.4.0)
- rouge (4.5.1)
- safe_yaml (1.0.5)
- sass-embedded (1.63.6)
- google-protobuf (~> 3.23)
- rake (>= 13.0.0)
- terminal-table (3.0.2)
- unicode-display_width (>= 1.1.1, < 3)
- unicode-display_width (2.6.0)
- webrick (1.9.1)
-
-PLATFORMS
- ruby
-
-DEPENDENCIES
- jekyll (~> 4.4.1)
- jekyll-feed (~> 0.12)
- jekyll-last-modified-at (~> 1.3)
- jekyll-seo-tag (~> 2.6)
- jekyll-sitemap (~> 1.4)
- jekyll-target-blank (~> 2.0)
-
-RUBY VERSION
- ruby 2.7.7p221
-
-BUNDLED WITH
- 2.4.7
diff --git a/Makefile b/Makefile
index d6003249..ac61378c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,12 @@
-export EXECJS_RUNTIME=Node
+BUILD_DIR=public
.PHONEY: default build
default: clean
- bundle exec jekyll serve --livereload --drafts --incremental --future
+ zola serve
build: clean
- JEKYLL_ENV=production bundle exec jekyll build --verbose --profile --trace && pnpm gulp
+ zola build
-clean: clean_cache
- bundle exec jekyll clean
-
-clean_cache:
- rm -rf .jekyll-cache
+clean:
+ rm -rf ${BUILD_DIR}
diff --git a/_config.yml b/_config.yml
deleted file mode 100644
index 3af6f1c8..00000000
--- a/_config.yml
+++ /dev/null
@@ -1,86 +0,0 @@
-# Welcome to Jekyll!
-#
-# This config file is meant for settings that affect your whole blog, values
-# which you are expected to set up once and rarely edit after that. If you find
-# yourself editing this file very often, consider using Jekyll's data files
-# feature for the data you need to update frequently.
-#
-# For technical reasons, this file is *NOT* reloaded automatically when you use
-# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
-#
-# If you need help with YAML syntax, here are some quick references for you:
-# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
-# https://learnxinyminutes.com/docs/yaml/
-#
-# Site settings
-# These are used to personalize your new site. If you look in the HTML files,
-# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
-# You can create any custom variable you would like, and they will be accessible
-# in the templates via {{ site.myvariable }}.
-
-title: Brian van Burken
-baseurl: "" # the subpath of your site, e.g. /blog
-url: "https://brianvanburken.nl" # the base hostname & protocol for your site, e.g. http://example.com
-
-date_format: "%Y-%m-%d"
-
-github_source: https://github.com/brianvanburken/brianvanburken.github.io/tree/master/
-
-# Build settings
-permalink: "/:title/"
-
-defaults:
- - scope:
- path: "" # an empty string here means all files in the project
- values:
- layout: "default"
-
-highlighter: none
-
-sass:
- style: compressed
- sourcemap: development
- load_paths:
- - _sass
- - node_modules
-
-liquid:
- error_mode: strict
-
-assets:
- source_maps: false
-
-plugins:
- - jekyll-feed
- - jekyll-last-modified-at
- - jekyll-seo-tag
- - jekyll-sitemap
- - jekyll-target-blank
-
-# Exclude from processing.
-# The following items will not be processed, by default.
-# Any item listed under the `exclude:` key here will be automatically added to
-# the internal "default list".
-#
-# Excluded items can be processed by explicitly listing the directories or
-# their entries' file path in the `include:` list.
-#
-exclude:
- - .github
- - .jekyll-cache/
- - .sass-cache/
- - Gemfile
- - Gemfile.lock
- - Makefile
- - gemfiles/
- - gulpfile.js
- - node_modules/
- - package-lock.json
- - package.json
- - pnpm-lock.yaml
- - shiki-themes/
- - tags
- - vendor/bundle/
- - vendor/cache/
- - vendor/gems/
- - vendor/ruby/
diff --git a/_includes/footer.html b/_includes/footer.html
deleted file mode 100644
index 0610b2bc..00000000
--- a/_includes/footer.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
diff --git a/_includes/head.html b/_includes/head.html
deleted file mode 100644
index 5abbf278..00000000
--- a/_includes/head.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
- {%-
- feed_meta -%} {%- seo -%}
-
diff --git a/_includes/header.html b/_includes/header.html
deleted file mode 100644
index 06f23c0e..00000000
--- a/_includes/header.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
- Writings
- |
- GitHub
- |
- LinkedIn
-
diff --git a/_includes/post-excerpt.html b/_includes/post-excerpt.html
deleted file mode 100644
index 36bf70ff..00000000
--- a/_includes/post-excerpt.html
+++ /dev/null
@@ -1,9 +0,0 @@
-
-{{ post.title }}
-—
-{{post.extra.excerpt}}
-
-🗓 {{ post.date | date: site.date_format }}
-
-🏷 {%- include tags-list.html tags=post.tags -%}
-
diff --git a/_includes/post-link.html b/_includes/post-link.html
deleted file mode 100644
index 785e4fd0..00000000
--- a/_includes/post-link.html
+++ /dev/null
@@ -1 +0,0 @@
-{{ post.date | date: site.date_format }} - {{ post.title }}
diff --git a/_includes/post-metadata.html b/_includes/post-metadata.html
deleted file mode 100644
index efccf6f3..00000000
--- a/_includes/post-metadata.html
+++ /dev/null
@@ -1,13 +0,0 @@
-Published on
-
-
-
-Tags: {%- include tags-list.html tags=include.post.tags -%}
-
-
-Source on Github
diff --git a/_includes/tags-list.html b/_includes/tags-list.html
deleted file mode 100644
index 245d37be..00000000
--- a/_includes/tags-list.html
+++ /dev/null
@@ -1,6 +0,0 @@
-{% assign sorted = include.tags | sort %}
-{% for tag in sorted %}
-{{
- tag
-}}{% if forloop.last == false %},{% endif %} {% endfor %}
diff --git a/_layouts/default.html b/_layouts/default.html
deleted file mode 100644
index 5bac042a..00000000
--- a/_layouts/default.html
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- {%- include head.html -%}
-
- {%- include header.html -%}
- {{ content }}
- {%- include footer.html -%}
-
-
diff --git a/_layouts/page.html b/_layouts/page.html
deleted file mode 100644
index bad7a475..00000000
--- a/_layouts/page.html
+++ /dev/null
@@ -1,7 +0,0 @@
----
-layout: default
----
-
- {{ page.title | escape }}
- {{ content }}
-
diff --git a/_layouts/post.html b/_layouts/post.html
deleted file mode 100644
index 100e91cd..00000000
--- a/_layouts/post.html
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: default
----
-
-
-
- {{ page.title | escape }}
-
-
-
-
-
-
diff --git a/assets/styles.scss b/assets/styles.scss
deleted file mode 100644
index 88ac0136..00000000
--- a/assets/styles.scss
+++ /dev/null
@@ -1,5 +0,0 @@
----
-# Only the main Sass file needs front matter (the dashes are enough)
----
-
-@import "../_sass/index";
diff --git a/config.toml b/config.toml
new file mode 100644
index 00000000..6b009112
--- /dev/null
+++ b/config.toml
@@ -0,0 +1,33 @@
+base_url = "/"
+title = "Brian van Burken"
+author = "Brian van Burken"
+description = ""
+default_language = "en"
+compile_sass = true
+generate_sitemap = true
+generate_robots_txt = true
+build_search_index = false
+generate_feeds = true
+feed_filenames = ["rss.xml"]
+minify_html = true
+
+[markdown]
+highlight_code = false
+
+ignored_static = [
+ ".github",
+ "Makefile",
+ "gulpfile.js",
+ "node_modules/",
+ "package-lock.json",
+ "package.json"
+]
+
+external_links_target_blank = true
+external_links_no_follow = true
+external_links_no_referrer = true
+
+[extra]
+# Put all your custom variables here
+
+github_source = "https://github.com/brianvanburken/brianvanburken.github.io/tree/master/content"
diff --git a/_posts/2015-08-22-bulk-association-creation-in-rails.md b/content/2015-08-22-bulk-association-creation-in-rails.md
similarity index 100%
rename from _posts/2015-08-22-bulk-association-creation-in-rails.md
rename to content/2015-08-22-bulk-association-creation-in-rails.md
diff --git a/_posts/2018-08-13-maybe-dont-use-maybe.md b/content/2018-08-13-maybe-dont-use-maybe.md
similarity index 100%
rename from _posts/2018-08-13-maybe-dont-use-maybe.md
rename to content/2018-08-13-maybe-dont-use-maybe.md
diff --git a/_posts/2019-05-01-solving-challenges-with-elixirs-compile-time-function.md b/content/2019-05-01-solving-challenges-with-elixirs-compile-time-function.md
similarity index 100%
rename from _posts/2019-05-01-solving-challenges-with-elixirs-compile-time-function.md
rename to content/2019-05-01-solving-challenges-with-elixirs-compile-time-function.md
diff --git a/_posts/2020-08-03-become-a-fire-keramik-with-kotlin.md b/content/2020-08-03-become-a-fire-keramik-with-kotlin.md
similarity index 100%
rename from _posts/2020-08-03-become-a-fire-keramik-with-kotlin.md
rename to content/2020-08-03-become-a-fire-keramik-with-kotlin.md
diff --git a/_posts/2021-10-24-changing-angular-components-for-printing.md b/content/2021-10-24-changing-angular-components-for-printing.md
similarity index 100%
rename from _posts/2021-10-24-changing-angular-components-for-printing.md
rename to content/2021-10-24-changing-angular-components-for-printing.md
diff --git a/_posts/2021-10-25-detecting-output-listeners-in-angular.md b/content/2021-10-25-detecting-output-listeners-in-angular.md
similarity index 100%
rename from _posts/2021-10-25-detecting-output-listeners-in-angular.md
rename to content/2021-10-25-detecting-output-listeners-in-angular.md
diff --git a/_posts/2021-11-15-combine-properties-when-decoding-json-in-elm.md b/content/2021-11-15-combine-properties-when-decoding-json-in-elm.md
similarity index 100%
rename from _posts/2021-11-15-combine-properties-when-decoding-json-in-elm.md
rename to content/2021-11-15-combine-properties-when-decoding-json-in-elm.md
diff --git a/_posts/2021-11-20-rest-of-json-properties-as-list-when-decoding-in-elm.md b/content/2021-11-20-rest-of-json-properties-as-list-when-decoding-in-elm.md
similarity index 100%
rename from _posts/2021-11-20-rest-of-json-properties-as-list-when-decoding-in-elm.md
rename to content/2021-11-20-rest-of-json-properties-as-list-when-decoding-in-elm.md
diff --git a/_posts/2021-12-01-pre-render-syntax-highlighting-with-prism-in-jekyll.md b/content/2021-12-01-pre-render-syntax-highlighting-with-prism-in-jekyll.md
similarity index 100%
rename from _posts/2021-12-01-pre-render-syntax-highlighting-with-prism-in-jekyll.md
rename to content/2021-12-01-pre-render-syntax-highlighting-with-prism-in-jekyll.md
diff --git a/_posts/2021-12-06-a-more-sustainable-blog.md b/content/2021-12-06-a-more-sustainable-blog.md
similarity index 100%
rename from _posts/2021-12-06-a-more-sustainable-blog.md
rename to content/2021-12-06-a-more-sustainable-blog.md
diff --git a/_posts/2021-12-12-building-a-builder-pattern-in-typescript.md b/content/2021-12-12-building-a-builder-pattern-in-typescript.md
similarity index 100%
rename from _posts/2021-12-12-building-a-builder-pattern-in-typescript.md
rename to content/2021-12-12-building-a-builder-pattern-in-typescript.md
diff --git a/_posts/2022-12-26-access-the-last-argument-of-the-last-command-in-a-shell.md b/content/2022-12-26-access-the-last-argument-of-the-last-command-in-a-shell.md
similarity index 100%
rename from _posts/2022-12-26-access-the-last-argument-of-the-last-command-in-a-shell.md
rename to content/2022-12-26-access-the-last-argument-of-the-last-command-in-a-shell.md
diff --git a/_posts/2022-12-26-access-the-last-command-in-a-shell.md b/content/2022-12-26-access-the-last-command-in-a-shell.md
similarity index 100%
rename from _posts/2022-12-26-access-the-last-command-in-a-shell.md
rename to content/2022-12-26-access-the-last-command-in-a-shell.md
diff --git a/_posts/2022-12-27-using-read-in-vim.md b/content/2022-12-27-using-read-in-vim.md
similarity index 100%
rename from _posts/2022-12-27-using-read-in-vim.md
rename to content/2022-12-27-using-read-in-vim.md
diff --git a/_posts/2022-12-30-wrap-visual-selection-using-vim-surround-plugin.md b/content/2022-12-30-wrap-visual-selection-using-vim-surround-plugin.md
similarity index 100%
rename from _posts/2022-12-30-wrap-visual-selection-using-vim-surround-plugin.md
rename to content/2022-12-30-wrap-visual-selection-using-vim-surround-plugin.md
diff --git a/_posts/2022-12-31-home-and-end-keys-equivalent-on-macbook-keyboards.md b/content/2022-12-31-home-and-end-keys-equivalent-on-macbook-keyboards.md
similarity index 100%
rename from _posts/2022-12-31-home-and-end-keys-equivalent-on-macbook-keyboards.md
rename to content/2022-12-31-home-and-end-keys-equivalent-on-macbook-keyboards.md
diff --git a/_posts/2023-01-03-keep-case-when-replacing-text-in-vim.md b/content/2023-01-03-keep-case-when-replacing-text-in-vim.md
similarity index 100%
rename from _posts/2023-01-03-keep-case-when-replacing-text-in-vim.md
rename to content/2023-01-03-keep-case-when-replacing-text-in-vim.md
diff --git a/_posts/2023-01-04-git-add-patch-split-chunks.md b/content/2023-01-04-git-add-patch-split-chunks.md
similarity index 100%
rename from _posts/2023-01-04-git-add-patch-split-chunks.md
rename to content/2023-01-04-git-add-patch-split-chunks.md
diff --git a/_posts/2023-01-15-flatten-directory-on-unix.md b/content/2023-01-15-flatten-directory-on-unix.md
similarity index 100%
rename from _posts/2023-01-15-flatten-directory-on-unix.md
rename to content/2023-01-15-flatten-directory-on-unix.md
diff --git a/_posts/2023-03-02-disable-npm-funding-message.md b/content/2023-03-02-disable-npm-funding-message.md
similarity index 100%
rename from _posts/2023-03-02-disable-npm-funding-message.md
rename to content/2023-03-02-disable-npm-funding-message.md
diff --git a/_posts/2025-02-07-caching-elm-dependencies-on-github-actions.md b/content/2025-02-07-caching-elm-dependencies-on-github-actions.md
similarity index 98%
rename from _posts/2025-02-07-caching-elm-dependencies-on-github-actions.md
rename to content/2025-02-07-caching-elm-dependencies-on-github-actions.md
index a36e3393..d4dc4622 100644
--- a/_posts/2025-02-07-caching-elm-dependencies-on-github-actions.md
+++ b/content/2025-02-07-caching-elm-dependencies-on-github-actions.md
@@ -73,7 +73,7 @@ This should go in the `steps:` section of the workflow file.
uses: actions/cache@v3
with:
path: .elm
-{% raw %} key: elm-${{ runner.os }}-${{ hashFiles('elm.json') }}{% endraw %}
+ key: elm-${{ runner.os }}-${{ hashFiles('elm.json') }}
```
This ensures that dependencies are only redownloaded when `elm.json` changes, as its content is used as the cache key. We set an `id` so that we can reference it to check for cache hits.
diff --git a/content/_index.md b/content/_index.md
new file mode 100644
index 00000000..2c1426ee
--- /dev/null
+++ b/content/_index.md
@@ -0,0 +1,3 @@
+---
+sort_by: date
+---
diff --git a/gulpfile.js b/gulpfile.js
index b9332acd..570bed05 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -15,7 +15,7 @@ import { createHighlighter } from "shiki";
import { transform } from "gulp-html-transform";
import { deleteSync } from "del";
-const source = process.env.BUILD_DIR || "_site";
+const source = process.env.BUILD_DIR || "public";
const dirname = new URL(".", import.meta.url).pathname;
const theme = "ayu-dark";
const highlighter = await createHighlighter({
diff --git a/index.html b/index.html
deleted file mode 100644
index 3d40d948..00000000
--- a/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
----
-layout: default
-title: Writings
----
-
-Writings
-
-{% for post in site.posts %}
- {%- include post-excerpt.html post=page -%}
-{% endfor %}
diff --git a/mise.toml b/mise.toml
index b0b000b4..58650a30 100644
--- a/mise.toml
+++ b/mise.toml
@@ -1,3 +1,3 @@
[tools]
node = "22"
-ruby = "2.7.7"
+zola = "0.21.0"
diff --git a/pages/tags.html b/pages/tags.html
deleted file mode 100644
index 7b1ab1c5..00000000
--- a/pages/tags.html
+++ /dev/null
@@ -1,16 +0,0 @@
----
-permalink: /tags/
----
-
-Tags
-
-{% assign sortedtags = site.documents | map: 'tags' | uniq | sort_natural %}
-{% for tag in sortedtags %}
-{{ tag }}
-
- {% assign posts = site.documents | where: 'tags', tag %}
- {% for post in posts %} {%- include post-link.html post=page -%}
-
- {% endfor %}
-
-{% endfor %}
diff --git a/_sass/index.scss b/sass/style.scss
similarity index 100%
rename from _sass/index.scss
rename to sass/style.scss
diff --git a/assets/become-a-fire-keramik-with-kotlin/lambdaconf_slfp.pdf b/static/become-a-fire-keramik-with-kotlin/lambdaconf_slfp.pdf
similarity index 100%
rename from assets/become-a-fire-keramik-with-kotlin/lambdaconf_slfp.pdf
rename to static/become-a-fire-keramik-with-kotlin/lambdaconf_slfp.pdf
diff --git a/assets/changing-angular-components-for-printing/screenshot.jpg b/static/changing-angular-components-for-printing/screenshot.jpg
similarity index 100%
rename from assets/changing-angular-components-for-printing/screenshot.jpg
rename to static/changing-angular-components-for-printing/screenshot.jpg
diff --git a/assets/solving-challenges-with-elixirs-compile-time-function/rna_transcription.jpg b/static/solving-challenges-with-elixirs-compile-time-function/rna_transcription.jpg
similarity index 100%
rename from assets/solving-challenges-with-elixirs-compile-time-function/rna_transcription.jpg
rename to static/solving-challenges-with-elixirs-compile-time-function/rna_transcription.jpg
diff --git a/404.html b/templates/404.html
similarity index 57%
rename from 404.html
rename to templates/404.html
index f135983d..5b85910d 100644
--- a/404.html
+++ b/templates/404.html
@@ -1,7 +1,7 @@
----
-permalink: /404.html
----
+{% extends "index.html" %}
-Page not found :(
+{% block content %}
+Page not found
The requested page could not be found.
Go to overview of writings
+{% endblock content %}
diff --git a/templates/index.html b/templates/index.html
new file mode 100644
index 00000000..69fb7c29
--- /dev/null
+++ b/templates/index.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ {% block title %}{{ config.title }}{% endblock title %}
+ {% if config.mode == "serve" %}
+
+ {% else %}
+
+ {% endif %}
+
+
+ Writings
+ |
+ GitHub
+ |
+ LinkedIn
+
+ {% block content %}
+ Writings
+ {% for page in section.pages %}
+
+ {{ page.title }}
+ {% if page.extra.excerpt is defined %}
+ —
+ {{page.extra.excerpt}}
+ {% endif %}
+
+ 🗓 {{ page.date }}
+
+ {% endfor %}
+ {% endblock content %}
+
+ {% if config.mode != "serve" and current_path %}
+
+
+ {% endif %}
+
+
diff --git a/templates/page.html b/templates/page.html
new file mode 100644
index 00000000..da11b67a
--- /dev/null
+++ b/templates/page.html
@@ -0,0 +1,18 @@
+{% extends "index.html" %}
+
+
+{% block content %}
+
+
+ {{ page.title }}
+
+
+
+ {{ page.content | safe }}
+
+
+
+
+{% endblock content %}
diff --git a/templates/robots.txt b/templates/robots.txt
new file mode 100644
index 00000000..adbdfe1a
--- /dev/null
+++ b/templates/robots.txt
@@ -0,0 +1,7 @@
+User-agent: Yandex
+Disallow: /
+
+User-agent: *
+Disallow:
+Allow: /
+Sitemap: {{ get_url(path="sitemap.xml") }}