一个基本的MediaWiki标记解析器。
项目描述
摘要
按照MediaWiki语法格式化文本。
用法
从Wiki返回HTML
from wikimarkup.parser import Parser parser = Parser() html = parser.parse(text[, show_toc=True])
返回没有某些“令人讨厌”的元素(待定:定义令人讨厌)的HTML,例如标题
from wikimarkup.parser import parselite parselite(text)
添加内部链接
您可以使用registerInternalLinkHook方法支持[[内部链接]]。默认情况下没有处理内部链接。如果没有钩子处理链接,则链接将保持不变地出现在输出中。内部链接可能有一个namespace:前缀。钩子按命名空间注册,对于无前缀的链接使用‘None’
def internalLinkHook(parser_env, namespace, body):
...
return replacement
parser.registerInternalLinkHook(None, internalLinkHook) # called for [[link]]
parser.registerInternalLinkHook('Wikipedia', hook) # called for [[Wikipedia: Link]]
parser.registerInternalLinkHook(':en', hook) # called for [[:en:link]
parser.registerInternalLinkHook(':', hook) # called for [[:any:link]]
parser.registerInternalLinkHook('*', hook) # called for [[anything]]
示例
from wikimarkup.parser import Parser
def wikipediaLinkHook(parser_env, namespace, body):
# namespace is going to be 'Wikipedia'
(article, pipe, text) = body.partition('|')
href = article.strip().capitalize().replace(' ', '_')
text = (text or article).strip()
return '<a href="http://en.wikipedia.org/wiki/%s">%s</a>' % (href, text)
parser = Parser()
parser.registerInternalLinkHook('Wikipedia', wikipediaLinkHook)
print parser.parse("[[Wikipedia:public transport|public transportation]]")
print parser.parse("[[Wikipedia: bus]]")
import settings
from pytils.translit import slugify
from blog.models import Post
def byteflowLinkHook(parser_env, namespace, body):
(article, pipe, text) = body.partition('|')
slug = slugify(article.strip())
text = (text or article).strip()
try:
post = Post.objects.get(slug=slug)
href = post.get_absolute_url()
except Post.DoesNotExist:
href = '#'
return '<a href="%s">%s</a>' % (href, text)
parser.registerInternalLinkHook(None, byteflowLinkHook)
parser.parse("[[Blog post title]]")
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解安装软件包的更多信息。
源代码分发
py-wikimarkup-2.3.0.tar.gz (34.6 kB 查看哈希值)
构建分发
py_wikimarkup-2.3.0-py3-none-any.whl (34.4 kB 查看哈希值)
关闭
py-wikimarkup-2.3.0.tar.gz的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 7081ab990afb95bf9d55b762a3db6f779838844a8de0bf8d2589443a6e378e1c |
|
| MD5 | 4313b4dadda1f3b144d608222cb66c9f |
|
| BLAKE2b-256 | 314a6ea908153b339aafcf4dd25a3a391c0d23efb39f2d21748725f8f2708e44 |
关闭
py_wikimarkup-2.3.0-py3-none-any.whl的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 90060fbdfda0e2c611d04fe963be4a9e894f12cb28a21d2d515fe504925fc55b |
|
| MD5 | 9795ef91f325a8ddb077cfbb05caf995 |
|
| BLAKE2b-256 | 06cdc56a20509043b194aab20ac0e1f23bbfcfc284f105c779640c6f9b8f6dd4 |