import markdown html = markdown.markdown(some_text, extensions=['wikilinks'])
some_text
- разметка Markdown,extensions
- список расширений модуля.Расширение markdown.extensions.wikilinks
добавляет поддержку WikiLinks. В частности, любое слово [[в квадратных скобках]] преобразуется в ссылку.
Слово [[в квадратных скобках]] представляет собой любую комбинацию букв верхнего или нижнего регистра, цифр, дефисов, подчеркиваний и пробелов, заключенных в двойные скобки. Следовательно, разметка [[Bracketed]]
преобразуется в HTML:
<a href="/Bracketed/" class="wikilink">Bracketed</a>
Обратите внимание, что ссылкам WikiLink автоматически назначается class='wikilink'
, что упрощает стилизацию ссылок WikiLink, отличных от других ссылок на странице, если это необходимо.
Также обратите внимание, что когда используется пробел, он преобразуется в подчеркивание в ссылке, но остается как есть в метке. Возможно, это лучше всего проиллюстрирует пример:
# разметка [[Wiki Link]] # преобразуется в HTML <a href="/Wiki_Link/" class="wikilink">Wiki Link</a>
По умолчанию каждая ссылка указывает на корень документа текущего домена и закрывается косой чертой в конце.
Следующие параметры позволяют изменить поведение по умолчанию:
base_url
: строка для добавления в начало URL. По умолчанию: '/'
.end_url
: строка, добавляемая в конец URL-адреса. По умолчанию: '/'
.html_class
: класс CSS. Оставьте поле пустым. По умолчанию: wikilink
build_url
: вызываемый, форматирующий URL-адрес из его частей.Например, предположим, что ссылки всегда должны указывать на подкаталог /wiki/
и заканчиваться на .html
.
>>> import markdown >>> from markdown.extensions.wikilinks import WikiLinkExtension >>> html = markdown.markdown(text, ... extensions=[WikiLinkExtension(base_url='/wiki/', end_url='.html')] ... )
Этот код приведет к следующей ссылке для [[WikiLink]]
.
<a href="/wiki/WikiLink.html" class="wikilink">WikiLink</a>
Если надо просто изменить базу и/или конец URL-адреса, также можно передать вызываемый объект, который должен принимать три аргумента (label, base, end)
. Вызываемый объект должен полностью возвращать URL.
>>> def my_url_builder(label, base, end): ... # что то делаем с аргументами ... return url ... >>> html = markdown.markdown(text, ... extensions=[WikiLinkExtension(build_url=my_url_builder)], ... )
Также предоставляется возможность изменить или удалить атрибут класса.
>>> html = markdown.markdown(text, ... extensions=[WikiLinkExtension(html_class='myclass')] ... )
Это приведет к тому, что все WikiLink будут назначены классу myclass
.
<a href="/WikiLink/" class="myclass">WikiLink</a>