MkDocs插件,可以从文档网站生成manpage。
项目描述
MkDocs Manpage
MkDocs插件,可以从文档网站生成manpage。
需求
Pandoc必须安装,并作为pandoc
可用。
安装
使用pip
pip install mkdocs-manpage[preprocess]
使用pipx
python3.8 -m pip install --user pipx
pipx install mkdocs-manpage[preprocess]
用法
# mkdocs.yml
plugins:
- manpage:
pages:
- title: My Project # defaults to site name
output: share/man/man1/my-project.1
inputs:
- index.md
- usage.md
- title: my-project API
header: Python Library APIs # defaults to common header for section 3 (see `man man`)
output: share/man/man3/my_project.3
inputs:
- reference/my_project/*.md
使用环境变量启用/禁用插件
# mkdocs.yml
plugins:
- manpage:
enabled: !ENV [MANPAGE, false]
然后设置环境变量并运行MkDocs
MANPAGE=true mkdocs build
预处理HTML
此插件通过将所有选定的HTML页面连接成一个文件,然后使用Pandoc将其转换为manpage。
完整转换后,最终的manpage可能看起来不太美观。例如,图像和SVG将被渲染为长字符串的数据和/或URI。因此,此插件允许用户预处理HTML,在将整个内容转换为manpage之前删除不需要的HTML元素。
首先,您必须确保安装了preprocess
扩展
pip install mkdocs-manpage[preprocess]
要预处理HTML,我们使用BeautifulSoup。用户必须编写自己的preprocess
函数来修改BeautifulSoup返回的soup
from bs4 import BeautifulSoup, Tag
def to_remove(tag: Tag) -> bool:
# remove images and SVGs
if tag.name in {"img", "svg"}:
return True
# remove links containing images or SVGs
if tag.name == "a" and tag.img and to_remove(tag.img):
return True
# remove permalinks
if tag.name == "a" and "headerlink" in tag.get("class", ()):
return True
return False
def preprocess(soup: BeautifulSoup, output: str) -> None:
for element in soup.find_all(to_remove):
element.decompose()
然后,指示插件使用此模块及其 preprocess
函数
plugins:
- manpage:
preprocess: scripts/preprocess.py
参阅 [BeautifulSoup
][bs4.BeautifulSoup] 和 [Tag
][bs4.Tag] 的文档,了解可用的方法以正确选择要删除的元素。
为了改进最终的手册页面,HTML处理的替代方法是禁用其他插件/扩展的某些选项
-
通过
mkdocstrings
没有源代码- mkdocstrings: handlers: python: options: show_source: !ENV [SHOW_SOURCE, true]
-
通过
toc
没有永久链接markdown_extensions: - toc: permalink: !ENV [PERMALINK, true]
然后在构建文档和生成手册页面之前设置这些环境变量
export MANPAGE=true
export PERMALINK=false
export SHOW_SOURCE=false
mkdocs build
项目详情
关闭
mkdocs_manpage-2.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bb89858f2e2c2ca5dee9ba2af68bfe46d87108a64be823b8238cb60c9e59771d |
|
MD5 | 7a47b57a090d3c9facd5310dc3e94ee6 |
|
BLAKE2b-256 | 53efe9884d150309186df843ee3796c41b8c22ce71c05ee2c6d4eee342913238 |
关闭
mkdocs_manpage-2.0.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 407fa6d99e6f6f00f8664a104b85886d6223106b14fcd19dd6f736cf5811a367 |
|
MD5 | 7324da879ac803786e9710ba2bf1bd79 |
|
BLAKE2b-256 | e94e9157a453d64f4ee2d1660758d523ca217268d501e87f96cc88b7ec8de57f |