I ended up trying something which gets me part of what I'm looking for, but still leaves me without the structure I'm looking for.
To get a nice looking html table which I could control formatting with a custom CSS, I placed a "custom.css" file in a "_static" folder. I also placed a "page.html" file in a "_templates" folder. That page html file looks like this: {% extends "!page.html" %} {{ super() }} {% block body %} {% filter upper %} <b><font size="+2">Schema: {{ schema_gen["name"] }} </font></b><br/> {% endfilter %} <b><font size="+1">Description: {{ schema_gen["comment"] }} </font></b><br/> <p> {% for item in outputschema %} <b><p>Table Name: {% filter upper %} {{ item["table_nam"] }} {% endfilter %}<br/></b> <b>Description: {{ item["table_comment"] }}<br/></b> {% if item["table_columns"] %} <table> <tbody> <thead> <tr> <th>Column Name</th> <th>Data Type</th> <th>Length</th> <th>Precision</th> <th>Scale</th> <th>Description</th> </tr> </thead> {% for columns in item["table_columns"] %} <tr> {% for column in columns %} <td>{{ column }}</td> {% endfor %} </tr> {% endfor%} </tbody> </table> {% endif %} </p> {% endfor %} </p> {% endblock %} After uploading to my repo, Sphinx automatically generated my ReadTheDocs docs and created a very nice looking index.html page with my tables formatted correctly, and using the css I needed. I'm still confused because this created my tables in my INDEX page. How do I leave my index page intact (containing other ReStructureText content) without my inherited "page.html" content, but have a sub-page listed in my index page toctree with this new html content (ie schema1) ? My index.rst: .. toctree:: schema1 schema2 I want my schema1.html file to contain my tables as I've dynamically generated them in the code block above. I'm quite confused about how I can potentially use the inheritance templating to work in a single subpage only, rather than in my index page. I tried putting a file named schema1.html in my "_templates" folder, but that didn't do anything. I must be missing something quite fundamental to inheritance in Sphinx. What am I not understanding? On Thursday, March 29, 2018 at 2:50:00 PM UTC+13, Peter Burdine wrote: > > A few things: > 1) You may want to consider another jinja extension to sphinx: > https://pypi.python.org/pypi/sphinx-jinja. We use YAML as the > datasource, though it could be anything maps to Python lists/dicts (json, > xml, etc). You can then either reference the a file with the jinja > template, or you can embed the jinja code in your .rst files. We have > found it is easiest to make list tables for this. You can use > {% if loop.first %} > to setup your table headers. > > > 2) The builder controls the output formatting not the reST input (unless > you use tablularcolumns for LaTeX, but that is another story). Have you > tried: > https://stackoverflow.com/questions/23462494/how-to-add-a-custom-css-file-to-sphinx > > > On Wednesday, March 28, 2018 at 12:45:44 AM UTC-7, Jan wrote: >> >> I'm trying to understand sphinx, and I'm thoroughly not understanding how >> to implement even some basic concepts. I've created a sphinx project linked >> to my readthedocs account. Everything works to generate my basic index.rst >> file in read the docs. I'm trying to follow the ideas of adding dynamic >> input to a specific page within my project, as mentioned here: >> http://ericholscher.com/blog/2016/jul/25/integrating-jinja-rst-sphinx/ >> >> My objective is to setup my sphinx project so that whenever a specific >> text file changes in my /docs folder, it updates my ReadTheDocs content >> dynamically/automatically. >> >> My /docs folder has these key elements: >> >> parsethisfile.txt >> conf.py >> index.rst >> Database.rst >> ... >> >> In my conf.py I've added some python which parses a txt file, and then >> creates references to the object: >> >> def rstjinja(app, docname, source): >> """ >> Render our pages as a jinja template for fancy templating goodness. >> """ >> # Make sure we're outputting HTML >> if app.builder.format != 'html': >> return >> src = source[0] >> rendered = app.builder.templates.render_string( >> src, app.config.html_context >> ) >> source[0] = rendered >> >> def setup(app): >> app.connect("source-read", rstjinja) >> >> html_context = { >> #'outputschema': schema_list_out >> } >> >> The "schema_list_out" is a list (or I could make a dictionary) which >> contains elements for a database schema, such as table names, comments, >> column names and column parameters. >> >> If I wanted to generate dynamic ReadTheDocs pages, I've successfully been >> able to add some variables to my Database.rst file like this: >> {% for schema_item in outputschema %} >> **Schema Name: {{ schema_item["name"] }}** >> {% endfor %} >> and sphinx correctly creates a Database.html file that shows this: >> >> Schema Name: buildings >> >> More importantly, I'm trying to create nice looking tables for the items >> in my "schema_list_out" list. The only way I've been able to do that is >> using the python tabulate module (in my conf.py), where I generate the >> table within python, output as rst, and save it as a list element object >> within my "schema_list_out". If I use the right control structure in my >> rst, I generate a nice looking table in rst format that looks correct in my >> sphinx generated output: >> >> >> <https://lh3.googleusercontent.com/-dhpbPBXkgwQ/Wrsp8EOcAWI/AAAAAAAAF2E/kU8XMyxpMEs6H_aeDuEsNQ6DN9XEthTMACLcBGAs/s1600/schema2.png> >> But the problem here is I have no way of controlling how this looks >> inside the rst file because it's RST, and I can't add HTML, css or anything >> else to control how the table looks (like table width, color etc). reST >> markup doesn't seem to offer enough control over a table. >> How do I create dynamically created tables which can be formatted nicely, >> in RST? If I could create the tables easily in my Database.html, I'd do >> that, but it's not a template, it's generated by sphinx from my >> Database.rst. I can't figure out how to create my Database.html myself, >> with the jinja control structures inside of it. How do do that? >> >> >> >> >> -- You received this message because you are subscribed to the Google Groups "sphinx-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to sphinx-users+unsubscr...@googlegroups.com. To post to this group, send email to sphinx-users@googlegroups.com. Visit this group at https://groups.google.com/group/sphinx-users. For more options, visit https://groups.google.com/d/optout.