Skip to main content

HTML to phpBB-compatible BBCode converter

Project description

Build Status PyPI version License

HTML2PHPBBCode

HTML2PHPBBCode is a Python 3 package that can be used to parse HTML code and convert it to phpBB-compatible BBCode.

Usage

>>> from html2phpbbcode.parser import HTML2PHPBBCode
>>> parser = HTML2PHPBBCode()
>>> parser.feed('<ul><li>Hello</li><li>World</li></ul>')
'[list][*]Hello[*]World[/list]'
>>> parser.feed('<ol><li>one<li>two</ol>')
'[list=1][*]one[*]two[/list]'
>>> parser.feed('<a href="https://water.org">Water.org</a>')
'[url=https://water.org]Water.org[/url]'
>>> parser.feed('<a href="mailto:info@water.org">Mail Water.org</a>')
'[email=info@water.org]Mail Water.org[/email]'
>>> parser.feed('<strong>Hello <i>World</i>. It&#39;s a wonderful world</strong>')
"[b]Hello [i]World[/i]. It's a wonderful world[/b]"

Acknowledgements

HTML2PHPBBCode is based on the html2bbcode package of Vladimir Korsun which is available under the BSD License.

The regex package by Matthew Barnett is also used, available under the Python Software Foundation License.

The code includes some regular expressions from the phpBB bulletin board software as well. Minor changes have been made for Python compatibility. phpBB code is available under GNU GPL v2.0.

Differences from html2bbcode

This package differs from html2bbcode in the following:

  • The generated BBCode follows the syntax described in phpBB's BBCode guide.
  • <b>, <i>, <u>, <s>, <ol> HTML tags are also supported.
  • <font>'s size attribute handling has been changed so that it maps to reasonable BBCode size values.
  • If the href attribute of an <a> link uses the mailto: protocol, then the [email] BBCode tag is used.
  • If the href attribute of an <a> link is neither an email nor a valid http/https URL, the link is converted to plain-text in BBCode.
  • The parser removes excessive whitespace such as newlines between tags: <p>Hello</p>\n<p>World</p> (TODO: Use the W3C spec rules)

Installing

The package is available at PyPI and can be installed with the following command:

pip install html2phpbbcode

Installing from source is also an option:

python3 setup.py install

Testing

pytest is used for testing. Just run pytest in the project directory to execute the tests.

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

html2phpbbcode-0.2.0a2.tar.gz (27.0 kB view details)

Uploaded Source

Built Distribution

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

html2phpbbcode-0.2.0a2-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file html2phpbbcode-0.2.0a2.tar.gz.

File metadata

  • Download URL: html2phpbbcode-0.2.0a2.tar.gz
  • Upload date:
  • Size: 27.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for html2phpbbcode-0.2.0a2.tar.gz
Algorithm Hash digest
SHA256 fd3956cc63077d22b58559ae9e3e5ca9b02281ea26aa10171d70416a5c9dec08
MD5 74e15679593cb4ecaf1747d6983fabdf
BLAKE2b-256 af6698ea43445e125f4706c71edfdf3df8f85c3771105ddc4e3ea4bee0091d23

See more details on using hashes here.

Provenance

The following attestation bundles were made for html2phpbbcode-0.2.0a2.tar.gz:

Publisher: publish.yml on tdiam/html2phpbbcode

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

File details

Details for the file html2phpbbcode-0.2.0a2-py3-none-any.whl.

File metadata

File hashes

Hashes for html2phpbbcode-0.2.0a2-py3-none-any.whl
Algorithm Hash digest
SHA256 5aabca0bf38808be1284bc849ca4d1ff34f052db790ddcd8059a56cc927ff320
MD5 5d37af8c51271f7a575b8c23760fa9f7
BLAKE2b-256 7a71f2c2790c85efa6be34cb556f96e84e7b67a66345abd7d39d4d53f8a992c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for html2phpbbcode-0.2.0a2-py3-none-any.whl:

Publisher: publish.yml on tdiam/html2phpbbcode

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 Pingdom Monitoring Sentry Error logging StatusPage Status page