88from markupsafe import Markup
99
1010from strictdoc import __version__
11+ from strictdoc .backend .sdoc .constants import SDocMarkup
1112from strictdoc .backend .sdoc .models .anchor import Anchor
1213from strictdoc .backend .sdoc .models .document import SDocDocument
1314from strictdoc .backend .sdoc .models .document_view import NullViewElement
@@ -71,6 +72,7 @@ def __init__(
7172 project_config : ProjectConfig ,
7273 link_renderer : LinkRenderer ,
7374 markup_renderer : MarkupRenderer ,
75+ text_renderer : MarkupRenderer ,
7476 source_file : SourceFile ,
7577 pygments_styles : Markup ,
7678 pygmented_source_file_lines : List [SourceLineEntry ],
@@ -81,6 +83,7 @@ def __init__(
8183 self .project_config : ProjectConfig = project_config
8284 self .link_renderer : LinkRenderer = link_renderer
8385 self .markup_renderer : MarkupRenderer = markup_renderer
86+ self .text_renderer : MarkupRenderer = text_renderer
8487 self .source_file : SourceFile = source_file
8588 self .pygments_styles : Markup = pygments_styles
8689 self .pygmented_source_file_lines : List [SourceLineEntry ] = (
@@ -144,20 +147,21 @@ def render_aside_requirement(
144147 )
145148
146149 def render_node_statement (self , node : SDocNode ) -> Markup :
147- return self .markup_renderer .render_node_statement (
148- DocumentType .DOCUMENT , node
149- )
150+ renderer = self .get_node_renderer (node )
151+ return renderer .render_node_statement (DocumentType .DOCUMENT , node )
150152
151153 def render_node_rationale (self , node : SDocNode ) -> Markup :
152- return self .markup_renderer .render_node_rationale (
153- DocumentType .DOCUMENT , node
154- )
154+ renderer = self .get_node_renderer (node )
155+ return renderer .render_node_rationale (DocumentType .DOCUMENT , node )
155156
156157 def render_node_field (self , node_field : SDocNodeField ) -> Markup :
157158 assert isinstance (node_field , SDocNodeField ), node_field
158- return self .markup_renderer .render_node_field (
159- DocumentType .DOCUMENT , node_field
159+ renderer = (
160+ self .get_node_renderer (node_field .parent )
161+ if node_field .parent is not None
162+ else self .markup_renderer
160163 )
164+ return renderer .render_node_field (DocumentType .DOCUMENT , node_field )
161165
162166 def render_url (self , url : str ) -> str :
163167 return self .link_renderer .render_url (url )
@@ -193,6 +197,13 @@ def render_issues(
193197 """
194198 return ""
195199
200+ def get_node_renderer (self , node : SDocNode ) -> MarkupRenderer :
201+ parent_doc = node .get_parent_or_including_document ()
202+ parent_doc_config = parent_doc .config
203+ if parent_doc_config .markup is SDocMarkup .RST :
204+ return self .markup_renderer
205+ return self .text_renderer
206+
196207 def get_source_file_path (self ) -> str :
197208 return self .source_file .in_doctree_source_file_rel_path_posix
198209
0 commit comments