summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Bump version to 3.3.33.3.3Waylan Limberg2020-10-252-2/+2
|
* Fix issues related to hr tagsIsaac Muse2020-10-245-6/+271
| | | | | | | | | | | Ensure that start/end tag handler does not include tags in the previous paragraph. Provide special handling for tags like hr that never have content. Use sets for block tag lists as they are much faster when comparing if an item is in the list. Fixes #1053.
* Avoid catastrophic backtracking in `hr` regexWaylan Limberg2020-10-243-5/+28
| | | | Fixes #1055.
* Add require_changelog workflow action (#1051)Waylan Limberg2020-10-231-0/+24
| | | | | | | | | | | | | This action checks that an update was made to any file in docs/change_log/ but only if changes were made to files in markdown/. Presumably, any changes outside of markdown/ do not affect the behavior and do not require a notation in the change_log. If the proper permissions are available, a comment is added to the PR informing the PR author that an update to the changelog is missing. However, any PR's from forks do not have permission on the pull_request event. Unfortunately, the pull_request_target event doesn't seem to work at all. However, as the action only attempts to add a comment on failure, we only get a failure in the correct conditions, even if the error message is related to auth.
* Ensure when tag text is None that it is converted to empty stringIsaac Muse2020-10-213-0/+21
| | | Fixes #1049
* Unify all block-level tags. (#1048)Waylan Limberg2020-10-205-36/+37
| | | | | | Use the list of tags defined in the core by the md_in_html extension. This ensures that the lists do not diverge and allows users and/or extensions to expand the list in the core and have that change affect the extension. Fixes #1047.
* Bump version to 3.3.23.3.2Waylan Limberg2020-10-193-1/+36
|
* Properly parse inline HTML in md_in_htmlIsaac Muse2020-10-192-5/+191
| | | Fixes #1040 and fixes #1045.
* Account for Etree Elements in HTML StashWaylan Limberg2020-10-143-2/+33
| | | | | | | | | | | | | | | | By calling str on all stash elements we ensure they don't raise an error. Worse case, soemthing like `<Element 'div' at 0x000001B2DAE94900>` gets inserted into the output. However, with the override in the md_in_html extension, we actually serialize and reinsert the original HTML. Worse case, an HTML block which should be parsed as Markdown gets skipped by the extension (`<div markdown="block"></div>` gets inserting into the output). The tricky part is testing as there should be no known cases where this ever occurs. Therefore, we forefully pass an etree Element directly to the method in the test. That said, as #1040 is unresolved at this point, I have tested locally with a real existing case and it works well. Related to #1040.
* Bump version to 3.3.13.3.1Waylan Limberg2020-10-123-5/+5
|
* Correctly parse raw `script` and `style` tags. (#1038)Waylan Limberg2020-10-123-0/+156
| | | | | | | * Ensure unclosed script tags are parsed correctly by providing a workaround for https://bugs.python.org/issue41989. * Avoid cdata_mode outside of HTML blocks, such as in inline code spans. Fixes #1036.
* Skip tests with pygments version mismatch.Waylan Limberg2020-10-082-261/+282
| | | | | | | | If pygments is installed and the version doesn't match the expected version. then any relevant tests will fail. To avoid failing tests due to different output by pygments, those tests will be skipped. The pygments tox env sets the `PYGMENTS_VERSION environment variable, so that env will always run those tests against the expected version.
* Some test tweaks.Waylan Limberg2020-10-083-4/+14
| | | | | | | | | | * Pygments specific tests now only run when the pygments version installed matches the expected version. That version is defined in an environment variable (PYGMENTS_VERSION) in the 'pygments' tox env (see #1030). * When the Python lib tidylib is installed but the underlying c lib is not, the relevant tests are now skipped rather than fail. This matches the behavior when the Python lib is not installed. The tox envs are now useful on systems which don't have the c lib installed.
* Ensure consistent handling of classes by fenced_code and codehilite (#1033)Waylan Limberg2020-10-084-27/+30
| | | | | | | * All non-language classes should always be assigned to the pre tag. * The language identifying class should never be included with the general list of classes. Fixes #1032
* Update tests for pygments-2.7.1Michał Górny2020-10-073-13/+13
| | | | Closes #1030
* Bump version to 3.3.3.3Waylan Limberg2020-10-062-2/+2
|
* Add PY39 support and drop PY35 (#1026)Waylan Limberg2020-10-064-12/+12
| | | | Python 3.5 reached end-of-life on 2020-09-12 and Python 3.9 was released on 2020-10-05.
* Support unicode ids in toc (#970)Antoine2020-10-014-4/+41
| | | A second function, `slugify_unicode` was added rather than changing the existing function so as to maintain backward compatibility. While an `encoding` parameter was added to the `slugify` function, we can't expect existing third party functions to accept a third parameter. Therefore, the two parameter API was preserved with this change.
* Refactor HTML Parser (#803)Waylan Limberg2020-09-2257-1229/+3538
| | | | | | | | | | The HTML parser has been completely replaced. The new HTML parser is built on Python's html.parser.HTMLParser, which alleviates various bugs and simplifies maintenance of the code. The md_in_html extension has been rebuilt on the new HTML Parser, which drastically simplifies it. Note that raw HTML elements with a markdown attribute defined are now converted to ElementTree Elements and are rendered by the serializer. Various bugs have been fixed. Link reference parsing, abbreviation reference parsing and footnote reference parsing has all been moved from preprocessors to blockprocessors, which allows them to be nested within other block level elements. Specifically, this change was necessary to maintain the current behavior in the rebuilt md_in_html extension. A few random edge-case bugs (see the included tests) were resolved in the process. Closes #595, closes #780, closes #830 and closes #1012.
* Document passing configuration options to Extra.Waylan Limberg2020-09-172-7/+32
| | | | Closes #1019.
* Update information about richleland/pygments-css.Waylan Limberg2020-09-101-6/+7
| | | | As of richleland/pygments-css@146834e1 the css class was set to `.highlight`. Closes #1020.
* Add Markdown text processing classifier to setupÁlvaro Mondéjar2020-08-241-1/+2
|
* Fix complex scenarios with definition, ordered, and unordered lists (#1007)Isaac Muse2020-07-273-4/+330
| | | Fixes #918.
* Fix complex scenarios with lists and admonitions (#1006)Isaac Muse2020-07-263-5/+270
| | | | | Add better logic to admonitions to account for more complex list cases Fixes #1004
* Fix HR which follows strong em.Waylan Limberg2020-07-013-1/+18
| | | | Fixes #897.
* Support short reference image links.Waylan Limberg2020-07-013-0/+36
| | | | Fixes #894.
* Add suport for attr_lists in table headers.Waylan Limberg2020-06-304-7/+20
|
* Tune attr list regexWaylan Limberg2020-06-308-34/+134
| | | | | | | | | | | Ignore empty braces. Braces must contain at least one non-whitepsace character to be recognized as an attr list. Attr lists for table cells must be at the end of the cell content and must be seperated from the content by at least one space. This appears to be a breaking change. However, it is consistent with the behavior elsewhere. Fixes #898.
* Fix unescaping of HTML characters <> in CodeHilite. (#990)Rohitt Vashishtha2020-06-294-1/+28
| | | | | | | | | | | Previously, we'd unescape both `&amp;gt;` and `&gt;` to the same string because we were running the &amp; => & replacement first. By changing the order of this replacement, we now convert: `&amp;gt; &gt;` => `&gt; >` as expected. Fixes #988.
* Limit depth of blockquotes using Python's recursion limit. (#991)Waylan Limberg2020-06-295-2/+99
| | | | | | | | | | | | | | | | | If the Python stack comes within 100 frames of the recursion limit, then the nesting limit of blockquotes is met. Any remaining text, including angle brackets, are simply wrapped in a paragraph. To increasing the nesting depth, increase Python's recursion limit. However, be aware that each level of recursion will likely result in multiple frames being added to the Python stack. Therefore, the recursion depth and nesting depth are not one-to-one. Performance is an concern here. However, the current solution seems like a reasonable compromise. It doesn't slow things down too much, but also avoids Markdown input resulting in an error. This is mostly only a concern with contrived input anyway. For the average Markdown document, this will likely never be an issue. Fixes #799.
* Clarify attr_list docsWaylan Limberg2020-06-251-2/+32
| | | | | Document the behavior of single terms and clarify other behaviors. Addresses #964.
* Refactor fenced_code & codehilite options (#816)Waylan Limberg2020-06-2318-633/+1799
| | | | | | | | | | | | | | | | | | | | * Add `language-` prefix to output when syntax highlighting is disabled for both codehilite and fenced_code extensions. * Add `lang_prefix` config option to customize the prefix. * Add a 'pygments' env to tox which runs the tests with Pygments installed. Pygments is locked to a specific version in the env. * Updated codehilite to accept any Pygments options. * Refactor fenced code attributes. - ID attr is defined on `pre` tag. - Add support for attr_list extension, which allows setting arbitrary attributes. - When syntax highlighting is enabled, any pygments options can be defined per block in the attr list. - For backward compatibility, continue to support `hi_lines` outside of an attr_list. That is the only attr other than lang which is allowed without the brackets (`{}`) of an attr list. Note that if the brackets exist, then everything, including lang and hl_lines, must be within them. * Resolves #775. Resolves #334. Addresses #652.
* Fix issues with complex emphasisfacelessuser2020-06-225-3/+47
| | | | | Resolves issue that can occur with complex emphasis combinations. Fixes #979
* Bump version to 3.3.dev0.Waylan Limberg2020-06-171-1/+1
|
* Fix exception cause in core.pyRam Rachum2020-06-121-2/+2
|
* Allow checklinks check to fail.Waylan Limberg2020-05-221-0/+3
| | | | | | | | | | | | | | | There are too many random arbitrary failures with this check. We still want the check to run to ensure we don't introduce any new errors. However, the random errors on external URLs are frustrating, especcially when a different URL fails on each run. And then when the URL is checked manually, it is clearly good. If the tool provided a flag to limit the check to intenral URLs only (it doesn't), we wouldn't use that anyway because we do want to know when an extenral URL becomes invalid. Although, I suppose we could do two runs, one intenral and one external and only allow the external to fail. But that will have to wait until such a feature is added to the tool or we find a better tool.
* Add deploy workflow (#971)Waylan Limberg2020-05-212-10/+68
|
* Add project urlsWaylan Limberg2020-05-211-0/+5
|
* Use README.md for long_description.Waylan Limberg2020-05-181-21/+3
| | | | | | | | With `long_description_content_type="text/markdown"` it is now possible to use Markdown text in the `long_description` meta-data field. Make sure the latest tools (setuptools, wheel, twine) are installed before deploying. See https://dustingram.com/articles/2018/03/16/markdown-descriptions-on-pypi/ for details.
* Add push trigger to tox workflow. (#968)Waylan Limberg2020-05-182-4/+13
| | | | | * The build button/badge in the README now only points to push events so that an unmerged failing PR doesn't cause the build status to show as 'failing.' * Restrict node setup to checklinks env.
* Update build status buttonWaylan Limberg2020-05-171-3/+3
| | | Point to GitHub workflow action rather than Travis.
* Flake8 cleanup.Waylan Limberg2020-05-143-6/+6
| | | | | The latest version of flake8 added some new tests. This cleans up after them.
* Document limitations if attr_list extension.Waylan Limberg2020-05-142-0/+33
| | | | Closes #965.
* Fix importlib-metadata requirement name for Python < 3.8Dmitry Shachnev2020-05-111-1/+1
|
* Switch to GitHub Actions from Travis (#958)Waylan Limberg2020-05-093-47/+84
|
* Bump version to 3.2.23.2.2Waylan Limberg2020-05-082-2/+2
|
* Documentation cleanup.Waylan Limberg2020-05-085-20/+20
|
* Add checklinks tox env and shell script. (#955)Waylan Limberg2020-05-0711-11/+51
| | | Also clean up dead links.
* Refactor Extension API docs (#946)Charles Merriam2020-05-074-494/+550
| | | | | * Move Patterns sections. Fixes #729. * Rewrite tree processor docs. Fixes #949.
* Avoid importing packaging or pkg_resources for version validation (#948)Ran Benita2020-04-274-18/+38
| | | | | | | | | | | | | | Importing the `pkg_resources` module has high memory and startup time cost. A recent change in 102e01c already avoided it for loading extensions, but it's still used for validating that __version__ is correctly formatted. It is possible to avoid it by installing the `packaging` package, but that adds a dependency for something quite trivial. Instead, remove the validation and add tests which check the output is as expected. Since `setuptools` is no longer required at runtime, remove it from `install_required`.