Referring to a group of files using `:ref:` - python-sphinx

I understand that using the :ref:test-label and .. _test-label: i can link a page to any other page.
but is there a way I can tag a group of pages and refer to that whole group using the :ref:?
e.g.
I want to tag calculator.rst, scientificCalculator.rst as a calculator group and then refer to .. _calculator: from any other page to display all the pages labeled/tagged with calculator group (something similar to when we search a keyword and it displays all the links)

Though this is not exactly what i was looking for, but i came across .. index:: directive which allows me to add the keywords on my individual rsts and dispay it on the genindex.html page
scientificCalculator.rst
.. index:: calculator; scientific
simpleCalculator.rst
.. index:: calculator; simple
genindex.html

Related

XPath fails because Namespace colon in Title

I'm generating an XML report, using the JDF standard for PDFs going into a printing workflow.
There are 3 "DPart" sections, and I can use an xPath query to recognize them, but I want to grab the "Separation" attribute of each "cip4:Part". I can also get a query to find that, but it does not distinguish between the multiple "DPart"s.
<DPart End="0" ID="0003" ParentRef="0002" Start="0">
<DPM>
<cip4:Root>
<cip4:Intent cip4:ProductType="ProductPart"/>
<cip4:Production>
<cip4:Resource>
<cip4:Part Separation="K1"/>
<cip4:Color cip4:ActualColorName="Black" cip4:ColorType="Normal">
</cip4:Resource>
<cip4:Resource>
<cip4:Part Separation="S1"/>**
<cip4:Color cip4:ActualColorName="Dieline" cip4:ColorType="Normal">
</cip4:Resource>
<cip4:Resource>
<cip4:ColorantControl ColorantOrder="K1 S1" ColorantParams="K1 S1"/>
</cip4:Resource>
<cip4:Resource>
<eg:InkCoverage>
<eg:InkCov eg:Mm2="0.000000" eg:Pct="0.000000" eg:Separation="K1"/>
<eg:InkCov eg:Mm2="182.337538" eg:Pct="0.721209" eg:Separation="S1"/>
</eg:InkCoverage>
</cip4:Resource>
</cip4:Production>
</cip4:Root>
</DPM>
</DPart>
I want to do something like:
/DPM[2]/*[name ()='cip4:Part'], but it's not working.
I'm in a low-code pre-press environment (Esko Automation Engine), but the system gives me tools to parse an xPath, and throw some JavaScript at it.
There are at least three reasons your XPath selects nothing:
DPM is not an immediate child of the root node
There is only one DPM, so DPM[2] won't select anything
There is no child of a DPM whose name is cip4:Part.
You also say in the narrative that there are three DPart's, which implies that DPart is not actually the outermost element as it appears to be in your sample. This makes it difficult to provide the correct XPath. However, you might be able to make a start with
(//DPM)[2]//*[name()='cip4:Part']

Can Sphinx Section Numbering Skip Certain Sections (like a title)?

I am making a series of design documents in Sphinx and I would like to include them together in a toctree and have the sections within the documents numbered. I know that I can use .. sectnum:: to number all sections in the child pages. However, Sphinx/rst numbers the title of the page (which is really just the first section) and the table of contents ends up looking like:
Table of Contents
1 Design the First
2 Design the Second
and each child page looks like:
1 Design the First
1.1 First Section
1.2 Second Section
What I want is a table of contents on my index page that just lists the title
Table of Contents
Design The First
Design the Second
and child page that look like
Design the First
1 First Section
2 Second Section
Is there a way to have a title that shows up in the TOC as well as on the top of a child page which does not end up being a numbered section?
I don't know what you ended up doing, but I wanted to do the exact same thing! I had the following setup:
index.rst
.. toctree::
assignment
library_api
I only wanted the assignment part to have numbers, so either could have done two separate toctree with one using :numbered:, or put at the top of the file
.. sectnum::
:start: 0
Giving of course the exact problem you mention -- my top-level title was Assignment Writeup, so that was 0 and everything below it in subsections was 0.x e.g.
Assignment Writeup
==================
First Task
----------
Second Task
-----------
gives
0. Assignment Writeup
0.1 First Task
0.2 Second Task
as it turns out, there's an easy hack you can do. It makes things more modular than probably desired, but "add a layer of indirection".
So now I have assignment.rst and assignment_writeup.rst. assignment.rst just basically has a title and a toctree:
Assignment Writeup
==================
.. toctree::
:maxdepth: 4
assignment_writeup
then take all sub-sections and put them in assignment_writeup and "upcast" their heading level. So I now take all subsections and make them sections, and subsub and make them sub.
.. sectnum::
:start: 0
First Task
==========
^^^ === instead of --- now
Second Task
===========
and we now finally have
Assignment Writeup
0. First Task
1. Second Task
kind of dubious, but this was the only way I could achieve it x0 I wonder what you did between asking this and now? Hopefully somebody will see this and benefit one day!
Note: this has undesireable side-effects. The Assignment Writeup shows up on its own page, with just Links to the indirect document. Not sure which is worse honestly...

How can I document a constant (module level variable) with sphinx (docstring without data)?

I want to document a constant by its docstring. I don't want to let the value to show up. If I have a long list, Sphinx will include it completely which I don't want. It would be okay for me if only an excerpt would be shown (with ellipsis or whatever). But not thousands of list elements.
module_level_variable2 = 98765
"""int: Module level variable documented inline.
The docstring may span multiple lines. The type may optionally be specified
on the first line, separated by a colon.
"""
I've tried the following:
.. autoclass:: module_level_variable2
does not show the docstring at all.
.. autodata:: module_level_variable2
does show docstring and the data.
.. automethod:: module_level_variable2
and
.. autoattribute:: module_level_variable2
do not show anything in the documentation (not even the name of the variable).
.. autofunction:: module_level_variable2
does show the docstring only. This is almost what I want. However, it considers a constant as a function() by adding parentheses to it - which is wrong (why a warning is raised on make html!
I went through http://www.sphinx-doc.org/en/1.4.8/ext/autodoc.html but could not find a switch to tell .. autodata:: not to show the data itself (but the docstring only).
SOLUTION
.. autodata:: module_level_variable2
:annotation:

can't display ordered list of markdown

I'am using Hexo to post my blog. I edited my blog by markdown. And I encountered with some problems when I try to use the ordered list and it can't be displayed normally.
Here is my code:
1. first
2. second
+ inner first
+ inner second
However, only disordered list was shown.
I would like it was shown as follow:
http://7xjj3m.com1.z0.glb.clouddn.com/20150622_0.jpg
but it was follow indeed:
http://7xjj3m.com1.z0.glb.clouddn.com/20150622_1.jpg
So, what's the problem?
Your syntax is correct but you need to indent by four spaces. I would refrain from using tab because your computer / program could be defaulted to 2 instead of 4.
I use a markdown editor called Mou; and I inputed your syntax and got the proper result.

Doxygen: How to hide certain page in treeview

I have an issue I could not resolve by myself. Help please.
I have (conditionally):
/** #mainpage A
#subpage B
*/
/** #page B
#subpage C
*/
/** #page C */
Doxygen makes the tree where all the pages are shown on the root level.
+A/
|---B/
|------C
|---B <- WANT TO HIDE
|---C <- WANT TO HIDE
but I need only top (A here and nested B & C) to be visible i.e. should be organized accordingly #subpage tags.
I also tried to set visible to 'no'
in DoxygenLayout.xml. But it hides all the pages, only 'files' and 'classes'
are left.
Thanx in advance.
Your code generates the required tree view (only nested pages without separate entries at the root level) when the page/subpage files belong to most of the supported formats like *.c, *.cpp, *.dox etc. The only exception that I could find (in Doxygen 1.8.6) is the markdown format (*.md or *.markdown), for which separate root level entries are generated as well.
Until markdown files are treated like the other file formats, a workaround would be to use one of the other file formats (like *.dox) instead of *.md for the pages/subpages. Currently, the markdown format can be used, without generating root level entries, only for the mainpage.

Resources