{"id":15643030,"url":"https://github.com/jedie/python-creole","last_synced_at":"2025-10-28T06:18:03.113Z","repository":{"id":875371,"uuid":"617472","full_name":"jedie/python-creole","owner":"jedie","description":"Creole markup tools written in Python.","archived":false,"fork":false,"pushed_at":"2023-08-24T15:49:20.000Z","size":984,"stargazers_count":59,"open_issues_count":8,"forks_count":14,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-04-07T03:02:29.166Z","etag":null,"topics":["creole","html","markup","python","restructuredtext","textile"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jedie.png","metadata":{"files":{"readme":"README.creole","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2010-04-19T09:21:19.000Z","updated_at":"2024-10-31T12:25:52.000Z","dependencies_parsed_at":"2024-06-18T21:52:59.076Z","dependency_job_id":null,"html_url":"https://github.com/jedie/python-creole","commit_stats":{"total_commits":424,"total_committers":11,"mean_commits":38.54545454545455,"dds":"0.23113207547169812","last_synced_commit":"fa967cb40bc7ec18abdc1b81cc77e8412941d817"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedie%2Fpython-creole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedie%2Fpython-creole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedie%2Fpython-creole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedie%2Fpython-creole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jedie","download_url":"https://codeload.github.com/jedie/python-creole/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252983760,"owners_count":21835764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["creole","html","markup","python","restructuredtext","textile"],"created_at":"2024-10-03T11:58:41.833Z","updated_at":"2025-10-28T06:17:58.093Z","avatar_url":"https://github.com/jedie.png","language":"Python","funding_links":["https://www.paypal.me/JensDiemer"],"categories":[],"sub_categories":[],"readme":"= about python-creole =\n\npython-creole is a OpenSource (GPL) Python lib for converting markups.\npython-creole is pure python. No external libs needed.\n\nCompatible Python Versions (see [[https://github.com/jedie/python-creole/blob/main/pyproject.toml|tox config in pyproject.toml]]):\n * 3.9, 3.8, 3.7\n * PyPy3\n\n\nExisting converters:\n\n* creole -\u003e html\n* html -\u003e creole markup\n* reSt -\u003e html (for clean html code)\n* html -\u003e reStructuredText markup (only a subset of reSt supported)\n* html -\u003e textile markup (not completed yet)\n* html -\u003e markdown markup\n\nThe creole2html part based on the creole markup parser and emitter from the MoinMoin project by Radomir Dopieralski and Thomas Waldmann.\n\n| {{https://github.com/jedie/python-creole/workflows/test/badge.svg?branch=master|Build Status on github}} ||\n| {{https://coveralls.io/repos/jedie/python-creole/badge.svg|Coverage Status on coveralls.io}} | [[https://coveralls.io/r/jedie/python-creole|coveralls.io/r/jedie/python-creole]] |\n| {{https://landscape.io/github/jedie/python-creole/main/landscape.svg|Status on landscape.io}} | [[https://landscape.io/github/jedie/python-creole/master|landscape.io/github/jedie/python-creole/master]] |\n| {{https://badge.fury.io/py/python-creole.svg|PyPi version}} | [[https://pypi.org/project/python-creole/|pypi.org/project/python-creole/]] |\n\n\n= install =\n\nPython packages available on: [[http://pypi.python.org/pypi/python-creole/]]\n\n{{{\n~$ pip install python-creole\n}}}\n\nTo setup a virtualenv via Poetry, see {{{unittests}}} section below.\n\n\n= example =\n\n== creole2html ==\nConvert creole markup to html code:\n{{{\n\u003e\u003e\u003e from creole import creole2html\n\u003e\u003e\u003e creole2html(\"This is **creole //markup//**\")\n'\u003cp\u003eThis is \u003cstrong\u003ecreole \u003ci\u003emarkup\u003c/i\u003e\u003c/strong\u003e\u003c/p\u003e\\n'\n}}}\n\n\n== html2creole ==\nConvert html code back into creole markup:\n{{{\n\u003e\u003e\u003e from creole import html2creole\n\u003e\u003e\u003e html2creole('\u003cp\u003eThis is \u003cstrong\u003ecreole \u003ci\u003emarkup\u003c/i\u003e\u003c/strong\u003e\u003c/p\u003e\\n')\n'This is **creole //markup//**'\n}}}\n\n\n== rest2html ==\nConvert ReStructuredText into clean html code (needs [[http://pypi.python.org/pypi/docutils/|docutils]]):\n{{{\n\u003e\u003e\u003e from creole.rest2html.clean_writer import rest2html\n\u003e\u003e\u003e rest2html(u\"A ReSt link to `PyLucid CMS \u003chttp://www.pylucid.org\u003e`_ :)\")\n'\u003cp\u003eA ReSt link to \u003ca href=\"http://www.pylucid.org\"\u003ePyLucid CMS\u003c/a\u003e :)\u003c/p\u003e\\\\n'\n}}}\n(more information: [[https://github.com/jedie/python-creole/wiki/rest2html|rest2html wiki page]])\n\n\n== html2rest ==\nConvert html code into ReStructuredText markup:\n{{{\n\u003e\u003e\u003e from creole import html2rest\n\u003e\u003e\u003e html2rest('\u003cp\u003eThis is \u003cstrong\u003eReStructuredText\u003c/strong\u003e \u003cem\u003emarkup\u003c/em\u003e!\u003c/p\u003e')\n'This is **ReStructuredText** *markup*!'\n}}}\n\n\n== html2textile ==\nConvert html code into textile markup\n{{{\n\u003e\u003e\u003e from creole import html2textile\n\u003e\u003e\u003e html2textile('\u003cp\u003eThis is \u003cstrong\u003etextile \u003ci\u003emarkup\u003c/i\u003e\u003c/strong\u003e!\u003c/p\u003e')\n'This is *textile __markup__*!'\n}}}\n\nSee also: [[http://github.com/jedie/python-creole/blob/master/demo.py]]\n\n== html2markdown ==\nConvert html code into textile markup\n{{{\n\u003e\u003e\u003e from creole import html2markdown\n\u003e\u003e\u003e html2markdown('\u003cp\u003eThis is \u003cstrong\u003emarkdown \u003ci\u003emarkup\u003c/i\u003e\u003c/strong\u003e!\u003c/p\u003e')\n'This is **markdown _markup_**!'\n}}}\n\nSee also: [[http://github.com/jedie/python-creole/blob/main/demo.py]]\n\n= Image size additional =\n\nYou can pass image width/height in image tags, e.g.:\n{{{\n\u003e\u003e\u003e from creole import creole2html\n\u003e\u003e\u003e creole_markup=\"\"\"{{foobar.jpg|image title|90x160}}\"\"\"\n\u003e\u003e\u003e creole2html(creole_markup)\n'\u003cp\u003e\u003cimg src=\"foobar.jpg\" title=\"image title\" alt=\"image title\" width=\"90\" height=\"160\" /\u003e\u003c/p\u003e'\n}}}\n\nThe third part ({{{90x160}}}) is not in creole standard, you can force a //strict// mode, e.g.:\n{{{\n\u003e\u003e\u003e creole2html(creole_markup, strict=True)\n'\u003cp\u003e\u003cimg src=\"foobar.jpg\" title=\"image title|90x160\" alt=\"image title|90x160\" /\u003e\u003c/p\u003e'\n}}}\n\n= Source code highlighting support =\n\nYou can find a example macro which highlight source code thanks to the pygments\nlibrary. It is located here: [[https://github.com/jedie/python-creole/blob/main/creole/shared/example_macros.py|/creole/shared/example_macros.py]].\nHere is how to use it:\n\n{{{\n\u003e\u003e\u003e from creole import creole2html\n\u003e\u003e\u003e from creole.shared.example_macros import code\n\u003e\u003e\u003e creole_markup=\"\"\"\u003c\u003ccode ext=\".py\"\u003e\u003e#some code\\nprint('coucou')\\n\u003c\u003c/code\u003e\u003e\"\"\"\n\u003e\u003e\u003e creole2html(creole_markup, macros={'code': code})\n}}}\n\n= commandline interface =\n\nIf you have python-creole installed, you will get these simple CLI scripts:\n* creole2html\n* html2creole\n* html2rest\n* html2textile\n* html2markdown\n\nHere the {{{--help}}} output from {{{html2creole}}}:\n{{{\n$ html2creole --help\nusage: html2creole [-h] [-v] [--encoding ENCODING] sourcefile destination\n\npython-creole is an open-source (GPL) markup converter in pure Python for:\ncreole2html, html2creole, html2ReSt, html2textile\n\npositional arguments:\n  sourcefile           source file to convert\n  destination          Output filename\n\noptional arguments:\n  -h, --help           show this help message and exit\n  -v, --version        show program's version number and exit\n  --encoding ENCODING  Codec for read/write file (default encoding: utf-8)\n}}}\n\nExample to convert a html file into a creole file:\n{{{\n$ html2creole foobar.html foobar.creole\n}}}\n\n= documentation =\n\nWe store documentation/examples into the project wiki:\n\n* [[https://github.com/jedie/python-creole/wiki]]\n\nHow to handle unknown html tags in html2creole:\n\n* [[https://github.com/jedie/python-creole/wiki/Unknown-Html-Tags]]\n\nContributers should take a look at this page:\n\n* [[https://github.com/jedie/python-creole/wiki/Developer-Info]]\n\nCreole Markup Cheat Sheet can be found here: http://www.wikicreole.org/wiki/CheatSheet\n\n{{http://www.wikicreole.org/imageServlet?page=CheatSheet%2Fcreole_cheat_sheet.png\u0026width=340|Creole Markup Cheat Sheet}}\n\n== unittests ==\n\n{{{\n# clone repository (or use your fork):\n~$ git clone https://github.com/jedie/python-creole.git\n~$ cd python-creole\n\n# install or update poetry:\n~/python-creole$ make install-poetry\n\n# install python-creole via poetry:\n~/python-creole$ make install\n\n# Run pytest:\n~/python-creole$ make pytest\n\n# Run pytest via tox with all environments:\n~/python-creole$ make tox\n}}}\n\n== make targets ==\n\nTo see all make targets, just call {{{make}}}:\n{{{\n~/python-creole$ make\nhelp                 List all commands\ninstall-poetry       install or update poetry\ninstall              install python-creole via poetry\nupdate               Update the dependencies as according to the pyproject.toml file\nlint                 Run code formatters and linter\nfix-code-style       Fix code formatting\ntox-listenvs         List all tox test environments\ntox                  Run pytest via tox with all environments\npytest               Run pytest\nupdate-readmes       update README.rst and README.md from README.creole\npublish              Release new version to PyPi\n}}}\n\n== Use creole in README ==\n\nWith python-creole you can convert a README on-the-fly from creole into ReStructuredText in setup.py\nHow to do this, read: https://github.com/jedie/python-creole/wiki/Use-In-Setup\n\nNote: In this case you must install **docutils**! See above.\n\n\n= history =\n\n* [[https://github.com/jedie/python-creole/compare/v1.5.0.rc3...master|*dev*]]\n** TBC\n* [[https://github.com/jedie/python-creole/compare/v1.4.10...v1.5.0.rc3|v1.5.0.rc3 - 2022-08-20]]\n** NEW: html2markdown\n** creole2html bugfixes:\n*** replace wrong {{{\u003ctt\u003e}}} with {{{\u003ccode\u003e}}}\n*** Add newline after lists\n** Remove deprecated \"parser_kwargs\" and \"emitter_kwargs\"\n** Rename git {{{master}}} branch to {{{main}}}.\n* [[https://github.com/jedie/python-creole/compare/v1.4.9...v1.4.10|v1.4.10 - 2021-05-11]]\n** Update some string formatting to f-strings\n** Replace some {{{join()}}} list comprehension with generators\n** Test on github actions also under MacOS\n** Remove Travis CI (All tests already running via github actions)\n* [[https://github.com/jedie/python-creole/compare/v1.4.8...v1.4.9|v1.4.9 - 2020-11-4]]\n** Add missing classifier for Python 3.9 ([[https://github.com/jedie/python-creole/pull/55|Contributed by jugmac00]])\n** Update readme test\n* v1.4.8 - 2020-10-17 - [[https://github.com/jedie/python-creole/compare/v1.4.7...v1.4.8|compare v1.4.7...v1.4.8]]\n** Validate generated {{{README.rst}}} with [[https://pypi.org/project/readme-renderer/|readme-renderer]]\n* v1.4.7 - 2020-10-17 - [[https://github.com/jedie/python-creole/compare/v1.4.6...v1.4.7|compare v1.4.6...v1.4.7]]\n** {{{update_rst_readme()}}} will touch {{{README.rst}}} if there are not change (timestamp will not changed in file)\n** Run tests with Python 3.9, too.\n** Some meta updates to project setup\n* v1.4.6 - 2020-02-13 - [[https://github.com/jedie/python-creole/compare/v1.4.5...v1.4.6|compare v1.4.5...v1.4.6]]\n** less restricted dependency specification\n* v1.4.5 - 2020-02-13 - [[https://github.com/jedie/python-creole/compare/v1.4.4...v1.4.5|compare v1.4.4...v1.4.5]]\n** new: {{{creole.setup_utils.assert_rst_readme}}} for project setup tests\n** use https://github.com/ymyzk/tox-gh-actions on gitlab CI\n* v1.4.4 - 2020-02-07 - [[https://github.com/jedie/python-creole/compare/v1.4.3...v1.4.4|compare v1.4.3...v1.4.4]]\n** Fix #44: Move {{{poetry-publish}}} to {{{dev-dependencies}}} and lower {{{docutils}}} requirement to {{{^0.15}}}\n** some code style updated\n** Always update README.rst before publish\n* v1.4.3 - 2020-02-01 - [[https://github.com/jedie/python-creole/compare/v1.4.2...v1.4.3|compare v1.4.2...v1.4.3]]\n** Use new [[https://pypi.org/project/poetry-publish/|poetry-publish]] for {{{make publish}}}\n* v1.4.2 - 2020-02-01 - [[https://github.com/jedie/python-creole/compare/v1.4.1...v1.4.2|compare v1.4.1...v1.4.2]]\n** Update CI configs on github and travis\n** Update {{{Makefile}}}: add {{{make publish}}} and {{{make update-rst-readme}}}\n** Add generated {{{README.rst}}} in repository to fix install problems about missing readme\n* v1.4.1 - 2020-01-19 - [[https://github.com/jedie/python-creole/compare/v1.4.0...v1.4.1|compare v1.4.0...v1.4.1]]\n** Remove Python v2 support code\n** [[https://github.com/jedie/python-creole/issues/26|Fix \"Undefined substitution referenced\" error]] contributed by dforsi\n** [[https://github.com/jedie/python-creole/pull/37|Fix regression in tests for setup_utils]] contributed by jugmac00\n** Fix code style with: autopep8\n** sort imports with isort\n** change old {{{%-formatted}}} and {{{.format(...)}}} strings into Python 3.6+'s {{{f-strings}}} with flynt\n** Activate linting in CI pipeline\n* v1.4.0 - 2020-01-19 - [[https://github.com/jedie/python-creole/compare/v1.3.2...v1.4.0|compare v1.3.2...v1.4.0]]\n** modernize project:\n*** use poetry\n*** Add a {{{Makefile}}}\n*** use pytest and tox\n*** remove Python v2 support\n*** Test with Python v3.6, v3.7 and v3.8\n* v1.3.2 - 2018-02-27 - [[https://github.com/jedie/python-creole/compare/v1.3.1...v1.3.2|compare v1.3.1...v1.3.2]]\n** Adding optional img size to creole2html and html2creole contributed by [[https://github.com/JohnAD|John Dupuy]]\n** run tests also with python 3.5 and 3.6\n* v1.3.1 - 2015-08-15 - [[https://github.com/jedie/python-creole/compare/v1.3.0...v1.3.1|compare v1.3.0...v1.3.1]]\n** Bugfix for \"Failed building wheel for python-creole\"\n* v1.3.0 - 2015-06-02 - [[https://github.com/jedie/python-creole/compare/v1.2.2...v1.3.0|compare v1.2.2...v1.3.0]]\n** Refactory internal file structure\n** run unittests and doctests with nose\n** Refactor CLI tests\n** skip official support for Python 2.6\n** small code cleanups and fixes.\n** use **json.dumps()** instead of **repr()** in some cases\n* v1.2.2 - 2015-04-05 - [[https://github.com/jedie/python-creole/compare/v1.2.1...v1.2.2|compare v1.2.1...v1.2.2]]\n** Bugfix textile unittests if url scheme is unknown\n** migrate google-code Wiki to github and remove google-code links\n* v1.2.1 - 2014-09-14 - [[https://github.com/jedie/python-creole/compare/v1.2.0...v1.2.1|compare v1.2.0...v1.2.1]]\n** Use origin PyPi code to check generated reStructuredText in setup.py\n** Update unitest for textile v2.1.8\n* v1.2.0 - 2014-05-15 - [[https://github.com/jedie/python-creole/compare/v1.1.1...v1.2.0|compare v1.1.1...v1.2.0]]\n** NEW: Add {{{\u003c\u003ccode\u003e\u003e}}} example macro (Source code highlighting with pygments) - implemented by Julien Enselme\n** NEW: Add {{{\u003c\u003ctoc\u003e\u003e}}} macro to create a table of contents list\n** Bugfix for: AttributeError: 'CreoleParser' object has no attribute '_escaped_char_repl'\n** Bugfix for: AttributeError: 'CreoleParser' object has no attribute '_escaped_url_repl'\n** API Change: Callable macros will raise a TypeError instead of create a DeprecationWarning (Was removed in v0.5)\n* v1.1.1 - 2013-11-08\n** Bugfix: Setup script exited with error: can't copy 'README.creole': doesn't exist or not a regular file\n* v1.1.0 - 2013-10-28\n** NEW: Simple commandline interface added.\n* v1.0.7 - 2013-08-07\n** Bugfix in 'clean reStructuredText html writer' if docutils =\u003e v0.11 used.\n** Bugfix for PyPy 2.1 usage\n* v1.0.6 - 2012-10-15\n** Security fix in rest2html: Disable \"file_insertion_enabled\" and \"raw_enabled\" as default.\n* v1.0.5 - 2012-09-03\n** made automatic protocol links more strict: Only whitespace before and at the end are allowed.\n** Bugfix: Don't allow {{{ftp:/broken}}} (Only one slash) to be a link.\n* v1.0.4 - 2012-06-11\n** html2rest: Handle double link/image substitution and raise better error messages\n** Bugfix in unittests (include test README file in python package).  Thanks to Wen Heping for reporting this.\n* v1.0.3 - 2012-06-11\n** Bugfix: {{{AttributeError: 'module' object has no attribute 'interesting_cdata'}}} from HTMLParser patch. Thanks to Wen Heping for reporting this.\n** Fix a bug in get_long_description() ReSt test for Py3k and his unittests.\n** Use Travis CI, too.\n* v1.0.2 - 2012-04-04\n** Fix \"[[https://github.com/jedie/python-creole/issues/6|AttributeError: 'NoneType' object has no attribute 'parent']]\" in html2creole.\n* v1.0.1 - 2011-11-16\n** Fix \"[[https://github.com/jedie/python-creole/issues/5|TypeError: expected string or buffer]]\" in rest2html.\n** [[https://github.com/jedie/python-creole/commit/e8422f944709a5f8c2c6a8c8a58a84a92620f035|Bugfix in exception handling.]]\n* v1.0.0 - 2011-10-20\n** Change API: Replace 'parser_kwargs' and 'emitter_kwargs' with separate arguments. (More information on [[https://github.com/jedie/python-creole/wiki/API|API Wiki Page]])\n* v0.9.2\n** Turn zip_safe in setup.py on and change unittests API.\n* v0.9.1\n** Many Bugfixes, tested with CPython 2.6, 2.7, 3.2 and PyPy v1.6\n* v0.9.0\n** Add Python v3 support (like http://python3porting.com/noconv.html strategy)\n** move unittests into creole/tests/\n** Tested with Python 2.7.1, 3.2 and PyPy v1.6.1 15798ab8cf48 jit\n* v0.8.5\n** Bugfix in html2creole: ignore links without href\n* v0.8.4\n** Bugfix in html parser if list tag has attributes: https://code.google.com/p/python-creole/issues/detail?id=19#c4\n* v0.8.3\n** Better error message if given string is not unicode: https://code.google.com/p/python-creole/issues/detail?id=19\n* v0.8.2\n** Bugfix in get_long_description() error handling (//local variable 'long_description_origin' referenced before assignment//)\n* v0.8.1\n** Bugfix for installation under python 2.5\n** Note: [[https://github.com/jedie/python-creole/wiki/Use-In-Setup|setup helper]] changed: rename {{{GetLongDescription(...)}}} to {{{get_long_description(...)}}}\n* v0.8\n** New GetLongDescription() helper for setup.py, see: https://github.com/jedie/python-creole/wiki/Use-In-Setup\n* v0.7.3\n** Bugfix in html2rest:\n*** table without {{{\u003cth\u003e}}} header\n*** new line after table\n*** create reference hyperlinks in table cells intead of embedded urls.\n*** Don't always use raise_unknown_node()\n** Add child content to raise_unknown_node()\n* v0.7.2\n** Activate {{{----}}} to {{{\u003chr\u003e}}} in html2rest\n** Update demo.py\n* v0.7.1\n** Bugfix if docutils are not installed\n** API change: rest2html is now here: {{{ from creole.rest2html.clean_writer import rest2html }}}\n* v0.7.0\n** **NEW**: Add a html2reStructuredText converter (only a subset of reSt supported)\n* v0.6.1\n** Bugfix: separate lines with one space in \"wiki style line breaks\" mode\n* v0.6\n** **NEW**: html2textile converter\n** some **API changed**!\n* v0.5\n** **API changed**:\n*** Html2CreoleEmitter optional argument 'unknown_emit' takes now a callable for handle unknown html tags.\n*** No macros used as default in creole2html converting.\n*** We remove the support for callable macros. Only dict and modules are allowed.\n** remove unknown html tags is default behaviour in html2creole converting.\n** restructure and cleanup sourcecode files.\n* v0.4\n** only emit children of empty tags like div and span (contributed by Eric O'Connell)\n** remove inter wiki links and doesn't check the protocol\n* v0.3.3\n** Use {{{\u003ctt\u003e}}} when ~{~{~{ ... ~}~}~} is inline and not {{{\u003cpre\u003e}}}, see: [[http://forum.pylucid.org/viewtopic.php?f=3\u0026t=320|PyLucid Forum Thread]]\n** Bugfix in html2creole: insert newline before new list. TODO: apply to all block tags: [[http://code.google.com/p/python-creole/issues/detail?id=16#c5|issues 16]]\n* v0.3.2\n** Bugfix for spaces after Headline: [[https://code.google.com/p/python-creole/issues/detail?id=15|issues 15]]\n* v0.3.1\n** Make argument 'block_rules' in Parser() optional\n* v0.3.0\n** creole2html() has the optional parameter 'blog_line_breaks' to switch from default blog to wiki line breaks\n* v0.2.8\n** bugfix in setup.py\n* v0.2.7\n** handle obsolete non-closed \u003cbr\u003e tag\n* v0.2.6\n** bugfix in setup.py\n** Cleanup DocStrings\n** add unittests\n* v0.2.5\n** creole2html: Bugfix if \"--\", \"~/~/\" etc. stands alone, see also: [[http://code.google.com/p/python-creole/issues/detail?id=12|issues 12]]\n** Note: bold, italic etc. can't cross line any more.\n* v0.2.4\n** creole2html: ignore file extensions in image tag\n*** see also: [[http://code.google.com/p/python-creole/issues/detail?id=7|issues 7]]\n* v0.2.3\n** html2creole bugfix/enhanced: convert image tag without alt attribute:\n*** see also: [[http://code.google.com/p/python-creole/issues/detail?id=6|issues 6]]\n*** Thanks Betz Stefan alias 'encbladexp'\n* v0.2.2\n** html2creole bugfix: convert {{{\u003ca href=\"/url/\"\u003eSearch \u0026 Destroy\u003c/a\u003e}}}\n* v0.2.1\n** html2creole bugfixes in:\n*** converting tables: ignore tbody tag and better handling p and a tags in td\n*** converting named entity\n* v0.2\n** remove all django template tag stuff: [[http://code.google.com/p/python-creole/issues/detail?id=3|issues 3]]\n** html code always escaped\n* v0.1.1\n** improve macros stuff, patch by Vitja Makarov: [[http://code.google.com/p/python-creole/issues/detail?id=2|issues 2]]\n* v0.1.0\n** first version cut out from [[http://www.pylucid.org|PyLucid CMS]]\n\nfirst source code was written 27.11.2008: [[http://www.python-forum.de/viewtopic.php?f=3\u0026t=16742|Forum thread (de)]]\n\n\n== Project links ==\n\n| GitHub        | [[https://github.com/jedie/python-creole]]\n| Wiki          | [[https://github.com/jedie/python-creole/wiki]]\n| PyPi          | [[https://pypi.org/project/python-creole/]]\n\n\n== donation\n\n* [[https://www.paypal.me/JensDiemer|paypal.me/JensDiemer]]\n* [[https://flattr.com/submit/auto?uid=jedie\u0026url=https%3A%2F%2Fgithub.com%2Fjedie%2Fpython-creole%2F|Flattr This!]]\n* Send [[http://www.bitcoin.org/|Bitcoins]] to [[https://blockexplorer.com/address/1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F|1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F]]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedie%2Fpython-creole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjedie%2Fpython-creole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedie%2Fpython-creole/lists"}