| @@ -113,20 +113,20 @@ saving the page!) by calling ``str()`` on it:: | |||||
| Likewise, use ``unicode(code)`` in Python 2. | Likewise, use ``unicode(code)`` in Python 2. | ||||
| Caveats | |||||
| Limitations | |||||
| ----------- | |||||
| While the MediaWiki parser generates HTML, mwparserfromhell acts as an interface to | While the MediaWiki parser generates HTML, mwparserfromhell acts as an interface to | ||||
| the source code. mwparserfromhell therefore is unaware of template definitions since | the source code. mwparserfromhell therefore is unaware of template definitions since | ||||
| if it would substitute templates with their output you could no longer change the templates. | |||||
| This has several implications: | |||||
| if it would substitute templates with their output you would no longer be working | |||||
| with the source code. This has several implications: | |||||
| * Start and end tags generated by templates aren't recognized e.g. ``<b>foobar{{bold-end}}``. | * Start and end tags generated by templates aren't recognized e.g. ``<b>foobar{{bold-end}}``. | ||||
| * Templates adjacent to external links e.g. ``http://example.com{{foo}}`` are | * Templates adjacent to external links e.g. ``http://example.com{{foo}}`` are | ||||
| considered part of the link. | considered part of the link. | ||||
| * Crossed constructs like ``{{echo|''Hello}}, world!''`` are not supported. | |||||
| We compromise by treating the first node as plain text. | |||||
| * Crossed constructs like ``{{echo|''Hello}}, world!''`` are not supported, | |||||
| the first node is treated as plain text. | |||||
| The current workaround for cases where you are not interested in text | The current workaround for cases where you are not interested in text | ||||
| formatting is to pass ``skip_style_tags=True`` to ``mwparserfromhell.parse()``. | formatting is to pass ``skip_style_tags=True`` to ``mwparserfromhell.parse()``. | ||||
| @@ -135,6 +135,17 @@ This has several implications: | |||||
| A future version of mwparserfromhell will include multiple parsing modes to get | A future version of mwparserfromhell will include multiple parsing modes to get | ||||
| around this restriction. | around this restriction. | ||||
| Configuration unawareness | |||||
| ------------------------- | |||||
| * `word-ending links`_ are not supported since the linktrail rules are language-specific. | |||||
| * Localized namespace names aren't recognized, e.g. ``[[File:...]]`` | |||||
| links are treated as regular wikilinks. | |||||
| * Anything that looks like an XML tag is parsed as a tag since, | |||||
| the available tags are extension-dependent. | |||||
| Integration | Integration | ||||
| ----------- | ----------- | ||||
| @@ -178,6 +189,7 @@ Python 3 code (via the API_):: | |||||
| .. _GitHub: https://github.com/earwig/mwparserfromhell | .. _GitHub: https://github.com/earwig/mwparserfromhell | ||||
| .. _Python Package Index: http://pypi.python.org | .. _Python Package Index: http://pypi.python.org | ||||
| .. _get pip: http://pypi.python.org/pypi/pip | .. _get pip: http://pypi.python.org/pypi/pip | ||||
| .. _word-ending links: https://www.mediawiki.org/wiki/Help:Links#linktrail | |||||
| .. _EarwigBot: https://github.com/earwig/earwigbot | .. _EarwigBot: https://github.com/earwig/earwigbot | ||||
| .. _Pywikibot: https://www.mediawiki.org/wiki/Manual:Pywikibot | .. _Pywikibot: https://www.mediawiki.org/wiki/Manual:Pywikibot | ||||
| .. _API: http://mediawiki.org/wiki/API | .. _API: http://mediawiki.org/wiki/API | ||||