Merge branch 'master' into update-to-mermaid-10.6.0
BIN
.github/assets/sponsors/sponsor-trendpop.png
vendored
Normal file
After Width: | Height: | Size: 28 KiB |
43
CHANGELOG
@ -1,3 +1,46 @@
|
||||
mkdocs-material-9.4.12+insiders-4.45.0 (2023-11-24)
|
||||
|
||||
* Added support for sorting blog categories by post count or custom function
|
||||
* Improved tags plugin to generate Unicode-aware slugs by default
|
||||
* Fixed non-deterministic order of multiple authors in blog plugin
|
||||
|
||||
mkdocs-material-9.4.12 (2023-11-24)
|
||||
|
||||
* Improved blog plugin to generate Unicode-aware slugs by default
|
||||
* Fixed non-deterministic order of categories in blog plugin
|
||||
|
||||
mkdocs-material-9.4.11+insiders-4.44.0 (2023-11-23)
|
||||
|
||||
* Added pagination settings for archive pages in blog plugin
|
||||
* Added pagination settings for category pages in blog plugin
|
||||
|
||||
mkdocs-material-9.4.11 (2023-11-23)
|
||||
|
||||
* Fixed #6364: Search plugin crashing when enabling theme while serving
|
||||
* Fixed blog plugin crashing when disabling pagination
|
||||
|
||||
mkdocs-material-9.4.10+insiders-4.43.1 (2023-11-19)
|
||||
|
||||
* Added third-party theme support in projects plugin, improving editing
|
||||
* Fixed #6360: Projects plugin crashes when theme is not Material for MkDocs
|
||||
* Fixed #6306: Projects plugin not reloading nested project configuration
|
||||
|
||||
mkdocs-material-9.4.10 (2023-11-19)
|
||||
|
||||
* Fixed #6356: Version selector can't be disabled via mike's configuration
|
||||
* Fixed #6281: Navigation not rendering due to Safari bug (9.4.2 regression)
|
||||
* Fixed #6261: Navigation expansion animates on first load (9.4.2 regression)
|
||||
|
||||
mkdocs-material-9.4.9 (2023-11-17)
|
||||
|
||||
* Fixed #6344: Long entries cutoff in table of contents
|
||||
* Fixed #6336: Custom template for glob archive not working with pagination
|
||||
* Fixed #6328: Blog plugin crashes for locales with dashes, e.g. pt-BR
|
||||
* Fixed #6327: Copy-to-clipboard button doesn't trim trailing line feed
|
||||
* Fixed #6302: Version strings not matched when using mike, only aliases
|
||||
* Fixed instant navigation progress indicator for gzipped content in Chrome
|
||||
* Fixed rendering bug on details marker rotation in Firefox
|
||||
|
||||
mkdocs-material-9.4.8+insiders-4.43.0 (2023-11-05)
|
||||
|
||||
* Added support for GitLab committers (document contributors)
|
||||
|
@ -58,6 +58,9 @@
|
||||
<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>
|
||||
<a href="https://www.trendpop.com/" target=_blank><img
|
||||
src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-trendpop.png" height="120"
|
||||
/></a>
|
||||
</p>
|
||||
<p> </p>
|
||||
<p align="center"><strong>Bronze sponsors</strong></p>
|
||||
|
@ -2,6 +2,32 @@
|
||||
|
||||
## Material for MkDocs
|
||||
|
||||
### 9.4.12 <small>November 24, 2023</small> { id="9.4.12" }
|
||||
|
||||
- Improved blog plugin to generate Unicode-aware slugs by default
|
||||
- Fixed non-deterministic order of categories in blog plugin
|
||||
|
||||
### 9.4.11 <small>November 23, 2023</small> { id="9.4.11" }
|
||||
|
||||
- Fixed #6364: Search plugin crashing when enabling theme while serving
|
||||
- Fixed blog plugin crashing when disabling pagination
|
||||
|
||||
### 9.4.10 <small>November 19, 2023</small> { id="9.4.10" }
|
||||
|
||||
- Fixed #6356: Version selector can't be disabled via mike's configuration
|
||||
- Fixed #6281: Navigation not rendering due to Safari bug (9.4.2 regression)
|
||||
- Fixed #6261: Navigation expansion animates on first load (9.4.2 regression)
|
||||
|
||||
### 9.4.9 <small>November 17, 2023</small> { id="9.4.9" }
|
||||
|
||||
- Fixed #6344: Long entries cutoff in table of contents
|
||||
- Fixed #6336: Custom template for glob archive not working with pagination
|
||||
- Fixed #6328: Blog plugin crashes for locales with dashes, e.g. `pt-BR`
|
||||
- Fixed #6327: Copy-to-clipboard button doesn't trim trailing line feed
|
||||
- Fixed #6302: Version strings not matched when using mike, only aliases
|
||||
- Fixed instant navigation progress indicator for gzipped content in Chrome
|
||||
- Fixed rendering bug on details marker rotation in Firefox
|
||||
|
||||
### 9.4.8 <small>November 5, 2023</small> { id="9.4.8" }
|
||||
|
||||
- Fixed invalid local address replacement when using instant loading
|
||||
|
@ -33,7 +33,7 @@ explicitly define them. The default value of the property is always included.
|
||||
|
||||
#### <!-- md:default computed --> – Default value is computed { #default data-toc-label="is computed" }
|
||||
|
||||
Some default values are not set to static values but computed form other values,
|
||||
Some default values are not set to static values but computed from other values,
|
||||
like the site language, repository provider, or other settings.
|
||||
|
||||
#### <!-- md:default none --> – Default value is empty { #default data-toc-label="is empty" }
|
||||
|
@ -66,6 +66,7 @@ theme:
|
||||
"yaml.customTags": [ // (1)!
|
||||
"!ENV scalar",
|
||||
"!ENV sequence",
|
||||
"!relative scalar",
|
||||
"tag:yaml.org,2002:python/name:material.extensions.emoji.to_svg",
|
||||
"tag:yaml.org,2002:python/name:material.extensions.emoji.twemoji",
|
||||
"tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format"
|
||||
|
@ -1,5 +1,32 @@
|
||||
---
|
||||
template: redirect.html
|
||||
location: https://calendly.com/squidfunk/enterprise
|
||||
status: new
|
||||
---
|
||||
|
||||
# Enterprise Feedback
|
||||
|
||||
We highly value the insights of our enterprise users, and we're eager to hear
|
||||
from you. Your feedback is immensely valuable to us. If you're utilizing
|
||||
Material for MkDocs in an enterprise context and would like to share your
|
||||
experiences with us, we'd love to connect and discuss:
|
||||
|
||||
- What you are building with it
|
||||
- What aspects you like about it
|
||||
- What challenges you are facing
|
||||
- What could be improved
|
||||
|
||||
## Let's Connect
|
||||
|
||||
To schedule a convenient appointment, please reach out to us via email at
|
||||
contact@squidfunk.com and provide us with the following details:
|
||||
|
||||
- Your company's name
|
||||
- How you are using Material for MkDocs
|
||||
- Any specific questions or topics you'd like to address
|
||||
|
||||
Once we have this information, we'll promptly get in touch with you to arrange
|
||||
a 30-minute call. Please note that this call is exclusively intended for
|
||||
enterprise users and is not meant for technical support. Instead, it's an
|
||||
opportunity for us to engage in a casual conversation to better understand your
|
||||
unique needs.
|
||||
|
||||
We look forward to our discussion!
|
||||
|
@ -2,6 +2,23 @@
|
||||
|
||||
## Material for MkDocs Insiders
|
||||
|
||||
### 4.45.0 <small>November 24, 2023</small> { id="4.45.0" }
|
||||
|
||||
- Added support for sorting blog categories by post count or custom function
|
||||
- Improved tags plugin to generate Unicode-aware slugs by default
|
||||
- Fixed non-deterministic order of multiple authors in blog plugin
|
||||
|
||||
### 4.44.0 <small>November 23, 2023</small> { id="4.44.0" }
|
||||
|
||||
- Added pagination settings for archive pages in blog plugin
|
||||
- Added pagination settings for category pages in blog plugin
|
||||
|
||||
### 4.43.1 <small>November 19, 2023</small> { id="4.43.1" }
|
||||
|
||||
- Added third-party theme support in projects plugin, improving editing
|
||||
- Fixed #6360: Projects plugin crashes when theme is not Material for MkDocs
|
||||
- Fixed #6306: Projects plugin not reloading nested project configuration
|
||||
|
||||
### 4.43.0 <small>November 5, 2023</small> { id="4.43.0" }
|
||||
|
||||
- Added support for GitLab committers (document contributors)
|
||||
|
148
docs/insiders/community-experts-program/index.md
Normal file
@ -0,0 +1,148 @@
|
||||
---
|
||||
title: Community Experts Program
|
||||
status: new
|
||||
---
|
||||
|
||||
# Calling for Community Experts
|
||||
|
||||
Interested in joining the Material for MkDocs team as a Community Expert?
|
||||
We're on the lookout for individuals who are passionate about supporting our
|
||||
awesome community. In return for your valuable contributions, time, and
|
||||
insights, __you'll gain free access to the Insiders edition__.
|
||||
|
||||
## Why we need you
|
||||
|
||||
As our project and community continue to grow, so do the questions and needs of
|
||||
our users on our discussion board. Our discussion board is a vital part of our
|
||||
project, serving as a hub for our community to connect and a valuable knowledge
|
||||
base to complement our documentation.
|
||||
|
||||
We're eager to keeping it well-maintained, organized, easy to search and address
|
||||
all queries which is why we need extra hands to keep up with the demand.
|
||||
|
||||
That's why we're bulding a team of Community Experts!
|
||||
|
||||
## Your role
|
||||
|
||||
As a Community Expert, your role primarily involves active participation on
|
||||
our [discussion board], where we'd expect you to be:
|
||||
|
||||
- Answering discussions to help users with their questions
|
||||
- Providing guidance regarding implementations
|
||||
- Sharing insights into customizations and workarounds
|
||||
- Optimizing searchability by adjusting discussion titles with relevant keywords
|
||||
|
||||
## Your benefits
|
||||
|
||||
Here is a list of the benefits we offer to our Community Experts:
|
||||
|
||||
- __Free access to Material for MkDocs Insiders__ – Exclusive Access to all of
|
||||
our Material for MkDocs Insiders features for _non-commercial use_.[^1]
|
||||
|
||||
- __Close communication with the team__ – Stay connected with us through various
|
||||
channels, including calls and internal project management tools.
|
||||
|
||||
- __GitHub profile boost__ – Enhance your GitHub profile's visibility and
|
||||
credibility as your activity increases, earning you valuable badges that can
|
||||
enhance your credibility.
|
||||
|
||||
[^1]:
|
||||
Access to Insiders is granted to your primary account, i.e., the account
|
||||
with which you're contributing to the project. It cannot be transferred to
|
||||
another account. Additionally, it cannot be used for commercial purposes.
|
||||
|
||||
## Your knowledge & skills
|
||||
|
||||
To be a successful Community Expert, your skills should include the following:
|
||||
|
||||
- __Material and MkDocs allrounder__ – You have an understanding of Material
|
||||
for MkDocs and the MkDocs ecosystem, including many of its extensions and
|
||||
plugins.
|
||||
|
||||
- __Great communicator__ – You enjoy helping others in a productive,
|
||||
constructive and friendly manner and use inclusive and welcoming language.
|
||||
|
||||
- __Independent worker__ – You are self-motivated, stay up-to-date with
|
||||
project developments, regularly check the discussion board, and respond to
|
||||
notifications in reasonable time.
|
||||
|
||||
[discussion board]: https://github.com/squidfunk/mkdocs-material/discussions
|
||||
[documentation]: https://squidfunk.github.io/mkdocs-material/
|
||||
[contribution guides]: ../contributing/index.md
|
||||
|
||||
## Your time commitment
|
||||
|
||||
We don't require a fixed number of hours each week; instead, we ask for a
|
||||
minimum of __five answered discussions per month[^2]__, which amounts to
|
||||
slightly more than one per week. Your active interaction within the community is
|
||||
highly valued.
|
||||
|
||||
To do this effectively, it's best to regularly check the discussion board to see
|
||||
where you can offer help. The time you invest may vary depending on the
|
||||
complexity of the topics and questions.
|
||||
|
||||
Upon joining, you'll receive access to the Insiders' edition for as long as you
|
||||
continue to assist us. Access will be renewed every three months, allowing you
|
||||
the flexibility to continue your contributions or take a break as needed.
|
||||
|
||||
[^2]:
|
||||
An answered discussion is a collaborative interaction where knowledge and
|
||||
expertise are shared, resulting in resolutions or clarifications that benefit
|
||||
the user and our entire community. In essence, it embodies the spirit of
|
||||
cooperation and support within our community, highlighting the power of
|
||||
collective wisdom and the willingness to assist and uplift one another.
|
||||
|
||||
## Ready to get started?
|
||||
|
||||
Since we have a limited number of seats for these roles[^3], we would like to
|
||||
get to know you before you become one of our Community Experts. Here's how to
|
||||
get started:
|
||||
|
||||
[^3]:
|
||||
Please note that we're currently limiting the number of seats on the
|
||||
Community Experts program to three. We will update this page when we'll
|
||||
expand the team, which is when we'll be accepting new applications.
|
||||
|
||||
### Step 1: Get in touch
|
||||
|
||||
Send us an email introducing yourself, sharing a bit about your background, and
|
||||
include a link to your GitHub profile. Additionally, provide links to three
|
||||
previous discussions you've answered on the discussion board, where you've
|
||||
assisted another community member.
|
||||
|
||||
Please use the following email template to reach out to us at
|
||||
community@squidfunk.com:
|
||||
|
||||
```
|
||||
Subject: Community Expert
|
||||
|
||||
Intro: Tell us a bit about yourself.
|
||||
- Name:
|
||||
- Background:
|
||||
- Profession:
|
||||
- GitHub profile:
|
||||
|
||||
Answered discussions
|
||||
- Link 1:
|
||||
- Link 2:
|
||||
- Link 3:
|
||||
```
|
||||
|
||||
### Step 2: Evaluation
|
||||
|
||||
After receiving and reviewing your application, we will get in touch with you
|
||||
to discuss everything you need to know to get started. If you get selected, we
|
||||
will set you up as a collaborator and provide you immediate access to the
|
||||
Insiders edition for three months.
|
||||
|
||||
### Step 3: Dive in
|
||||
|
||||
Let's get started! You can actively begin participating in five discussions per
|
||||
month. We trust you to take the lead, and we won't do strict monitoring. Simply
|
||||
ensure that you are consistently listed on the _Most Helpful_ list, located on
|
||||
the discussion board's left side, under the categories.
|
||||
---
|
||||
|
||||
__Ready to join us?__
|
||||
|
||||
Sounds good? Let's give it a try!
|
@ -1,12 +1,12 @@
|
||||
# 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
|
||||
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
|
||||
## General
|
||||
|
||||
[__Why is the Insiders edition offered as a subscription model?__](#insiders-subscription){ #insiders-subscription }
|
||||
|
||||
@ -19,23 +19,23 @@ 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.
|
||||
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
|
||||
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
|
||||
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
|
||||
[Insiders]: ../index.md
|
||||
[Insiders page]: ../index.md#whats-in-it-for-me
|
||||
|
||||
[__How often is the Insiders edition updated?__](#insiders-updates){ #insiders-updates }
|
||||
|
||||
@ -43,7 +43,7 @@ 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
|
||||
## Sponsorship
|
||||
|
||||
[__Can I sponsor the project without a GitHub account?__](#sponsorship-account){ #sponsorship-account }
|
||||
|
||||
@ -57,11 +57,11 @@ 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
|
||||
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
|
||||
__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].
|
||||
@ -108,7 +108,7 @@ 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
|
||||
## Payment & billing
|
||||
|
||||
[__Is there a trial period for the Insiders edition?__](#insiders-trial){ #insiders-trial }
|
||||
|
||||
@ -118,16 +118,16 @@ 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
|
||||
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,
|
||||
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,
|
||||
you can find a selection of our sponsorship tiers on [Ko-fi]. Both platforms
|
||||
provide you with a payment receipt once your purchase is successful.
|
||||
|
||||
@ -141,34 +141,34 @@ please don't hesitate to reach out to sponsors@squidfunk.com.
|
||||
|
||||
[__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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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:
|
||||
|
||||
@ -184,12 +184,12 @@ 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
|
||||
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
|
||||
@ -198,7 +198,7 @@ further questions, please contact us at sponsors@squidfunk.com.
|
||||
|
||||
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
|
||||
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
|
||||
@ -210,8 +210,8 @@ reach out as soon as we are live.
|
||||
|
||||
[__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
|
||||
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
|
||||
@ -220,62 +220,62 @@ 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
|
||||
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
|
||||
[overview of these sponsoring goals]: ../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
|
||||
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
|
||||
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
|
||||
## 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
|
||||
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
|
||||
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
|
||||
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
|
||||
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 }
|
||||
@ -289,12 +289,12 @@ 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
|
||||
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
|
||||
@ -302,30 +302,30 @@ from the Insiders features and work together on the project.
|
||||
[mirroring]: https://docs.github.com/en/repositories/creating-and-managing-repositories/duplicating-a-repository
|
||||
|
||||
|
||||
## Runtime & cancellation
|
||||
## 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.
|
||||
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
|
||||
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
|
||||
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
|
||||
@ -333,15 +333,15 @@ that you have a backup of the software if necessary and use the locally installe
|
||||
|
||||
[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
|
||||
## 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
|
||||
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 }
|
||||
@ -349,62 +349,62 @@ organization is also considered commercial use, as with all commercial software.
|
||||
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.
|
||||
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
|
||||
- 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.
|
||||
- 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
|
||||
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
|
||||
[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 feature in Insiders that non-Insiders users can't properly
|
||||
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 feature in Insiders that non-Insiders users can't properly
|
||||
preview are [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
|
||||
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
|
||||
[Card grids]: ../reference/grids.md?h=grids#using-card-grids
|
||||
[getting started guide]: ../getting-started.md#caveats
|
||||
[Card grids]: ../../reference/grids.md?h=grids#using-card-grids
|
||||
|
||||
## Support
|
||||
## 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
|
||||
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].
|
||||
@ -414,15 +414,15 @@ All technical questions should be asked openly on our [discussion board].
|
||||
[__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
|
||||
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
|
||||
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
|
||||
@ -433,49 +433,75 @@ 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.
|
||||
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
|
||||
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.
|
||||
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.
|
||||
|
||||
[__How can I report an issue in my customizations?__](#customizations-issues){ #costumisations-issues }
|
||||
|
||||
## Privacy
|
||||
Please note, that we do not offer support for customizations as they vary
|
||||
widely and are specific to individual cases. Our support is primarily focused on
|
||||
assisting with our core features. When reporting an issue, please remove all
|
||||
customizations to ensure effective problem diagnosis with a minimal reproduction
|
||||
[.zip file], as described in our bug reporting guide. Our [built-in info plugin],
|
||||
which is essential when creating a reproduction, will not function correctly
|
||||
with customizations in place. For questions and issues with customizations,
|
||||
please use our [discussion board] to engage with the community.
|
||||
|
||||
[.zip file]: ../../guides/creating-a-reproduction.md
|
||||
[built-in info plugin]: https://squidfunk.github.io/mkdocs-material/guides/creating-a-reproduction/#creating-a-zip-file
|
||||
|
||||
## 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
|
||||
working on Material for MkDocs, we have limited resources and cannot review
|
||||
and sign agreements.
|
||||
|
||||
[__Will you fill out our companys forms?__](#forms){ #forms }
|
||||
|
||||
To dedicate more time and resources to the development of our projects, we have
|
||||
implemented measures to minimize administrative overhead for our small team. As
|
||||
part of this approach, we have adopted GitHub Sponsors to efficiently handle all
|
||||
transactions for us. Consequently, we have decided to introduce a setup fee for
|
||||
any additional administrative tasks other than those handled by GitHub Sponsors
|
||||
that require our attention and involve the completion of forms or adherence to
|
||||
company processes when purchasing Material for MkDocs Insiders. If your purchase
|
||||
departmenz requires additional time and effort from our team, please be aware
|
||||
that the setup fee will apply. For detailed information and specific inquiries,
|
||||
please reach out to us at sponsors@squidfunk.com.
|
||||
|
||||
[__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.
|
||||
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.
|
||||
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.
|
@ -88,15 +88,16 @@ 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 now__, and
|
||||
access to 24 additional features__ that you can __start using now__, and
|
||||
which are currently exclusively available to sponsors:
|
||||
|
||||
<div class="mdx-columns" markdown>
|
||||
|
||||
- [x] [Blog plugin: advanced settings] :material-alert-decagram:{ .mdx-pulse title="Added on November 23, 2023" }
|
||||
- [x] [Projects plugin] :material-alert-decagram:{ .mdx-pulse title="Added on July 29, 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] [Social plugin: custom layouts]
|
||||
- [x] [Social plugin: background images]
|
||||
- [x] [Code range selection]
|
||||
- [x] [Code annotations: custom selectors]
|
||||
- [x] [Privacy plugin: optimization support]
|
||||
@ -166,6 +167,7 @@ You can cancel your sponsorship anytime.[^5]
|
||||
**Silver sponsors**:
|
||||
|
||||
[![FastAPI]{ style="height: 120px" }](https://fastapi.tiangolo.com/){ target=_blank title="FastAPI" }
|
||||
[![Trendpop]{ style="height: 120px" }](https://www.trendpop.com/){ target=_blank title="Trendpop" }
|
||||
|
||||
**Bronze sponsors**:
|
||||
|
||||
@ -206,6 +208,7 @@ You can cancel your sponsorship anytime.[^5]
|
||||
</div>
|
||||
|
||||
[FastAPI]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-fastapi.png
|
||||
[Trendpop]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-trendpop.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
|
||||
[KX]: https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/sponsors/sponsor-kx.png
|
||||
@ -322,13 +325,14 @@ are released for general availability.
|
||||
- [x] [Social plugin: background images]
|
||||
- [x] [Code range selection]
|
||||
- [x] [Code annotations: custom selectors]
|
||||
- [ ] Code line wrap button
|
||||
- [x] [Blog plugin: advanced settings]
|
||||
|
||||
[Projects plugin]: ../plugins/projects.md
|
||||
[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
|
||||
[Blog plugin: advanced settings]: ../setup/setting-up-a-blog.md#advanced-settings
|
||||
|
||||
### Goals completed
|
||||
|
||||
|
@ -406,35 +406,24 @@ If more than one category is given, they are joined with `/` after slugifying.
|
||||
#### <!-- md:setting config.post_slugify -->
|
||||
|
||||
<!-- md:version 9.2.0 -->
|
||||
<!-- md:default [`toc.slugify`][toc.slugify] -->
|
||||
<!-- md:default [`pymdownx.slugs.slugify`][pymdownx.slugs.slugify] -->
|
||||
|
||||
Use this setting to change the function to use for generating URL-compatible
|
||||
slugs from post titles. [Python Markdown Extensions] comes with a Unicode-aware
|
||||
[`slugify`][pymdownx.slugs.slugify] function:
|
||||
Use this setting to change the function for generating URL-compatible slugs
|
||||
from post titles. By default, the [`slugify`][pymdownx.slugs.slugify] function
|
||||
from [Python Markdown Extensions] is used as follows:
|
||||
|
||||
=== "Unicode"
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
post_slugify: !!python/object/apply:pymdownx.slugs.slugify
|
||||
kwds:
|
||||
case: lower
|
||||
```
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
post_slugify: !!python/object/apply:pymdownx.slugs.slugify
|
||||
kwds:
|
||||
case: lower
|
||||
```
|
||||
The default configuration is Unicode-aware and should produce good slugs for all
|
||||
languages. Of course, you can also provide a custom slugification function for
|
||||
more granular control.
|
||||
|
||||
=== "Unicode, case-sensitive"
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
post_slugify: !!python/object/apply:pymdownx.slugs.slugify
|
||||
```
|
||||
|
||||
When your project features non-European languages, it's advisable to use this
|
||||
configuration. Of course, you can also provide a custom slugification function
|
||||
for more granular control.
|
||||
|
||||
[toc.slugify]: https://github.com/Python-Markdown/markdown/blob/1337d0891757e192165668d2606db36cf08e65a9/markdown/extensions/toc.py#L26-L33
|
||||
[pymdownx.slugs.slugify]: https://github.com/facelessuser/pymdown-extensions/blob/01c91ce79c91304c22b4e3d7a9261accc931d707/pymdownx/slugs.py#L59-L65
|
||||
[Python Markdown Extensions]: https://facelessuser.github.io/pymdown-extensions/extras/slugs/
|
||||
|
||||
@ -731,6 +720,42 @@ The following placeholders are available:
|
||||
|
||||
---
|
||||
|
||||
#### <!-- md:setting config.archive_pagination -->
|
||||
|
||||
<!-- md:sponsors -->
|
||||
<!-- md:version insiders-4.44.0 -->
|
||||
<!-- md:default `true` -->
|
||||
|
||||
Use this setting to enable or disable pagination for archive pages. The value
|
||||
of this setting is inherited from [`pagination`][config.pagination], unless it's
|
||||
explicitly set. To disable pagination, use:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
archive_pagination: false
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### <!-- md:setting config.archive_pagination_per_page -->
|
||||
|
||||
<!-- md:sponsors -->
|
||||
<!-- md:version insiders-4.44.0 -->
|
||||
<!-- md:default `10` -->
|
||||
|
||||
Use this setting to change the number of posts rendered per archive page. The
|
||||
value of this setting is inherited from [`pagination_per_page`]
|
||||
[config.pagination_per_page], unless it's explicitly set:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
archive_pagination_per_page: 5
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### <!-- md:setting config.archive_toc -->
|
||||
|
||||
<!-- md:version 9.2.0 -->
|
||||
@ -738,7 +763,7 @@ The following placeholders are available:
|
||||
|
||||
Use this setting to leverage the table of contents to display post titles on all
|
||||
archive pages. The value of this setting is inherited from [`blog_toc`]
|
||||
[config.blog_toc], unless its explicitly set:
|
||||
[config.blog_toc], unless it's explicitly set:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
@ -820,31 +845,23 @@ The following placeholders are available:
|
||||
#### <!-- md:setting config.categories_slugify -->
|
||||
|
||||
<!-- md:version 9.2.0 -->
|
||||
<!-- md:default [`toc.slugify`][toc.slugify] -->
|
||||
<!-- md:default [`pymdownx.slugs.slugify`][pymdownx.slugs.slugify] -->
|
||||
|
||||
Use this setting to change the function to use for generating URL-compatible
|
||||
slugs from categories. [Python Markdown Extensions] comes with a Unicode-aware
|
||||
[`slugify`][pymdownx.slugs.slugify] function:
|
||||
Use this setting to change the function for generating URL-compatible slugs
|
||||
from categories. By default, the [`slugify`][pymdownx.slugs.slugify] function
|
||||
from [Python Markdown Extensions] is used as follows:
|
||||
|
||||
=== "Unicode"
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
post_slugify: !!python/object/apply:pymdownx.slugs.slugify
|
||||
kwds:
|
||||
case: lower
|
||||
```
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
categories_slugify: !!python/object/apply:pymdownx.slugs.slugify
|
||||
kwds:
|
||||
case: lower
|
||||
```
|
||||
|
||||
=== "Unicode, case-sensitive"
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
categories_slugify: !!python/object/apply:pymdownx.slugs.slugify
|
||||
```
|
||||
When your project features non-European languages, it's advisable to use this
|
||||
configuration.
|
||||
The default configuration is Unicode-aware and should produce good slugs for all
|
||||
languages. Of course, you can also provide a custom slugification function for
|
||||
more granular control.
|
||||
|
||||
---
|
||||
|
||||
@ -865,6 +882,46 @@ plugins:
|
||||
|
||||
---
|
||||
|
||||
#### <!-- md:setting config.categories_sort_by -->
|
||||
|
||||
<!-- md:sponsors -->
|
||||
<!-- md:version insiders-4.45.0 -->
|
||||
<!-- md:default `material.plugins.blog.view_name` -->
|
||||
|
||||
Use this setting to specify a custom function for sorting categories. For
|
||||
example, if you want to sort categories by the number of posts they contain,
|
||||
use the following configuration:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
categories_sort_by: !!python/name:material.plugins.blog.view_post_count
|
||||
```
|
||||
|
||||
Don't forget to enable [`categories_sort_reverse`][config.categories_sort_reverse].
|
||||
You can define your own comparison function, which must return something
|
||||
that can be compared while sorting, i.e., a string or number.
|
||||
|
||||
---
|
||||
|
||||
#### <!-- md:setting config.categories_sort_reverse -->
|
||||
|
||||
<!-- md:sponsors -->
|
||||
<!-- md:version insiders-4.45.0 -->
|
||||
<!-- md:default `false` -->
|
||||
|
||||
Use this setting to reverse the order in which categories are sorted. By
|
||||
default, categories are sorted in ascending order, but you can reverse ordering
|
||||
as follows:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
categories_sort_reverse: true
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### <!-- md:setting config.categories_allowed -->
|
||||
|
||||
<!-- md:version 9.2.0 -->
|
||||
@ -888,6 +945,42 @@ this list. Posts can be assigned to categories by using the [`categories`]
|
||||
|
||||
---
|
||||
|
||||
#### <!-- md:setting config.categories_pagination -->
|
||||
|
||||
<!-- md:sponsors -->
|
||||
<!-- md:version insiders-4.44.0 -->
|
||||
<!-- md:default `true` -->
|
||||
|
||||
Use this setting to enable or disable pagination for category pages. The value
|
||||
of this setting is inherited from [`pagination`][config.pagination], unless it's
|
||||
explicitly set. To disable pagination, use:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
categories_pagination: false
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### <!-- md:setting config.categories_pagination_per_page -->
|
||||
|
||||
<!-- md:sponsors -->
|
||||
<!-- md:version insiders-4.44.0 -->
|
||||
<!-- md:default `10` -->
|
||||
|
||||
Use this setting to change the number of posts rendered per category page. The
|
||||
value of this setting is inherited from [`pagination_per_page`]
|
||||
[config.pagination_per_page], unless it's explicitly set:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
categories_pagination_per_page: 5
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### <!-- md:setting config.categories_toc -->
|
||||
|
||||
<!-- md:version 9.2.0 -->
|
||||
@ -895,7 +988,7 @@ this list. Posts can be assigned to categories by using the [`categories`]
|
||||
|
||||
Use this setting to leverage the table of contents to display post titles on all
|
||||
category pages. The value of this setting is inherited from [`blog_toc`]
|
||||
[config.blog_toc], unless its explicitly set:
|
||||
[config.blog_toc], unless it's explicitly set:
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
|
@ -10,6 +10,13 @@ pages in a folder, i.e., a subsection of your project, which is particularly
|
||||
useful to ensure that a certain subset of pages features specific tags, uses a
|
||||
custom template, or is attributed to an author.
|
||||
|
||||
---
|
||||
|
||||
<!-- md:sponsors --> __Sponsors only__ – this plugin is currently reserved to
|
||||
[our awesome sponsors].
|
||||
|
||||
[our awesome sponsors]: ../insiders/index.md
|
||||
|
||||
## Objective
|
||||
|
||||
### How it works
|
||||
|
@ -10,7 +10,13 @@ The optimize plugin automatically identifies and optimizes all media files when
|
||||
As a result, your site loads significantly faster and yields better rankings in
|
||||
search engines.
|
||||
|
||||
---
|
||||
|
||||
<!-- md:sponsors --> __Sponsors only__ – this plugin is currently reserved to
|
||||
[our awesome sponsors].
|
||||
|
||||
[building your project]: ../creating-your-site.md#building-your-site
|
||||
[our awesome sponsors]: ../insiders/index.md
|
||||
|
||||
## Objective
|
||||
|
||||
|
@ -11,6 +11,13 @@ external assets. With just a single line of configuration, the plugin can
|
||||
automatically identify and download external assets, making GDPR compliance
|
||||
as effortless as it can possibly be.
|
||||
|
||||
---
|
||||
|
||||
<!-- md:sponsors --> __Sponsors only__ – this plugin is currently reserved to
|
||||
[our awesome sponsors].
|
||||
|
||||
[our awesome sponsors]: ../insiders/index.md
|
||||
|
||||
## Objective
|
||||
|
||||
### How it works
|
||||
|
@ -10,6 +10,13 @@ distinct projects, build them concurrently and preview them together as one.
|
||||
This is particularly useful when creating a multi-language project, but can also
|
||||
be used to split very large projects into smaller parts.
|
||||
|
||||
---
|
||||
|
||||
<!-- md:sponsors --> __Sponsors only__ – this plugin is currently reserved to
|
||||
[our awesome sponsors].
|
||||
|
||||
[our awesome sponsors]: ../insiders/index.md
|
||||
|
||||
## Objective
|
||||
|
||||
### How it works
|
||||
|
@ -176,35 +176,24 @@ The provided path is resolved from the [`docs` directory][mkdocs.docs_dir].
|
||||
|
||||
<!-- md:sponsors -->
|
||||
<!-- md:version insiders-4.25.0 -->
|
||||
<!-- md:default [`toc.slugify`][toc.slugify] -->
|
||||
<!-- md:default [`pymdownx.slugs.slugify`][pymdownx.slugs.slugify] -->
|
||||
|
||||
Use this setting to change the function to use for generating URL-compatible
|
||||
slugs from tags. [Python Markdown Extensions] comes with a Unicode-aware
|
||||
[`slugify`][pymdownx.slugs.slugify] function:
|
||||
Use this setting to change the function for generating URL-compatible slugs
|
||||
from post titles. By default, the [`slugify`][pymdownx.slugs.slugify] function
|
||||
from [Python Markdown Extensions] is used as follows:
|
||||
|
||||
=== "Unicode"
|
||||
``` yaml
|
||||
plugins:
|
||||
- blog:
|
||||
post_slugify: !!python/object/apply:pymdownx.slugs.slugify
|
||||
kwds:
|
||||
case: lower
|
||||
```
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- tags:
|
||||
tags_slugify: !!python/object/apply:pymdownx.slugs.slugify
|
||||
kwds:
|
||||
case: lower
|
||||
```
|
||||
The default configuration is Unicode-aware and should produce good slugs for all
|
||||
languages. Of course, you can also provide a custom slugification function for
|
||||
more granular control.
|
||||
|
||||
=== "Unicode, case-sensitive"
|
||||
|
||||
``` yaml
|
||||
plugins:
|
||||
- tags:
|
||||
tags_slugify: !!python/object/apply:pymdownx.slugs.slugify
|
||||
```
|
||||
|
||||
When your project features non-European languages, it's advisable to use this
|
||||
configuration. Of course, you can also provide a custom slugification function
|
||||
for more granular control.
|
||||
|
||||
[toc.slugify]: https://github.com/Python-Markdown/markdown/blob/1337d0891757e192165668d2606db36cf08e65a9/markdown/extensions/toc.py#L26-L33
|
||||
[pymdownx.slugs.slugify]: https://github.com/facelessuser/pymdown-extensions/blob/01c91ce79c91304c22b4e3d7a9261accc931d707/pymdownx/slugs.py#L59-L65
|
||||
[Python Markdown Extensions]: https://facelessuser.github.io/pymdown-extensions/extras/slugs/
|
||||
|
||||
|
@ -10,6 +10,13 @@ headlines within the navigation and table of contents. This means that code
|
||||
blocks, icons, emojis and any other inline formatting can be rendered exactly
|
||||
as defined in the page's content.
|
||||
|
||||
---
|
||||
|
||||
<!-- md:sponsors --> __Sponsors only__ – this plugin is currently reserved to
|
||||
[our awesome sponsors].
|
||||
|
||||
[our awesome sponsors]: ../insiders/index.md
|
||||
|
||||
## Objective
|
||||
|
||||
### How it works
|
||||
|
@ -35,6 +35,10 @@ contents:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Configure Git Credentials
|
||||
run: |
|
||||
git config user.name github-actions[bot]
|
||||
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.x
|
||||
@ -90,6 +94,10 @@ contents:
|
||||
if: github.event.repository.fork == false
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Configure Git Credentials
|
||||
run: |
|
||||
git config user.name github-actions[bot]
|
||||
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.x
|
||||
|
@ -2029,6 +2029,7 @@
|
||||
"fontawesome/solid/yen-sign",
|
||||
"fontawesome/solid/yin-yang",
|
||||
"fontawesome/solid/z",
|
||||
"logo-monochrome",
|
||||
"logo",
|
||||
"material/ab-testing",
|
||||
"material/abacus",
|
||||
@ -10168,6 +10169,7 @@
|
||||
"simple/apacheecharts",
|
||||
"simple/apacheflink",
|
||||
"simple/apachegroovy",
|
||||
"simple/apacheguacamole",
|
||||
"simple/apachehadoop",
|
||||
"simple/apachehive",
|
||||
"simple/apachejmeter",
|
||||
@ -10324,6 +10326,7 @@
|
||||
"simple/bitwarden",
|
||||
"simple/bitwig",
|
||||
"simple/blackberry",
|
||||
"simple/blackmagicdesign",
|
||||
"simple/blazemeter",
|
||||
"simple/blazor",
|
||||
"simple/blender",
|
||||
@ -10616,6 +10619,7 @@
|
||||
"simple/delonghi",
|
||||
"simple/delphi",
|
||||
"simple/delta",
|
||||
"simple/deluge",
|
||||
"simple/deno",
|
||||
"simple/denon",
|
||||
"simple/dependabot",
|
||||
@ -10637,6 +10641,7 @@
|
||||
"simple/digg",
|
||||
"simple/digikeyelectronics",
|
||||
"simple/digitalocean",
|
||||
"simple/dinersclub",
|
||||
"simple/dior",
|
||||
"simple/directus",
|
||||
"simple/discogs",
|
||||
@ -10774,6 +10779,7 @@
|
||||
"simple/facebooklive",
|
||||
"simple/faceit",
|
||||
"simple/facepunch",
|
||||
"simple/fairphone",
|
||||
"simple/falco",
|
||||
"simple/falcon",
|
||||
"simple/fampay",
|
||||
@ -10862,6 +10868,7 @@
|
||||
"simple/foxtel",
|
||||
"simple/fozzy",
|
||||
"simple/framer",
|
||||
"simple/framework",
|
||||
"simple/framework7",
|
||||
"simple/franprix",
|
||||
"simple/fraunhofergesellschaft",
|
||||
@ -11067,6 +11074,7 @@
|
||||
"simple/hibernate",
|
||||
"simple/hibob",
|
||||
"simple/hilton",
|
||||
"simple/hiltonhotelsandresorts",
|
||||
"simple/hitachi",
|
||||
"simple/hive",
|
||||
"simple/hive_blockchain",
|
||||
@ -11150,6 +11158,7 @@
|
||||
"simple/inkdrop",
|
||||
"simple/inkscape",
|
||||
"simple/insomnia",
|
||||
"simple/insta360",
|
||||
"simple/instacart",
|
||||
"simple/instagram",
|
||||
"simple/instapaper",
|
||||
@ -11427,6 +11436,7 @@
|
||||
"simple/mastodon",
|
||||
"simple/materialdesign",
|
||||
"simple/materialdesignicons",
|
||||
"simple/materialformkdocs",
|
||||
"simple/matillion",
|
||||
"simple/matomo",
|
||||
"simple/matrix",
|
||||
@ -11458,6 +11468,7 @@
|
||||
"simple/mercedes",
|
||||
"simple/merck",
|
||||
"simple/mercurial",
|
||||
"simple/mermaid",
|
||||
"simple/messenger",
|
||||
"simple/meta",
|
||||
"simple/metabase",
|
||||
@ -11541,6 +11552,7 @@
|
||||
"simple/moscowmetro",
|
||||
"simple/motorola",
|
||||
"simple/mozilla",
|
||||
"simple/mpv",
|
||||
"simple/mqtt",
|
||||
"simple/msi",
|
||||
"simple/msibusiness",
|
||||
@ -11749,6 +11761,7 @@
|
||||
"simple/paypal",
|
||||
"simple/paytm",
|
||||
"simple/pcgamingwiki",
|
||||
"simple/pdm",
|
||||
"simple/peakdesign",
|
||||
"simple/pearson",
|
||||
"simple/peerlist",
|
||||
@ -11799,6 +11812,7 @@
|
||||
"simple/planetscale",
|
||||
"simple/plangrid",
|
||||
"simple/platformdotsh",
|
||||
"simple/platformio",
|
||||
"simple/platzi",
|
||||
"simple/plausibleanalytics",
|
||||
"simple/playcanvas",
|
||||
@ -11838,6 +11852,7 @@
|
||||
"simple/popos",
|
||||
"simple/porsche",
|
||||
"simple/portainer",
|
||||
"simple/portswigger",
|
||||
"simple/postcss",
|
||||
"simple/postgresql",
|
||||
"simple/posthog",
|
||||
@ -12063,6 +12078,7 @@
|
||||
"simple/rust",
|
||||
"simple/rxdb",
|
||||
"simple/ryanair",
|
||||
"simple/rye",
|
||||
"simple/s7airlines",
|
||||
"simple/sabanci",
|
||||
"simple/safari",
|
||||
@ -12082,6 +12098,7 @@
|
||||
"simple/sap",
|
||||
"simple/sass",
|
||||
"simple/sat1",
|
||||
"simple/satellite",
|
||||
"simple/saturn",
|
||||
"simple/saucelabs",
|
||||
"simple/scala",
|
||||
@ -12444,6 +12461,7 @@
|
||||
"simple/trello",
|
||||
"simple/trendmicro",
|
||||
"simple/treyarch",
|
||||
"simple/tricentis",
|
||||
"simple/trilium",
|
||||
"simple/triller",
|
||||
"simple/trino",
|
||||
@ -12612,6 +12630,7 @@
|
||||
"simple/webauthn",
|
||||
"simple/webcomponentsdotorg",
|
||||
"simple/webdriverio",
|
||||
"simple/webex",
|
||||
"simple/webflow",
|
||||
"simple/webgl",
|
||||
"simple/webhint",
|
||||
@ -12628,6 +12647,7 @@
|
||||
"simple/weightsandbiases",
|
||||
"simple/welcometothejungle",
|
||||
"simple/wellfound",
|
||||
"simple/wellsfargo",
|
||||
"simple/wemo",
|
||||
"simple/westerndigital",
|
||||
"simple/wetransfer",
|
||||
@ -12710,6 +12730,7 @@
|
||||
"simple/youtube",
|
||||
"simple/youtubegaming",
|
||||
"simple/youtubemusic",
|
||||
"simple/youtubeshorts",
|
||||
"simple/youtubestudio",
|
||||
"simple/youtubetv",
|
||||
"simple/yubico",
|
||||
|
@ -4,15 +4,36 @@
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"oneOf": [
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "extensions/markdown.json"
|
||||
"$ref": "#/$defs/external"
|
||||
},
|
||||
{
|
||||
"$ref": "extensions/pymdownx.json"
|
||||
"$ref": "#/$defs/external-community"
|
||||
}
|
||||
]
|
||||
},
|
||||
"uniqueItems": true,
|
||||
"minItems": 1
|
||||
"minItems": 1,
|
||||
"$defs": {
|
||||
"external": {
|
||||
"description": "External markdown extensions, schema provided by us",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "extensions/markdown.json"
|
||||
},
|
||||
{
|
||||
"$ref": "extensions/pymdownx.json"
|
||||
}
|
||||
]
|
||||
},
|
||||
"external-community": {
|
||||
"description": "External markdown extensions, schema provided by our community",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "https://raw.githubusercontent.com/Neoteroi/mkdocs-plugins/main/docs/extensions-schema.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -59,6 +59,14 @@
|
||||
"md_in_html"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Sane Lists – Python Markdown",
|
||||
"markdownDescription": "https://python-markdown.github.io/extensions/sane_lists/",
|
||||
"enum": [
|
||||
"markdown.extensions.sane_lists",
|
||||
"sane_lists"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Tables – Python Markdown",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#tables",
|
||||
|
@ -27,9 +27,7 @@
|
||||
{
|
||||
"title": "Arithmatex – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#arithmatex",
|
||||
"enum": [
|
||||
"pymdownx.arithmatex"
|
||||
]
|
||||
"const": "pymdownx.arithmatex"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -63,9 +61,7 @@
|
||||
{
|
||||
"title": "BetterEm – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#betterem",
|
||||
"enum": [
|
||||
"pymdownx.betterem"
|
||||
]
|
||||
"const": "pymdownx.betterem"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -74,9 +70,7 @@
|
||||
{
|
||||
"title": "Caret – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#caret-mark-tilde",
|
||||
"enum": [
|
||||
"pymdownx.caret"
|
||||
]
|
||||
"const": "pymdownx.caret"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
@ -114,9 +108,7 @@
|
||||
{
|
||||
"title": "Critic – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#critic",
|
||||
"enum": [
|
||||
"pymdownx.critic"
|
||||
]
|
||||
"const": "pymdownx.critic"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
@ -145,18 +137,14 @@
|
||||
{
|
||||
"title": "Details – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#details",
|
||||
"enum": [
|
||||
"pymdownx.details"
|
||||
]
|
||||
"const": "pymdownx.details"
|
||||
},
|
||||
{
|
||||
"oneOf": [
|
||||
{
|
||||
"title": "Emoji – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#emoji",
|
||||
"enum": [
|
||||
"pymdownx.emoji"
|
||||
]
|
||||
"const": "pymdownx.emoji"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
@ -208,9 +196,7 @@
|
||||
{
|
||||
"title": "Highlight – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#highlight",
|
||||
"enum": [
|
||||
"pymdownx.highlight"
|
||||
]
|
||||
"const": "pymdownx.highlight"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
@ -267,18 +253,14 @@
|
||||
{
|
||||
"title": "InlineHilite – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#inlinehilite",
|
||||
"enum": [
|
||||
"pymdownx.inlinehilite"
|
||||
]
|
||||
"const": "pymdownx.inlinehilite"
|
||||
},
|
||||
{
|
||||
"oneOf": [
|
||||
{
|
||||
"title": "Keys – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#keys",
|
||||
"enum": [
|
||||
"pymdownx.keys"
|
||||
]
|
||||
"const": "pymdownx.keys"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
@ -320,9 +302,7 @@
|
||||
{
|
||||
"title": "MagicLink – Python Markdown Extensions",
|
||||
"markdownDescription": "https://facelessuser.github.io/pymdown-extensions/extensions/magiclink/",
|
||||
"enum": [
|
||||
"pymdownx.magiclink"
|
||||
]
|
||||
"const": "pymdownx.magiclink"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
@ -410,9 +390,7 @@
|
||||
{
|
||||
"title": "Mark – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#caret-mark-tilde",
|
||||
"enum": [
|
||||
"pymdownx.mark"
|
||||
]
|
||||
"const": "pymdownx.mark"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
@ -440,9 +418,7 @@
|
||||
{
|
||||
"title": "SmartSymbols – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#smartsymbols",
|
||||
"enum": [
|
||||
"pymdownx.smartsymbols"
|
||||
]
|
||||
"const": "pymdownx.smartsymbols"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
@ -569,9 +545,7 @@
|
||||
{
|
||||
"title": "Snippets – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#snippets",
|
||||
"enum": [
|
||||
"pymdownx.snippets"
|
||||
]
|
||||
"const": "pymdownx.snippets"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -580,9 +554,7 @@
|
||||
{
|
||||
"title": "SuperFences – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#superfences",
|
||||
"enum": [
|
||||
"pymdownx.superfences"
|
||||
]
|
||||
"const": "pymdownx.superfences"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
@ -663,9 +635,7 @@
|
||||
{
|
||||
"title": "Tasklist – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#tasklist",
|
||||
"enum": [
|
||||
"pymdownx.tasklist"
|
||||
]
|
||||
"const": "pymdownx.tasklist"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
@ -697,9 +667,7 @@
|
||||
{
|
||||
"title": "Tilde – Python Markdown Extensions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#caret-mark-tilde",
|
||||
"enum": [
|
||||
"pymdownx.tilde"
|
||||
]
|
||||
"const": "pymdownx.tilde"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -13,99 +13,71 @@
|
||||
"title": "Analytics provider",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"provider": {
|
||||
"title": "Analytics provider",
|
||||
"anyOf": [
|
||||
{
|
||||
"title": "Google Analytics",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics",
|
||||
"enum": [
|
||||
"google"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"property": {
|
||||
"anyOf": [
|
||||
{
|
||||
"title": "Google Analytics 4",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics",
|
||||
"pattern": "^G-\\w{10}$"
|
||||
},
|
||||
{
|
||||
"title": "Universal Analytics",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics",
|
||||
"pattern": "^UA-\\w{9}-\\w$"
|
||||
},
|
||||
{
|
||||
"title": "Unknown property",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"feedback": {
|
||||
"title": "Was this page helpful?",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#was-this-page-helpful",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {
|
||||
"title": "Feedback widget title",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#was-this-page-helpful",
|
||||
"type": "string",
|
||||
"default": "Was this page helpful?"
|
||||
},
|
||||
"ratings": {
|
||||
"title": "Feedback ratings",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#was-this-page-helpful",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"title": "Feedback rating",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"icon": {
|
||||
"$ref": "#/$defs/icon"
|
||||
},
|
||||
"name": {
|
||||
"title": "Feedback rating name",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#+analytics.feedback.ratings.name",
|
||||
"type": "string"
|
||||
},
|
||||
"data": {
|
||||
"title": "Feedback rating data",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#+analytics.feedback.ratings.data",
|
||||
"type": "number"
|
||||
},
|
||||
"note": {
|
||||
"title": "Feedback rating data",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#+analytics.feedback.ratings.note",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"icon",
|
||||
"name",
|
||||
"data",
|
||||
"note"
|
||||
]
|
||||
"allOf": [
|
||||
{
|
||||
"if": {
|
||||
"properties": {
|
||||
"provider": {
|
||||
"const": "google"
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"title"
|
||||
]
|
||||
"then": {
|
||||
"properties": {
|
||||
"provider": {
|
||||
"title": "Google Analytics",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics",
|
||||
"const": "google"
|
||||
},
|
||||
"property": {
|
||||
"anyOf": [
|
||||
{
|
||||
"title": "Google Analytics 4",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics",
|
||||
"pattern": "^G-\\w{10}$"
|
||||
},
|
||||
{
|
||||
"title": "Unknown property",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#google-analytics",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"feedback": {
|
||||
"$ref": "#/$defs/feedback"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"provider",
|
||||
"property"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"properties": {
|
||||
"provider": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"then": {
|
||||
"properties": {
|
||||
"provider": {
|
||||
"title": "Custom analytics provider",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#custom-site-analytics",
|
||||
"type": "string"
|
||||
},
|
||||
"feedback": {
|
||||
"$ref": "#/$defs/feedback"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"provider"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"provider",
|
||||
"property"
|
||||
],
|
||||
"defaultSnippets": [
|
||||
{
|
||||
@ -213,21 +185,15 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"title": "Button to accept cookies",
|
||||
"enum": [
|
||||
"accept"
|
||||
]
|
||||
"const": "accept"
|
||||
},
|
||||
{
|
||||
"title": "Button to reject cookies",
|
||||
"enum": [
|
||||
"reject"
|
||||
]
|
||||
"const": "reject"
|
||||
},
|
||||
{
|
||||
"title": "Button to manage settings",
|
||||
"enum": [
|
||||
"manage"
|
||||
]
|
||||
"const": "manage"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -334,9 +300,7 @@
|
||||
"provider": {
|
||||
"title": "Versioning provider",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-versioning/#versioning",
|
||||
"enum": [
|
||||
"mike"
|
||||
]
|
||||
"const": "mike"
|
||||
},
|
||||
"default": {
|
||||
"title": "Default version",
|
||||
@ -406,6 +370,59 @@
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"feedback": {
|
||||
"title": "Was this page helpful?",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#was-this-page-helpful",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {
|
||||
"title": "Feedback widget title",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#was-this-page-helpful",
|
||||
"type": "string",
|
||||
"default": "Was this page helpful?"
|
||||
},
|
||||
"ratings": {
|
||||
"title": "Feedback ratings",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#was-this-page-helpful",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"title": "Feedback rating",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"icon": {
|
||||
"$ref": "#/$defs/icon"
|
||||
},
|
||||
"name": {
|
||||
"title": "Feedback rating name",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#+analytics.feedback.ratings.name",
|
||||
"type": "string"
|
||||
},
|
||||
"data": {
|
||||
"title": "Feedback rating data",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#+analytics.feedback.ratings.data",
|
||||
"type": "number"
|
||||
},
|
||||
"note": {
|
||||
"title": "Feedback rating data",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#+analytics.feedback.ratings.note",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"icon",
|
||||
"name",
|
||||
"data",
|
||||
"note"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"title"
|
||||
]
|
||||
}
|
||||
},
|
||||
"defaultSnippets": [
|
||||
@ -414,7 +431,7 @@
|
||||
"body": {
|
||||
"analytics": {
|
||||
"provider": "${1:google}",
|
||||
"property": "${2:UA-XXXXXXXX-X}"
|
||||
"property": "${2:G-XXXXXXXXXX}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/blog/",
|
||||
"enum": [
|
||||
"blog"
|
||||
]
|
||||
"const": "blog"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
@ -114,15 +112,11 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"title": "Post excerpts are optional",
|
||||
"enum": [
|
||||
"optional"
|
||||
]
|
||||
"const": "optional"
|
||||
},
|
||||
{
|
||||
"title": "Post excerpts are required, thus the build will fail",
|
||||
"enum": [
|
||||
"required"
|
||||
]
|
||||
"const": "required"
|
||||
}
|
||||
],
|
||||
"default": "optional"
|
||||
@ -215,6 +209,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"archive_pagination": {
|
||||
"title": "Pagination for archive pages",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/blog/#config.archive_pagination",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"archive_pagination_per_page": {
|
||||
"title": "Posts per page for archive pages",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/blog/#config.archive_pagination_per_page",
|
||||
"type": "number",
|
||||
"default": 10
|
||||
},
|
||||
"archive_toc": {
|
||||
"title": "Archive table of contents",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/blog/#config.archive_toc",
|
||||
@ -259,6 +265,27 @@
|
||||
"type": "string",
|
||||
"default": "\"-\""
|
||||
},
|
||||
"categories_sort_by": {
|
||||
"title": "Sort categories by this function",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/blog/#config.categories_sort_by",
|
||||
"default": "!!python/name:material.plugins.blog.view_name",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"enum": [
|
||||
"!!python/name:material.plugins.blog.view_name",
|
||||
"!!python/name:material.plugins.blog.view_post_count"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"categories_sort_reverse": {
|
||||
"title": "Soft categories in reverse",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/blog/#config.categories_sort_reverse",
|
||||
"default": false
|
||||
},
|
||||
"categories_allowed": {
|
||||
"title": "Categories allowed",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/blog/#config.categories_allowed",
|
||||
@ -269,6 +296,18 @@
|
||||
"uniqueItems": true,
|
||||
"default": []
|
||||
},
|
||||
"categories_pagination": {
|
||||
"title": "Pagination for categories",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/blog/#config.categories_pagination",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"categories_pagination_per_page": {
|
||||
"title": "Posts per page for categories",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/blog/#config.categories_pagination_per_page",
|
||||
"type": "number",
|
||||
"default": 10
|
||||
},
|
||||
"categories_toc": {
|
||||
"title": "Categories table of contents",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/blog/#config.categories_toc",
|
||||
|
4
docs/schema/plugins/external/gen-files.json
vendored
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://github.com/oprypin/mkdocs-gen-files",
|
||||
"enum": [
|
||||
"git-authors"
|
||||
]
|
||||
"const": "git-authors"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://timvink.github.io/mkdocs-git-authors-plugin/",
|
||||
"enum": [
|
||||
"git-authors"
|
||||
]
|
||||
"const": "git-authors"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://github.com/ojacques/mkdocs-git-committers-plugin-2",
|
||||
"enum": [
|
||||
"git-committers"
|
||||
]
|
||||
"const": "git-committers"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://github.com/zhaoterryy/mkdocs-git-revision-date-plugin",
|
||||
"enum": [
|
||||
"git-revision-date"
|
||||
]
|
||||
"const": "git-revision-date"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://github.com/oprypin/mkdocs-literate-nav",
|
||||
"enum": [
|
||||
"literate-nav"
|
||||
]
|
||||
"const": "literate-nav"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
4
docs/schema/plugins/external/macros.json
vendored
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://github.com/fralau/mkdocs_macros_plugin",
|
||||
"enum": [
|
||||
"macros"
|
||||
]
|
||||
"const": "macros"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://github.com/oprypin/mkdocs-section-index",
|
||||
"enum": [
|
||||
"section-index"
|
||||
]
|
||||
"const": "section-index"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/info/",
|
||||
"enum": [
|
||||
"info"
|
||||
]
|
||||
"const": "info"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/meta/",
|
||||
"enum": [
|
||||
"meta"
|
||||
]
|
||||
"const": "meta"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/offline/",
|
||||
"enum": [
|
||||
"offline"
|
||||
]
|
||||
"const": "offline"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/optimize/",
|
||||
"enum": [
|
||||
"optimize"
|
||||
]
|
||||
"const": "optimize"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/privacy/",
|
||||
"enum": [
|
||||
"privacy"
|
||||
]
|
||||
"const": "privacy"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/projects/",
|
||||
"enum": [
|
||||
"projects"
|
||||
]
|
||||
"const": "projects"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/search/",
|
||||
"enum": [
|
||||
"search"
|
||||
]
|
||||
"const": "search"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
@ -73,117 +71,79 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"title": "Site search language: Arabic",
|
||||
"enum": [
|
||||
"ar"
|
||||
]
|
||||
"const": "ar"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Danish",
|
||||
"enum": [
|
||||
"da"
|
||||
]
|
||||
"const": "da"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: German",
|
||||
"enum": [
|
||||
"de"
|
||||
]
|
||||
"const": "de"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Dutch",
|
||||
"enum": [
|
||||
"du"
|
||||
]
|
||||
"const": "du"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: English",
|
||||
"enum": [
|
||||
"en"
|
||||
]
|
||||
"const": "en"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Spanish",
|
||||
"enum": [
|
||||
"es"
|
||||
]
|
||||
"const": "es"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Finnish",
|
||||
"enum": [
|
||||
"fi"
|
||||
]
|
||||
"const": "fi"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: French",
|
||||
"enum": [
|
||||
"fr"
|
||||
]
|
||||
"const": "fr"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Hungarian",
|
||||
"enum": [
|
||||
"hu"
|
||||
]
|
||||
"const": "hu"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Italian",
|
||||
"enum": [
|
||||
"it"
|
||||
]
|
||||
"const": "it"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Japanese",
|
||||
"enum": [
|
||||
"ja"
|
||||
]
|
||||
"const": "ja"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Norwegian",
|
||||
"enum": [
|
||||
"no"
|
||||
]
|
||||
"const": "no"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Portuguese",
|
||||
"enum": [
|
||||
"pt"
|
||||
]
|
||||
"const": "pt"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Romanian",
|
||||
"enum": [
|
||||
"ro"
|
||||
]
|
||||
"const": "ro"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Russian",
|
||||
"enum": [
|
||||
"ru"
|
||||
]
|
||||
"const": "ru"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Swedish",
|
||||
"enum": [
|
||||
"sv"
|
||||
]
|
||||
"const": "sv"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Thai",
|
||||
"enum": [
|
||||
"th"
|
||||
]
|
||||
"const": "th"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Turkish",
|
||||
"enum": [
|
||||
"tr"
|
||||
]
|
||||
"const": "tr"
|
||||
},
|
||||
{
|
||||
"title": "Site search language: Vietnamese",
|
||||
"enum": [
|
||||
"vi"
|
||||
]
|
||||
"const": "vi"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/social/",
|
||||
"enum": [
|
||||
"social"
|
||||
]
|
||||
"const": "social"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/tags/",
|
||||
"enum": [
|
||||
"tags"
|
||||
]
|
||||
"const": "tags"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -4,9 +4,7 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/typeset/",
|
||||
"enum": [
|
||||
"typeset"
|
||||
]
|
||||
"const": "typeset"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
|
@ -9,9 +9,7 @@
|
||||
"markdownDescription": "https://www.mkdocs.org/user-guide/configuration/#name",
|
||||
"oneOf": [
|
||||
{
|
||||
"enum": [
|
||||
"material"
|
||||
]
|
||||
"const": "material"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
@ -48,375 +46,251 @@
|
||||
{
|
||||
"title": "Site language: Custom",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-language/#custom-translations",
|
||||
"enum": [
|
||||
"custom"
|
||||
]
|
||||
"const": "custom"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Afrikaans",
|
||||
"enum": [
|
||||
"af"
|
||||
]
|
||||
"const": "af"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Arabic",
|
||||
"enum": [
|
||||
"ar"
|
||||
]
|
||||
"const": "ar"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Bulgarian",
|
||||
"enum": [
|
||||
"bg"
|
||||
]
|
||||
"const": "bg"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Bengali (Bangla)",
|
||||
"enum": [
|
||||
"bn"
|
||||
]
|
||||
"const": "bn"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Catalan",
|
||||
"enum": [
|
||||
"ca"
|
||||
]
|
||||
"const": "ca"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Czech",
|
||||
"enum": [
|
||||
"cs"
|
||||
]
|
||||
"const": "cs"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Danish",
|
||||
"enum": [
|
||||
"da"
|
||||
]
|
||||
"const": "da"
|
||||
},
|
||||
{
|
||||
"title": "Site language: German",
|
||||
"enum": [
|
||||
"de"
|
||||
]
|
||||
"const": "de"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Greek",
|
||||
"enum": [
|
||||
"el"
|
||||
]
|
||||
"const": "el"
|
||||
},
|
||||
{
|
||||
"title": "Site language: English",
|
||||
"enum": [
|
||||
"en"
|
||||
]
|
||||
"const": "en"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Esperanto",
|
||||
"enum": [
|
||||
"eo"
|
||||
]
|
||||
"const": "eo"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Spanish",
|
||||
"enum": [
|
||||
"es"
|
||||
]
|
||||
"const": "es"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Estonian",
|
||||
"enum": [
|
||||
"et"
|
||||
]
|
||||
"const": "et"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Persian (Farsi)",
|
||||
"enum": [
|
||||
"fa"
|
||||
]
|
||||
"const": "fa"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Finnish",
|
||||
"enum": [
|
||||
"fi"
|
||||
]
|
||||
"const": "fi"
|
||||
},
|
||||
{
|
||||
"title": "Site language: French",
|
||||
"enum": [
|
||||
"fr"
|
||||
]
|
||||
"const": "fr"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Galician",
|
||||
"enum": [
|
||||
"gl"
|
||||
]
|
||||
"const": "gl"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Hebrew",
|
||||
"enum": [
|
||||
"he"
|
||||
]
|
||||
"const": "he"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Hindi",
|
||||
"enum": [
|
||||
"hi"
|
||||
]
|
||||
"const": "hi"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Croatian",
|
||||
"enum": [
|
||||
"hr"
|
||||
]
|
||||
"const": "hr"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Hungarian",
|
||||
"enum": [
|
||||
"hu"
|
||||
]
|
||||
"const": "hu"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Armenian",
|
||||
"enum": [
|
||||
"hy"
|
||||
]
|
||||
"const": "hy"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Indonesian",
|
||||
"enum": [
|
||||
"id"
|
||||
]
|
||||
"const": "id"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Icelandic",
|
||||
"enum": [
|
||||
"is"
|
||||
]
|
||||
"const": "is"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Italian",
|
||||
"enum": [
|
||||
"it"
|
||||
]
|
||||
"const": "it"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Japanese",
|
||||
"enum": [
|
||||
"ja"
|
||||
]
|
||||
"const": "ja"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Georgian",
|
||||
"enum": [
|
||||
"ka"
|
||||
]
|
||||
"const": "ka"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Kannada",
|
||||
"enum": [
|
||||
"kn"
|
||||
]
|
||||
"const": "kn"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Korean",
|
||||
"enum": [
|
||||
"ko"
|
||||
]
|
||||
"const": "ko"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Lithuanian",
|
||||
"enum": [
|
||||
"lt"
|
||||
]
|
||||
"const": "lt"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Latvian",
|
||||
"enum": [
|
||||
"lv"
|
||||
]
|
||||
"const": "lv"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Macedonian",
|
||||
"enum": [
|
||||
"mk"
|
||||
]
|
||||
"const": "mk"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Mongolian",
|
||||
"enum": [
|
||||
"mn"
|
||||
]
|
||||
"const": "mn"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Bahasa Malaysia",
|
||||
"enum": [
|
||||
"ms"
|
||||
]
|
||||
"const": "ms"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Burmese",
|
||||
"enum": [
|
||||
"my"
|
||||
]
|
||||
"const": "my"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Dutch",
|
||||
"enum": [
|
||||
"nl"
|
||||
]
|
||||
"const": "nl"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Norwegian (Bokmål)",
|
||||
"enum": [
|
||||
"nb"
|
||||
]
|
||||
"const": "nb"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Norwegian (Nynorsk)",
|
||||
"enum": [
|
||||
"nn"
|
||||
]
|
||||
"const": "nn"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Polish",
|
||||
"enum": [
|
||||
"pl"
|
||||
]
|
||||
"const": "pl"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Portuguese",
|
||||
"enum": [
|
||||
"pt"
|
||||
]
|
||||
"const": "pt"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Portuguese (Brasilian)",
|
||||
"enum": [
|
||||
"pt-BR"
|
||||
]
|
||||
"const": "pt-BR"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Romanian",
|
||||
"enum": [
|
||||
"ro"
|
||||
]
|
||||
"const": "ro"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Russian",
|
||||
"enum": [
|
||||
"ru"
|
||||
]
|
||||
"const": "ru"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Sanskrit",
|
||||
"enum": [
|
||||
"sa"
|
||||
]
|
||||
"const": "sa"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Serbo-Croatian",
|
||||
"enum": [
|
||||
"sh"
|
||||
]
|
||||
"const": "sh"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Sinhalese",
|
||||
"enum": [
|
||||
"si"
|
||||
]
|
||||
"const": "si"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Slovak",
|
||||
"enum": [
|
||||
"sk"
|
||||
]
|
||||
"const": "sk"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Slovenian",
|
||||
"enum": [
|
||||
"sl"
|
||||
]
|
||||
"const": "sl"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Serbian",
|
||||
"enum": [
|
||||
"sr"
|
||||
]
|
||||
"const": "sr"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Swedish",
|
||||
"enum": [
|
||||
"sv"
|
||||
]
|
||||
"const": "sv"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Telugu",
|
||||
"enum": [
|
||||
"te"
|
||||
]
|
||||
"const": "te"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Thai",
|
||||
"enum": [
|
||||
"th"
|
||||
]
|
||||
"const": "th"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Tagalog",
|
||||
"enum": [
|
||||
"tl"
|
||||
]
|
||||
"const": "tl"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Turkish",
|
||||
"enum": [
|
||||
"tr"
|
||||
]
|
||||
"const": "tr"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Ukrainian",
|
||||
"enum": [
|
||||
"uk"
|
||||
]
|
||||
"const": "uk"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Urdu",
|
||||
"enum": [
|
||||
"ur"
|
||||
]
|
||||
"const": "ur"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Uzbek",
|
||||
"enum": [
|
||||
"uz"
|
||||
]
|
||||
"const": "uz"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Vietnamese",
|
||||
"enum": [
|
||||
"vi"
|
||||
]
|
||||
"const": "vi"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Chinese (Simplified)",
|
||||
"enum": [
|
||||
"zh"
|
||||
]
|
||||
"const": "zh"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Chinese (Traditional)",
|
||||
"enum": [
|
||||
"zh-Hant"
|
||||
]
|
||||
"const": "zh-Hant"
|
||||
},
|
||||
{
|
||||
"title": "Site language: Chinese (Taiwanese)",
|
||||
"enum": [
|
||||
"zh-TW"
|
||||
]
|
||||
"const": "zh-TW"
|
||||
}
|
||||
],
|
||||
"default": "en"
|
||||
@ -597,191 +471,137 @@
|
||||
{
|
||||
"title": "Mark as read",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-the-header/#mark-as-read",
|
||||
"enum": [
|
||||
"announce.dismiss"
|
||||
]
|
||||
"const": "announce.dismiss"
|
||||
},
|
||||
{
|
||||
"title": "Edit this page",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/adding-a-git-repository/#code-actions",
|
||||
"enum": [
|
||||
"content.action.edit"
|
||||
]
|
||||
"const": "content.action.edit"
|
||||
},
|
||||
{
|
||||
"title": "View source of this page",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/adding-a-git-repository/#code-actions",
|
||||
"enum": [
|
||||
"content.action.view"
|
||||
]
|
||||
"const": "content.action.view"
|
||||
},
|
||||
{
|
||||
"title": "Code annotations",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/reference/code-blocks/#code-annotations",
|
||||
"enum": [
|
||||
"content.code.annotate"
|
||||
]
|
||||
"const": "content.code.annotate"
|
||||
},
|
||||
{
|
||||
"title": "Code copy button",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/reference/code-blocks/#code-copy-button",
|
||||
"enum": [
|
||||
"content.code.copy"
|
||||
]
|
||||
"const": "content.code.copy"
|
||||
},
|
||||
{
|
||||
"title": "Code selection button",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/reference/code-blocks/#code-selection-button",
|
||||
"enum": [
|
||||
"content.code.select"
|
||||
]
|
||||
"const": "content.code.select"
|
||||
},
|
||||
{
|
||||
"title": "Linked content tabs",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/reference/content-tabs/#linked-content-tabs",
|
||||
"enum": [
|
||||
"content.tabs.link"
|
||||
]
|
||||
"const": "content.tabs.link"
|
||||
},
|
||||
{
|
||||
"title": "Improved tooltips",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/reference/tooltips/#improved-tooltips",
|
||||
"enum": [
|
||||
"content.tooltips"
|
||||
]
|
||||
"const": "content.tooltips"
|
||||
},
|
||||
{
|
||||
"title": "Header hides automatically when scrolling",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-the-header/#automatic-hiding",
|
||||
"enum": [
|
||||
"header.autohide"
|
||||
]
|
||||
"const": "header.autohide"
|
||||
},
|
||||
{
|
||||
"title": "Navigation expansion",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-expansion",
|
||||
"enum": [
|
||||
"navigation.expand"
|
||||
]
|
||||
"const": "navigation.expand"
|
||||
},
|
||||
{
|
||||
"title": "Navigation footer",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-footer",
|
||||
"enum": [
|
||||
"navigation.footer"
|
||||
]
|
||||
"const": "navigation.footer"
|
||||
},
|
||||
{
|
||||
"title": "Section index pages",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#section-index-pages",
|
||||
"enum": [
|
||||
"navigation.indexes"
|
||||
]
|
||||
"const": "navigation.indexes"
|
||||
},
|
||||
{
|
||||
"title": "Instant loading",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#instant-loading",
|
||||
"enum": [
|
||||
"navigation.instant"
|
||||
]
|
||||
"const": "navigation.instant"
|
||||
},
|
||||
{
|
||||
"title": "Instant prefetching",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#instant-prefetching",
|
||||
"enum": [
|
||||
"navigation.instant.prefetch"
|
||||
]
|
||||
"const": "navigation.instant.prefetch"
|
||||
},
|
||||
{
|
||||
"title": "Progress indicator",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#progress-indicator",
|
||||
"enum": [
|
||||
"navigation.instant.progress"
|
||||
]
|
||||
"const": "navigation.instant.progress"
|
||||
},
|
||||
{
|
||||
"title": "Navigation path (Breadcrumbs)",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-path",
|
||||
"enum": [
|
||||
"navigation.path"
|
||||
]
|
||||
"const": "navigation.path"
|
||||
},
|
||||
{
|
||||
"title": "Navigation pruning",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-pruning",
|
||||
"enum": [
|
||||
"navigation.prune"
|
||||
]
|
||||
"const": "navigation.prune"
|
||||
},
|
||||
{
|
||||
"title": "Navigation sections",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-sections",
|
||||
"enum": [
|
||||
"navigation.sections"
|
||||
]
|
||||
"const": "navigation.sections"
|
||||
},
|
||||
{
|
||||
"title": "Navigation tabs",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-tabs",
|
||||
"enum": [
|
||||
"navigation.tabs"
|
||||
]
|
||||
"const": "navigation.tabs"
|
||||
},
|
||||
{
|
||||
"title": "Sticky navigation tabs",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#sticky-navigation-tabs",
|
||||
"enum": [
|
||||
"navigation.tabs.sticky"
|
||||
]
|
||||
"const": "navigation.tabs.sticky"
|
||||
},
|
||||
{
|
||||
"title": "Back-to-top button",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#back-to-top-button",
|
||||
"enum": [
|
||||
"navigation.top"
|
||||
]
|
||||
"const": "navigation.top"
|
||||
},
|
||||
{
|
||||
"title": "Anchor tracking",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#anchor-tracking",
|
||||
"enum": [
|
||||
"navigation.tracking"
|
||||
]
|
||||
"const": "navigation.tracking"
|
||||
},
|
||||
{
|
||||
"title": "Search higlighting",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/#search-highlighting",
|
||||
"enum": [
|
||||
"search.highlight"
|
||||
]
|
||||
"const": "search.highlight"
|
||||
},
|
||||
{
|
||||
"title": "Search sharing",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/#search-sharing",
|
||||
"enum": [
|
||||
"search.share"
|
||||
]
|
||||
"const": "search.share"
|
||||
},
|
||||
{
|
||||
"title": "Search suggestions",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-search/#search-suggestions",
|
||||
"enum": [
|
||||
"search.suggest"
|
||||
]
|
||||
"const": "search.suggest"
|
||||
},
|
||||
{
|
||||
"title": "Integrated table of contents",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#anchor-following",
|
||||
"enum": [
|
||||
"toc.follow"
|
||||
]
|
||||
"const": "toc.follow"
|
||||
},
|
||||
{
|
||||
"title": "Integrated table of contents",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-integration",
|
||||
"enum": [
|
||||
"toc.integrate"
|
||||
]
|
||||
"const": "toc.integrate"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -885,6 +705,7 @@
|
||||
{
|
||||
"title": "Google Fonts",
|
||||
"markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/changing-the-fonts/",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"text": {
|
||||
"$ref": "assets/fonts.json"
|
||||
|
@ -67,7 +67,7 @@ theme:
|
||||
while complying with the __General Data Protection Regulation__ (GDPR),
|
||||
by automatically downloading and self-hosting the web font files.
|
||||
|
||||
[data privacy]: https://developers.google.com/fonts/faq#what_does_using_the_google_fonts_api_mean_for_the_privacy_of_my_users
|
||||
[data privacy]: https://developers.google.com/fonts/faq/privacy
|
||||
[built-in privacy plugin]:../plugins/privacy.md
|
||||
|
||||
## Customization
|
||||
|
@ -34,6 +34,24 @@ plugins:
|
||||
|
||||
For a list of all settings, please consult the [plugin documentation].
|
||||
|
||||
#### Advanced settings :material-alert-decagram:{ .mdx-pulse title="Added on November 23, 2023" }
|
||||
|
||||
<!-- md:sponsors -->
|
||||
<!-- md:version insiders-4.44.0 -->
|
||||
|
||||
The following advanced settings are currently reserved to our [sponsors]
|
||||
[Insiders]. They are entirely optional, and don't affect the functionality of
|
||||
the blog, but can be helpful for customizations:
|
||||
|
||||
- [`archive_pagination`][config.archive_pagination]
|
||||
- [`archive_pagination_per_page`][config.archive_pagination_per_page]
|
||||
- [`categories_sort_by`][config.categories_sort_by]
|
||||
- [`categories_sort_reverse`][config.categories_sort_reverse]
|
||||
- [`categories_pagination`][config.categories_pagination]
|
||||
- [`categories_pagination_per_page`][config.categories_pagination_per_page]
|
||||
|
||||
We'll add more settings here, as we discover new use cases.
|
||||
|
||||
[plugin documentation]: ../plugins/blog.md
|
||||
|
||||
[Insiders]: ../insiders/index.md
|
||||
@ -42,6 +60,13 @@ For a list of all settings, please consult the [plugin documentation].
|
||||
[docs_dir]: https://www.mkdocs.org/user-guide/configuration/#docs_dir
|
||||
[start writing your first post]: #writing-your-first-post
|
||||
|
||||
[config.archive_pagination]: ../plugins/blog.md#config.archive_pagination
|
||||
[config.archive_pagination_per_page]: ../plugins/blog.md#config.archive_pagination_per_page
|
||||
[config.categories_sort_by]: ../plugins/blog.md#config.categories_sort_by
|
||||
[config.categories_sort_reverse]: ../plugins/blog.md#config.categories_sort_reverse
|
||||
[config.categories_pagination]: ../plugins/blog.md#config.categories_pagination
|
||||
[config.categories_pagination_per_page]: ../plugins/blog.md#config.categories_pagination_per_page
|
||||
|
||||
### RSS
|
||||
|
||||
<!-- md:version 9.2.0 -->
|
||||
|
@ -1,7 +1,3 @@
|
||||
---
|
||||
status: new
|
||||
---
|
||||
|
||||
# Setting up social cards
|
||||
|
||||
Material for MkDocs can automatically create beautiful social cards for your
|
||||
|
@ -18,4 +18,4 @@
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
__version__ = "9.4.8"
|
||||
__version__ = "9.4.12"
|
||||
|
@ -23,5 +23,5 @@
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{{ super() }}
|
||||
<script src="{{ 'assets/javascripts/custom.9c11c319.min.js' | url }}"></script>
|
||||
<script src="{{ 'assets/javascripts/custom.fe17d8dd.min.js' | url }}"></script>
|
||||
{% endblock %}
|
||||
|
@ -19,9 +19,9 @@
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
from functools import partial
|
||||
from markdown.extensions.toc import slugify
|
||||
from mkdocs.config.config_options import Choice, Deprecated, Optional, Type
|
||||
from mkdocs.config.base import Config
|
||||
from pymdownx.slugs import slugify
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Classes
|
||||
@ -41,7 +41,7 @@ class BlogConfig(Config):
|
||||
post_url_date_format = Type(str, default = "yyyy/MM/dd")
|
||||
post_url_format = Type(str, default = "{date}/{slug}")
|
||||
post_url_max_categories = Type(int, default = 1)
|
||||
post_slugify = Type((type(slugify), partial), default = slugify)
|
||||
post_slugify = Type(partial, default = slugify(case = "lower"))
|
||||
post_slugify_separator = Type(str, default = "-")
|
||||
post_excerpt = Choice(["optional", "required"], default = "optional")
|
||||
post_excerpt_max_authors = Type(int, default = 1)
|
||||
@ -62,7 +62,7 @@ class BlogConfig(Config):
|
||||
categories = Type(bool, default = True)
|
||||
categories_name = Type(str, default = "blog.categories")
|
||||
categories_url_format = Type(str, default = "category/{slug}")
|
||||
categories_slugify = Type((type(slugify), partial), default = slugify)
|
||||
categories_slugify = Type(partial, default = slugify(case = "lower"))
|
||||
categories_slugify_separator = Type(str, default = "-")
|
||||
categories_allowed = Type(list, default = [])
|
||||
categories_toc = Optional(Type(bool))
|
||||
|
@ -27,6 +27,8 @@ import yaml
|
||||
|
||||
from babel.dates import format_date
|
||||
from datetime import datetime
|
||||
from jinja2 import pass_context
|
||||
from jinja2.runtime import Context
|
||||
from mkdocs.config.defaults import MkDocsConfig
|
||||
from mkdocs.exceptions import PluginError
|
||||
from mkdocs.plugins import BasePlugin, event_priority
|
||||
@ -35,6 +37,7 @@ from mkdocs.structure.files import File, Files, InclusionLevel
|
||||
from mkdocs.structure.nav import Navigation, Section
|
||||
from mkdocs.structure.pages import Page
|
||||
from mkdocs.utils import copy_file, get_relative_url
|
||||
from mkdocs.utils.templates import url_filter
|
||||
from paginate import Page as Pagination
|
||||
from shutil import rmtree
|
||||
from tempfile import mkdtemp
|
||||
@ -44,7 +47,6 @@ from .author import Authors
|
||||
from .config import BlogConfig
|
||||
from .readtime import readtime
|
||||
from .structure import Archive, Category, Excerpt, Post, View
|
||||
from .templates import url_filter
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Classes
|
||||
@ -136,19 +138,22 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
|
||||
# Generate views for archive
|
||||
if self.config.archive:
|
||||
views = self._generate_archive(config, files)
|
||||
self.blog.views.extend(views)
|
||||
self.blog.views.extend(
|
||||
self._generate_archive(config, files)
|
||||
)
|
||||
|
||||
# Generate views for categories
|
||||
if self.config.categories:
|
||||
views = self._generate_categories(config, files)
|
||||
self.blog.views.extend(views)
|
||||
self.blog.views.extend(sorted(
|
||||
self._generate_categories(config, files),
|
||||
key = lambda view: view.name,
|
||||
reverse = False
|
||||
))
|
||||
|
||||
# Generate pages for views
|
||||
if self.config.pagination:
|
||||
for view in self._resolve_views(self.blog):
|
||||
for page in self._generate_pages(view, config, files):
|
||||
page.file.inclusion = InclusionLevel.EXCLUDED
|
||||
view.pages.append(page)
|
||||
|
||||
# Ensure that entrypoint is always included in navigation
|
||||
@ -180,6 +185,7 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
|
||||
# Revert temporary exclusion of views from navigation
|
||||
for view in self._resolve_views(self.blog):
|
||||
view.file.inclusion = self.blog.file.inclusion
|
||||
for page in view.pages:
|
||||
page.file.inclusion = self.blog.file.inclusion
|
||||
|
||||
@ -298,9 +304,25 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
def date_filter(date: datetime):
|
||||
return self._format_date_for_post(date, config)
|
||||
|
||||
# Patch URL template filter to add support for paginated views, i.e.,
|
||||
# that paginated views never link to themselves but to the main view
|
||||
@pass_context
|
||||
def url_filter_with_pagination(context: Context, url: str | None):
|
||||
page = context["page"]
|
||||
|
||||
# If the current page is a view, check if the URL links to the page
|
||||
# itself, and replace it with the URL of the main view
|
||||
if isinstance(page, View):
|
||||
view = self._resolve_original(page)
|
||||
if page.url == url:
|
||||
url = view.url
|
||||
|
||||
# Forward to original template filter
|
||||
return url_filter(context, url)
|
||||
|
||||
# Register custom template filters
|
||||
env.filters["date"] = date_filter
|
||||
env.filters["url"] = url_filter
|
||||
env.filters["url"] = url_filter_with_pagination
|
||||
|
||||
# Prepare view for rendering (run latest) - views are rendered last, as we
|
||||
# need to mutate the navigation to account for pagination. The main problem
|
||||
@ -317,16 +339,6 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
if view not in self._resolve_views(self.blog):
|
||||
return
|
||||
|
||||
# If the current view is paginated, replace and rewire it - the current
|
||||
# view temporarily becomes the main view, and is reset after rendering
|
||||
assert isinstance(view, View)
|
||||
if view != page:
|
||||
prev = view.pages[view.pages.index(page) - 1]
|
||||
|
||||
# Replace previous page with current page
|
||||
items = self._resolve_siblings(view, nav)
|
||||
items[items.index(prev)] = page
|
||||
|
||||
# Render excerpts and prepare pagination
|
||||
posts, pagination = self._render(page)
|
||||
|
||||
@ -342,26 +354,6 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
context["posts"] = posts
|
||||
context["pagination"] = pager if pagination else None
|
||||
|
||||
# After rendering a paginated view, replace the URL of the paginated view
|
||||
# with the URL of the original view - since we need to replace the original
|
||||
# view with a paginated view in `on_page_context` for correct resolution of
|
||||
# the active state, we must fix the paginated view URLs after rendering
|
||||
def on_post_page(self, output, *, page, config):
|
||||
if not self.config.enabled:
|
||||
return
|
||||
|
||||
# Skip if page is not a view managed by this instance - this plugin has
|
||||
# support for multiple instances, which is why this check is necessary
|
||||
view = self._resolve_original(page)
|
||||
if view not in self._resolve_views(self.blog):
|
||||
return
|
||||
|
||||
# If the current view is paginated, replace the URL of the paginated
|
||||
# view with the URL of the original view - see https://t.ly/Yeh-P
|
||||
assert isinstance(view, View)
|
||||
if view != page:
|
||||
page.file.url = view.file.url
|
||||
|
||||
# Remove temporary directory on shutdown
|
||||
def on_shutdown(self):
|
||||
rmtree(self.temp_dir)
|
||||
@ -527,7 +519,7 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
|
||||
# Resolve original page or view (e.g. for paginated views)
|
||||
def _resolve_original(self, page: Page):
|
||||
if isinstance(page, View):
|
||||
if isinstance(page, View) and page.pages:
|
||||
return page.pages[0]
|
||||
else:
|
||||
return page
|
||||
@ -550,13 +542,14 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
file = self._path_to_file(path, config)
|
||||
files.append(file)
|
||||
|
||||
# Create file in temporary directory
|
||||
# Create file in temporary directory and temporarily remove
|
||||
# from navigation, as we'll add it at a specific location
|
||||
self._save_to_file(file.abs_src_path, f"# {name}")
|
||||
file.inclusion = InclusionLevel.EXCLUDED
|
||||
|
||||
# Create and yield view - we don't explicitly set the title of
|
||||
# the view, so authors can override them in the page's content
|
||||
# Create and yield view
|
||||
if not isinstance(file.page, Archive):
|
||||
yield Archive(None, file, config)
|
||||
yield Archive(name, file, config)
|
||||
|
||||
# Assign post to archive
|
||||
assert isinstance(file.page, Archive)
|
||||
@ -585,13 +578,14 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
file = self._path_to_file(path, config)
|
||||
files.append(file)
|
||||
|
||||
# Create file in temporary directory
|
||||
# Create file in temporary directory and temporarily remove
|
||||
# from navigation, as we'll add it at a specific location
|
||||
self._save_to_file(file.abs_src_path, f"# {name}")
|
||||
file.inclusion = InclusionLevel.EXCLUDED
|
||||
|
||||
# Create and yield view - we don't explicitly set the title of
|
||||
# the view, so authors can override them in the page's content
|
||||
# Create and yield view
|
||||
if not isinstance(file.page, Category):
|
||||
yield Category(None, file, config)
|
||||
yield Category(name, file, config)
|
||||
|
||||
# Assign post to category and vice versa
|
||||
assert isinstance(file.page, Category)
|
||||
@ -615,12 +609,14 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
file = self._path_to_file(path, config)
|
||||
files.append(file)
|
||||
|
||||
# Copy file to temporary directory
|
||||
# Copy file to temporary directory and temporarily remove
|
||||
# from navigation, as we'll add it at a specific location
|
||||
copy_file(view.file.abs_src_path, file.abs_src_path)
|
||||
file.inclusion = InclusionLevel.EXCLUDED
|
||||
|
||||
# Create view and attach to previous page
|
||||
# Create and yield view
|
||||
if not isinstance(file.page, View):
|
||||
yield View(None, file, config)
|
||||
yield view.__class__(None, file, config)
|
||||
|
||||
# Assign pages and posts to view
|
||||
assert isinstance(file.page, View)
|
||||
@ -800,7 +796,7 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
|
||||
# Format date
|
||||
def _format_date(self, date: datetime, format: str, config: MkDocsConfig):
|
||||
locale = config.theme["language"]
|
||||
locale: str = config.theme["language"].replace("-", "_")
|
||||
return format_date(date, format = format, locale = locale)
|
||||
|
||||
# Format date for post
|
||||
|
@ -212,10 +212,18 @@ class Excerpt(Page):
|
||||
# View
|
||||
class View(Page):
|
||||
|
||||
# Parent view
|
||||
parent: View | Section
|
||||
|
||||
# Initialize view
|
||||
def __init__(self, title: str | None, file: File, config: MkDocsConfig):
|
||||
super().__init__(title, file, config)
|
||||
self.parent: View | Section
|
||||
def __init__(self, name: str | None, file: File, config: MkDocsConfig):
|
||||
super().__init__(None, file, config)
|
||||
|
||||
# Initialize name of the view - note that views never pass a title to
|
||||
# the parent constructor, so the author can always override the title
|
||||
# that is used for rendering. However, for some purposes, like for
|
||||
# example sorting, we need something to compare.
|
||||
self.name = name
|
||||
|
||||
# Initialize posts and views
|
||||
self.posts: list[Post] = []
|
||||
|
@ -1,42 +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.
|
||||
|
||||
from jinja2 import pass_context
|
||||
from jinja2.runtime import Context
|
||||
from material.plugins.blog.structure import View
|
||||
from mkdocs.utils.templates import url_filter as _url_filter
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Functions
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Filter for normalizing URLs with support for paginated views
|
||||
@pass_context
|
||||
def url_filter(context: Context, url: str):
|
||||
page = context["page"]
|
||||
|
||||
# If the current page is a view, check if the URL links to the page
|
||||
# itself, and replace it with the URL of the main view
|
||||
if isinstance(page, View):
|
||||
if page.url == url:
|
||||
url = page.pages[0].url
|
||||
|
||||
# Forward to original template filter
|
||||
return _url_filter(context, url)
|
@ -47,6 +47,7 @@ class SearchPlugin(BasePlugin[SearchConfig]):
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
# Initialize incremental builds
|
||||
self.is_dirty = False
|
||||
self.is_dirtyreload = False
|
||||
|
||||
# Initialize search index cache
|
||||
|
3
material/templates/.icons/logo-monochrome.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<path d="M17.029 18.772l.777 1.166-5.417 2.709L0 16.451V4.063l5.417-2.709 5.298 7.948 7.867-5.24L24 1.354V16.84l-5.417 2.709-1.554-.777zm2.023-13.827v13.253l3.949-1.975V2.97l-3.949 1.975zM5.076 2.642L1.458 4.45 12.73 21.358l3.618-1.809L5.076 2.642z" />
|
||||
</svg>
|
After Width: | Height: | Size: 323 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.96 12.648h4.08L12 7.74l-2.04 4.908zM12 0 .828 3.984l1.704 14.772L12 24l9.468-5.244 1.704-14.772L12 0zm6.972 18.312h-2.604l-1.404-3.504H9.036l-1.404 3.504H5.028L12 2.652l6.972 15.66z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.712 17.711H7.288l-1.204 2.916L12 24l5.916-3.373-1.204-2.916ZM14.692 0l7.832 16.855.814-12.856L14.692 0ZM9.308 0 .662 3.999l.814 12.856L9.308 0Zm-.405 13.93h6.198L12 6.396 8.903 13.93Z"/></svg>
|
Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 265 B |
1
material/templates/.icons/simple/apacheguacamole.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.324 23.984c-.7-.055-1.581-.198-2.236-.363a11.942 11.942 0 0 1-7.814-6.303c-.61-1.239-.967-2.383-1.127-3.61a9.074 9.074 0 0 0-.102-.639c-.058-.25-.058-1.891 0-2.142.024-.103.07-.39.102-.638.16-1.228.517-2.372 1.127-3.611A11.799 11.799 0 0 1 6.68 1.272C7.919.663 9.063.305 10.29.145c.248-.032.536-.078.639-.102.25-.057 1.892-.057 2.142 0 .103.024.391.07.638.102 1.228.16 2.372.518 3.611 1.127a11.799 11.799 0 0 1 5.406 5.406c.61 1.239.967 2.383 1.127 3.611.032.248.078.535.102.638.026.113.043.541.043 1.071 0 .531-.017.958-.043 1.071-.024.103-.07.391-.102.639-.16 1.227-.517 2.371-1.127 3.61a11.799 11.799 0 0 1-5.406 5.406c-1.239.61-2.383.967-3.611 1.127-.247.033-.526.075-.619.094-.234.049-1.334.073-1.766.039Zm1.551-4.36a10.307 10.307 0 0 0 1.868-.248c2.176-.486 3.95-1.695 5.122-3.492.398-.61.405-.712.027-.416-1.135.891-3.013 1.632-4.999 1.973-1.082.186-1.423.211-2.837.211-1.058 0-1.464-.015-1.865-.065-.998-.127-2.116-.366-2.944-.631-1.252-.4-2.535-1.056-3.199-1.637-.212-.186-.314-.243-.314-.177 0 .048.269.554.426.801 1.435 2.269 3.908 3.516 7.295 3.679l.676.034c.042.003.377-.011.744-.032Zm.233-3.907c1.801-.132 3.472-.507 5.054-1.134 1.175-.466 2.374-1.167 2.867-1.675.167-.172.211-.316.345-1.119.05-.301.134-.672.187-.826.076-.219.105-.404.135-.871.058-.893.007-1.261-.237-1.694-.139-.247-.469-.607-.64-.7l-.129-.069-.221.161c-.317.229-.326.246-.243.41.133.261.2.572.199.923-.003.631-.222 1.091-.798 1.675-2.165 2.198-7.956 2.956-12.17 1.594-1.933-.625-3.219-1.592-3.559-2.676-.085-.27-.095-.358-.08-.676.02-.451.088-.613.511-1.239.166-.244.353-.576.418-.739.065-.163.142-.343.172-.402.086-.166.006-.167-.293-.002-.631.35-1.294.878-1.644 1.31-.469.579-.591 1.01-.547 1.934.027.562.087.854.225 1.094.066.116.096.24.113.476.042.551.138 1.102.215 1.228.1.164.616.593 1.066.886 2.328 1.516 5.915 2.36 9.054 2.131Zm-.056-3.569c1.745-.108 3.299-.463 4.478-1.023.594-.283.934-.515 1.331-.909.414-.413.573-.703.6-1.102.019-.282-.072-.621-.172-.638-.045-.008-.901.459-1.53.835-.067.039-.13.063-.142.051a1.993 1.993 0 0 1-.072-.336c-.071-.44-.135-.573-.345-.718-.324-.225-.391-.298-.523-.572-.116-.241-.149-.28-.288-.334-.26-.102-.557-.299-.557-.368 0-.072.239-.753.39-1.112a3.34 3.34 0 0 0 .099-.249c0-.036-.833-.632-.956-.683-.16-.067-.723-.128-1.205-.13a3.688 3.688 0 0 1-1.258-.206c-.631-.208-.665-.211-1.217-.13-.435.063-.514.087-.698.206-.49.315-.879.428-1.478.43a4.01 4.01 0 0 0-.654.059c-.511.106-.66.182-1.031.528-.469.439-.777.645-1.337.897-.589.265-.655.311-.741.515-.199.469-.293.645-.522.976-.367.53-.453.736-.424 1.016.072.69.818 1.448 1.947 1.981 1.638.772 4.02 1.156 6.305 1.016Zm6.174-4.675c.945-.578 1.504-1.038 1.672-1.377.087-.177.076-.241-.075-.425-.373-.452-1.844-1.32-2.491-1.47-.299-.069-.359-.045-.539.217-.277.403-.946 1.948-.946 2.183 0 .032.084.103.187.159.164.09.204.137.315.37.107.226.157.286.319.387.12.074.235.187.304.3.185.297.165.291.445.136.139-.077.503-.292.809-.48Z"/></svg>
|
After Width: | Height: | Size: 2.9 KiB |
1
material/templates/.icons/simple/blackmagicdesign.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10.385 0c-1.15 0-2.076.93-2.076 2.076V5.31c0 1.148.929 2.076 2.076 2.076h3.23c1.15 0 2.076-.93 2.076-2.076V2.076A2.074 2.074 0 0 0 13.615 0h-3.23zm0 .924h3.23c.638 0 1.155.514 1.155 1.152V5.31c0 .638-.516 1.152-1.155 1.152h-3.23A1.152 1.152 0 0 1 9.23 5.309V2.076c0-.638.516-1.152 1.155-1.152zm0 7.385c-1.15 0-2.076.929-2.076 2.076v3.23c0 1.15.929 2.076 2.076 2.076h3.23c1.15 0 2.076-.929 2.076-2.076v-3.23c0-1.15-.929-2.076-2.076-2.076h-3.23zm0 .921h3.23c.638 0 1.155.516 1.155 1.155v3.23c0 .638-.516 1.155-1.155 1.155h-3.23a1.154 1.154 0 0 1-1.155-1.155v-3.23c0-.638.516-1.155 1.155-1.155zm0 7.385c-1.15 0-2.076.93-2.076 2.076v3.233c0 1.149.929 2.076 2.076 2.076h3.23c1.15 0 2.076-.93 2.076-2.076V18.69a2.075 2.075 0 0 0-2.076-2.076h-3.23zm0 .924h3.23c.638 0 1.155.514 1.155 1.152v3.233c0 .638-.516 1.152-1.155 1.152h-3.23a1.152 1.152 0 0 1-1.155-1.152V18.69c0-.638.516-1.152 1.155-1.152Z"/></svg>
|
After Width: | Height: | Size: 969 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12.53 7.326v16.649C12.328 24 12.227 24 12 24c-.227 0-.354 0-.556-.025V7.326h1.086zm-2.4 0V23.9a8.27 8.27 0 0 1-1.086-.278V7.326h1.087zm4.8 0v16.27c-.555.177-.783.252-1.086.303V7.326h1.086zm-7.2 7.73v8.16c-.227-.075-.328-.125-.555-.227-.177-.075-.303-.126-.53-.252v-7.68H7.73zm9.626 0v7.68c-.43.203-.733.355-1.112.48v-8.16h1.112zM12 0c6.644 0 12 5.381 12 12.05 0 2.653-.859 5.23-2.425 7.226-.708.935-1.39 1.54-2.93 2.703v-6.922h1.085v4.9c2.274-2.601 3.26-4.976 3.26-7.932C22.99 5.861 18.087.885 12 .885S.985 5.885.985 12.074c0 2.83.91 5.028 3.26 7.883v-4.901h1.11v6.922c-1.237-.733-2.4-1.92-3.41-3.41A11.49 11.49 0 0 1 0 12.125C0 5.381 5.33 0 12 0zm0 2.653 3.638 2.854-.632.733L12 3.89 8.994 6.24l-.632-.708L12 2.652z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5.41 22.03c-1.72-1.24-2.63-2.15-3.49-3.46A12.185 12.185 0 0 1 0 12.03C0 5.38 5.36 0 12 0s12 5.38 12 12c0 2.73-.93 5.46-2.58 7.48-.68.86-1.26 1.36-2.83 2.55v-7.02h1.19v4.8c.88-1.04 1.31-1.67 1.74-2.43.88-1.57 1.36-3.51 1.36-5.38 0-6.06-4.88-10.99-10.89-10.99S1.11 5.94 1.11 12.08c0 2.8.99 5.28 3.08 7.73v-4.8H5.4v7.02Zm2.37 1.21c-.23-.05-.76-.3-1.19-.53V15h1.19v8.24Zm7.23-16.92L12 4 8.99 6.32l-.66-.86 3.66-2.86 3.66 2.86-.66.86Zm-4.83 17.56c-.43-.08-.45-.08-.61-.13-.13-.02-.18-.02-.58-.13V7.2h1.19v16.67Zm2.4.1c-.18.02-.23.02-.48.02-.38 0-.51 0-.71-.02V7.2h1.19v16.78Zm2.4-.38c-.38.13-.71.2-1.19.3V7.2h1.19v16.4Zm2.43-.88c-.38.18-.61.28-1.21.56v-8.27h1.21v7.71Z"/></svg>
|
Before Width: | Height: | Size: 795 B After Width: | Height: | Size: 742 B |
1
material/templates/.icons/simple/deluge.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.766 10.341 12.006 0l-6.77 10.342c-1.945 2.97-2.191 6.432-.66 9.264C6.04 22.316 8.885 24 12.001 24c3.113 0 5.957-1.681 7.421-4.388 1.532-2.832 1.287-6.297-.657-9.27zm-10.082 6.9c1.433 2.554 3.608 3.045 6.585 2.102-1.7 1.848-5.188 2.337-7.557-.302-1.63-1.817-1.773-4.351-.642-6.468 1.132-2.117 3.388-2.706 5.012-1.551-3.723.09-4.43 4.38-3.398 6.218zm8.72-6.009c.723 1.107 1.152 2.267 1.314 3.418-3.354 5.763-7.862 4.879-9.062 1.377-.554-1.618 1.19-5.08 4.514-3.725-1.296-2.838-4.238-4.017-6.911-1.809a5.099 5.099 0 0 0-.609.66l5.355-8.179 5.398 8.258z"/></svg>
|
After Width: | Height: | Size: 631 B |
1
material/templates/.icons/simple/dinersclub.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.506 11.982a6.026 6.026 0 0 0-3.866-5.618V17.6a6.025 6.025 0 0 0 3.866-5.618zM8.33 17.598V6.365a6.03 6.03 0 0 0-3.863 5.617 6.028 6.028 0 0 0 3.863 5.616zm2.156-15.113A9.497 9.497 0 0 0 .99 11.982a9.495 9.495 0 0 0 9.495 9.494 9.495 9.495 0 0 0 9.496-9.494 9.499 9.499 0 0 0-9.496-9.497Zm-.023 19.888C4.723 22.4 0 17.75 0 12.09 0 5.905 4.723 1.626 10.463 1.627h2.69C18.822 1.627 24 5.903 24 12.09c0 5.658-5.176 10.283-10.848 10.283"/></svg>
|
After Width: | Height: | Size: 512 B |
1
material/templates/.icons/simple/fairphone.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3.25 12.358c.124-.306.25-.612.38-.918.058.306.12.613.185.918H3.25zm.129-1.943a46.426 46.426 0 0 0-1.396 3.151h.649a.234.234 0 0 0 .216-.154c.05-.137.102-.273.155-.41h.957l.103.411a.2.2 0 0 0 .195.155h.667a38.402 38.402 0 0 1-.752-3.152l-.794-.001zm1.935 3.152h.784c.062-1.044.17-2.089.321-3.134h-.783a36.666 36.666 0 0 0-.322 3.134m3.23-2.018c-.029.25-.201.407-.467.407h-.388c.028-.273.06-.546.094-.819h.384c.262 0 .41.134.378.402v.009m.793-.04c0-.008.002-.016.003-.023.037-.318-.026-.56-.172-.734-.17-.206-.461-.318-.871-.318H6.882a27.6 27.6 0 0 0-.096.703h.218c-.103.81-.178 1.62-.226 2.43h.78c.02-.323.043-.646.07-.97h.278c.128.285.26.57.394.856a.2.2 0 0 0 .183.115h.756a53.18 53.18 0 0 1-.542-1.137 1.11 1.11 0 0 0 .64-.922m2.093.062c-.031.264-.212.43-.487.43h-.274c.03-.293.062-.572.099-.865h.27c.283 0 .427.134.393.42l-.001.014m-.257-1.137H9.866c-.033.23-.066.473-.096.703h.217a36.478 36.478 0 0 0-.224 2.432h.78c.018-.303.04-.606.065-.909h.3c.669-.009 1.225-.367 1.31-1.12l.002-.017c.083-.703-.326-1.088-1.046-1.088m3.032 1.19h-.866c.044-.396.096-.793.154-1.19h-.784a36.105 36.105 0 0 0-.32 3.134h.784c.023-.403.053-.806.09-1.209h.867c-.037.403-.067.806-.09 1.21h.788a36.75 36.75 0 0 1 .321-3.135h-.789c-.058.397-.11.794-.154 1.19m6.068.386a52.412 52.412 0 0 1-.847-1.631l-.718.12a36.018 36.018 0 0 0-.312 3.07h.773c.031-.547.076-1.095.133-1.642.278.516.566 1.032.865 1.548a.188.188 0 0 0 .163.094h.59a36.75 36.75 0 0 1 .32-3.134h-.772a38.732 38.732 0 0 0-.196 1.576M.941 11.713c.02-.185.042-.37.066-.556h1.427c.031-.24.064-.482.1-.724H.104c-.036.242-.069.483-.1.725h.218A35.93 35.93 0 0 0 0 13.568h.784c.023-.386.052-.773.087-1.16h.845a.247.247 0 0 0 .236-.221c.016-.158.032-.315.05-.473H.94zm21.461 1.147c.015-.18.03-.359.047-.538h.859a.247.247 0 0 0 .237-.221c.014-.149.03-.297.047-.446h-1.075c.02-.172.04-.343.062-.515h1.324c.03-.235.063-.471.097-.707h-2.317a34.27 34.27 0 0 0-.097.707h.218a35.363 35.363 0 0 0-.225 2.427h2.119c.013-.236.03-.471.048-.707h-1.344zm-5.079-.795-.005.049c-.054.542-.293.782-.66.782-.36 0-.59-.332-.535-.874 0-.016.003-.033.005-.049.056-.542.349-.869.71-.869a.46.46 0 0 1 .408.225l-.11.106c.093.15.217.357.188.63m.414-1.202.108-.105c-.212-.243-.52-.383-.903-.383-.818 0-1.52.658-1.616 1.593l-.007.068c-.095.94.463 1.59 1.286 1.59.822 0 1.419-.572 1.513-1.508l.007-.067a1.545 1.545 0 0 0-.388-1.188"/></svg>
|
After Width: | Height: | Size: 2.4 KiB |
1
material/templates/.icons/simple/framework.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23.186 9.07 21.41 8.019a2.78 2.78 0 0 1-1.344-2.391V3.523c0-.431-.19-.837-.516-1.108A11.965 11.965 0 0 0 16.317.493a1.356 1.356 0 0 0-1.193.091L13.347 1.64a2.622 2.622 0 0 1-2.688 0L8.882.584a1.348 1.348 0 0 0-1.194-.09 11.93 11.93 0 0 0-3.231 1.918 1.44 1.44 0 0 0-.516 1.108v2.104c0 .986-.51 1.897-1.344 2.392L.823 9.068c-.363.215-.61.588-.675 1.013A12.24 12.24 0 0 0 0 12.001c0 .651.048 1.292.145 1.916.065.425.312.801.675 1.016l1.774 1.052a2.78 2.78 0 0 1 1.344 2.392v2.104c0 .431.191.837.516 1.108.965.8 2.054 1.452 3.231 1.919.393.155.831.124 1.194-.091l1.777-1.055a2.622 2.622 0 0 1 2.688 0l1.777 1.055c.363.215.804.246 1.193.091a11.973 11.973 0 0 0 3.232-1.92 1.44 1.44 0 0 0 .516-1.107v-2.104a2.78 2.78 0 0 1 1.344-2.392l1.774-1.052c.363-.215.61-.588.675-1.016.094-.624.145-1.265.145-1.916 0-.652-.048-1.293-.145-1.917a1.41 1.41 0 0 0-.67-1.013zM12.003 19.41c-3.981 0-7.21-3.317-7.21-7.407s3.229-7.406 7.21-7.406c3.98 0 7.21 3.316 7.21 7.406s-3.23 7.407-7.21 7.407z"/></svg>
|
After Width: | Height: | Size: 1.0 KiB |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.996 0a1.119 1.119 0 0 0-.057.003.9.9 0 0 0-.236.05.907.907 0 0 0-.165.079L1.936 5.675a.889.889 0 0 0-.445.77V17.556a.889.889 0 0 0 .47.784l9.598 5.541.054.029v.002a.857.857 0 0 0 .083.035l.012.004c.028.01.056.018.085.024.01.001.011.003.016.004a.93.93 0 0 0 .296.015.683.683 0 0 0 .086-.015c.01 0 .011-.002.016-.004a.94.94 0 0 0 .085-.024l.012-.004a.882.882 0 0 0 .083-.035v-.002a1.086 1.086 0 0 0 .054-.029l9.599-5.541a.889.889 0 0 0 .469-.784V6.48l-.001-.026v-.008a.889.889 0 0 0-.312-.676l-.029-.024c0-.002-.01-.005-.01-.007a.899.899 0 0 0-.107-.07L12.453.127A.887.887 0 0 0 11.99 0zm.01 2.253c.072 0 .144.019.209.056l6.537 3.774a.418.418 0 0 1 0 .724l-6.537 3.774a.418.418 0 0 1-.418 0L5.26 6.807a.418.418 0 0 1 0-.724l6.537-3.774a.42.42 0 0 1 .209-.056zm-8.08 6.458a.414.414 0 0 1 .215.057l6.524 3.766a.417.417 0 0 1 .208.361v7.533a.417.417 0 0 1-.626.361l-6.523-3.766a.417.417 0 0 1-.209-.362V9.13c0-.241.196-.414.41-.418zm16.16 0c.215.004.41.177.41.418v7.532c0 .15-.08.287-.208.362l-6.524 3.766a.417.417 0 0 1-.626-.361v-7.533c0-.149.08-.286.209-.36l6.523-3.767a.415.415 0 0 1 .216-.057z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m22.51 6.457.001-.013a.888.888 0 0 0-.271-.638l-.027-.024c-.019-.016-.037-.033-.057-.048-.02-.015-.04-.028-.06-.04l-.029-.02-9.61-5.547a.891.891 0 0 0-.922.004L1.933 5.674l-.03.02-.023.014-.02.015a.877.877 0 0 0-.147.134l-.003.003a.887.887 0 0 0-.221.584v.014l-.001.027v11.07c0 .328.18.63.469.784l9.599 5.542.023.011a.875.875 0 0 0 .166.07l.04.01a.88.88 0 0 0 .072.015c.012.002.023.005.035.006a.835.835 0 0 0 .216 0c.012-.001.023-.004.035-.006a.9.9 0 0 0 .072-.014l.04-.012a.895.895 0 0 0 .064-.022.913.913 0 0 0 .102-.047l.023-.011 9.599-5.542a.889.889 0 0 0 .469-.784V6.478l-.001-.021zM5.255 6.082l6.537-3.774a.418.418 0 0 1 .418 0l6.537 3.774a.418.418 0 0 1 0 .725l-6.537 3.774a.418.418 0 0 1-.418 0L5.254 6.807a.418.418 0 0 1 0-.725zm5.614 14.345a.417.417 0 0 1-.626.361l-6.524-3.766a.417.417 0 0 1-.209-.361V9.127a.417.417 0 0 1 .626-.361l6.524 3.766a.417.417 0 0 1 .209.362v7.532zm9.623-3.766a.417.417 0 0 1-.209.36l-6.524 3.767a.417.417 0 0 1-.626-.36v-7.533c0-.15.08-.287.209-.362l6.524-3.766a.417.417 0 0 1 .626.36v7.534z"/></svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.197 3.696C4.749 3.696 0 7.802 0 12.19c0 2.267 1.275 4.177 2.88 5.5l.122-.083C1.729 16.553.58 14.9.58 12.637.916 7.835 6.825 5.13 12.076 5.13c3.718 0 10.393.86 10.393 7.086 0 3.248-3.464 7.473-10.736 7.473-3.725 0-6.618-1.999-6.618-4.87 0-2.488 1.943-4.258 4.841-4.258.799 0 1.547.187 2.118.342-1.209-.218-3.085.093-4.056.857v4.205h3.561v-4.78a4.399 4.399 0 0 1 1.551.598v4.182h.928c-.73.82-2.088 1.319-3.264 1.135v.176c3.384.267 4.816-1.341 4.816-3.15 0-2.128-1.994-3.378-4.03-3.634V7.349H8.017v3.18c-2.305.465-4.56 1.837-4.56 4.11 0 3.498 4.88 5.665 9.125 5.665 6.452 0 11.417-3.125 11.417-7.51 0-5.31-7.168-9.098-12.803-9.098m4.908 10.552c0-1.545-1.055-2.784-2.975-3.382V7.35h3.557v8.616h-1.112c.391-.552.53-1.178.53-1.717"/></svg>
|
After Width: | Height: | Size: 806 B |
1
material/templates/.icons/simple/insta360.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.402 11.19c-.701.7-1.838.7-2.54 0a1.796 1.796 0 1 1 2.539 0m.998-3.614a6.17 6.17 0 0 0-4.39-1.818 6.17 6.17 0 0 0-4.392 1.818 6.217 6.217 0 0 0 0 8.782 6.169 6.169 0 0 0 4.39 1.819 6.169 6.169 0 0 0 4.392-1.82 6.217 6.217 0 0 0 0-8.78m1.554 10.33a8.353 8.353 0 0 1-5.945 2.462 8.353 8.353 0 0 1-5.944-2.46c-3.277-3.277-3.277-8.607 0-11.883a8.353 8.353 0 0 1 5.944-2.46 8.35 8.35 0 0 1 5.944 2.46c3.278 3.276 3.278 8.606 0 11.882m4.51-11.293a20.81 20.81 0 0 1-.137-.292 2.779 2.779 0 0 1 .485-3.007c.018-.014.08-.08.117-.118a.412.412 0 0 0 .053-.069.66.66 0 0 0-.097-.81.296.296 0 0 0-.026-.02 1.113 1.113 0 0 0-.18-.11l-.068-.034A19.08 19.08 0 0 0 9.71.443l-.016.022a11.708 11.708 0 0 0-6.012 3.218c-3.75 3.75-4.44 9.403-2.065 13.852.023.043.107.195.123.233a2.778 2.778 0 0 1-.556 2.919 4.39 4.39 0 0 0-.072.08.66.66 0 0 0 0 .934c.06.056.127.105.198.146l.01.006a19.08 19.08 0 0 0 13 1.677v.002a11.708 11.708 0 0 0 5.997-3.216c3.709-3.708 4.423-9.277 2.144-13.702"/></svg>
|
After Width: | Height: | Size: 1.0 KiB |
1
material/templates/.icons/simple/materialformkdocs.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.029 18.772.777 1.166-5.417 2.709L0 16.451V4.063l5.417-2.709 5.298 7.948 7.867-5.24L24 1.354V16.84l-5.417 2.709zm2.023-13.827v13.253l3.949-1.975V2.97zM5.076 2.642 1.458 4.45 12.73 21.358l3.618-1.809z"/></svg>
|
After Width: | Height: | Size: 280 B |
1
material/templates/.icons/simple/mermaid.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23.99 2.115A12.223 12.223 0 0 0 12 10.149 12.223 12.223 0 0 0 .01 2.115a12.23 12.23 0 0 0 5.32 10.604 6.562 6.562 0 0 1 2.845 5.423v3.754h7.65v-3.754a6.561 6.561 0 0 1 2.844-5.423 12.223 12.223 0 0 0 5.32-10.604Z"/></svg>
|
After Width: | Height: | Size: 291 B |
1
material/templates/.icons/simple/mpv.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm.312 22.775c-6.153 0-11.142-4.988-11.142-11.142S6.16.491 12.312.491c6.154 0 11.142 4.989 11.142 11.142s-4.988 11.142-11.142 11.142zm.643-20.464a8.587 8.587 0 1 0 0 17.174 8.587 8.587 0 0 0 0-17.174zm-1.113 15.257a5.517 5.517 0 1 1 0-11.034 5.517 5.517 0 0 1 0 11.034zm-1.399-7.995L14.4 11.97l-3.957 2.518V9.573z"/></svg>
|
After Width: | Height: | Size: 461 B |
1
material/templates/.icons/simple/pdm.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10.44.418a3.12 3.12 0 0 1 3.12 0l7.69 4.44a3.12 3.12 0 0 1 1.56 2.702v8.88a3.12 3.12 0 0 1-1.56 2.702l-7.69 4.44a3.12 3.12 0 0 1-3.12 0l-7.69-4.44a3.12 3.12 0 0 1-1.56-2.702V7.56a3.12 3.12 0 0 1 1.56-2.702Zm3.87 3.315L12.311 2.58a.624.624 0 0 0-.624 0l-7.69 4.44a.624.624 0 0 0-.312.54v3.774l10.623-6.133Zm2.496 13.643 1.255.725 1.941-1.12a.624.624 0 0 0 .312-.541V7.56a.624.624 0 0 0-.312-.54l-3.196-1.845Zm-2.497-1.441V8.083l-6.8 3.926ZM3.686 14.217v2.223c0 .223.119.429.312.54l7.69 4.44a.624.624 0 0 0 .624 0l3.252-1.878-10.55-6.091Z"/></svg>
|
After Width: | Height: | Size: 615 B |
1
material/templates/.icons/simple/platformio.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 23.992c1.25.211 7.051-3.743 9.113-8.217.253-.686.61-1.198.746-2.5.21-2.016-.41-3.912-1.59-5.419-.987-1.163-2.305-2.004-3.88-2.532l.683-2.583a1.371 1.371 0 1 0-.76-.189L15.64 5.1c-1.109-.288-2.328-.437-3.64-.444m5.978 11.667c-1.548 1.346-2.525 1.488-3.045 1.467-.274-.034-.75-.558-.919-1.104-.188-.612-.28-1.282-.273-2.2-.199-2.476 1.465-5.624 3.937-6.041 1.003-.186 2.39.493 2.889 2.088.506 1.422-.645 4.147-2.589 5.79zM12 4.656c-1.315.007-2.538.156-3.65.447l-.675-2.56A1.37 1.37 0 0 0 6.962 0a1.372 1.372 0 0 0-.044 2.742L7.6 5.328c-1.57.528-2.885 1.367-3.871 2.528-1.179 1.507-1.8 3.403-1.588 5.419.136 1.302.492 1.814.745 2.5 2.062 4.474 7.862 8.428 9.113 8.217m-1.507-9.507c.007.92-.086 1.589-.274 2.201-.167.546-.644 1.07-.918 1.104-.52.021-1.498-.121-3.045-1.467-1.944-1.643-3.095-4.368-2.589-5.79.5-1.595 1.886-2.274 2.889-2.088 2.471.417 4.136 3.565 3.937 6.04zm6.45-2.19a1.24 1.24 0 1 0 0 2.48 1.24 1.24 0 0 0 0-2.48zm.416 1.149a.325.325 0 1 1 0-.65.325.325 0 0 1 0 .65zM7.25 12.294a1.24 1.24 0 1 0 0 2.48 1.24 1.24 0 0 0 0-2.48zm-.418 1.15a.325.325 0 1 1 0-.65.325.325 0 0 1 0 .65z"/></svg>
|
After Width: | Height: | Size: 1.1 KiB |
1
material/templates/.icons/simple/portswigger.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0v24h10.718v-3.805l3.496-4.272h-3.496v-5.205H4.427l6.291-7.767V0Zm13.282 0v3.884L9.786 8.155h3.496v5.205h6.291l-6.291 7.767V24H24V0Z"/></svg>
|
After Width: | Height: | Size: 213 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.957 5.077a.787.787 0 1 0-.409 1.52L17.7 9.04a.787.787 0 1 0 .409-1.52l-9.15-2.444ZM6.97 9.434a.79.79 0 0 1 .967-.557l9.15 2.445a.787.787 0 1 1-.409 1.52l-9.15-2.444a.787.787 0 0 1-.558-.964Zm-.055 3.244a.787.787 0 1 0-.409 1.52l5.338 1.427a.787.787 0 1 0 .409-1.52l-5.338-1.427Zm13.945-9.31L8.658.107a3.159 3.159 0 0 0-3.867 2.226L.907 16.777a3.147 3.147 0 0 0 2.233 3.855l12.201 3.26a3.159 3.159 0 0 0 3.868-2.226l3.882-14.443a3.147 3.147 0 0 0-2.233-3.856ZM6.316 2.74a1.58 1.58 0 0 1 1.933-1.113l12.201 3.26a1.573 1.573 0 0 1 1.116 1.927L17.684 21.26a1.58 1.58 0 0 1-1.933 1.113L3.55 19.111a1.573 1.573 0 0 1-1.117-1.927L6.316 2.74Z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.831 3.367 8.67.108a3.148 3.148 0 0 0-3.856 2.226L.943 16.777a3.148 3.148 0 0 0 2.226 3.856l12.163 3.259a3.148 3.148 0 0 0 3.855-2.226l3.87-14.443a3.148 3.148 0 0 0-2.226-3.856ZM6.333 2.741a1.574 1.574 0 0 1 1.928-1.113l12.163 3.26a1.574 1.574 0 0 1 1.113 1.927l-3.87 14.444a1.574 1.574 0 0 1-1.928 1.113l-12.163-3.26a1.574 1.574 0 0 1-1.113-1.927L6.333 2.74Zm2.634 2.336a.787.787 0 1 0-.407 1.52l9.122 2.444a.787.787 0 1 0 .407-1.52L8.967 5.077ZM6.985 9.434a.787.787 0 0 1 .963-.557l9.123 2.445a.787.787 0 0 1-.408 1.52l-9.122-2.444a.787.787 0 0 1-.556-.964Zm-.055 3.244a.787.787 0 0 0-.407 1.52l5.32 1.427a.787.787 0 0 0 .408-1.52L6.93 12.677Z"/></svg>
|
Before Width: | Height: | Size: 715 B After Width: | Height: | Size: 726 B |
1
material/templates/.icons/simple/rye.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 0C5.372 0 0 5.372 0 11.999c0 5.422 3.597 10.003 8.536 11.49.011-.186.028-.406.049-.669.026-.316-.142-.784-.382-.963-2.67-1.997-3.534-4.125-2.906-7.394a.197.197 0 0 1 .335-.101c.72.747 1.234 1.218 1.988 2.094 1.121 1.305 1.557 2.839 1.42 4.59.123-.531.3-1.057.358-1.596.242-2.222.775-4.326 2.426-5.958.425-.42.939-.823 1.488-1.033 1.448-.552 2.953-.965 3.931-2.339.08.049-.451 1.869-.541 2.263-.645 2.193-.42 2.3-1.186 4.45-.506 1.417-1.596 2.404-3.125 2.798-1.504.386-2.349 1.4-2.56 2.898-.077.558-.123.947-.149 1.246.75.147 1.525.225 2.318.225 6.628 0 12-5.372 12-11.999C24 5.374 18.629 0 12 0Zm-1.158 13.463a1.425 1.425 0 0 1-.306.689c-.578.658-1.105 1.844-1.418 3.425-.567-1.75-2.556-3.304-3.273-4.606-.247-.448-.051-1.963.281-3.223.607-1.782.637-2.096.981-3.594 1.689 1.365 2.041 2.267 2.954 3.879.456.804.957 1.904.782 3.43zm4.227-2.272c-1.586.647-2.565 1.018-3.576 1.82.252-1.354-.602-2.944-1.137-4.146-.079-.177.948-1.858 1.13-2.14 1.205-1.498 1.17-1.767 2.83-2.38 1.354-.5 2.719-.97 4.065-1.449-.24 3.291-.805 7.273-3.312 8.295z"/></svg>
|
After Width: | Height: | Size: 1.1 KiB |
1
material/templates/.icons/simple/satellite.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10.413 7.62c.042 0 .063.02.105.02.062 0 .148-.02.21-.061l.736-.415c.21-.124.273-.372.148-.559l-.946-1.635a.374.374 0 0 0-.253-.187c-.105-.02-.23-.02-.315.042l-.735.414c-.211.125-.274.373-.148.56l.946 1.635c.042.082.147.145.252.186zm3.699 4.06-.735.413c-.21.125-.274.374-.148.56l.946 1.635a.373.373 0 0 0 .253.187c.041 0 .062.02.104.02a.409.409 0 0 0 .211-.062l.735-.414c.21-.125.274-.373.148-.56l-.946-1.635a.375.375 0 0 0-.252-.187.558.558 0 0 0-.316.042ZM11.989 0C6.105 0 1.333 4.7 1.333 10.499c0 .953.127 1.884.379 2.795.147.56.735.87 1.282.725.567-.145.882-.725.736-1.263a8.098 8.098 0 0 1-.316-2.237C3.436 5.86 7.28 2.071 11.99 2.071s8.555 3.79 8.555 8.428c0 3.189-1.787 6.067-4.667 7.517a6.35 6.35 0 0 1-.861.372c-.126.041-.252.104-.4.145a1.046 1.046 0 0 0-.735.994c0 .498.084 1.056.274 1.657l-2.46-1.305c-.987-.517-1.955-1.056-2.753-1.822-.904-.87-1.198-1.429-1.282-2.444-.084-.931.147-1.594.904-2.505.4-.497.924-.85 1.344-1.097.4-.25.82-.477 1.262-.685a2.097 2.097 0 0 0 2.27.146 2.053 2.053 0 0 0 .798-2.816c-.567-.995-1.849-1.347-2.858-.788a2.021 2.021 0 0 0-1.051 1.575c-.525.249-1.05.538-1.534.849-.547.331-1.262.828-1.87 1.573-.758.932-1.514 2.133-1.367 3.976.126 1.532.631 2.527 1.892 3.748 1.009.974 2.101 1.595 3.258 2.196l3.95 2.05c.211.103.463.165.694.165.379 0 .736-.145 1.009-.394a1.41 1.41 0 0 0 .315-1.656 7.646 7.646 0 0 1-.588-1.677c.252-.104.505-.229.756-.332 3.595-1.801 5.823-5.384 5.823-9.36C22.645 4.701 17.875 0 11.989 0Z"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 2.4 KiB |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23.73 10.23a10.274 10.274 0 0 0-1.331-3.411c-.18-.324-.417-.63-.619-.919-1.35-1.893-2.418-2.53-2.624-2.643a9.732 9.732 0 0 0-.562-.375c-1.743-1.087-2.868-1.237-2.868-1.237a9.806 9.806 0 0 0-2.174-.618c-1.256-.15-2.306-.131-3.224 0 .15-.263.281-.356.318-.375.024 0 .017 0 0 0-.45.037-.993.337-1.48.637.337-.656 1.05-1.03 1.143-1.087h.019C9.765.165 8.172.521 6.804 2.039 2.549 3.82 0 7.72 0 11.973c0 3.224 1.256 5.548 2.624 7.085 1.293 1.406 2.718 2.156 3.393 2.362.07.028.225.037.225.037.018-.056-.863-1.462-1.256-3.149.787.806 1.724 1.425 2.774 1.537.112.02-.375-.58-.9-1.368l.712.244 7.817 2.605c-.769.787-1.8 1.556-3.206 2.23 0 0 3.15-.262 4.705-2.005-.637 1.462-2.38 2.25-2.38 2.25 1.274-.188 4.648-1.182 6.785-3.862 2.437-3.036 3.168-5.885 2.437-9.71zm-6.223 7.104c-.244 1.18-.75 2.493-1.893 3.749L1.799 16.49c-.393-1.255-.58-2.717-.468-4.423.243.45.974.825 1.424.843-1.05-2.343-.637-3.955.15-5.023a635.68 635.68 0 0 1 1.031 1.518v-.112c.019-.15.038-.263.075-.375-.356-.525-.656-.975-.88-1.293A5.288 5.288 0 0 1 4.48 6.537c.018.207.056.394.112.619.075.319.094.787.056 1.162V8.3c0 .075-.018.15-.037.225-.019.075-.225.281-.281.825-.057.581.15.9.356 1.143.243-.225.693-.787 1.518-1.106.825-.337 1.368-.824 2.418-1.349.619-.319 1.275-.281 2.1-.244 1.48.263 3.43.788 5.248.881.412.975.58 2.38.58 2.418 0 .131.02.244.02.356-3.225 1.219-7.01 2.606-8.604 3.018-.131.038-1.518-1.968-2.812-3.88-.018.038-.056.056-.075.075-.037.038-.075.075-.093.113h-.113c1.387 2.043 2.868 4.16 3.018 4.16 1.406-.505 5.604-1.949 8.66-2.998-.02 2.305-.581 3.167-.581 3.167s.768-.3 1.555-1.087c0 .637-.168 2.287-1.5 3.88 0 0 .694-.187 1.481-.562Z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.948 4.444h-.005c-1.92.788-2.126 2.55-1.817 3.499v.02C9.236 7.18 10.658 6.76 12 6.76c3.26 0 5.902 2.156 5.902 4.815 0 2.66-2.643 4.816-5.902 4.816l-.083-.002c-.155-.006-.354-.013-.435.118-.096.156.116.397.238.536 1.274 1.441 3.123 1.622 3.608 1.67l.076.008c-4.281.414-9.304-2.32-9.306-7.076 0-1.12.414-2.073 1.075-2.83l-.005-.002h-.003C7.31 6.38 6.376 3.47 4.629 2.898c-.124-.04-.246.054-.262.183-.23 1.924-.727 2.59-1.264 3.31-.805 1.08-1.39 2.328-1.365 3.698a10.99 10.99 0 0 1-.705-1.91c-.024-.09-.17-.365-.333-.272-.13.072-.227.274-.296.485A12.137 12.137 0 0 0 0 11.489c0 6.536 5.475 12 12 12 6.627 0 12-5.372 12-12 0-2.526-.781-4.87-2.115-6.805l.167-.002c.518 0 1.024.045 1.51.129-.734-.816-1.724-1.475-2.877-1.904a8.54 8.54 0 0 1 2.494-.495c-1.426-1.166-3.508-1.9-5.827-1.9-3.355 0-6.648 1.29-7.404 3.93zm.682 9.166c-.87-.905-3.473-3.91-3.473-3.91l.202.01 4.075 3.042c.305.223.74.22 1.043-.004l3.996-3.034.212-.018s-2.518 2.935-3.483 3.9c-.964.968-1.703.919-2.572.014zm2.774-10.083s.055.625-.576.824c-.722.227-1.042-.38-1.042-.38s.09-.417.676-.61c.626-.206.942.166.942.166z"/></svg>
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.1 KiB |
1
material/templates/.icons/simple/tricentis.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.271 10.42 6.86 3.006 9.833.034l4.438 4.438L18.742 0l2.974 2.974ZM9.825 24l-2.973-2.974 7.445-7.445 7.412 7.412-2.974 2.973-4.438-4.437zm-4.567-4.568-2.974-2.974 4.47-4.47-4.437-4.439 2.974-2.974 7.412 7.412Z"/></svg>
|
After Width: | Height: | Size: 289 B |
1
material/templates/.icons/simple/webex.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21.78 7.376c.512 1.181.032 2.644-1.11 3.106-2.157.888-3-1.295-3-1.295-.236-.55-.727-1.496-1.335-1.496-.204 0-.503 0-.94.844-.229.443-.434 1.185-.616 1.84l-.09.32c-.373-1.587-.821-3.454-1.536-4.816-.195-.38-.42-.74-.673-1.08a5.135 5.135 0 0 1 1.743-1.337 4.891 4.891 0 0 1 2.112-.463c1.045 0 2.765.338 4.227 2.227.167.206.317.424.448.654.278.441.52.904.726 1.383l.043.113zM.02 8.4C-.15 7.105.8 5.845 1.953 5.755c1.794-.157 2.36 1.385 2.455 1.89l.022.137c.07.44.29 1.838.48 2.744.078.4.244 1.013.353 1.416l.006.022.026.092c.11.4.232.799.362 1.193.185.548.399 1.085.641 1.61.47.955.93 1.45 1.367 1.45.203 0 .512 0 .96-.878.283-.59.512-1.208.684-1.845.373 1.598.811 3.128 1.495 4.456.205.406.444.794.715 1.16a5.124 5.124 0 0 1-1.742 1.338 4.88 4.88 0 0 1-2.112.461c-1.548 0-3.727-.698-5.339-4.005a22.407 22.407 0 0 1-1.078-2.824 26.848 26.848 0 0 1-.693-2.656 48.56 48.56 0 0 1-.215-1.114A31.971 31.971 0 0 1 .02 8.4zm22.047-2.645-.202-.022h-.052c.222.392.421.797.597 1.215l.053.113a3.29 3.29 0 0 1 .068 2.391 3.079 3.079 0 0 1-1.552 1.749 2.93 2.93 0 0 1-1.228.28 3.115 3.115 0 0 1-.854-.135c-.299 1.182-.768 2.634-1.195 3.511-.427.877-.93 1.451-1.378 1.451-.192 0-.501 0-.95-.877a10.746 10.746 0 0 1-.683-1.845 38.722 38.722 0 0 1-.396-1.575 12.67 12.67 0 0 1-.136-.598l-.002-.01c-.406-1.778-.865-3.645-1.655-5.142A8.263 8.263 0 0 0 11.52 4.8a5.136 5.136 0 0 0-1.748-1.34A4.892 4.892 0 0 0 7.654 3C6.618 3 4.9 3.338 3.437 5.228c.466.223.867.562 1.164.984.305.433.499.933.565 1.458.076.563.256 1.654.47 2.688l.001.007c.021.11.042.221.073.342.126-.34.25-.642.38-.955l.112-.271.128-.293c.235-.55.726-1.496 1.324-1.496.213 0 .513 0 .95.844.296.606.532 1.239.706 1.89.138.507.276 1.047.394 1.587.04.148.07.296.101.444l.006.028c.427 1.879.875 3.69 1.644 5.187a7.82 7.82 0 0 0 1.025 1.531c1.27 1.45 2.733 1.8 3.843 1.8 1.548 0 3.738-.698 5.35-4.006.822-1.7 1.515-4.208 1.772-5.48.256-1.27.449-2.419.534-3.115a2.42 2.42 0 0 0-.433-1.743 2.247 2.247 0 0 0-.653-.607 2.143 2.143 0 0 0-.826-.296z"/></svg>
|
After Width: | Height: | Size: 2.0 KiB |
1
material/templates/.icons/simple/wellsfargo.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12.136 13.949c0 .392-.245.616-.719.616h-.628v-1.226h.628c.48 0 .72.212.72.61zM6.922 15.06h1.044l-.523-1.443-.521 1.443zm12.46-1.82c-.72 0-1.109.562-1.109 1.526 0 .97.384 1.526 1.108 1.526.725 0 1.108-.556 1.108-1.526 0-.964-.389-1.526-1.108-1.526zM23.73 0v24H.269V0h23.462zm-5.548 10.652c.484.245.948.354 1.571.354.895 0 1.481-.458 1.481-1.171 0-.6-.357-1.014-1.028-1.172l-.677-.158c-.394-.092-.559-.25-.559-.517 0-.322.25-.523.74-.523s.778.18.89.604l.048.186h.383v-.943a2.927 2.927 0 0 0-1.352-.338c-.911 0-1.497.447-1.497 1.166 0 .556.34.965.996 1.112l.676.152c.432.099.592.273.592.562 0 .354-.261.55-.784.55-.59 0-.894-.24-1.027-.697l-.07-.235h-.383v1.068zm-3.378.245h3.02V9.595h-.383l-.043.19c-.106.486-.255.638-.607.638h-.74V7.557h.506v-.474h-1.753v.474h.453v2.866h-.453v.474zm-3.355 0h3.02V9.595h-.384l-.042.19c-.107.486-.256.638-.608.638h-.74V7.557h.506v-.474H11.45v.474h.452v2.866h-.452v.474zm-8.758-3.34.938 3.34h.74l.778-2.768.756 2.768h.74l.932-3.34h.736v2.866h-.453v.474h3.201V9.595h-.383l-.043.19c-.106.486-.26.638-.607.638h-.922V9.241h1.071a.58.58 0 0 0 .059-.273.55.55 0 0 0-.059-.26h-1.07v-1.15h.884c.357 0 .48.157.596.615l.038.147h.383V7.083H6.49v.474h.522l-.613 2.305-.762-2.779h-.766l-.746 2.774-.624-2.3h.501v-.474H2.266v.474h.426zm1.412 7.002v-1.22h.947c.358 0 .48.158.597.615l.038.147h.383v-1.236H2.857v.474h.453v2.866h-.453v.474h1.78v-.474h-.533v-1.112H5.2a.58.58 0 0 0 .058-.272.551.551 0 0 0-.058-.262H4.104zm9.114 1.913a.461.461 0 0 0-.048-.224.663.663 0 0 1-.112.011c-.245 0-.309-.142-.34-.458l-.022-.201c-.048-.43-.245-.708-.73-.746v-.017c.48-.022.975-.349.975-.964 0-.621-.496-1.008-1.257-1.008H9.542v.474h.453v2.866H9.26l-1.332-3.34H7.22l-1.305 3.34h-.373v.474h1.412v-.474h-.448l.245-.682h1.385l.245.682h-.437v.474h3.35v-.474h-.505v-1.16h.293c.586 0 .761.212.826.762l.02.19c.06.507.31.725.826.725.15 0 .299-.01.416-.027a.46.46 0 0 0 .048-.223zm3.633-1.788h-1.417a.52.52 0 0 0-.059.256c0 .11.016.18.059.268h.634v.964a1.598 1.598 0 0 1-.629.125c-.767 0-1.166-.56-1.166-1.53s.4-1.532 1.124-1.532c.485 0 .767.245.932.67l.058.153h.384v-.976a3.063 3.063 0 0 0-1.412-.337c-1.172 0-1.96.8-1.96 2.027 0 1.231.767 2.016 1.96 2.016.474 0 .964-.136 1.492-.404v-1.7zm4.512.082c0-1.182-.831-2.021-1.982-2.021-1.145 0-1.981.839-1.981 2.021 0 1.188.83 2.022 1.981 2.022 1.156 0 1.982-.834 1.982-2.022z"/></svg>
|
After Width: | Height: | Size: 2.3 KiB |
1
material/templates/.icons/simple/youtubeshorts.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m18.931 9.99-1.441-.601 1.717-.913a4.48 4.48 0 0 0 1.874-6.078 4.506 4.506 0 0 0-6.09-1.874L4.792 5.929a4.504 4.504 0 0 0-2.402 4.193 4.521 4.521 0 0 0 2.666 3.904c.036.012 1.442.6 1.442.6l-1.706.901a4.51 4.51 0 0 0-2.369 3.967A4.528 4.528 0 0 0 6.93 24c.725 0 1.437-.174 2.08-.508l10.21-5.406a4.494 4.494 0 0 0 2.39-4.192 4.525 4.525 0 0 0-2.678-3.904Zm-9.334 5.2V8.824l6.007 3.184z"/></svg>
|
After Width: | Height: | Size: 461 B |
29
material/templates/assets/javascripts/bundle.6c14ae12.min.js
vendored
Normal file
1
material/templates/assets/stylesheets/main.fad675c6.min.css
vendored
Normal file
@ -32,7 +32,7 @@
|
||||
<link rel="alternate" type="application/rss+xml" title="{{ lang.t('rss.updated') }}" href="{{ 'feed_rss_updated.xml' | url }}">
|
||||
{% endif %}
|
||||
<link rel="icon" href="{{ config.theme.favicon | url }}">
|
||||
<meta name="generator" content="mkdocs-{{ mkdocs_version }}, mkdocs-material-9.4.8">
|
||||
<meta name="generator" content="mkdocs-{{ mkdocs_version }}, mkdocs-material-9.4.12">
|
||||
{% endblock %}
|
||||
{% block htmltitle %}
|
||||
{% if page.meta and page.meta.title %}
|
||||
@ -44,7 +44,7 @@
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
<link rel="stylesheet" href="{{ 'assets/stylesheets/main.78cf6014.min.css' | url }}">
|
||||
<link rel="stylesheet" href="{{ 'assets/stylesheets/main.fad675c6.min.css' | url }}">
|
||||
{% if config.theme.palette %}
|
||||
{% set palette = config.theme.palette %}
|
||||
<link rel="stylesheet" href="{{ 'assets/stylesheets/palette.356b1318.min.css' | url }}">
|
||||
@ -224,7 +224,10 @@
|
||||
"search": "assets/javascripts/workers/search.f886a092.min.js" | url
|
||||
} -%}
|
||||
{%- if config.extra.version -%}
|
||||
{%- set _ = app.update({ "version": config.extra.version }) -%}
|
||||
{%- set mike = config.plugins.get("mike") -%}
|
||||
{%- if not mike or mike.config.version_selector -%}
|
||||
{%- set _ = app.update({ "version": config.extra.version }) -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- if config.extra.tags -%}
|
||||
{%- set _ = app.update({ "tags": config.extra.tags }) -%}
|
||||
|
@ -39,6 +39,11 @@
|
||||
{% if nav_item.active %}
|
||||
{% set class = class ~ " md-nav__item--active" %}
|
||||
{% endif %}
|
||||
{% if nav_item.pages %}
|
||||
{% if page in nav_item.pages %}
|
||||
{% set nav_item = page %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if nav_item.children %}
|
||||
{% set indexes = [] %}
|
||||
{% if "navigation.indexes" in features %}
|
||||
|
@ -3,7 +3,9 @@
|
||||
-#}
|
||||
<li class="md-nav__item">
|
||||
<a href="{{ toc_item.url }}" class="md-nav__link">
|
||||
{{ toc_item.title }}
|
||||
<span class="md-ellipsis">
|
||||
{{ toc_item.title }}
|
||||
</span>
|
||||
</a>
|
||||
{% if toc_item.children %}
|
||||
<nav class="md-nav" aria-label="{{ toc_item.title | striptags }}">
|
||||
|
@ -192,8 +192,6 @@ nav:
|
||||
- Asking a question: https://github.com/squidfunk/mkdocs-material/discussions
|
||||
- Guides:
|
||||
- Creating a reproduction: guides/creating-a-reproduction.md
|
||||
- FAQ:
|
||||
- Sponsoring: faq/sponsoring.md
|
||||
- Setup:
|
||||
- setup/index.md
|
||||
- Changing the colors: setup/changing-the-colors.md
|
||||
@ -255,8 +253,11 @@ nav:
|
||||
- Insiders:
|
||||
- insiders/index.md
|
||||
- Getting started: insiders/getting-started.md
|
||||
- FAQ: insiders/faq/sponsoring.md
|
||||
- Changelog:
|
||||
- insiders/changelog/index.md
|
||||
- How to upgrade: insiders/upgrade.md
|
||||
- Community Experts Program:
|
||||
- insiders/community-experts-program/index.md
|
||||
- Blog:
|
||||
- blog/index.md
|
||||
|
632
package-lock.json
generated
30
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mkdocs-material",
|
||||
"version": "9.4.8",
|
||||
"version": "9.4.12",
|
||||
"description": "Documentation that simply works",
|
||||
"keywords": [
|
||||
"mkdocs",
|
||||
@ -51,24 +51,24 @@
|
||||
"@fortawesome/fontawesome-free": "^6.4.2",
|
||||
"@mdi/svg": "^7.3.67",
|
||||
"@primer/octicons": "^19.8.0",
|
||||
"@types/css-modules": "^1.0.4",
|
||||
"@types/escape-html": "^1.0.3",
|
||||
"@types/fuzzaldrin-plus": "^0.6.4",
|
||||
"@types/html-minifier": "^4.0.4",
|
||||
"@types/lunr": "^2.3.6",
|
||||
"@types/node": "^20.8.10",
|
||||
"@types/resize-observer-browser": "^0.1.9",
|
||||
"@types/css-modules": "^1.0.5",
|
||||
"@types/escape-html": "^1.0.4",
|
||||
"@types/fuzzaldrin-plus": "^0.6.5",
|
||||
"@types/html-minifier": "^4.0.5",
|
||||
"@types/lunr": "^2.3.7",
|
||||
"@types/node": "^20.9.2",
|
||||
"@types/resize-observer-browser": "^0.1.10",
|
||||
"@types/sass": "^1.45.0",
|
||||
"@typescript-eslint/eslint-plugin": "5.62.0",
|
||||
"@typescript-eslint/parser": "5.62.0",
|
||||
"autoprefixer": "^10.4.16",
|
||||
"chokidar": "^3.5.3",
|
||||
"cssnano": "5.1.0",
|
||||
"esbuild": "^0.19.5",
|
||||
"eslint": "^8.53.0",
|
||||
"esbuild": "^0.19.6",
|
||||
"eslint": "^8.54.0",
|
||||
"eslint-plugin-eslint-comments": "^3.2.0",
|
||||
"eslint-plugin-import": "^2.29.0",
|
||||
"eslint-plugin-jsdoc": "^46.8.2",
|
||||
"eslint-plugin-jsdoc": "^46.9.0",
|
||||
"eslint-plugin-no-null": "^1.0.2",
|
||||
"github-types": "^1.0.0",
|
||||
"gitlab": "^14.2.2",
|
||||
@ -76,22 +76,22 @@
|
||||
"html-minifier": "^4.0.0",
|
||||
"material-design-color": "^2.3.2",
|
||||
"material-shadows": "^3.0.1",
|
||||
"npm-check-updates": "^16.14.6",
|
||||
"npm-check-updates": "^16.14.11",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"postcss": "^8.4.31",
|
||||
"postcss-dir-pseudo-class": "^8.0.0",
|
||||
"postcss-inline-svg": "^6.0.0",
|
||||
"postcss-logical": "5.0.4",
|
||||
"postcss-pseudo-is": "^0.3.0",
|
||||
"preact": "^10.18.2",
|
||||
"preact": "^10.19.2",
|
||||
"rimraf": "^5.0.5",
|
||||
"sass": "^1.69.5",
|
||||
"simple-icons": "^9.19.1",
|
||||
"simple-icons": "^9.21.0",
|
||||
"stylelint": "^15.11.0",
|
||||
"stylelint-config-recess-order": "4.2.0",
|
||||
"stylelint-config-recommended": "^13.0.0",
|
||||
"stylelint-config-standard-scss": "^11.1.0",
|
||||
"stylelint-scss": "^5.3.0",
|
||||
"stylelint-scss": "^5.3.1",
|
||||
"stylelint-stylistic": "^0.4.3",
|
||||
"svgo": "3.0.0",
|
||||
"tiny-glob": "^0.2.9",
|
||||
|
@ -19,9 +19,9 @@
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
from functools import partial
|
||||
from markdown.extensions.toc import slugify
|
||||
from mkdocs.config.config_options import Choice, Deprecated, Optional, Type
|
||||
from mkdocs.config.base import Config
|
||||
from pymdownx.slugs import slugify
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Classes
|
||||
@ -41,7 +41,7 @@ class BlogConfig(Config):
|
||||
post_url_date_format = Type(str, default = "yyyy/MM/dd")
|
||||
post_url_format = Type(str, default = "{date}/{slug}")
|
||||
post_url_max_categories = Type(int, default = 1)
|
||||
post_slugify = Type((type(slugify), partial), default = slugify)
|
||||
post_slugify = Type(partial, default = slugify(case = "lower"))
|
||||
post_slugify_separator = Type(str, default = "-")
|
||||
post_excerpt = Choice(["optional", "required"], default = "optional")
|
||||
post_excerpt_max_authors = Type(int, default = 1)
|
||||
@ -62,7 +62,7 @@ class BlogConfig(Config):
|
||||
categories = Type(bool, default = True)
|
||||
categories_name = Type(str, default = "blog.categories")
|
||||
categories_url_format = Type(str, default = "category/{slug}")
|
||||
categories_slugify = Type((type(slugify), partial), default = slugify)
|
||||
categories_slugify = Type(partial, default = slugify(case = "lower"))
|
||||
categories_slugify_separator = Type(str, default = "-")
|
||||
categories_allowed = Type(list, default = [])
|
||||
categories_toc = Optional(Type(bool))
|
||||
|
@ -27,6 +27,8 @@ import yaml
|
||||
|
||||
from babel.dates import format_date
|
||||
from datetime import datetime
|
||||
from jinja2 import pass_context
|
||||
from jinja2.runtime import Context
|
||||
from mkdocs.config.defaults import MkDocsConfig
|
||||
from mkdocs.exceptions import PluginError
|
||||
from mkdocs.plugins import BasePlugin, event_priority
|
||||
@ -35,6 +37,7 @@ from mkdocs.structure.files import File, Files, InclusionLevel
|
||||
from mkdocs.structure.nav import Navigation, Section
|
||||
from mkdocs.structure.pages import Page
|
||||
from mkdocs.utils import copy_file, get_relative_url
|
||||
from mkdocs.utils.templates import url_filter
|
||||
from paginate import Page as Pagination
|
||||
from shutil import rmtree
|
||||
from tempfile import mkdtemp
|
||||
@ -44,7 +47,6 @@ from .author import Authors
|
||||
from .config import BlogConfig
|
||||
from .readtime import readtime
|
||||
from .structure import Archive, Category, Excerpt, Post, View
|
||||
from .templates import url_filter
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Classes
|
||||
@ -136,19 +138,22 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
|
||||
# Generate views for archive
|
||||
if self.config.archive:
|
||||
views = self._generate_archive(config, files)
|
||||
self.blog.views.extend(views)
|
||||
self.blog.views.extend(
|
||||
self._generate_archive(config, files)
|
||||
)
|
||||
|
||||
# Generate views for categories
|
||||
if self.config.categories:
|
||||
views = self._generate_categories(config, files)
|
||||
self.blog.views.extend(views)
|
||||
self.blog.views.extend(sorted(
|
||||
self._generate_categories(config, files),
|
||||
key = lambda view: view.name,
|
||||
reverse = False
|
||||
))
|
||||
|
||||
# Generate pages for views
|
||||
if self.config.pagination:
|
||||
for view in self._resolve_views(self.blog):
|
||||
for page in self._generate_pages(view, config, files):
|
||||
page.file.inclusion = InclusionLevel.EXCLUDED
|
||||
view.pages.append(page)
|
||||
|
||||
# Ensure that entrypoint is always included in navigation
|
||||
@ -180,6 +185,7 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
|
||||
# Revert temporary exclusion of views from navigation
|
||||
for view in self._resolve_views(self.blog):
|
||||
view.file.inclusion = self.blog.file.inclusion
|
||||
for page in view.pages:
|
||||
page.file.inclusion = self.blog.file.inclusion
|
||||
|
||||
@ -298,9 +304,25 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
def date_filter(date: datetime):
|
||||
return self._format_date_for_post(date, config)
|
||||
|
||||
# Patch URL template filter to add support for paginated views, i.e.,
|
||||
# that paginated views never link to themselves but to the main view
|
||||
@pass_context
|
||||
def url_filter_with_pagination(context: Context, url: str | None):
|
||||
page = context["page"]
|
||||
|
||||
# If the current page is a view, check if the URL links to the page
|
||||
# itself, and replace it with the URL of the main view
|
||||
if isinstance(page, View):
|
||||
view = self._resolve_original(page)
|
||||
if page.url == url:
|
||||
url = view.url
|
||||
|
||||
# Forward to original template filter
|
||||
return url_filter(context, url)
|
||||
|
||||
# Register custom template filters
|
||||
env.filters["date"] = date_filter
|
||||
env.filters["url"] = url_filter
|
||||
env.filters["url"] = url_filter_with_pagination
|
||||
|
||||
# Prepare view for rendering (run latest) - views are rendered last, as we
|
||||
# need to mutate the navigation to account for pagination. The main problem
|
||||
@ -317,16 +339,6 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
if view not in self._resolve_views(self.blog):
|
||||
return
|
||||
|
||||
# If the current view is paginated, replace and rewire it - the current
|
||||
# view temporarily becomes the main view, and is reset after rendering
|
||||
assert isinstance(view, View)
|
||||
if view != page:
|
||||
prev = view.pages[view.pages.index(page) - 1]
|
||||
|
||||
# Replace previous page with current page
|
||||
items = self._resolve_siblings(view, nav)
|
||||
items[items.index(prev)] = page
|
||||
|
||||
# Render excerpts and prepare pagination
|
||||
posts, pagination = self._render(page)
|
||||
|
||||
@ -342,26 +354,6 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
context["posts"] = posts
|
||||
context["pagination"] = pager if pagination else None
|
||||
|
||||
# After rendering a paginated view, replace the URL of the paginated view
|
||||
# with the URL of the original view - since we need to replace the original
|
||||
# view with a paginated view in `on_page_context` for correct resolution of
|
||||
# the active state, we must fix the paginated view URLs after rendering
|
||||
def on_post_page(self, output, *, page, config):
|
||||
if not self.config.enabled:
|
||||
return
|
||||
|
||||
# Skip if page is not a view managed by this instance - this plugin has
|
||||
# support for multiple instances, which is why this check is necessary
|
||||
view = self._resolve_original(page)
|
||||
if view not in self._resolve_views(self.blog):
|
||||
return
|
||||
|
||||
# If the current view is paginated, replace the URL of the paginated
|
||||
# view with the URL of the original view - see https://t.ly/Yeh-P
|
||||
assert isinstance(view, View)
|
||||
if view != page:
|
||||
page.file.url = view.file.url
|
||||
|
||||
# Remove temporary directory on shutdown
|
||||
def on_shutdown(self):
|
||||
rmtree(self.temp_dir)
|
||||
@ -527,7 +519,7 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
|
||||
# Resolve original page or view (e.g. for paginated views)
|
||||
def _resolve_original(self, page: Page):
|
||||
if isinstance(page, View):
|
||||
if isinstance(page, View) and page.pages:
|
||||
return page.pages[0]
|
||||
else:
|
||||
return page
|
||||
@ -550,13 +542,14 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
file = self._path_to_file(path, config)
|
||||
files.append(file)
|
||||
|
||||
# Create file in temporary directory
|
||||
# Create file in temporary directory and temporarily remove
|
||||
# from navigation, as we'll add it at a specific location
|
||||
self._save_to_file(file.abs_src_path, f"# {name}")
|
||||
file.inclusion = InclusionLevel.EXCLUDED
|
||||
|
||||
# Create and yield view - we don't explicitly set the title of
|
||||
# the view, so authors can override them in the page's content
|
||||
# Create and yield view
|
||||
if not isinstance(file.page, Archive):
|
||||
yield Archive(None, file, config)
|
||||
yield Archive(name, file, config)
|
||||
|
||||
# Assign post to archive
|
||||
assert isinstance(file.page, Archive)
|
||||
@ -585,13 +578,14 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
file = self._path_to_file(path, config)
|
||||
files.append(file)
|
||||
|
||||
# Create file in temporary directory
|
||||
# Create file in temporary directory and temporarily remove
|
||||
# from navigation, as we'll add it at a specific location
|
||||
self._save_to_file(file.abs_src_path, f"# {name}")
|
||||
file.inclusion = InclusionLevel.EXCLUDED
|
||||
|
||||
# Create and yield view - we don't explicitly set the title of
|
||||
# the view, so authors can override them in the page's content
|
||||
# Create and yield view
|
||||
if not isinstance(file.page, Category):
|
||||
yield Category(None, file, config)
|
||||
yield Category(name, file, config)
|
||||
|
||||
# Assign post to category and vice versa
|
||||
assert isinstance(file.page, Category)
|
||||
@ -615,12 +609,14 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
file = self._path_to_file(path, config)
|
||||
files.append(file)
|
||||
|
||||
# Copy file to temporary directory
|
||||
# Copy file to temporary directory and temporarily remove
|
||||
# from navigation, as we'll add it at a specific location
|
||||
copy_file(view.file.abs_src_path, file.abs_src_path)
|
||||
file.inclusion = InclusionLevel.EXCLUDED
|
||||
|
||||
# Create view and attach to previous page
|
||||
# Create and yield view
|
||||
if not isinstance(file.page, View):
|
||||
yield View(None, file, config)
|
||||
yield view.__class__(None, file, config)
|
||||
|
||||
# Assign pages and posts to view
|
||||
assert isinstance(file.page, View)
|
||||
@ -800,7 +796,7 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
||||
|
||||
# Format date
|
||||
def _format_date(self, date: datetime, format: str, config: MkDocsConfig):
|
||||
locale = config.theme["language"]
|
||||
locale: str = config.theme["language"].replace("-", "_")
|
||||
return format_date(date, format = format, locale = locale)
|
||||
|
||||
# Format date for post
|
||||
|
@ -212,10 +212,18 @@ class Excerpt(Page):
|
||||
# View
|
||||
class View(Page):
|
||||
|
||||
# Parent view
|
||||
parent: View | Section
|
||||
|
||||
# Initialize view
|
||||
def __init__(self, title: str | None, file: File, config: MkDocsConfig):
|
||||
super().__init__(title, file, config)
|
||||
self.parent: View | Section
|
||||
def __init__(self, name: str | None, file: File, config: MkDocsConfig):
|
||||
super().__init__(None, file, config)
|
||||
|
||||
# Initialize name of the view - note that views never pass a title to
|
||||
# the parent constructor, so the author can always override the title
|
||||
# that is used for rendering. However, for some purposes, like for
|
||||
# example sorting, we need something to compare.
|
||||
self.name = name
|
||||
|
||||
# Initialize posts and views
|
||||
self.posts: list[Post] = []
|
||||
|
@ -1,42 +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.
|
||||
|
||||
from jinja2 import pass_context
|
||||
from jinja2.runtime import Context
|
||||
from material.plugins.blog.structure import View
|
||||
from mkdocs.utils.templates import url_filter as _url_filter
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Functions
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Filter for normalizing URLs with support for paginated views
|
||||
@pass_context
|
||||
def url_filter(context: Context, url: str):
|
||||
page = context["page"]
|
||||
|
||||
# If the current page is a view, check if the URL links to the page
|
||||
# itself, and replace it with the URL of the main view
|
||||
if isinstance(page, View):
|
||||
if page.url == url:
|
||||
url = page.pages[0].url
|
||||
|
||||
# Forward to original template filter
|
||||
return _url_filter(context, url)
|