summaryrefslogtreecommitdiff
path: root/textproc/py-markdown
AgeCommit message (Collapse)AuthorFilesLines
2016-08-28Remove unnecessary PLIST_SUBST and FILES_SUBST that are now providedwiz1-3/+1
by the infrastructure. Mark a couple more packages as not ready for python-3.x.
2015-11-13Update py-markdown to 2.6.4.wiz2-7/+10
Add missing test dependencies. Nov 6, 2015: Released version 2.6.4 (a bug-fix release).
2015-11-04Update to 2.6.3 based on PR 50396 by derouiche.wiz4-11/+35
Oct 26, 2015: Released version 2.6.3 (a bug-fix release).
2015-11-04Add SHA512 digests for distfiles for textproc categoryagc1-1/+2
Problems found locating distfiles: Package cabocha: missing distfile cabocha-0.68.tar.bz2 Package convertlit: missing distfile clit18src.zip Package php-enchant: missing distfile php-enchant/enchant-1.1.0.tgz Otherwise, existing SHA1 digests verified and found to be the same on the machine holding the existing distfiles (morden). All existing SHA1 digests retained for now as an audit trail.
2015-07-19Update to 2.6.2:wiz3-17/+16
Python-Markdown 2.3 Release Notes ================================= We are pleased to release Python-Markdown 2.3 which adds one new extension, removes a few old (obsolete) extensions, and now runs on both Python 2 and Python 3 without running the 2to3 conversion tool. See the list of changes below for details. Python-Markdown supports Python versions 2.6, 2.7, 3.1, 3.2, and 3.3. Backwards-incompatible Changes ------------------------------ * Support has been dropped for Python 2.5. No guarantees are made that the library will work in any version of Python lower than 2.6. As all supported Python versions include the ElementTree library, Python-Markdown will no longer try to import a third-party installation of ElementTree. * All classes are now "new-style" classes. In other words, all classes subclass from 'object'. While this is not likely to affect most users, extension authors may need to make a few minor adjustments to their code. * "safe_mode" has been further restricted. Markdown formatted links must be of a known white-listed scheme when in "safe_mode" or the URL is discarded. The white-listed schemes are: 'HTTP', 'HTTPS', 'FTP', 'FTPS', 'MAILTO', and 'news'. Schemeless URLs are also permitted, but are checked in other ways - as they have been for some time. * The ids assigned to footnotes now contain a dash (`-`) rather than a colon (`:`) when `output_format` it set to `"html5"` or `"xhtml5"`. If you are making reference to those ids in your JavaScript or CSS and using the HTML5 output, you will need to update your code accordingly. No changes are necessary if you are outputting XHTML (the default) or HTML4. * The `force_linenos` configuration setting of the CodeHilite extension has been marked as **Pending Deprecation** and a new setting `linenums` has been added to replace it. See documentation for the [CodeHilite Extension] for an explanation of the new `linenums` setting. The new setting will honor the old `force_linenos` if it is set, but it will raise a `PendingDeprecationWarning` and will likely be removed in a future version of Python-Markdown. [CodeHilite Extension]: extensions/codehilite.html * The "RSS" extension has been removed and no longer ships with Python-Markdown. If you would like to continue using the extension (not recommended), it is archived on [GitHub](https://gist.github.com/waylan/4773365). * The "HTML Tidy" Extension has been removed and no longer ships with Python-Markdown. If you would like to continue using the extension (not recommended), it is archived on [GitHub](https://gist.github.com/waylan/5152650). Note that the underlying library, uTidylib, is not Python 3 compatible. Instead, it is recommended that the newer [PyTidyLib] (version 0.2.2+ for Python 3 comparability - install from GitHub not PyPI) be used. As the API for that library is rather simple, it is recommended that the output of Markdown be wrapped in a call to PyTidyLib rather than using an extension (for example: `tidylib.tidy_fragment(markdown.markdown(source), options={...})`). [PyTidyLib]: http://countergram.com/open-source/pytidylib What's New in Python-Markdown 2.3 --------------------------------- * The entire code base now universally runs in Python 2 and Python 3 without any need for running the 2to3 conversion tool. This not only simplifies testing, but by using Unicode_literals, results in more consistent behavior across Python versions. Additionally, the relative imports (made possible in Python 2 via absolute_import) allows the entire library to more easily be embedded in a sub-directory of another project. The various files within the library will still import each other properly even though 'markdown' may not be in Python's root namespace. * The [Admonition Extension] has been added, which implements [rST-style][rST] admonitions in the Markdown syntax. However, be warned that this extension is experimental and the syntax and behavior is still subject to change. Please try it out and report bugs and/or improvements. [Admonition Extension]: extensions/admonition.html [rST]: http://docutils.sourceforge.net/docs/ref/rst/directives.html#specific-admonitions * Various bug fixes have been made. See the [commit log](https://github.com/waylan/Python-Markdown/commits/master) for a complete history of the changes. Python-Markdown 2.4 Release Notes ================================= We are pleased to release Python-Markdown 2.4 which adds one new extension and fixes various bugs. See the list of changes below for details. Python-Markdown supports Python versions 2.6, 2.7, 3.1, 3.2, and 3.3. Backwards-incompatible Changes ------------------------------ * The `force_linenos` configuration setting of the CodeHilite extension has been marked as **Deprecated**. It had previously been marked as "Pending Deprecation" in version 2.3 when a new setting `linenums` was added to replace it. See documentation for the [CodeHilite Extension] for an explanation of the new `linenums` setting. The new setting will honor the old `force_linenos` if it is set, but `force_linenos` will raise a `DeprecationWarning` and will likely be removed in a future version of Python-Markdown. [CodeHilite Extension]: extensions/code_hilite.html * URLs are no longer percent-encoded. This improves compatibility with the original (written in Perl) Markdown implementation. Please percent-encode your URLs manually when needed. What's New in Python-Markdown 2.4 --------------------------------- * Thanks to the hard work of [Dmitry Shachnev] the [Smarty Extension] has been added, which implements [SmartyPants] using Python-Markdown's Extension API. This offers a few benefits over a third party script. The HTML does not need to be "tokenized" twice, no hacks are required to combine SmartyPants and code highlighting, and we get markdown's escaping feature for free. Please try it out and report bugs and/or improvements. [Dmitry Shachnev]: https://github.com/mitya57 [Smarty Extension]: extensions/smarty.html [SmartyPants]: http://daringfireball.net/projects/smartypants/ * The [Table of Contents Extension] now supports new `permalink` option for creating [Sphinx]-style anchor links. [Table of Contents Extension]: extensions/toc.html [Sphinx]: http://sphinx-doc.org/ * It is now possible to enable Markdown formatting inside HTML blocks by appending `markdown=1` to opening tag attributes. See [Markdown Inside HTML Blocks] section for details. Thanks to [ryneeverett] for implementing this feature. [Markdown Inside HTML Blocks]: extensions/extra.html#nested-markdown-inside-html-blocks [ryneeverett]: https://github.com/ryneeverett * The code blocks now support emphasizing some of the code lines. To use this feature, specify `hl_lines` option after language name, for example (using the [Fenced Code Extension]): ```.python hl_lines="1 3" # This line will be emphasized. # This one won't. # This one will be also emphasized. ``` Thanks to [A. Jesse Jiryu Davis] for implementing this feature. [Fenced Code Extension]: extensions/fenced_code_blocks.html [A. Jesse Jiryu Davis]: https://github.com/ajdavis * Various bug fixes have been made. See the [commit log](https://github.com/waylan/Python-Markdown/commits/master) for a complete history of the changes. Python-Markdown 2.5 Release Notes ================================= We are pleased to release Python-Markdown 2.5 which adds a few new features and fixes various bugs. See the list of changes below for details. Python-Markdown version 2.5 supports Python versions 2.7, 3.2, 3.3, and 3.4. Backwards-incompatible Changes ------------------------------ * Python-Markdown no longer supports Python version 2.6. You must be using Python versions 2.7, 3.2, 3.3, or 3.4. [importlib]: https://pypi.python.org/pypi/importlib * The `force_linenos` configuration key on the [CodeHilite Extension] has been **deprecated** and will raise a `KeyError` if provided. In the previous release (2.4), it was issuing a `DeprecationWarning`. The [`linenums`][linenums] keyword should be used instead, which provides more control of the output. [CodeHilite Extension]: extensions/code_hilite.html [linenums]: extensions/code_hilite.html#usage * Both `safe_mode` and the associated `html_replacement_text` keywords will be deprecated in version 2.6 and will raise a **`PendingDeprecationWarning`** in 2.5. The so-called "safe mode" was never actually "safe" which has resulted in many people having a false sense of security when using it. As an alternative, the developers of Python-Markdown recommend that any untrusted content be passed through an HTML sanitizer (like [Bleach]) after being converted to HTML by markdown. If your code previously looked like this: html = markdown.markdown(text, same_mode=True) Then it is recommended that you change your code to read something like this: import bleach html = bleach.clean(markdown.markdown(text)) If you are not interested in sanitizing untrusted text, but simply desire to escape raw HTML, then that can be accomplished through an extension which removes HTML parsing: from markdown.extensions import Extension class EscapeHtml(Extension): def extendMarkdown(self, md, md_globals): del md.preprocessors['html_block'] del md.inlinePatterns['html'] html = markdown.markdown(text, extensions=[EscapeHtml()]) As the HTML would not be parsed with the above Extension, then the serializer will escape the raw HTML, which is exactly what happens now when `safe_mode="escape"`. [Bleach]: http://bleach.readthedocs.org/ * Positional arguments on the `markdown.Markdown()` are pending deprecation as are all except the `text` argument on the `markdown.markdown()` wrapper function. Only keyword arguments should be used. For example, if your code previously looked like this: html = markdown.markdown(text, ['extra']) Then it is recommended that you change it to read something like this: html = markdown.markdown(text, extensions=['extra']) !!! Note This change is being made as a result of deprecating `"safe_mode"` as the `safe_mode` argument was one of the positional arguments. When that argument is removed, the two arguments following it will no longer be at the correct position. It is recommended that you always use keywords when they are supported for this reason. * In previous versions of Python-Markdown, the built-in extensions received special status and did not require the full path to be provided. Additionally, third party extensions whose name started with `"mdx_"` received the same special treatment. This behavior will be deprecated in version 2.6 and will raise a **`PendingDeprecationWarning`** in 2.5. Ensure that you always use the full path to your extensions. For example, if you previously did the following: markdown.markdown(text, extensions=['extra']) You should change your code to the following: markdown.markdown(text, extensions=['markdown.extensions.extra']) The same applies to the command line: $ python -m markdown -x markdown.extensions.extra input.txt See the [documentation](reference.html#extensions) for a full explanation of the current behavior. * The previously documented method of appending the extension configuration as a string to the extension name will be deprecated in Python-Markdown version 2.6 and will raise a **`PendingDeprecationWarning`** in 2.5. The [`extension_configs`](reference.html#extension_configs) keyword should be used instead. See the [documentation](reference.html#extension-configs) for a full explanation of the current behavior. What's New in Python-Markdown 2.5 --------------------------------- * The [Smarty Extension] has had a number of additional configuration settings added, which allows one to define their own substitutions to better support languages other than English. Thanks to [Martin Altmayer] for implementing this feature. [Smarty Extension]: extensions/smarty.html [Martin Altmayer]:https://github.com/MartinAltmayer * Named Extensions (strings passed to the [`extensions`][ex] keyword of `markdown.Markdown`) can now point to any module and/or Class on your PYTHONPATH. While dot notation was previously supported, a module could not be at the root of your PYTHONPATH. The name had to contain at least one dot (requiring it to be a sub-module). This restriction no longer exists. Additionally, a Class may be specified in the name. The class must be at the end of the name (which uses dot notation from PYTHONPATH) and be separated by a colon from the module. Therefore, if you were to import the class like this: from path.to.module import SomeExtensionClass Then the named extension would comprise this string: "path.to.module:SomeExtensionClass" This allows multiple extensions to be implemented within the same module and still accessible when the user is not able to import the extension directly (perhaps from a template filter or the command line). This also means that extension modules are no longer required to include the `makeExtension` function which returns an instance of the extension class. However, if the user does not specify the class name (she only provides `"path.to.module"`) the extension will fail to load without the `makeExtension` function included in the module. Extension authors will want to document carefully what is required to load their extensions. [ex]: reference.html#extensions * The Extension Configuration code has been refactored to make it a little easier for extension authors to work with configuration settings. As a result, the [`extension_configs`][ec] keyword now accepts a dictionary rather than requiring a list of tuples. A list of tuples is still supported so no one needs to change their existing code. This should also simplify the learning curve for new users. Extension authors are encouraged to review the new methods available on the `markdown.extnesions.Extension` class for handling configuration and adjust their code going forward. The included extensions provide a model for best practices. See the [API] documentation for a full explanation. [ec]: reference.html#extension_configs [API]: extensions/api.html#configsettings * The [Command Line Interface][cli] now accepts a `--extensions_config` (or `-c`) option which accepts a file name and passes the parsed content of a [YAML] or [JSON] file to the [`extension_configs`][ec] keyword of the `markdown.Markdown` class. The contents of the YAML or JSON must map to a Python Dictionary which matches the format required by the `extension_configs` keyword. Note that [PyYAML] is required to parse YAML files. [cli]: cli.html#using-extensions [YAML]: http://yaml.org/ [JSON]: http://json.org/ [PyYAML]: http://pyyaml.org/ * The [admonition extension][ae] is no longer considered "experimental." [ae]: extensions/admonition.html * There have been various refactors of the testing framework. While those changes will not directly effect end users, the code is being better tested which will benefit everyone. * Various bug fixes have been made. See the [commit log](https://github.com/waylan/Python-Markdown/commits/master) for a complete history of the changes. Python-Markdown 2.6 Release Notes ================================= We are pleased to release Python-Markdown 2.6 which adds a few new features and fixes various bugs. See the list of changes below for details. Python-Markdown version 2.6 supports Python versions 2.7, 3.2, 3.3, and 3.4 as well as PyPy. Backwards-incompatible Changes ------------------------------ ### `safe_mode` Deprecated Both `safe_mode` and the associated `html_replacement_text` keywords are deprecated in version 2.6 and will raise a **`DeprecationWarning`**. The `safe_mode` and `html_replacement_text` keywords will be ignored in version 2.7. The so-called "safe mode" was never actually "safe" which has resulted in many people having a false sense of security when using it. As an alternative, the developers of Python-Markdown recommend that any untrusted content be passed through an HTML sanitizer (like [Bleach]) after being converted to HTML by markdown. If your code previously looked like this: html = markdown.markdown(text, safe_mode=True) Then it is recommended that you change your code to read something like this: import bleach html = bleach.clean(markdown.markdown(text)) If you are not interested in sanitizing untrusted text, but simply desire to escape raw HTML, then that can be accomplished through an extension which removes HTML parsing: from markdown.extensions import Extension class EscapeHtml(Extension): def extendMarkdown(self, md, md_globals): del md.preprocessors['html_block'] del md.inlinePatterns['html'] html = markdown.markdown(text, extensions=[EscapeHtml()]) As the HTML would not be parsed with the above Extension, then the serializer will escape the raw HTML, which is exactly what happens now when `safe_mode="escape"`. [Bleach]: http://bleach.readthedocs.org/ ### Positional Arguments Deprecated Positional arguments on the `markdown.Markdown()` class are deprecated as are all except the `text` argument on the `markdown.markdown()` wrapper function. Using positional arguments will raise a **`DeprecationWarning`** in 2.6 and an error in version 2.7. Only keyword arguments should be used. For example, if your code previously looked like this: html = markdown.markdown(text, [SomeExtension()]) Then it is recommended that you change it to read something like this: html = markdown.markdown(text, extensions=[SomeExtension()]) !!! Note This change is being made as a result of deprecating `"safe_mode"` as the `safe_mode` argument was one of the positional arguments. When that argument is removed, the two arguments following it will no longer be at the correct position. It is recommended that you always use keywords when they are supported for this reason. ### "Shortened" Extension Names Deprecated In previous versions of Python-Markdown, the built-in extensions received special status and did not require the full path to be provided. Additionally, third party extensions whose name started with `"mdx_"` received the same special treatment. This behavior is deprecated and will raise a **`DeprecationWarning`** in version 2.6 and an error in 2.7. Ensure that you always use the full path to your extensions. For example, if you previously did the following: markdown.markdown(text, extensions=['extra']) You should change your code to the following: markdown.markdown(text, extensions=['markdown.extensions.extra']) The same applies to the command line: $ python -m markdown -x markdown.extensions.extra input.txt Similarly, if you have used a third party extension (for example `mdx_math`), previously you might have called it like this: markdown.markdown(text, extensions=['math']) As the `"mdx"` prefix will no longer be appended, you will need to change your code as follows (assuming the file `mdx_math.py` is installed at the root of your PYTHONPATH): markdown.markdown(text, extensions=['mdx_math']) Extension authors will want to update their documentation to reflect the new behavior. See the [documentation](reference.html#extensions) for a full explanation of the current behavior. ### Extension Configuration as Part of Extension Name Deprecated The previously documented method of appending the extension configuration options as a string to the extension name is deprecated and will raise a **`DeprecationWarning`** in version 2.6 and an error in 2.7. The [`extension_configs`](reference.html#extension_configs) keyword should be used instead. See the [documentation](reference.html#extension-configs) for a full explanation of the current behavior. ### HeaderId Extension Pending Deprecation The [HeaderId][hid] Extension is pending deprecation and will raise a **`PendingDeprecationWarning`** in version 2.6. The extension will be deprecated in version 2.7 and raise an error in version 2.8. Use the [Table of Contents][TOC] Extension instead, which offers most of the features of the HeaderId Extension and more (support for meta data is missing). Extension authors who have been using the `slugify` and `unique` functions defined in the HeaderId Extension should note that those functions are now defined in the Table of Contents extension and should adjust their import statements accordingly (`from markdown.extensions.toc import slugify, unique`). [hid]: extensions/header_id.html ### The `configs` Keyword is Deprecated Positional arguments and the `configs` keyword on the `markdown.extension.Extension` class (and its subclasses) are deprecated. Each individual configuration option should be passed to the class as a keyword/value pair. For example. one might have previously initiated an extension subclass like this: ext = SomeExtension(configs={'somekey': 'somevalue'}) That code should be updated to pass in the options directly: ext = SomeExtension(somekey='somevalue') Extension authors will want to note that this affects the `makeExtension` function as well. Previously it was common for the function to be defined as follows: def makeExtension(configs=None): return SomeExtension(configs=configs) Extension authors will want to update their code to the following instead: def makeExtension(**kwargs): return SomeExtension(**kwargs) Failing to do so will result in a **`DeprecationWarning`** and will raise an error in the next release. See the [Extension API][mext] documentation for more information. In the event that an `markdown.extension.Extension` subclass overrides the `__init__` method and implements its own configuration handling, then the above may not apply. However, it is recommended that the subclass still calls the parent `__init__` method to handle configuration options like so: class SomeExtension(markdown.extension.Extension): def __init__(**kwargs): # Do pre-config stuff here # Set config defaults self.config = { 'option1' : ['value1', 'description1'], 'option2' : ['value2', 'description2'] } # Set user defined configs super(MyExtension, self).__init__(**kwargs) # Do post-config stuff here Note the call to `super` to get the benefits of configuration handling from the parent class. See the [documentation][config] for more information. [config]: extensions/api.html#configsettings [mext]: extensions/api.html#makeextension What's New in Python-Markdown 2.6 --------------------------------- ### Official Support for PyPy Official support for [PyPy] has been added. While Python-Markdown has most likely worked on PyPy for some time, it is now officially supported and tested on PyPy. [PyPy]: http://pypy.org/ ### YAML Style Meta-Data The [Meta-Data] Extension now includes optional support for [YAML] style meta-data. By default, the YAML deliminators are recognized, however, the actual data is parsed as previously. This follows the syntax of [MultiMarkdown], which inspired this extension. <del>Alternatively, if the `yaml` option is set, then the data is parsed as YAML.</del> <ins>As the `yaml` option was buggy, it was removed in 2.6.1. It is suggested that a third party extension be used if you want true YAML support. See [Issue #390][#390] for a full explanation.</ins> [MultiMarkdown]: http://fletcherpenney.net/MultiMarkdown_Syntax_Guide#metadata [Meta-Data]: extensions/meta_data.html [YAML]: http://yaml.org/ [#390]: https://github.com/waylan/Python-Markdown/issues/390 ### Table of Contents Extension Refactored The [Table of Contents][TOC] Extension has been refactored and some new features have been added. See the documentation for a full explanation of each feature listed below: * The extension now assigns the Table of Contents to the `toc` attribute of the Markdown class regardless of whether a "marker" was found in the document. Third party frameworks no longer need to insert a "marker," run the document through Markdown, then extract the Table of Contents from the document. * The Table of Contents Extension is now a "registered extension." Therefore, when the `reset` method of the Markdown class is called, the `toc` attribute on the Markdown class is cleared (set to an empty string). * When the `marker` configuration option is set to an empty string, the parser completely skips the process of searching the document for markers. This should save parsing time when the Table of Contents Extension is being used only to assign ids to headers. * A `separator` configuration option has been added allowing users to override the separator character used by the slugify function. * A `baselevel` configuration option has been added allowing users to set the base level of headers in their documents (h1-h6). This allows the header levels to be automatically adjusted to fit within the hierarchy of an HTML template. [TOC]: extensions/toc.html ### Pygments can now be disabled The [CodeHilite][ch] Extension has gained a new configuration option: `use_pygments`. The option is `True` by default, however, it allows one to turn off Pygments code highlighting (set to `False`) while preserving the language detection features of the extension. Note that Pygments language guessing is not used as that would 'use Pygments'. If a language is defined for a code block, it will be assigned to the `<code>` tag as a class in the manner suggested by the [HTML5 spec][spec] (alternate output will not be entertained) and could potentially be used by a JavaScript library in the browser to highlight the code block. [ch]: extensions/code_hilite.html [spec]: http://www.w3.org/TR/html5/text-level-semantics.html#the-code-element ### Miscellaneous Test coverage has been improved including running [flake8]. While those changes will not directly effect end users, the code is being better tested which will benefit everyone. [flake8]: http://flake8.readthedocs.org/en/latest/ Various bug fixes have been made. See the [commit log](https://github.com/waylan/Python-Markdown/commits/master) for a complete history of the changes.
2014-08-26distutils package, register egg file.obache2-4/+5
2013-02-19Update to 2.2.1ryoon3-21/+31
* Fix MASTER_SITES, sf.net no longer has distfile. * Fix HOMEPAGE. Changelog: * Change command name to markdown_py from markdown. * Drop python 2.3 and 2.4 support. * Many bugfixes.
2012-10-25Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.asau1-3/+1
2012-10-04Bump revision for packages with changed CONFLICTS (PYTHON_SELF_CONFLICT)cheusov1-1/+2
2012-10-03CONFLICTS between python modulescheusov1-1/+2
2011-04-08Changes 2.0.3:adam3-20/+94
Bug-fix release. We are happy to release Python-Markdown 2.0, which has been over a year in the making. We have rewritten significant portions of the code, dramatically extending the extension API, increased performance, and added numerous extensions to the distribution (including an extension that mimics PHP Markdown Extra), all while maintaining backward compatibility with the end user API in version 1.7.
2006-10-31Import py-markdown-1.6a. From DESCR:joerg4-0/+35
Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML). This package provides a Python implementation.