Skip to main content

rich-codex ⚡️📖⚡️

A GitHub Action / command-line tool which generates screengrab images of a terminal window, containing command outputs or code snippets.

📚 Documentation: https://ewels.github.io/rich-codex/ 📚

PyPI Version

Introduction

Having code examples in your documentation is a fantastic way to help users understand what to expect from your tool.

Using terminal screenshots is a good way to do this because:

  • 🌈 Coloured terminal output is supported
  • ↔️ You can fit in long lines without scrolling or cropping (images are auto-resized)
  • 😎 They look cool

However, manually generating these screenshots is a pain 👎🏻 Remembering to update them every time you make a minor change means that they can easily get out of date.

Rich-codex automates this process for you. It searches markdown code for images with shell commands or code snippets. It runs these commands and saves a terminal screen-grab at the embedded path.

Typical use cases:

  • 📷 Example CLI tool outputs that automatically stay in sync with your package
  • ♻️ Syntax-highlighted code snippets that are always up to date with your examples/
  • 🤩 Fast and simple images for your docs with minimal setup

Quickstart

  1. 📖 Write some markdown docs, use an image tag with a backtick command inside:

    ![`cat docs/cat.txt | lolcat -S 1`](docs/img/cat.png)
    
  2. 🤖 Add a GitHub Action to automatically run the command, generate the image and commit to the repo:

    on: [push]
    jobs:
      rich_codex:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v3
    
          - name: Install your custom tools
            run: pip install lolcat
    
          - name: Generate terminal images with rich-codex
            uses: ewels/rich-codex@v1
            with:
              commit_changes: "true"
    
  3. 🌈 Enjoy reading your documentation My cat rainbow

How it works

Rich-codex is a command-line tool that you can run via a GitHub action or as a command line tool. It works with any markdown (including GitHub READMEs).

It collects either commands or code snippets, together with output filenames and configuration options. Commands are run in a subprocess and the standard output & standard error collected. These are then rendered as an image using Textualize/rich.

Rich-codex creates the images that your markdown docs expect. It doesn't require a HTML build-step and doesn't make any changes to your markdown or its output. As such, it's compatible with any documentation engine, including rendering markdown on github.com.

Rich-codex needs inputs (commands / snippets) and output filenames to work. These can be configured in four different ways:

  • 🖼 Markdown images
    • Search markdown files for image tags with command alt text. eg: ![`rich-codex --help`](docs/img/rich-codex-help.svg)
  • 💬 Markdown comments
    • Search markdown files for special HTML / JSX comments.
  • ➡️ Command-line / action inputs
    • Specify a command or snippet using the action with inputs.
  • ⚙️ Config files
    • Use one or more YAML config files for multiple images and more complex customisation.

Images can be generated as SVG, PNG or PDF (detected by filename extension).

Keep reading! 👉 https://ewels.github.io/rich-codex/

Download files

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

Source Distribution

rich_codex-1.3.0.tar.gz (40.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rich_codex-1.3.0-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

File details

Details for the file rich_codex-1.3.0.tar.gz.

File metadata

  • Download URL: rich_codex-1.3.0.tar.gz
  • Upload date:
  • Size: 40.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rich_codex-1.3.0.tar.gz
Algorithm Hash digest
SHA256 d992eb8cdba00bb1cc601cbf5894d701b668121c3f99efc0470997426119e1aa
MD5 61e0288a32567f8d2e400590e9c20fa7
BLAKE2b-256 1e63f5ab03a6b29a6aa90087390b07d9efa5d811bc909023b6f43b6cef3f3103

See more details on using hashes here.

Provenance

The following attestation bundles were made for rich_codex-1.3.0.tar.gz:

Publisher: deploy-pypi.yml on ewels/rich-codex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rich_codex-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: rich_codex-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 25.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rich_codex-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd0b68a0dcc8f13331d8fcea312aca89d6aba01d3b08ec9a37dba5dd1b2f3d74
MD5 8bf461443335b12454d3193057b2ebb3
BLAKE2b-256 9e49b329cb0c02fdf350c7ad642faf7f93dd3c5fdfab0fcf21e61f8f1a8f91b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for rich_codex-1.3.0-py3-none-any.whl:

Publisher: deploy-pypi.yml on ewels/rich-codex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page