Skip to main content

Frequenz Filter Lines Superfence

Build Status PyPI Package Docs

Introduction

A custom superfence for pymdown-extensions that can filters lines and plays nice with MkDocs.

This is particularly useful when you want to hide some comments or some boilerplate code from the documentation for any reason.

A typical use case is when you are testing your examples in the documentation, so you might need to add some initialization code, or importing some dependencies that are not relevant for the point you are trying to make in the documentation, but you still need the example code to work to make sure they are not inadvertedly broken.

Quick Example

When writing some documentation, and you want to show some code block, but you want to show only some lines, you can use this superfence as follows:

```text show_lines=":2,4,7,10:12,15:"
This is line 1
This is line 2
This is line 3
This is line 4
This is line 5
This is line 6
This is line 7
This is line 8
This is line 9
This is line 10
This is line 11
This is line 12
This is line 13
This is line 14
This is line 15
This is line 16
This is line 17
```

This will show the following block of code in the rendered output:

This is line 1
This is line 2
This is line 3
This is line 4
This is line 5
This is line 6
This is line 7
This is line 8
This is line 9
This is line 10
This is line 11
This is line 12
This is line 13
This is line 14
This is line 15
This is line 16
This is line 17

See Usage for a more detailed explanation of the available options.

Configuration

MkDocs

To use this superfence with MkDocs, you can use something like this:

markdown_extensions:
  - pymdownx.superfences:
      custom_fences:
        - name: "*"
          class: "highlight"
          format: !!python/name:pymdownx_superfence_filter_lines.do_format
          validator: !!python/name:pymdownx_superfence_filter_lines.do_validate

Standalone

To use this superfence standalone, you can use something like this:

import markdown
from pymdownx_superfence_filter_lines import do_format, do_validate

html = markdown.markdown(
    markdown_source,
    extensions=['pymdownx.superfence'],
    extension_configs={
        "pymdownx.superfences": {
            "custom_fences": [
                {
                    'name': '*',
                    'class': 'highlight',
                    'validator': do_validate,
                    'format': do_format
                }
            ]
        }
    }
)

print(html)

Usage

See Quick Example for an example.

The superfence supports the following options:

show_lines

A comma separated list of line numbers or ranges of line numbers to show.

The line numbers are 1-based. If any line number is zero or negative, a warning is logged and the line or range are ignored.

If show_lines is omitted, it defaults to showing all lines.

Ranges

Ranges are inclusive and are defined as follows:

  • The ranges are specified as start:end, where start and end are the line numbers of the first and last lines to show, respectively.

  • If start is omitted, it defaults to the first line. If end is omitted, it defaults to the last line.

  • If start is greater than end, a warning is logged and the range is ignored.

  • If start is greater than the number of lines in the code block, the range is ignored.

  • If end is greater than the number of lines in the code block, it is set to the number of lines in the code block.

Contributing

If you want to know how to build this project and contribute to it, please check out the Contributing Guide.

Metadata

Release files for pymdownx-superfence-filter-lines 0.1.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 pymdownx-superfence-filter-lines 0.1.0
File Size Uploaded
pymdownx-superfence-filter-lines-0.1.0.tar.gz 10.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pymdownx-superfence-filter-lines 0.1.0
File Interpreter ABI Platform
pymdownx_superfence_filter_lines-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.0 kB

Release files / pymdownx-superfence-filter-lines-0.1.0.tar.gz

Download URL pymdownx-superfence-filter-lines-0.1.0.tar.gz
Size 10.1 kB
Tags Source
SHA-256 checksum
How to use checksums
589e697b323a7a733cc706cc74db1f12e62706915e7438e16ef9bd5693766165
BLAKE2b-256 checksum
How to use checksums
58b8f070e7e35d400b24a8a7f7e9ae38cd9681d66a8ea4c7bc99a665020752ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.7

Release files / pymdownx_superfence_filter_lines-0.1.0-py3-none-any.whl

Download URL pymdownx_superfence_filter_lines-0.1.0-py3-none-any.whl
Size 7.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
53d1f6d81adbbae8db12da68efa8320f2b72a706fc52600a2c166c78ed74dc9d
BLAKE2b-256 checksum
How to use checksums
2a7fb3f4027611ae80821ad4228da00906743fc9ca97d4158aa837b1d5fca747
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.7

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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