| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
If you have existing documents that use the legacy attributes format,
then you should enable the legacy_attrs extension for those documents.
Everyone is encouraged to use the attr_list extension going forward.
Closes #643. Work adapted from 0005d7a of the md3 branch.
|
|
|
|
|
|
|
|
|
| |
Should be 100% coverage now. The ProcessingInstruction needed to be
imported directly from ElementTree as PY27 was using a PIProxy which
resulted in a bug. Interestingly, PY3 worked fine.
Also removed the encoding code as it was not used. Besides it was only
ever accessable from a private function.
|
|
|
|
| |
Fixes #679.
|
|
|
|
| |
Wheel dropped support for Python 3.3 in pypa/wheel@c06998693d33d3e3.
|
| |
|
|
|
|
| |
Fixes #671
|
| |
|
| |
|
|
|
|
|
| |
Also refactor from regex to a list and add comments to explain why the
elements are in the list for future reference. Fixes #543.
|
| |
|
|
|
|
|
| |
Strip only the space character and not things like nbsp in tables. Fixes #635.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We started with the numbers before HTML5 was a thing and we thought
there might be an XHTML2. Today, we know that all we have are HTML style
tags and XHTML style tags. Nothing else really matters in the real
world.
Note that if '(x)html1' '(x)html4' or '(x)html5' are passed in, the
number is stripped/ignored. Users shouldn't need to change their code
for this.
|
|
|
|
| |
Add new InlineProcessor class that handles inline processing much better and allows for more flexibility. This adds new InlineProcessors that no longer utilize unnecessary pretext and posttext captures. New class can accept the buffer that is being worked on and manually process the text without regex and return new replacement bounds. This helps us to handle links in a better way and handle nested brackets and logic that is too much for regular expression. The refactor also allows image links to have links/paths with spaces like links. Ref #551, #613, #590, #161.
|
| |
|
|
|
|
|
|
|
|
| |
In the past Markdown used to pass extension config settings to the
Extension class via a positional argument named `config`. That was
deprecated in 2.6 in favor of using keyword arguments (`**kwargs`).
Support has been completely dropped. Only keyword arguments are
accepted.
|
| |
|
| |
|
|
|
|
|
|
|
| |
The page was removed along with the extension in 1127013.
Also ensure any future MkDocs warnings cause the build to fail in the tests
so we don't introduce similar errors in the future.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Deprecated naming support is removed:
* Removed special treatment for modules in `markdown.extensions`
* Removed support for `mdx_` prefixes.
Support for Entry Point names added:
Support for "short names" are now implemented with entry points.
Therefore all the users who call extension names as `toc` will not
get errors as the builtin extensions all have entry points defined
which match the old "short names" for modules in
`markdown.extensions`. The benefit is that any extension can offer
the same support without requiring the user to manually copy a file
to that location on the file system (way to many extension authors
have included such instructions in their installation documentation).
The one odd thing about this is that we have been issuing a
DeprecationWarning for short names and now they are fully supported
again. But I think it's the right thing to do.
Support for using dot notation is not removed. After all, it was never
deprecated. And we shouldn't "force" entry points. There are plenty of
reasons why users may not want that and not all of them can be
resolved by using class instances instead.
All of the following ways to load an extension are valid:
# Class instance
from markdown.extensions.toc import TocExtension
markdown.markdown(src, extensions=[TocExtension()]
# Entry point name
markdown.markdown(src, extensions=['toc'])
# Dot notation with class
markdown.markdown(src, extensions=['markdown.extensions.toc:TocExtension'])
# Dot notation without class
markdown.markdown(src, extensions=['markdown.extensions.toc'])
|
| |
|
|
|
|
| |
Use the TOC extension instead.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
__version__ is now in __init__.py (as is should be) and the core is
defined in core.py. Other than version, __init__.py is just a dummy
which imports the pieces we make public.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All file-based tests are now defined as unittest test cases via a
metaclass which walks a directory and builds a unittest for each pair
of test files.
To run the tests just run `python -m unittest discover tests`. Or use
tox as the tox config has been updated to run the new tests and all nose
specific code has been removed.
The test generator tools have been removed as well. If any changes or
additions need to be made to tests, they should be implemented using
the new framework rather than with the file-based tests. Eventually,
only the PHP and pl tests should remain as file-based tests.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As a part of the Markdown lib, test tools can be used by third party
extensions. Also keeps test dir clean as it only contains actual tests.
More work in this vein to come as the need for Nose is removed.
Tests are defined as Unittests rather than in text files allowing
features to be more easily broken into units and run individually.
Based completely on standard lib unittest with no external dependencies.
Use `python -m unittest tests.test_syntax` to run.
Pulled some tests from https://github.com/karlcow/markdown-testsuite.
Many more test units to pull from that source. As we encounter the need
to edit an existing textfile-based test, or add a new test, a new test
should be created with this framework and the old test should be
deleted. Also need to delete existing testfile-based tests which are
covered in the new tests included here.
|
|
|
|
| |
Fixes #621.
|
|
|
|
|
| |
Development of version 3.0 starts here. Any bugfixes that should be
applied to 2.x should be backported to the 2.6 branch.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Preserve the line which a reference was on to prevent raw HTML indexing issue. Fixes #584.
Prevent raw HTML parsing issue in abbr and footnotes
Peserve abbreviation line when stripping and preserve a line for each footnote block. Footnotes should also accumulate the extraneous padding.
Test extra lines at the end of references
Strip the gathered extraneous whitespace
When processing footnotes, we don't actually care to process the extra whitespace at the end of a footnote, but we want it to calculate lines to preserve.
|
|
|
|
| |
Fixes #618.
|
| |
|
|
|
| |
Python 3.6 is starting to reject invalid escapes. Regular expression patterns should be raw strings to avoid having regex escapes being mistaken for invalid string escapes. Fixes #611.
|
| |
|
|
|
| |
Fixes #610.
|
| |
|
|
|
|
|
|
| |
* Install deps.
* Ensure test fails if deps are missing.
* Update dictionary for recent docs changes.
|
|
|
|
| |
Update install docs.
|
|
|
|
| |
Use console_scripts entry_point instead of manually built script.
|
|
|
|
|
|
|
|
| |
The sdist command now builds the MANIFEST automatically. No need
to do it manually. Also, PyPI now only accepts one sdist file per
release, so let's not try to upload two.
Also, the docs deploy command does not work right so it's removed.
|
|
|
|
|
| |
This version was released to force PyPI to point to the new docs location.
Closes #601. The old PyPI hosted docs can be deleted after this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes #601. Merged in 6f87b32 from the md3 branch and did a lot of cleanup.
Changes include:
* Removed old docs build tool, templates, etc.
* Added MkDocs config file, etc.
* filename.txt => filename.md
* pythonhost.org/Markdown => Python-Markdown.github.io
* Markdown lint and other cleanup.
* Automate pages deployment in makefile with `mkdocs gh-deploy`
Assumes a git remote is set up named "pages". Do
git remote add pages https://github.com/Python-Markdown/Python-Markdown.github.io.git
... before running `make deploy` the first time.
|
|
|
|
|
| |
Ancestry exclusion for inline patterns.
Adds the ability for an inline pattern to define a list of ancestor tag names that should be avoided. If a pattern would create a descendant of one of the listed tag names, the pattern will not match. Fixes #596.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Note that we install coverage<4.0 in travis because test-requirements.txt is
installing the same in the tox environments. The .coverage file format
changed in 4.0.
|