Compare commits
40 Commits
bd6133529c
...
v0.1.0
Author | SHA1 | Date | |
---|---|---|---|
3ec66f5186 | |||
67d089d850 | |||
cb3628a9e1 | |||
f17ad4d9b1 | |||
a654b9c86d | |||
c1c15120d6 | |||
fb20e0ee0c | |||
ee4489ef8d | |||
51ffc6221d | |||
0eff437862 | |||
206f2db656 | |||
3fde33c99c | |||
f3eebaf9c1 | |||
00cdaae24b | |||
7aeda9199c | |||
f1f1257051 | |||
8428ecab2e | |||
923f07d9cf | |||
3d56dc2780 | |||
98caf6d9cf | |||
9eaeabbcb3 | |||
2088671dc7 | |||
1a819e0fa8 | |||
24f9083948 | |||
7307621124 | |||
0e10e063c0 | |||
815c9f1685 | |||
896f3c3ad1 | |||
63768e9af5 | |||
d24b78021f | |||
9a1b77944c | |||
6aecfb1cec | |||
06c939145f | |||
c17d26f44e | |||
f6ed624bba | |||
ba4def156e | |||
852636d2e1 | |||
fa8cda57b8 | |||
6cb409c757 | |||
4dc3eabcd8 |
64
.gitea/workflows/build-container-image.yaml
Normal file
64
.gitea/workflows/build-container-image.yaml
Normal file
@@ -0,0 +1,64 @@
|
||||
name: Build and Deploy
|
||||
run-name: ${{ gitea.actor }} is building container
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "*"
|
||||
jobs:
|
||||
Build-Container-Image:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: |
|
||||
git.dev-null.rocks/alexohneander/alexohneander-zola
|
||||
tags: |
|
||||
type=schedule,pattern={{date 'YYYYMMDDHHMM'}}
|
||||
type=semver,pattern={{version}}
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=semver,pattern={{major}}
|
||||
type=sha
|
||||
|
||||
- name: Set up Docker Context for Buildx
|
||||
id: buildx-context
|
||||
run: |
|
||||
export DOCKER_HOST=tcp://docker:2376/
|
||||
export DOCKER_TLS_CERTDIR="/certs"
|
||||
export DOCKER_TLS_VERIFY=1
|
||||
export DOCKER_CERT_PATH="/certs/client"
|
||||
docker context create builders
|
||||
|
||||
- name: Setup Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
with:
|
||||
# buildkitd-flags: --debug
|
||||
endpoint: builders
|
||||
env:
|
||||
DOCKER_HOST: "tcp://docker:2376/"
|
||||
DOCKER_TLS_CERTDIR: "/certs"
|
||||
DOCKER_TLS_VERIFY: 1
|
||||
DOCKER_CERT_PATH: "/certs/client"
|
||||
|
||||
- name: Login to Gitea
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: git.dev-null.rocks
|
||||
username: ${{ gitea.actor }}
|
||||
password: ${{ secrets.GA_TOKEN }}
|
||||
|
||||
- name: Build and push the image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
file: Dockerfile
|
||||
platforms: linux/amd64
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
env:
|
||||
DOCKER_HOST: "tcp://docker:2376/"
|
||||
DOCKER_TLS_CERTDIR: "/certs"
|
||||
DOCKER_TLS_VERIFY: 1
|
||||
DOCKER_CERT_PATH: "/certs/client"
|
8
.gitea/workflows/config.js
Normal file
8
.gitea/workflows/config.js
Normal file
@@ -0,0 +1,8 @@
|
||||
module.exports = {
|
||||
"endpoint": "https://git.dev-null.rocks/api/v1", // replace it with your actual endpoint
|
||||
"gitAuthor": "Renovate Bot <renovate-bot@dev-null.rocks>",
|
||||
"platform": "gitea",
|
||||
"onboardingConfigFileName": "renovate.json",
|
||||
"autodiscover": true,
|
||||
"optimizeForDisabled": true,
|
||||
};
|
20
.gitea/workflows/renovate.yaml
Normal file
20
.gitea/workflows/renovate.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
name: renovate
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "@daily"
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
renovate:
|
||||
runs-on: ubuntu-latest
|
||||
container: ghcr.io/renovatebot/renovate:39.207.2
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- run: renovate
|
||||
env:
|
||||
RENOVATE_CONFIG_FILE: ".gitea/workflows/config.js" # replace it with your config.js path
|
||||
LOG_LEVEL: "debug"
|
||||
RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }} # your Revonate bot token
|
1112
CHANGELOG.md
1112
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
@@ -1,128 +0,0 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, religion, or sexual identity
|
||||
and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the
|
||||
overall community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or
|
||||
advances of any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email
|
||||
address, without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
tabi@osc.garden.
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series
|
||||
of actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or
|
||||
permanent ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within
|
||||
the community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.0, available at
|
||||
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||
|
||||
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||
enforcement ladder](https://github.com/mozilla/diversity).
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
https://www.contributor-covenant.org/faq. Translations are available at
|
||||
https://www.contributor-covenant.org/translations.
|
122
CONTRIBUTING.md
122
CONTRIBUTING.md
@@ -1,122 +0,0 @@
|
||||
# Contributing to tabi
|
||||
|
||||
Halló!
|
||||
|
||||
Thanks for contributing to [tabi](https://github.com/welpo/tabi). Before implementing new features and changes, please [submit an issue](https://github.com/welpo/tabi/issues/new) so that we can discuss it.
|
||||
|
||||
We welcome contributions in many forms, including:
|
||||
|
||||
- Bug reports;
|
||||
- New translations;
|
||||
- Improvements to existing translations;
|
||||
- Feature requests;
|
||||
- Code patches;
|
||||
- Documentation improvements;
|
||||
- UI/UX suggestions.
|
||||
|
||||
If you're not sure how to contribute or need help with something, please don't hesitate to reach out via the [issue tracker](https://github.com/welpo/tabi/issues) or [mail](mailto:tabi@osc.garden?subject=[GitHub]%20tabi).
|
||||
|
||||
## Pull Requests
|
||||
|
||||
Working on your first Pull Request? You can learn how from this free video series:
|
||||
|
||||
[**How to Contribute to an Open Source Project on GitHub**](https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github)
|
||||
|
||||
Please make sure the following is done when submitting a pull request:
|
||||
|
||||
1. **Keep your PR small**. Small pull requests are much easier to review and more likely to get merged. Make sure the PR does only one thing, otherwise please split it.
|
||||
2. **Use descriptive titles**. It is recommended to follow this [commit message style](#conventional-commit-messages-with-gitmoji).
|
||||
3. **Test your changes**. Make sure to test different configurations that might affect your changes.
|
||||
4. **Fill the PR template**. The template will guide you through the process of submitting a PR.
|
||||
|
||||
### Conventional Commit Messages with Gitmoji
|
||||
|
||||
See how a minor change to your commit message style can make you a better programmer.
|
||||
|
||||
Format: `<gitmoji> <type>(<scope>): <description>`
|
||||
|
||||
`<gitmoji>` is an emoji from the [gitmoji](https://gitmoji.dev/) list. It makes it easier to visually scan the commit history and quickly grasp the purpose of changes.
|
||||
|
||||
`<scope>` is optional. If your change affects a specific part of the codebase, consider adding the scope. Scopes should be brief but recognizable, e.g. `config`, `feed`, or `search`.
|
||||
|
||||
The various types of commits:
|
||||
|
||||
- `feat`: a new API or behaviour **for the end user**.
|
||||
- `fix`: a bug fix **for the end user**.
|
||||
- `style`: changes to the visual appearance of the theme, e.g. CSS, fonts, images…
|
||||
- `docs`: a change to the website or other Markdown documents.
|
||||
- `refactor`: a change to code that doesn't change behaviour, e.g. splitting files, renaming internal variables, improving code style…
|
||||
- `chore`: upgrading dependencies, releasing new versions… Chores that are **regularly done** for maintenance purposes.
|
||||
- `misc`: anything else that doesn't change production code, yet is not `chore`. e.g. updating GitHub actions workflow.
|
||||
|
||||
The commits within your PR don't need to follow this convention (we'll [squash them](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-squashing-for-pull-requests)). However, the PR title should be in this format. If you're not sure about the title, don't worry, we'll help you fix it. Your code is more important than conventions!
|
||||
|
||||
Example:
|
||||
|
||||
```text
|
||||
🐛 fix(i18n): localise date in single taxonomy listing
|
||||
^ ^-^^----^ ^--------------------------------------^
|
||||
| | | |
|
||||
| | | +-> Description in imperative and lowercase.
|
||||
| | |
|
||||
| | +-> The scope of the change.
|
||||
| |
|
||||
| +-------> Type: see above for the list we use.
|
||||
|
|
||||
+----------> A valid gitmoji.
|
||||
```
|
||||
|
||||
## Coding Style Guidelines
|
||||
|
||||
While we don't enforce a strict coding style, we appreciate it when contributions follow the existing code style of the project (e.g. indenting with 4 spaces). This makes the codebase easier to read and maintain. If you are making significant changes or additions, please try to maintain consistency with the current coding patterns and idioms.
|
||||
|
||||
For JavaScript files, we use [Prettier](https://prettier.io/) to format the code.
|
||||
|
||||
The CSS properties are sorted following [Concentric-CSS](https://github.com/brandon-rhodes/Concentric-CSS). If you use VSCode, the [Sort CSS](https://marketplace.visualstudio.com/items?itemName=piyushsarkar.sort-css-properties) extension makes this super easy.
|
||||
|
||||
## Pre-commit Githook
|
||||
|
||||
### Introduction
|
||||
|
||||
We use a pre-commit githook to maintain code and file quality. [This script](https://github.com/welpo/tabi/blob/main/.githooks/pre-commit) performs a series of checks and updates before a commit is made.
|
||||
|
||||
### Setting Up
|
||||
|
||||
To use the pre-commit githook, run the following command from the root of the repository to configure the git hooks path and make the script executable:
|
||||
|
||||
```bash
|
||||
git config core.hooksPath .githooks
|
||||
chmod +x .githooks/pre-commit
|
||||
```
|
||||
|
||||
### Features
|
||||
|
||||
The pre-commit githook performs the following actions:
|
||||
|
||||
#### Automatic Updates
|
||||
|
||||
- **Front Matter in Markdown Files**: Automatically updates the "updated" field in the front matter of `.md` files.
|
||||
- **PNG Compression**: Compresses PNG files using either [`oxipng`](https://github.com/shssoichiro/oxipng) or [`optipng`](https://optipng.sourceforge.net/), whichever is available on your system.
|
||||
- **Font Subsetting**: Runs `subset_font` if `config.toml` has been modified.
|
||||
|
||||
#### Commit Checks
|
||||
|
||||
The script prevents you from committing if:
|
||||
|
||||
- The `.md` file is marked as a draft.
|
||||
- Any file contains a "TODO".
|
||||
- A JavaScript file is being committed without a corresponding minified version.
|
||||
- A minified JavaScript file is not as small as it could be. Requires installing [UglifyJS](https://github.com/mishoo/UglifyJS) and/or [terser](https://github.com/terser/terser).
|
||||
- `config.toml` and `theme.toml` have different numbers of lines in their `[extra]` sections.
|
||||
|
||||
These checks are in place to ensure code quality and consistency throughout the project.
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
We expect all contributors to follow our [Code of Conduct](./CODE_OF_CONDUCT.md). Please be respectful and professional when interacting with other contributors.
|
||||
|
||||
## License
|
||||
|
||||
The code is available under the [MIT license](./LICENSE).
|
||||
|
||||
Thank you for your contributions!
|
9
Dockerfile
Normal file
9
Dockerfile
Normal file
@@ -0,0 +1,9 @@
|
||||
FROM ghcr.io/getzola/zola:v0.20.0 as zola
|
||||
|
||||
COPY . /project
|
||||
WORKDIR /project
|
||||
RUN ["zola", "build"]
|
||||
|
||||
FROM ghcr.io/static-web-server/static-web-server:2
|
||||
WORKDIR /
|
||||
COPY --from=zola /project/public /public
|
21
LICENSE
21
LICENSE
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023 Óscar Fernández
|
||||
|
||||
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.
|
243
README.md
243
README.md
@@ -1,243 +1,6 @@
|
||||
<p align="center">
|
||||
<a href="CONTRIBUTING.md#pull-requests">
|
||||
<img src="https://img.shields.io/badge/PRs-welcome-0?style=flat-square&labelColor=202b2d&color=087e96" alt="PRs welcome"></a>
|
||||
<a href="https://github.com/welpo/tabi/graphs/contributors">
|
||||
<img src="https://img.shields.io/github/contributors/welpo/tabi?style=flat-square&labelColor=202b2d&color=087e96" alt="Contributors"></a>
|
||||
<a href="https://github.com/welpo/tabi/forks">
|
||||
<img src="https://img.shields.io/github/forks/welpo/tabi?style=flat-square&labelColor=202b2d&color=087e96" alt="Forks"></a>
|
||||
<a hfref="https://github.com/welpo/tabi/commits/main/">
|
||||
<img src="https://img.shields.io/github/last-commit/welpo/tabi?style=flat-square&labelColor=202b2d&color=087e96" alt="Last commit"></a>
|
||||
<br>
|
||||
<a href="https://github.com/welpo/tabi/releases">
|
||||
<img src="https://img.shields.io/github/v/release/welpo/tabi?style=flat-square&labelColor=202b2d&color=087e96" alt="Latest release"></a>
|
||||
<a href="https://welpo.github.io/tabi/blog/mastering-tabi-settings/">
|
||||
<img src="https://img.shields.io/website?url=https%3A%2F%2Fwelpo.github.io%2Ftabi&style=flat-square&label=docs&labelColor=202b2d" alt="Documentation"></a>
|
||||
<a href="https://github.com/welpo/tabi/blob/main/LICENSE">
|
||||
<img src="https://img.shields.io/github/license/welpo/tabi?style=flat-square&labelColor=202b2d&color=087e96" alt="License"></a>
|
||||
<a href="https://github.com/welpo/git-sumi">
|
||||
<img src="https://img.shields.io/badge/clean_commits-git--sumi-0?style=flat-square&labelColor=202b2d&color=087e96" alt="Clean commits"></a>
|
||||
<a href="https://isitmaintained.com/project/welpo/tabi">
|
||||
<img src="https://isitmaintained.com/badge/resolution/welpo/tabi.svg" alt="Average time to resolve an issue"></a>
|
||||
<a href="https://isitmaintained.com/project/welpo/tabi">
|
||||
<img src="https://isitmaintained.com/badge/open/welpo/tabi.svg" alt="Percentage of issues still open"></a>
|
||||
<a href="https://git.dev-null.rocks/alexohneander/alexohneander-zola/actions">
|
||||
<img src="https://git.dev-null.rocks/alexohneander/alexohneander-zola/actions/workflows/build-container-image.yaml/badge.svg?branch=main" alt="Build status"></a>
|
||||
</p>
|
||||
|
||||
# 🌱 tabi
|
||||
|
||||
An accessible [Zola](https://www.getzola.org) theme with [search](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#search), [multi-language support](https://welpo.github.io/tabi/blog/faq-languages/), [optional JavaScript](https://welpo.github.io/tabi/blog/javascript/), a perfect Lighthouse score, and [comprehensive documentation](https://welpo.github.io/tabi). Crafted for personal websites and blogs.
|
||||
|
||||
> [!TIP]
|
||||
> Want to start blogging right away? Use the [tabi-start template](https://github.com/welpo/tabi-start) to get a complete site up and running in minutes.
|
||||
|
||||
See a live preview (and the theme's documentation) [here](https://welpo.github.io/tabi).
|
||||
|
||||
Explore the [Sites Using tabi section](#sites-using-tabi) to see real-world applications.
|
||||
|
||||
> tabi (旅, /<span title="/t/: 't' in 'sty'">t</span><span title="/ɐ/: a sound between 'a' in 'sofa' and 'u' in 'nut'">ɐ</span><span title="/ˈ/: primary stress mark, indicating that the following syllable is pronounced with greater emphasis">ˈ</span><span title="/b/: 'b' in 'cab'">b</span><span title="/i/: 'i' in 'fleece'">i</span>/): Journey.
|
||||
|
||||

|
||||
|
||||
tabi has a perfect score on Google's Lighthouse audit:
|
||||
|
||||

|
||||
|
||||
## Features
|
||||
|
||||
- [X] [Set any language as default](https://welpo.github.io/tabi/blog/faq-languages/#how-do-i-set-a-default-language-for-my-site). Set your base site to Chinese, Spanish, French, Hindi… or any [other supported language](/i18n). The theme's interface will be translated accordingly.
|
||||
- [X] [Integration with remote repositories](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#git-repository-integration) on GitHub, GitLab, Gitea & Codeberg for commit history and showing the site source.
|
||||
- [X] [Series support](https://welpo.github.io/tabi/blog/series/) for creating sequential content like tutorials, courses, and multi-part stories.
|
||||
- [X] Dark and light themes. Defaults to the OS setting, with a switcher in the navigation bar.
|
||||
- [X] Thorough documentation. See [Mastering tabi Settings: A Comprehensive Guide](https://welpo.github.io/tabi/blog/mastering-tabi-settings/).
|
||||
- [X] Perfect Lighthouse score (Performance, Accessibility, Best Practices and SEO).
|
||||
- [X] [Comprehensive multi-language support](https://welpo.github.io/tabi/blog/faq-languages/#how-does-tabi-handle-multilingual-support). Add as many languages as you wish.
|
||||
- [X] Support for [comments using giscus, utterances, Hyvor Talk, or Isso](https://welpo.github.io/tabi/blog/comments/).
|
||||
- [X] Code syntax highlighting with colours based on [Catppuccin](https://github.com/catppuccin/catppuccin) Frappé.
|
||||
- [X] [Mermaid support](https://welpo.github.io/tabi/blog/shortcodes/#mermaid-diagrams) to create diagrams and charts with text.
|
||||
- [X] [Local search](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#search) with an accessible, multi-lingual interface.
|
||||
- [X] [Custom Twitter card](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#social-media-cards) and automatic Open Graph tags.
|
||||
- [X] [KaTeX](https://katex.org/) support for mathematical notation.
|
||||
- [X] [Stylized and human readable Atom feed](https://welpo.github.io/tabi/atom.xml).
|
||||
- [X] [Stylized and human readable sitemap](https://welpo.github.io/tabi/sitemap.xml).
|
||||
- [X] [Mail encoding](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#encoded-email) for spam protection.
|
||||
- [X] All JavaScript can be [fully disabled](https://welpo.github.io/tabi/blog/javascript/).
|
||||
- [X] [Customizable Table of Contents](https://welpo.github.io/tabi/blog/toc/).
|
||||
- [X] [Customizable secure headers](https://welpo.github.io/tabi/blog/security/).
|
||||
- [X] [Copy button for code blocks](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#copy-button-on-code-blocks).
|
||||
- [X] [Quick navigation buttons](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#quick-navigation-buttons).
|
||||
- [X] [Custom copyright notice](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#copyright).
|
||||
- [X] [Custom canonical URLs](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#canonical-url).
|
||||
- [X] [Custom shortcodes](https://welpo.github.io/tabi/blog/shortcodes/).
|
||||
- [X] [Customizable skins](https://welpo.github.io/tabi/blog/customise-tabi/).
|
||||
- [X] [Social media cards](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#social-media-cards).
|
||||
- [X] Responsive design.
|
||||
- [X] [Projects page](https://welpo.github.io/tabi/projects/).
|
||||
- [X] [Archive page](https://welpo.github.io/tabi/archive/).
|
||||
- [X] [Pinned posts](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#pinning-posts).
|
||||
- [X] [Social links](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#social-media-icons).
|
||||
- [X] [Tags](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#tags).
|
||||
|
||||
## Installation
|
||||
|
||||
> [!NOTE]
|
||||
> The fastest way to create a new site is to use the [tabi-start template](https://github.com/welpo/tabi-start). This gives you a complete blog setup with all the essential configuration ready to go.
|
||||
|
||||
### Manual installation
|
||||
|
||||
To add tabi to you existing Zola site:
|
||||
|
||||
0. Initialize a Git repository in your project directory (if you haven't already):
|
||||
|
||||
```
|
||||
git init
|
||||
```
|
||||
|
||||
1. Add the theme as a git submodule:
|
||||
|
||||
```
|
||||
git submodule add https://github.com/welpo/tabi.git themes/tabi
|
||||
```
|
||||
|
||||
Or clone the theme into your themes directory:
|
||||
|
||||
```
|
||||
git clone https://github.com/welpo/tabi.git themes/tabi
|
||||
```
|
||||
|
||||
### Required configuration
|
||||
|
||||
2. Enable the theme in your `config.toml`:
|
||||
|
||||
```
|
||||
theme = "tabi"
|
||||
```
|
||||
|
||||
3. Set a `title` in your `config.toml`:
|
||||
|
||||
```
|
||||
title = "Your Site Title"
|
||||
```
|
||||
|
||||
4. Configure code block highlighting in your `config.toml`:
|
||||
|
||||
```toml
|
||||
[markdown]
|
||||
highlight_code = true
|
||||
highlight_theme = "css"
|
||||
```
|
||||
|
||||
5. Create a `content/_index.md` file. This file controls how your home page looks and behaves. Choose one of the following options:
|
||||
|
||||
**Option A: Serve posts from `/`**:
|
||||
|
||||
```
|
||||
+++
|
||||
title = "Home"
|
||||
paginate_by = 5 # Show 5 posts per page.
|
||||
+++
|
||||
```
|
||||
|
||||
- This will display posts in `content/` with pagination.
|
||||
|
||||
**Option B: Serve posts from a different path (e.g., `blog/`)**:
|
||||
|
||||
```
|
||||
+++
|
||||
title = "Home"
|
||||
# Note we're not setting `paginate_by` here.
|
||||
|
||||
[extra]
|
||||
section_path = "blog/_index.md" # Where to find your posts.
|
||||
max_posts = 5 # Show 5 posts on the home page.
|
||||
+++
|
||||
```
|
||||
|
||||
- This will display the latest 5 posts from the `blog/` section.
|
||||
- Do not set `paginate_by` if you choose this option.
|
||||
- Use the full path to the section's `_index.md` file. Using `section_path = "blog/"` will not work.
|
||||
|
||||
> [!WARNING]
|
||||
> Do not set both `paginate_by` and `section_path` in `content/_index.md`.
|
||||
>
|
||||
> These settings are mutually exclusive and using both may result in no posts being displayed.
|
||||
|
||||
1. If you want an introduction section (see screenshot above), add these lines to `content/_index.md`:
|
||||
|
||||
```
|
||||
[extra]
|
||||
header = {title = "Hello! I'm tabi~", img = "img/main.webp", img_alt = "Your Name" }
|
||||
```
|
||||
|
||||
The content outside the front matter will be rendered between the header title and the posts listing. In the screenshot above, it's the text that reads "tabi is a fast, lightweight, and modern Zola theme…".
|
||||
|
||||
7. If you want a multilingual site, you will need to set up each language. In `config.toml`, set the title and taxonomies for each language, like:
|
||||
|
||||
```toml
|
||||
[languages.es]
|
||||
title = "~/tabi"
|
||||
taxonomies = [{name = "tags", feed = true}]
|
||||
```
|
||||
|
||||
You will need an `_index.{language_code}.md` per language for each section (e.g. /blog or /projects) that you want to enable in that language.
|
||||
|
||||
The same is true for individual posts, which should have the exact same name as the default language, with an extra `.{code}` before the extension (e.g. the Spanish version of `security.md` would be `security.es.md`).
|
||||
|
||||
This configuration allows the language switcher to take the user to the translation of the current URL. If a translation doesn't exist, the 404 page will be displayed, with an explanation in each language set in the config.
|
||||
|
||||
To learn more about multilingual support, see the [Frequently Asked Questions](https://welpo.github.io/tabi/blog/faq-languages/).
|
||||
|
||||
### Updating tabi
|
||||
|
||||
If you added the theme as a git submodule, run:
|
||||
|
||||
```bash
|
||||
git submodule update --remote themes/tabi
|
||||
```
|
||||
|
||||
If you cloned it:
|
||||
|
||||
```bash
|
||||
cd themes/tabi
|
||||
git pull
|
||||
```
|
||||
|
||||
## Sites using tabi
|
||||
|
||||
| Website | Creator | Description | Site Source |
|
||||
| - | - | - | - |
|
||||
| [osc.garden](https://osc.garden) | Óscar Fernández ([welpo](https://github.com/welpo)) | Data science, psychology, and Zola | [Source](https://github.com/welpo/osc.garden) |
|
||||
| [sandip.live](https://sandip.live) | Sandip G ([sandman](https://github.com/sandman)) | Startups, tech and the good life | [Source](https://github.com/sandman/sandman.github.io) |
|
||||
| [seadve.github.io](https://seadve.github.io/) | Dave Patrick Caberto ([SeaDve](https://github.com/SeaDve/)) | Personal blog and portfolio with custom CSS | [Source](https://github.com/SeaDve/seadve.github.io) |
|
||||
| [mikufan.page](https://mikufan.page) | [Nadia](https://github.com/nyadiia) | Personal blog | [Source](https://github.com/nyadiia/mikufan.page) |
|
||||
| [tim-boettcher.online](https://tim-boettcher.online/) | [Tim Böttcher](https://codeberg.org/Tim-Boettcher/) | Insights and ramblings of a deafblind programmer | [Source](https://codeberg.org/Tim-Boettcher/tim-boettcher-online/) |
|
||||
| [www.richtman.au](https://www.richtman.au) | [Ariel Richtman](https://github.com/arichtman) | Personal tech blog | [Source](https://github.com/arichtman/www.richtman.au) |
|
||||
| [Ponderosa Games](https://ponderosagames.com/) | John Burak ([JVimes](https://github.com/jvimes)) | A friendly indie game company | — |
|
||||
| [jmbhughes.com](https://jmbhughes.com/) | Marcus Hughes ([jmbhughes](https://github.com/jmbhughes)) | Personal blog | [Source](https://github.com/jmbhughes/jmbhughes.github.io) |
|
||||
| [szabolcs.me](https://szabolcs.me) | Szabolcs Fazekas ([szabolcsf](https://github.com/szabolcsf)) | Personal blog | [Source](https://github.com/szabolcsf/szabolcs.me) |
|
||||
|
||||
|
||||
Using tabi? Feel free to create a PR and add your site to this list.
|
||||
|
||||
## Inspiration
|
||||
|
||||
This theme was inspired by:
|
||||
- [shadharon](https://github.com/syedzayyan/shadharon) — tabi started as a fork of [syedzayyan](https://github.com/syedzayyan)'s theme
|
||||
- [tailwind-nextjs-starter-blog](https://github.com/timlrx/tailwind-nextjs-starter-blog)
|
||||
- [abridge](https://github.com/Jieiku/abridge)
|
||||
|
||||
## Support
|
||||
|
||||
Something not working? Have an idea? Let us know!
|
||||
|
||||
- Questions? → [Start a discussion](https://github.com/welpo/tabi/discussions)
|
||||
- Found a bug? → [Report it here](https://github.com/welpo/tabi/issues/new?&labels=bug&template=2_bug_report.yml)
|
||||
- Feature request? → [Tell us more!](https://github.com/welpo/tabi/issues/new?&labels=feature&template=3_feature_request.yml)
|
||||
|
||||
## Contributing
|
||||
|
||||
Please do! We appreciate bug reports, improvements to translations or documentation (however minor), feature requests…
|
||||
|
||||
Take a look at the [Contributing Guidelines](/CONTRIBUTING.md) to learn more.
|
||||
|
||||
## License
|
||||
|
||||
The code is available under the [MIT license](./LICENSE).
|
||||
# 🌱 alexohneander
|
||||
|
148
cliff.toml
148
cliff.toml
@@ -1,148 +0,0 @@
|
||||
# git-cliff ~ default configuration file
|
||||
# https://git-cliff.org/docs/configuration
|
||||
#
|
||||
# Lines starting with "#" are comments.
|
||||
# Configuration options are organized into tables and keys.
|
||||
# See documentation for more information on available options.
|
||||
|
||||
[remote.github]
|
||||
owner = "welpo"
|
||||
repo = "tabi"
|
||||
|
||||
[changelog]
|
||||
# changelog header
|
||||
header = """
|
||||
# Changelog
|
||||
|
||||
Welcome to the changelog for tabi. This document aims to provide a comprehensive list of all notable changes made to the project, organised chronologically by release version.
|
||||
|
||||
We use Semantic Versioning (SemVer) for our version numbers, formatted as MAJOR.MINOR.PATCH. Major version changes involve significant (breaking) changes, minor versions introduce features and improvements in a backward compatible manner, and patch versions are for bug fixes and minor tweaks.\n
|
||||
"""
|
||||
# template for the changelog body
|
||||
# https://keats.github.io/tera/docs/#introduction
|
||||
body = """
|
||||
{%- macro remote_url() -%}
|
||||
https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
|
||||
{%- endmacro -%}
|
||||
{% if version %}\
|
||||
{% if previous.version %}\
|
||||
## [{{ version | trim_start_matches(pat="v") }}]({{ self::remote_url() }}/compare/{{ previous.version }}..{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
|
||||
{% else %}\
|
||||
## {{ version | trim_start_matches(pat="v") }} - {{ timestamp | date(format="%Y-%m-%d") }}
|
||||
{% endif %}\
|
||||
{% else %}\
|
||||
## unreleased
|
||||
{% endif %}\
|
||||
|
||||
{% macro commit(commit, in_breaking_section=false) -%}
|
||||
- {% if commit.scope %}*({{ commit.scope }})* {% endif %}{% if commit.breaking and not in_breaking_section %}[**‼️BREAKING‼️**] {% endif %}\
|
||||
{{ commit.message | upper_first }}\
|
||||
{% if not commit.remote.pr_number %} ([{{ commit.id | truncate(length=7, end="") }}]({{ self::remote_url() }}/commit/{{ commit.id }})){%- endif -%}{% if commit.remote.username %} by @{{ commit.remote.username }} \
|
||||
{%- set co_authors = commit.footers | filter(attribute="token", value="Co-authored-by") | map(attribute="value") -%}
|
||||
{%- set number_of_co_authors = co_authors | length -%}
|
||||
{%- for co_author in co_authors -%}
|
||||
{%- if not loop.last %}, {% else %} and {% endif %}@{{ co_author | split(pat=" <") | first | trim }}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{% endmacro -%}
|
||||
|
||||
{%- set breaking_header_shown = false -%}
|
||||
{% for commit in commits -%}
|
||||
{% if commit.breaking and not breaking_header_shown -%}
|
||||
{% raw %}\n### 💥 BREAKING CHANGES 💥\n{% endraw %}
|
||||
{%- set_global breaking_header_shown = true -%}
|
||||
{%- endif -%}
|
||||
{%- if commit.breaking %}
|
||||
{{ self::commit(commit=commit, in_breaking_section=true) -}}
|
||||
{% endif -%}
|
||||
{%- endfor -%}
|
||||
{%- if breaking_header_shown == true -%}
|
||||
{% raw %}\n{% endraw %}\
|
||||
{%- endif -%}
|
||||
|
||||
{% for group, commits in commits | group_by(attribute="group") %}
|
||||
### {{ group | striptags | trim | upper_first }}
|
||||
{% for commit in commits
|
||||
| filter(attribute="scope")
|
||||
| sort(attribute="scope") %}
|
||||
{{ self::commit(commit=commit) }}
|
||||
{%- endfor -%}
|
||||
{% raw %}\n{% endraw %}\
|
||||
{%- for commit in commits %}
|
||||
{%- if not commit.scope -%}
|
||||
{{ self::commit(commit=commit) }}
|
||||
{% endif -%}
|
||||
{% endfor -%}
|
||||
{% endfor %}
|
||||
|
||||
{%- if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 -%}
|
||||
{% raw %}\n{% endraw %}### 👥 New contributors
|
||||
{% raw -%}\n{% endraw -%}
|
||||
{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
|
||||
🫶 @{{ contributor.username }} made their first contribution
|
||||
{%- if contributor.pr_number %} in \
|
||||
[#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
|
||||
{%- endif %}
|
||||
{% endfor %}
|
||||
{%- endif %}
|
||||
{% raw -%}\n{% endraw -%}
|
||||
"""
|
||||
|
||||
# remove the leading and trailing whitespace from the template
|
||||
trim = true
|
||||
# changelog footer
|
||||
footer = """
|
||||
<!-- generated by git-cliff -->
|
||||
"""
|
||||
# postprocessors
|
||||
postprocessors = [
|
||||
# { pattern = " @([a-zA-Z0-9](?:[a-zA-Z0-9]+-?)*[a-zA-Z0-9])", replace = " [@$1](https://github.com/$1)"}, # add link to GitHub usernames (done in release script instead)
|
||||
]
|
||||
|
||||
[git]
|
||||
# parse the commits based on https://www.conventionalcommits.org
|
||||
conventional_commits = true
|
||||
# filter out the commits that are not conventional
|
||||
filter_unconventional = true
|
||||
# process each line of a commit as an individual commit
|
||||
split_commits = false
|
||||
# regex for preprocessing the commit messages
|
||||
commit_preprocessors = [
|
||||
# Replace the issue number with the link.
|
||||
{ pattern = "\\(#([0-9]+)\\)", replace = "([#${1}](https://github.com/welpo/tabi/issues/${1}))" },
|
||||
# Remove trailing whitespace.
|
||||
{ pattern = ' +$', replace = "" },
|
||||
# Replace multiple spaces with a single space.
|
||||
{ pattern = ' +', replace = " " },
|
||||
# Remove gitmoji, both actual UTF emoji and :emoji:
|
||||
{ pattern = ' *(:\w+:|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?:\u{FE0F})?\u{200D}?) *', replace = "" },
|
||||
]
|
||||
# regex for parsing and grouping commits
|
||||
commit_parsers = [
|
||||
{ message = "^feat", group = "<!-- 0 -->✨ Features" },
|
||||
{ message = "^fix", group = "<!-- 1 -->🐛 Bug fixes" },
|
||||
{ message = "^style", group = "<!-- 2 -->💄 Styling" },
|
||||
{ message = "^doc", group = "<!-- 3 -->📝 Documentation" },
|
||||
{ message = "^refactor", group = "<!-- 4 -->♻️ Refactor" },
|
||||
{ message = "^test", group = "<!-- 5 -->✅ Testing" },
|
||||
{ message = "^misc", group = "<!-- 6 -->🔧 Miscellaneous tasks" },
|
||||
{ message = "^deprecate", group = "<!-- 7 -->🗑️️ Deprecations" },
|
||||
{ message = "^chore", skip = true },
|
||||
]
|
||||
# protect breaking changes from being skipped due to matching a skipping commit_parser
|
||||
protect_breaking_commits = true
|
||||
# filter out the commits that are not matched by commit parsers
|
||||
filter_commits = true
|
||||
# regex for matching git tags
|
||||
tag_pattern = "v[0-9].*"
|
||||
|
||||
# regex for skipping tags
|
||||
skip_tags = "v0.1.0-beta.1"
|
||||
# regex for ignoring tags
|
||||
ignore_tags = ""
|
||||
# sort the tags topologically
|
||||
topo_order = false
|
||||
# sort the commits inside sections by oldest/newest order
|
||||
sort_commits = "newest"
|
||||
# limit the number of commits included in the changelog.
|
||||
# limit_commits = 42
|
36
content/projects/cert-fixer/index.md
Normal file
36
content/projects/cert-fixer/index.md
Normal file
@@ -0,0 +1,36 @@
|
||||
+++
|
||||
title = "cert-fixer"
|
||||
description = "Watch k8s Resources to fix self propagation check for clusters behind NAT."
|
||||
weight = 30
|
||||
|
||||
[taxonomies]
|
||||
tags = ["Rust", "Kubernetes", "CoreDNS", "BareMetal" ]
|
||||
|
||||
[extra]
|
||||
local_image = "projects/cert-fixer/zutsu_logo.webp"
|
||||
social_media_card = "social_cards/projects_doteki.jpg"
|
||||
canonical_url = "https://alexohneander.de/projects/rustysearch/"
|
||||
add_src_to_code_block = true
|
||||
+++
|
||||
|
||||
### Why does this project exist?
|
||||
|
||||
If you run a Kubernetes cluster behind a NAT and want to create certificates with the **Cert-Manager**, you quickly run into the problem that the Self Propagation check fails. This issue can be fixed with a simple line of code in the **CoreDNS** config. But now you don't want to adjust the **CoreDNS** Config for every Ingress and restart the Pod afterwards. The **cert-fixer** is supposed to be a quick remedy for this.
|
||||
|
||||
### How does it work?
|
||||
|
||||
The **cert-fixer** is a simple **Kubernetes** Pod that checks continuously if some Ingresses have been created or deleted. If this is the case, the **CoreDNS** ConfigMap should be updated and the **CoreDNS** Pod should be restarted.
|
||||
|
||||
### How to use it?
|
||||
|
||||
```bash
|
||||
kubectl apply -f https://raw.githubusercontent.com/alexohneander/cert-fixer/main/deployment/deployment.yaml
|
||||
```
|
||||
|
||||
### How to configure it?
|
||||
|
||||
The **cert-fixer** is configured via environment variables. The following variables are available:
|
||||
|
||||
| Variable | Description | Default |
|
||||
| --- | --- | --- |
|
||||
| INGRESS_SERVICE | The name of the Ingress Controller Service | ingress-nginx-controller.ingress-nginx.svc.cluster.local |
|
BIN
content/projects/cert-fixer/social_cards/projects_doteki.jpg
Normal file
BIN
content/projects/cert-fixer/social_cards/projects_doteki.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 261 KiB |
BIN
content/projects/cert-fixer/zutsu_logo.webp
Normal file
BIN
content/projects/cert-fixer/zutsu_logo.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
22
deploy/deployment.yaml
Normal file
22
deploy/deployment.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: alexohneander-zola-deployment
|
||||
namespace: websites
|
||||
labels:
|
||||
app: alexohneander-zola
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: alexohneander-zola
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: alexohneander-zola
|
||||
spec:
|
||||
containers:
|
||||
- name: alexohneander-zola
|
||||
image: git.dev-null.rocks/alexohneander/alexohneander-zola:sha-c1c1512
|
||||
ports:
|
||||
- containerPort: 80
|
59
deploy/ingress.yaml
Normal file
59
deploy/ingress.yaml
Normal file
@@ -0,0 +1,59 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: alexohneander-zola-ingress
|
||||
namespace: websites
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||
kubernetes.io/ingress.class: nginx
|
||||
kubernetes.io/tls-acme: "true"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
tls:
|
||||
- hosts:
|
||||
- alexohneander.de
|
||||
- wellnitz-alex.de
|
||||
- www.alexohneander.de
|
||||
- www.wellnitz-alex.de
|
||||
secretName: alexohneander-tls
|
||||
rules:
|
||||
- host: www.wellnitz-alex.de
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: alexohneander-zola-service
|
||||
port:
|
||||
number: 80
|
||||
- host: www.alexohneander.de
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: alexohneander-zola-service
|
||||
port:
|
||||
number: 80
|
||||
- host: wellnitz-alex.de
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: alexohneander-zola-service
|
||||
port:
|
||||
number: 80
|
||||
- host: alexohneander.de
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: alexohneander-zola-service
|
||||
port:
|
||||
number: 80
|
12
deploy/service.yaml
Normal file
12
deploy/service.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: alexohneander-zola-service
|
||||
namespace: websites
|
||||
spec:
|
||||
selector:
|
||||
app: alexohneander-zola
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 80
|
Binary file not shown.
Before Width: | Height: | Size: 229 KiB |
Binary file not shown.
Before Width: | Height: | Size: 5.4 KiB |
9
renovate.json
Normal file
9
renovate.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"extends": ["config:recommended"],
|
||||
"packageRules": [
|
||||
{
|
||||
"matchUpdateTypes": ["minor", "patch", "pin", "digest"],
|
||||
"automerge": true
|
||||
}
|
||||
]
|
||||
}
|
BIN
screenshot.png
BIN
screenshot.png
Binary file not shown.
Before Width: | Height: | Size: 144 KiB |
57
sumi.toml
57
sumi.toml
@@ -1,57 +0,0 @@
|
||||
# git-sumi ~ configuration file
|
||||
# Config: https://sumi.rs/docs/configuration
|
||||
# Rules: https://sumi.rs/docs/rules
|
||||
|
||||
# Suppresses progress messages.
|
||||
quiet = false
|
||||
|
||||
# Displays parsed commit message.
|
||||
display = true
|
||||
|
||||
# Sets display format: cli, json, table, toml.
|
||||
format = "cli"
|
||||
|
||||
# Processes each non-empty line as an individual commit.
|
||||
split_lines = false
|
||||
|
||||
# Rule: Include one valid Gitmoji.
|
||||
# See https://gitmoji.dev/.
|
||||
gitmoji = true
|
||||
|
||||
# Rule: Description must start with the specified case.
|
||||
# Options: 'any', 'lower', 'upper'.
|
||||
description_case = "lower"
|
||||
|
||||
# Rule: Use the imperative mood in the description.
|
||||
# Example: 'Fix bug' instead of 'Fixed bug'.
|
||||
imperative = true
|
||||
|
||||
# Rule: Do not end commit header with a period.
|
||||
no_period = true
|
||||
|
||||
# Rule: Header length limit.
|
||||
# A value of 0 disables the rule.
|
||||
max_header_length = 55
|
||||
|
||||
# Rule: Body line length limit.
|
||||
# A value of 0 disables the rule.
|
||||
max_body_length = 80
|
||||
|
||||
# Rule: No leading, trailing, or consecutive spaces.
|
||||
whitespace = true
|
||||
|
||||
# Rule: Follow Conventional Commits format.
|
||||
# See https://www.conventionalcommits.org/.
|
||||
conventional = true
|
||||
|
||||
# Rule: List of allowed commit scopes.
|
||||
# An empty list allows all scopes. Example: ["docs", "cli"].
|
||||
scopes_allowed = []
|
||||
|
||||
# Rule: List of allowed commit types.
|
||||
# An empty list allows all types. Example: ["feat", "fix", "docs"].
|
||||
types_allowed = ["feat", "fix", "docs", "refactor", "test", "chore", "misc", "style"]
|
||||
|
||||
# Rule: Header must match regex pattern.
|
||||
# Example: '^JIRA-\d+:'.
|
||||
header_pattern = '^([\p{Emoji_Presentation}\p{Extended_Pictographic}](?:\u{FE0F})?\u{200D}?) \w' # The first character must be an emoji.
|
Reference in New Issue
Block a user