Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

Statick Markdown Plugins

Unit Tests PyPI version Codecov Python Versions License Checked with mypy Daily Downloads Weekly Downloads Monthly Downloads

This is a set of plugins for Statick that will discover documentation related files and perform static analysis on those files.

Custom exceptions can be applied the same way they are with Statick exceptions.

Table of Contents

Deprecated

This set of plugins was merged into the main Statick repository and Python package. All future development will happen in that repository.

Installation

The recommended method to install these Statick plugins is via pip:

pip install statick-md

You can also clone the repository and use it locally.

Usage

Make sure you install all the dependencies from apt/npm. See https://github.com/nodesource/distributions for Node/npm installation instructions.

Configure npm to allow a non-root user to install packages.

npm config set prefix '~/.local/'

Make sure ~/.local/bin exists. Check your PATH with echo $PATH. If ~/.local/bin is not listed then add it to your PATH.

mkdir -p ~/.local/bin
echo 'export PATH="$HOME/.local/bin/:$PATH"' >> ~/.bashrc

Install packages.

npm install -g markdownlint-cli
npm install -g write-good

Dependency Versions

Markdownlint-cli has occasionally changed defaults via an upgrade that results in lots of new warnings. To mitigate this you can pin the version of markdownlint-cli when installing by changing markdownlint-cli to markdownlint-cli@0.19.

Pip Install

The most common usage is to use statick and statick-md from pip. In that case your directory structure will look like the following:

project-root
 |- md-project

To run with the default configuration for the statick-md tools use:

statick md-project/ -o /tmp/statick-output/ --level md --log info

Pip Install and Custom Configuration

There are times when you will want to have a custom Statick configuration. This is usually done to run a different set of tools than are called out in the default profile, or to add exceptions. For this case you will have to add the new Statick configuration somewhere. This example will have custom exceptions in the md-project, such that the directory structure is:

project-root
|- md-project
    |- statick-config
        |- rsc
            |- exceptions.yaml

For this setup you will run the following:

statick md-project/ --o /tmp/statick-output/ -u md-project/statick-config/ --level md

Existing Plugins

Discovery Plugins

File Type Extensions
markdown .md
reStructuredText .rst

Tool Plugins

Tool About
markdownlint A Node.js style checker and lint tool for Markdown/CommonMark files.
rstcheck Checks syntax of reStructuredText and code blocks nested within it.
rst-lint Checks syntax of reStructuredText and code blocks nested within it.
write-good Naive linter for English prose.

Contributing

If you write a new feature for Statick or are fixing a bug, you are strongly encouraged to add unit tests for your contribution. In particular, it is much easier to test whether a bug is fixed (and identify future regressions) if you can add a small unit test which replicates the bug.

Before submitting a change, please run tox to check that you have not introduced any regressions or violated any code style guidelines.

Mypy

Statick Markdown uses mypy to check that type hints are being followed properly. Type hints are described in PEP 484 and allow for static typing in Python. To determine if proper types are being used in Statick Markdown the following command will show any errors, and create several types of reports that can be viewed with a text editor or web browser.

pip install mypy
mkdir report
mypy --ignore-missing-imports --strict src

Formatting

Statick code is formatted using black. To fix locally use

pip install black
black src tests

Metadata

Release files for statick-md 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for statick-md 0.4.0
File Size Uploaded
statick_md-0.4.0.tar.gz 9.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for statick-md 0.4.0
File Interpreter ABI Platform
statick_md-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.6 kB

Release files / statick_md-0.4.0.tar.gz

Download URL statick_md-0.4.0.tar.gz
Size 9.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b75c6b9d941dfe74dcff3e0f5da2780270effaf35f18b2e091b5e53dbb7d3c65
BLAKE2b-256 checksum
How to use checksums
359724d16f9880bbc4e6dfe12bc85b4015986ff82d5a18668e4c0f28469cf0a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / statick_md-0.4.0-py3-none-any.whl

Download URL statick_md-0.4.0-py3-none-any.whl
Size 14.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf03ad708eaa0a3309886b21592407d5b1729ee336e7dd781c1ae2edf25c2e06
BLAKE2b-256 checksum
How to use checksums
e975ab4f3c5873de802875731bd3751cfc2304e9178c96988f210ff915052612
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page