Skip to content

Commit e75b6bc

Browse files
committed
Updated docs to use jinja template for component doc links
1 parent 9c61238 commit e75b6bc

File tree

3 files changed

+74
-93
lines changed

3 files changed

+74
-93
lines changed

docs/source/_templates/components.rst

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{% if current_project != 'the labscript suite' %}
2+
.. toctree::
3+
:maxdepth: 2
4+
:hidden:
5+
6+
The labscript suite <{{intersphinx_mapping['labscript-suite'][0]}}>
7+
8+
{% endif %}
9+
*labscript suite* components
10+
============================
11+
12+
The *labscript suite* is modular by design, and is comprised of:
13+
14+
.. list-table:: Python libraries
15+
:widths: 10 90
16+
:header-rows: 0
17+
18+
{% for prog, item in programs.items() if item.type == 'lib' %}
19+
* - .. image:: {{item.img}}
20+
:target: {{intersphinx_mapping['%s' | format(prog)][0]}}
21+
:class: labscript-suite-icon
22+
- |{{prog}}|_ --- {{item.desc}}
23+
{% endfor %}
24+
25+
.. list-table:: Graphical applications
26+
:widths: 10 90
27+
:header-rows: 0
28+
29+
{% for prog, item in programs.items() if item.type == 'gui' %}
30+
* - .. image:: {{item.img}}
31+
:target: {{intersphinx_mapping['%s' | format(prog)][0]}}
32+
:class: labscript-suite-icon
33+
- |{{prog}}|_ --- {{item.desc}}
34+
{% endfor %}
35+
36+
.. toctree::
37+
:maxdepth: 2
38+
:hidden:
39+
40+
{% for prog in programs|sort if prog != current_project %}
41+
{{prog}} <{{intersphinx_mapping['%s' | format(prog)][0]}}>
42+
{% endfor %}
43+
44+
{% for prog in programs %}
45+
.. |{{prog}}| replace:: **{{prog}}**
46+
.. _{{prog}}: {{intersphinx_mapping['%s' | format(prog)][0]}}
47+
{% endfor %}

docs/source/conf.py

Lines changed: 11 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from pathlib import Path
1515
from m2r import MdInclude
1616
from recommonmark.transform import AutoStructify
17+
from jinja2 import FileSystemLoader, Environment
1718

1819
# -- Project information (unique to each project) -------------------------------------
1920

@@ -187,59 +188,6 @@
187188
# Customize the html_theme
188189
html_theme_options = {'navigation_depth': 3}
189190

190-
# Template for generating the components.rst file
191-
# fmt:off
192-
components_rst_template = \
193-
"""
194-
{metapackage_toctree}
195-
196-
*labscript suite* components
197-
============================
198-
199-
The *labscript suite* is modular by design, and is comprised of:
200-
201-
.. list-table:: Python libraries
202-
:widths: 10 90
203-
:header-rows: 0
204-
205-
{lib}
206-
207-
.. list-table:: Graphical applications
208-
:widths: 10 90
209-
:header-rows: 0
210-
211-
{gui}
212-
213-
.. toctree::
214-
:maxdepth: 2
215-
:hidden:
216-
217-
{toctree_entires}
218-
219-
{rst_defs}
220-
"""
221-
222-
components_rst_table_template = \
223-
""" * - .. image:: {img}
224-
:target: {target}
225-
:class: labscript-suite-icon
226-
- |{prog}|_ --- {desc}
227-
"""
228-
229-
components_rst_link_template = \
230-
""".. |{prog}| replace:: **{prog}**
231-
.. _{prog}: {target}
232-
"""
233-
234-
components_rst_metapackage_template = \
235-
""".. toctree::
236-
:maxdepth: 2
237-
:hidden:
238-
239-
Metapackage documentation <{}>
240-
"""
241-
# fmt:on
242-
243191
# Use m2r only for mdinclude and recommonmark for everything else
244192
# https://github.com/readthedocs/recommonmark/issues/191#issuecomment-622369992
245193
def setup(app):
@@ -261,43 +209,14 @@ def setup(app):
261209

262210
# generate the components.rst file dynamically so it points to stable/latest
263211
# of subprojects correctly
264-
components_rst_table = {
265-
"lib": "",
266-
"gui": "",
267-
}
268-
components_rst_link = ""
269-
components_rst_toctree = ""
270-
components_rst_metapackage = ""
271-
if project != 'the labscript suite':
272-
components_rst_metapackage = components_rst_metapackage_template.format(
273-
intersphinx_mapping['labscript-suite'][0]
274-
)
275-
metapackage_img = img_path + "/labscript-suite-rectangular-transparent_138nx70n.svg"
276-
for ls_prog, data in labscript_suite_programs.items():
277-
components_rst_table[data['type']] += components_rst_table_template.format(
278-
prog=ls_prog,
279-
labscript_suite_doc_version=labscript_suite_doc_version,
280-
target=intersphinx_mapping[ls_prog][0],
281-
**data
282-
)
283-
components_rst_link += components_rst_link_template.format(
284-
prog=ls_prog,
285-
labscript_suite_doc_version=labscript_suite_doc_version,
286-
target=intersphinx_mapping[ls_prog][0],
287-
)
288-
for ls_prog in sorted(labscript_suite_programs):
289-
if ls_prog != project:
290-
components_rst_toctree += " {} <{}>\n".format(
291-
ls_prog, intersphinx_mapping[ls_prog][0]
292-
)
293-
294-
components_rst = components_rst_template.format(
295-
toctree_entires=components_rst_toctree,
296-
rst_defs=components_rst_link,
297-
labscript_suite_doc_version=labscript_suite_doc_version,
298-
metapackage_toctree=components_rst_metapackage,
299-
**components_rst_table
300-
)
301-
212+
loader = FileSystemLoader(Path(__file__).resolve().parent / templates_path[0])
213+
env = Environment(loader=loader)
214+
template = env.get_template('components.rst')
302215
with open(Path(__file__).resolve().parent / 'components.rst', 'w') as f:
303-
f.write(components_rst)
216+
f.write(
217+
template.render(
218+
intersphinx_mapping=intersphinx_mapping,
219+
programs=labscript_suite_programs,
220+
current_project=project,
221+
)
222+
)

docs/source/index.rst

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,24 @@ This documentation is primarily for developers who might want to use this common
1111

1212
.. toctree::
1313
:maxdepth: 2
14+
:hidden:
1415

1516
api_reference/index
17+
18+
.. toctree::
19+
:maxdepth: 2
20+
:hidden:
21+
:caption: FURTHER DOCUMENTATION
22+
1623
components
24+
25+
.. toctree::
26+
:maxdepth: 2
27+
:hidden:
28+
:caption: LINKS
29+
1730
Home Page <http://labscriptsuite.org>
18-
Source Code <https://github.com/labscript-suite/labscript-suite>
31+
Source Code <https://github.com/labscript-suite/labscript-utils>
1932
BitBucket Archive <http://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_utils>
33+
34+
.. todolist::

0 commit comments

Comments
 (0)