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.0.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.0-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: html2phpbbcode-0.2.0.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.0.tar.gz
Algorithm Hash digest
SHA256 9f1cdd568041c7ce8b19e5e16e54ad26e2035a233c1746d6a9e98ed71c51de9f
MD5 66f25aade9a5b00495b93056575edf12
BLAKE2b-256 0eda724546eb633e9ab5d2bb456da32eb93e28ef81add0f116aaafe9dd32c5f9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: html2phpbbcode-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for html2phpbbcode-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 793b280a7b77bd345f5f1fac9aa5f5b5033e1ac3b12ea66e354bb62031d0b8a0
MD5 504325d74d58bc0aed4d1c8fcdf0b2b6
BLAKE2b-256 efc8ee8748ed33eb797f2859fe6a2fc70c73fde1bdb893e83c94ec5f6dc07304

See more details on using hashes here.

Provenance

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