Setting up social cards¶
Social cards, also known as social previews, are images that are displayed when a link to your project documentation is shared on social media. Material for MkDocs can generate beautiful social cards automatically, using the colors, fonts and logo1 defined in mkdocs.yml
.
Configuration¶
Built-in social cards¶
Source · Plugin · Experimental · Insiders only
The built-in social cards plugin generates a social card image for every page and adds the necessary meta tags, so it's displayed on social media when shared. Enable it via mkdocs.yml
:
plugins:
- social
For example, the page on setting up site analytics renders as:
This is a built-in plugin, which means that no third-party plugin needs to be installed, as Material for MkDocs already bundles it. The following options are available:
cards_color
-
Default: automatically set based on primary color – This option specifies which colors to use for the background
fill
and foregroundtext
when generating the social card.plugins: - social: cards_color: fill: "#0FF1CE" text: "#FFFFFF"
Note that the values for
fill
andtext
can either be HEX color values (e.g.#0FF1CE
, must be enclosed in quotes) or CSS color keywords (e.g.red
,green
, etc.). cards_directory
-
Default:
assets/images/social
– This option specifies where the generated social card images will be written to. It should normally not be necessary to change this option.plugins: - social: cards_directory: assets/images/social
Caching¶
When enabled, the social cards plugin automatically fetches the fonts you define in mkdocs.yml
from Google Fonts, and uses them to render the text that is displayed on the social card. The font files and generated cards are both written to the .cache
directory, which is used in subsequent builds to detect whether the social cards need to be regenerated. You might want to:
- Ignore the
.cache
directory in your project, by adding it to.gitignore
. -
When building your site for publishing, use a build cache to save the
.cache
directory in between builds. Taking the example from the publishing guide, add the following lines:name: ci on: push: branches: - master - main jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: python-version: 3.x - uses: actions/cache@v2 with: key: ${{ github.ref }} path: .cache - run: pip install mkdocs-material - run: mkdocs gh-deploy --force
Usage¶
If you want to adjust the title or set a custom description for the social card, you can use the Metadata extension, which takes precedence over the default values.
-
Both types of logos, images (
theme.logo
) and icons (theme.icon.logo
) are supported. While an image logo is used as-is, icons are filled with the color used in the header (white or black), which depends on the primary color. ↩