Skip to content

Commit ada0d18

Browse files
committed
reduce more duplication
1 parent 10d8d12 commit ada0d18

File tree

1 file changed

+20
-33
lines changed

1 file changed

+20
-33
lines changed

sphinxcontrib/needs/api/need.py

Lines changed: 20 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -304,28 +304,16 @@ def run():
304304
# Template builds
305305
##############################
306306

307-
# template
307+
for template, content_type in [
308+
("template", "content"),
309+
("pre_template", "pre_content"),
310+
("post_template", "post_content"),
311+
]:
312+
if needs_info[template]:
313+
needs_info[content_type] = _prepare_template(app, needs_info, template)
314+
308315
if needs_info["template"]:
309-
new_content = _prepare_template(app, needs_info, "template")
310-
# Overwrite current content
311-
content = new_content
312-
needs_info["content"] = new_content
313-
else:
314-
new_content = None
315-
316-
# pre_template
317-
if needs_info["pre_template"]:
318-
pre_content = _prepare_template(app, needs_info, "pre_template")
319-
needs_info["pre_content"] = pre_content
320-
else:
321-
pre_content = None
322-
323-
# post_template
324-
if needs_info["post_template"]:
325-
post_content = _prepare_template(app, needs_info, "post_template")
326-
needs_info["post_content"] = post_content
327-
else:
328-
post_content = None
316+
content = needs_info["content"]
329317

330318
if needs_info["hide"]:
331319
return [target_node]
@@ -353,18 +341,17 @@ def run():
353341

354342
needs_info["content_node"] = node_need
355343

356-
return_nodes = [target_node] + [node_need]
357-
if pre_content:
358-
node_need_pre_content = _render_template(pre_content, docname, lineno, state)
359-
pre_container = nodes.container()
360-
pre_container += node_need_pre_content.children
361-
return_nodes = [pre_container] + return_nodes
344+
def add_container(node_list, content_type: str):
345+
if content_type in needs_info:
346+
content = _render_template(needs_info[content_type], docname, lineno, state)
347+
container = nodes.container()
348+
container += content.children
349+
node_list.append(container)
362350

363-
if post_content:
364-
node_need_post_content = _render_template(post_content, docname, lineno, state)
365-
post_container = nodes.container()
366-
post_container += node_need_post_content.children
367-
return_nodes = return_nodes + [post_container]
351+
return_nodes = []
352+
add_container(return_nodes, "pre_content")
353+
return_nodes.extend([target_node, node_need])
354+
add_container(return_nodes, "post_content")
368355

369356
return return_nodes
370357

@@ -416,7 +403,7 @@ def _prepare_template(app: Sphinx, needs_info, template_key) -> str:
416403
)
417404

418405
with open(template_path, "r") as template_file:
419-
template_content = "".join(template_file.readlines())
406+
template_content = template_file.read()
420407
template_obj = Template(template_content)
421408
new_content = template_obj.render(**needs_info)
422409

0 commit comments

Comments
 (0)