Documentation Resources¶
External Resources¶
Our documentation is built on Material for MkDocs. Both Material and MkDocs provide extensive documentation of their own:
MkDocs utilizes Markdown, a simple text formatting language. Many resources exist online to teach the basics of Markdown, there's even an interactive Markdown tutorial that can be completed in about 10 minutes.
Markdown tables can be a bit of hassle to create manually, but a handy tool is available to help: Tables Generator.
Enabled Features¶
Material provides a wide range of built-in features that we can enable or disable as needed. Below is a list of the currently enabled features and accompanying information.
| Feature | Use |
|---|---|
| content.action.edit and content.action.view | Adds edit and view code action buttons |
| content.tooltips | When improved tooltips are enabled, Material for MkDocs replaces the browser's rendering logic for title attribute with beautiful little tooltips. |
| content.code.copy | Code blocks can automatically render a button on the right side to allow the user to copy a code block's contents to the clipboard. |
| content.code.annotate | Code annotations offer a comfortable and friendly way to attach arbitrary content to specific sections of code blocks by adding numeric markers in block and inline comments in the language of the code block. |
| navigation.top | A back-to-top button can be shown when the user, after scrolling down, starts to scroll up again. It's rendered centered and just below the header. |
| navigation.indexes | When section index pages are enabled, documents can be directly attached to sections, which is particularly useful for providing overview pages. |
| navigation.tabs | When tabs are enabled, top-level sections are rendered in a menu layer below the header for viewports above 1220px, but remain as-is on mobile. |
Enabled Extensions¶
Material provides a wide range of helpful Markdown extensions that provide further functionality to our documentation. Below is a list of the currently enabled extensions and accompanying information.
| Extension | Use | Extra Information |
|---|---|---|
| abbr | The Abbreviations extension adds the ability to add a small tooltip to an element, by wrapping it with an abbr tag. Only plain text (no markup) is supported. | |
| pymdownx.snippets | The Snippets extension adds the ability to embed content from arbitrary files into a document, including other documents or source files, by using a simple syntax. | The snippets extension also allows us to utilize the glossary function of the abbr extension. Adding an abbreviation to docs-resources/includes/abbreviations.md will make it global. |
| admonition | Admonitions, also known as call-outs, are an excellent choice for including side content without significantly interrupting the document flow. | |
| pymdownx.details | The Details extension supercharges the Admonition extension, making the resulting call-outs collapsible, allowing them to be opened and closed by the user. | |
| pymdownx.superfences | The SuperFences extension allows for arbitrary nesting of code and content blocks inside each other, including admonitions, tabs, lists and all other elements. | We do not utilize the custom_fences option. |
| pymdownx.tilde | Tilde optionally adds two different features which are syntactically built around the ~ character: delete which inserts | Tilde optionally adds two different features which are syntactically built around the ~ character: delete which inserts <del></del> tags and subscript which inserts <sub></sub> tags. |
| pymdownx.highlight | The Highlight extension adds support for syntax highlighting of code blocks (with the help of SuperFences) and inline code blocks (with the help of InlineHilite). | * anchor-linenums enabled * line-spans enabled * pygments_lang_class enabled |
| pymdownx.inlinehilite | The InlineHilite extension add support for syntax highlighting of inline code blocks. It's built on top of the Highlight extension, from which it sources its configuration. | |
| pymdownx.tabbed | The Tabbed extension allows the usage of content tabs, a simple way to group related content and code blocks under accessible tabs. | * alternate_style enabled |
| attr_list | The Attribute Lists extension allows to add HTML attributes and CSS classes to almost every Markdown inline- and block-level element with a special syntax. | |
| pymdownx.emoji | This configuration enables the use of icons and emojis by using simple shortcodes which can be discovered through the icon search. | Custom icons stored in docs-resources/.icons |
| md_in_html | The Markdown in HTML extension allows for writing Markdown inside of HTML, which is useful for wrapping Markdown content with custom elements. | |
| toc | The Table of Contents extension automatically generates a table of contents from a document, which Material for MkDocs will render as part of the resulting page | |
| tasklist | The Tasklist extension allows for the usage of GitHub Flavored Markdown inspired task lists, following the same syntactical conventions |
Custom ClanGen Assets¶
We currently have custom icons set up, which can be utilized across the entire documentation. Below is a table displaying all current icons.
| Icon | Markdown |
|---|---|
:clangen-arrow-left: |
|
:clangen-arrow-left-double: |
|
:clangen-arrow-right: |
|
:clangen-cat-head: |
|
:clangen-clan-blank: |
|
:clangen-clan-question: |
|
:clangen-clan-strike: |
|
:clangen-dice: |
|
:clangen-droplet: |
|
:clangen-herb: |
|
:clangen-leaf: |
|
:clangen-log: |
|
:clangen-magnify: |
|
:clangen-mouse: |
|
:clangen-paw: |
|
:clangen-scratches: |
|
:clangen-snowflake: |
|
:clangen-sprout: |
|
:clangen-starclan: |
|
:clangen-sun: |