14
14
from pathlib import Path
15
15
from m2r import MdInclude
16
16
from recommonmark .transform import AutoStructify
17
+ from jinja2 import FileSystemLoader , Environment
17
18
18
19
# -- Project information (unique to each project) -------------------------------------
19
20
187
188
# Customize the html_theme
188
189
html_theme_options = {'navigation_depth' : 3 }
189
190
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
-
243
191
# Use m2r only for mdinclude and recommonmark for everything else
244
192
# https://github.com/readthedocs/recommonmark/issues/191#issuecomment-622369992
245
193
def setup (app ):
@@ -261,43 +209,14 @@ def setup(app):
261
209
262
210
# generate the components.rst file dynamically so it points to stable/latest
263
211
# 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' )
302
215
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
+ )
0 commit comments