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.0a1.tar.gz (12.1 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.0a1-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: html2phpbbcode-0.2.0a1.tar.gz
  • Upload date:
  • Size: 12.1 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.0a1.tar.gz
Algorithm Hash digest
SHA256 4952f8df7ccf899c2cbfe2c1b7ba8d14a72059cdaf220420505416c749a4ce25
MD5 db0b4b48c4eaa254fd905070241cccf0
BLAKE2b-256 4397f94fead8be53e17c263226c67e44d4a4b388bf09c8a2ec341c3513f596dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for html2phpbbcode-0.2.0a1.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.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for html2phpbbcode-0.2.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 54af00f0c64ca694904dba26f6327e7182ee998ad8fe76a01d761e4d5e5c3d8a
MD5 6491a812383b316a75339c5f17541154
BLAKE2b-256 d01d2f4321ab2a47489a39eba782998b1aa24fa8583cfa44afca0d2a9bd4fba0

See more details on using hashes here.

Provenance

The following attestation bundles were made for html2phpbbcode-0.2.0a1-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