[docs] minor code refactoring

This commit is contained in:
Loïc Vital 2022-10-13 12:12:26 +02:00
parent cec2c79d6a
commit 652113443d
4 changed files with 25 additions and 25 deletions

View file

View file

@ -1,8 +1,7 @@
import os import os
from docutils.nodes import SparseNodeVisitor from docutils.nodes import SparseNodeVisitor
from docutils.parsers.rst import Directive from docutils.parsers.rst import Directive
from myst_parser.docutils_ import Parser from utils import md_to_docutils, get_link_key
from myst_parser.mdit_to_docutils.base import make_document
# Python2 compatibility # Python2 compatibility
try: try:
@ -13,16 +12,8 @@ except NameError:
class Relinker(SparseNodeVisitor): class Relinker(SparseNodeVisitor):
@staticmethod
def get_link_key(node):
link_keys = ['uri', 'refuri', 'refname']
for key in link_keys:
if key in node.attributes.keys():
return key
return None
def relink(self, node, base_dir): def relink(self, node, base_dir):
key = Relinker.get_link_key(node) key = get_link_key(node)
if key is None: if key is None:
return return
link = node.attributes[key] link = node.attributes[key]
@ -45,10 +36,8 @@ class FetchMd(Directive):
result = [] result = []
try: try:
with open(path) as file: with open(path) as file:
parser = Parser()
text = file.read() text = file.read()
doc = make_document(parser_cls=Parser) doc = md_to_docutils(text)
parser.parse(text, doc)
relinker = Relinker(doc) relinker = Relinker(doc)
doc.walk(relinker) doc.walk(relinker)
result.append(doc[0]) result.append(doc[0])

View file

@ -1,7 +1,6 @@
from docutils import nodes from docutils import nodes
from docutils.parsers.rst import Directive from docutils.parsers.rst import Directive
from myst_parser.docutils_ import Parser from utils import md_to_docutils
from myst_parser.mdit_to_docutils.base import make_document
import importlib import importlib
from meshroom.core import desc from meshroom.core import desc
@ -25,28 +24,23 @@ class MeshroomDoc(Directive):
# Class inherits desc.Node # Class inherits desc.Node
if issubclass(node_class, desc.Node): if issubclass(node_class, desc.Node):
node = node_class() node = node_class()
parser = Parser()
# Category # Category
doc = make_document(parser_cls=Parser) doc = md_to_docutils('**Category**: {}'.format(node.category))
parser.parse('**Category**: {}'.format(node.category), doc)
result.extend(doc.children) result.extend(doc.children)
# Documentation # Documentation
doc = make_document(parser_cls=Parser) doc = md_to_docutils(node.documentation)
parser.parse(node.documentation, doc)
result.extend(doc.children) result.extend(doc.children)
# Inputs # Inputs
text_inputs = '**Inputs**: \n' text_inputs = '**Inputs**: \n'
for attr in node.inputs: for attr in node.inputs:
text_inputs += '- {} ({})\n'.format(attr._name, attr.__class__.__name__) text_inputs += '- {} ({})\n'.format(attr._name, attr.__class__.__name__)
doc = make_document(parser_cls=Parser) doc = md_to_docutils(text_inputs)
parser.parse(text_inputs, doc)
result.extend(doc.children) result.extend(doc.children)
# Outputs # Outputs
text_outputs = '**Outputs**: \n' text_outputs = '**Outputs**: \n'
for attr in node.outputs: for attr in node.outputs:
text_outputs += '- {} ({})\n'.format(attr._name, attr.__class__.__name__) text_outputs += '- {} ({})\n'.format(attr._name, attr.__class__.__name__)
doc = make_document(parser_cls=Parser) doc = md_to_docutils(text_outputs)
parser.parse(text_outputs, doc)
result.extend(doc.children) result.extend(doc.children)
return result return result

17
docs/source/_ext/utils.py Normal file
View file

@ -0,0 +1,17 @@
from myst_parser.docutils_ import Parser
from myst_parser.mdit_to_docutils.base import make_document
def md_to_docutils(text):
parser = Parser()
doc = make_document(parser_cls=Parser)
parser.parse(text, doc)
return doc
def get_link_key(node):
link_keys = ['uri', 'refuri', 'refname']
for key in link_keys:
if key in node.attributes.keys():
return key
return None