diff --git a/.envrc b/.envrc
new file mode 100644
index 0000000..3550a30
--- /dev/null
+++ b/.envrc
@@ -0,0 +1 @@
+use flake
diff --git a/.forgejo/workflows/zola.yaml b/.forgejo/workflows/zola.yaml
new file mode 100644
index 0000000..bb468eb
--- /dev/null
+++ b/.forgejo/workflows/zola.yaml
@@ -0,0 +1,64 @@
+name: Deploy Zola site to Pages
+
+env:
+ ZOLA_VERSION: 0.21.0
+
+on:
+ # Runs on pushes targeting the default branch
+ push:
+ branches:
+ # If you want to build from a different branch, change it here.
+ - main
+ # Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+jobs:
+ build:
+ # You can find the list of available runners on https://codeberg.org/actions/meta, or run one yourself.
+ runs-on: docker
+ container:
+ image: "alpine:edge"
+ steps:
+ - name: Install CI prerequisites
+ run: |
+ apk upgrade -Ua
+ apk add nodejs git 'zola=~${{ env.ZOLA_VERSION }}'
+ - name: Clone the repository
+ uses: https://code.forgejo.org/actions/checkout@v5
+ with:
+ submodules: recursive
+ fetch-depth: 0
+ - name: Generate static files with Zola
+ run: |
+ zola build
+ - name: Upload generated files
+ uses: https://code.forgejo.org/actions/upload-artifact@v3
+ with:
+ name: Generated files
+ path: public/
+
+ deploy:
+ needs: [build]
+ runs-on: docker
+ steps:
+ - name: Clone the repository
+ uses: https://code.forgejo.org/actions/checkout@v5
+ with:
+ submodules: recursive
+ fetch-depth: 0
+ - name: Checkout the target branch and clean it up
+ # If you want to commit to a branch other than "pages", change the two references below, as well as the reference in the last step.
+ run: |
+ git checkout pages || git switch --orphan pages && \
+ rm -Rfv $(ls -A | egrep -v '^(\.git|LICENSE)$')
+ - name: Download generated files
+ uses: https://code.forgejo.org/actions/download-artifact@v3
+ with:
+ name: Generated files
+ - name: Publish the website
+ run: |
+ git config user.email codeberg-ci && \
+ git config user.name "Codeberg CI" && \
+ git add . && \
+ git commit --allow-empty --message "Codeberg build for ${GITHUB_SHA}" && \
+ git push origin pages
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..02e3efd
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/public/
+.vercel
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..23d986c
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,43 @@
+stages:
+ - deploy
+
+default:
+ image: debian:stable-slim
+
+variables:
+ # The runner will be able to pull your Zola theme when the strategy is
+ # set to "recursive".
+ GIT_SUBMODULE_STRATEGY: "recursive"
+
+ # Make sure you specify a version of Zola here.
+ # Use the semver format (x.y.z) to specify a version.
+ # For example: "0.17.2" or "0.18.0".
+ ZOLA_VERSION:
+ description: "The version of Zola used to build the site."
+ value: "0.21.0"
+
+pages:
+ stage: deploy
+ script:
+ - |
+ apt-get update
+ DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes --no-install-recommends wget ca-certificates
+ zola_url="https://github.com/getzola/zola/releases/download/v${ZOLA_VERSION}/zola-v${ZOLA_VERSION}-x86_64-unknown-linux-gnu.tar.gz"
+ if ! wget --quiet --spider $zola_url; then
+ echo "A Zola release with the specified version could not be found."
+ exit 1
+ fi
+ wget $zola_url
+ tar -xzf *.tar.gz
+ ./zola build
+
+ artifacts:
+ paths:
+ # This is the directory whose contents will be deployed to the GitLab Pages server.
+ # GitLab Pages expects a directory with this name by default.
+ - public
+
+ rules:
+ # This rule makes it so that your website is published and updated only when
+ # you push to the default branch of your repository (e.g. "master" or "main").
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..ddc924b
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2023 Alan Pearce
+Copyright (c) 2020 Jan Raasch
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..0ee92b5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,126 @@
+# Zola ʕ•ᴥ•ʔ Bear Blog
+
+[](https://app.netlify.com/sites/zola-bearblog/deploys)
+[](https://zola-bearblog.vercel.app/_logs)
+[](https://codeberg.org/alanpearce/zola-bearblog/actions)
+[](https://gitlab.com/alanpearce/zola-bearblog/-/commits/main)
+
+🧸 A [Zola](https://www.getzola.org/)-theme based on [Bear Blog](https://bearblog.dev).
+
+> Free, no-nonsense, super-fast blogging.
+
+## Demo
+
+This theme has multiple demo sites, to provide examples of how to set up deployment.
+
+### Recommended
+
+- [Netlify](https://zola-bearblog.netlify.app/)
+- [Grebedoc](https://alanpearce.grebedoc.dev/zola-bearblog/)
+- [Codeberg Pages](https://alanpearce.codeberg.page/zola-bearblog/)
+- [Gitlab Pages](https://alanpearce.gitlab.io/zola-bearblog)
+
+### Not recommended
+
+These providers' build environments aren't yet compatible with Zola 0.21.0.
+- [Cloudflare Pages](https://zola-bearblog.pages.dev/)
+- [Vercel](https://zola-bearblog.vercel.app/)
+
+## Screenshot
+
+![Screenshot][screenshot]
+
+When the user's browser is running »dark mode«, the dark color scheme will be used automatically. The default is the light/white color scheme. Check out the [`style.html`](https://codeberg.org/alanpearce/zola-bearblog/src/branch/main/templates/style.html)-file for the implementation.
+
+## Installation
+
+If you already have a Zola site on your machine, you can simply add this theme via
+
+```
+git submodule add https://codeberg.org/alanpearce/zola-bearblog themes/zola-bearblog
+```
+
+Then, adjust the `config.toml` as detailed below.
+
+For more information, read the official [setup guide][zola-setup-guide] of Zola.
+
+Alternatively, you can quickly deploy a copy of the theme site to Netlify using this button:
+
+[](https://app.netlify.com/start/deploy?repository=https://gitlab.com/alanpearce/zola-bearblog)
+
+(Note that this method makes it harder to keep up-to-date with theme updates, which might be necessary for newer versions of Zola.)
+
+## Adjust configuration / config.toml
+
+Please check out the included [config.toml](https://codeberg.org/alanpearce/zola-bearblog/src/branch/main/config.toml)
+
+## Content & structure
+
+### Menu
+
+Create an array in `extra` with a key of `main_menu`. `url` is passed to [`get_url`](https://www.getzola.org/documentation/templates/overview/#get-url)
+
+```toml
+[[extra.main_menu]]
+name = "Home"
+url = "@/_index.md"
+
+[[extra.main_menu]]
+name = "Bear"
+url = "@/bear.md"
+
+[[extra.main_menu]]
+name = "Zola"
+url = "@/zola.md"
+
+[[extra.main_menu]]
+name = "Blog"
+url = "@/blog/_index.md"
+```
+
+### Adding / editing content
+
+#### Index-Page
+
+The contents of the `index`-page may be changed by editing your `content/_index.md`-file.
+
+
+### Adding your branding / colors / css
+
+Add a `custom_head.html`-file to your `templates/`-directory. In there you may add a `
-
-
-
-Bear
-
- Website: https://bearblog.dev
-There is a website obesity crisis. Bloated websites are full of scripts, ads, and trackers slowing your readers down every time they try to read your well-crafted content.
-Bear is all you need to build a fantastic and optimized site or blog. It works perfectly on any viewing device. All you need to focus on is writing good content.
-Bear makes it simple to publish content online and grow an audience while keeping pages tiny, fast, and optimized for search engines.
-Each page is ~5kb.
-Learn more and contribute on GitHub.
-
-
-
-
-
-
-