mirror of
https://github.com/torvalds/linux.git
synced 2024-11-06 03:51:48 +00:00
doc/sphinx: Stop touching state_machine internals
Instead of just forcefully inserting our kernel-doc input and letting the state machine stumble over it the recommended way is to create ViewList, parse that and then return the list of parsed nodes. Suggested by Jani. Cc: Jani Nikula <jani.nikula@intel.com> Cc: linux-doc@vger.kernel.org Cc: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
ebff7f929b
commit
16e161c8c6
@ -32,6 +32,7 @@ import subprocess
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
from docutils import nodes, statemachine
|
from docutils import nodes, statemachine
|
||||||
|
from docutils.statemachine import ViewList
|
||||||
from docutils.parsers.rst import directives
|
from docutils.parsers.rst import directives
|
||||||
from sphinx.util.compat import Directive
|
from sphinx.util.compat import Directive
|
||||||
|
|
||||||
@ -92,8 +93,14 @@ class KernelDocDirective(Directive):
|
|||||||
sys.stderr.write(err)
|
sys.stderr.write(err)
|
||||||
|
|
||||||
lines = statemachine.string2lines(out, tab_width, convert_whitespace=True)
|
lines = statemachine.string2lines(out, tab_width, convert_whitespace=True)
|
||||||
self.state_machine.insert_input(lines, source)
|
result = ViewList(lines, source)
|
||||||
return []
|
|
||||||
|
node = nodes.section()
|
||||||
|
node.document = self.state.document
|
||||||
|
self.state.nested_parse(result, self.content_offset, node)
|
||||||
|
|
||||||
|
return node.children
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
env.app.warn('kernel-doc \'%s\' processing failed with: %s' %
|
env.app.warn('kernel-doc \'%s\' processing failed with: %s' %
|
||||||
(" ".join(cmd), str(e)))
|
(" ".join(cmd), str(e)))
|
||||||
|
Loading…
Reference in New Issue
Block a user