@host.today/ht-docker-mkdocs
Documentation for @host.today/ht-docker-mkdocs
- docs/authors-notes.md for @host.today/ht-docker-mkdocs
- docs/compliance.md for @host.today/ht-docker-mkdocs
- docs/contributing.md for @host.today/ht-docker-mkdocs
- docs/customization.md for @host.today/ht-docker-mkdocs
- docs/getting-started.md for @host.today/ht-docker-mkdocs
- docs/index.md for @host.today/ht-docker-mkdocs
- docs/license.md for @host.today/ht-docker-mkdocs
- docs/release-notes.md for @host.today/ht-docker-mkdocs
- docs/specimen.md for @host.today/ht-docker-mkdocs
docs/authors-notes.md for @host.today/ht-docker-mkdocs
Author's notes
Hi, I'm Martin (@squidfunk)
I'm a freelance polyglot software engineer and entrepreneur from Cologne, Germany with more than 12 years of experience in full-stack web development and system programming. If you're interested in my projects, please see my CV.
Why another theme?
Some time ago I wanted to release a project to the open, but it was in need of user documentation. I checked out the available tools and stuck with MkDocs, because it was so simple and easy to use. However, none of the available themes convinced me.
I wanted to build something that was usable on all screen sizes from the ground up, something beautiful and practical at the same time. Google's Material Design appeared to be the perfect fit and this something became Material, a Material Design theme for MkDocs.
docs/compliance.md for @host.today/ht-docker-mkdocs
Compliance with GDPR
Material does not process any personal data
Material is a theme for MkDocs, a static site generator. In itself, Material does not perform any tracking or processing of personal data. However, some of the third-party services that Material integrates with may actually be in breach with the General Data Protection Regulation (GDPR) and need to be evaluated carefully.
Third-party services
Google Fonts
Material makes fonts easily configurable by relying on Google Fonts CDN. However, embedding fonts from Google is currently within a gray area as there's no official statement or ruling regarding GDPR compliance and the topic is still actively discussed. For this reason, if you need to ensure GDPR compliance, you should disable the usage of the Google Font CDN with:
theme:
font: false
When Google Fonts are disabled, Material will default to Helvetica Neue and
Monaco with their corresponding fall backs, relying on system fonts. You
could however include your own, self-hosted webfont by overriding the
fonts block.
The icon fonts (Material and FontAwesome) are bundled with the theme, and thus self-hosted so there's no third-party involved.
Google Analytics and Disqus
Material comes with Google Analytics and Disqus integrations that need to be enabled explicitly. Disable both integrations in order to be in compliance with the GDPR.
docs/contributing.md for @host.today/ht-docker-mkdocs
Contributing
Interested in contributing to the Material theme? Want to report a bug? Before you do, please read the following guidelines.
Submission context
Got a question or problem?
For quick questions there's no need to open an issue as you can reach us on gitter.im.
Found a bug?
If you found a bug in the source code, you can help us by submitting an issue to the issue tracker in our GitHub repository. Even better, you can submit a Pull Request with a fix. However, before doing so, please read the submission guidelines.
Missing a feature?
You can request a new feature by submitting an issue to our GitHub Repository. If you would like to implement a new feature, please submit an issue with a proposal for your work first, to be sure that it is of use for everyone, as the Material theme is highly opinionated. Please consider what kind of change it is:
-
For a major feature, first open an issue and outline your proposal so that it can be discussed. This will also allow us to better coordinate our efforts, prevent duplication of work, and help you to craft the change so that it is successfully accepted into the project.
-
Small features and bugs can be crafted and directly submitted as a Pull Request. However, there is no guarantee that your feature will make it into the master, as it's always a matter of opinion whether if benefits the overall functionality of the theme.
Submission guidelines
Submitting an issue
Before you submit an issue, please search the issue tracker, maybe an issue for your problem already exists and the discussion might inform you of workarounds readily available.
We want to fix all the issues as soon as possible, but before fixing a bug we need to reproduce and confirm it. In order to reproduce bugs we will systematically ask you to provide a minimal reproduction scenario using the custom issue template. Please stick to the issue template.
Unfortunately we are not able to investigate / fix bugs without a minimal reproduction scenario, so if we don't hear back from you we may close the issue.
Submitting a Pull Request (PR)
Search GitHub for an open or closed PR that relates to your submission. You don't want to duplicate effort. If you do not find a related issue or PR, go ahead.
-
Development: Fork the project, set up the development environment, make your changes in a separate git branch and add descriptive messages to your commits.
-
Build: Before submitting a pull requests, build the theme. This is a mandatory requirement for your PR to get accepted, as the theme should at all times be installable through GitHub.
-
Pull Request: After building the theme, commit the compiled output, push your branch to GitHub and send a PR to
mkdocs-material:master. If we suggest changes, make the required updates, rebase your branch and push the changes to your GitHub repository, which will automatically update your PR.
After your PR is merged, you can safely delete your branch and pull the changes from the main (upstream) repository.
docs/customization.md for @host.today/ht-docker-mkdocs
Customization
A great starting point
Project documentation is as diverse as the projects themselves and the Material theme is a good starting point for making it look great. However, as you write your documentation, you may reach a point where some small adjustments are necessary to preserve the desired style.
Adding assets
MkDocs provides several ways to interfere with themes. In order to make a
few tweaks to an existing theme, you can just add your stylesheets and
JavaScript files to the docs directory.
Additional stylesheets
If you want to tweak some colors or change the spacing of certain elements,
you can do this in a separate stylesheet. The easiest way is by creating a
new stylesheet file in your docs directory:
mkdir docs/stylesheets
touch docs/stylesheets/extra.css
Then, add the following line to your mkdocs.yml:
extra_css:
- 'stylesheets/extra.css'
Spin up the development server with mkdocs serve and start typing your
changes in your additional stylesheet file – you can see them instantly after
saving, as the MkDocs development server implements live reloading.
Additional JavaScript
The same is true for additional JavaScript. If you want to integrate another
syntax highlighter or add some custom logic to your theme, create a new
JavaScript file in your docs directory:
mkdir docs/javascripts
touch docs/javascripts/extra.js
Then, add the following line to your mkdocs.yml:
extra_javascript:
- 'javascripts/extra.js'
Further assistance can be found in the MkDocs documentation.
Extending the theme
If you want to alter the HTML source (e.g. add or remove some part), you can extend the theme. From version 0.16 on MkDocs implements theme extension, an easy way to override parts of a theme without forking and changing the main theme.
Setup and theme structure
Reference the Material theme as usual in your mkdocs.yml, and create a
new folder for overrides, e.g. theme, which you reference using custom_dir:
theme:
name: 'material'
custom_dir: 'theme'
!!! warning "Theme extension prerequisites"
As the `custom_dir` variable is used for the theme extension process, the
Material theme needs to be installed via `pip` and referenced with the
`name` parameter in your `mkdocs.yml`.
The structure in the theme directory must mirror the directory structure of the original theme, as any file in the theme directory will replace the file with the same name which is part of the original theme. Besides, further assets may also be put in the theme directory.
The directory layout of the Material theme is as follows:
.
├─ assets/
│ ├─ images/ # Images and icons
│ ├─ javascripts/ # JavaScript
│ └─ stylesheets/ # Stylesheets
├─ partials/
│ ├─ integrations/ # 3rd-party integrations
│ ├─ language/ # Localized languages
│ ├─ footer.html # Footer bar
│ ├─ header.html # Header bar
│ ├─ hero.html # Hero teaser
│ ├─ language.html # Localized labels
│ ├─ nav-item.html # Main navigation item
│ ├─ nav.html # Main navigation
│ ├─ search.html # Search box
│ ├─ social.html # Social links
│ ├─ source.html # Repository information
│ ├─ tabs-item.html # Tabs navigation item
│ ├─ tabs.html # Tabs navigation
│ ├─ toc-item.html # Table of contents item
│ └─ toc.html # Table of contents
├─ 404.html # 404 error page
├─ base.html # Base template
└─ main.html # Default page
Overriding partials
In order to override the footer, we can replace the footer.html partial with
our own partial. To do this, create the file partials/footer.html in the
theme directory. MkDocs will now use the new partial when rendering the theme.
This can be done with any file.
Overriding template blocks
Besides overriding partials, one can also override so called template blocks,
which are defined inside the Material theme and wrap specific features. To
override a template block, create a main.html inside the theme directory and
define the block, e.g.:
{% extends "base.html" %}
{% block htmltitle %}
<title>Lorem ipsum dolor sit amet</title>
{% endblock %}
The Material theme provides the following template blocks:
| Block name | Wrapped contents |
|---|---|
analytics |
Wraps the Google Analytics integration |
content |
Wraps the main content |
disqus |
Wraps the disqus integration |
extrahead |
Empty block to define additional meta tags |
fonts |
Wraps the webfont definitions |
footer |
Wraps the footer with navigation and copyright |
header |
Wraps the fixed header bar |
hero |
Wraps the hero teaser |
htmltitle |
Wraps the <title> tag |
libs |
Wraps the JavaScript libraries, e.g. Modernizr |
scripts |
Wraps the JavaScript application logic |
source |
Wraps the linked source files |
site_meta |
Wraps the meta tags in the document head |
site_nav |
Wraps the site navigation and table of contents |
styles |
Wraps the stylesheets (also extra sources) |
For more on this topic refer to the MkDocs documentation
Theme development
The Material theme uses Webpack as a build tool to leverage modern web technologies like Babel and SASS. If you want to make more fundamental changes, it may be necessary to make the adjustments directly in the source of the Material theme and recompile it. This is fairly easy.
Environment setup
In order to start development on the Material theme, a Node.js version of at least 8 is required. First, clone the repository:
git clone https://github.com/squidfunk/mkdocs-material
Next, all dependencies need to be installed, which is done with:
cd mkdocs-material
pip install -r requirements.txt
npm install
Development mode
The development server can be started with:
npm run watch
This will also start the MkDocs development server which will monitor changes on assets, templates and documentation. Point your browser to localhost:8000 and you should see this documentation in front of you.
For example, changing the color palette is as simple as changing the
$md-color-primary and $md-color-accent variables in
src/assets/stylesheets/_config.scss:
$md-color-primary: $clr-red-400;
$md-color-accent: $clr-teal-a700;
!!! warning "Automatically generated files"
Never make any changes in the `material` directory, as the contents of this
directory are automatically generated from the `src` directory and will be
overridden when the theme is built.
Build process
When you've finished making your changes, you can build the theme by invoking:
npm run build
This triggers the production-level compilation and minification of all
stylesheets and JavaScript sources. When the command exits, the final theme is
located in the material directory. Add the theme_dir variable pointing to
the aforementioned directory in your original mkdocs.yml.
Now you can run mkdocs build and you should see your documentation with your
changes to the original Material theme.
docs/getting-started.md for @host.today/ht-docker-mkdocs
Getting started
Installation
Installing MkDocs
Before installing MkDocs, you need to make sure you have Python and pip
– the Python package manager – up and running. You can verify if you're already
good to go with the following commands:
python --version
# Python 2.7.13
pip --version
# pip 9.0.1
Installing and verifying MkDocs is as simple as:
pip install mkdocs && mkdocs --version
# mkdocs, version 0.17.1
Material requires MkDocs >= 0.17.1.
Installing Material
using pip
Material can be installed with pip:
pip install mkdocs-material
using choco
If you're on Windows you can use Chocolatey to install Material:
choco install mkdocs-material
This will install all required dependencies like Python and MkDocs.
cloning from GitHub
Material can also be used without a system-wide installation by cloning the repository into a subfolder of your project's root directory:
git clone https://github.com/squidfunk/mkdocs-material.git
This is especially useful if you want to extend the theme and
override some parts of the theme. The theme will reside in the folder
mkdocs-material/material.
Troubleshooting
!!! warning "Installation on macOS"
When you're running the pre-installed version of Python on macOS, `pip`
tries to install packages in a folder for which your user might not have
the adequate permissions. There are two possible solutions for this:
1. **Installing in user space** (recommended): Provide the `--user` flag
to the install command and `pip` will install the package in a user-site
location. This is the recommended way.
2. **Switching to a homebrewed Python**: Upgrade your Python installation
to a self-contained solution by installing Python with Homebrew. This
should eliminate a lot of problems you may be having with `pip`.
!!! failure "Error: unrecognized theme 'material'"
If you run into this error, the most common reason is that you installed
MkDocs through some package manager (e.g. Homebrew or `apt-get`) and the
Material theme through `pip`, so both packages end up in different
locations. MkDocs only checks its install location for themes.
Alternative: Using Docker
If you're familiar with Docker, the official Docker image for Material comes with all dependencies pre-installed and ready-to-use with the latest version published on PyPI, packaged in a very small image. Pull it with:
docker pull squidfunk/mkdocs-material
The mkdocs executable is provided as an entrypoint, serve is the default
command. Start the development server in your project root with:
docker run --rm -it -p 8000:8000 -v ${PWD}:/docs squidfunk/mkdocs-material
If you're using Windows command prompt (cmd.exe), substitute ${PWD} with
"%cd%".
Usage
In order to enable the theme just add one of the following lines to your
project's mkdocs.yml. If you installed Material using a package manager:
theme:
name: 'material'
If you cloned Material from GitHub:
theme:
name: null
custom_dir: 'mkdocs-material/material'
MkDocs includes a development server, so you can review your changes as you go. The development server can be started with the following command:
mkdocs serve
Now you can point your browser to http://localhost:8000 and the Material theme should be visible. From here on, you can start writing your documentation, or read on and customize the theme.
Configuration
Color palette
A default hue is defined for every primary and accent color on Google's Material Design color palette, which makes it very easy to change the overall look of the theme. Just set the primary and accent colors using the following variables:
theme:
palette:
primary: 'indigo'
accent: 'indigo'
Color names are case-insensitive, but must match the names of the Material
Design color palette. Valid values are: red, pink, purple, deep purple,
indigo, blue, light blue, cyan, teal, green, light green, lime,
yellow, amber, orange, deep orange, brown, grey, blue grey and
white. The last four colors can only be used as a primary color.
If the color is set via this configuration, an additional CSS file that defines the color palette is automatically included. If you want to keep things lean, clone the repository and recompile the theme with your custom colors set. See the guide on customization for more information.
Primary colors
Default:
indigo
Click on a tile to change the primary color of the theme:
Accent colors
Default:
indigo
Click on a tile to change the accent color of the theme:
Font family
Default:
RobotoandRoboto Mono
By default the Roboto font family is included with the theme, specifically
the regular sans-serif type for text and the monospaced type for code. Both
fonts are loaded from Google Fonts and can be changed to other fonts,
like for example the Ubuntu font family:
theme:
font:
text: 'Ubuntu'
code: 'Ubuntu Mono'
The text font will be loaded in weights 400 and 700, the monospaced font
in regular weight. If you want to load fonts from other destinations or don't
want to use the Google Fonts loading magic, just set font to false:
theme:
font: false
Logo
Default icon:
school
Your logo should have rectangular shape with a minimum resolution of 128x128,
leave some room towards the edges and be composed of high contrast areas on a
transparent ground, as it will be placed on the colored header bar and drawer.
Simply create the folder docs/images, add your logo and embed it with:
theme:
logo: 'images/logo.svg'
Additionally, the default icon can be changed by setting an arbitrary ligature (or Unicode code point) from the Material Design icon font, e.g.
theme:
logo:
icon: 'cloud'
Language
!!! info "Call for Contributions: Add languages/translations to Material"
Help translate Material into more languages - it's just **one click** and
takes approximately **2 minutes**: [click here](http://bit.ly/2EbzFc8)
Localization
Default:
en
Material for MkDocs supports internationalization (i18n) and provides translations for all template variables and labels in the following languages:
| Available languages | |||
|---|---|---|---|
ar / Arabic |
ca / Catalan |
cs / Czech |
da / Danish |
nl / Dutch |
en / English |
fi / Finnish |
fr / French |
gl / Galician |
de / German |
gr / Greek |
he / Hebrew |
hi / Hindi |
hr / Croatian |
hu / Hungarian |
id / Indonesian |
it / Italian |
ja / Japanese |
kr / Korean |
no / Norwegian |
nn / Norwegian (Nynorsk) |
fa / Persian |
pl / Polish |
|
pt / Portugese |
ru / Russian |
sr / Serbian |
sh / Serbo-Croatian |
sk / Slovak |
es / Spanish |
sv / Swedish |
tr / Turkish |
uk / Ukrainian |
vi / Vietnamese |
zh / Chinese (Simplified)
|
|
zh-Hant / Chinese (Traditional)
|
zh-TW / Chinese (Taiwanese) |
||
| Submit a new language | |||
Specify the language with:
theme:
language: 'en'
If the language is not specified, Material falls back to English. To create a translation for another language, copy the localization file of an existing language, name the new file using the 2-letter language code and adjust all translations:
cp partials/language/en.html partials/language/jp.html
Text direction
Default: best match for given theme language, automatically set
Material supports both, left-to-right (ltr) and right-to-left (rtl) text
direction. This enables more languages like Arabic, Hebrew, Syriac and others
to be used with the theme:
theme:
direction: 'rtl'
Site search
Default: best match for given theme language, automatically set
Site search is implemented using lunr.js, which includes stemmers for the
English language by default, while stemmers for other languages are included
with lunr-languages, both of which are integrated with this theme.
Material selects the matching (or best-matching) stemmer for the given theme
language. Multilingual search can be activated in your project's mkdocs.yml
by explicitly defining the search language(s):
extra:
search:
language: 'en, de, ru'
At the time of writing, the following languages are supported:
| Available language stemmers | |||
|---|---|---|---|
da / Danish |
du / Dutch |
en / English |
fi / Finnish |
fr / French |
de / German |
hu / Hungarian |
it / Italian |
ja / Japanese |
no / Norwegian |
pt / Portugese |
ro / Romanian |
ru / Russian |
es / Spanish |
sv / Swedish |
tr / Turkish |
!!! warning "MkDocs 1.0 compatibility"
While MkDocs 1.0 supports prebuilding the search index, Material currently
doesn't support this setting as the default search behavior of the original
theme was heavily modified for the sake of a better UX. Integration is
possible, but a small subset of the features Material provides will not be
portable to the prebuilt index mainly due to missing localization.
!!! warning "Only specify the languages you really need"
Be aware that including support for other languages increases the general
JavaScript payload by around 20kb (without gzip) and by another 15-30kb per
language.
The separator for tokenization can be customized which makes it possible
to index parts of words that are separated by - or .:
extra:
search:
tokenizer: '[\s\-\.]+'
Favicon
Default:
assets/images/favicon.png
The default favicon can be changed by setting the favicon variable to an
.ico or image file:
theme:
favicon: 'assets/images/favicon.ico'
Features
Tabs
Default:
false
By default, the entire navigation is rendered on the left side using collapsible
sections (different from the default MkDocs theme which renders the top-level
sections in the header), because horizontal navigation is often problematic on
smaller screens. However, for large documentation projects it's sometimes
desirable to add another navigation layer to separate top-level sections.
Material achieves this with the tabs feature, which can be enabled by setting
the respective feature flag to true:
theme:
feature:
tabs: true
When tabs are enabled, top-level sections will be rendered in an additional
layer directly below the header. The navigation on the left side will only
include the pages contained within the selected section. Furthermore, top-level
pages defined inside your project's mkdocs.yml will be grouped under the
first tab which will receive the title of the first page.
Customization
Adding a source repository
To include a link to the repository of your project within your documentation,
set the following variables via your project's mkdocs.yml:
repo_name: 'squidfunk/mkdocs-material'
repo_url: 'https://github.com/squidfunk/mkdocs-material'
The name of the repository will be rendered next to the search bar on big
screens and as part of the main navigation drawer on smaller screen sizes.
Furthermore, if repo_url points to a GitHub, BitBucket or GitLab repository,
the respective service logo will be shown next to the name of the repository.
Additionally, for GitHub, the number of stars and forks is shown.
If the repository is hosted in a private environment, the service logo can be
set explicitly by setting extra.repo_icon to github, gitlab or
bitbucket.
!!! question "Why is there an edit button at the top of every article?"
If the `repo_url` is set to a GitHub or BitBucket repository, and the
`repo_name` is set to *GitHub* or *BitBucket* (implied by default), an
edit button will appear at the top of every article. This is the automatic
behavior that MkDocs implements. See the [MkDocs documentation][19] on more
guidance regarding the `edit_uri` attribute, which defines whether the edit
button is shown or not.
Adding social links
extra:
social:
- type: 'github'
link: 'https://github.com/squidfunk'
- type: 'twitter'
link: 'https://twitter.com/squidfunk'
- type: 'linkedin'
link: 'https://linkedin.com/in/squidfunk'
The links are generated in order and the type of the links must match the
name of the FontAwesome glyph. The fa is automatically added, so github
will result in fa fa-github.
Adding a Web App Manifest
A Web App Manifest is a simple JSON file that tells the browser about your
web application and how it should behave when installed on the user's mobile
device or desktop. You can specify a manifest in your mkdocs.yml:
extra:
manifest: 'manifest.webmanifest'
More advanced customization
If you want to change the general appearance of the Material theme, see this article for more information on advanced customization.
Integrations
Google Analytics
MkDocs makes it easy to integrate site tracking with Google Analytics.
Besides basic tracking, clicks on all outgoing links can be tracked as well as
how site search is used. Tracking can be activated in your project's
mkdocs.yml:
google_analytics:
- 'UA-XXXXXXXX-X'
- 'auto'
Disqus
Material for MkDocs is integrated with Disqus, so if you want to add a
comments section to your documentation set the shortname of your Disqus project
in your mkdocs.yml:
extra:
disqus: 'your-shortname'
The comments section is inserted on every page, except the index page. Additionally, a new entry at the bottom of the table of contents is generated that is linking to the comments section. The necessary JavaScript is automatically included.
!!! warning "Requirements"
`site_url` value must be set in `mkdocs.yml` for the Disqus integration to
load properly.
Disqus can also be enabled or disabled for specific pages using Metadata.
Extensions
MkDocs supports several Markdown extensions. The following extensions are not enabled by default (see the link for which are enabled by default) but highly recommended, so they should be switched on at all times:
markdown_extensions:
- admonition
- codehilite:
guess_lang: false
- toc:
permalink: true
For more information, see the following list of extensions supported by the Material theme including more information regarding installation and usage:
Full example
Below is a full example configuration for a mkdocs.yml:
# Project information
site_name: 'Material for MkDocs'
site_description: 'A Material Design theme for MkDocs'
site_author: 'Martin Donath'
site_url: 'https://squidfunk.github.io/mkdocs-material/'
# Repository
repo_name: 'squidfunk/mkdocs-material'
repo_url: 'https://github.com/squidfunk/mkdocs-material'
# Copyright
copyright: 'Copyright © 2016 - 2017 Martin Donath'
# Configuration
theme:
name: 'material'
language: 'en'
palette:
primary: 'indigo'
accent: 'indigo'
font:
text: 'Roboto'
code: 'Roboto Mono'
# Customization
extra:
manifest: 'manifest.webmanifest'
social:
- type: 'github'
link: 'https://github.com/squidfunk'
- type: 'twitter'
link: 'https://twitter.com/squidfunk'
- type: 'linkedin'
link: 'https://linkedin.com/in/squidfunk'
# Google Analytics
google_analytics:
- 'UA-XXXXXXXX-X'
- 'auto'
# Extensions
markdown_extensions:
- admonition
- codehilite:
guess_lang: false
- toc:
permalink: true
docs/index.md for @host.today/ht-docker-mkdocs
Material for MkDocs
Create beautiful project documentation
Material is a theme for MkDocs, an excellent static site generator geared towards project documentation. It is built using Google's Material Design guidelines.
Quick start
Install the latest version of Material with pip:
pip install mkdocs-material
Append the following line to your project's mkdocs.yml:
theme:
name: 'material'
What to expect
-
Responsive design and fluid layout for all kinds of screens and devices, designed to serve your project documentation in a user-friendly way in 36 languages with optimal readability.
-
Easily customizable primary and accent color, fonts, favicon and logo; straight forward localization through theme extension; integrated with Google Analytics, Disqus and GitHub.
-
Well-designed search interface accessible through hotkeys (F or S), intelligent grouping of search results, search term highlighting and lazy loading.
For detailed instructions see the getting started guide.
docs/license.md for @host.today/ht-docker-mkdocs
License
MIT License
Copyright © 2016 - 2019 Martin Donath
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.
docs/release-notes.md for @host.today/ht-docker-mkdocs
Release notes
Upgrading
To upgrade Material to the latest version, use pip:
pip install --upgrade mkdocs-material
To inspect the currently installed version, use the following command:
pip show mkdocs-material
Material 3.x to 4.x
-
Material for MkDocs 4.x finally fixes incorrect layout on Chinese systems. The fix includes a mandatory change of the base font-size from
10pxto20pxwhich means allremvalues needed to be updated. Within the theme,pxtoremcalculation is now encapsulated in a new function calledpx2remwhich is part of the SASS code base. -
If you use Material with custom CSS that is based on
remvalues, note that those values must now be divided by 2. Now,1.0remdoesn't map to10px, but20px. To learn more about the problem and implications, please refer to the issue in which the problem was discovered and fixed.
Material 2.x to 3.x
-
Material for MkDocs 3.x requires MkDocs 1.0 because the way paths are resolved internally changed significantly. Furthermore,
pageswas renamed tonav, so remember to adjust yourmkdocs.ymlfile. -
All extended templates should continue to work but in order to make them future-proof the
urlfilter should be introduced on all paths. Please see the official release notes for further guidance.
Material 1.x to 2.x
-
Material for MkDocs 2.x requires MkDocs 0.17.1, as this version introduced changes to the way themes can define options. The following variables inside your project's
mkdocs.ymlneed to be renamed:extra.featurebecomestheme.featureextra.palettebecomestheme.paletteextra.fontbecomestheme.fontextra.logobecomestheme.logo
-
Favicon support has been dropped by MkDocs, it must now be defined in
theme.favicon(previouslysite_favicon). -
Localization is now separated into theme language and search language. While there can only be a single language on theme-level, the search supports multiple languages which can be separated by commas. See the getting started guide for more guidance.
-
The search tokenizer can now be set through
extra.search.tokenizer.
Changelog
4.2.0 _ April 28, 2019
- Added Norwegian (Nynorsk) translations
- Fixed loss of focus in non-form input elements due to search hotkeys
- Fixed #1067: Search hotkeys not working for mobile/tablet screensize
- Fixed #1068: Search not correctly aligned for tablet screensize
4.1.2 _ April 16, 2019
- Fixed #1072: HTML tags appearing in navigation link titles
4.1.1 _ March 28, 2019
- Fixed minor CSS errors detected during validation
4.1.0 _ March 22, 2019
- Fixed #1023: Search for Asian languages broken after Lunr.js update
- Fixed #1026: contenteditable elements loose focus on hotkeys
4.0.2 _ March 1, 2019
- Fixed #1012: HTML character entities appear in search result titles
4.0.1 _ February 13, 2019
- Fixed #762, #816: Glitch in sidebar when collapsing items
- Fixed #869: Automatically expand details before printing
4.0.0 _ February 13, 2019
- Added background on hover for table rows
- Removed Google Tag Manager and reverted to Google Analytics
- Removed blocks in partials - Jinja doesn't support them
- Fixed #911: Chrome breaks layout if system language is Chinese [BREAKING]
- Fixed #976: Removed FastClick
3.3.0 _ January 29, 2019
- Moved Google Analytics integration into
headusing Google Tag Manager - Fixed #972: Unicode slugifier breaks table of contents blur on scroll
- Fixed #974: Additional links in table of contents break blur on scroll
3.2.0 _ December 28, 2018
- Added support for redirects using metadata refresh
- Fixed #921: Load Google Analytics snippet asynchronously
3.1.0 _ November 17, 2018
- Added support for Progressive Web App Manifest
- Fixed #915: Search bug in Safari (upgraded Lunr.js)
3.0.6 _ October 26, 2018
- Added Taiwanese translations
- Fixed #906: JavaScript code blocks evaluated in search results
3.0.5 _ October 23, 2018
- Added Croatian and Indonesian translations
- Fixed #899: Skip-to-content link invalid from 2nd level on
- Fixed #902: Missing URL filter in footer for FontAwesome link
3.0.4 _ September 3, 2018
- Updated Dutch translations
- Fixed #856: Removed preconnect meta tag if Google Fonts are disabled
3.0.3 _ August 7, 2018
- Fixed #841: Additional path levels for extra CSS and JS
3.0.2 _ August 6, 2018
- Fixed #839: Lunr.js stemmer imports incorrect
3.0.1 _ August 5, 2018
- Fixed #838: Search result links incorrect
3.0.0 _ August 5, 2018
- Upgraded MkDocs to 1.0 [BREAKING]
- Upgraded Python in official Docker image to 3.6
- Added Serbian and Serbo-Croatian translations
2.9.4 _ July 29, 2018
- Fixed build error after MkDocs upgrade
2.9.3 _ July 29, 2018
- Added link to home for logo in drawer
- Fixed dependency problems between MkDocs and Tornado
2.9.2 _ June 29, 2018
- Added Hindi and Czech translations
2.9.1 _ June 18, 2018
- Added support for different spellings for theme color
- Fixed #799: Added support for web font minification in production
- Fixed #800: Added
.highlighttableas an alias for.codehilitetable
2.9.0 _ June 13, 2018
- Added support for theme color on Android
- Fixed #796: Rendering of nested tabbed code blocks
2.8.0 _ June 10, 2018
- Added support for grouping code blocks with tabs
- Added Material and FontAwesome icon fonts to distribution files (GDPR)
- Added note on compliance with GDPR
- Added Slovak translations
- Fixed #790: Prefixed
idattributes with__to avoid name clashes
2.7.3 _ April 26, 2018
- Added Finnish translations
2.7.2 _ April 9, 2018
- Fixed rendering issue for
detailson Edge
2.7.1 _ March 21, 2018
- Added Galician translations
- Fixed #730: Scroll chasing error on home page if Disqus is enabled
- Fixed #736: Reset drawer and search upon back button invocation
2.7.0 _ March 6, 2018
- Added ability to set absolute URL for logo
- Added Hebrew translations
2.6.6 _ February 22, 2018
- Added preconnect for Google Fonts for faster loading
- Fixed #710: With tabs sidebar disappears if JavaScript is not available
2.6.5 _ February 22, 2018
- Reverted
--dev-addrflag removal fromDockerfile
2.6.4 _ February 21, 2018
- Added Catalan translations
- Fixed incorrect margins for buttons in Firefox and Safari
- Replaced package manager
yarnwithnpm 5.6 - Reverted GitHub stars rounding method
- Removed
--dev-addrflag fromDockerfilefor Windows compatibility
2.6.3 _ February 18, 2018
- Added Vietnamese translations
2.6.2 _ February 12, 2018
- Added Arabic translations
- Fixed incorrect rounding of amount of GitHub stars
- Fixed double-layered borders for tables
2.6.1 _ February 11, 2018
- Added ability to override Disqus integration using metadata
- Fixed #690: Duplicate slashes in source file URLs
- Fixed #696: Active page highlight not working with default palette
- Adjusted German translations
2.6.0 _ February 2, 2018
- Moved default search configuration to default translation (English)
- Added support to automatically set text direction from translation
- Added support to disable search stop word filter in translation
- Added support to disable search trimmer in translation
- Added Persian translations
- Fixed support for Polish search
- Fixed disappearing GitHub, GitLab and Bitbucket repository icons
2.5.5 _ January 31, 2018
- Added Hungarian translations
2.5.4 _ January 29, 2018
- Fixed #683:
gh-deployfails inside Docker
2.5.3 _ January 25, 2018
- Added Ukrainian translations
2.5.2 _ January 22, 2018
- Added default search language mappings for all localizations
- Fixed #673: Error loading non-existent search language
- Fixed #675: Uncaught reference error when search plugin disabled
2.5.1 _ January 20, 2018
- Fixed permalink for main headline
- Improved missing translation handling with English as a fallback
- Improved accessibility with skip-to-content link
2.5.0 _ January 13, 2018
- Added support for right-to-left languages
2.4.0 _ January 11, 2018
- Added focus state for clipboard buttons
- Fixed #400: Search bar steals tab focus
- Fixed search not closing on ++enter++ when result is selected
- Fixed search not closing when losing focus due to ++tab++
- Fixed collapsed navigation links getting focus
- Fixed
outlinebeing cut off on ++tab++ focus of navigation links - Fixed bug with first search result navigation being ignored
- Removed search result navigation via ++tab++ (use ++up++ and ++down++)
- Removed
outlineresets for links - Improved general tabbing behavior on desktop
2.3.0 _ January 9, 2018
- Added
example(synonym:snippet) style for Admonition - Added synonym
abstractforsummarystyle for Admonition
2.2.6 _ December 27, 2017
- Added Turkish translations
- Fixed unclickable area below header in case JavaScript is not available
2.2.5 _ December 18, 2017
- Fixed #639: Broken default favicon
2.2.4 _ December 18, 2017
- Fixed #638: Build breaks with Jinja < 2.9
2.2.3 _ December 13, 2017
- Fixed #630: Admonition sets padding on any last child
- Adjusted Chinese (Traditional) translations
2.2.2 _ December 8, 2017
- Added Dutch translations
- Adjusted targeted link and footnote offsets
- Simplified Admonition styles and fixed padding bug
2.2.1 _ December 2, 2017
- Fixed #616: Minor styling error with title-only admonition blocks
- Removed border for table of contents and improved spacing
2.2.0 _ November 22, 2017
- Added support for hero teaser
- Added Portuguese translations
- Fixed #586: Footnote backref target offset regression
- Fixed #605: Search stemmers not correctly loaded
2.1.1 _ November 21, 2017
- Replaced deprecated
babel-preset-es2015withbabel-preset-env - Refactored Gulp build pipeline with Webpack
- Removed right border on sidebars
- Fixed broken color transition on header
2.1.0 _ November 19, 2017
- Added support for
whiteas a primary color - Added support for sliding site name and title
- Fixed redundant clipboard button when using line numbers on code blocks
- Improved header appearance by making it taller
- Improved tabs appearance
- Improved CSS customizability by leveraging inheritance
- Removed scroll shadows via
background-attachment
2.0.4 _ November 5, 2017
- Fixed
detailsnot opening with footnote reference
2.0.3 _ November 5, 2017
- Added Japanese translations
- Fixed #540: Jumping to anchor inside
detailsdoesn't open it - Fixed active link colors in footer
2.0.2 _ November 1, 2017
- Added Russian translations
- Fixed #542: Horizontal scrollbar between
1220pxand1234px - Fixed #553: Metadata values only rendering first character
- Fixed #558: Flash of unstyled content
- Fixed favicon regression caused by deprecation upstream
2.0.1 _ October 31, 2017
- Fixed error when initializing search
- Fixed styles for link to edit the current page
- Fixed styles on nested admonition in details
2.0.0 _ October 31, 2017
- Added support for MkDocs 0.17.1 theme configuration options
- Added support for easier configuration of search tokenizer
- Added support to disable search
- Added Korean translations
- Removed support for MkDocs 0.16.x [BREAKING]
1.12.2 _ October 26, 2017
- Added Italian, Norwegian, French and Chinese translations
1.12.1 _ October 22, 2017
- Added Polish, Swedish and Spanish translations
- Improved downward compatibility with custom partials
- Temporarily pinned MkDocs version within Docker image to 0.16.3
- Fixed #519: Missing theme configuration file
1.12.0 _ October 20, 2017
- Added support for setting language(s) via
mkdocs.yml - Added support for default localization
- Added German and Danish translations
- Fixed #374: Search bar misalignment on big screens
1.11.0 _ October 19, 2017
- Added localization to clipboard
- Refactored localization logic
1.10.4 _ October 18, 2017
- Improved print styles of code blocks
- Improved search UX (don't close on enter if no selection)
- Fixed #495: Vertical scrollbar on short pages
1.10.3 _ October 11, 2017
- Fixed #484: Vertical scrollbar on some MathJax formulas
- Fixed #483: Footnote backref target offset regression
1.10.2 _ October 6, 2017
1.10.1 _ September 14, 2017
- Fixed #455: Bold code blocks rendered with normal font weight
1.10.0 _ September 1, 2017
- Added support to make logo default icon configurable
- Fixed uninitialized overflow scrolling on main pane for iOS
- Fixed error in mobile navigation in case JavaScript is not available
- Fixed incorrect color transition for nested panes in mobile navigation
- Improved checkbox styles for Tasklist from PyMdown Extension package
1.9.0 _ August 29, 2017
- Added
info(synonym:todo) style for Admonition - Added
question(synonym:help,faq) style for Admonition - Added support for Details from PyMdown Extensions package
- Improved Admonition styles to match Details
- Improved styles for social links in footer
- Replaced ligatures with Unicode code points to avoid broken layout
- Upgraded PyMdown Extensions package dependency to >= 3.4
1.8.1 _ August 7, 2017
- Fixed #421: Missing pagination for GitHub API
1.8.0 _ August 2, 2017
- Added support for lazy-loading of search results for better performance
- Added support for customization of search tokenizer/separator
- Fixed #424: Search doesn't handle capital letters anymore
- Fixed #419: Search doesn't work on whole words
1.7.5 _ July 25, 2017
- Fixed #398: Forms broken due to search shortcuts
- Improved search overall user experience
- Improved search matching and highlighting
- Improved search accessibility
1.7.4 _ June 21, 2017
- Fixed functional link colors in table of contents for active palette
- Fixed #368: Compatibility issues with IE11
1.7.3 _ June 7, 2017
- Fixed error when setting language to Japanese for site search
1.7.2 _ June 6, 2017
- Fixed offset of search box when
repo_urlis not set - Fixed non-disappearing tooltip
1.7.1 _ June 1, 2017
- Fixed wrong
z-indexorder of header, overlay and drawer - Fixed wrong offset of targeted footnote back references
1.7.0 _ June 1, 2017
- Added "copy to clipboard" buttons to code blocks
- Added support for multilingual site search
- Fixed search term highlighting for non-latin languages
1.6.4 _ May 24, 2017
- Fixed #337: JavaScript error for GitHub organization URLs
1.6.3 _ May 16, 2017
- Fixed #329: Broken source stats for private or unknown GitHub repos
1.6.2 _ May 15, 2017
- Fixed #316: Fatal error for git clone on Windows
- Fixed #320: Chrome 58 creates double underline for
abbrtags - Fixed #323: Ligatures rendered inside code blocks
- Fixed miscalculated sidebar height due to missing margin collapse
- Changed deprecated MathJax CDN to Cloudflare
1.6.1 _ April 23, 2017
- Fixed following of active/focused element if search input is focused
- Fixed layer order of search component elements
1.6.0 _ April 22, 2017
- Added build test for Docker image on Travis
- Added search overlay for better user experience (focus)
- Added language from localizations to
htmltag - Fixed #270: source links broken for absolute URLs
- Fixed missing top spacing for first targeted element in content
- Fixed too small footnote divider when using larger font sizes
1.5.5 _ April 20, 2017
- Fixed #282: Browser search (Meta+F) is hijacked
1.5.4 _ April 8, 2017
- Fixed broken highlighting for two or more search terms
- Fixed missing search results when only a
h1is present - Fixed unresponsive overlay on Android
1.5.3 _ April 7, 2017
- Fixed deprecated calls for template variables
- Fixed wrong palette color for focused search result
- Fixed JavaScript errors on 404 page
- Fixed missing top spacing on 404 page
- Fixed missing right spacing on overflow of source container
1.5.2 _ April 5, 2017
- Added requirements as explicit dependencies in
setup.py - Fixed non-synchronized transitions in search form
1.5.1 _ March 30, 2017
- Fixed rendering and offset of targetted footnotes
- Fixed #238: Link on logo is not set to
site_url
1.5.0 _ March 24, 2017
- Added support for localization of search placeholder
- Added keyboard events for quick access of search
- Added keyboard events for search control
- Added opacity on hover for search buttons
- Added git hook to skip CI build on non-src changes
- Fixed non-resetting search placeholder when input is cleared
- Fixed error for unescaped parentheses in search term
- Fixed #229: Button to clear search missing
- Fixed #231: Escape key doesn't exit search
- Removed old-style figures from font feature settings
1.4.1 _ March 16, 2017
- Fixed invalid destructuring attempt on NodeList (in Safari, Edge, IE)
1.4.0 _ March 16, 2017
- Added support for grouping searched sections by documents
- Added support for highlighting of search terms
- Added support for localization of search results
- Fixed #216: table of contents icon doesn't show if
h1is not present - Reworked style and layout of search results for better usability
1.3.0 _ March 11, 2017
- Added support for page-specific title and description using metadata
- Added support for linking source files to documentation
- Fixed jitter and offset of sidebar when zooming browser
- Fixed incorrectly initialized tablet sidebar height
- Fixed regression for #1: GitHub stars break if
repo_urlends with a/ - Fixed undesired white line below copyright footer due to base font scaling
- Fixed issue with whitespace in path for scripts
- Fixed #205: support non-fixed (static) header
- Refactored footnote references for better visibility
- Reduced repaints to a minimum for non-tabs configuration
- Reduced contrast of edit button (slightly)
1.2.0 _ March 3, 2017
- Added
quote(synonym:cite) style for Admonition - Added help message to build pipeline
- Fixed wrong navigation link colors when applying palette
- Fixed #197: Link missing in tabs navigation on deeply nested items
- Removed unnecessary dev dependencies
1.1.1 _ February 26, 2017
- Fixed incorrectly displayed nested lists when using tabs
1.1.0 _ February 26, 2017
1.0.5 _ February 18, 2017
1.0.4 _ February 16, 2017
- Fixed #142: Documentation build errors if
h1is defined as raw HTML - Fixed #164: PyPI release does not build and install
- Fixed offsets of targeted headlines
- Increased sidebar font size by
0.12rem
1.0.3 _ January 22, 2017
- Fixed #117: Table of contents items don't blur on fast scrolling
- Refactored sidebar positioning logic
- Further reduction of repaints
1.0.2 _ January 15, 2017
- Fixed #108: Horizontal scrollbar in content area
1.0.1 _ January 14, 2017
- Fixed massive repaints happening when scrolling
- Fixed footer back reference positions in case of overflow
- Fixed header logo from showing when the menu icon is rendered
- Changed scrollbar behavior to only show when content overflows
1.0.0 _ January 13, 2017
- Introduced Webpack for more sophisticated JavaScript bundling
- Introduced ESLint and Stylelint for code style checks
- Introduced more accurate Material Design colors and shadows
- Introduced modular scales for harmonic font sizing
- Introduced git-hooks for better development workflow
- Rewrite of CSS using the BEM methodology and SassDoc guidelines
- Rewrite of JavaScript using ES6 and Babel as a transpiler
- Rewrite of Admonition, Permalinks and CodeHilite integration
- Rewrite of the complete typographical system
- Rewrite of Gulp asset pipeline in ES6 and separation of tasks
- Removed Bower as a dependency in favor of NPM
- Removed custom icon build in favor of the Material Design iconset
- Removed
_blanktargets on links due to vulnerability: http://bit.ly/1Mk2Rtw - Removed unversioned assets from build directory
- Restructured templates into base templates and partials
- Added build and watch scripts in
package.json - Added support for Metadata and Footnotes Markdown extensions
- Added support for PyMdown Extensions package
- Added support for collapsible sections in navigation
- Added support for separate table of contents
- Added support for better accessibility through REM-based layout
- Added icons for GitHub, GitLab and BitBucket integrations
- Added more detailed documentation on specimen, extensions etc.
- Added a
404.htmlerror page for deployment on GitHub Pages - Fixed live reload chain in watch mode when saving a template
- Fixed variable references to work with MkDocs 0.16
0.2.4 _ June 26, 2016
- Fixed improperly set default favicon
- Fixed #33: Protocol relative URL for webfonts doesn't work with
file:// - Fixed #34: IE11 on Windows 7 doesn't honor
max-widthonmaintag - Fixed #35: Add styling for blockquotes
0.2.3 _ May 16, 2016
- Fixed #25: Highlight inline fenced blocks
- Fixed #26: Better highlighting for keystrokes
- Fixed #30: Suboptimal syntax highlighting for PHP
0.2.2 _ March 20, 2016
- Fixed #15: Document Pygments dependency for CodeHilite
- Fixed #16: Favicon could not be set through
mkdocs.yml - Fixed #17: Put version into own container for styling
- Fixed #20: Fix rounded borders for tables
0.2.1 _ March 12, 2016
- Fixed #10: Invisible header after closing search bar with ESC key
- Fixed #13: Table cells don't wrap
- Fixed empty list in table of contents when no headline is defined
- Corrected wrong path for static asset monitoring in Gulpfile.js
- Set up tracking of site search for Google Analytics
0.2.0 _ February 24, 2016
- Fixed #6: Include multiple color palettes via
mkdocs.yml - Fixed #7: Better colors for links inside admonition notes and warnings
- Fixed #9: Text for prev/next footer navigation should be customizable
- Refactored templates (replaced
if/elsewith modifiers where possible)
0.1.3 _ February 21, 2016
- Fixed #3: Ordered lists within an unordered list have
::beforecontent - Fixed #4: Click on Logo/Title without Github-Repository:
"None" - Fixed #5: Page without headlines renders empty list in table of contents
- Moved Modernizr to top to ensure basic usability in IE8
0.1.2 _ February 16, 2016
- Fixed styles for deep navigational hierarchies
- Fixed webfont delivery problem when hosted in subdirectories
- Fixed print styles in mobile/tablet configuration
- Added option to configure fonts in
mkdocs.ymlwith fallbacks - Changed styles for admonition notes and warnings
- Set download link to latest version if available
- Set up tracking of outgoing links and actions for Google Analytics
0.1.1 _ February 11, 2016
- Fixed #1: GitHub stars don't work if the repo_url ends with a
/ - Updated NPM and Bower dependencies to most recent versions
- Changed footer/copyright link to Material theme to GitHub pages
- Made MkDocs building/serving in build process optional
- Set up continuous integration with Travis
0.1.0 _ February 9, 2016
- Initial release
docs/specimen.md for @host.today/ht-docker-mkdocs
Specimen
Body copy
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras arcu libero, mollis sed massa vel, ornare viverra ex. Mauris a ullamcorper lacus. Nullam urna elit, malesuada eget finibus ut, ullamcorper ac tortor. Vestibulum sodales pulvinar nisl, pharetra aliquet est. Quisque volutpat erat ac nisi accumsan tempor.
Sed suscipit, orci non pretium pretium, quam mi gravida metus, vel
venenatis justo est condimentum diam. Maecenas non ornare justo. Nam a ipsum
eros. Nulla aliquam orci sit amet nisl posuere malesuada. Proin aliquet
nulla velit, quis ultricies orci feugiat et. Ut tincidunt sollicitudin
tincidunt. Aenean ullamcorper sit amet nulla at interdum.
Headings
The 3rd level
The 4th level
The 5th level
The 6th level
Headings with secondary text
The 3rd level with secondary text
The 4th level with secondary text
The 5th level with secondary text
The 6th level with secondary text
Blockquotes
Morbi eget dapibus felis. Vivamus venenatis porttitor tortor sit amet rutrum. Pellentesque aliquet quam enim, eu volutpat urna rutrum a. Nam vehicula nunc mauris, a ultricies libero efficitur sed. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed molestie imperdiet consectetur.
Blockquote nesting
Sed aliquet, neque at rutrum mollis, neque nisi tincidunt nibh, vitae faucibus lacus nunc at lacus. Nunc scelerisque, quam id cursus sodales, lorem libero fermentum urna, ut efficitur elit ligula et nunc.
Mauris dictum mi lacus, sit amet pellentesque urna vehicula fringilla. Ut sit amet placerat ante. Proin sed elementum nulla. Nunc vitae sem odio. Suspendisse ac eros arcu. Vivamus orci erat, volutpat a tempor et, rutrum. eu odio.
Suspendisse rutrum facilisis risus, eu posuere neque commodo a. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed nec leo bibendum, sodales mauris ut, tincidunt massa.
Other content blocks
Vestibulum vitae orci quis ante viverra ultricies ut eget turpis. Sed eu lectus dapibus, eleifend nulla varius, lobortis turpis. In ac hendrerit nisl, sit amet laoreet nibh.
var _extends = function(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
target[key] = source[key];
}
}
return target;
};
Praesent at
:::js return target, sodales nibh vel, tempor felis. Fusce vel lacinia lacus. Suspendisse rhoncus nunc non nisi iaculis ultrices. Donec consectetur mauris non neque imperdiet, eget volutpat libero.
Lists
Unordered lists
-
Sed sagittis eleifend rutrum. Donec vitae suscipit est. Nullam tempus tellus non sem sollicitudin, quis rutrum leo facilisis. Nulla tempor lobortis orci, at elementum urna sodales vitae. In in vehicula nulla, quis ornare libero.
- Duis mollis est eget nibh volutpat, fermentum aliquet dui mollis.
- Nam vulputate tincidunt fringilla.
- Nullam dignissim ultrices urna non auctor.
-
Aliquam metus eros, pretium sed nulla venenatis, faucibus auctor ex. Proin ut eros sed sapien ullamcorper consequat. Nunc ligula ante, fringilla at aliquam ac, aliquet sed mauris.
-
Nulla et rhoncus turpis. Mauris ultricies elementum leo. Duis efficitur accumsan nibh eu mattis. Vivamus tempus velit eros, porttitor placerat nibh lacinia sed. Aenean in finibus diam.
Ordered lists
-
Integer vehicula feugiat magna, a mollis tellus. Nam mollis ex ante, quis elementum eros tempor rutrum. Aenean efficitur lobortis lacinia. Nulla consectetur feugiat sodales.
-
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam ornare feugiat quam et egestas. Nunc id erat et quam pellentesque lacinia eu vel odio.
-
Vivamus venenatis porttitor tortor sit amet rutrum. Pellentesque aliquet quam enim, eu volutpat urna rutrum a. Nam vehicula nunc mauris, a ultricies libero efficitur sed.
- Mauris dictum mi lacus
- Ut sit amet placerat ante
- Suspendisse ac eros arcu
-
Morbi eget dapibus felis. Vivamus venenatis porttitor tortor sit amet rutrum. Pellentesque aliquet quam enim, eu volutpat urna rutrum a. Sed aliquet, neque at rutrum mollis, neque nisi tincidunt nibh.
-
Pellentesque eget
:::js var _extendsornare tellus, ut gravida mi.
var _extends = function(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { target[key] = source[key]; } } return target; }; -
-
Vivamus id mi enim. Integer id turpis sapien. Ut condimentum lobortis sagittis. Aliquam purus tellus, faucibus eget urna at, iaculis venenatis nulla. Vivamus a pharetra leo.
Definition lists
Lorem ipsum dolor sit amet
: Sed sagittis eleifend rutrum. Donec vitae suscipit est. Nullam tempus tellus non sem sollicitudin, quis rutrum leo facilisis. Nulla tempor lobortis orci, at elementum urna sodales vitae. In in vehicula nulla.
Duis mollis est eget nibh volutpat, fermentum aliquet dui mollis.
Nam vulputate tincidunt fringilla.
Nullam dignissim ultrices urna non auctor.
Cras arcu libero
: Aliquam metus eros, pretium sed nulla venenatis, faucibus auctor ex. Proin ut eros sed sapien ullamcorper consequat. Nunc ligula ante, fringilla at aliquam ac, aliquet sed mauris.
Code blocks
Inline
Morbi eget dapibus felis. Vivamus venenatis porttitor tortor sit amet
rutrum. Class aptent taciti sociosqu ad litora torquent per conubia nostra,
per inceptos himenaeos. Pellentesque aliquet quam enim, eu volutpat urna
rutrum a.
Nam vehicula nunc :::js return target mauris, a ultricies libero efficitur
sed. Sed molestie imperdiet consectetur. Vivamus a pharetra leo. Pellentesque
eget ornare tellus, ut gravida mi. Fusce vel lacinia lacus.
Listing
#!js hl_lines="8"
var _extends = function(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
target[key] = source[key];
}
}
return target;
};
Horizontal rules
Aenean in finibus diam. Duis mollis est eget nibh volutpat, fermentum aliquet dui mollis. Nam vulputate tincidunt fringilla. Nullam dignissim ultrices urna non auctor.
Integer vehicula feugiat magna, a mollis tellus. Nam mollis ex ante, quis elementum eros tempor rutrum. Aenean efficitur lobortis lacinia. Nulla consectetur feugiat sodales.
Data tables
| Sollicitudo / Pellentesi | consectetur | adipiscing | elit | arcu | sed |
|---|---|---|---|---|---|
| Vivamus a pharetra | yes | yes | yes | yes | yes |
| Ornare viverra ex | yes | yes | yes | yes | yes |
| Mauris a ullamcorper | yes | yes | partial | yes | yes |
| Nullam urna elit | yes | yes | yes | yes | yes |
| Malesuada eget finibus | yes | yes | yes | yes | yes |
| Ullamcorper | yes | yes | yes | yes | yes |
| Vestibulum sodales | yes | - | yes | - | yes |
| Pulvinar nisl | yes | yes | yes | - | - |
| Pharetra aliquet est | yes | yes | yes | yes | yes |
| Sed suscipit | yes | yes | yes | yes | yes |
| Orci non pretium | yes | partial | - | - | - |
Sed sagittis eleifend rutrum. Donec vitae suscipit est. Nullam tempus tellus non sem sollicitudin, quis rutrum leo facilisis. Nulla tempor lobortis orci, at elementum urna sodales vitae. In in vehicula nulla, quis ornare libero.
| Left | Center | Right |
|---|---|---|
| Lorem | dolor | amet |
| ipsum | sit |
Vestibulum vitae orci quis ante viverra ultricies ut eget turpis. Sed eu lectus dapibus, eleifend nulla varius, lobortis turpis. In ac hendrerit nisl, sit amet laoreet nibh.
| Table | with colgroups (Pandoc) |
|---|---|
| Lorem | ipsum dolor sit amet. |
| Sed sagittis | eleifend rutrum. Donec vitae suscipit est. |
