Merge branch 'master' into refactor/polyfills
11
.devcontainer/devcontainer.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "Material for MkDocs - VS Code dev container",
|
||||
"image": "mcr.microsoft.com/devcontainers/typescript-node:0-18",
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/python:1": {
|
||||
"installTools": true,
|
||||
"version": "3.11"
|
||||
}
|
||||
},
|
||||
"postCreateCommand": "pip install -e . && pip install mkdocs-minify-plugin mkdocs-redirects && npm install && npm run build"
|
||||
}
|
@ -320,7 +320,6 @@
|
||||
}
|
||||
],
|
||||
"jsdoc/empty-tags": "warn",
|
||||
"jsdoc/newline-after-description": "warn",
|
||||
"jsdoc/no-bad-blocks": "warn",
|
||||
"jsdoc/no-defaults": "warn",
|
||||
"jsdoc/no-types": "warn",
|
||||
|
4
.github/ISSUE_TEMPLATE/01-report-a-bug.yml
vendored
@ -31,7 +31,7 @@ body:
|
||||
description: >-
|
||||
Please list all links to the sections of
|
||||
[our documentation](https://squidfunk.github.io/mkdocs-material) that
|
||||
are relevant to the bug, in order to show that you have consulted and
|
||||
are relevant to the bug in order to show that you have consulted and
|
||||
thoroughly read it. Additionally, list links to possibly related open
|
||||
and closed [issues](https://github.com/squidfunk/mkdocs-material/issues)
|
||||
and [discussions](https://github.com/squidfunk/mkdocs-material/discussions)
|
||||
@ -54,7 +54,7 @@ body:
|
||||
.zip file with the reproduction. We reserve the right to close issues
|
||||
without .zip files. [More](https://squidfunk.github.io/mkdocs-material/contributing/reporting-a-bug/#reproduction)
|
||||
placeholder: |-
|
||||
Drag and drop .zip file with minimal reproduction here.
|
||||
Drag and drop the .zip file with minimal reproduction here.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
|
@ -12,7 +12,7 @@ body:
|
||||
Please describe the inconsistency or issue you have found in
|
||||
[our documentation](https://squidfunk.github.io/mkdocs-material)
|
||||
or indicate where you feel there is a need for improvement. Furthermore,
|
||||
explain the severity of the issue, i.e., it's impact on you and potentially
|
||||
explain the severity of the issue, i.e., its impact on you and potentially
|
||||
other users.
|
||||
[More](https://squidfunk.github.io/mkdocs-material/contributing/reporting-a-docs-issue/#description)
|
||||
validations:
|
||||
|
14
.github/ISSUE_TEMPLATE/03-request-a-change.yml
vendored
@ -17,8 +17,8 @@ body:
|
||||
attributes:
|
||||
label: Description
|
||||
description: >-
|
||||
Please provide a detailed description of your idea in 2-3 sentences, so
|
||||
that we maintainers can fully understand what change, feature, or
|
||||
Please provide a detailed description of your idea in 2-3 sentences so
|
||||
that we maintainers can fully understand what change, feature, or the
|
||||
improvement you are proposing. Don't yet explain the benefits of your
|
||||
idea, we'll come to that. Focus on functionality.
|
||||
[More](https://squidfunk.github.io/mkdocs-material/contributing/requesting-a-change/#description)
|
||||
@ -31,7 +31,7 @@ body:
|
||||
label: Related links
|
||||
description: >-
|
||||
Please list all links to open and closed [issues](https://github.com/squidfunk/mkdocs-material/issues),
|
||||
[discussions](https://github.com/squidfunk/mkdocs-material/discussions)
|
||||
[discussions](https://github.com/squidfunk/mkdocs-material/discussions),
|
||||
or to [documentation sections](https://squidfunk.github.io/mkdocs-material)
|
||||
that are relevant to your idea.
|
||||
If you discussed your idea with the community on our
|
||||
@ -50,8 +50,8 @@ body:
|
||||
label: Use Cases
|
||||
description: >-
|
||||
Please explain how your idea will work from an author's and user's
|
||||
perspective. Elaborate how the change would positively impact not only
|
||||
you, but the community, and how it aligns with the goals and [philopsophy](https://squidfunk.github.io/mkdocs-material/philosophy/)
|
||||
perspective. Elaborate on how the change would positively impact not only
|
||||
you but the community and how it aligns with the goals and [philosophy](https://squidfunk.github.io/mkdocs-material/philosophy/)
|
||||
of the project.
|
||||
[More](https://squidfunk.github.io/mkdocs-material/contributing/requesting-a-change/#use-cases)
|
||||
validations:
|
||||
@ -87,9 +87,9 @@ body:
|
||||
I have verified that [my idea is a change request and not a bug report](https://squidfunk.github.io/mkdocs-material/contributing/requesting-a-change/#its-not-a-bug-its-a-feature).
|
||||
required: true
|
||||
- label: >-
|
||||
I have ensured that, to the best knowledge, [my idea will benefit the entire community](https://squidfunk.github.io/mkdocs-material/contributing/requesting-a-change/#benefit-for-the-community).
|
||||
I have ensured that, to the best of my knowledge, [my idea will benefit the entire community](https://squidfunk.github.io/mkdocs-material/contributing/requesting-a-change/#benefit-for-the-community).
|
||||
required: true
|
||||
- label: >-
|
||||
I have included relevant links to [the documentation](https://squidfunk.github.io/mkdocs-material), related [issues](https://github.com/squidfunk/mkdocs-material/issues)
|
||||
I have included relevant links to [the documentation](https://squidfunk.github.io/mkdocs-material), related [issues](https://github.com/squidfunk/mkdocs-material/issues),
|
||||
and [discussions](https://github.com/squidfunk/mkdocs-material/discussions) to underline the need for my idea.
|
||||
required: true
|
||||
|
17
.github/ISSUE_TEMPLATE/04-add-a-translation.yml
vendored
@ -17,7 +17,7 @@ body:
|
||||
id: translations
|
||||
attributes:
|
||||
label: Translations
|
||||
description: Please translate the labels on the right, e.g. "Copy to clipboard", etc.
|
||||
description: Please translate the labels on the right, e.g., "Copy to clipboard", etc.
|
||||
value: |-
|
||||
{% macro t(key) %}{{ {
|
||||
"language": "en",
|
||||
@ -26,6 +26,14 @@ body:
|
||||
"action.skip": "Skip to content",
|
||||
"action.view": "View source of this page",
|
||||
"announce.dismiss": "Don't show this again",
|
||||
"blog.archive": "Archive",
|
||||
"blog.categories": "Categories",
|
||||
"blog.categories.in": "in",
|
||||
"blog.continue": "Continue reading",
|
||||
"blog.draft": "Draft",
|
||||
"blog.index": "Back to index",
|
||||
"blog.meta": "Metadata",
|
||||
"blog.references": "Related links",
|
||||
"clipboard.copy": "Copy to clipboard",
|
||||
"clipboard.copied": "Copied to clipboard",
|
||||
"consent.accept": "Accept",
|
||||
@ -38,6 +46,10 @@ body:
|
||||
"meta.comments": "Comments",
|
||||
"meta.source": "Source",
|
||||
"nav": "Navigation",
|
||||
"readtime.one": "1 min read",
|
||||
"readtime.other": "# min read",
|
||||
"rss.created": "RSS feed",
|
||||
"rss.updated": "RSS feed of updated content",
|
||||
"search": "Search",
|
||||
"search.placeholder": "Search",
|
||||
"search.share": "Share",
|
||||
@ -53,6 +65,7 @@ body:
|
||||
"select.language": "Select language",
|
||||
"select.version": "Select version",
|
||||
"source": "Go to repository",
|
||||
"source.file.contributors": "Contributors",
|
||||
"source.file.date.created": "Created",
|
||||
"source.file.date.updated": "Last update",
|
||||
"tabs": "Tabs",
|
||||
@ -73,7 +86,7 @@ body:
|
||||
options:
|
||||
- label: I've checked the list of [available languages](https://squidfunk.github.io/mkdocs-material/setup/changing-the-language/#site-language) for existing translations.
|
||||
required: true
|
||||
- label: I assure that the translations are accurate to my best knowledge.
|
||||
- label: I assure that the translations are accurate to the best of my knowledge.
|
||||
required: true
|
||||
- label: >-
|
||||
__Optional__: I want to integrate this translation myself and create a
|
||||
|
236
.github/assets/logo-dark.svg
vendored
@ -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 |
5
.github/assets/logo.svg
vendored
@ -42,7 +42,6 @@
|
||||
system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial,
|
||||
sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
|
||||
letter-spacing: -1px;
|
||||
background: #FFFFFF;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
@ -62,14 +61,14 @@
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-image: linear-gradient(#1A1A1A, #5E5E5E);
|
||||
background-image: linear-gradient(#22272e, #526cfe);
|
||||
border-radius: 100%;
|
||||
animation: backdrop infinite both 10s 1s cubic-bezier(0.7, 0, 0.3, 1);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin: 24px 0 4px;
|
||||
color: #1A1A1A;
|
||||
color: #526cfe;
|
||||
font-weight: bold;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.0 KiB |
Before Width: | Height: | Size: 11 KiB |
BIN
.github/assets/sponsors/sponsor-bitcrowd.png
vendored
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
.github/assets/sponsors/sponsor-botcity.png
vendored
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
.github/assets/sponsors/sponsor-consensys.png
vendored
Before Width: | Height: | Size: 13 KiB |
BIN
.github/assets/sponsors/sponsor-elli.png
vendored
Before Width: | Height: | Size: 9.8 KiB |
BIN
.github/assets/sponsors/sponsor-evergiving.png
vendored
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
.github/assets/sponsors/sponsor-fastapi.png
vendored
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
.github/assets/sponsors/sponsor-getscreenme.png
vendored
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
.github/assets/sponsors/sponsor-hummingbot.png
vendored
Before Width: | Height: | Size: 10 KiB |
BIN
.github/assets/sponsors/sponsor-kolena.png
vendored
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
.github/assets/sponsors/sponsor-koor.png
vendored
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
.github/assets/sponsors/sponsor-posit.png
vendored
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
.github/assets/sponsors/sponsor-rstudio.png
vendored
Before Width: | Height: | Size: 7.0 KiB |
BIN
.github/assets/sponsors/sponsor-sealvault.png
vendored
Before Width: | Height: | Size: 18 KiB |
BIN
.github/assets/sponsors/sponsor-sn-technology.png
vendored
Normal file
After Width: | Height: | Size: 9.8 KiB |
125
.github/workflows/build.yml
vendored
@ -20,18 +20,23 @@
|
||||
|
||||
name: build
|
||||
on:
|
||||
- push
|
||||
- pull_request
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
release:
|
||||
types:
|
||||
- published
|
||||
|
||||
env:
|
||||
NODE_VERSION: 14.x
|
||||
NODE_VERSION: 18.x
|
||||
PYTHON_VERSION: 3.x
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build project
|
||||
npm:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
@ -61,3 +66,113 @@ jobs:
|
||||
run: |
|
||||
npm run build
|
||||
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=semver,pattern={{version}}
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=semver,pattern={{major}}
|
||||
type=ref,event=branch
|
||||
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
|
||||
env:
|
||||
REPO_FULL_NAME: '${{ github.event.repository.full_name }}'
|
||||
run: |
|
||||
docker run --rm -i -v ${PWD}:/docs ${REPO_FULL_NAME,,}:${{ steps.meta.outputs.version }} new .
|
||||
docker run --rm -i -v ${PWD}:/docs ${REPO_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 }}
|
||||
|
7
.github/workflows/documentation.yml
vendored
@ -46,12 +46,17 @@ jobs:
|
||||
with:
|
||||
python-version: ${{ env.PYTHON_VERSION }}
|
||||
|
||||
- name: Set the date environmental variable
|
||||
run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
||||
|
||||
- name: Set up build cache
|
||||
uses: actions/cache@v3
|
||||
id: cache
|
||||
with:
|
||||
key: ${{ runner.os }}-${{ hashFiles('.cache/**') }}
|
||||
key: mkdocs-material-${{ env.cache_id }}
|
||||
path: .cache
|
||||
restore-keys: |
|
||||
mkdocs-material-
|
||||
|
||||
- name: Install dependencies
|
||||
run: sudo apt-get install pngquant
|
||||
|
105
.github/workflows/publish.yml
vendored
@ -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 }}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"extends": [
|
||||
"stylelint-config-rational-order",
|
||||
"stylelint-config-recess-order",
|
||||
"stylelint-config-recommended",
|
||||
"stylelint-config-standard-scss"
|
||||
],
|
||||
@ -73,6 +73,7 @@
|
||||
],
|
||||
"linebreaks": "unix",
|
||||
"media-feature-name-no-unknown": null,
|
||||
"media-feature-range-notation": null,
|
||||
"no-descending-specificity": null,
|
||||
"no-empty-first-line": true,
|
||||
"no-unknown-animations": true,
|
||||
|
3
.vscode/settings.json
vendored
@ -17,8 +17,5 @@
|
||||
"tag:yaml.org,2002:python/name:materialx.emoji.to_svg",
|
||||
"tag:yaml.org,2002:python/name:materialx.emoji.twemoji",
|
||||
"tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format"
|
||||
],
|
||||
"cSpell.words": [
|
||||
"mkdocs"
|
||||
]
|
||||
}
|
||||
|
225
CHANGELOG
@ -1,3 +1,228 @@
|
||||
mkdocs-material-9.1.18 (2023-07-03)
|
||||
|
||||
* Updated Danish translations
|
||||
* Added support for installing user requirements in Docker image
|
||||
* Fixed #5655: Search separator with lookbehind breaks highlighting
|
||||
|
||||
mkdocs-material-9.1.17+insiders-4.36.1 (2023-06-23)
|
||||
|
||||
* Fixed #5618: Date comparison breaking for drafts in blog plugin
|
||||
|
||||
mkdocs-material-9.1.17 (2023-06-23)
|
||||
|
||||
* Fixed #5633: Code annotations with nested lists incorrectly mounted
|
||||
* Fixed #5628: Regression in new social plugin configuration scheme
|
||||
|
||||
mkdocs-material-9.1.16+insiders-4.36.0 (2023-06-15)
|
||||
|
||||
* Added support for instant prefetching to speed up slow connections
|
||||
* Improved stability of anchor link removal in built-in typeset plugin
|
||||
* Improved performance of regular expressions in typeset plugin
|
||||
* Removed unnecessary import test for cairosvg in optimize plugin
|
||||
* Fixed #5590: regular expression for anchor link removal too greedy
|
||||
|
||||
mkdocs-material-9.1.16 (2023-06-15)
|
||||
|
||||
* Updated Indonesian translations
|
||||
* Ensure scroll bar follows color scheme of operating system
|
||||
|
||||
mkdocs-material-9.1.15+insiders-4.35.3 (2023-06-01)
|
||||
|
||||
* Fixed #5579: Abbreviations in headlines filtered by typeset plugin
|
||||
|
||||
mkdocs-material-9.1.15+insiders-4.35.2 (2023-05-29)
|
||||
|
||||
* Fixed #5555: Blog plugin crashes when computing readtime for emojis
|
||||
|
||||
mkdocs-material-9.1.15 (2023-05-29)
|
||||
|
||||
* Fixed #5566: Indicate color scheme to operating system
|
||||
* Fixed #5565: Update Dockerfile to latest version of base image
|
||||
* Fixed #5554: Add additional version tags (9, 9.1) to Docker image
|
||||
* Fixed #5536: Strip tags of ARIA labels in table of contents
|
||||
|
||||
mkdocs-material-9.1.14+insiders-4.35.1 (2023-05-20)
|
||||
|
||||
* Fixed internal handling of errors in social plugin
|
||||
|
||||
mkdocs-material-9.1.14+insiders-4.35.0 (2023-05-20)
|
||||
|
||||
* Improve editing experience and stability of social plugin
|
||||
* Added support for custom layout syntax validation in social plugin
|
||||
* Added support for layer origin for easier placement in social plugin
|
||||
* Added support for in- and exclusion patterns in social plugin
|
||||
* Catch and print syntax errors in custom layouts
|
||||
|
||||
mkdocs-material-9.1.14 (2023-05-20)
|
||||
|
||||
* Updated Armenian and Greek translations
|
||||
|
||||
mkdocs-material-9.1.13+insiders-4.34.1 (2023-05-16)
|
||||
|
||||
* Disable social plugin debug mode by default on mkdocs build
|
||||
* Added warning in social plugin debug mode when font style couldn't be found
|
||||
* Set default concurrency of built-in multi-threaded plugins to CPUs - 1
|
||||
* Fixed #5521: Social plugin triggers race condition when downloading fonts
|
||||
* Fixed #5515: Social plugin crashes when concurrency is set to 1
|
||||
|
||||
mkdocs-material-9.1.13 (2023-05-16)
|
||||
|
||||
* Fixed #5517: Social plugin crashes for some fonts (e.g. Open Sans)
|
||||
|
||||
mkdocs-material-9.1.12+insiders-4.34.0 (2023-05-14)
|
||||
|
||||
* Added support for new overflow mode to auto-fit text in social plugin
|
||||
* Reduced subtle rendering bugs in (code) annotations due to subpixel rounding
|
||||
* Improved print styles for (code) annotation lists
|
||||
* Improved performance of social plugin, now 3x as fast
|
||||
* Improved interop of typeset plugin with MkDocstrings
|
||||
* Fixed logo location for variants of default template in social plugin
|
||||
* Fixed #5446: Built-in typeset plugin picks up headings in code blocks
|
||||
|
||||
mkdocs-material-9.1.12+insiders-4.33.2 (2023-05-12)
|
||||
|
||||
* Fixed #5508: Social plugin crashes trying to copy cards on Docker/Windows
|
||||
* Fixed #5507: Social plugin crashes on serve when layouts folder doesn't exist
|
||||
* Fixed #5505: Social plugin trying to resolve logo in wrong location
|
||||
* Fixed #5496: Annotations with nested lists incorrectly mounted
|
||||
* Fixed #5493: Social plugin crashes on Python 3.8
|
||||
|
||||
mkdocs-material-9.1.12 (2023-05-12)
|
||||
|
||||
* Updated Bengali (Bangla) translations
|
||||
* Fixed #5503: Docker image publish errors on uppercase characters
|
||||
* Fixed #5407: Auto-pause media when in hidden content tabs
|
||||
|
||||
mkdocs-material-9.1.11+insiders-4.33.1 (2023-05-09)
|
||||
|
||||
* Added support for SVG background images in social plugin
|
||||
|
||||
mkdocs-material-9.1.11 (2023-05-08)
|
||||
|
||||
* Fixed #5487: Social plugin crashes without options (9.1.10 regression)
|
||||
|
||||
mkdocs-material-9.1.10+insiders-4.33.0 (2023-05-08)
|
||||
|
||||
* Added support for custom layouts for social plugin
|
||||
* Added support for background images for social cards
|
||||
|
||||
mkdocs-material-9.1.10 (2023-05-08)
|
||||
|
||||
* Added cards_layout_options setting for social cards
|
||||
* Deprecated cards_color and cards_font setting for social cards
|
||||
|
||||
mkdocs-material-9.1.9 (2023-05-02)
|
||||
|
||||
* Added Telugu, Kannada and Sanskrit translations
|
||||
* Fixed #5428: Fixed margins for light/dark mode images in figures
|
||||
* Fixed #5420: Social plugin crashing for some specific Google Fonts
|
||||
* Fixed #5160: Instant loading makes code annotations jump (9.1.1 regression)
|
||||
* Fixed #4920: Social plugin not loading logo from custom icon set
|
||||
* Fixed social plugin crashing when only code font is specified
|
||||
|
||||
mkdocs-material-9.1.8 (2023-04-24)
|
||||
|
||||
* Fixed #5417: Theme breaks when palette is not defined (9.1.7 regression)
|
||||
|
||||
mkdocs-material-9.1.7+insiders-4.32.6 (2023-04-22)
|
||||
|
||||
* Fixed #5336: Interplay of blog plugin with git-revision-date-localized
|
||||
|
||||
mkdocs-material-9.1.7 (2023-04-22)
|
||||
|
||||
* Updated Persian (Farsi) and Turkish translations
|
||||
* Fixed #5401: Added missing flag to disable built-in tags plugin
|
||||
* Fixed #5206: Ensure defaults are set for primary and accent colors
|
||||
* Fixed unnecessary inclusion of palette CSS when unused
|
||||
|
||||
mkdocs-material-9.1.6+insiders-4.32.5 (2023-04-07)
|
||||
|
||||
* Fixed #5322: Navigation tabs hoist nested page icons
|
||||
|
||||
mkdocs-material-9.1.6 (2023-04-07)
|
||||
|
||||
* Updated Persian (Farsi) translations
|
||||
* Fixed #5300: Boxes in Mermaid sequence diagrams not color-abiding
|
||||
|
||||
mkdocs-material-9.1.5 (2023-03-31)
|
||||
|
||||
* Updated Lithuanian and Japanese translations
|
||||
* Updated Mermaid.js to version 9.4.3
|
||||
* Fixed #5290: Footer previous/next labels cut-off for short page titles
|
||||
|
||||
mkdocs-material-9.1.4+insiders-4.32.4 (2023-03-24)
|
||||
|
||||
* Fixed #5241: Built-in typeset plugin jams navigation for anchors in headings
|
||||
|
||||
mkdocs-material-9.1.4 (2023-03-24)
|
||||
|
||||
* Fixed #5239: Instant loading breaks anchors in details (9.1.1 regression)
|
||||
* Fixed #5211: Anchor following not working for Chinese (9.1.2 regression)
|
||||
|
||||
mkdocs-material-9.1.3 (2023-03-14)
|
||||
|
||||
* Added Kurdish (Soranî) translations
|
||||
* Updated Norwegian (Bokmål), Portuguese and Romanian translations
|
||||
* Improved compatibility with mkdocs-jupyter plugin
|
||||
* Fixed #5198: Built-in search plugin not filtering script and style tags
|
||||
* Fixed #5176: Back-to-top + instant loading not working (9.1.1 regression)
|
||||
|
||||
mkdocs-material-9.1.2+insiders-4.32.3 (2023-03-09)
|
||||
|
||||
* Fixed Docker image release workflow (9.1.0 regression)
|
||||
* Fixed #5159: Missing underline for abbreviations (9.1.0 regression)
|
||||
|
||||
mkdocs-material-9.1.2 (2023-03-09)
|
||||
|
||||
* Updated Icelandic, Korean and Swedish translations
|
||||
* Fixed #5168: Mermaid text boxes overflow (9.0.13 regression)
|
||||
* Fixed #5155: Table of contents not highlighting percent-encoded URLs
|
||||
|
||||
mkdocs-material-9.1.1 (2023-03-05)
|
||||
|
||||
* Updated Czech and Thai translations
|
||||
* Improved instant loading (scroll restoration, slow connections)
|
||||
* Fixed #5023: Instant loading not allowing to go back to initial page
|
||||
* Fixed #3797: Instant loading does not work with section anchors in Safari
|
||||
|
||||
mkdocs-material-9.1.0+insiders-4.32.2 (2023-03-02)
|
||||
|
||||
* Fixed #5127: Privacy plugin not handling large number of occurrences
|
||||
* Fixed #5126: Privacy plugin breaks when replacing specific emojis
|
||||
|
||||
mkdocs-material-9.1.0 (2023-03-02)
|
||||
|
||||
* Docker image now available for amd64, arm64 and arm/v7
|
||||
* 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)
|
||||
|
||||
* Fixed code block spans interfering with copying
|
||||
* Fixed #5077: Privacy plugin breaks image alt text encoding
|
||||
* Fixed #5079: Privacy plugin removing rel=me on external links
|
||||
|
||||
mkdocs-material-9.0.14 (2023-02-23)
|
||||
|
||||
* Fixed #5072: Rendering bug on navigation expand button in Firefox
|
||||
|
||||
mkdocs-material-9.0.13+insiders-4.32.0 (2023-02-19)
|
||||
|
||||
* Added support for custom selectors for code annotations
|
||||
* Added support for code line range selection for better sharing
|
||||
|
||||
mkdocs-material-9.0.13+insiders-4.31.0 (2023-02-18)
|
||||
|
||||
* Added support for table of contents on blog index and archive pages
|
||||
* Fixed #4512: Allow custom search field boosts (experimental)
|
||||
|
||||
mkdocs-material-9.0.13 (2023-02-18)
|
||||
|
||||
* Updated Uzbek translations
|
||||
|
@ -42,10 +42,10 @@ it is:
|
||||
|
||||
### Missing translations?
|
||||
|
||||
Material for MkDocs supports 50+ languages with the help of community
|
||||
Material for MkDocs supports 60+ languages with the help of community
|
||||
contributions. When new features are added, sometimes, new translations are
|
||||
necessary as well. It's impossible for the maintainers of the project to update
|
||||
all translations (we just don't speak 50+ languages), so we have to rely on
|
||||
all translations (we just don't speak 60+ languages), so we have to rely on
|
||||
our contributors to update translations incrementally. This process is pretty
|
||||
simple, so if you find a translation missing in your language, follow these
|
||||
guidelines:
|
||||
|
10
Dockerfile
@ -18,7 +18,7 @@
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
FROM python:3.11.0-alpine3.17
|
||||
FROM python:3.11-alpine3.18
|
||||
|
||||
# Build-time flags
|
||||
ARG WITH_PLUGINS=true
|
||||
@ -34,7 +34,7 @@ WORKDIR /tmp
|
||||
COPY material material
|
||||
COPY package.json package.json
|
||||
COPY README.md README.md
|
||||
COPY requirements.txt requirements.txt
|
||||
COPY *requirements.txt ./
|
||||
COPY pyproject.toml pyproject.toml
|
||||
|
||||
# Perform build and cleanup artifacts and caches
|
||||
@ -54,6 +54,8 @@ RUN \
|
||||
gcc \
|
||||
libffi-dev \
|
||||
musl-dev \
|
||||
&& \
|
||||
pip install --no-cache-dir --upgrade pip \
|
||||
&& \
|
||||
pip install --no-cache-dir . \
|
||||
&& \
|
||||
@ -64,6 +66,10 @@ RUN \
|
||||
"pillow>=9.0" \
|
||||
"cairosvg>=2.5"; \
|
||||
fi \
|
||||
&& \
|
||||
if [ -e user-requirements.txt ]; then \
|
||||
pip install -U -r user-requirements.txt; \
|
||||
fi \
|
||||
&& \
|
||||
apk del .build \
|
||||
&& \
|
||||
|
56
README.md
@ -1,10 +1,7 @@
|
||||
<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">
|
||||
</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 align="center">
|
||||
@ -42,7 +39,7 @@
|
||||
<p align="center">
|
||||
Write your documentation in Markdown and create a professional static site for
|
||||
your Open Source or commercial project in minutes – searchable, customizable,
|
||||
more than 50 languages, for all devices.
|
||||
more than 60 languages, for all devices.
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@ -61,9 +58,15 @@
|
||||
</p>
|
||||
|
||||
<h2></h2>
|
||||
<p id="premium-sponsors"> </p>
|
||||
<p align="center"><strong>Silver sponsors</strong></p>
|
||||
<p align="center">
|
||||
<a href="https://fastapi.tiangolo.com/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-fastapi.png" height="120"
|
||||
/></a>
|
||||
</p>
|
||||
<p> </p>
|
||||
<p id="premium-sponsors" align="center"><strong>Special thanks</strong> to our <strong>premium sponsors</strong>:</p>
|
||||
<p> </p>
|
||||
<p align="center"><strong>Bronze sponsors</strong></p>
|
||||
<p align="center">
|
||||
<a href="https://cirrus-ci.org/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-cirrus-ci.png" height="58"
|
||||
@ -71,9 +74,6 @@
|
||||
<a href="https://docs.baslerweb.com/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-basler.png" height="58"
|
||||
/></a>
|
||||
<a href="https://hummingbot.io/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-hummingbot.png" height="58"
|
||||
/></a>
|
||||
<a href="https://kx.com/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-kx.png" height="58"
|
||||
/></a>
|
||||
@ -89,11 +89,8 @@
|
||||
<a href="https://www.zenoss.com/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-zenoss.png" height="58"
|
||||
/></a>
|
||||
<a href="https://www.elli.eco/en/home" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-elli.png" height="58"
|
||||
/></a>
|
||||
<a href="https://solutions.rstudio.com" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-rstudio.png" height="58"
|
||||
<a href="https://docs.posit.co" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-posit.png" height="58"
|
||||
/></a>
|
||||
<a href="https://n8n.io" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-n8n.png" height="58"
|
||||
@ -125,15 +122,9 @@
|
||||
<a href="https://sparkfun.com/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-sparkfun.png" height="58"
|
||||
/></a>
|
||||
<a href="https://automationtechnology.de/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-automation-technology.png" height="58"
|
||||
/></a>
|
||||
<a href="https://eccenca.com/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-eccenca.png" height="58"
|
||||
/></a>
|
||||
<a href="https://sealvault.org/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-sealvault.png" height="58"
|
||||
/></a>
|
||||
<a href="https://neptune.ai/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-neptune-ai.png" height="58"
|
||||
/></a>
|
||||
@ -146,6 +137,27 @@
|
||||
<a href="https://civicactions.com/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-civic-actions.png" height="58"
|
||||
/></a>
|
||||
<a href="https://bitcrowd.net/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-bitcrowd.png" height="58"
|
||||
/></a>
|
||||
<a href="https://getscreen.me/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-getscreenme.png" height="58"
|
||||
/></a>
|
||||
<a href="https://botcity.dev/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-botcity.png" height="58"
|
||||
/></a>
|
||||
<a href="https://www.springernature.com/gp" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-sn-technology.png" height="58"
|
||||
/></a>
|
||||
<a href="https://kolena.io/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-kolena.png" height="58"
|
||||
/></a>
|
||||
<a href="https://www.evergiving.com/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-evergiving.png" height="58"
|
||||
/></a>
|
||||
<a href="https://koor.tech/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-koor.png" height="58"
|
||||
/></a>
|
||||
</p>
|
||||
<p> </p>
|
||||
|
||||
@ -251,8 +263,10 @@ For detailed installation instructions, configuration options, and a demo, visit
|
||||
[Pydantic](https://pydantic-docs.helpmanual.io/),
|
||||
[Renovate](https://docs.renovatebot.com/),
|
||||
[Traefik](https://docs.traefik.io/),
|
||||
[Trivy](https://github.com/aquasecurity/trivy)
|
||||
[Vapor](https://docs.vapor.codes/),
|
||||
[ZeroNet](https://zeronet.io/docs/),
|
||||
[WebKit](https://docs.webkit.org/),
|
||||
[WTF](https://wtfutil.com/)
|
||||
|
||||
## License
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 8.2 KiB |
BIN
docs/assets/screenshots/social-cards-accent.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
docs/assets/screenshots/social-cards-debug.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
docs/assets/screenshots/social-cards-invert.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
docs/assets/screenshots/social-cards-layer-0.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
docs/assets/screenshots/social-cards-layer-1.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
docs/assets/screenshots/social-cards-layer-2.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
docs/assets/screenshots/social-cards-layer-3.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
docs/assets/screenshots/social-cards-layer-4.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
docs/assets/screenshots/social-cards-layer-5.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
docs/assets/screenshots/social-cards-layer-background-color.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
docs/assets/screenshots/social-cards-layer-background-image.png
Normal file
After Width: | Height: | Size: 1.7 MiB |
BIN
docs/assets/screenshots/social-cards-layer-background.png
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
docs/assets/screenshots/social-cards-layer-icon-circles.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
docs/assets/screenshots/social-cards-layer-icon.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
docs/assets/screenshots/social-cards-layer-size.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
docs/assets/screenshots/social-cards-layer-typography-align.png
Normal file
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 42 KiB |
BIN
docs/assets/screenshots/social-cards-layer-typography-shrink.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
docs/assets/screenshots/social-cards-layer-typography.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
docs/assets/screenshots/social-cards-variant.png
Normal file
After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 32 KiB |
@ -119,7 +119,7 @@ are still exclusively available to sponsors as part of [Insiders]:
|
||||
- [Boosting pages in search]
|
||||
- [Brand new search plugin]
|
||||
- [Code annotations]
|
||||
- [Code annotations: anchor links]
|
||||
- Code annotations: anchor links
|
||||
- [Code annotations: strip comments]
|
||||
- [Code block titles]
|
||||
- [Code block line anchors]
|
||||
@ -167,7 +167,6 @@ __55__ times, `mkdocs-material-insiders` was shipped __72__ times.
|
||||
[Boosting pages in search]: ../../setup/setting-up-site-search.md#search-boosting
|
||||
[Brand new search plugin]: search-better-faster-smaller.md
|
||||
[Code annotations]: ../../reference/code-blocks.md#adding-annotations
|
||||
[Code annotations: anchor links]: ../../reference/code-blocks.md#anchor-links
|
||||
[Code annotations: strip comments]: ../../reference/code-blocks.md#stripping-comments
|
||||
[Code block titles]: ../../reference/code-blocks.md#adding-a-title
|
||||
[Code block line anchors]: ../../setup/extensions/python-markdown-extensions.md#anchor-linenums
|
||||
|
@ -2,6 +2,126 @@
|
||||
|
||||
## Material for MkDocs
|
||||
|
||||
### 9.1.18 <small>July 3, 2023</small> { id="9.1.18" }
|
||||
|
||||
- Updated Danish translations
|
||||
- Added support for installing user requirements in Docker image
|
||||
- Fixed #5655: Search separator with lookbehind breaks highlighting
|
||||
|
||||
### 9.1.17 <small>June 23, 2023</small> { id="9.1.17" }
|
||||
|
||||
- Fixed #5633: Code annotations with nested lists incorrectly mounted
|
||||
- Fixed #5628: Regression in new social plugin configuration scheme
|
||||
|
||||
### 9.1.16 <small>June 15, 2023</small> { id="9.1.16" }
|
||||
|
||||
- Updated Indonesian translations
|
||||
- Ensure scroll bar follows color scheme of operating system
|
||||
|
||||
### 9.1.15 <small>May 29, 2023</small> { id="9.1.15" }
|
||||
|
||||
- Fixed #5566: Indicate color scheme to operating system
|
||||
- Fixed #5565: Update `Dockerfile` to latest version of base image
|
||||
- Fixed #5554: Add additional version tags (`9`, `9.1`) to Docker image
|
||||
- Fixed #5536: Strip tags of ARIA labels in table of contents
|
||||
|
||||
### 9.1.14 <small>May 20, 2023</small> { id="9.1.14" }
|
||||
|
||||
- Updated Armenian and Greek translations
|
||||
|
||||
### 9.1.13 <small>May 16, 2023</small> { id="9.1.13" }
|
||||
|
||||
- Fixed #5517: Social plugin crashes for some fonts (e.g. Open Sans)
|
||||
|
||||
### 9.1.12 <small>May 12, 2023</small> { id="9.1.12" }
|
||||
|
||||
- Updated Bengali (Bangla) translations
|
||||
- Fixed #5503: Docker image publish errors on uppercase characters
|
||||
- Fixed #5407: Auto-pause media when in hidden content tabs
|
||||
|
||||
### 9.1.11 <small>May 8, 2023</small> { id="9.1.11" }
|
||||
|
||||
- Fixed #5487: Social plugin crashes without options (9.1.10 regression)
|
||||
|
||||
### 9.1.10 <small>May 8, 2023</small> { id="9.1.10" }
|
||||
|
||||
- Added `cards_layout_options` setting for social cards
|
||||
- Deprecated `cards_color` and `cards_font` setting for social cards
|
||||
|
||||
### 9.1.9 <small>May 2, 2023</small> { id="9.1.9" }
|
||||
|
||||
- Added Telugu, Kannada and Sanskrit translations
|
||||
- Fixed #5428: Fixed margins for light/dark mode images in figures
|
||||
- Fixed #5420: Social plugin crashing for some specific Google Fonts
|
||||
- Fixed #5160: Instant loading makes code annotations jump (9.1.1 regression)
|
||||
- Fixed #4920: Social plugin not loading logo from custom icon set
|
||||
- Fixed social plugin crashing when only code font is specified
|
||||
|
||||
### 9.1.8 <small>April 24, 2023</small> { id="9.1.8" }
|
||||
|
||||
- Fixed #5417: Theme breaks when `palette` is not defined (9.1.7 regression)
|
||||
|
||||
### 9.1.7 <small>April 22, 2023</small> { id="9.1.7" }
|
||||
|
||||
- Updated Persian (Farsi) and Turkish translations
|
||||
- Fixed #5401: Added missing flag to disable built-in tags plugin
|
||||
- Fixed #5206: Ensure defaults are set for primary and accent colors
|
||||
- Fixed unnecessary inclusion of palette CSS when unused
|
||||
|
||||
### 9.1.6 <small>April 7, 2023</small> { id="9.1.6" }
|
||||
|
||||
- Updated Persian (Farsi) translations
|
||||
- Fixed #5300: Boxes in Mermaid sequence diagrams not color-abiding
|
||||
|
||||
### 9.1.5 <small>March 31, 2023</small> { id="9.1.5" }
|
||||
|
||||
- Updated Lithuanian and Japanese translations
|
||||
- Updated Mermaid.js to version 9.4.3
|
||||
- Fixed #5290: Footer previous/next labels cut-off for short page titles
|
||||
|
||||
### 9.1.4 <small>March 24, 2023</small> { id="9.1.4" }
|
||||
|
||||
- Fixed #5239: Instant loading breaks anchors in details (9.1.1 regression)
|
||||
- Fixed #5211: Anchor following not working for Chinese (9.1.2 regression)
|
||||
|
||||
### 9.1.3 <small>March 14, 2023</small> { id="9.1.3" }
|
||||
|
||||
- Added Kurdish (Soranî) translations
|
||||
- Updated Norwegian (Bokmål), Portuguese and Romanian translations
|
||||
- Improved compatibility with `mkdocs-jupyter` plugin
|
||||
- Fixed #5198: Built-in search plugin not filtering `script` and `style` tags
|
||||
- Fixed #5176: Back-to-top + instant loading not working (9.1.1 regression)
|
||||
|
||||
### 9.1.2 <small>March 9, 2023</small> { id="9.1.2" }
|
||||
|
||||
- Updated Icelandic, Korean and Swedish translations
|
||||
- Fixed #5168: Mermaid text boxes overflow (9.0.13 regression)
|
||||
- Fixed #5155: Table of contents not highlighting percent-encoded URLs
|
||||
|
||||
### 9.1.1 <small>March 5, 2023</small> { id="9.1.1" }
|
||||
|
||||
- Updated Czech and Thai translations
|
||||
- Improved instant loading (scroll restoration, slow connections)
|
||||
- Fixed #5023: Instant loading not allowing to go back to initial page
|
||||
- Fixed #3797: Instant loading does not work with section anchors in Safari
|
||||
|
||||
### 9.1.0 <small>March 2, 2023</small> { id="9.1.0" }
|
||||
|
||||
- Docker image now available for `amd64`, `arm64` and `arm/v7`
|
||||
- Updated Chinese (Taiwanese) translations
|
||||
- Generalized tag identifier implementation
|
||||
- Fixed flickering of header shadow on load
|
||||
- Fixed occasional flickering of announcement bar
|
||||
|
||||
### 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" }
|
||||
|
||||
- Fixed #5072: Rendering bug on navigation expand button in Firefox
|
||||
|
||||
### 9.0.13 <small>February 18, 2023</small> { id="9.0.13" }
|
||||
|
||||
- Updated Uzbek translations
|
||||
|
@ -9,8 +9,8 @@ bugs, a lot of work from us maintainers is required.
|
||||
|
||||
We have invested quite a lot of time in creating better templates for our
|
||||
[issue tracker], optimizing the processes for our users to report bugs, request
|
||||
features or changes, contribute to the project or exchange with our community. This section of
|
||||
the documentation explains each process.
|
||||
features or changes, contribute to the project, or exchange with our community.
|
||||
This section of the documentation explains each process.
|
||||
|
||||
[issue tracker]: https://github.com/squidfunk/mkdocs-material/issues
|
||||
|
||||
|
@ -50,7 +50,7 @@ adjusted all partials you have overridden.
|
||||
|
||||
A handful of the features Material for MkDocs offers can only be implemented
|
||||
with customizations. If you find a bug in any of the customizations [that
|
||||
our documentation explicitly mentions], you are of course encouraged to
|
||||
our documentation explicitly mentions], you are, of course, encouraged to
|
||||
report it.
|
||||
|
||||
__Don't be shy to ask on our [discussion board] for help if you run into
|
||||
@ -74,7 +74,7 @@ problems.__
|
||||
|
||||
At this stage, we know that the problem persists in the latest version and is
|
||||
not caused by any of your customizations. However, the problem might result from
|
||||
a small typo or a syntactical error in a configuration file, e.g. `mkdocs.yml`.
|
||||
a small typo or a syntactical error in a configuration file, e.g., `mkdocs.yml`.
|
||||
|
||||
Now, before you go through the trouble of creating a bug report that is answered
|
||||
and closed right away with a link to the relevant documentation section or
|
||||
@ -167,7 +167,7 @@ relevant. Don't write about the bug here.
|
||||
|
||||
### Description
|
||||
|
||||
Now, to the bug, you want to report. Provide a clear, focused, specific, and
|
||||
Now, to the bug you want to report. Provide a clear, focused, specific, and
|
||||
concise summary of the bug you encountered. Explain why you think this is a bug
|
||||
that should be reported to Material for MkDocs, and not to one of its
|
||||
dependencies.[^3] Adhere to the following principles:
|
||||
@ -189,7 +189,7 @@ dependencies.[^3] Adhere to the following principles:
|
||||
or two sentences, perfect. Don't inflate it – maintainers and future users
|
||||
will be grateful for having to read less.
|
||||
|
||||
- __One bug at a time__ – if you encountered several unrelated bugs, please
|
||||
- __One bug at a time__ – if you encounter several unrelated bugs, please
|
||||
create separate issues for them. Don't report them in the same issue, as
|
||||
this makes attribution difficult.
|
||||
|
||||
@ -247,7 +247,7 @@ After you have created the reproduction, you should have a .zip file, ideally no
|
||||
larger than 1 MB. Just drag and drop the .zip file into this field, which will
|
||||
automatically upload it to GitHub.
|
||||
|
||||
> __Why we need this__: if an issue contains no minimal reproduction, or just
|
||||
> __Why we need this__: if an issue contains no minimal reproduction or just
|
||||
> a link to a repository with thousands of files, the maintainers would need to
|
||||
> invest a lot of time into trying to recreate the right conditions to even
|
||||
> inspect the bug, let alone fix it.
|
||||
@ -269,14 +269,14 @@ automatically upload it to GitHub.
|
||||
### Steps to reproduce
|
||||
|
||||
At this point, you provided us with enough information to understand the bug,
|
||||
and you gave us a reproduction that we can run and inspect. However, when we
|
||||
and you gave us a reproduction that we could run and inspect. However, when we
|
||||
run your reproduction, it might not be immediately apparent how we can see
|
||||
the bug in action.
|
||||
|
||||
Next, please list the specific steps we should follow when running your
|
||||
reproduction to observe the bug. Keep the steps short and concise, and make sure
|
||||
not to leave anything out. Use simple language as you would explain it to a
|
||||
five-year-old and focus on continuity.
|
||||
five-year-old, and focus on continuity.
|
||||
|
||||
> __Why we need this__: we must know how to navigate your reproduction in order
|
||||
> to observe the bug, as some bugs only occur at certain viewports or in
|
||||
@ -301,8 +301,8 @@ only relevant when the bug you are reporting does not involve a crash when
|
||||
|
||||
Thanks for following the guide and creating a high-quality and complete bug
|
||||
report – you are almost done. This section ensures that you have read this guide
|
||||
and have worked to your best knowledge to provide us with everything we need to
|
||||
know to help you.
|
||||
and have worked to the best of your knowledge to provide us with everything we
|
||||
need to know to help you.
|
||||
|
||||
__We'll take it from here.__
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Reporting a docs issue
|
||||
|
||||
In the past 7 years, our documentation has grown to more than 60 pages. With a
|
||||
site being this large, inconsistencies can occur. If you found an inconsistency
|
||||
In the past seven years, our documentation has grown to more than 60 pages. With
|
||||
a site being this large, inconsistencies can occur. If you find an inconsistency
|
||||
or see room for clarification or improvement, please submit an issue to
|
||||
our public [issue tracker] by following this guide.
|
||||
|
||||
@ -50,7 +50,7 @@ describe the severity of the issue:
|
||||
precisely explained in one or two sentences, perfect. Maintainers and
|
||||
future users will be grateful for having to read less.
|
||||
|
||||
- __One issue at a time__ – if you encountered several unrelated inconsistencies,
|
||||
- __One issue at a time__ – if you encounter several unrelated inconsistencies,
|
||||
please create separate issues for them. Don't report them in the same issue – it makes attribution difficult.
|
||||
|
||||
> __Why we need this__: in order for us to understand the problem, we need a
|
||||
@ -73,7 +73,7 @@ where possible, as it simplifies discovery.
|
||||
Now that you have provided us with the description and links to the
|
||||
documentation sections, you can help us, maintainers, and the community by
|
||||
proposing an improvement. You can sketch out rough ideas or write a concrete
|
||||
proposal. This field is optional, but very helpful.
|
||||
proposal. This field is optional but very helpful.
|
||||
|
||||
> __Why we need this__: improvement proposal can be beneficial for other users
|
||||
> who encounter the same issue, as they offer solutions before we maintainers
|
||||
@ -83,7 +83,7 @@ proposal. This field is optional, but very helpful.
|
||||
|
||||
Thanks for following the guide and creating a high-quality and complete issue
|
||||
report – you are almost done. This section ensures that you have read this guide
|
||||
and have worked to your best knowledge to provide us with every piece of
|
||||
and have worked to the best of your knowledge to provide us with every piece of
|
||||
information we need to improve our documentation.
|
||||
|
||||
__We'll take it from here.__
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Requesting a change
|
||||
|
||||
Material for MkDocs is a powerful tool to create beautiful and functional
|
||||
Material for MkDocs is a powerful tool for creating beautiful and functional
|
||||
project documentation. With more than 20,000 users, we understand that our
|
||||
project serves a wide range of use cases, which is why we have created the
|
||||
following guide.
|
||||
@ -12,7 +12,7 @@ to maintain existing functionality while constantly adding new features at the
|
||||
same time. We highly value every idea or contribution from our community, and
|
||||
we kindly ask you to take the time to read the following guidelines before
|
||||
submitting your change request in our public [issue tracker]. This will help us
|
||||
better understand the proposed change, and how it will benefit the community.
|
||||
better understand the proposed change and how it will benefit the community.
|
||||
|
||||
This guide is our best effort to explain the criteria and reasoning behind our
|
||||
decisions when evaluating change requests and considering them for
|
||||
@ -33,7 +33,7 @@ __Please find answers to the following questions before creating an issue.__
|
||||
|
||||
### It's not a bug, it's a feature
|
||||
|
||||
Change requests are intended for suggesting minor adjustments, ideas for new
|
||||
Change requests are intended to suggest minor adjustments, ideas for new
|
||||
features, or to influence the project's direction and vision. It is important
|
||||
to note that change requests are not intended for reporting bugs, as they're
|
||||
missing essential information for debugging.
|
||||
@ -65,8 +65,8 @@ that benefits a large number of users.
|
||||
|
||||
Now that you have taken the time to do the necessary preliminary work and ensure
|
||||
that your idea meets our requirements, you are invited to create a change
|
||||
request. The following guide will walk you through all necessary steps to help
|
||||
you submit a comprehensive and useful issue:
|
||||
request. The following guide will walk you through all the necessary steps to
|
||||
help you submit a comprehensive and useful issue:
|
||||
|
||||
- [Title]
|
||||
- [Context] <small>optional</small>
|
||||
@ -105,7 +105,7 @@ in which you're using Material for MkDocs, and what you _think_ might be
|
||||
relevant. Don't write about the change request here.
|
||||
|
||||
> __Why this might be helpful__: some ideas might only benefit specific
|
||||
> settings, environments or edge cases, for example, when your documentation
|
||||
> settings, environments, or edge cases, for example, when your documentation
|
||||
> contains thousands of documents. With a little context, change requests
|
||||
> can be prioritized more accurately.
|
||||
|
||||
@ -120,7 +120,7 @@ in one of its dependencies:[^1]
|
||||
our upstream dependencies, including [MkDocs], [Python Markdown],
|
||||
[Python Markdown Extensions] or third-party plugins. It's a good idea to
|
||||
think about whether your idea is beneficial to other themes, upstreaming
|
||||
change requests for bigger impact.
|
||||
change requests for a bigger impact.
|
||||
|
||||
- __Explain the <u>what</u>, not the <u>why</u>__ – don't explain
|
||||
[the benefits of your idea][Use cases] here, we're getting there.
|
||||
@ -137,7 +137,7 @@ together, please open separate change requests for each of those ideas.
|
||||
|
||||
:material-run-fast: __Stretch goal__ – if you have a customization or another
|
||||
way to add the proposed change, you can help other users by sharing it here
|
||||
before we maintainers can add it to our code base.
|
||||
before we maintainers can add it to our code base.
|
||||
|
||||
> __Why we need this__: To understand and evaluate your proposed change, we
|
||||
> need to have a clear understanding of your idea. By providing a detailed and
|
||||
@ -164,7 +164,7 @@ the link to the discussion as well.
|
||||
### Use cases
|
||||
|
||||
Explain how your change request would work from an author's and user's
|
||||
perspective – what's the expected impact and why does it not only benefit you,
|
||||
perspective – what's the expected impact, and why does it benefit not only you
|
||||
but other users? How many of them? Furthermore, would it potentially break
|
||||
existing functionality?
|
||||
|
||||
@ -198,7 +198,7 @@ it and describing how it was implemented and incorporated.
|
||||
|
||||
Thanks for following the change request guide and creating a high-quality
|
||||
change request. This section ensures that you have read this guide and have
|
||||
worked to your best knowledge to provide us with every piece of information to
|
||||
review your idea for Material for MkDocs.
|
||||
worked to the best of your knowledge to provide us with every piece of
|
||||
information to review your idea for Material for MkDocs.
|
||||
|
||||
__We'll take it from here.__
|
||||
|
@ -223,5 +223,12 @@ need for operating a database or server, as it is completely self-contained.
|
||||
The site can be hosted on [GitHub Pages], [GitLab Pages], a CDN of your choice
|
||||
or your private web space.
|
||||
|
||||
!!! note "Enterprise support"
|
||||
|
||||
If you're using Material for MkDocs in your organization and need
|
||||
assistance, e.g., to __reduce build times__, __improve performance__ or
|
||||
ensure compliance, [__get in touch__](mailto:contact@squidfunk.com)
|
||||
to discuss our __enterprise support__ offerings. We're happy to help!
|
||||
|
||||
[GitHub Pages]: publishing-your-site.md#github-pages
|
||||
[GitLab pages]: publishing-your-site.md#gitlab-pages
|
||||
|
@ -303,3 +303,10 @@ This triggers the production-level compilation and minification of all style
|
||||
sheets and JavaScript files. After the command exits, the compiled files are
|
||||
located in the `material` directory. When running `mkdocs build`, you should
|
||||
now see your changes to the original theme.
|
||||
|
||||
!!! note "Enterprise support"
|
||||
|
||||
If you're using Material for MkDocs in your organization and need
|
||||
assistance, e.g., to __reduce build times__, __improve performance__ or
|
||||
ensure compliance, [__get in touch__](mailto:contact@squidfunk.com)
|
||||
to discuss our __enterprise support__ offerings. We're happy to help!
|
||||
|
470
docs/faq/sponsoring.md
Normal file
@ -0,0 +1,470 @@
|
||||
# Sponsoring FAQs
|
||||
|
||||
Do you have questions about Material for MkDocs Insiders? We do our best to
|
||||
answer all of your questions on this page. If you can't find your question
|
||||
below, ask it on our [discussion board]!
|
||||
|
||||
[discussion board]: https://github.com/squidfunk/mkdocs-material/discussions/new/chooses
|
||||
|
||||
## General
|
||||
|
||||
[__Why is the Insiders edition offered as a subscription model?__](#insiders-subscription){ #insiders-subscription }
|
||||
|
||||
Material for MkDocs always was and will be Open Source, available for free to
|
||||
individuals and organizations. As the project grew over time, we found that
|
||||
maintaining and managing the overhead that comes with growth became more
|
||||
challenging and time-consuming.
|
||||
|
||||
In order to sustain the project and add new and useful features more frequently,
|
||||
we decided to create the [Insiders] edition, with early access to the latest and
|
||||
greatest features of Material for MkDocs. The subscription-based model of the
|
||||
Insiders edition allows us to dedicate more time and resources to the project,
|
||||
which benefits all
|
||||
users of Material for MkDocs. Once our funding goals based on monthly
|
||||
subscriptions are hit, the Insiders features of those^ funding goals are released
|
||||
to the community edition, letting everyone benefit from them.
|
||||
|
||||
Maintaining both the community and Insiders editions is an ongoing process, and
|
||||
we rely on our sponsors to support us on a monthly basis, which makes this whole
|
||||
project possible.
|
||||
|
||||
[__What features are included in the Insiders edition?__](#insiders-features){ #insiders-features }
|
||||
|
||||
The Insiders edition includes more than 20 additional features. You can find an
|
||||
overview of these features on our [Insiders page], which is updated when new
|
||||
features are added and released.
|
||||
|
||||
[Insiders]: ../insiders/index.md
|
||||
[Insiders page]: ../insiders/index.md#whats-in-it-for-me
|
||||
|
||||
[__How often is the Insiders edition updated?__](#insiders-updates){ #insiders-updates }
|
||||
|
||||
We try to keep our open issue count low, fixing known bugs quickly. Both our
|
||||
repositories, the community and Insiders edition, are constantly updated with
|
||||
bug fixes and new features.
|
||||
|
||||
## Sponsorship
|
||||
|
||||
[__Can I sponsor the project without a GitHub account?__](#sponsorship-account){ #sponsorship-account }
|
||||
|
||||
Yes. You can support Material for MkDocs by sponsoring us on [Ko-fi], regardless
|
||||
of whether you have a GitHub account or not. However, please note that Insiders
|
||||
is provided as a private repository on GitHub. If after sponsoring, you'd like to
|
||||
gain access to the repository, you'll need to have a GitHub individual or bot
|
||||
account that can be added as a collaborator. If your organization doesn't use
|
||||
GitHub or/and host its repositories on other platforms, you can mirror the
|
||||
Insiders repository in your environment once you have access.
|
||||
|
||||
[__Which sponsoring tier should I choose?__](#sponsorship-tier){ #sponsorship-tier }
|
||||
|
||||
The sponsoring tiers are divided into non-commercial and commercial tiers. If
|
||||
you are an individual or organization using Material for MkDocs for private or
|
||||
__non-commercial__ Open Source projects, you have two tiers to choose from,
|
||||
depending on the number of sites you want to build. For companies using
|
||||
Material for MkDocs, we offer three different __commercial__ tiers, from which
|
||||
you can choose depending on your requirements.
|
||||
|
||||
Also, please read what is considered [commercial use].
|
||||
|
||||
[commercial use]: #commercial-use
|
||||
|
||||
[__Why are one-time sponsorships not granted access to Insiders?__](#sponsorship-one-time){ #sponsorship-one-time }
|
||||
|
||||
Primarily due to technical reasons, that we're working on lifting in the future.
|
||||
We use GitHub webhooks to determine our current active sponsors. When you create
|
||||
or cancel your monthly subscription, GitHub sends events that we use to
|
||||
automatically add and remove collaborators.
|
||||
|
||||
Note that [$15] is the minimum amount to be granted access to Insiders.
|
||||
|
||||
[$15]: https://github.com/sponsors/squidfunk/sponsorships?tier_id=210638
|
||||
|
||||
[__How is my sponsorship contribution used to support the project?__](#sponsorship-support){ #sponsorship-support }
|
||||
|
||||
Your sponsorship contribution directly supports the development and
|
||||
maintenance of the project, by buying us maintainers time. It allows us to
|
||||
dedicate more time and resources to enhance the project's features and
|
||||
functionality. The additional funding helps us prioritize improvements and
|
||||
updates, benefiting Insiders users and the wider community. We also actively
|
||||
contribute to other upstream projects, fostering collaboration and giving
|
||||
back to the Open Source ecosystem.
|
||||
|
||||
[__Are there any limitations on the number of sponsors for a particular tier?__](#sponsorship-limitations){ #sponsorship-limitations }
|
||||
|
||||
No, there are no limitations on the number of sponsors for any tier. You can
|
||||
sponsor the project at any tier regardless of how many other sponsors are
|
||||
already there.
|
||||
|
||||
## Payment & billing
|
||||
|
||||
[__Is there a trial period for the Insiders edition?__](#insiders-trial){ #insiders-trial }
|
||||
|
||||
No, we do not offer a trial period for the Insiders edition. However, if you're
|
||||
a company and are considering sponsoring on the commercial tier, but want to
|
||||
first give the Insiders edition a try, you can sponsor on the [$15] tier with a
|
||||
personal account for non-commercial evaluation purposes.
|
||||
|
||||
Additionally, our subscription model allows you to cancel your sponsorship
|
||||
anytime. If you decide to cancel, your sponsorship will remain active until
|
||||
the end of your billing cycle.
|
||||
|
||||
[__What payment options do you accept?__](#insiders-payment){ #insiders-payment }
|
||||
|
||||
We manage all our transactions and sponsorships through [GitHub Sponsors] and
|
||||
[Ko-fi]. To become a sponsor of Material for MkDocs on GitHub, visit
|
||||
[our sponsors' page]. On there, you can choose from five different sponsorship
|
||||
tiers and pay by credit card. Please note that as of the beginning of 2023,
|
||||
[GitHub no longer supports PayPal] payments. If you wish to pay with PayPal,
|
||||
ou can find a selection of our sponsorship tiers on [Ko-fi]. Both platforms
|
||||
provide you with a payment receipt once your purchase is successful.
|
||||
|
||||
If you're a company and need assistance choosing the right payment method,
|
||||
please don't hesitate to reach out to sponsors@squidfunk.com.
|
||||
|
||||
[Ko-fi]: https://ko-fi.com/squidfunk
|
||||
[GitHub Sponsors]: https://github.com/sponsors
|
||||
[GitHub no longer supports PayPal]: https://github.blog/changelog/2023-01-23-github-sponsors-will-stop-supporting-paypal/
|
||||
[our sponsors' page]: https://github.com/sponsors/squidfunk/
|
||||
|
||||
[__Are discounts available for the Insiders edition, such as student discounts?__](#insiders-discounts){ #insiders-discounts }
|
||||
|
||||
Unfortunately, we are not able to offer any discounts for the Material for
|
||||
MkDocs Insiders program. To ensure that everyone can afford the Insiders program
|
||||
and keep the barrier as low as possible, we have set prices as low as [$15] a
|
||||
month for non-commercial use.
|
||||
|
||||
[__Do you offer free access to Insiders for Open Source projects?__](#insiders-open-source){ #insiders-open-source }
|
||||
|
||||
No, we do not offer free access to our Material for MkDocs Insiders edition.
|
||||
We understand that non-profit organizations may have limited budgets and may
|
||||
need to prioritize their spending on other projects or organizations. However,
|
||||
it's important to note that Material for MkDocs is maintained by a small team,
|
||||
investing a lot of time and resources into constantly improving this project.
|
||||
Material for MkDocs and its core features are free to the community through our
|
||||
Open Source model. Therefore, Material for MkDocs itself is already free.
|
||||
|
||||
However, we do offer an affordable sponsorship tier starting at [$15] a month,
|
||||
which is meant for individuals and non-profit organizations using Material for
|
||||
MkDocs to build 1-2 sites for non-commercial purposes. This tier provides access
|
||||
to all new features, benefiting you from our ongoing development efforts.
|
||||
|
||||
[__Is Insiders free for those who contribute to this project?__](#insiders-contributors){ #insiders-contributors }
|
||||
|
||||
Great question! We can not offer free access to "drive-by" contributors that
|
||||
only fix minor issues like typos or add new languages. These contributions are
|
||||
always welcome, but as we need to review them, they result in a higher time
|
||||
investment from our side and don't compensate for this work. However, as this
|
||||
project keeps growing, we always seek for individuals to support us. In return,
|
||||
we offer financial compensation or/and Insiders access. If you are interested
|
||||
and have experience in the technologies and paradigms listed below, please get
|
||||
in touch with us at sponsors@squidfunk.com:
|
||||
|
||||
- Deep knowledge of CSS, HTML, TypeScript
|
||||
- Experience with progressive enhancement and responsive design
|
||||
- Experience with reactive programming with RxJS
|
||||
- Solid understanding of Python, MkDocs + ecosystem
|
||||
- Solid technical writing skills
|
||||
|
||||
Additionally, we're working on a contributor program that will reward
|
||||
contributors that engage in the community by answering questions and helping
|
||||
users with access to Insiders.
|
||||
|
||||
[__How can I set my billing to monthly or yearly?__](#insiders-billing-cycle){ #insiders-billing-cycle }
|
||||
|
||||
You can sponsor Material for MkDocs on a monthly or yearly basis. Depending on
|
||||
your billing cycle you automatically become a monthly or yearly sponsor. Your
|
||||
[billing cycle] is an account-level setting that you can easily change in your
|
||||
account. If, for some reason, you cannot make this change, you can create a
|
||||
dedicated bot account with a yearly billing cycle on GitHub, which you only use
|
||||
for sponsoring (some sponsors already do that). If you have any problems or
|
||||
further questions, please contact us at sponsors@squidfunk.com.
|
||||
|
||||
[billing cycle]: https://docs.github.com/en/github/setting-up-and-managing-billing-and-payments-on-github/changing-the-duration-of-your-billing-cycle
|
||||
|
||||
[__Can I get an invoice for my sponsorship payment?__](#insiders-invoice){ #insiders-invoice}
|
||||
|
||||
Right now, we can't provide you with an invoice for your sponsoring transaction,
|
||||
as [GitHub Sponsors] handles all transactions for us. However, both payment
|
||||
platforms, [GitHub] and [Ko-Fi], automatically send you a payment receipt
|
||||
via mail once the sponsorship is active.
|
||||
|
||||
Furthermore, we are working on a solution to optimize access management and more
|
||||
features. If you are interested in this, please get in touch with us via mail at
|
||||
sponsors@squidfunk.com or turn on all notifications for MkDocs, and we will
|
||||
reach out as soon as we are live.
|
||||
|
||||
[GitHub]: https://github.com/sponsors/squidfunk/
|
||||
|
||||
[__Can I switch between different sponsoring tiers?__](#insiders-switch-tiers){ #insiders-switch-tiers }
|
||||
|
||||
Yes, you can switch between different sponsoring tiers at any time. Simply go
|
||||
to the [GitHub Sponsors] page and change your sponsoring tier. Once you make
|
||||
that change, you will immediately change to the new tier.
|
||||
|
||||
If you change to a higher tier, the amount will be prorated according to your
|
||||
billing cycle.
|
||||
|
||||
[__Can I sponsor the project for a specific feature or development goal?__](#insiders-goals){ #insiders-goals }
|
||||
|
||||
While sponsoring specific goals directly is not possible, our sponsoring goals
|
||||
are connected to specific features or development goals aligned with the
|
||||
project's roadmap. You can find an [overview of these sponsoring goals] and their
|
||||
associated features on our website. Insider users have early access to all
|
||||
already developed features, including those associated with higher funding goals
|
||||
that will be reached at a later stage. If you're interested in accessing these
|
||||
features, becoming a sponsor is the way to go. If you have a feature in mind
|
||||
that you would like to see on the list, we encourage you to
|
||||
[initiate a new discussion] to evaluate it with others.
|
||||
|
||||
[overview of these sponsoring goals]: ../insiders/index.md#goals
|
||||
[initiate a new discussion]: https://github.com/squidfunk/mkdocs-material/discussions/new/chooses
|
||||
|
||||
[__What happens if I reach my sponsoring limit for my current tier?__](#insiders-limit){ #insiders-limit }
|
||||
|
||||
If you extend the number of sites that are in your current sponsoring limit,
|
||||
please [upgrade your sponsorship] to a higher tier to continue using the
|
||||
Insiders version and build more sites. The change will be effective immediately.
|
||||
|
||||
[upgrade your sponsorship]: https://docs.github.com/en/billing/managing-billing-for-github-sponsors/upgrading-a-sponsorship
|
||||
|
||||
[__Do you offer refunds for sponsoring payments?__](#insiders-refunds){ #insiders-refunds }
|
||||
|
||||
Unfortunately, we cannot offer any refund for sponsorship payments.
|
||||
[GitHub Sponsors] and [Ko-Fi] manage all sponsoring transactions. Because of
|
||||
that, we do not have any insights into the details of the funds and cannot access
|
||||
them. If you have any payment issues, please get in touch with the GitHub
|
||||
or Ko-Fi support team, as they can help you.
|
||||
|
||||
## Access management
|
||||
|
||||
[__How do I gain access to the private Insiders repository?__](#access-account){ #access-account }
|
||||
|
||||
If you sponsored with your __individual account__, you should have received an
|
||||
email invitation to the private Material for MkDocs Insiders repository right
|
||||
after you initiated your sponsorship. Simply accept the invitation within seven
|
||||
days to gain access.
|
||||
|
||||
If you sponsored using an __organization account__, please note we need
|
||||
an individual account that we can list as a collaborator of the private Insiders
|
||||
repository. After you initiate your sponsorship, please email us at
|
||||
sponsors@squidfunk.com with the name of the individual or bot account. Once you
|
||||
provide us with this information, we will add the account as a collaborator, and
|
||||
after you accept the invitation, you will gain access to the repository.
|
||||
|
||||
If you have yet to receive the email or the invitation link has expired, please
|
||||
contact us, the maintainers, at sponsors@squidfunk.com. We're working on a
|
||||
solution that will allow you to manage collaborator status yourself.
|
||||
|
||||
[__Why can't our whole organization get access to Insiders?__](#access-organization){ #access-organization }
|
||||
|
||||
Currently, it is not possible to grant access to an organizational account, as
|
||||
GitHub only allows for adding individual user accounts. We are working on a
|
||||
solution ourselves to simplify access for organizations. For now, to ensure that
|
||||
access is not tied to a particular individual, we recommend creating a bot
|
||||
account, i.e., a GitHub account that does not belong to a specific individual
|
||||
but is listed as the owner of the organizational account and using this account
|
||||
for sponsorship.
|
||||
|
||||
[__Do I need to fork the repository to use it?__](#access-fork){ #access-fork }
|
||||
|
||||
It depends. If you are using the Insiders edition as an individual, you can work
|
||||
directly with the private repository, as you do not need to share the Insiders
|
||||
features with others. If you are working with a team, it is best to create a
|
||||
private fork using the individual account you listed as a collaborator of
|
||||
Material for MkDocs to grant access to all members of your organization to
|
||||
your fork.
|
||||
|
||||
[__Can I share my Insiders access with others?__](#access-share){ #access-share }
|
||||
|
||||
At the moment, it is not possible to directly share your collaborator status
|
||||
for the private Insiders repository with other accounts. However, if you are
|
||||
working with a team and would like them to access Insiders, you can share the
|
||||
Insiders repository by utilizing options such as [cloning], [forking], or
|
||||
[mirroring]. By doing so, you can start collaborating with your team members on
|
||||
the new repository you have shared. This way, you can collectively benefit
|
||||
from the Insiders features and work together on the project.
|
||||
|
||||
[cloning]: https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository
|
||||
[forking]: https://docs.github.com/en/get-started/quickstart/fork-a-repo
|
||||
[mirroring]: https://docs.github.com/en/repositories/creating-and-managing-repositories/duplicating-a-repository
|
||||
|
||||
|
||||
## Runtime & cancellation
|
||||
|
||||
[__How long is my sponsorship valid?__](#sponsorship-runtime){ #sponsorship-runtime }
|
||||
|
||||
Your sponsorship is valid for as long as your monthly or yearly subscription
|
||||
is valid. If you choose to cancel your sponsorship, you will lose access to
|
||||
the Insiders edition once your cancelation is active and will be automatically
|
||||
removed by GitHub as a collaborator from the private repository.
|
||||
|
||||
[__How do I cancel my sponsorship?__](#sponsorship-cancellation){ #sponsorship-cancellation }
|
||||
|
||||
To cancel your sponsorship, follow the [step-by-step guide] provided by GitHub.
|
||||
If you sponsored using an organizational account, please ensure that you cancel
|
||||
your sponsorship using the same organizational account rather than your
|
||||
individual account.
|
||||
|
||||
[step-by-step guide]: https://docs.github.com/en/billing/managing-billing-for-github-sponsors/downgrading-a-sponsorship
|
||||
|
||||
[__What happens when I cancel my sponsorship?__](#sponsorship-cancellation-effective){ #sponsorship-cancellation-effective }
|
||||
|
||||
If you choose to cancel your subscription to Insiders, you will be
|
||||
automatically removed by GitHub as a collaborator on the day your cancellation is
|
||||
effective. From that day on, you will no longer receive future updates. However,
|
||||
you are __welcome to continue using the latest version__ that was available to
|
||||
you at the time of your cancellation for as long as you like.
|
||||
|
||||
Please note that [GitHub deletes private forks], so you may want to take steps to ensure
|
||||
that you have a backup of the software if necessary and use the locally installed version.
|
||||
|
||||
[GitHub deletes private forks]: https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-access-to-your-personal-repositories/removing-a-collaborator-from-a-personal-repository#deleting-forks-of-private-repositories
|
||||
|
||||
## Licensing
|
||||
|
||||
[__What constitutes commercial use of the Insiders version?__](#commercial-use){ #commercial-use }
|
||||
|
||||
Commercial use refers to any use of the software for a business or for-profit
|
||||
purpose. This includes any use by a corporation or other organization, whether
|
||||
or not they generate revenue directly from the software. We offer different
|
||||
pricing tiers for commercial use, each tailored to the needs of different
|
||||
businesses. It's important to note that internal use of the software within your
|
||||
organization is also considered commercial use, as with all commercial software.
|
||||
|
||||
[__What constitutes non-commercial use of the Insiders version?__](#non-commercial-use){ #non-commercial-use }
|
||||
|
||||
Non-commercial use of our Material for MkDocs refers to private use. This
|
||||
includes individuals using the Insiders edition for private or purely
|
||||
non-commercial Open Source projects. We offer two different tiers for
|
||||
non-commercial use, depending on the number of sites you want to build.
|
||||
|
||||
[__What is your fair use policy?__](#fair-use-policy){ #fair-use-policy }
|
||||
|
||||
Our fair use policy includes the following guidelines:
|
||||
|
||||
- Please refrain from __distributing the source code__ of Insiders. While you
|
||||
may use the software for public, private, or commercial projects and may
|
||||
privately fork or mirror it, we ask that you keep the source code private. This
|
||||
is important to our sponsorware strategy, which helps us fund ongoing
|
||||
development and support of the software. If this guidelines is violated,
|
||||
everybody loses, as it will reduce the time of us maintainers we can set aside
|
||||
to push this project forward.
|
||||
|
||||
- As our sponsoring tiers are based on the number of sites you want to build,
|
||||
please make sure to [upgrade your sponsorship] once your current sponsoring tier
|
||||
limit has been reached.
|
||||
|
||||
[__Does the Insiders version have a different license?__](#insiders-license){ #insiders-license }
|
||||
|
||||
No. Whether you're an individual or a company, you may use Material for
|
||||
MkDocs Insiders precisely under the same terms as Material for MkDocs, which are
|
||||
given by the [MIT license].
|
||||
|
||||
[MIT license]: ../license.md
|
||||
|
||||
[__Can outside collaborators build and run the documentation locally without access to Insiders?__](#insiders-outside-collaborators){ #insiders-outside-collaborators }
|
||||
|
||||
Yes. Insiders is compatible with Material for MkDocs. Almost all new features
|
||||
and configuration options are either backward-compatible or implemented behind
|
||||
feature flags. When working with outside collaborators, changing the general
|
||||
appearance of your site should be optional. Most Insiders features enhance the
|
||||
overall experience, e.g., by adding icons to pages or providing a feedback
|
||||
widget. While these features add value for your site's users, they should be
|
||||
optional for previewing when making changes to content. Currently, the only
|
||||
content-related features in Insiders that non-Insiders users can't properly
|
||||
preview are [Annotations] and [Card grids].
|
||||
|
||||
This means that outside collaborators can build the documentation locally with
|
||||
Material for MkDocs, and when they push their changes, your CI pipeline will
|
||||
build it with Insiders. When using built-in plugins exclusive to Insiders, it's
|
||||
recommended to split configuration into a base `mkdocs.yml` and one with plugin
|
||||
overrides via [configuration inheritance].
|
||||
|
||||
See the [getting started guide] for more information.
|
||||
|
||||
[configuration inheritance]: https://www.mkdocs.org/user-guide/configuration/#configuration-inheritance
|
||||
[getting started guide]: ../insiders/getting-started.md#caveats
|
||||
[Annotations]: ../reference/annotations.md?h=anno#annotations
|
||||
[Card grids]: ../reference/grids.md?h=grids#using-card-grids
|
||||
|
||||
|
||||
## Support
|
||||
|
||||
[__How can I contact support if I have questions about becoming a sponsor?__ ](#support-contact){ #support-contact }
|
||||
|
||||
If you have any questions and would like to contact us before starting your
|
||||
sponsorship, we are happy to answer all your non-technical questions about the
|
||||
Insiders program via email at sponsors@squidfunk.com.
|
||||
|
||||
All technical questions should be asked openly on our [discussion board].
|
||||
|
||||
[discussion board]: https://github.com/squidfunk/mkdocs-material/discussions
|
||||
|
||||
[__Is additional support available for Material for MkDocs Insiders users?__](#support-additional){ #support-additional }
|
||||
|
||||
Yes, we provide non-technical support related to sponsoring at
|
||||
sponsors@squidfunk.com. For technical questions, please submit an issue openly
|
||||
on our [issue tracker] or start a discussion on our [discussion board]. Issues
|
||||
and discussions from our organizational sponsors, sponsoring on
|
||||
__The Organization__ tier or higher will be prioritized.[^1]
|
||||
|
||||
[^1]:
|
||||
Priority support means we will prioritize your issue, meaning we will look
|
||||
into it and do our best to solve your issue asap. However, the prioritized bug
|
||||
support does not mean that we can solve your issue before any others since
|
||||
some issues might take more time to solve.
|
||||
|
||||
[issue tracker]: https://github.com/squidfunk/mkdocs-material/issues
|
||||
|
||||
[__How can I display my logo on the list of premium sponsors?__](#sponsorship-logo-placement){ #sponsorship-logo-placement }
|
||||
|
||||
If your sponsorship tier includes logo placement, and you would like us to
|
||||
display your logo in the [list of premium sponsors] and have it linked to your
|
||||
site, please contact us via mail. Simply send us a horizontal SVG or PNG version
|
||||
of your logo making sure it displays the name of your company and the logo to
|
||||
sponsors@squidfunk.com.
|
||||
|
||||
[list of premium sponsors]: https://github.com/squidfunk/mkdocs-material#user-content-premium-sponsors
|
||||
|
||||
[__Is logo placement optional?__](#sponsorship-logo-placement-optional){ #sponsorship-logo-placement-optional }
|
||||
|
||||
Yes, all of our commercial benefits, such as logo placement and backlinks, are
|
||||
optional and can be opted in or out at any time. You can keep your sponsorship
|
||||
completely private.
|
||||
|
||||
[__How can I report a bug in the Insiders version?__](#insiders-bugs){ #insiders-bugs }
|
||||
|
||||
If you encounter a bug in the Insiders edition, we kindly request that you
|
||||
report it on our [issue tracker] in the public community repository. When
|
||||
submitting the bug report, please ensure that you do not include any private
|
||||
Insiders' source code, as we want to uphold our fair use policy.
|
||||
|
||||
|
||||
## Privacy
|
||||
|
||||
[__Will you sign an NDA for sponsorships?__](#nda){ #nda }
|
||||
|
||||
Unfortunately, we cannot sign any NDA or vendor agreement form. As a small team
|
||||
working on Material for MkDocs, we have limited resources and cannot review
|
||||
and sign agreements.
|
||||
|
||||
[__Can I sponsor privately?__](#sponsorship-private){ #sponsorship-private }
|
||||
|
||||
Yes, you can. GitHub gives you the option to set your sponsorship to [private]
|
||||
when you set up your sponsorship. Additionally, we have a recommended workflow
|
||||
for you: We suggest you create a new GitHub bot account. This bot account should
|
||||
not be tied to a particular individual and should be privately listed as an
|
||||
owner of your GitHub organization. This account can then be used to sponsor
|
||||
Material for MkDocs privately. As a bot account, it will automatically be listed
|
||||
as a collaborator of the private Insiders repository. You can clone, fork, or
|
||||
mirror using this account. All information will be kept confidential; only the
|
||||
bot account and us maintainers will have insights into his sponsorship.
|
||||
|
||||
[private]: https://docs.github.com/en/sponsors/sponsoring-open-source-contributors/managing-your-sponsorship#managing-the-privacy-setting-for-your-sponsorship
|
||||
|
||||
[__Are there any geographical restrictions on becoming a sponsor?__](#sponsorship-geo){ #sponsorship-geo }
|
||||
|
||||
No, there are no geographical restrictions for becoming a sponsor. We welcome
|
||||
sponsorships from individuals and organizations worldwide. As long as your
|
||||
credit card is valid and accepted by GitHub or Ko-Fi, you are eligible to become
|
||||
a sponsor and support the project, regardless of your location.
|
@ -59,6 +59,15 @@ install those packages separately.
|
||||
|
||||
---
|
||||
|
||||
:fontawesome-brands-youtube:{ style="color: #EE0F0F" }
|
||||
__[How to set up Material for MkDocs]__ by @james-willett – :octicons-clock-24:
|
||||
15m – Learn how to create and host a documentation site using Material for
|
||||
MkDocs on GitHub Pages in a step-by-step guide.
|
||||
|
||||
[How to set up Material for MkDocs]: https://www.youtube.com/watch?v=Q-YA_dA8C20
|
||||
|
||||
---
|
||||
|
||||
__Tip__: If you don't have prior experience with Python, we recommend reading
|
||||
[Using Python's pip to Manage Your Projects' Dependencies], which is a really
|
||||
good introduction on the mechanics of Python package management and helps you
|
||||
@ -108,11 +117,12 @@ The following plugins are bundled with the Docker image:
|
||||
|
||||
Material for MkDocs only bundles selected plugins in order to keep the size
|
||||
of the official image small. If the plugin you want to use is not included,
|
||||
create a new `Dockerfile` and extend the official Docker image:
|
||||
create a `user-requirements.txt` file in the repository root with the packages
|
||||
you want to install additionally, e.g.:
|
||||
|
||||
``` Dockerfile
|
||||
FROM squidfunk/mkdocs-material
|
||||
RUN pip install ...
|
||||
``` txt title="user-requirements.txt"
|
||||
mkdocs-macros-plugin==0.7.0
|
||||
mkdocs-glightbox>=0.3.1
|
||||
```
|
||||
|
||||
Next, you can build the image with the following command:
|
||||
@ -121,20 +131,8 @@ The following plugins are bundled with the Docker image:
|
||||
docker build -t squidfunk/mkdocs-material .
|
||||
```
|
||||
|
||||
The new image can be used exactly like the official image.
|
||||
|
||||
!!! info ":material-apple: Apple Silicon (M1) and :fontawesome-brands-raspberry-pi: Raspberry Pi"
|
||||
|
||||
The official Docker image is only available for `linux/amd64`. We recommend
|
||||
the [third-party image] by @afritzler if you want to run Material for MkDocs
|
||||
via Docker on `arm64` or `armv7`, as it is automatically built on every
|
||||
release:
|
||||
|
||||
```
|
||||
docker pull ghcr.io/afritzler/mkdocs-material
|
||||
```
|
||||
|
||||
[third-party image]: https://github.com/afritzler/mkdocs-material
|
||||
The new image will have additional packages installed and can be used
|
||||
exactly like the official image.
|
||||
|
||||
### with git
|
||||
|
||||
@ -153,4 +151,11 @@ from `git`, you must install all required dependencies with:
|
||||
pip install -e mkdocs-material
|
||||
```
|
||||
|
||||
!!! note "Enterprise support"
|
||||
|
||||
If you're using Material for MkDocs in your organization and need
|
||||
assistance, e.g., to __reduce build times__, __improve performance__ or
|
||||
ensure compliance, [__get in touch__](mailto:contact@squidfunk.com)
|
||||
to discuss our __enterprise support__ offerings. We're happy to help!
|
||||
|
||||
[GitHub]: https://github.com/squidfunk/mkdocs-material
|
||||
|
@ -22,12 +22,27 @@ just delete and recreate the environment. It's trivial to set up:
|
||||
|
||||
- Activate the environment with:
|
||||
|
||||
``` sh
|
||||
. venv/bin/activate # (1)!
|
||||
```
|
||||
=== ":material-apple: macOS"
|
||||
|
||||
1. Your terminal should now print `(venv)` before the prompt, which is
|
||||
how you know that you are inside an environment.
|
||||
``` sh
|
||||
. venv/bin/activate
|
||||
```
|
||||
|
||||
=== ":fontawesome-brands-windows: Windows"
|
||||
|
||||
``` sh
|
||||
. venv/Scripts/activate
|
||||
```
|
||||
|
||||
=== ":material-linux: Linux"
|
||||
|
||||
``` sh
|
||||
. venv/bin/activate
|
||||
```
|
||||
|
||||
|
||||
Your terminal should now print `(venv)` before the prompt, which is how you
|
||||
know that you are inside the virtual environment that you just created.
|
||||
|
||||
- Exit the environment with:
|
||||
|
||||
|
@ -2,6 +2,111 @@
|
||||
|
||||
## Material for MkDocs Insiders
|
||||
|
||||
### 4.36.1 <small>June 23, 2023</small> { id="4.36.1" }
|
||||
|
||||
- Fixed #5618: Date comparison breaking for drafts in blog plugin
|
||||
|
||||
### 4.36.0 <small>June 15, 2023</small> { id="4.36.0" }
|
||||
|
||||
- Added support for instant prefetching to speed up slow connections
|
||||
- Improved stability of anchor link removal in built-in typeset plugin
|
||||
- Improved performance of regular expressions in typeset plugin
|
||||
- Removed unnecessary import test for `cairosvg` in optimize plugin
|
||||
- Fixed #5590: Regular expression for anchor link removal too greedy
|
||||
|
||||
### 4.35.3 <small>June 1, 2023</small> { id="4.35.3" }
|
||||
|
||||
- Fixed #5579: Abbreviations in headlines filtered by typeset plugin
|
||||
|
||||
### 4.35.2 <small>May 29, 2023</small> { id="4.35.2" }
|
||||
|
||||
- Fixed #5555: Blog plugin crashes when computing readtime for emojis
|
||||
|
||||
### 4.35.1 <small>May 20, 2023</small> { id="4.35.1" }
|
||||
|
||||
- Fixed internal handling of errors in social plugin
|
||||
|
||||
### 4.35.0 <small>May 20, 2023</small> { id="4.35.0" }
|
||||
|
||||
- Improve editing experience and stability of social plugin
|
||||
- Added support for custom layout syntax validation in social plugin
|
||||
- Added support for layer origin for easier placement in social plugin
|
||||
- Added support for in- and exclusion patterns in social plugin
|
||||
- Catch and print syntax errors in custom layouts
|
||||
|
||||
### 4.34.1 <small>May 16, 2023</small> { id="4.34.1" }
|
||||
|
||||
- Disable social plugin debug mode by default on mkdocs build
|
||||
- Added warning in social plugin debug mode when font style couldn't be found
|
||||
- Set default concurrency of built-in multi-threaded plugins to CPUs - 1
|
||||
- Fixed #5521: Social plugin triggers race condition when downloading fonts
|
||||
- Fixed #5515: Social plugin crashes when concurrency is set to 1
|
||||
|
||||
### 4.34.0 <small>May 14, 2023</small> { id="4.34.0" }
|
||||
|
||||
- Added support for new overflow mode to auto-fit text in social plugin
|
||||
- Reduced subtle rendering bugs in (code) annotations due to subpixel rounding
|
||||
- Improved print styles for (code) annotation lists
|
||||
- Improved performance of social plugin, now 3x as fast
|
||||
- Improved interop of typeset plugin with MkDocstrings
|
||||
- Fixed logo location for variants of default template in social plugin
|
||||
- Fixed #5446: Built-in typeset plugin picks up headings in code blocks
|
||||
|
||||
### 4.33.2 <small>May 12, 2023</small> { id="4.33.2" }
|
||||
|
||||
- Fixed #5508: Social plugin crashes trying to copy cards on Docker/Windows
|
||||
- Fixed #5507: Social plugin crashes on serve when layouts folder doesn't exist
|
||||
- Fixed #5505: Social plugin trying to resolve logo in wrong location
|
||||
- Fixed #5496: Annotations with nested lists incorrectly mounted
|
||||
- Fixed #5493: Social plugin crashes on Python 3.8
|
||||
|
||||
### 4.33.1 <small>May 9, 2023</small> { id="4.33.1" }
|
||||
|
||||
- Added support for SVG background images in social plugin
|
||||
|
||||
### 4.33.0 <small>May 8, 2023</small> { id="4.33.0" }
|
||||
|
||||
- Added support for custom layouts for social plugin
|
||||
- Added support for background images for social cards
|
||||
|
||||
### 4.32.6 <small>April 22, 2023</small> { id="4.32.6" }
|
||||
|
||||
- Fixed #5336: Interplay of blog plugin with git-revision-date-localized
|
||||
|
||||
### 4.32.5 <small>April 7, 2023</small> { id="4.32.5" }
|
||||
|
||||
- Fixed #5322: Navigation tabs hoist nested page icons
|
||||
|
||||
### 4.32.4 <small>March 24, 2023</small> { id="4.32.4" }
|
||||
|
||||
- Fixed #5241: Built-in typeset plugin jams navigation for anchors in headings
|
||||
|
||||
### 4.32.3 <small>March 9, 2023</small> { id="4.32.3" }
|
||||
|
||||
- Fixed Docker image release workflow (9.1.0 regression)
|
||||
- Fixed #5159: Missing underline for abbreviations (9.1.0 regression)
|
||||
|
||||
### 4.32.2 <small>February 23, 2023</small> { id="4.32.2" }
|
||||
|
||||
- Fixed #5127: Privacy plugin not handling large number of occurrences
|
||||
- Fixed #5126: Privacy plugin breaks when replacing specific emojis
|
||||
|
||||
### 4.32.1 <small>February 23, 2023</small> { id="4.32.1" }
|
||||
|
||||
- Fixed code block spans interfering with copying
|
||||
- Fixed #5077: Privacy plugin breaks image `alt` text encoding
|
||||
- Fixed #5079: Privacy plugin removing `rel=me` on external links
|
||||
|
||||
### 4.32.0 <small>February 19, 2023</small> { id="4.32.0" }
|
||||
|
||||
- Added support for custom selectors for code annotations
|
||||
- Added support for code line range selection for better sharing
|
||||
|
||||
### 4.31.0 <small>February 18, 2023</small> { id="4.31.0" }
|
||||
|
||||
- Added support for table of contents on blog index and archive pages
|
||||
- Fixed #4512: Allow custom search field boosts (experimental)
|
||||
|
||||
### 4.30.2 <small>February 13, 2023</small> { id="4.30.2" }
|
||||
|
||||
- Fixed privacy plugin excludes not working (4.30.0 regression)
|
||||
|
@ -79,6 +79,9 @@ docker login -u ${GH_USERNAME} -p ${GHCR_TOKEN} ghcr.io
|
||||
docker pull ghcr.io/${GH_USERNAME}/mkdocs-material-insiders
|
||||
```
|
||||
|
||||
Should you wish to add additional plugins to the insiders container image, follow the steps
|
||||
outlined in the [Getting Started guide](../getting-started.md#with-docker).
|
||||
|
||||
[^2]:
|
||||
Earlier, Insiders provided a dedicated Docker image which was available to
|
||||
all sponsors. On March 21, 2021, the image was deprecated for the reasons
|
||||
|
@ -88,14 +88,19 @@ a handful of them, [thanks to our awesome sponsors]!
|
||||
## What's in it for me?
|
||||
|
||||
The moment you [become a sponsor][how to become a sponsor], you'll get __immediate
|
||||
access to 23 additional features__ that you can start using right away, and
|
||||
access to 28 additional features__ that you can __start using now__, and
|
||||
which are currently exclusively available to sponsors:
|
||||
|
||||
<div class="mdx-columns" markdown>
|
||||
|
||||
- [x] [Privacy plugin: optimization support] :material-alert-decagram:{ .mdx-pulse title="Added on February 6, 2023" }
|
||||
- [x] [Optimize plugin] :material-alert-decagram:{ .mdx-pulse title="Added on January 21, 2023" }
|
||||
- [x] [Navigation path] (Breadcrumbs) :material-alert-decagram:{ .mdx-pulse title="Added on January 14, 2023" }
|
||||
- [x] [Instant prefetching] :material-alert-decagram:{ .mdx-pulse title="Added on June 15, 2023" }
|
||||
- [x] [Social plugin: custom layouts] :material-alert-decagram:{ .mdx-pulse title="Added on May 8, 2023" }
|
||||
- [x] [Social plugin: background images] :material-alert-decagram:{ .mdx-pulse title="Added on May 8, 2023" }
|
||||
- [x] [Code range selection]
|
||||
- [x] [Code annotations: custom selectors]
|
||||
- [x] [Privacy plugin: optimization support]
|
||||
- [x] [Optimize plugin]
|
||||
- [x] [Navigation path] (Breadcrumbs)
|
||||
- [x] [Typeset plugin]
|
||||
- [x] [Privacy plugin: external links]
|
||||
- [x] [Navigation subtitles]
|
||||
@ -163,18 +168,20 @@ You can cancel your sponsorship anytime.[^5]
|
||||
|
||||
<div class="mdx-premium" markdown>
|
||||
|
||||
**Special thanks** to our **premium sponsors**:
|
||||
**Silver sponsors**:
|
||||
|
||||
[![FastAPI]{ style="height: 120px" }](https://fastapi.tiangolo.com/){ target=_blank title="FastAPI" }
|
||||
|
||||
**Bronze sponsors**:
|
||||
|
||||
[![Cirrus CI]](https://cirrus-ci.org/){ target=_blank title="Cirrus CI" }
|
||||
[![Basler]](https://docs.baslerweb.com/){ target=_blank title="Basler" }
|
||||
[![Hummingbot]](https://hummingbot.io/){ target=_blank title="Hummingbot" }
|
||||
[![KX]](https://kx.com/){ target=_blank title="KX Systems" }
|
||||
[![Manticore Games]](https://www.manticoregames.com/){ target=_blank title="Manticore Games" }
|
||||
[![Prefect]](https://orion-docs.prefect.io/){ target=_blank title="Prefect" }
|
||||
[![Datadog]](https://datadoghq.com/){ target=_blank title="Datadog" }
|
||||
[![Zenoss]](https://zenoss.com/){ target=_blank title="Zenoss" }
|
||||
[![Elli]](https://www.elli.eco/en/home){ target=_blank title="Elli - A Brand of the Volkswagen Group" }
|
||||
[![RStudio]](https://solutions.rstudio.com){ target=_blank title="RStudio" }
|
||||
[![Posit]](https://docs.posit.co){ target=_blank title="Posit" }
|
||||
[![n8n]](https://n8n.io){ target=_blank title="n8n" }
|
||||
[![Dogado]](https://www.dogado.de){ target=_blank title="Dogado" }
|
||||
[![World Wide Technology]](https://wwt.com){ target=_blank title="World Wide Technology" }
|
||||
@ -185,27 +192,30 @@ You can cancel your sponsorship anytime.[^5]
|
||||
[![Apex.AI]](https://www.apex.ai/){ target=_blank title="Apex.AI" }
|
||||
[![Jitterbit]](https://jitterbit.com/){ target=_blank title="Jitterbit" }
|
||||
[![Sparkfun]](https://sparkfun.com/){ target=_blank title="Sparkfun Electronics" }
|
||||
[![Automation Technology]](https://automationtechnology.de/){ target=_blank title="Automation Technology" }
|
||||
[![Eccenca]](https://eccenca.com/){ target=_blank title="Eccenca" }
|
||||
[![SealVault]](https://sealvault.org/){ target=_blank title="SealVault" }
|
||||
[![Neptune]](https://neptune.ai/){ target=_blank title="Neptune" }
|
||||
[![Cash App]](https://cash.app/){ target=_blank title="Cash App" }
|
||||
[![RackN]](https://rackn.com/){ target=_blank title="RackN" }
|
||||
[![CivicActions]](https://civicactions.com/){ target=_blank title="CivicActions" }
|
||||
[![bitcrowd]](https://bitcrowd.net/){ target=_blank title="bitcrowd" }
|
||||
[![GetScreen.me]](https://getscreen.me/){ target=_blank title="GetScreen.me" }
|
||||
[![BotCity]](https://botcity.dev/){ target=_blank title="BotCity" }
|
||||
[![Springer Nature Technology]](https://www.springernature.com/gp){ target=_blank title="Springer Nature Technology" }
|
||||
[![Kolena]](https://kolena.io/){ target=_blank title="Kolena" }
|
||||
[![Evergiving]](https://www.evergiving.com/){ target=_blank title="Evergiving" }
|
||||
[![Koor]](https://koor.tech/){ target=_blank title="Koor" }
|
||||
|
||||
</div>
|
||||
|
||||
[FastAPI]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-fastapi.png
|
||||
[Cirrus CI]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-cirrus-ci.png
|
||||
[Basler]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-basler.png
|
||||
[Hummingbot]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-hummingbot.png
|
||||
[KX]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-kx.png
|
||||
[Manticore Games]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-manticore-games.png
|
||||
[Account technologies]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-account-technologies.png
|
||||
[Prefect]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-prefect.png
|
||||
[Datadog]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-datadog.png
|
||||
[Zenoss]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-zenoss.png
|
||||
[Elli]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-elli.png
|
||||
[RStudio]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-rstudio.png
|
||||
[Posit]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-posit.png
|
||||
[n8n]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-n8n.png
|
||||
[Dogado]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-dogado.png
|
||||
[World Wide Technology]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-wwt.png
|
||||
@ -216,13 +226,18 @@ You can cancel your sponsorship anytime.[^5]
|
||||
[Apex.AI]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-apex-ai.png
|
||||
[Jitterbit]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-jitterbit.png
|
||||
[Sparkfun]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-sparkfun.png
|
||||
[Automation Technology]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-automation-technology.png
|
||||
[Eccenca]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-eccenca.png
|
||||
[SealVault]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-sealvault.png
|
||||
[Neptune]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-neptune-ai.png
|
||||
[Cash App]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-cashapp.png
|
||||
[RackN]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-rackn.png
|
||||
[CivicActions]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-civic-actions.png
|
||||
[bitcrowd]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-bitcrowd.png
|
||||
[GetScreen.me]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-getscreenme.png
|
||||
[BotCity]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-botcity.png
|
||||
[Springer Nature Technology]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-sn-technology.png
|
||||
[Kolena]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-kolena.png
|
||||
[Evergiving]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-evergiving.png
|
||||
[Koor]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-koor.png
|
||||
|
||||
<hr />
|
||||
|
||||
@ -287,7 +302,7 @@ are released for general availability.
|
||||
- [x] [Blog plugin: related links]
|
||||
- [x] [Blog plugin: custom index pages]
|
||||
- [x] [Tags plugin: additional indexes]
|
||||
- [x] [Tags plugin: allow list] and [custom sorting]
|
||||
- [x] [Tags plugin: allow list] + [custom sorting]
|
||||
- [x] [Navigation subtitles]
|
||||
|
||||
[Meta plugin]: ../reference/index.md#built-in-meta-plugin
|
||||
@ -302,21 +317,30 @@ are released for general availability.
|
||||
|
||||
- [x] [Optimize plugin]
|
||||
- [x] [Typeset plugin]
|
||||
- [x] [Privacy plugin: external links]
|
||||
- [x] [Navigation path] (Breadcrumbs)
|
||||
- [x] [Privacy plugin: optimization support]
|
||||
- [ ] Code block line wrapping
|
||||
- [x] [Privacy plugin: external links]
|
||||
- [x] [Instant prefetching]
|
||||
|
||||
[Optimize plugin]: ../setup/building-an-optimized-site.md#built-in-optimize-plugin
|
||||
[Typeset plugin]: ../reference/index.md#built-in-typeset-plugin
|
||||
[Privacy plugin: external links]: ../setup/ensuring-data-privacy.md#+privacy.external_links
|
||||
[Privacy plugin: optimization support]: ../setup/ensuring-data-privacy.md#+privacy.external_assets_include
|
||||
[Privacy plugin: external links]: ../setup/ensuring-data-privacy.md#+privacy.links
|
||||
[Privacy plugin: optimization support]: ../setup/ensuring-data-privacy.md#+privacy.assets_include
|
||||
[Navigation path]: ../setup/setting-up-navigation.md#navigation-path
|
||||
[Instant previews]: https://twitter.com/squidfunk/status/1466794654213492743
|
||||
[Instant prefetching]: ../setup/setting-up-navigation.md#instant-prefetching
|
||||
|
||||
#### $ 24,000 – Blockpaprika
|
||||
|
||||
- [ ] [Instant previews]
|
||||
- [x] [Social plugin: custom layouts]
|
||||
- [x] [Social plugin: background images]
|
||||
- [x] [Code range selection]
|
||||
- [x] [Code annotations: custom selectors]
|
||||
- [ ] Code line wrap button
|
||||
|
||||
[Social plugin: custom layouts]: ../setup/setting-up-social-cards.md#customization
|
||||
[Social plugin: background images]: ../setup/setting-up-social-cards.md#+social.cards_layout_params.background_image
|
||||
[Code range selection]: ../reference/code-blocks.md#code-selection-button
|
||||
[Code annotations: custom selectors]: ../reference/code-blocks.md#custom-selectors
|
||||
|
||||
### Goals completed
|
||||
|
||||
@ -343,14 +367,13 @@ can be used by all users.
|
||||
#### $ 8,000 – Scotch Bonnet
|
||||
|
||||
- [x] [Social cards]
|
||||
- [x] [Code annotations: anchor links]
|
||||
- [x] Code annotations: anchor links
|
||||
- [x] [Code annotations: strip comments]
|
||||
- [x] [Tag icons]
|
||||
- [x] [Table of contents anchor following]
|
||||
- [x] Sidebars automatically scroll to active item
|
||||
|
||||
[Social cards]: ../setup/setting-up-social-cards.md
|
||||
[Code annotations: anchor links]: ../reference/code-blocks.md#anchor-links
|
||||
[Code annotations: strip comments]: ../reference/code-blocks.md#stripping-comments
|
||||
[Tag icons]: ../setup/setting-up-tags.md#tag-icons-and-identifiers
|
||||
[Table of contents anchor following]: ../setup/setting-up-navigation.md#anchor-following
|
||||
|
@ -38,11 +38,14 @@ contents:
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.x
|
||||
- uses: actions/cache@v2
|
||||
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV # (3)!
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
key: ${{ github.ref }}
|
||||
key: mkdocs-material-${{ env.cache_id }}
|
||||
path: .cache
|
||||
- run: pip install mkdocs-material # (3)!
|
||||
restore-keys: |
|
||||
mkdocs-material-
|
||||
- run: pip install mkdocs-material # (4)!
|
||||
- run: mkdocs gh-deploy --force
|
||||
```
|
||||
|
||||
@ -51,7 +54,16 @@ contents:
|
||||
2. At some point, GitHub renamed `master` to `main`. If your default branch
|
||||
is named `master`, you can safely remove `main`, vice versa.
|
||||
|
||||
3. This is the place to install further [MkDocs plugins] or Markdown
|
||||
3. Store the `cache_id` environmental variable to access it later during cache
|
||||
`key` creation. The name is case-sensitive, so be sure to align it with `${{ env.cache_id }}`.
|
||||
|
||||
- The `--utc` option makes sure that each workflow runner uses the same time zone.
|
||||
- The `%V` format assures a cache update once a week.
|
||||
- You can change the format to `%F` to have daily cache updates.
|
||||
|
||||
You can read the [manual page] to learn more about the formatting options of the `date` command.
|
||||
|
||||
4. This is the place to install further [MkDocs plugins] or Markdown
|
||||
extensions with `pip` to be used during the build:
|
||||
|
||||
``` sh
|
||||
@ -81,10 +93,13 @@ contents:
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.x
|
||||
- uses: actions/cache@v2
|
||||
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
key: ${{ github.ref }}
|
||||
key: mkdocs-material-${{ env.cache_id }}
|
||||
path: .cache
|
||||
restore-keys: |
|
||||
mkdocs-material-
|
||||
- run: apt-get install pngquant # (1)!
|
||||
- run: pip install git+https://${GH_TOKEN}@github.com/squidfunk/mkdocs-material-insiders.git
|
||||
- run: mkdocs gh-deploy --force
|
||||
@ -116,6 +131,7 @@ Your documentation should shortly appear at `<username>.github.io/<repository>`.
|
||||
[built-in optimize plugin]: setup/building-an-optimized-site.md#built-in-optimize-plugin
|
||||
[GitHub secrets]: https://docs.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets
|
||||
[publishing source branch]: https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site
|
||||
[manual page]: https://man7.org/linux/man-pages/man1/date.1.html
|
||||
|
||||
### with MkDocs
|
||||
|
||||
@ -175,6 +191,34 @@ workflow in action.
|
||||
|
||||
Your documentation should shortly appear at `<username>.gitlab.io/<repository>`.
|
||||
|
||||
## Other
|
||||
|
||||
Since we can't cover all possible platforms, we rely on community contributed
|
||||
guides that explain how to deploy websites built with Material for MkDocs to
|
||||
other providers:
|
||||
|
||||
<div class="mdx-columns" markdown>
|
||||
|
||||
- [:simple-azuredevops: Azure][Azure]
|
||||
- [:simple-cloudflarepages: Cloudflare Pages][Cloudflare Pages]
|
||||
- [:simple-digitalocean: DigitalOcean][DigitalOcean]
|
||||
- [:simple-netlify: Netlify][Netlify]
|
||||
- [:simple-vercel: Vercel][Vercel]
|
||||
|
||||
</div>
|
||||
|
||||
!!! note "Enterprise support"
|
||||
|
||||
If you're using Material for MkDocs in your organization and need
|
||||
assistance, e.g., to __reduce build times__, __improve performance__ or
|
||||
ensure compliance, [__get in touch__](mailto:contact@squidfunk.com)
|
||||
to discuss our __enterprise support__ offerings. We're happy to help!
|
||||
|
||||
[GitLab Pages]: https://gitlab.com/pages
|
||||
[GitLab CI]: https://docs.gitlab.com/ee/ci/
|
||||
[masked custom variables]: https://docs.gitlab.com/ee/ci/variables/#create-a-custom-variable-in-the-ui
|
||||
[Azure]: https://bawmedical.co.uk/t/publishing-a-material-for-mkdocs-site-to-azure-with-automatic-branch-pr-preview-deployments/763
|
||||
[Cloudflare Pages]: https://www.starfallprojects.co.uk/projects/deploy-host-docs/deploy-mkdocs-material-cloudflare/
|
||||
[DigitalOcean]: https://www.starfallprojects.co.uk/projects/deploy-host-docs/deploy-mkdocs-material-digitalocean-app-platform/
|
||||
[Netlify]: https://www.starfallprojects.co.uk/projects/deploy-host-docs/deploy-mkdocs-material-netlify/
|
||||
[Vercel]: https://www.starfallprojects.co.uk/projects/deploy-host-docs/deploy-mkdocs-material-vercel/
|
||||
|
@ -21,6 +21,8 @@ following lines to `mkdocs.yml`:
|
||||
markdown_extensions:
|
||||
- pymdownx.highlight:
|
||||
anchor_linenums: true
|
||||
line_spans: __span
|
||||
pygments_lang_class: true
|
||||
- pymdownx.inlinehilite
|
||||
- pymdownx.snippets
|
||||
- pymdownx.superfences
|
||||
@ -81,6 +83,47 @@ theme:
|
||||
```
|
||||
````
|
||||
|
||||
### Code selection button
|
||||
|
||||
[:octicons-heart-fill-24:{ .mdx-heart } Sponsors only][Insiders]{ .mdx-insiders } ·
|
||||
[:octicons-tag-24: insiders-4.32.0][Insiders] ·
|
||||
:octicons-beaker-24: Experimental
|
||||
|
||||
Code blocks can include a button to allow for the selection of line ranges by
|
||||
the user, which is perfect for linking to a specific subsection of a code block. This allows the user to apply [line highlighting] dynamically. Add the following
|
||||
to `mkdocs.yml` to enable it globally:
|
||||
|
||||
``` yaml
|
||||
theme:
|
||||
features:
|
||||
- content.code.select
|
||||
```
|
||||
|
||||
??? info "Enabling or disabling code selection buttons for a specific code block"
|
||||
|
||||
If you don't want to enable code selection buttons globally, you can enable
|
||||
them for a specific code block by using a slightly different syntax based on
|
||||
the [Attribute Lists] extension:
|
||||
|
||||
```` yaml
|
||||
``` { .yaml .select }
|
||||
# Code block content
|
||||
```
|
||||
````
|
||||
|
||||
Note that the language shortcode which has to come first must now also be
|
||||
prefixed by a `.`. Similarly, the selection button can also be disabled for
|
||||
a specific code block:
|
||||
|
||||
```` { .yaml .no-select }
|
||||
``` { .yaml .no-select }
|
||||
# Code block content
|
||||
```
|
||||
````
|
||||
|
||||
[Insiders]: ../insiders/index.md
|
||||
[line highlighting]: #highlighting-specific-lines
|
||||
|
||||
### Code annotations
|
||||
|
||||
[:octicons-tag-24: 8.0.0][Code annotations support] ·
|
||||
@ -119,24 +162,45 @@ theme:
|
||||
[Code annotations support]: https://github.com/squidfunk/mkdocs-material/releases/tag/8.0.0
|
||||
[Attribute Lists]: ../setup/extensions/python-markdown.md#attribute-lists
|
||||
|
||||
#### Anchor links
|
||||
#### Custom selectors :material-alert-decagram:{ .mdx-pulse title="Added on February 19, 2023" }
|
||||
|
||||
[:octicons-tag-24: 8.5.0][Anchor links support] ·
|
||||
[:octicons-heart-fill-24:{ .mdx-heart } Sponsors only][Insiders]{ .mdx-insiders } ·
|
||||
[:octicons-tag-24: insiders-4.32.0][Insiders] ·
|
||||
:octicons-beaker-24: Experimental
|
||||
|
||||
In order to be able to link to code annotations and share them more easily, an
|
||||
anchor link is automatically added to each annotation, which you can copy via
|
||||
right click or open in a new tab:
|
||||
Normally, code annotations can only be [placed in comments], as comments can be
|
||||
considered safe for placement. However, sometimes it might be necessary to place
|
||||
annotations in parts of the code block where comments are not allowed, e.g. in
|
||||
strings.
|
||||
|
||||
Additional selectors can be set per-language:
|
||||
|
||||
``` yaml
|
||||
# (1)!
|
||||
extra:
|
||||
annotate:
|
||||
json: [.s2] # (1)!
|
||||
```
|
||||
|
||||
1. If you ++cmd++ :material-plus::material-cursor-default-outline: me, I'm
|
||||
rendered open in a new tab. You can also right-click me to __copy link
|
||||
address__ to share me with others.
|
||||
1. [`.s2`][s2] is the name of the lexeme that [Pygments] generates for double-quoted
|
||||
strings. If you want to use a code annotation in another lexeme than a
|
||||
comment, inspect the code block and determine which lexeme needs to be added
|
||||
to the list of additional selectors.
|
||||
|
||||
[Anchor links support]: https://github.com/squidfunk/mkdocs-material/releases/tag/8.5.0
|
||||
__Important__: Code annotations cannot be split between lexemes.
|
||||
|
||||
Now, code annotations can be used from within strings in JSON:
|
||||
|
||||
``` json
|
||||
{
|
||||
"key": "value (1)"
|
||||
}
|
||||
```
|
||||
|
||||
1. :man_raising_hand: I'm a code annotation! I can contain `code`, __formatted
|
||||
text__, images, ... basically anything that can be written in Markdown.
|
||||
|
||||
[placed in comments]: #adding-annotations
|
||||
[s2]: https://github.com/squidfunk/mkdocs-material/blob/87d5ca487b9d9ab95c41ee72813149d214048693/src/assets/stylesheets/main/extensions/pymdownx/_highlight.scss#L45
|
||||
|
||||
## Usage
|
||||
|
||||
|
@ -182,3 +182,150 @@ numbers, filesizes, dates and month names. See the [tablesort documentation]
|
||||
|
||||
[tablesort]: http://tristen.ca/tablesort/demo/
|
||||
[instant loading]: ../setup/setting-up-navigation.md#instant-loading
|
||||
|
||||
### Import table from file
|
||||
|
||||
[:octicons-cpu-24: Plugin][table-reader-docs]
|
||||
|
||||
You can also import data from a CSV or Excel file using the plugin [`mkdocs-table-reader-plugin`][table-reader-docs].
|
||||
|
||||
First, you will need to install it with `pip`:
|
||||
|
||||
```sh
|
||||
pip install mkdocs-table-reader-plugin
|
||||
```
|
||||
|
||||
Then extend the `mkdocs.yml` file like this:
|
||||
|
||||
```yaml
|
||||
plugins:
|
||||
- table-reader
|
||||
```
|
||||
|
||||
Then, it is a simple process to import the data in to the Markdown files.
|
||||
|
||||
=== "Import data from :fontawesome-solid-file-csv: CSV file"
|
||||
|
||||
Let's use a :fontawesome-solid-file-csv: CSV in the local directory. The file may look like this:
|
||||
|
||||
```csv title="./data.csv"
|
||||
col1,col2,col3
|
||||
r1c1,r1c2,r1c3
|
||||
r2c1,r2c2,r2c3
|
||||
r3c1,r3c2,r3c3
|
||||
```
|
||||
|
||||
You can then add it to your :fontawesome-solid-file-arrow-down: Markdown page like this:
|
||||
|
||||
```md title="./markdown.md"
|
||||
...
|
||||
|
||||
{{ read_csv('./data.csv') }}
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
<div class="result" markdown>
|
||||
|
||||
...
|
||||
|
||||
col1|col2|col3
|
||||
----|----|----
|
||||
r1c1|r1c2|r1c3
|
||||
r2c1|r2c2|r2c3
|
||||
r3c1|r3c2|r3c3
|
||||
|
||||
...
|
||||
|
||||
</div>
|
||||
|
||||
=== "Import data from :fontawesome-solid-file-excel: Excel file"
|
||||
|
||||
Let's use an :fontawesome-solid-file-excel: Excel file in the local directory. The file may look like this:
|
||||
|
||||
![][excel-file]{width="300px"}
|
||||
|
||||
[excel-file]: https://i.stack.imgur.com/f32ks.png
|
||||
|
||||
And you can add it to your :fontawesome-solid-file-arrow-down: Markdown page like this:
|
||||
|
||||
```md title="./markdown.md"
|
||||
...
|
||||
|
||||
{{ read_excel('./Book1.xlsx', engine='openpyxl') }}
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
<div class="result" markdown>
|
||||
|
||||
It will then return a result like this:
|
||||
|
||||
col1|col2|col3
|
||||
----|----|----
|
||||
r1c1|r1c2|r1c3
|
||||
r2c1|r2c2|r2c3
|
||||
r3c1|r3c2|r3c3
|
||||
|
||||
</div>
|
||||
|
||||
!!! warning "Warning"
|
||||
|
||||
You may receive an error if you use `engine='openpyxl'`.
|
||||
|
||||
If this happens, you can resolve it by installing it using `pip`:
|
||||
|
||||
```sh
|
||||
pip install openpyxl
|
||||
```
|
||||
|
||||
Read more here: [pandas.read_excel][pandas-read_excel-engine]
|
||||
|
||||
[pandas-read_excel-engine]: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html#:~:text=enginestr%2C%20default%20None
|
||||
|
||||
!!! tip "Pro Tip: Multiple Sheets"
|
||||
|
||||
If your Excel file contains multiple sheets, you may want to extend the function by adding the `sheet_name` parameter.
|
||||
|
||||
It would look like this:
|
||||
|
||||
```md title="./markdown.md"
|
||||
...
|
||||
|
||||
{{ read_excel('./Book1.xlsx', engine='openpyxl', sheet_name="Sheet1") }}
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
By default, Pandas will grab the first sheet in the workbook.
|
||||
|
||||
Read more here: [pandas.read_excel][pandas-read_excel-sheet_name]
|
||||
|
||||
[pandas-read_excel-sheet_name]: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html#:~:text=sheet_namestr%2C%20int%2C%20list%2C%20or%20None%2C%20default%200
|
||||
|
||||
=== "Import data from other file types"
|
||||
|
||||
The plugin [`mkdocs-table-reader-plugin`][table-reader-docs] also provides readers for other formats:
|
||||
|
||||
<div class="mdx-columns" markdown>
|
||||
|
||||
- [`read_csv`][table-reader-read_csv]
|
||||
- [`read_fwf`][table-reader-read_fwf]
|
||||
- [`read_yaml`][table-reader-read_yaml]
|
||||
- [`read_table`][table-reader-read_table]
|
||||
- [`read_json`][table-reader-read_json]
|
||||
- [`read_excel`][table-reader-read_excel]
|
||||
- [`read_raw`][table-reader-read_raw]
|
||||
|
||||
</div>
|
||||
|
||||
You can read more on their Docs website: [mkdocs-table-reader-plugin][table-reader-docs]
|
||||
|
||||
[table-reader-docs]: https://timvink.github.io/mkdocs-table-reader-plugin/
|
||||
[table-reader-read_csv]: https://timvink.github.io/mkdocs-table-reader-plugin/readers/#read_csv
|
||||
[table-reader-read_fwf]: https://timvink.github.io/mkdocs-table-reader-plugin/readers/#read_fwf
|
||||
[table-reader-read_yaml]: https://timvink.github.io/mkdocs-table-reader-plugin/readers/#read_yaml
|
||||
[table-reader-read_table]: https://timvink.github.io/mkdocs-table-reader-plugin/readers/#read_table
|
||||
[table-reader-read_json]: https://timvink.github.io/mkdocs-table-reader-plugin/readers/#read_json
|
||||
[table-reader-read_excel]: https://timvink.github.io/mkdocs-table-reader-plugin/readers/#read_excel
|
||||
[table-reader-read_raw]: https://timvink.github.io/mkdocs-table-reader-plugin/readers/#read_raw
|
||||
|
@ -106,7 +106,7 @@ When [Caret & Tilde][Caret, Mark & Tilde] are enabled, text can be sub- and
|
||||
superscripted with a simple syntax, which is more convenient than directly
|
||||
using the corresponding [`sub`][sub] and [`sup`][sup] HTML tags:
|
||||
|
||||
``` markdown title="Text with sub- und superscripts"
|
||||
``` markdown title="Text with sub- and superscripts"
|
||||
- H~2~O
|
||||
- A^T^A
|
||||
```
|
||||
|
@ -63,7 +63,7 @@ See additional configuration options:
|
||||
[Simple Icons]: https://simpleicons.org/
|
||||
[Attribute Lists]: ../setup/extensions/python-markdown.md#attribute-lists
|
||||
[Emoji]: ../setup/extensions/python-markdown-extensions.md#emoji
|
||||
[Emoji with custom icons]: ../setup/extensions/python-markdown-extensions.md#custom-icons
|
||||
[Emoji with custom icons]: ../setup/extensions/python-markdown-extensions.md#+pymdownx.emoji.options.custom_icons
|
||||
|
||||
## Usage
|
||||
|
||||
|
@ -172,7 +172,37 @@ hash fragment to the image URL:
|
||||
|
||||
</div>
|
||||
|
||||
!!! warning "Requirements when using [custom color schemes]"
|
||||
|
||||
The built-in [color schemes] define the aforementioned hash fragments, but
|
||||
if you're using [custom color schemes], you'll also have to add the
|
||||
following selectors to your scheme, depending on whether it's a light or
|
||||
dark scheme:
|
||||
|
||||
=== "Custom light scheme"
|
||||
|
||||
``` css
|
||||
[data-md-color-scheme="custom-light"] img[src$="#only-dark"],
|
||||
[data-md-color-scheme="custom-light"] img[src$="#gh-dark-mode-only"] {
|
||||
display: none; /* Hide dark images in light mode */
|
||||
}
|
||||
```
|
||||
|
||||
=== "Custom dark scheme"
|
||||
|
||||
``` css
|
||||
[data-md-color-scheme="custom-dark"] img[src$="#only-light"],
|
||||
[data-md-color-scheme="custom-dark"] img[src$="#gh-light-mode-only"] {
|
||||
display: none; /* Hide light images in dark mode */
|
||||
}
|
||||
```
|
||||
|
||||
Remember to change `#!css "custom-light"` and `#!css "custom-dark"` to the
|
||||
name of your scheme.
|
||||
|
||||
[Light and dark mode support]: https://github.com/squidfunk/mkdocs-material/releases/tag/8.1.1
|
||||
[color palette toggle]: ../setup/changing-the-colors.md#color-palette-toggle
|
||||
[Zelda light world]: ../assets/images/zelda-light-world.png#only-light
|
||||
[Zelda dark world]: ../assets/images/zelda-dark-world.png#only-dark
|
||||
[color schemes]: ../setup/changing-the-colors.md#color-scheme
|
||||
[custom color schemes]: ../setup/changing-the-colors.md#custom-color-schemes
|
||||
|
@ -259,7 +259,7 @@ e.g. to add indexing policies for search engines via the `robots` property:
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block extrahead %}
|
||||
<meta property="robots" content="noindex, nofollow" />
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
{% endblock %}
|
||||
```
|
||||
|
||||
@ -276,9 +276,9 @@ template override, e.g.:
|
||||
|
||||
{% block extrahead %}
|
||||
{% if page and page.meta and page.meta.robots %}
|
||||
<meta property="robots" content="{{ page.meta.robots }}" />
|
||||
<meta name="robots" content="{{ page.meta.robots }}" />
|
||||
{% else %}
|
||||
<meta property="robots" content="index, follow" />
|
||||
<meta name="robots" content="index, follow" />
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
```
|
||||
|
198
docs/reference/math.md
Normal file
@ -0,0 +1,198 @@
|
||||
---
|
||||
icon: material/alphabet-greek
|
||||
---
|
||||
|
||||
# Math
|
||||
|
||||
[MathJax] and [KaTeX] are two popular libraries for displaying
|
||||
mathematical content in browsers. Although both libraries offer similar
|
||||
functionality, they use different syntaxes and have different configuration
|
||||
options. This documentation site provides information on how to integrate them
|
||||
with Material for MkDocs easily.
|
||||
|
||||
[MathJax]: https://www.mathjax.org/
|
||||
[LaTeX]: https://en.wikibooks.org/wiki/LaTeX/Mathematics
|
||||
[MathML]: https://en.wikipedia.org/wiki/MathML
|
||||
[AsciiMath]: http://asciimath.org/
|
||||
[KaTeX]: https://katex.org/
|
||||
|
||||
|
||||
## Configuration
|
||||
|
||||
The following configuration enables support for rendering block and
|
||||
inline block equations using [MathJax] and [KaTeX].
|
||||
|
||||
### MathJax
|
||||
|
||||
[MathJax] is a powerful and flexible library that supports multiple input formats,
|
||||
such as [LaTeX], [MathML], [AsciiMath], as well as various output formats like
|
||||
HTML, SVG, MathML. To use MathJax within your project, add the following lines
|
||||
to your `mkdocs.yml`.
|
||||
|
||||
=== ":octicons-file-code-16: `docs/javascripts/mathjax.js`"
|
||||
|
||||
``` js
|
||||
window.MathJax = {
|
||||
tex: {
|
||||
inlineMath: [["\\(", "\\)"]],
|
||||
displayMath: [["\\[", "\\]"]],
|
||||
processEscapes: true,
|
||||
processEnvironments: true
|
||||
},
|
||||
options: {
|
||||
ignoreHtmlClass: ".*|",
|
||||
processHtmlClass: "arithmatex"
|
||||
}
|
||||
};
|
||||
|
||||
document$.subscribe(() => { // (1)!
|
||||
MathJax.typesetPromise()
|
||||
})
|
||||
```
|
||||
|
||||
1. This integrates MathJax with [instant loading].
|
||||
|
||||
=== ":octicons-file-code-16: `mkdocs.yml`"
|
||||
|
||||
``` yaml
|
||||
markdown_extensions:
|
||||
- pymdownx.arithmatex:
|
||||
generic: true
|
||||
|
||||
extra_javascript:
|
||||
- javascripts/mathjax.js
|
||||
- https://polyfill.io/v3/polyfill.min.js?features=es6
|
||||
- https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
|
||||
```
|
||||
|
||||
See additional configuration options:
|
||||
|
||||
- [Arithmatex]
|
||||
|
||||
[Arithmatex]: ../setup/extensions/python-markdown-extensions.md#arithmatex
|
||||
[instant loading]: ../setup/setting-up-navigation.md#instant-loading
|
||||
|
||||
|
||||
### KaTeX
|
||||
|
||||
[KaTeX] is a lightweight library that focuses on speed and simplicity. It
|
||||
supports a subset of LaTeX syntax and can render math to HTML and SVG. To use
|
||||
[KaTeX] within your project, add the following lines to your `mkdocs.yml`.
|
||||
|
||||
=== ":octicons-file-code-16: `docs/javascripts/katex.js`"
|
||||
|
||||
``` js
|
||||
document$.subscribe(({ body }) => { // (1)!
|
||||
renderMathInElement(body, {
|
||||
delimiters: [
|
||||
{ left: "$$", right: "$$", display: true },
|
||||
{ left: "$", right: "$", display: false },
|
||||
{ left: "\\(", right: "\\)", display: false },
|
||||
{ left: "\\[", right: "\\]", display: true }
|
||||
],
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
1. This integrates KaTeX with [instant loading].
|
||||
|
||||
=== ":octicons-file-code-16: `mkdocs.yml`"
|
||||
|
||||
``` yaml
|
||||
extra_javascript:
|
||||
- javascripts/katex.js
|
||||
- https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.7/katex.min.js # (1)!
|
||||
- https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.7/contrib/auto-render.min.js
|
||||
|
||||
extra_css:
|
||||
- https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.7/katex.min.css
|
||||
```
|
||||
|
||||
1. Alternatively, you can add these JavaScript and CSS files via `script` tags by overriding HTML files.
|
||||
|
||||
|
||||
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
||||
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||
<script>
|
||||
window.MathJax = {
|
||||
tex: {
|
||||
inlineMath: [["\\(", "\\)"]],
|
||||
displayMath: [["\\[", "\\]"]],
|
||||
processEscapes: true,
|
||||
processEnvironments: true
|
||||
},
|
||||
options: {
|
||||
ignoreHtmlClass: ".*|",
|
||||
processHtmlClass: "arithmatex"
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
### Using block syntax
|
||||
|
||||
Blocks must be enclosed in `#!latex $$...$$` or `#!latex \[...\]` on separate
|
||||
lines:
|
||||
|
||||
``` latex title="block syntax"
|
||||
$$
|
||||
\operatorname{ker} f=\{g\in G:f(g)=e_{H}\}{\mbox{.}}
|
||||
$$
|
||||
```
|
||||
|
||||
<div class="result" markdown>
|
||||
|
||||
$$
|
||||
\operatorname{ker} f=\{g\in G:f(g)=e_{H}\}{\mbox{.}}
|
||||
$$
|
||||
|
||||
</div>
|
||||
|
||||
### Using inline block syntax
|
||||
|
||||
Inline blocks must be enclosed in `#!latex $...$` or `#!latex \(...\)`:
|
||||
|
||||
``` latex title="inline syntax"
|
||||
The homomorphism $f$ is injective if and only if its kernel is only the
|
||||
singleton set $e_G$, because otherwise $\exists a,b\in G$ with $a\neq b$ such
|
||||
that $f(a)=f(b)$.
|
||||
```
|
||||
|
||||
<div class="result" markdown>
|
||||
|
||||
The homomorphism $f$ is injective if and only if its kernel is only the
|
||||
singleton set $e_G$, because otherwise $\exists a,b\in G$ with $a\neq b$ such
|
||||
that $f(a)=f(b)$.
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
## Comparing MathJax and KaTeX
|
||||
|
||||
When deciding between MathJax and KaTeX, there are several key factors to
|
||||
consider:
|
||||
|
||||
- __Speed__: KaTeX is generally faster than MathJax. If your site requires rendering large
|
||||
quantities of complex equations quickly, KaTeX may be the better choice.
|
||||
|
||||
- __Syntax Support__: MathJax supports a wider array of LaTeX commands and can
|
||||
process a variety of mathematical markup languages (like AsciiMath and MathML).
|
||||
If you need advanced LaTeX features, MathJax may be more suitable.
|
||||
|
||||
- __Output Format__: Both libraries support HTML and SVG outputs. However,
|
||||
MathJax also offers MathML output, which can be essential for accessibility, as
|
||||
it is readable by screen readers.
|
||||
|
||||
- __Configurability__: MathJax provides a range of configuration options,
|
||||
allowing for more precise control over its behavior. If you have specific
|
||||
rendering requirements, MathJax might be a more flexible choice.
|
||||
|
||||
- __Browser Support__: While both libraries work well in modern browsers,
|
||||
MathJax has broader compatibility with older browsers. If your audience uses a
|
||||
variety of browsers, including older ones, MathJax might be a safer option.
|
||||
|
||||
In summary, KaTeX shines with its speed and simplicity, whereas MathJax offers
|
||||
more features and better compatibility at the expense of speed. The choice
|
||||
between the two will largely depend on your specific needs and constraints.
|
@ -1,120 +0,0 @@
|
||||
---
|
||||
icon: material/alphabet-greek
|
||||
---
|
||||
|
||||
# MathJax
|
||||
|
||||
[MathJax] is a beautiful and accessible way to display mathematical content
|
||||
in the browser, adds support for mathematical typesetting in different notations
|
||||
(e.g. [LaTeX], [MathML], [AsciiMath]), and can be easily integrated with
|
||||
Material for MkDocs.
|
||||
|
||||
[MathJax]: https://www.mathjax.org/
|
||||
[LaTeX]: https://en.wikibooks.org/wiki/LaTeX/Mathematics
|
||||
[MathML]: https://en.wikipedia.org/wiki/MathML
|
||||
[AsciiMath]: http://asciimath.org/
|
||||
|
||||
## Configuration
|
||||
|
||||
This configuration enables support for rendering block and inline block
|
||||
equations through [MathJax]. Create a configuration file and add the following
|
||||
lines to `mkdocs.yml`:
|
||||
|
||||
=== ":octicons-file-code-16: `docs/javascripts/mathjax.js`"
|
||||
|
||||
``` js
|
||||
window.MathJax = {
|
||||
tex: {
|
||||
inlineMath: [["\\(", "\\)"]],
|
||||
displayMath: [["\\[", "\\]"]],
|
||||
processEscapes: true,
|
||||
processEnvironments: true
|
||||
},
|
||||
options: {
|
||||
ignoreHtmlClass: ".*|",
|
||||
processHtmlClass: "arithmatex"
|
||||
}
|
||||
};
|
||||
|
||||
document$.subscribe(() => { // (1)!
|
||||
MathJax.typesetPromise()
|
||||
})
|
||||
```
|
||||
|
||||
1. This integrates MathJax with [instant loading].
|
||||
|
||||
=== ":octicons-file-code-16: `mkdocs.yml`"
|
||||
|
||||
``` yaml
|
||||
markdown_extensions:
|
||||
- pymdownx.arithmatex:
|
||||
generic: true
|
||||
|
||||
extra_javascript:
|
||||
- javascripts/mathjax.js
|
||||
- https://polyfill.io/v3/polyfill.min.js?features=es6
|
||||
- https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
|
||||
```
|
||||
|
||||
See additional configuration options:
|
||||
|
||||
- [Arithmatex]
|
||||
|
||||
[Arithmatex]: ../setup/extensions/python-markdown-extensions.md#arithmatex
|
||||
[instant loading]: ../setup/setting-up-navigation.md#instant-loading
|
||||
|
||||
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
||||
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||
<script>
|
||||
window.MathJax = {
|
||||
tex: {
|
||||
inlineMath: [["\\(", "\\)"]],
|
||||
displayMath: [["\\[", "\\]"]],
|
||||
processEscapes: true,
|
||||
processEnvironments: true
|
||||
},
|
||||
options: {
|
||||
ignoreHtmlClass: ".*|",
|
||||
processHtmlClass: "arithmatex"
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
## Usage
|
||||
|
||||
### Using block syntax
|
||||
|
||||
Blocks must be enclosed in `#!latex $$...$$` or `#!latex \[...\]` on separate
|
||||
lines:
|
||||
|
||||
``` latex title="MathJax, block syntax"
|
||||
$$
|
||||
\operatorname{ker} f=\{g\in G:f(g)=e_{H}\}{\mbox{.}}
|
||||
$$
|
||||
```
|
||||
|
||||
<div class="result" markdown>
|
||||
|
||||
$$
|
||||
\operatorname{ker} f=\{g\in G:f(g)=e_{H}\}{\mbox{.}}
|
||||
$$
|
||||
|
||||
</div>
|
||||
|
||||
### Using inline block syntax
|
||||
|
||||
Inline blocks must be enclosed in `#!latex $...$` or `#!latex \(...\)`:
|
||||
|
||||
``` latex title="MathJax, inline syntax"
|
||||
The homomorphism $f$ is injective if and only if its kernel is only the
|
||||
singleton set $e_G$, because otherwise $\exists a,b\in G$ with $a\neq b$ such
|
||||
that $f(a)=f(b)$.
|
||||
```
|
||||
|
||||
<div class="result" markdown>
|
||||
|
||||
The homomorphism $f$ is injective if and only if its kernel is only the
|
||||
singleton set $e_G$, because otherwise $\exists a,b\in G$ with $a\neq b$ such
|
||||
that $f(a)=f(b)$.
|
||||
|
||||
</div>
|
@ -98,7 +98,7 @@
|
||||
"items": {
|
||||
"title": "Path to JavaScript file",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/customization/#additional-javascript",
|
||||
"pattern": "\\.js($|\\?)"
|
||||
"pattern": "\\.m?js($|\\?)"
|
||||
},
|
||||
"uniqueItems": true,
|
||||
"minItems": 1
|
||||
|
@ -531,6 +531,11 @@
|
||||
"markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/snippets/#options",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"url_download": {
|
||||
"markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/snippets/#options",
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
@ -325,6 +325,17 @@
|
||||
"default": {
|
||||
"title": "Default version",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-versioning/#version-warning",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default": "stable"
|
||||
}
|
||||
}
|
||||
|
@ -27,6 +27,12 @@
|
||||
"type": "string",
|
||||
"default": "blog"
|
||||
},
|
||||
"blog_toc": {
|
||||
"title": "Blog table of contents",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-a-blog/#+blog.blog_toc",
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"post_date_format": {
|
||||
"title": "Format string for post dates",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-a-blog/#+blog.post_date_format",
|
||||
@ -203,6 +209,12 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"archive_toc": {
|
||||
"title": "Archive table of contents",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-a-blog/#+blog.archive_toc",
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-a-blog/#+blog.categories",
|
||||
@ -241,12 +253,6 @@
|
||||
"type": "string",
|
||||
"default": "\"-\""
|
||||
},
|
||||
"categories_toc": {
|
||||
"title": "Category index table of contents",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-a-blog/#+blog.categories_toc",
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"categories_allowed": {
|
||||
"title": "Categories allowed",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-a-blog/#+blog.categories_allowed",
|
||||
@ -257,6 +263,12 @@
|
||||
"uniqueItems": true,
|
||||
"default": []
|
||||
},
|
||||
"categories_toc": {
|
||||
"title": "Categories table of contents",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-a-blog/#+blog.categories_toc",
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"pagination": {
|
||||
"title": "Pagination",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-a-blog/#+blog.pagination",
|
||||
|
@ -24,62 +24,60 @@
|
||||
"concurrency": {
|
||||
"title": "Concurrency (number of CPUs)",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.concurrency",
|
||||
"type": "number"
|
||||
"type": "number",
|
||||
"default": 1
|
||||
},
|
||||
"external_assets": {
|
||||
"title": "External assets",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_assets",
|
||||
"oneOf": [
|
||||
{
|
||||
"title": "Bundle external assets",
|
||||
"enum": ["bundle"]
|
||||
},
|
||||
{
|
||||
"title": "Report external assets as warnings",
|
||||
"enum": ["report"]
|
||||
}
|
||||
],
|
||||
"default": "bundle"
|
||||
},
|
||||
"external_assets_dir": {
|
||||
"title": "External assets download directory",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_assets_dir",
|
||||
"type": "string",
|
||||
"default": "assets/external"
|
||||
},
|
||||
"external_assets_include": {
|
||||
"title": "External assets to include",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_assets_include",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"title": "External assets matching this pattern will be downloaded",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_assets_include",
|
||||
"pattern": ".*"
|
||||
},
|
||||
"uniqueItems": true,
|
||||
"minItems": 1
|
||||
},
|
||||
"external_assets_exclude": {
|
||||
"title": "External assets to exclude",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_assets_exclude",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"title": "External assets matching this pattern will not be downloaded",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_assets_exclude",
|
||||
"pattern": ".*"
|
||||
},
|
||||
"uniqueItems": true,
|
||||
"minItems": 1
|
||||
},
|
||||
"external_links": {
|
||||
"title": "External links",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_links",
|
||||
"assets": {
|
||||
"title": "Process external assets",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"external_links_attr_map": {
|
||||
"assets_fetch": {
|
||||
"title": "Download external assets",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets_fetch",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"assets_fetch_dir": {
|
||||
"title": "Download external assets to this directory",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets_fetch_dir",
|
||||
"type": "string",
|
||||
"default": "assets/external"
|
||||
},
|
||||
"assets_include": {
|
||||
"title": "External assets to include",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets_include",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"title": "External assets matching this pattern will be downloaded",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets_include",
|
||||
"pattern": ".*"
|
||||
},
|
||||
"uniqueItems": true,
|
||||
"minItems": 1
|
||||
},
|
||||
"assets_exclude": {
|
||||
"title": "External assets to exclude",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets_exclude",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"title": "External assets matching this pattern will not be downloaded",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets_exclude",
|
||||
"pattern": ".*"
|
||||
},
|
||||
"uniqueItems": true,
|
||||
"minItems": 1
|
||||
},
|
||||
"links": {
|
||||
"title": "Process external links",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.links",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"links_attr_map": {
|
||||
"title": "Custom attributes to add to external links",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_links_attr_map",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.links_attr_map",
|
||||
"type": "object",
|
||||
"patternProperties": {
|
||||
"^[\\w_]+$": {
|
||||
@ -87,9 +85,9 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"external_links_noopener": {
|
||||
"links_noopener": {
|
||||
"title": "Behavior for external links that open in new windows",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_links_noopener",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.links_noopener",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
|
@ -15,51 +15,120 @@
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#built-in-social-plugin",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"title": "Enable plugin",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.enabled",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"concurrency": {
|
||||
"title": "Concurrency (number of CPUs)",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.concurrency",
|
||||
"type": "number",
|
||||
"default": 1
|
||||
},
|
||||
"cards": {
|
||||
"title": "Social card generation",
|
||||
"title": "Social cards",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"cards_color": {
|
||||
"title": "Social card color palette",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_color",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"fill": {
|
||||
"title": "Background fill color",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_color",
|
||||
"type": "string"
|
||||
},
|
||||
"text": {
|
||||
"title": "Foreground text color",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_color",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"fill",
|
||||
"text"
|
||||
]
|
||||
},
|
||||
"cards_font": {
|
||||
"$ref": "../assets/fonts.json"
|
||||
},
|
||||
"cards_dir": {
|
||||
"title": "Social card directory",
|
||||
"title": "Social cards directory",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_dir",
|
||||
"type": "string",
|
||||
"default": "assets/images/social"
|
||||
},
|
||||
"cards_layout_dir": {
|
||||
"title": "Social cards layout directory",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_layout_dir",
|
||||
"type": "string",
|
||||
"default": "layouts"
|
||||
},
|
||||
"cards_layout": {
|
||||
"title": "Social cards layout",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_layout",
|
||||
"default": "default",
|
||||
"enum": [
|
||||
"default",
|
||||
"default/accent",
|
||||
"default/invert",
|
||||
"default/variant"
|
||||
]
|
||||
},
|
||||
"cards_layout_options": {
|
||||
"title": "Social cards layout options",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_layout_options",
|
||||
"type": "object"
|
||||
},
|
||||
"cards_include": {
|
||||
"title": "Pages or folders to include",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_include",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"title": "Pages or folders matching this pattern will be included",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_include",
|
||||
"pattern": ".*"
|
||||
},
|
||||
"uniqueItems": true,
|
||||
"minItems": 1
|
||||
},
|
||||
"cards_exclude": {
|
||||
"title": "Pages or folders to exclude",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_exclude",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"title": "Pages or folders matching this pattern will be excluded",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_exclude",
|
||||
"pattern": ".*"
|
||||
},
|
||||
"uniqueItems": true,
|
||||
"minItems": 1
|
||||
},
|
||||
"debug": {
|
||||
"title": "Debug mode",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.debug",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"debug_on_build": {
|
||||
"title": "Always disable debug mode on build",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.debug_on_build",
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"debug_grid": {
|
||||
"title": "Debug grid",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.debug_grid",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"debug_grid_step": {
|
||||
"title": "Debug grid step size",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.debug_grid_step",
|
||||
"type": "number",
|
||||
"default": 32
|
||||
},
|
||||
"debug_color": {
|
||||
"title": "Debug color",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.debug_color",
|
||||
"type": "string",
|
||||
"default": "yellow"
|
||||
},
|
||||
"cache": {
|
||||
"title": "Enable caching",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cache",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"cache_dir": {
|
||||
"title": "Cache directory",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cache_dir",
|
||||
"type": "string",
|
||||
"default": ".cache/plugins/social"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"defaultSnippets": [
|
||||
{
|
||||
"label": "cards_font",
|
||||
"body": "cards_font: ${1:Roboto}"
|
||||
}
|
||||
]
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
@ -214,6 +214,12 @@
|
||||
"ka"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Site language: Kannada",
|
||||
"enum": [
|
||||
"kn"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Site language: Korean",
|
||||
"enum": [
|
||||
@ -304,6 +310,12 @@
|
||||
"ru"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Site language: Sanskrit",
|
||||
"enum": [
|
||||
"sa"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Site language: Serbo-Croatian",
|
||||
"enum": [
|
||||
@ -340,6 +352,12 @@
|
||||
"sv"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Site language: Telugu",
|
||||
"enum": [
|
||||
"te"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Site language: Thai",
|
||||
"enum": [
|
||||
@ -918,7 +936,8 @@
|
||||
"grey",
|
||||
"blue grey",
|
||||
"black",
|
||||
"white"
|
||||
"white",
|
||||
"custom"
|
||||
]
|
||||
},
|
||||
"accent": {
|
||||
@ -945,7 +964,8 @@
|
||||
"grey",
|
||||
"blue grey",
|
||||
"black",
|
||||
"white"
|
||||
"white",
|
||||
"custom"
|
||||
]
|
||||
},
|
||||
"icon": {
|
||||
|
@ -109,7 +109,7 @@ resolves to the subfolder where your documentation is hosted.
|
||||
If your default branch is called `main`, change the setting to:
|
||||
|
||||
``` yaml
|
||||
edit_uri: blob/main/docs/
|
||||
edit_uri: edit/main/docs/
|
||||
```
|
||||
|
||||
After making sure that `edit_uri` is correctly configured, buttons for code
|
||||
@ -331,9 +331,11 @@ them at your own risk.
|
||||
[:octicons-cpu-24: Plugin][git-authors] ·
|
||||
:octicons-beaker-24: Experimental
|
||||
|
||||
The [git-authors] plugin extracts the authors of a document from git to display
|
||||
them at the bottom of each page. It's a lightweight alternative to the
|
||||
[git-committers] plugin. Install it with `pip`:
|
||||
The [git-authors] plugin is a lightweight alternative to the
|
||||
[git-committers] plugin and extracts the authors of a document from git to display
|
||||
them at the bottom of each page.
|
||||
|
||||
[Insiders] offers deep integration for [git-authors]. This means the [customized overrides](https://timvink.github.io/mkdocs-git-authors-plugin/usage.html#mkdocs-material-theme) are not necessary, and additional styling (such as nice icons) are added. Simply install it with `pip`:
|
||||
|
||||
```
|
||||
pip install mkdocs-git-authors-plugin
|
||||
|
@ -1,7 +1,3 @@
|
||||
---
|
||||
status: new
|
||||
---
|
||||
|
||||
# Building an optimized site
|
||||
|
||||
Material for MkDocs, by default, allows to build optimized sites that rank great
|
||||
@ -196,7 +192,7 @@ The following configuration options are available for caching:
|
||||
``` yaml
|
||||
plugins:
|
||||
- optimize:
|
||||
cache_dir: path/to/folder
|
||||
cache_dir: .cache/plugins/optimize
|
||||
```
|
||||
|
||||
By default, all built-in plugins that implement caching will create a
|
||||
|
@ -38,10 +38,14 @@ Click on a tile to change the color scheme:
|
||||
var buttons = document.querySelectorAll("button[data-md-color-scheme]")
|
||||
buttons.forEach(function(button) {
|
||||
button.addEventListener("click", function() {
|
||||
document.body.setAttribute("data-md-color-switching", "")
|
||||
var attr = this.getAttribute("data-md-color-scheme")
|
||||
document.body.setAttribute("data-md-color-scheme", attr)
|
||||
var name = document.querySelector("#__code_1 code span.l")
|
||||
var name = document.querySelector("#__code_0 code span.l")
|
||||
name.textContent = attr
|
||||
setTimeout(function() {
|
||||
document.body.removeAttribute("data-md-color-switching")
|
||||
})
|
||||
})
|
||||
})
|
||||
</script>
|
||||
@ -95,12 +99,14 @@ Click on a tile to change the primary color:
|
||||
button.addEventListener("click", function() {
|
||||
var attr = this.getAttribute("data-md-color-primary")
|
||||
document.body.setAttribute("data-md-color-primary", attr)
|
||||
var name = document.querySelector("#__code_2 code span.l")
|
||||
var name = document.querySelector("#__code_1 code span.l")
|
||||
name.textContent = attr.replace("-", " ")
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
See our guide below to learn how to set [custom colors].
|
||||
|
||||
[Primary color support]: https://github.com/squidfunk/mkdocs-material/releases/tag/0.2.0
|
||||
|
||||
#### Accent color
|
||||
@ -152,12 +158,14 @@ Click on a tile to change the accent color:
|
||||
button.addEventListener("click", function() {
|
||||
var attr = this.getAttribute("data-md-color-accent")
|
||||
document.body.setAttribute("data-md-color-accent", attr)
|
||||
var name = document.querySelector("#__code_3 code span.l")
|
||||
var name = document.querySelector("#__code_2 code span.l")
|
||||
name.textContent = attr.replace("-", " ")
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
See our guide below to learn how to set [custom colors].
|
||||
|
||||
[Accent color support]: https://github.com/squidfunk/mkdocs-material/releases/tag/0.2.0
|
||||
|
||||
### Color palette toggle
|
||||
@ -319,6 +327,16 @@ properties). If you want to customize the colors beyond the palette (e.g. to
|
||||
use your brand-specific colors), you can add an [additional style sheet] and
|
||||
tweak the values of the CSS variables.
|
||||
|
||||
First, set the [`primary`][palette.primary] or [`accent`][palette.accent] values
|
||||
in `mkdocs.yml` to `custom`, to signal to the theme that you want to define
|
||||
custom colors, e.g., when you want to override the `primary` color:
|
||||
|
||||
``` yaml
|
||||
theme:
|
||||
palette:
|
||||
primary: custom
|
||||
```
|
||||
|
||||
Let's say you're :fontawesome-brands-youtube:{ style="color: #EE0F0F" }
|
||||
__YouTube__, and want to set the primary color to your brand's palette. Just
|
||||
add:
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Changing the language
|
||||
|
||||
Material for MkDocs supports internationalization (i18n) and provides
|
||||
translations for template variables and labels in 50+ languages. Additionally,
|
||||
translations for template variables and labels in 60+ languages. Additionally,
|
||||
the site search can be configured to use a language-specific stemmer, if
|
||||
available.
|
||||
|
||||
@ -126,7 +126,7 @@ Click on a tile to change the directionality:
|
||||
button.addEventListener("click", function() {
|
||||
var attr = this.getAttribute("data-md-dir")
|
||||
document.body.dir = attr
|
||||
var name = document.querySelector("#__code_3 code span.l")
|
||||
var name = document.querySelector("#__code_2 code span.l")
|
||||
name.textContent = attr
|
||||
})
|
||||
})
|
||||
|
@ -199,28 +199,38 @@ The following configuration options are available:
|
||||
|
||||
The following configuration options are available for external assets:
|
||||
|
||||
[`external_assets`](#+privacy.external_assets){ #+privacy.external_assets }
|
||||
[`assets`](#+privacy.assets){ #+privacy.assets }
|
||||
|
||||
: :octicons-milestone-24: Default: `bundle` – This option specifies what the
|
||||
plugin should do when encountering external assets. There are two options:
|
||||
while `report` will issue warning messages during the build, `bundle` will
|
||||
automatically download all external files and adjust all references:
|
||||
: :octicons-milestone-24: Default: `true` – This option specifies whether the
|
||||
plugin should scan the HTML output to detect and process external assets:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- privacy:
|
||||
external_assets: bundle
|
||||
assets: true
|
||||
```
|
||||
|
||||
If you've removed all external assets from your project via [customization],
|
||||
it's still a good idea to enable the plugin and set the mode to `report`,
|
||||
as the plugin will make sure that there are no hidden external links in any
|
||||
Markdown files that were unintentionally added.
|
||||
it's still a good idea to enable the plugin, as the plugin will make sure
|
||||
that there are no hidden external links in any Markdown files that were
|
||||
unintentionally added.
|
||||
|
||||
Using `report` in [strict mode] will make the build fail when external
|
||||
Using `assets` in [strict mode] will make the build fail when external
|
||||
assets are detected.
|
||||
|
||||
[`external_assets_dir`](#+privacy.external_assets_dir){ #+privacy.external_assets_dir }
|
||||
[`assets_fetch`](#+privacy.assets_fetch){ #+privacy.assets_fetch }
|
||||
|
||||
: :octicons-milestone-24: Default: `true` – This option specifies whether the
|
||||
plugin should download external assets it encountered and bundle them with
|
||||
your documentation:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- privacy:
|
||||
assets_fetch: true
|
||||
```
|
||||
|
||||
[`assets_fetch_dir`](#+privacy.assets_fetch_dir){ #+privacy.assets_fetch_dir }
|
||||
|
||||
: :octicons-milestone-24: Default: `assets/external` – This option
|
||||
specifies where the downloaded [external assets] will be stored. It's
|
||||
@ -229,12 +239,12 @@ The following configuration options are available for external assets:
|
||||
``` yaml
|
||||
plugins:
|
||||
- privacy:
|
||||
external_assets_dir: assets/external
|
||||
assets_fetch_dir: assets/external
|
||||
```
|
||||
|
||||
The path must be defined relative to [`docs_dir`][docs_dir].
|
||||
|
||||
[`external_assets_include`](#+privacy.external_assets_include){ #+privacy.external_assets_include } :material-alert-decagram:{ .mdx-pulse title="Added on February 6, 2023" }
|
||||
[`assets_include`](#+privacy.assets_include){ #+privacy.assets_include }
|
||||
|
||||
: :octicons-milestone-24: Default: _none_ – This option allows to only include
|
||||
certain external assets for processing by the privacy plugin, so they will
|
||||
@ -243,7 +253,7 @@ The following configuration options are available for external assets:
|
||||
``` yaml
|
||||
plugins:
|
||||
- privacy:
|
||||
external_assets_include:
|
||||
assets_include:
|
||||
- unsplash.com/*
|
||||
```
|
||||
|
||||
@ -265,7 +275,7 @@ The following configuration options are available for external assets:
|
||||
differently from others or exclude some images from downloading, you can
|
||||
use multiple instances of the [built-in privacy plugin].
|
||||
|
||||
[`external_assets_exclude`](#+privacy.external_assets_exclude){ #+privacy.external_assets_exclude }
|
||||
[`assets_exclude`](#+privacy.assets_exclude){ #+privacy.assets_exclude }
|
||||
|
||||
: :octicons-milestone-24: Default: _none_ – This option allows to exclude
|
||||
certain external assets from processing by the privacy plugin, so they will
|
||||
@ -274,7 +284,7 @@ The following configuration options are available for external assets:
|
||||
``` yaml
|
||||
plugins:
|
||||
- privacy:
|
||||
external_assets_exclude: # (1)!
|
||||
assets_exclude: # (1)!
|
||||
- cdn.jsdelivr.net/npm/mathjax@3/*
|
||||
- giscus.app/*
|
||||
```
|
||||
@ -313,7 +323,7 @@ The following configuration options are available for external assets:
|
||||
[customization]: ../customization.md
|
||||
[strict mode]: https://www.mkdocs.org/user-guide/configuration/#strict
|
||||
[docs_dir]: https://www.mkdocs.org/user-guide/configuration/#docs_dir
|
||||
[MathJax]: ../reference/mathjax.md
|
||||
[MathJax]: ../reference/math.md
|
||||
[MathJax can be self-hosted]: https://docs.mathjax.org/en/latest/web/hosting.html
|
||||
[Giscus can be self-hosted]: https://github.com/giscus/giscus/blob/main/SELF-HOSTING.md
|
||||
[comment system]: adding-a-comment-system.md
|
||||
@ -325,7 +335,7 @@ The following configuration options are available for external assets:
|
||||
[technical limitations]: #limitations
|
||||
[built-in optimize plugin]: building-an-optimized-site.md#built-in-optimize-plugin
|
||||
|
||||
#### External links :material-alert-decagram:{ .mdx-pulse title="Added on October 18, 2022" }
|
||||
#### External links
|
||||
|
||||
[:octicons-heart-fill-24:{ .mdx-heart } Sponsors only][Insiders]{ .mdx-insiders } ·
|
||||
[:octicons-tag-24: insiders-4.26.0][Insiders] ·
|
||||
@ -333,7 +343,7 @@ The following configuration options are available for external assets:
|
||||
|
||||
The following configuration options are available for external links:
|
||||
|
||||
[`external_links`](#+privacy.external_links){ #+privacy.external_links }
|
||||
[`links`](#+privacy.links){ #+privacy.links }
|
||||
|
||||
: :octicons-milestone-24: Default: `true` – This option specifies whether the
|
||||
plugin should parse and process external links. If you want to speed up
|
||||
@ -342,10 +352,10 @@ The following configuration options are available for external links:
|
||||
``` yaml
|
||||
plugins:
|
||||
- privacy:
|
||||
external_links: !ENV [CI, false]
|
||||
links: !ENV [CI, false]
|
||||
```
|
||||
|
||||
[`external_links_attr_map`](#+privacy.external_links_attr_map){ #+privacy.external_links_attr_map }
|
||||
[`links_attr_map`](#+privacy.links_attr_map){ #+privacy.links_attr_map }
|
||||
|
||||
: :octicons-milestone-24: Default: _None_ – This option specifies custom
|
||||
attributes that should be added to external links, like for example
|
||||
@ -354,11 +364,11 @@ The following configuration options are available for external links:
|
||||
``` yaml
|
||||
plugins:
|
||||
- privacy:
|
||||
external_links_attr_map:
|
||||
links_attr_map:
|
||||
target: _blank
|
||||
```
|
||||
|
||||
[`external_links_noopener`](#+privacy.external_links_noopener){ #+privacy.external_links_noopener }
|
||||
[`links_noopener`](#+privacy.links_noopener){ #+privacy.links_noopener }
|
||||
|
||||
: :octicons-milestone-24: Default: `true` – This option specifies whether the
|
||||
plugin should automatically add [`rel="noopener"`][noopener] to all links
|
||||
@ -367,7 +377,7 @@ The following configuration options are available for external links:
|
||||
``` yaml
|
||||
plugins:
|
||||
- privacy:
|
||||
external_links_noopener: true
|
||||
links_noopener: true
|
||||
```
|
||||
|
||||
[noopener]: https://mathiasbynens.github.io/rel-noopener/
|
||||
@ -484,27 +494,30 @@ carried out. You might want to:
|
||||
`.cache` directory in between builds. Taking the example from the
|
||||
[publishing guide], add the following lines:
|
||||
|
||||
``` yaml hl_lines="15-18"
|
||||
``` yaml hl_lines="15-21"
|
||||
name: ci
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.x
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
key: ${{ github.ref }}
|
||||
path: .cache
|
||||
- run: pip install mkdocs-material
|
||||
- run: mkdocs gh-deploy --force
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.x
|
||||
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
key: mkdocs-material-${{ env.cache_id }}
|
||||
path: .cache
|
||||
restore-keys: |
|
||||
mkdocs-material-
|
||||
- run: pip install mkdocs-material
|
||||
- run: mkdocs gh-deploy --force
|
||||
```
|
||||
|
||||
[publishing guide]: ../publishing-your-site.md#with-github-actions
|
||||
|
@ -82,8 +82,8 @@ See reference for usage:
|
||||
[MathJax]: https://www.mathjax.org/
|
||||
[KaTeX]: https://github.com/Khan/KaTeX
|
||||
[additional JavaScript]: ../../customization.md#additional-javascript
|
||||
[Using block syntax]: ../../reference/mathjax.md#using-block-syntax
|
||||
[Using inline block syntax]: ../../reference/mathjax.md#using-inline-block-syntax
|
||||
[Using block syntax]: ../../reference/math.md#using-block-syntax
|
||||
[Using inline block syntax]: ../../reference/math.md#using-inline-block-syntax
|
||||
|
||||
### BetterEm
|
||||
|
||||
@ -371,6 +371,18 @@ The following configuration options are supported:
|
||||
syntax highlighting using [Pygments], so they don't apply if `use_pygments`
|
||||
is set to `false`.
|
||||
|
||||
[`pygments_lang_class`](#+pymdownx.highlight.pygments_lang_class){ #+pymdownx.highlight.pygments_lang_class }
|
||||
|
||||
: :octicons-milestone-24: Default: `false` – This option instructs [Pygments]
|
||||
to add a CSS class to identify the language of the code block, which is
|
||||
essential for custom annotation markers to function:
|
||||
|
||||
``` yaml
|
||||
markdown_extensions:
|
||||
- pymdownx.highlight:
|
||||
pygments_lang_class: true
|
||||
```
|
||||
|
||||
[`auto_title`](#+pymdownx.highlight.auto_title){ #+pymdownx.highlight.auto_title }
|
||||
|
||||
: :octicons-milestone-24: Default: `false` – This option will automatically
|
||||
@ -428,6 +440,18 @@ The following configuration options are supported:
|
||||
anchor_linenums: true
|
||||
```
|
||||
|
||||
[`line_spans`](#+pymdownx.highlight.line_spans){ #+pymdownx.highlight.line_spans }
|
||||
|
||||
: :octicons-milestone-24: Default: _none_ – When this option is set, each
|
||||
line of a code block is wrapped in a `span`, which is essential for features
|
||||
like line highlighting to work correctly:
|
||||
|
||||
``` yaml
|
||||
markdown_extensions:
|
||||
- pymdownx.highlight:
|
||||
line_spans: __span
|
||||
```
|
||||
|
||||
The other configuration options of this extension are not officially supported
|
||||
by Material for MkDocs, which is why they may yield unexpected results. Use
|
||||
them at your own risk.
|
||||
|
90
docs/setup/index.md
Normal file
@ -0,0 +1,90 @@
|
||||
# Setup
|
||||
|
||||
Material for MkDocs offers a wide range of options for customizing your
|
||||
documentation. In this section, we will explain how you can create a meaningful
|
||||
structure for your site, change the look and feel, add a blog and comment system,
|
||||
and build a highly optimized site.
|
||||
|
||||
## Site structure
|
||||
|
||||
Set up and customize the structure of your documentation by configuring the
|
||||
header and footer to your taste, choosing among many modes of navigation,
|
||||
setting up site search, and more.
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- :fontawesome-solid-earth-americas: __[Language]__ – Choose out of the 60+ supported languages or add a new one
|
||||
- :material-page-layout-sidebar-left: __[Navigation]__ – Create a clear, concise, and comprehensive navigation structure
|
||||
- :material-page-layout-header: __[Header]__ – Customize the behavior of the header, add an announcement bar
|
||||
- :material-page-layout-footer: __[Footer]__ – Add links to your social media profiles or websites in the footer
|
||||
- :material-tab-search: __[Search]__ – Set up and configure search, running entirely in the user's browser
|
||||
- :material-tag-plus-outline: __[Tags]__ – Categorize your pages with tags and group related pages
|
||||
|
||||
</div>
|
||||
|
||||
[Language]: changing-the-language.md
|
||||
[Navigation]: setting-up-navigation.md
|
||||
[Header]: setting-up-the-header.md
|
||||
[Footer]: setting-up-the-footer.md
|
||||
[Search]: setting-up-site-search.md
|
||||
[Tags]: setting-up-tags.md
|
||||
|
||||
|
||||
## Appearance
|
||||
|
||||
Match your brand's colors, fonts, icons, logo, and more with a few lines of
|
||||
configuration – Material for MkDocs makes it easy to extend the basic
|
||||
configuration or alter the appearance.
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- :material-brush-variant: __[Colors]__ Change colors with an existing color palette or customize with CSS
|
||||
- :material-format-font: __[Fonts]__ – Choose among 1,000 Google Fonts or load self-hosted fonts
|
||||
- :material-google-downasaur: __[Logo & Icons]__ – Change the logo, use any of the 8,000+ icons, or add new ones
|
||||
- :material-cards-variant: __[Social Cards]__ – Automatically create social media previews when sharing links
|
||||
|
||||
</div>
|
||||
|
||||
[Colors]: changing-the-colors.md
|
||||
[Fonts]: changing-the-fonts.md
|
||||
[Logo & Icons]: changing-the-logo-and-icons.md
|
||||
[Social Cards]: setting-up-social-cards.md
|
||||
|
||||
## Content
|
||||
|
||||
Create a blog, integrate a comment system, connect a git repository, and set up
|
||||
versioned documentation that matches your project's versioning methodology.
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- :material-book-open-outline: __[Blog]__ – Set up a standalone blog or host it alongside your documentation
|
||||
- :material-comment-text-outline: __[Comment System]__ – Add a third-party comment system on any page or footer
|
||||
- :octicons-versions-16: __[Versioning]__ – Deploy multiple versions by integrating with external utilities
|
||||
- :octicons-repo-16: __[Repository]__ – Connect your documentation to your git repository
|
||||
|
||||
</div>
|
||||
|
||||
[Blog]: setting-up-a-blog.md
|
||||
[Comment System]: adding-a-comment-system.md
|
||||
[Versioning]: setting-up-versioning.md
|
||||
[Repository]: adding-a-git-repository.md
|
||||
|
||||
## Optimization
|
||||
|
||||
Add site analytics and build an optimized site by adding automatic image
|
||||
compression, complying with GDPR data privacy regulations, and making it
|
||||
offline-capable.
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- :material-google-analytics: __[Site analytics]__ – Learn how your users experience your documentation
|
||||
- :material-screwdriver: __[Optimized site]__ – Create optimized sites that rank great on search engines
|
||||
- :octicons-lock-16: __[Data Privacy]__ – Ensure compliance with data privacy regulations
|
||||
- :octicons-cloud-offline-16: __[Offline usage]__ – Build an online and offline-capable documentation
|
||||
|
||||
</div>
|
||||
|
||||
[Site analytics]: setting-up-site-analytics.md
|
||||
[Optimized site]: building-an-optimized-site.md
|
||||
[Data Privacy]: ensuring-data-privacy.md
|
||||
[Offline usage]: building-for-offline-usage.md
|
@ -93,7 +93,7 @@ The following configuration options are available:
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
blog_dir: path/to/folder
|
||||
blog_dir: blog
|
||||
```
|
||||
|
||||
=== "Standalone"
|
||||
@ -106,6 +106,21 @@ The following configuration options are available:
|
||||
|
||||
The path must be defined relative to [`docs_dir`][docs_dir].
|
||||
|
||||
[`blog_toc`](#+blog.blog_toc){ #+blog.blog_toc }
|
||||
|
||||
: :octicons-milestone-24: Default: `false` – This option specifies whether
|
||||
indexes include a table of contents with all post titles on the
|
||||
right side as an overview:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
blog_toc: true
|
||||
```
|
||||
|
||||
Note that this setting is also used as the default value for `archive_toc`
|
||||
and `categories_toc`, unless those settings are explicitly defined.
|
||||
|
||||
__The built-in blog plugin has dozens of options that allow for advanced
|
||||
configuration. It's a good idea to [start writing your first post], and come
|
||||
back here later for fine-tuning the output.__
|
||||
@ -493,6 +508,18 @@ The following configuration options are available for archive index generation:
|
||||
archive_url_format: "{date}"
|
||||
```
|
||||
|
||||
[`archive_toc`](#+blog.archive_toc){ #+blog.archive_toc }
|
||||
|
||||
: :octicons-milestone-24: Default: `false` – This option specifies whether an
|
||||
archive index includes a table of contents with all post titles on the
|
||||
right side as an overview:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
archive_toc: true
|
||||
```
|
||||
|
||||
#### Categories
|
||||
|
||||
The following configuration options are available for category index generation:
|
||||
@ -582,18 +609,6 @@ The following configuration options are available for category index generation:
|
||||
categories_slugify_separator: "-"
|
||||
```
|
||||
|
||||
[`categories_toc`](#+blog.categories_toc){ #+blog.categories_toc }
|
||||
|
||||
: :octicons-milestone-24: Default: `false` – This option specifies whether a
|
||||
category index includes a table of contents with all post titles on the
|
||||
right side as an overview:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
categories_toc: true
|
||||
```
|
||||
|
||||
[`categories_allowed`](#+blog.categories_allowed){ #+blog.categories_allowed }
|
||||
|
||||
: :octicons-milestone-24: Default: _none_ – This option specifies the
|
||||
@ -610,6 +625,18 @@ The following configuration options are available for category index generation:
|
||||
- Performance
|
||||
```
|
||||
|
||||
[`categories_toc`](#+blog.categories_toc){ #+blog.categories_toc }
|
||||
|
||||
: :octicons-milestone-24: Default: `false` – This option specifies whether a
|
||||
category index includes a table of contents with all post titles on the
|
||||
right side as an overview:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
categories_toc: true
|
||||
```
|
||||
|
||||
#### Pagination
|
||||
|
||||
The following configuration options are available for index pagination:
|
||||
|
@ -31,9 +31,27 @@ are rebound automatically, i.e., __Material for MkDocs now behaves like a Single
|
||||
Page Application__. Now, the search index survives navigation, which is
|
||||
especially useful for large documentation sites.
|
||||
|
||||
[Instant loading support]: https://github.com/squidfunk/mkdocs-material/releases/tag/5.2.0
|
||||
[Instant loading support]: https://github.com/squidfunk/mkdocs-material/releases/tag/5.0.0
|
||||
[XHR]: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
|
||||
|
||||
#### Instant prefetching :material-alert-decagram:{ .mdx-pulse title="Added on June 15, 2023" }
|
||||
|
||||
[:octicons-heart-fill-24:{ .mdx-heart } Sponsors only][Insiders]{ .mdx-insiders } ·
|
||||
[:octicons-tag-24: insiders-4.36.0][Insiders] ·
|
||||
:octicons-beaker-24: Experimental
|
||||
|
||||
Instant prefetching is a new experimental feature that will start to fetch a
|
||||
page once the user hovers over a link. This will reduce the perceived loading
|
||||
time for the user, especially on slow connections, as the page will be available
|
||||
immediately upon navigation. Enable it with:
|
||||
|
||||
``` yaml
|
||||
theme:
|
||||
features:
|
||||
- navigation.instant
|
||||
- navigation.instant.prefetch
|
||||
```
|
||||
|
||||
### Anchor tracking
|
||||
|
||||
[:octicons-tag-24: 8.0.0][Anchor tracking support] ·
|
||||
@ -262,16 +280,19 @@ navigation section:
|
||||
``` yaml
|
||||
nav:
|
||||
- Section:
|
||||
- section/index.md
|
||||
- section/index.md # (1)!
|
||||
- Page 1: section/page-1.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 enabled]: ../assets/screenshots/navigation-index-on.png
|
||||
[Section index pages disabled]: ../assets/screenshots/navigation-index-off.png
|
||||
[toc.integrate]: #navigation-integration
|
||||
[index pages]: https://www.mkdocs.org/user-guide/writing-your-docs/#index-pages
|
||||
|
||||
### Table of contents
|
||||
|
||||
|
@ -73,17 +73,25 @@ The following configuration options are supported:
|
||||
- `es` – Spanish
|
||||
- `fi` – Finnish
|
||||
- `fr` – French
|
||||
- `hi` – Hindi
|
||||
- `hu` – Hungarian
|
||||
- `hy` – Armenian
|
||||
- `it` – Italian
|
||||
- `ja` – Japanese
|
||||
- `kn` - Kannada
|
||||
- `ko` – Korean
|
||||
- `no` – Norwegian
|
||||
- `pt` – Portuguese
|
||||
- `ro` – Romanian
|
||||
- `ru` – Russian
|
||||
- `sa` – Sanskrit
|
||||
- `sv` – Swedish
|
||||
- `ta` – Tamil
|
||||
- `te` – Telugu
|
||||
- `th` – Thai
|
||||
- `tr` – Turkish
|
||||
- `vi` – Vietnamese
|
||||
- `zh` – Chinese
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -141,7 +141,7 @@ The following configuration options are available:
|
||||
``` yaml
|
||||
plugins:
|
||||
- tags:
|
||||
tags_compare: !!python/name:material.plugins.tags.plugin.casefold
|
||||
tags_compare: !!python/name:material.plugins.tags.casefold
|
||||
```
|
||||
|
||||
You can also define your own comparison function which must return a tag
|
||||
|
@ -70,6 +70,7 @@ The following properties are available for each link:
|
||||
* :fontawesome-brands-linkedin: – `fontawesome/brands/linkedin`
|
||||
* :fontawesome-brands-pied-piper-alt: – `fontawesome/brands/pied-piper-alt`
|
||||
* :fontawesome-brands-slack: – `fontawesome/brands/slack`
|
||||
* :fontawesome-brands-discord: – `fontawesome/brands/discord`
|
||||
|
||||
[`link`](#+social.link){ #+social.link }
|
||||
|
||||
|
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M320 96v320a160.019 160.019 0 0 0 113.138-46.862 160.019 160.019 0 0 0 34.683-174.367 160.006 160.006 0 0 0-86.591-86.592A160.019 160.019 0 0 0 320 96ZM0 256l160.002 160 160.001-160L160.002 96 0 256Zm480 0a160 160 0 0 0 160 160V96a160.002 160.002 0 0 0-160 160Z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M320 96v320a160.019 160.019 0 0 0 113.138-46.862 160.019 160.019 0 0 0 34.683-174.367 160.006 160.006 0 0 0-86.591-86.592A160.019 160.019 0 0 0 320 96ZM0 256l160.002 160 160.001-160L160.002 96 0 256Zm480 0a160 160 0 0 0 160 160V96a160.002 160.002 0 0 0-160 160Z"/></svg>
|
Before Width: | Height: | Size: 551 B After Width: | Height: | Size: 551 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"/></svg>
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |