This file is indexed.

/usr/share/doc/python-markdown-doc/docs/release-2.5.html is in python-markdown-doc 2.6.9-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Release Notes for v2.5 &#8212; Python Markdown</title>
<link rel="stylesheet" href="default.css" type="text/css">
</head>
<body>

<div class="related">
  <h3>Navigation</h3>
  <ul>
    <li class="right" style="margin-right: 10px">
      <a href="siteindex.html" title="General Index">index</a></li>
    <li class="right">
      <a href="release-2.4.html" title="Release Notes for v2.4"
         accesskey="N">next</a> |</li>
    <li class="right">
      <a href="release-2.6.html" title="Release Notes for v2.6"
         accesskey="P">previous</a> |</li>
    <li><img src="py.png" alt=""
             style="vertical-align: middle; margin-top: -1px"/></li>
    <li><a href="index.html">Python Markdown v2.6.9 documentation</a> &raquo;</li>
    <li><a href="release-2.5.html">Release Notes for v2.5</a> &raquo;</li>
  </ul>
</div> <!-- .related -->

<div class="document">
  <div class="documentwrapper">
    <div class="bodywrapper">
      <div class="body">
<h1 id="python-markdown-25-release-notes">Python-Markdown 2.5 Release Notes<a class="headerlink" href="#python-markdown-25-release-notes" title="Permanent link">&para;</a></h1>
<p>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.</p>
<p>Python-Markdown version 2.5 supports Python versions 2.7, 3.2, 3.3, and 3.4.</p>
<h2 id="backwards-incompatible-changes">Backwards-incompatible Changes<a class="headerlink" href="#backwards-incompatible-changes" title="Permanent link">&para;</a></h2>
<ul>
<li>
<p>Python-Markdown no longer supports Python version 2.6. You must be using Python 
  versions 2.7, 3.2, 3.3, or 3.4.</p>
</li>
<li>
<p>The <code>force_linenos</code> configuration key on the <a href="extensions/code_hilite.html">CodeHilite Extension</a> has been <strong>deprecated</strong>
  and will raise a <code>KeyError</code> if provided. In the previous release (2.4), it was 
  issuing a <code>DeprecationWarning</code>. The <a href="extensions/code_hilite.html#usage"><code>linenums</code></a> keyword should be used 
  instead, which provides more control of the output.</p>
</li>
<li>
<p>Both <code>safe_mode</code> and the associated <code>html_replacement_text</code> keywords will be deprecated 
  in version 2.6 and will raise a <strong><code>PendingDeprecationWarning</code></strong> in 2.5. The so-called
  &ldquo;safe mode&rdquo; was never actually &ldquo;safe&rdquo; 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 <a href="https://bleach.readthedocs.io/">Bleach</a>)
  after being converted to HTML by markdown.</p>
<p>If your code previously looked like this:</p>
<pre><code>html = markdown.markdown(text, same_mode=True)
</code></pre>
<p>Then it is recommended that you change your code to read something like this:</p>
<pre><code>import bleach
html = bleach.clean(markdown.markdown(text))
</code></pre>
<p>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:</p>
<pre><code>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()])
</code></pre>
<p>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 <code>safe_mode="escape"</code>.</p>
</li>
<li>
<p>Positional arguments on the <code>markdown.Markdown()</code> are pending deprecation as are
  all except the <code>text</code> argument on the <code>markdown.markdown()</code> wrapper function.
  Only keyword arguments should be used. For example, if your code previously
  looked like this:</p>
<pre><code> html = markdown.markdown(text, ['extra'])
</code></pre>
<p>Then it is recommended that you change it to read something like this:</p>
<pre><code>html = markdown.markdown(text, extensions=['extra'])
</code></pre>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This change is being made as a result of deprecating <code>"safe_mode"</code> as the 
<code>safe_mode</code> 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.</p>
</div>
</li>
<li>
<p>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 <code>"mdx_"</code> received the same 
  special treatment. This behavior will be deprecated in version 2.6 and will
  raise a <strong><code>PendingDeprecationWarning</code></strong> in 2.5. Ensure that you always use the full 
  path to your extensions. For example, if you previously did the following:</p>
<pre><code>markdown.markdown(text, extensions=['extra'])
</code></pre>
<p>You should change your code to the following:</p>
<pre><code>markdown.markdown(text, extensions=['markdown.extensions.extra'])
</code></pre>
<p>The same applies to the command line:</p>
<pre><code>$ python -m markdown -x markdown.extensions.extra input.txt
</code></pre>
<p>See the <a href="reference.html#extensions">documentation</a> for a full explanation
of the current behavior.</p>
</li>
<li>
<p>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 <strong><code>PendingDeprecationWarning</code></strong> in 2.5. The 
  <a href="reference.html#extension_configs"><code>extension_configs</code></a> keyword should 
  be used instead. See the <a href="reference.html#extension-configs">documentation</a> 
  for a full explanation of the current behavior.</p>
</li>
</ul>
<h2 id="whats-new-in-python-markdown-25">What&rsquo;s New in Python-Markdown 2.5<a class="headerlink" href="#whats-new-in-python-markdown-25" title="Permanent link">&para;</a></h2>
<ul>
<li>
<p>The <a href="extensions/smarty.html">Smarty Extension</a> 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 <a href="https://github.com/MartinAltmayer">Martin Altmayer</a> for implementing this 
    feature.</p>
</li>
<li>
<p>Named Extensions (strings passed to the <a href="reference.html#extensions"><code>extensions</code></a> keyword of 
    <code>markdown.Markdown</code>) 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. </p>
<p>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. </p>
<p>Therefore, if you were to import the class like this:</p>
<pre><code>from path.to.module import SomeExtensionClass
</code></pre>
<p>Then the named extension would comprise this string:</p>
<pre><code>"path.to.module:SomeExtensionClass"
</code></pre>
<p>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).</p>
<p>This also means that extension modules are no longer required to include the 
<code>makeExtension</code> function which returns an instance of the extension class. However, 
if the user does not specify the class name (she only provides <code>"path.to.module"</code>)
the extension will fail to load without the <code>makeExtension</code> function included in
the module. Extension authors will want to document carefully what is required to
load their extensions.</p>
</li>
<li>
<p>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 
    <a href="reference.html#extension_configs"><code>extension_configs</code></a> 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.</p>
<p>Extension authors are encouraged to review the new methods available on the 
<code>markdown.extnesions.Extension</code> class for handling configuration and adjust their
code going forward. The included extensions provide a model for best practices.
See the <a href="extensions/api.html#configsettings">API</a> documentation for a full explanation.</p>
</li>
<li>
<p>The <a href="cli.html#using-extensions">Command Line Interface</a> now accepts a <code>--extensions_config</code> (or <code>-c</code>) 
    option which accepts a file name and passes the parsed content of a <a href="http://yaml.org/">YAML</a> or 
    <a href="http://json.org/">JSON</a>   file to the <a href="reference.html#extension_configs"><code>extension_configs</code></a> keyword of the <code>markdown.Markdown</code>
    class. The contents of the YAML or JSON must map to a Python Dictionary which 
    matches the format required by the <code>extension_configs</code> keyword. Note that 
    <a href="http://pyyaml.org/">PyYAML</a> is required to parse YAML files.</p>
</li>
<li>
<p>The <a href="extensions/admonition.html">admonition extension</a> is no longer considered &ldquo;experimental.&rdquo;</p>
</li>
<li>
<p>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.</p>
</li>
<li>
<p>Various bug fixes have been made.  See the
    <a href="https://github.com/Python-Markdown/markdown/commits/master">commit log</a>
    for a complete history of the changes.</p>
</li>
</ul>
      </div> <!-- .body -->
    </div> <!-- .bodywrapper -->
  </div> <!-- .documentwrapper -->

  <div class="sphinxsidebar">
    <div class="sphinxsidebarwrapper">
    <h3>Table Of Contents</h3>
    <div class="toc">
<ul>
<li><a href="#python-markdown-25-release-notes">Python-Markdown 2.5 Release Notes</a><ul>
<li><a href="#backwards-incompatible-changes">Backwards-incompatible Changes</a></li>
<li><a href="#whats-new-in-python-markdown-25">What's New in Python-Markdown 2.5</a></li>
</ul>
</li>
</ul>
</div>


    <h4>Previous topic</h4>
      <p class="topless"><a href="release-2.6.html"
         title="previous chapter">Release Notes for v2.6</a></p>
    <h4>Next topic</h4>
      <p class="topless"><a href="release-2.4.html"
         title="next chapter">Release Notes for v2.4</a></p>
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="https://github.com/Python-Markdown/markdown/issues"
             >Report a Bug</a></li>
      <li><a href="release-2.5.txt"
             rel="nofollow">Show Source</a></li>
    </ul>
    </div> <!-- .sphinxsidebarwrapper -->
  </div> <!-- .sphinxsidebar -->

  <div class="clearer"></div>
</div> <!-- .document -->

<div class="related">
  <h3>Navigation</h3>
  <ul>
    <li class="right" style="margin-right: 10px">
      <a href="siteindex.html" title="General Index">index</a></li>
    <li class="right">
      <a href="release-2.4.html" title="Release Notes for v2.4"
         accesskey="N">next</a> |</li>
    <li class="right">
      <a href="release-2.6.html" title="Release Notes for v2.6"
         accesskey="P">previous</a> |</li>
    <li><img src="py.png" alt=""
             style="vertical-align: middle; margin-top: -1px"/></li>
    <li><a href="index.html">Python Markdown v2.6.9 documentation</a> &raquo;</li>
    <li><a href="release-2.5.html">Release Notes for v2.5</a> &raquo;</li>
  </ul>
</div> <!-- .related -->

<div class="footer">&copy; 2010-2012 Python Markdown Project</div>
</body>
</html>