Generate permalinks on header with python markdown library
I was wondering how to generate per开发者_开发问答malinks from the following markup, using python markdown library:
A header
========
A paragraph
The desired output would be something like
<span id="a-header"></span>
<h1>
A header
<a class="headerlink" title="Permalink to this headline" href="#a-header">¶</a>
</h1>
<p>A paragraph</p>
Answer:
Thanks @BlaXpirit (see answer)
Use headerid python markdown extension and input the following:
# A header [¶](#a-header) {#a-header}
A paragraph
This generates the following output:
<h1 id="a-header">
A header
<a href="#a-header">¶</a>
</h1>
Then use some css styling to get the common output, something like :
h1 a{visibility:hidden;}
h1:hover a{visibility:visible;}
Markdown in Python has an extension that does this.
It also lets you specify an id you like for the header, like this:
A header {#a-header} ========
You can generate permalinks with the Table of Contents extension for Python-Markdown. The Python-Markdown documentation notes that when possible it is preferable to pass an instance of an extension rather than a string.
import markdown
from markdown.extensions.toc import TocExtension
markup = """
A header
========
A paragraph
"""
html = markdown.markdown(markup, extensions=[TocExtension(permalink=True)])
print(html)
configs = {'toc': {'permalink': True}}
html = markdown.markdown(markup, extensions=['toc'], extension_configs=configs)
print(html)
An answer to a different question shows how you can change the paragraph symbol by setting the permalink option to a string.
Pandoc associates a unique identifier to each header based on the rule you imagined: the id is the downcase heading, spaces replace by hyphens. This is used to generate optional tables of contents for HTML and LaTeX and other output formats. In HTML it automatically makes linkable ids and in particular can be used for internal cross references; the markdown syntax is:
See the section on [header identifiers](#header-identifiers-in-html).
as we read in the user's guide at http://johnmacfarlane.net/pandoc/README.html#header-identifiers-in-html
精彩评论