| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
slugify() requires unicode, not a str instance. This causes the extension to
crash:
File "/home/erik/virtualenv/bb/local/lib/python2.7/site-packages/markdown/__init__.py" in markdown
386. return md.convert(text)
File "/home/erik/virtualenv/bb/local/lib/python2.7/site-packages/markdown/__init__.py" in convert
287. newRoot = treeprocessor.run(root)
File "/home/erik/virtualenv/bb/local/lib/python2.7/site-packages/markdown/extensions/headerid.py" in run
140. id = slugify(''.join(itertext(elem)), sep)
File "/home/erik/virtualenv/bb/local/lib/python2.7/site-packages/markdown/extensions/headerid.py" in slugify
93. value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
TypeError: must be unicode, not str
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In Python 2.x, if you write to stdout and stdout is piped
(for example: `python -m markdown foo.txt | less`), then
`sys.stdout.encoding` is `None` and an error is rasied.
Commit 1132f9e20cd7a5d6be809651f1034c44c32dbc0e was an attempt to
fix this, and it works in Python 2.x.
However, it does not work in Python 3.x, which does not exhibit this problem.
In fact, that fix actually breaks things in Python 3 whether the output
is piped or not. Additionaly, in Python 2.x, the fix is not needed if the
output is not being piped.
As we do not have a version specific issue, but an issue with
`sys.stdout.encoding`, we check for that to determine which way to go.
This way, the "right thing" *should* happen every time.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As HTML5 has depreciated use of `rev=anything` and `rel=footnotes`, they are no
longer inlcuded in the output when the output_format is set to HTML5. Note that
if someone successful registers a spec for `rel=footnotes` in the future (as
a microformat), then that could be considered valid. But until that happens,
it is invlaid to use in HTML5. Therefore, we remove it from the output (when
outputing HTML% only).
As an alternative, two new classes are set (in all output_formats). On the link
to the footnote (where `rel=footnotes` was used), we set `class=footnote-ref`
and on the backlink (where `rev=footnote` was used), we set
`class=footnote-backref`.
Also updated the tests to reflect to the new classes in the output.
|
|
|
|
|
|
|
|
|
|
| |
Specificaly, `self.output_format` is defined and contains a string of the
output format used on the instance. This is more useful that an instance
of the searializer when determining alternate behavior elsewhere in the parser.
For example, see Issue #129.
Also cleaned up the error when an invalid format is provided. We now re-raise
the original error (with a custom message) rather than raising a new error.
|
|
|
|
|
|
|
| |
program.
In this case text should be encoded into the output encoding explicitly, because
sys.stdout.encoding is None, when piping data.
|
| |
|
|\
| |
| |
| |
| | |
Conflicts:
markdown/odict.py
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
homepage).
|
|
|
|
| |
the headerid extension.
|
| |
|
| |
|
|
|
|
| |
first line of a code block for codehilite to recognize it.
|
| |
|
|
|
|
|
|
|
| |
Note that you can still explicitly set 'enable_attributes' and that
value will be honored regardless of 'safe_mode'. However if 'safe_mode'
is on and 'enable_attributes' is not explicitly set, then
'enable_attributes' defaults to False.
|
|
|
|
| |
Elements should be inserted in the tree regardless of enable_attributes
|
|
|
|
| |
They are span elements. `<del>` is explicitly mentioned as such in the [markdown syntax document](http://daringfireball.net/projects/markdown/syntax)
|
|
|
|
|
|
|
|
|
| |
This allows the run method to determine if a block is or is not a match in the
midst of parsing outside of the test method. The goal is to eliminate the
often redundant test method in the future. In the interim, it remains and
if the run method returns None, the existing behavior is maintained. Returning
None may generate a DepreciationWarning later. Note that test must still return
True to even get to the run method.
|
|
|
|
| |
Also added a test. Thanks for the report.
|
| |
|
| |
|
|
|
|
| |
stdout is used later based on output being None. Don't try to get a jump on that.
|
|
|
|
|
| |
Also refactored the reference preprocessor to make this a little easier to
implement. Regex does more now.
|
| |
|
| |
|
| |
|
|\
| |
| | |
Allow specifying the full module name for extensions.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before this patch, it was possible to pass a list of extensions and
parameters to use when instantiating a new Markdown instance, but it was
not possible to give a full module name; the extension had to be a
submodule in markdown.extensions.
Now we allow giving a full module path, to make it easy to use custom
extensions which are not bundled within the markdown package. The
previous behaviour has been retained when there is no '.' in the
extension name.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is an extension which alters the behavior of lists to be less surprising.
If turned out to be rather simple to code. I'm surprised no one had written it
yet.
I should note that this extension does not generate separate lists if different
unordered list markers are used (`*` verses `-` verses `+`) The way the parser
works that would be a little more tricky.
|
| |
| |
| |
| |
| | |
This will make it easier for extensions to subclass the list block processors
and alter their behavior. Such as the request in issue #64.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
The footnotes treeprocessor must be the first one run so that all others,
including codehilite's, can run on the contents of the footnote div which is
created and inserted by the footnotes treeprocessor.
Thanks to startling for the report.
|
| | |
|
| |
| |
| |
| |
| | |
Not only does this ensure that all output matches the output_format,
but it is nessecary to run in Python 3.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Final fix to issue introduced in fix for #59. Weird stuff inside
angle brackets now also work in safe_mode='escape'. We just did the
same thing as with block html, let the (x)html searializer do the
escaping. Tests updated including the standalone test moved to match
the non-escape cases.
|
| |
| |
| |
| |
| | |
Markdown markup inside angle bracktes now gets rendered properly
in all cases except when safe_mode='escape'. Also added tests.
|
| |
| |
| |
| |
| |
| | |
Replaced the unescape method I carlessly threw in the RawHtmlProcessor.
Unfortunetly, this reintroduces the bug just fixed in commit
425fde141f17973aea0a3a85e44632fe18737996 Sigh!
|
|\ \
| | |
| | |
| | |
| | | |
Conflicts:
markdown/inlinepatterns.py
|