diff --git a/.githooks/pre-commit b/.githooks/pre-commit index e5f27c4..a6116ed 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -148,8 +148,8 @@ fi # Ensure JavaScript files are minified. # ################################################################## -# Get the newly added and modified files. -mapfile -t all_changed_files < <(git diff --cached --name-only) +# Get the newly added and modified files, but not deleted files. +mapfile -t all_changed_files < <(git diff --cached --name-only --diff-filter=d) script_name=$(basename "$0") # Loop through all newly added or modified files. diff --git a/.github/ISSUE_TEMPLATE/2_bug_report.yml b/.github/ISSUE_TEMPLATE/2_bug_report.yml new file mode 100644 index 0000000..95746f9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/2_bug_report.yml @@ -0,0 +1,62 @@ +name: "🐛 Bug report" +description: "Did you run into an issue while using tabi?" +labels: ["bug"] +body: +- type: textarea + attributes: + label: "System information" + description: | + Please provide the following information: + - Zola version: Run `zola --version` + - tabi version or commit hash + placeholder: | + Zola version: + tabi version or commit: + validations: + required: true + +- type: textarea + attributes: + label: "Expected behaviour" + description: "Tell us what should have happened." + placeholder: "Describe what you expected tabi to do…" + validations: + required: true + +- type: textarea + attributes: + label: "Actual behaviour" + description: "Tell us what happens instead of the expected behavior." + placeholder: "Describe what actually happened…" + validations: + required: true + +- type: textarea + attributes: + label: "Steps to reproduce" + description: "Please provide detailed steps to reproduce the issue." + placeholder: | + 1. Set up `config.toml` with these settings: … + 2. Create content with this structure: … + 3. Run Zola with these arguments: … + 4. See the following error: … + validations: + required: true + +- type: textarea + attributes: + label: "Additional context" + description: > + Please provide any relevant configuration files, error messages, or screenshots that might help us understand the issue. + You can drag and drop files here to attach them. + validations: + required: false + +- type: checkboxes + attributes: + label: "Final checklist" + options: + - label: "I've checked that the issue isn't already reported." + required: true + - label: "I've tested with the latest version of tabi to check if the issue has already been fixed." + required: true diff --git a/.github/ISSUE_TEMPLATE/3_feature_request.yml b/.github/ISSUE_TEMPLATE/3_feature_request.yml new file mode 100644 index 0000000..44509e2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/3_feature_request.yml @@ -0,0 +1,34 @@ +name: "✨ Feature request" +description: "Suggest an idea for tabi" +labels: ["enhancement"] +body: +- type: textarea + attributes: + label: "Summary and motivation" + description: "Briefly describe the feature and why it would be valuable for tabi users." + placeholder: | + Describe: + - What the feature is + - Why it would be useful + - Any examples from other projects + validations: + required: true + +- type: textarea + attributes: + label: "Implementation details" + description: "Share any ideas you have about how this could be implemented." + placeholder: "Technical suggestions, potential approaches, or specific requirements." + validations: + required: false + +- type: checkboxes + attributes: + label: "Checklist" + options: + - label: "I've searched existing issues to make sure this feature hasn't already been requested." + required: true + - label: "This feature aligns with tabi's philosophy (minimal JS, accessible…)" + required: true + - label: "I'm willing to contribute to the implementation of this feature." + required: false diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index ec4cfdf..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -name: Bug report -about: Did you run into an issue while using tabi? -title: '' -labels: bug -assignees: '' - ---- - -# Bug Report - -## Environment - -Zola version: -tabi version or commit: - -## Expected Behavior -Tell us what should have happened. - -## Current Behavior -Tell us what happens instead of the expected behavior. - -## Step to Reproduce -Please provide the steps to reproduce the issue. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..48fd57e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: 💬 tabi discussions + url: https://github.com/welpo/tabi/discussions + about: If you have questions or need help, feel free to ask here~ diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index c109080..0000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project. -title: '' -labels: enhancement -assignees: '' - ---- - -# Feature Request - -## Summary -Briefly describe what this feature request is about. - -## Motivation -Why should this feature be implemented? How will it benefit the project and its users? - -## Detailed Description -Please provide a detailed description of the proposed feature, including any suggestions you have for how it could be implemented. - -## Additional Context -Add any other context or screenshots about the feature request here. If this feature request is related to a problem, please describe it. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 24ca7ea..643c368 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -58,6 +58,7 @@ If you need help, please ask! --> - [ ] I have verified the accessibility of my changes - [ ] I have tested all possible scenarios for this change - [ ] I have updated `theme.toml` with a sane default for the feature +- [ ] I have updated `config.toml` in [tabi-start](https://github.com/welpo/tabi-start) - [ ] I have made corresponding changes to the documentation: - [ ] Updated `config.toml` comments - [ ] Updated `theme.toml` comments diff --git a/.github/renovate.json b/.github/renovate.json index a2a9d39..65967b6 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,9 +1,13 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": ["config:recommended", ":automergeMinor", ":disableDependencyDashboard"], - "commitMessageAction": "chore(deps): update", "commitMessagePrefix": "⬆️", + "commitMessageAction": "chore(deps): update", + "commitMessageTopic": "{{{depName}}}", "labels": ["dependencies"], + "git-submodules": { + "enabled": true + }, "packageRules": [ { "updateTypes": ["pin"], @@ -16,6 +20,10 @@ { "updateTypes": ["rollback"], "commitMessagePrefix": "⬇️" + }, + { + "matchFileNames": ["scripts/release/**"], + "automerge": true } ] } diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 89967a4..d038ece 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -8,12 +8,12 @@ on: jobs: deploy: name: Deploy and release - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 permissions: contents: write steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 0 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f1309c4..0eae0c1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,29 +15,29 @@ jobs: if: github.event_name == 'pull_request' steps: - name: Checkout Code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Zola Build - uses: shalzz/zola-deploy-action@v0.19.2 + uses: shalzz/zola-deploy-action@v0.21.0 env: BUILD_ONLY: true - name: Zola Check - uses: shalzz/zola-deploy-action@v0.19.2 + uses: shalzz/zola-deploy-action@v0.21.0 env: BUILD_ONLY: true CHECK_LINKS: true build_and_deploy: name: Build and Deploy on Main Push - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 if: github.event_name == 'push' && github.ref == 'refs/heads/main' steps: - name: Checkout Code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Build and Deploy - uses: shalzz/zola-deploy-action@v0.19.2 + uses: shalzz/zola-deploy-action@v0.21.0 env: PAGES_BRANCH: gh-pages TOKEN: ${{ secrets.TOKEN }} diff --git a/.github/workflows/git-sumi.yml b/.github/workflows/git-sumi.yml index b1af84c..87c68e0 100644 --- a/.github/workflows/git-sumi.yml +++ b/.github/workflows/git-sumi.yml @@ -8,14 +8,21 @@ on: - synchronize - ready_for_review +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + permissions: pull-requests: read jobs: main: name: Run git-sumi - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: + - name: Set header length for dependency updates + if: contains(github.event.pull_request.title, 'chore(deps)') + run: echo "GIT_SUMI_MAX_HEADER_LENGTH=80" >> $GITHUB_ENV - uses: welpo/git-sumi-action@main env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/upgrade-deps.yml b/.github/workflows/upgrade-deps.yml new file mode 100644 index 0000000..776ad9d --- /dev/null +++ b/.github/workflows/upgrade-deps.yml @@ -0,0 +1,89 @@ +name: Dependency upgrade +on: + workflow_dispatch: + inputs: + dependency: + description: 'Dependency to upgrade' + required: true + type: choice + options: + - all + - mermaid + - katex + schedule: + - cron: '32 4 * * *' + +jobs: + upgrade-dependency: + name: Upgrade dependency + runs-on: ubuntu-24.04 + permissions: + contents: write + pull-requests: write + strategy: + matrix: + dependency: ${{ github.event_name == 'schedule' && fromJson('["mermaid", "katex"]') || fromJson(format('["{0}"]', github.event.inputs.dependency)) }} + steps: + - name: Checkout repository + uses: actions/checkout@v5 + with: + fetch-depth: 0 + + - name: Set up environment + run: | + sudo apt-get update + sudo apt-get install -y jq npm curl git + npm install uglify-js -g + uglifyjs --version + + - name: Configure GPG key + run: | + echo -n ${{ secrets.GPG_PRIVATE_KEY }} | base64 --decode | gpg --import + + - name: Configure Git + run: | + git config --global user.signingkey 33EACFE956484C3940BFEEDCE4EC28F8DFB57474 + git config --global commit.gpgsign true + git config --global user.name "welpo" + git config --global user.email "welpo@users.noreply.github.com" + + - name: Check for existing branch + id: check_branch + run: | + if git ls-remote --heads origin deps/upgrade-${{ matrix.dependency }} | grep -q deps/upgrade-${{ matrix.dependency }}; then + echo "branch_exists=true" >> $GITHUB_OUTPUT + else + echo "branch_exists=false" >> $GITHUB_OUTPUT + fi + + - name: Handle existing branch + if: steps.check_branch.outputs.branch_exists == 'true' + run: | + echo "Branch deps/upgrade-${{ matrix.dependency }} already exists." + echo "Skipping upgrade as there's already an open PR" + exit 0 + + - name: Create and switch to new branch + run: | + git checkout -b deps/upgrade-${{ matrix.dependency }} + + - name: Run upgrade script + shell: bash + run: | + if [[ "${{ matrix.dependency }}" == "all" ]]; then + bash scripts/upgrade-deps --all + else + bash scripts/upgrade-deps --${{ matrix.dependency }} + fi + + - name: Push changes and create PR + shell: bash + run: | + if git diff --quiet HEAD origin/main; then + echo "No changes to push for ${{ matrix.dependency }}" + exit 0 + fi + git push -u origin deps/upgrade-${{ matrix.dependency }} + gh pr create --fill --base main --head deps/upgrade-${{ matrix.dependency }} --label "dependencies" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..6fc8561 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "scripts/release"] + path = scripts/release + url = https://github.com/welpo/release.git diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ca5465..1e90c61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,271 @@ Welcome to the changelog for tabi. This document aims to provide a comprehensive 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. +## [4.1.0](https://github.com/welpo/tabi/compare/v4.0.0..v4.1.0) - 2025-06-14 + +### ✨ Features + +- *(feed)* Add feed icon tag pages ([#522](https://github.com/welpo/tabi/issues/522)) by [@tzinm](https://github.com/tzinm) and [@welpo](https://github.com/welpo) +- *(i18n)* Add Finnish language ([#505](https://github.com/welpo/tabi/issues/505)) by [@axelkar](https://github.com/axelkar) and [@welpo](https://github.com/welpo) +- *(indieweb)* Add hidden h-card ([#506](https://github.com/welpo/tabi/issues/506)) by [@mmai](https://github.com/mmai) and [@welpo](https://github.com/welpo) +- *(socials)* Add itch.io icon ([#520](https://github.com/welpo/tabi/issues/520)) by [@mystal](https://github.com/mystal) +- *(webmentions)* Add hcard in post page ([#524](https://github.com/welpo/tabi/issues/524)) by [@mmai](https://github.com/mmai) and [@welpo](https://github.com/welpo) +- Add support for webmentions ([#485](https://github.com/welpo/tabi/issues/485)) by [@gortavoher](https://github.com/gortavoher), [@Jeremiah](https://github.com/Jeremiah) Russell, [@Henri](https://github.com/Henri) Bourcereau and [@welpo](https://github.com/welpo) +- Extend tabi `
` and `` elements ([#528](https://github.com/welpo/tabi/issues/528)) by [@axis7818](https://github.com/axis7818) and [@welpo](https://github.com/welpo) +- Parse markdown in post summary & description ([#517](https://github.com/welpo/tabi/issues/517)) by [@rktjump](https://github.com/rktjump) and [@welpo](https://github.com/welpo) +- Cache bust images in shortcodes ([#504](https://github.com/welpo/tabi/issues/504)) by [@axelkar](https://github.com/axelkar) + +### 🐛 Bug fixes + +- *(feed)* Prioritise description > summary ([#525](https://github.com/welpo/tabi/issues/525)) by [@tzinm](https://github.com/tzinm) +- Render author HTML on page metadata ([7321fc5](https://github.com/welpo/tabi/commit/7321fc5a43fa50dc24c9fa87714612a2295b904a)) by [@welpo](https://github.com/welpo) +- Allow feed icon to be hidden ([#533](https://github.com/welpo/tabi/issues/533)) by [@bajacc](https://github.com/bajacc) +- Fix hcard html tags ([#508](https://github.com/welpo/tabi/issues/508)) by [@mmai](https://github.com/mmai) +- Fix external link icon breaking word wrapping ([#498](https://github.com/welpo/tabi/issues/498)) by [@welpo](https://github.com/welpo) +- Fix padding hover on links with code (custom font) ([#494](https://github.com/welpo/tabi/issues/494)) by [@clement-escolano](https://github.com/clement-escolano) + +### 💄 Styling + +- Remove extra spacing after author ([2e29782](https://github.com/welpo/tabi/commit/2e29782279d8154cb9c6f1df9a2401612ec77948)) by [@welpo](https://github.com/welpo) + +### ♻️ Refactor + +- Add "target_attribute" macro ([#515](https://github.com/welpo/tabi/issues/515)) by [@tzinm](https://github.com/tzinm) and @Óscar +- Improve error message when title is unset ([a384ac8](https://github.com/welpo/tabi/commit/a384ac80c8e6b8be46d4a335930fba697a523af9)) by [@welpo](https://github.com/welpo) + +### 🔧 Miscellaneous tasks + +- *(CI)* Fix Mermaid version detection ([e11186a](https://github.com/welpo/tabi/commit/e11186a8448f94494b350402f76a2cc5e5a98a97)) by [@welpo](https://github.com/welpo) +- *(README)* Add b1n.io to 'sites using tabi' ([#531](https://github.com/welpo/tabi/issues/531)) by [@b1nhack](https://github.com/b1nhack) +- *(README)* Fix broken link tag ([#516](https://github.com/welpo/tabi/issues/516)) by [@Olexandr88](https://github.com/Olexandr88) +- *(README)* Add tzinm's blog to 'sites using tabi' ([#496](https://github.com/welpo/tabi/issues/496)) by [@tzinm](https://github.com/tzinm) + +### 👥 New contributors + +🫶 [@gortavoher](https://github.com/gortavoher) made their first contribution in [#485](https://github.com/welpo/tabi/pull/485) + +🫶 [@bajacc](https://github.com/bajacc) made their first contribution in [#533](https://github.com/welpo/tabi/pull/533) + +🫶 [@axis7818](https://github.com/axis7818) made their first contribution in [#528](https://github.com/welpo/tabi/pull/528) + +🫶 [@b1nhack](https://github.com/b1nhack) made their first contribution in [#531](https://github.com/welpo/tabi/pull/531) + +🫶 [@tzinm](https://github.com/tzinm) made their first contribution in [#525](https://github.com/welpo/tabi/pull/525) + +🫶 [@mmai](https://github.com/mmai) made their first contribution in [#524](https://github.com/welpo/tabi/pull/524) + +🫶 [@rktjump](https://github.com/rktjump) made their first contribution in [#517](https://github.com/welpo/tabi/pull/517) + +🫶 [@mystal](https://github.com/mystal) made their first contribution in [#520](https://github.com/welpo/tabi/pull/520) + +🫶 [@axelkar](https://github.com/axelkar) made their first contribution in [#504](https://github.com/welpo/tabi/pull/504) + +🫶 [@clement-escolano](https://github.com/clement-escolano) made their first contribution in [#494](https://github.com/welpo/tabi/pull/494) + +## [4.0.0](https://github.com/welpo/tabi/compare/v3.1.0..v4.0.0) - 2025-02-16 + +### 💥 BREAKING CHANGES 💥 + +- *(archive)* Enforce chronological sorting ([#483](https://github.com/welpo/tabi/issues/483)) by [@welpo](https://github.com/welpo) +- Add tag filtering for projects ([#431](https://github.com/welpo/tabi/issues/431)) ([a783329](https://github.com/welpo/tabi/commit/a7833299fff4c753e35fa1f00667d8801f541f9a)) by [@welpo](https://github.com/welpo) + +### ✨ Features + +- *(archive)* [**‼️BREAKING‼️**] Enforce chronological sorting ([#483](https://github.com/welpo/tabi/issues/483)) by [@welpo](https://github.com/welpo) +- *(shortcodes)* Add 'aside' shortcode for side notes ([#452](https://github.com/welpo/tabi/issues/452)) by [@welpo](https://github.com/welpo) +- *(socials)* Add more Fediverse social icons ([89ad44c](https://github.com/welpo/tabi/commit/89ad44ce26d002f2f2c3baa6cf769fb8972551af)) by [@welpo](https://github.com/welpo) +- *(socials)* Add Letterboxd social icon ([0e0a391](https://github.com/welpo/tabi/commit/0e0a391ea84c3ed8b66931158ddef1e4cdd161f4)) by [@welpo](https://github.com/welpo) +- *(socials)* Add ORCID icon ([cf63855](https://github.com/welpo/tabi/commit/cf6385553c779710d1164509f3fc0d480e858ebd)) by [@welpo](https://github.com/welpo) +- Add `hide_from_main_feed` support ([#490](https://github.com/welpo/tabi/issues/490)) by [@welpo](https://github.com/welpo) +- Support Zola's native code block names ([#489](https://github.com/welpo/tabi/issues/489)) by [@welpo](https://github.com/welpo) +- Render markdown in page titles & descriptions ([#486](https://github.com/welpo/tabi/issues/486)) by [@stalkerGH](https://github.com/stalkerGH) and [@welpo](https://github.com/welpo) +- Add indicator to external links ([#443](https://github.com/welpo/tabi/issues/443)) by [@welpo](https://github.com/welpo) +- Allow setting post_listing_date per section ([a3ae897](https://github.com/welpo/tabi/commit/a3ae897c8310ba6a1da72db0fc81f19ca8993d6f)) by [@welpo](https://github.com/welpo) +- Render section content ([#484](https://github.com/welpo/tabi/issues/484)) by [@welpo](https://github.com/welpo) +- Support disabling header font-subset ([#458](https://github.com/welpo/tabi/issues/458)) by [@Nizzlay](https://github.com/Nizzlay) and [@welpo](https://github.com/welpo) +- Support using info-page.html for sections ([#455](https://github.com/welpo/tabi/issues/455)) by [@wischi-chr](https://github.com/wischi-chr) and [@welpo](https://github.com/welpo) +- Add `raw_path` parameter to image shortcodes ([#439](https://github.com/welpo/tabi/issues/439)) by [@welpo](https://github.com/welpo) +- [**‼️BREAKING‼️**] Add tag filtering for projects ([#431](https://github.com/welpo/tabi/issues/431)) ([a783329](https://github.com/welpo/tabi/commit/a7833299fff4c753e35fa1f00667d8801f541f9a)) by [@welpo](https://github.com/welpo) + +### 🐛 Bug fixes + +- *(CSP)* Improve CSP coverage ([#471](https://github.com/welpo/tabi/issues/471)) by [@stekershaw](https://github.com/stekershaw) +- *(analytics)* Update umami domain ([#448](https://github.com/welpo/tabi/issues/448)) by [@arichtman](https://github.com/arichtman) +- *(feed)* Styling now works in all website paths ([45fe170](https://github.com/welpo/tabi/commit/45fe17046704e249be3b5fbb94a3355d21149d4d)) by [@welpo](https://github.com/welpo) +- *(feed)* Load CSS in subfolder setups ([#467](https://github.com/welpo/tabi/issues/467)) by [@welpo](https://github.com/welpo) +- Adapt footnotes styling for zola 0.19.x & 0.20.x ([1c067e7](https://github.com/welpo/tabi/commit/1c067e708eac4282a2191507f046eacd9f18e0f6)) by [@welpo](https://github.com/welpo) +- Improve menu accessibility ([#482](https://github.com/welpo/tabi/issues/482)) by [@welpo](https://github.com/welpo) +- Support external URLs in menu ([#481](https://github.com/welpo/tabi/issues/481)) by [@welpo](https://github.com/welpo) +- Remove `nofollow` robots meta tag ([#465](https://github.com/welpo/tabi/issues/465)) by [@Nizzlay](https://github.com/Nizzlay) +- Show feed icon without socials ([de6fa58](https://github.com/welpo/tabi/commit/de6fa58fe3b276c12f16f9ddc1cf9f93269161f9)) by [@welpo](https://github.com/welpo) +- Add separator between update date & remote changes link ([2cc336d](https://github.com/welpo/tabi/commit/2cc336d9d0f7019015a356242230f0568658a523)) by [@welpo](https://github.com/welpo) +- Support relative paths in inherited social media card ([#432](https://github.com/welpo/tabi/issues/432)) by [@welpo](https://github.com/welpo) + +### 💄 Styling + +- *(admonitions)* Fix external link icon ([2b106b7](https://github.com/welpo/tabi/commit/2b106b7c628e01046495a3add7a9ec4cc00b9fa3)) by [@welpo](https://github.com/welpo) +- Increase emoji favicon size ([d777d5d](https://github.com/welpo/tabi/commit/d777d5d99679ab609bebb89726aef80562b30d87)) by [@welpo](https://github.com/welpo) +- Remove extra whitespace in post metadata ([dbb0e82](https://github.com/welpo/tabi/commit/dbb0e826b6572531d4c44bdb031d68207a906666)) by [@welpo](https://github.com/welpo) +- Use text-colour for hover on `rt` in links ([a6b6c32](https://github.com/welpo/tabi/commit/a6b6c3205096fd718757a6f32ff07d60bcc22808)) by [@welpo](https://github.com/welpo) +- Fix home banner layout for short intro ([#438](https://github.com/welpo/tabi/issues/438)) by [@welpo](https://github.com/welpo) +- Fix numbered code blocks on iOS Safari ([4be8a56](https://github.com/welpo/tabi/commit/4be8a5634fa2990825e9bc785029c4dddb340c39)) by [@welpo](https://github.com/welpo) +- Fix numbered code blocks ([#437](https://github.com/welpo/tabi/issues/437)) by [@welpo](https://github.com/welpo) +- Retain base code block style in admonitions ([557ea77](https://github.com/welpo/tabi/commit/557ea7786ffbad75fafdd69d864d6073fd1dadbc)) by [@welpo](https://github.com/welpo) + +### 📝 Documentation + +- *(README)* Fix typo ([#457](https://github.com/welpo/tabi/issues/457)) by [@Olexandr88](https://github.com/Olexandr88) +- *(README)* Add maintenance badges ([4834a9e](https://github.com/welpo/tabi/commit/4834a9e85ff89f1678374752289116bce6f3a076)) by [@welpo](https://github.com/welpo) +- *(demo)* Basic Arabic translation ([#390](https://github.com/welpo/tabi/issues/390)) by [@TheAwiteb](https://github.com/TheAwiteb) and [@welpo](https://github.com/welpo) +- *(series)* Add tip for custom text permalinks ([4029657](https://github.com/welpo/tabi/commit/402965786beb942aab0922de68cd98952f9a9be0)) by [@welpo](https://github.com/welpo) +- *(shortcodes)* Clarify aside usage ([1dcd615](https://github.com/welpo/tabi/commit/1dcd615615b492dffc00c34bd7e1bbc680cf95fd)) by [@welpo](https://github.com/welpo) +- *(shortcodes)* Clarify `position` parameter usage for "aside" ([da1b6bb](https://github.com/welpo/tabi/commit/da1b6bb0cc7719f3de23a6855d80dc0262d5c025)) by [@welpo](https://github.com/welpo) +- Suggest MathML in lieu of KaTeX for JS-free math ([eb03953](https://github.com/welpo/tabi/commit/eb0395352caffab67f1ad9b81aab51824e9feb54)) by [@welpo](https://github.com/welpo) +- Add tabi-start integration ([#441](https://github.com/welpo/tabi/issues/441)) by [@welpo](https://github.com/welpo) + +### ♻️ Refactor + +- Only show project tag filter with 2 or more tags ([180fc53](https://github.com/welpo/tabi/commit/180fc533844ec3427c447f7040ea837520c4fe5d)) by [@welpo](https://github.com/welpo) + +### 🔧 Miscellaneous tasks + +- *(CI)* Add concurrency control to sumi action ([47ea26d](https://github.com/welpo/tabi/commit/47ea26db97cfbd87518ab00b892fdbb245577535)) by [@welpo](https://github.com/welpo) +- *(CI)* Add dependencies label to upgrade PRs ([551b3d2](https://github.com/welpo/tabi/commit/551b3d28c6852c3a1e7acf3c645e0d7b84e079cb)) by [@welpo](https://github.com/welpo) +- *(CI)* Ignore deleted files in pre-commit ([f93def0](https://github.com/welpo/tabi/commit/f93def0692146a15b63d19406ec1180b9e41ba3d)) by [@welpo](https://github.com/welpo) +- *(README)* Add idle-ti.me blog to sites using tabi ([#479](https://github.com/welpo/tabi/issues/479)) by [@be-next](https://github.com/be-next) +- *(README)* Add zzmzaw's blog to sites using tabi ([#469](https://github.com/welpo/tabi/issues/469)) by [@ZzMzaw](https://github.com/ZzMzaw) +- *(README)* Add nizzlay.com to Sites using tabi ([#464](https://github.com/welpo/tabi/issues/464)) by [@Nizzlay](https://github.com/Nizzlay) +- *(README)* Add szabolcs.me to Sites using tabi ([#451](https://github.com/welpo/tabi/issues/451)) by [@szabolcsf](https://github.com/szabolcsf) +- *(README)* Set original colours for docs|up badge ([69713c9](https://github.com/welpo/tabi/commit/69713c973c11d7646c8fe56476261d96cc1978d8)) by [@welpo](https://github.com/welpo) +- *(deps)* Check for existing branch upgrades ([29bbd2e](https://github.com/welpo/tabi/commit/29bbd2eecc97aaaa95c61f8fb736d1301042aa91)) by [@welpo](https://github.com/welpo) +- *(docs)* Fix Series section headings ([0778212](https://github.com/welpo/tabi/commit/077821208f161e813da90c56db817b743bc211c4)) by [@welpo](https://github.com/welpo) +- *(docs)* Use internal links in home description ([0b10560](https://github.com/welpo/tabi/commit/0b10560a94f4a0a4bcb8536ee0595e8c4f4df800)) by [@welpo](https://github.com/welpo) +- *(projects)* Add nemui project ([11eb774](https://github.com/welpo/tabi/commit/11eb774bd74562a4628f87a130575281aa469918)) by [@welpo](https://github.com/welpo) +- *(upgrade-deps)* Improve version detection ([0688628](https://github.com/welpo/tabi/commit/06886284202f670be2034dcedbf6130446b91436)) by [@welpo](https://github.com/welpo) +- Add "shuku" project ([e1b6054](https://github.com/welpo/tabi/commit/e1b60542dfc3eb9bed39a92d3b7acfae88f32b84)) by [@welpo](https://github.com/welpo) +- Add ずつ (zutsu) project page ([c6d1c3d](https://github.com/welpo/tabi/commit/c6d1c3dff844461c7c774882dec8a87d7d3ea548)) by [@welpo](https://github.com/welpo) +- Fix dōteki docs link ([c15098a](https://github.com/welpo/tabi/commit/c15098a959242765353c7fab0906d1fc596c64c0)) by [@welpo](https://github.com/welpo) +- Update git-sumi & dōteki projects ([6d44320](https://github.com/welpo/tabi/commit/6d44320f45bc381c65e370f8f03bf3525b59e05a)) by [@welpo](https://github.com/welpo) + +### 👥 New contributors + +🫶 [@stalkerGH](https://github.com/stalkerGH) made their first contribution in [#486](https://github.com/welpo/tabi/pull/486) + +🫶 [@stekershaw](https://github.com/stekershaw) made their first contribution in [#471](https://github.com/welpo/tabi/pull/471) + +🫶 [@Nizzlay](https://github.com/Nizzlay) made their first contribution in [#465](https://github.com/welpo/tabi/pull/465) + +🫶 [@Olexandr88](https://github.com/Olexandr88) made their first contribution in [#457](https://github.com/welpo/tabi/pull/457) + +🫶 [@wischi-chr](https://github.com/wischi-chr) made their first contribution in [#455](https://github.com/welpo/tabi/pull/455) + +🫶 [@szabolcsf](https://github.com/szabolcsf) made their first contribution in [#451](https://github.com/welpo/tabi/pull/451) + +## [3.1.0](https://github.com/welpo/tabi/compare/v3.0.0..v3.1.0) - 2024-11-14 + +### ✨ Features + +- *(shortcodes)* Support body admonitions ([#423](https://github.com/welpo/tabi/issues/423)) by [@welpo](https://github.com/welpo) +- Allow pinned posts with pagination ([#428](https://github.com/welpo/tabi/issues/428)) by [@welpo](https://github.com/welpo) +- Add pinned posts functionality ([#424](https://github.com/welpo/tabi/issues/424)) by [@welpo](https://github.com/welpo) +- Add series functionality ([#406](https://github.com/welpo/tabi/issues/406)) by [@ZzMzaw](https://github.com/ZzMzaw) and [@welpo](https://github.com/welpo) + +### 🐛 Bug fixes + +- Link to "All posts" in non-default-language root ([3b7fd3d](https://github.com/welpo/tabi/commit/3b7fd3db9c33fd3ca6114ca00fffa2a91f682a0a)) by [@welpo](https://github.com/welpo) +- Isso comments in multilingual setups ([#427](https://github.com/welpo/tabi/issues/427)) by [@welpo](https://github.com/welpo) + +### 💄 Styling + +- Colour scrollbar to match primary colour ([#430](https://github.com/welpo/tabi/issues/430)) by [@welpo](https://github.com/welpo) +- Set accent color to match theme ([#429](https://github.com/welpo/tabi/issues/429)) by [@welpo](https://github.com/welpo) +- Fix info admonition code color ([5927409](https://github.com/welpo/tabi/commit/5927409c41e71d6943deee426fc75a94037cee36)) by [@welpo](https://github.com/welpo) +- Improve navigation bar & metadata wrapping ([#425](https://github.com/welpo/tabi/issues/425)) by [@welpo](https://github.com/welpo) +- Fix hover color for