Convert Markdown to BBCode using a custom Mistune renderer.
Project description
md2bbcode
A wrapper and plugin for Mistune. It converts GitHub-flavored Markdown to Xenforo-flavored BBCode. Custom BBCodes made for RedGuides are included in bb_codes.xml
.
Installation
You can install md2bbcode using pip:
pip install md2bbcode
Usage
After installation, you can use md2bbcode from the command line:
md2bbcode README.md
If the markdown includes relative images or other assets, you can use the --domain flag to prepend a domain to the relative URLs:
md2bbcode README.md --domain https://raw.githubusercontent.com/RedGuides/md2bbcode/main/
You can also use the package in your Python project:
from md2bbcode.main import process_readme
# Your Markdown content
markdown_text = "# Hell World"
# Optional domain to prepend to relative URLs
domain = 'https://raw.githubusercontent.com/yourusername/yourrepo/main/'
# Convert Markdown to BBCode
bbcode_output = process_readme(markdown_text, domain=domain)
# Output the BBCode
print(bbcode_output)
Debug Mode
You can use the --debug
flag to save intermediate results to files for debugging:
md2bbcode README.md --debug
Development
If you want to contribute to md2bbcode or set up a development environment, follow these steps:
-
Clone the repository:
git clone https://github.com/RedGuides/md2bbcode.git cd md2bbcode
-
Install Hatch, which is used for building and managing the project:
pip install hatch
-
Create a development environment and install dependencies:
hatch env create
-
Activate the development environment:
hatch shell
renderers/bbcode.py
The custom plugin for Mistune, which converts AST to bbcode.[^1]
[^1]: Mistune does not convert Markdown HTML to AST, hence the need for html2bbcode
.
Additional Tools
html2bbcode
Converts several HTML tags typically allowed in Markdown to BBCode.[^2]
[^2]: Currently used for post-processing mistune output, but there's a better way. See inside the file for a suggestion.
html2bbcode input_file.html
md2ast
For debugging Mistune's renderer, converts a Markdown file to AST (JSON format).
md2ast input.md output.json
Features Test
Here are a few GitHub-flavored Markdown features so you can use this README.md for testing:
-
Strikethrough:
This text is struck through. -
Superscript: This text is normal and this is superscript.
-
Table:
Syntax Description Header Title Paragraph Text
Todo
- refactor html2bbcode
- update for new Xenforo 2.3 and 2.4 BBCode
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
Built Distribution
File details
Details for the file md2bbcode-1.0.8.tar.gz
.
File metadata
- Download URL: md2bbcode-1.0.8.tar.gz
- Upload date:
- Size: 20.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c9e59150c469d9a8df347c712997e174b08606595a2b8e54b72a90fd6fd2a79 |
|
MD5 | 14c9a04132ee20cb2462379c3b040db4 |
|
BLAKE2b-256 | a6d28f4470676d74a9de552bff69052f75e9c71a0c56ea7f21a1787a774e4543 |
Provenance
The following attestation bundles were made for md2bbcode-1.0.8.tar.gz
:
Publisher:
publish.yml
on RedGuides/md2bbcode
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
md2bbcode-1.0.8.tar.gz
- Subject digest:
5c9e59150c469d9a8df347c712997e174b08606595a2b8e54b72a90fd6fd2a79
- Sigstore transparency entry: 148960923
- Sigstore integration time:
- Predicate type:
File details
Details for the file md2bbcode-1.0.8-py2.py3-none-any.whl
.
File metadata
- Download URL: md2bbcode-1.0.8-py2.py3-none-any.whl
- Upload date:
- Size: 21.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f016f48f5a562ea2ad8a9e0824fef347268eaf677816e1e491f2e5a8552c996 |
|
MD5 | 67e6dc156dd555f4022bfbbda2b1773b |
|
BLAKE2b-256 | 0a1c43efeee26ad32661b2b837e0bb6f9b7d14953d6f677a3a183f304268607a |
Provenance
The following attestation bundles were made for md2bbcode-1.0.8-py2.py3-none-any.whl
:
Publisher:
publish.yml
on RedGuides/md2bbcode
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
md2bbcode-1.0.8-py2.py3-none-any.whl
- Subject digest:
0f016f48f5a562ea2ad8a9e0824fef347268eaf677816e1e491f2e5a8552c996
- Sigstore transparency entry: 148960927
- Sigstore integration time:
- Predicate type: