1
0
mirror of https://github.com/squidfunk/mkdocs-material.git synced 2024-11-24 07:30:12 +01:00

Merge branch 'master' of github.com:squidfunk/mkdocs-material

This commit is contained in:
squidfunk 2023-02-28 09:34:57 +01:00
commit 8014c0423c
No known key found for this signature in database
GPG Key ID: 5ED40BC4F9C436DF
31 changed files with 293 additions and 397 deletions

View File

@ -1,236 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 320">
<foreignObject width="100%" height="100%">
<div xmlns="http://www.w3.org/1999/xhtml">
<style>
@keyframes backdrop {
0% {
transform: scale(0.9) rotateZ(45deg);
opacity: 0.25;
}
10% {
opacity: 1;
}
15% {
transform: scale(1.1) rotateZ(35deg);
}
50% {
transform: scale(1) rotateZ(0deg);
}
75% {
transform: scale(1.1) rotateZ(-35deg);
opacity: 1;
}
100% {
transform: scale(0.9) rotateZ(-45deg);
opacity: 0.25;
}
}
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 320px;
height: 320px;
font-family:
system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial,
sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
letter-spacing: -1px;
border-radius: 2px;
}
.logo {
position: relative;
width: 40%;
}
.logo svg {
position: relative;
display: block;
margin: 20%;
fill: #FFFFFF;
}
.backdrop {
position: absolute;
width: 100%;
height: 100%;
background-image: linear-gradient(#1A1A1A, #5E5E5E);
border-radius: 100%;
animation: backdrop infinite both 10s 1s cubic-bezier(0.7, 0, 0.3, 1);
}
h1 {
margin: 24px 0 4px;
color: #FFFFFF;
font-weight: bold;
font-size: 24px;
}
h2 {
margin: 4px 0;
color: #7E7E7E;
font-size: 14px;
}
</style>
<div class="container">
<div class="logo">
<div class="backdrop"></div>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89 89">
<polygon id="p1">
<animate
attributeName="points" calcMode="spline" fill="freeze"
dur="2s" begin="1s;p1o.end+1s" id="p1i"
keyTimes="0;1" keySplines="0.16 1 0.3 1"
values="
3.136 17.387, 3.136 60.319, 3.136 60.319, 3.136 60.319;
3.136 17.387, 3.136 60.319, 46.068 81.786, 3.136 17.387
"
/>
<animate
attributeName="points" calcMode="spline" fill="freeze"
dur="2s" begin="p1i.end+5s" id="p1o"
keyTimes="0;1" keySplines="0.7 0 0.84 0"
values="
3.136 17.387, 3.136 60.319, 46.068 81.786, 3.136 17.387;
3.136 17.387, 3.136 60.319, 3.136 60.319, 3.136 60.319
"
/>
<animate
attributeName="fill-opacity" fill="freeze"
dur="5s" begin="p1i.end"
from="1" to="0.5"
/>
<animate
attributeName="fill-opacity" fill="freeze"
dur="0.1s" begin="p1o.end"
from="0.5" to="1"
/>
</polygon>
<polygon id="p2" style="fill-opacity: 0.5;">
<animate
attributeName="points" calcMode="spline" fill="freeze"
dur="2s" begin="1s;p2o.end+1s" id="p2i"
keyTimes="0;1" keySplines="0.16 1 0.3 1"
values="
21.910 50.932, 21.910 50.932, 3.136 60.319, 3.136 60.319;
21.910 8.000, 64.843 72.398, 46.068 81.786, 3.136 17.387
"
/>
<animate
attributeName="points" calcMode="spline" fill="freeze"
dur="2s" begin="p2i.end+5s" id="p2o"
keyTimes="0;1" keySplines="0.7 0 0.84 0"
values="
21.910 8.000, 64.843 72.398, 46.068 81.786, 3.136 17.387;
21.910 50.932, 21.910 50.932, 3.136 60.319, 3.136 60.319
"
/>
<animate
attributeName="fill-opacity" fill="freeze"
dur="5s" begin="p1i.end"
from="0.5" to="1"
/>
<animate
attributeName="fill-opacity" fill="freeze"
dur="0.1s" begin="p2o.end"
from="1" to="0.5"
/>
</polygon>
<clipPath id="clip">
<polygon id="p3">
<animate
attributeName="points" calcMode="spline" fill="freeze"
dur="2s" begin="1s;p3o.end+1s" id="p3i"
keyTimes="0;1" keySplines="0.16 1 0.3 1"
values="
21.910 50.932, 21.910 50.932, 89 89, 89 0;
21.910 8.000, 64.843 72.398, 89 89, 89 0
"
/>
<animate
attributeName="points" calcMode="spline" fill="freeze"
dur="2s" begin="p3i.end+5s" id="p3o"
keyTimes="0;1" keySplines="0.7 0 0.84 0"
values="
21.910 8.000, 64.843 72.398, 89 89, 89 0;
21.910 50.932, 21.910 50.932, 89 89, 89 0
"
/>
</polygon>
</clipPath>
<polygon id="p4" clip-path="url(#clip)">
<animate
attributeName="points" calcMode="spline" fill="freeze"
dur="2s" begin="1.25s;p4o.end+1s" id="p4i"
keyTimes="0;1" keySplines="0.16 1 0.3 1"
values="
67.535 71.052, 67.535 71.052, 62.151 68.361, 67.535 71.052;
67.535 17.387, 21.509 48.04, 62.151 68.361, 67.535 71.052
"
/>
<animate
attributeName="points" calcMode="spline" fill="freeze"
dur="2s" begin="p4i.end+5s" id="p4o"
keyTimes="0;1" keySplines="0.7 0 0.84 0"
values="
67.535 17.387, 21.509 48.04, 62.151 68.361, 67.535 71.052;
67.535 71.052, 67.535 71.052, 62.151 68.361, 67.535 71.052
"
/>
<animate
attributeName="fill-opacity" fill="freeze"
dur="5s" begin="p1i.end"
from="1" to="0.5"
/>
<animate
attributeName="fill-opacity" fill="freeze"
dur="0.1s" begin="p4o.end"
from="0.5" to="1"
/>
</polygon>
<polygon id="p5" clip-path="url(#clip)" style="fill-opacity: 0.25;">
<animate
attributeName="points" calcMode="spline" fill="freeze"
dur="2s" begin="1.25s;p5o.end+1s" id="p5i"
keyTimes="0;1" keySplines="0.16 1 0.3 1"
values="
67.535 71.053, 86.309 61.665, 86.309 61.665, 67.535 71.053;
67.535 71.053, 86.309 61.665, 86.309 8.000, 67.535 17.387
"
/>
<animate
attributeName="points" calcMode="spline" fill="freeze"
dur="2s" begin="p5i.end+5s" id="p5o"
keyTimes="0;1" keySplines="0.7 0 0.84 0"
values="
67.535 71.053, 86.309 61.665, 86.309 8.000, 67.535 17.387;
67.535 71.053, 86.309 61.665, 86.309 61.665, 67.535 71.053
"
/>
<animate
attributeName="fill-opacity" fill="freeze"
dur="5s" begin="p1i.end"
from="0.25" to="1"
/>
<animate
attributeName="fill-opacity" fill="freeze"
dur="0.1s" begin="p5o.end"
from="1" to="0.25"
/>
</polygon>
</svg>
</div>
<h1>Material for MkDocs</h1>
<h2>Documentation that simply works</h2>
</div>
</div>
</foreignObject>
</svg>

Before

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -42,7 +42,6 @@
system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial,
sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'; sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
letter-spacing: -1px; letter-spacing: -1px;
background: #FFFFFF;
border-radius: 2px; border-radius: 2px;
} }
@ -62,14 +61,14 @@
position: absolute; position: absolute;
width: 100%; width: 100%;
height: 100%; height: 100%;
background-image: linear-gradient(#1A1A1A, #5E5E5E); background-image: linear-gradient(#22272e, #526cfe);
border-radius: 100%; border-radius: 100%;
animation: backdrop infinite both 10s 1s cubic-bezier(0.7, 0, 0.3, 1); animation: backdrop infinite both 10s 1s cubic-bezier(0.7, 0, 0.3, 1);
} }
h1 { h1 {
margin: 24px 0 4px; margin: 24px 0 4px;
color: #1A1A1A; color: #526cfe;
font-weight: bold; font-weight: bold;
font-size: 24px; font-size: 24px;
} }

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -20,18 +20,23 @@
name: build name: build
on: on:
- push push:
- pull_request branches:
- master
pull_request:
release:
types:
- published
env: env:
NODE_VERSION: 14.x NODE_VERSION: 14.x
PYTHON_VERSION: 3.x
permissions: permissions:
contents: read contents: read
jobs: jobs:
build: npm:
name: Build project
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -61,3 +66,109 @@ jobs:
run: | run: |
npm run build npm run build
git diff --name-only git diff --name-only
pypi:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python runtime
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up Python dependencies
run: pip install --upgrade build twine
- name: Build Python package
run: python -m build
- name: Publish Python package
if: github.event_name == 'release'
env:
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: twine upload --disable-progress-bar -u ${PYPI_USERNAME} -p ${PYPI_PASSWORD} dist/*
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
if: github.event_name == 'release'
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to GitHub Container Registry
if: github.event_name == 'release'
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GHCR_TOKEN }}
- name: Generate Docker tags and labels
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ github.event.repository.full_name }}
ghcr.io/${{ github.event.repository.full_name }}
tags: |
type=ref,event=branch
type=ref,event=tag
type=ref,event=pr
flavor: |
latest=${{ github.event.release.prerelease == false }}
- name: Build Docker image
uses: docker/build-push-action@v4
with:
context: .
load: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- name: Check Docker image
working-directory: /tmp
run: |
docker run --rm -i -v ${PWD}:/docs ${{ github.event.repository.full_name }}:${{ steps.meta.outputs.version }} new .
docker run --rm -i -v ${PWD}:/docs ${{ github.event.repository.full_name }}:${{ steps.meta.outputs.version }} build
- name: Set platforms
if: github.event_name == 'release'
run: |
echo "PLATFORMS=linux/amd64,linux/arm64,linux/arm/v7" >> $GITHUB_ENV
- name: Publish Docker image
uses: docker/build-push-action@v4
with:
context: .
platforms: ${{ env.PLATFORMS }}
push: ${{ github.event_name == 'release' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- name: Check manifest
if: github.event_name == 'release'
run: |
docker buildx imagetools inspect ${{ github.event.repository.full_name }}:${{ steps.meta.outputs.version }}
- name: Inspect image
if: github.event_name == 'release'
run: |
docker pull ${{ github.event.repository.full_name }}:${{ steps.meta.outputs.version }}
docker image inspect ${{ github.event.repository.full_name }}:${{ steps.meta.outputs.version }}

View File

@ -1,105 +0,0 @@
# Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com>
# 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 NON-INFRINGEMENT. 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.
name: publish
on:
release:
types:
- published
env:
PYTHON_VERSION: 3.x
permissions:
contents: read
jobs:
publish_pypi:
name: Build and push Python package
if: github.event.repository.fork == false
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python runtime
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up Python dependencies
run: pip install --upgrade build twine
- name: Build Python package
run: python -m build
- name: Publish Python package
env:
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: twine upload --disable-progress-bar -u ${PYPI_USERNAME} -p ${PYPI_PASSWORD} dist/*
publish_docker:
name: Build and push Docker image
if: github.event.repository.fork == false
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GHCR_TOKEN }}
- name: Build Docker image
uses: docker/build-push-action@v3
with:
context: .
# platforms: linux/amd64,linux/arm64
tags: |
${{ github.event.repository.full_name }}:latest
${{ github.event.repository.full_name }}:${{ github.event.release.tag_name }}
ghcr.io/${{ github.event.repository.full_name }}:latest
ghcr.io/${{ github.event.repository.full_name }}:${{ github.event.release.tag_name }}
- name: Check Docker image
working-directory: /tmp
run: |
docker run --rm -i -v ${PWD}:/docs ${{ github.event.repository.full_name }} new .
docker run --rm -i -v ${PWD}:/docs ${{ github.event.repository.full_name }} build
- name: Publish Docker image
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
run: |
docker push --all-tags ${{ github.event.repository.full_name }}
docker push --all-tags ghcr.io/${{ github.event.repository.full_name }}

View File

@ -1,3 +1,16 @@
mkdocs-material-9.1.0 (2023-02-??)
* Docker image now also built for arm64 and armv7
* Updated Chinese (Taiwanese) translations
* Generalized tag identifier implementation
* Fixed flickering of header shadow on load
* Fixed occasional flickering of announcement bar
mkdocs-material-9.0.15 (2023-02-26)
* Updated Chinese (Traditional) translations
* Updated Hebrew translations
mkdocs-material-9.0.14+insiders-4.32.1 (2023-02-23) mkdocs-material-9.0.14+insiders-4.32.1 (2023-02-23)
* Fixed code block spans interfering with copying * Fixed code block spans interfering with copying

View File

@ -1,10 +1,7 @@
<p align="center"> <p align="center">
<a href="https://squidfunk.github.io/mkdocs-material/#gh-light-mode-only"> <a href="https://squidfunk.github.io/mkdocs-material/">
<img src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/logo.svg" width="320" alt="Material for MkDocs"> <img src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/logo.svg" width="320" alt="Material for MkDocs">
</a> </a>
<a href="https://squidfunk.github.io/mkdocs-material/#gh-dark-mode-only">
<img src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/logo-dark.svg" width="320" alt="Material for MkDocs">
</a>
</p> </p>
<p align="center"> <p align="center">

View File

@ -2,6 +2,11 @@
## Material for MkDocs ## Material for MkDocs
### 9.0.15 <small>February 26, 2023</small> { id="9.0.15" }
- Updated Chinese (Traditional) translations
- Updated Hebrew translations
### 9.0.14 <small>February 23, 2023</small> { id="9.0.14" } ### 9.0.14 <small>February 23, 2023</small> { id="9.0.14" }
- Fixed #5072: Rendering bug on navigation expand button in Firefox - Fixed #5072: Rendering bug on navigation expand button in Firefox

View File

@ -109,7 +109,7 @@ resolves to the subfolder where your documentation is hosted.
If your default branch is called `main`, change the setting to: If your default branch is called `main`, change the setting to:
``` yaml ``` yaml
edit_uri: blob/main/docs/ edit_uri: edit/main/docs/
``` ```
After making sure that `edit_uri` is correctly configured, buttons for code After making sure that `edit_uri` is correctly configured, buttons for code

View File

@ -262,16 +262,19 @@ navigation section:
``` yaml ``` yaml
nav: nav:
- Section: - Section:
- section/index.md - section/index.md # (1)!
- Page 1: section/page-1.md - Page 1: section/page-1.md
... ...
- Page n: section/page-n.md - Page n: section/page-n.md
``` ```
1. MkDocs also considers files called `README.md` as [index pages].
[Section index pages support]: https://github.com/squidfunk/mkdocs-material/releases/tag/7.3.0 [Section index pages support]: https://github.com/squidfunk/mkdocs-material/releases/tag/7.3.0
[Section index pages enabled]: ../assets/screenshots/navigation-index-on.png [Section index pages enabled]: ../assets/screenshots/navigation-index-on.png
[Section index pages disabled]: ../assets/screenshots/navigation-index-off.png [Section index pages disabled]: ../assets/screenshots/navigation-index-off.png
[toc.integrate]: #navigation-integration [toc.integrate]: #navigation-integration
[index pages]: https://www.mkdocs.org/user-guide/writing-your-docs/#index-pages
### Table of contents ### Table of contents

View File

@ -28,7 +28,7 @@
<link rel="next" href="{{ page.next_page.url | url }}"> <link rel="next" href="{{ page.next_page.url | url }}">
{% endif %} {% endif %}
<link rel="icon" href="{{ config.theme.favicon | url }}"> <link rel="icon" href="{{ config.theme.favicon | url }}">
<meta name="generator" content="mkdocs-{{ mkdocs_version }}, mkdocs-material-9.0.14"> <meta name="generator" content="mkdocs-{{ mkdocs_version }}, mkdocs-material-9.0.15">
{% endblock %} {% endblock %}
{% block htmltitle %} {% block htmltitle %}
{% if page.meta and page.meta.title %} {% if page.meta and page.meta.title %}
@ -240,7 +240,7 @@
</script> </script>
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
<script src="{{ 'assets/javascripts/bundle.2a6f1dda.min.js' | url }}"></script> <script src="{{ 'assets/javascripts/bundle.ce72ebac.min.js' | url }}"></script>
{% for path in config.extra_javascript %} {% for path in config.extra_javascript %}
<script src="{{ path | url }}"></script> <script src="{{ path | url }}"></script>
{% endfor %} {% endfor %}

View File

@ -3,7 +3,9 @@
-#} -#}
{% set class = "md-header" %} {% set class = "md-header" %}
{% if "navigation.tabs.sticky" in features %} {% if "navigation.tabs.sticky" in features %}
{% set class = class ~ " md-header--lifted" %} {% set class = class ~ " md-header--shadow md-header--lifted" %}
{% elif "navigation.tabs" not in features %}
{% set class = class ~ " md-header--shadow" %}
{% endif %} {% endif %}
<header class="{{ class }}" data-md-component="header"> <header class="{{ class }}" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="{{ lang.t('header') }}"> <nav class="md-header__inner md-grid" aria-label="{{ lang.t('header') }}">

View File

@ -23,7 +23,7 @@
{% set modifier = "--" ~ type %} {% set modifier = "--" ~ type %}
{% endif %} {% endif %}
{% set _ = style.append( {% set _ = style.append(
".md-tag-icon" ~ modifier ~ "{" ~ ".md-tag" ~ modifier ~ "{" ~
"--md-tag-icon:" ~ "--md-tag-icon:" ~
"url('data:image/svg+xml;charset=utf-8," ~ "url('data:image/svg+xml;charset=utf-8," ~
icon | replace("\n", "") ~ icon | replace("\n", "") ~

View File

@ -40,7 +40,7 @@
"search.result.initializer": "אתחול חיפוש", "search.result.initializer": "אתחול חיפוש",
"search.result.placeholder": "יש להקליד כדי להתחיל לחפש", "search.result.placeholder": "יש להקליד כדי להתחיל לחפש",
"search.result.none": "אין מסמכים תואמים", "search.result.none": "אין מסמכים תואמים",
"search.result.one": " מסמך1 תואם", "search.result.one": "מסמך1 תואם",
"search.result.other": "# מסמך תואם", "search.result.other": "# מסמך תואם",
"search.result.more.one": "עוד אחד בדף הזה", "search.result.more.one": "עוד אחד בדף הזה",
"search.result.more.other": "עוד # בדף הזה", "search.result.more.other": "עוד # בדף הזה",

View File

@ -5,23 +5,54 @@
"language": "zh-Hant", "language": "zh-Hant",
"action.edit": "編輯此頁", "action.edit": "編輯此頁",
"action.skip": "跳轉至", "action.skip": "跳轉至",
"action.view": "查看源代碼",
"announce.dismiss": "不再顯示此訊息",
"blog.archive": "存檔",
"blog.categories": "分類",
"blog.categories.in": "分類在",
"blog.continue": "繼續閲讀",
"blog.draft": "草稿",
"blog.index": "回到首頁",
"blog.meta": "元數據",
"blog.references": "相關鏈接",
"clipboard.copy": "拷貝", "clipboard.copy": "拷貝",
"clipboard.copied": "已拷貝", "clipboard.copied": "已拷貝",
"consent.accept": "接受",
"consent.manage": "管理設置",
"consent.reject": "拒絕",
"footer": "頁脚",
"footer.next": "下一頁", "footer.next": "下一頁",
"footer.previous": "上一頁", "footer.previous": "上一頁",
"header": "頁首",
"meta.comments": "評論", "meta.comments": "評論",
"meta.source": "來源", "meta.source": "來源",
"search.config.lang": "ja", "search.config.lang": "ja",
"search.config.pipeline": "stemmer", "search.config.pipeline": "stemmer",
"search.config.separator": "[\\s\\-,。]+", "search.config.separator": "[\\s\\-,。]+",
"nav": "導航",
"readtime.one": "需要 1 分鐘閲讀",
"readtime.other": "需要 # 分鐘閲讀",
"rss.created": "簡易資訊聚合",
"rss.updated": "更新之部分的簡易資訊聚合",
"search": "搜尋",
"search.placeholder": "搜尋", "search.placeholder": "搜尋",
"search.share": "分享",
"search.reset": "清空",
"search.result.initializer": "正在初始化搜尋引擎", "search.result.initializer": "正在初始化搜尋引擎",
"search.result.placeholder": "鍵入以開始檢索", "search.result.placeholder": "鍵入以開始檢索",
"search.result.none": "沒有找到符合條件的結果", "search.result.none": "沒有找到符合條件的結果",
"search.result.one": "找到 1 个符合條件的結果", "search.result.one": "找到 1 个符合條件的結果",
"search.result.other": "# 個符合條件的結果", "search.result.other": "找到 # 個符合條件的結果",
"search.result.more.one": "此頁尚有 1 個符合的項目",
"search.result.more.other": "此頁尚有 # 個符合的項目",
"search.result.term.missing": "缺失",
"select.language": "選擇語言",
"select.version": "選擇版本",
"source": "前往倉庫", "source": "前往倉庫",
"source.file.contributors": "貢獻者",
"source.file.date.created": "建立日期", "source.file.date.created": "建立日期",
"source.file.date.updated": "最後更新", "source.file.date.updated": "最後更新",
"toc": "目錄" "tabs": "標籤頁",
"toc": "目錄",
"top": "回到頂部"
}[key] }}{% endmacro %} }[key] }}{% endmacro %}

View File

@ -2,23 +2,42 @@
This file was automatically generated - do not edit This file was automatically generated - do not edit
-#} -#}
{% macro t(key) %}{{ { {% macro t(key) %}{{ {
"language": "zh-Hant", "language": "zh-TW",
"action.edit": "編輯此頁", "action.edit": "編輯此頁",
"action.skip": "跳轉到", "action.skip": "跳轉到",
"action.view": "查看此頁原始碼",
"announce.dismiss": "不再顯示此訊息", "announce.dismiss": "不再顯示此訊息",
"blog.archive": "封存",
"blog.categories": "分類",
"blog.categories.in": "於",
"blog.continue": "繼續閱讀",
"blog.draft": "草稿",
"blog.index": "回到主頁",
"blog.meta": "元數據",
"blog.references": "相關連結",
"clipboard.copy": "複製", "clipboard.copy": "複製",
"clipboard.copied": "已複製", "clipboard.copied": "已複製",
"consent.accept": "同意", "consent.accept": "同意",
"consent.manage": "管理設定", "consent.manage": "管理設定",
"consent.reject": "拒絕", "consent.reject": "拒絕",
"footer": "頁腳",
"footer.next": "下一頁", "footer.next": "下一頁",
"footer.previous": "上一頁", "footer.previous": "上一頁",
"header": "頁首",
"meta.comments": "留言", "meta.comments": "留言",
"meta.source": "來源", "meta.source": "來源",
"nav": "導覽列",
"readtime.one": "需要 1 分鐘閱讀時間",
"readtime.other": "需要 # 分鐘閱讀時間",
"rss.created": "RSS 訂閱",
"rss.updated": "RSS 訂閱內容已更新",
"search": "搜尋",
"search.config.lang": "ja", "search.config.lang": "ja",
"search.config.pipeline": "stemmer", "search.config.pipeline": "stemmer",
"search.config.separator": "[\\s\\- 、。,.?;]+", "search.config.separator": "[\\s\\- 、。,.?;]+",
"search.placeholder": "搜尋", "search.placeholder": "搜尋",
"search.share": "分享",
"search.reset": "清除",
"search.result.initializer": "正在初始化搜尋引擎", "search.result.initializer": "正在初始化搜尋引擎",
"search.result.placeholder": "打字進行搜尋", "search.result.placeholder": "打字進行搜尋",
"search.result.none": "沒有符合的項目", "search.result.none": "沒有符合的項目",
@ -26,8 +45,14 @@
"search.result.other": "找到 # 個符合的項目", "search.result.other": "找到 # 個符合的項目",
"search.result.more.one": "此頁尚有 1 個符合的項目", "search.result.more.one": "此頁尚有 1 個符合的項目",
"search.result.more.other": "此頁尚有 # 個符合的項目", "search.result.more.other": "此頁尚有 # 個符合的項目",
"search.result.term.missing": "缺少字詞",
"select.language": "選擇語言",
"select.version": "選擇版本",
"source": "前往倉庫", "source": "前往倉庫",
"source.file.contributors": "貢獻者",
"source.file.date.created": "建立日期", "source.file.date.created": "建立日期",
"source.file.date.updated": "最後更新", "source.file.date.updated": "最後更新",
"toc": "目錄" "tabs": "標籤",
"toc": "目錄",
"top": "回到頂端"
}[key] }}{% endmacro %} }[key] }}{% endmacro %}

View File

@ -10,7 +10,7 @@
{% if config.extra.tags %} {% if config.extra.tags %}
{% set icon = " md-tag-icon" %} {% set icon = " md-tag-icon" %}
{% if tag.type %} {% if tag.type %}
{% set icon = icon ~ " md-tag-icon--" ~ tag.type %} {% set icon = icon ~ " md-tag--" ~ tag.type %}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if tag.url %} {% if tag.url %}

View File

@ -116,7 +116,7 @@ class TagsPlugin(BasePlugin[TagsPluginConfig]):
classes.append("md-tag-icon") classes.append("md-tag-icon")
type = self.tags_map.get(tag) type = self.tags_map.get(tag)
if type: if type:
classes.append(f"md-tag-icon--{type}") classes.append(f"md-tag--{type}")
# Render section for tag and a link to each page # Render section for tag and a link to each page
classes = " ".join(classes) classes = " ".join(classes)

View File

@ -38,7 +38,7 @@ theme:
name: material name: material
custom_dir: material/.overrides custom_dir: material/.overrides
features: features:
# - announce.dismiss - announce.dismiss
- content.action.edit - content.action.edit
- content.action.view - content.action.view
- content.code.annotate - content.code.annotate

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "mkdocs-material", "name": "mkdocs-material",
"version": "9.0.14", "version": "9.0.15",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "mkdocs-material", "name": "mkdocs-material",
"version": "9.0.14", "version": "9.0.15",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"array-flat-polyfill": "^1.0.1", "array-flat-polyfill": "^1.0.1",

View File

@ -1,6 +1,6 @@
{ {
"name": "mkdocs-material", "name": "mkdocs-material",
"version": "9.0.14", "version": "9.0.15",
"description": "Documentation that simply works", "description": "Documentation that simply works",
"keywords": [ "keywords": [
"mkdocs", "mkdocs",

View File

@ -28,7 +28,6 @@ import {
finalize, finalize,
fromEvent, fromEvent,
map, map,
startWith,
tap tap
} from "rxjs" } from "rxjs"
@ -86,18 +85,12 @@ export function mountAnnounce(
/* Mount component on subscription */ /* Mount component on subscription */
return defer(() => { return defer(() => {
const push$ = new Subject<Announce>() const push$ = new Subject<Announce>()
push$ push$.subscribe(({ hash }) => {
.pipe( el.hidden = true
startWith({ hash: __md_get<number>("__announce") })
)
.subscribe(({ hash }) => {
if (hash && hash === (__md_get<number>("__announce") ?? hash)) {
el.hidden = true
/* Persist preference in local storage */ /* Persist preference in local storage */
__md_set<number>("__announce", hash) __md_set<number>("__announce", hash)
} })
})
/* Create and return component */ /* Create and return component */
return watchAnnounce(el) return watchAnnounce(el)

View File

@ -90,7 +90,7 @@ function renderSearchDocument(
{document.tags && document.tags.map(tag => { {document.tags && document.tags.map(tag => {
const type = tags const type = tags
? tag in tags ? tag in tags
? `md-tag-icon md-tag-icon--${tags[tag]}` ? `md-tag-icon md-tag--${tags[tag]}`
: "md-tag-icon" : "md-tag-icon"
: "" : ""
return ( return (

View File

@ -23,7 +23,9 @@
<!-- Determine base classes --> <!-- Determine base classes -->
{% set class = "md-header" %} {% set class = "md-header" %}
{% if "navigation.tabs.sticky" in features %} {% if "navigation.tabs.sticky" in features %}
{% set class = class ~ " md-header--lifted" %} {% set class = class ~ " md-header--shadow md-header--lifted" %}
{% elif "navigation.tabs" not in features %}
{% set class = class ~ " md-header--shadow" %}
{% endif %} {% endif %}
<!-- Header --> <!-- Header -->

View File

@ -45,7 +45,7 @@
{% set modifier = "--" ~ type %} {% set modifier = "--" ~ type %}
{% endif %} {% endif %}
{% set _ = style.append( {% set _ = style.append(
".md-tag-icon" ~ modifier ~ "{" ~ ".md-tag" ~ modifier ~ "{" ~
"--md-tag-icon:" ~ "--md-tag-icon:" ~
"url('data:image/svg+xml;charset=utf-8," ~ "url('data:image/svg+xml;charset=utf-8," ~
icon | replace("\n", "") ~ icon | replace("\n", "") ~

View File

@ -60,7 +60,7 @@
"search.result.initializer": "אתחול חיפוש", "search.result.initializer": "אתחול חיפוש",
"search.result.placeholder": "יש להקליד כדי להתחיל לחפש", "search.result.placeholder": "יש להקליד כדי להתחיל לחפש",
"search.result.none": "אין מסמכים תואמים", "search.result.none": "אין מסמכים תואמים",
"search.result.one": " מסמך1 תואם", "search.result.one": "מסמך1 תואם",
"search.result.other": "# מסמך תואם", "search.result.other": "# מסמך תואם",
"search.result.more.one": "עוד אחד בדף הזה", "search.result.more.one": "עוד אחד בדף הזה",
"search.result.more.other": "עוד # בדף הזה", "search.result.more.other": "עוד # בדף הזה",

View File

@ -25,23 +25,54 @@
"language": "zh-Hant", "language": "zh-Hant",
"action.edit": "編輯此頁", "action.edit": "編輯此頁",
"action.skip": "跳轉至", "action.skip": "跳轉至",
"action.view": "查看源代碼",
"announce.dismiss": "不再顯示此訊息",
"blog.archive": "存檔",
"blog.categories": "分類",
"blog.categories.in": "分類在",
"blog.continue": "繼續閲讀",
"blog.draft": "草稿",
"blog.index": "回到首頁",
"blog.meta": "元數據",
"blog.references": "相關鏈接",
"clipboard.copy": "拷貝", "clipboard.copy": "拷貝",
"clipboard.copied": "已拷貝", "clipboard.copied": "已拷貝",
"consent.accept": "接受",
"consent.manage": "管理設置",
"consent.reject": "拒絕",
"footer": "頁脚",
"footer.next": "下一頁", "footer.next": "下一頁",
"footer.previous": "上一頁", "footer.previous": "上一頁",
"header": "頁首",
"meta.comments": "評論", "meta.comments": "評論",
"meta.source": "來源", "meta.source": "來源",
"search.config.lang": "ja", "search.config.lang": "ja",
"search.config.pipeline": "stemmer", "search.config.pipeline": "stemmer",
"search.config.separator": "[\\s\\-,。]+", "search.config.separator": "[\\s\\-,。]+",
"nav": "導航",
"readtime.one": "需要 1 分鐘閲讀",
"readtime.other": "需要 # 分鐘閲讀",
"rss.created": "簡易資訊聚合",
"rss.updated": "更新之部分的簡易資訊聚合",
"search": "搜尋",
"search.placeholder": "搜尋", "search.placeholder": "搜尋",
"search.share": "分享",
"search.reset": "清空",
"search.result.initializer": "正在初始化搜尋引擎", "search.result.initializer": "正在初始化搜尋引擎",
"search.result.placeholder": "鍵入以開始檢索", "search.result.placeholder": "鍵入以開始檢索",
"search.result.none": "沒有找到符合條件的結果", "search.result.none": "沒有找到符合條件的結果",
"search.result.one": "找到 1 个符合條件的結果", "search.result.one": "找到 1 个符合條件的結果",
"search.result.other": "# 個符合條件的結果", "search.result.other": "找到 # 個符合條件的結果",
"search.result.more.one": "此頁尚有 1 個符合的項目",
"search.result.more.other": "此頁尚有 # 個符合的項目",
"search.result.term.missing": "缺失",
"select.language": "選擇語言",
"select.version": "選擇版本",
"source": "前往倉庫", "source": "前往倉庫",
"source.file.contributors": "貢獻者",
"source.file.date.created": "建立日期", "source.file.date.created": "建立日期",
"source.file.date.updated": "最後更新", "source.file.date.updated": "最後更新",
"toc": "目錄" "tabs": "標籤頁",
"toc": "目錄",
"top": "回到頂部"
}[key] }}{% endmacro %} }[key] }}{% endmacro %}

View File

@ -22,23 +22,42 @@
<!-- Translations: Chinese (Taiwanese) --> <!-- Translations: Chinese (Taiwanese) -->
{% macro t(key) %}{{ { {% macro t(key) %}{{ {
"language": "zh-Hant", "language": "zh-TW",
"action.edit": "編輯此頁", "action.edit": "編輯此頁",
"action.skip": "跳轉到", "action.skip": "跳轉到",
"action.view": "查看此頁原始碼",
"announce.dismiss": "不再顯示此訊息", "announce.dismiss": "不再顯示此訊息",
"blog.archive": "封存",
"blog.categories": "分類",
"blog.categories.in": "於",
"blog.continue": "繼續閱讀",
"blog.draft": "草稿",
"blog.index": "回到主頁",
"blog.meta": "元數據",
"blog.references": "相關連結",
"clipboard.copy": "複製", "clipboard.copy": "複製",
"clipboard.copied": "已複製", "clipboard.copied": "已複製",
"consent.accept": "同意", "consent.accept": "同意",
"consent.manage": "管理設定", "consent.manage": "管理設定",
"consent.reject": "拒絕", "consent.reject": "拒絕",
"footer": "頁腳",
"footer.next": "下一頁", "footer.next": "下一頁",
"footer.previous": "上一頁", "footer.previous": "上一頁",
"header": "頁首",
"meta.comments": "留言", "meta.comments": "留言",
"meta.source": "來源", "meta.source": "來源",
"nav": "導覽列",
"readtime.one": "需要 1 分鐘閱讀時間",
"readtime.other": "需要 # 分鐘閱讀時間",
"rss.created": "RSS 訂閱",
"rss.updated": "RSS 訂閱內容已更新",
"search": "搜尋",
"search.config.lang": "ja", "search.config.lang": "ja",
"search.config.pipeline": "stemmer", "search.config.pipeline": "stemmer",
"search.config.separator": "[\\s\\- 、。,.?;]+", "search.config.separator": "[\\s\\- 、。,.?;]+",
"search.placeholder": "搜尋", "search.placeholder": "搜尋",
"search.share": "分享",
"search.reset": "清除",
"search.result.initializer": "正在初始化搜尋引擎", "search.result.initializer": "正在初始化搜尋引擎",
"search.result.placeholder": "打字進行搜尋", "search.result.placeholder": "打字進行搜尋",
"search.result.none": "沒有符合的項目", "search.result.none": "沒有符合的項目",
@ -46,8 +65,14 @@
"search.result.other": "找到 # 個符合的項目", "search.result.other": "找到 # 個符合的項目",
"search.result.more.one": "此頁尚有 1 個符合的項目", "search.result.more.one": "此頁尚有 1 個符合的項目",
"search.result.more.other": "此頁尚有 # 個符合的項目", "search.result.more.other": "此頁尚有 # 個符合的項目",
"search.result.term.missing": "缺少字詞",
"select.language": "選擇語言",
"select.version": "選擇版本",
"source": "前往倉庫", "source": "前往倉庫",
"source.file.contributors": "貢獻者",
"source.file.date.created": "建立日期", "source.file.date.created": "建立日期",
"source.file.date.updated": "最後更新", "source.file.date.updated": "最後更新",
"toc": "目錄" "tabs": "標籤",
"toc": "目錄",
"top": "回到頂端"
}[key] }}{% endmacro %} }[key] }}{% endmacro %}

View File

@ -32,7 +32,7 @@
{% if config.extra.tags %} {% if config.extra.tags %}
{% set icon = " md-tag-icon" %} {% set icon = " md-tag-icon" %}
{% if tag.type %} {% if tag.type %}
{% set icon = icon ~ " md-tag-icon--" ~ tag.type %} {% set icon = icon ~ " md-tag--" ~ tag.type %}
{% endif %} {% endif %}
{% endif %} {% endif %}

View File

@ -116,7 +116,7 @@ class TagsPlugin(BasePlugin[TagsPluginConfig]):
classes.append("md-tag-icon") classes.append("md-tag-icon")
type = self.tags_map.get(tag) type = self.tags_map.get(tag)
if type: if type:
classes.append(f"md-tag-icon--{type}") classes.append(f"md-tag--{type}")
# Render section for tag and a link to each page # Render section for tag and a link to each page
classes = " ".join(classes) classes = " ".join(classes)