Skip to content

About

Python-Markdown extension to use conditional compilations

Topics

Resources

Security policy

Stars

7 stars

Watchers

1 watching

Forks

Latest commit

 

History

60 Commits

Folders and files

Repository files navigation

md-condition

This is an extension to Python-Markdown which allows conditional compilations to be inserted into the text.

PyPI CI Python License Downloads Ruff

Install

This module can now be installed using pip.

$ pip install md-condition

Usage

The syntax for use within your Markdown files is

<!--- #if DEBUG -->
# md-condition DEBUG
<!--- #else -->
not DEBUG
<!--- #endif -->

<!--- #if RELEASE -->
# md-condition RELEASE
<!--- #else -->
not RELEASE
<!--- #endif -->
<h1>md-condition DEBUG</h1>
<p>not RELEASE</p>

Rules

  • symbol defines one or more symbols: DEBUG, DEBUG RELEASE, DEBUG|RELEASE, or a list [DEBUG, RELEASE]. With no symbol configured, every #if is false.
  • <!--- #if A B --> is true when any defined symbol is exactly one of the listed names (DEBUG does not match DEBUG_X). Names are separated by spaces and/or |, so #if A | B and #if A|B mean the same.
  • #else is optional; nested #if blocks are not supported.
  • Malformed blocks (unclosed #if, stray #else / #endif, duplicate #else, nesting) raise md_condition.ConditionSyntaxError with the offending line number and text.
  • Inside fenced code blocks (``` / ~~~), complete #if … #endif blocks still apply (conditional code samples), but malformed directives are left as text, so docs can show md-condition syntax without breaking the build.

MkDocs Integration

In your mkdocs.yml add this to markdown_extensions.

markdown_extensions:
  - md_condition:
      symbol: DEBUG

To define several symbols at once:

markdown_extensions:
  - md_condition:
      symbol: [DEBUG, RELEASE]

About

Python-Markdown extension to use conditional compilations

Topics

Resources

Security policy

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages