mirror of
https://github.com/lilydjwg/nvchecker.git
synced 2025-03-10 06:14:02 +00:00
docs: add a script to convert usage.rst to a man page
[skip ci]
This commit is contained in:
parent
c251af817a
commit
ccae7d8fcf
1 changed files with 67 additions and 0 deletions
67
docs/myrst2man.py
Executable file
67
docs/myrst2man.py
Executable file
|
@ -0,0 +1,67 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import time
|
||||||
|
import locale
|
||||||
|
import sys
|
||||||
|
try:
|
||||||
|
locale.setlocale(locale.LC_ALL, '')
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
sys.path.insert(0, '..')
|
||||||
|
import nvchecker
|
||||||
|
|
||||||
|
from docutils.core import publish_cmdline, default_description
|
||||||
|
from docutils import nodes
|
||||||
|
from docutils.writers import manpage
|
||||||
|
from docutils.parsers.rst import roles
|
||||||
|
|
||||||
|
def ref_role(
|
||||||
|
role, rawtext, text, lineno, inliner,
|
||||||
|
options={}, content=[],
|
||||||
|
):
|
||||||
|
node = nodes.reference(rawtext, text.title(), **options)
|
||||||
|
return [node], []
|
||||||
|
|
||||||
|
def doc_role(
|
||||||
|
role, rawtext, text, lineno, inliner,
|
||||||
|
options={}, content=[],
|
||||||
|
):
|
||||||
|
node = nodes.reference(rawtext, text, **options)
|
||||||
|
return [node], []
|
||||||
|
|
||||||
|
roles.register_local_role('ref', ref_role)
|
||||||
|
roles.register_local_role('doc', doc_role)
|
||||||
|
|
||||||
|
class MyTranslator(manpage.Translator):
|
||||||
|
def visit_image(self, node):
|
||||||
|
raise nodes.SkipNode
|
||||||
|
|
||||||
|
def visit_topic(self, node):
|
||||||
|
self.body.append('\n')
|
||||||
|
raise nodes.SkipNode
|
||||||
|
|
||||||
|
def visit_title(self, node):
|
||||||
|
try:
|
||||||
|
super().visit_title(node)
|
||||||
|
except nodes.SkipNode:
|
||||||
|
if self.section_level == 0:
|
||||||
|
self._docinfo['title'] = 'nvchecker'
|
||||||
|
self._docinfo['subtitle'] = 'New version checker for software releases'
|
||||||
|
self._docinfo['title_upper'] = 'nvchecker'.upper()
|
||||||
|
self._docinfo['manual_section'] = '1'
|
||||||
|
self._docinfo['date'] = time.strftime('%Y-%m-%d')
|
||||||
|
self._docinfo['version'] = nvchecker.__version__
|
||||||
|
raise
|
||||||
|
|
||||||
|
class MyWriter(manpage.Writer):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self.translator_class = MyTranslator
|
||||||
|
|
||||||
|
def main():
|
||||||
|
description = ("Generates plain unix manual documents. " + default_description)
|
||||||
|
publish_cmdline(writer=MyWriter(), description=description)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
Loading…
Add table
Reference in a new issue