Skip to main content

A MkDocs plugin to list pages based on tags and folders

Project description

PageListPlugin for MkDocs

PageListPlugin is a plugin for MkDocs that dynamically generates lists of pages based on tags, folders, and other criteria directly within your markdown files. It's especially useful for creating dynamic references to other parts of your documentation based on shared tags or directory structure. It may need tweaking for your needs. The use of grouping by folders is helpful if you use the Diátaxis framework to organise your documents. I have all my documents listed under the folders - Tutorials, How-to, Reference, Explanation. Tags are used to cross connect across those folders with features, functions or intended audience.

Installation

To install the plugin, use the following command:

pip install mkdocs-pagelist-plugin

Usage

To use the PageListPlugin, add it to your mkdocs.yml configuration file under the plugins section:

plugins:
  - search
  - mkdocs-pagelist-plugin

Note: If you have no plugins entry in your config file yet, you'll need to add it before adding PageListPlugin, as MkDocs enables only the search plugin by default.

Examples

  • List other pages sharing the same tags as the current page:

    {pagelist}
    
  • List 10 pages sharing the same tags as the current page:

    {pagelist 10}
    
  • Group pages by folder, sharing the same tags as the current page:

    {pagelist g}
    
  • List pages tagged with 'draft':

    {pagelist 5 draft}
    
  • Combine multiple tags ('draft' and 'leads'):

    {pagelist 10 draft leads}
    
  • Include pages with 'leads' tag but exclude those with 'draft' tag:

    {pagelist 10 -draft leads}
    
  • Group pages by folder, tagged with 'leads':

    {pagelist g leads}
    
  • Group pages by folder, tagged with 'leads' but not 'draft':

    {pagelist g leads -draft}
    
  • List pages tagged with 'leads' in the 'how-to' folder:

    {pagelist 10 leads | how-to}
    
  • Generate a report of all {pagelist} commands used across the site:

    {pagelist i}
    

HTML and CSS

The rendered code looks something like this:

<div class="pagelist">
	<h3 class="pagelistheading">{folder.capitalize()}</h3>
	<ul class="pagelistlist">
		<li><a href="../../{page.url}">{page.title}</a></li>
	</ul>
</div>

License

This project is licensed under the MIT License.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mkdocs-pagelist-plugin-0.1.1.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

mkdocs_pagelist_plugin-0.1.1-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file mkdocs-pagelist-plugin-0.1.1.tar.gz.

File metadata

File hashes

Hashes for mkdocs-pagelist-plugin-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b06d566fb8de6440dc1eb090c4fb002be13260a5017f1b32541428db36cb5fc8
MD5 99ab1594ab96de201599800e201c48d1
BLAKE2b-256 0fbef34c5225f80868a60a9ec522a51fc1d9fc0a6f10ebf84524f0fa40a1c4ee

See more details on using hashes here.

File details

Details for the file mkdocs_pagelist_plugin-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mkdocs_pagelist_plugin-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1185ec7d360522da5b52da53c0d0705e656eb5ca7e2abf2ed0c5b04a78845ec5
MD5 812162a3dd4fddc831653793d09cf116
BLAKE2b-256 96104732fc0fc0e53da6f6a3d9b324a47ed4be75c25419b9f3a1e1accffd1463

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page