-
-
Notifications
You must be signed in to change notification settings - Fork 673
Description
Building the Sage reference manual can take a significant amount of time. Decreasing this time could speed up Sage development.
The patch is large, but most of it consists of moving files from one location to another, as described below. A summary of the changes:
Changes in doc/en/reference
— this is where the size of the patch comes from, although the changes are pretty simple:
- rearrange the directory doc/en/reference: for each file like algebras.rst, create a subdirectory
algebras
and movealgebras.rst
toalgebras/index.rst
. Also create a filealgebras/conf.py
for the build configuration. All of these new conf.py files are identical. Deal with the contents of the directoryreference/media
similarly, moving the pictures to the appropriate subdirectory. - modify
reference/index.rst
to point to these new files. - reorganize
reference/index.rst
so it is arranged, at least somewhat, by topic. - add intersphinx to
conf.py
— see below. Also add the new subdirectories to the listexclude_trees
. - new file
conf_sub.py
, configuration for the pieces of the documentation (as opposed to the mainconf.py
, which is for buildingreference/index.rst
). This file is imported by each of the filesSUBDIRECTORY/conf.py
.
Changes to doc/common/builder.py
:
- add code to build the reference manual in sections, and also to build the sections in parallel. The reference manual ought to be built twice to resolve references now, so typing "sage -docbuild all html" will build it twice (along with all of the other documents, of course). "sage -docbuild reference html" will just build it once. You can also run "sage -docbuild reference/combinat html", for example, to just build one part of the manual.
- the different parts of the manual are separate documents as far as sphinx is concerned, so allow them to reference each other using the "intersphinx" extension. (This is why we need to build it twice: the first pass assembles the intersphinx databases, the second pass uses the databases to create the references correctly.)
- to accomodate the changes in Add todo extension to Sphinx #11251, which don't seem to be easily compatible with intersphinx, search through the output files looking for "todo" items, and accumulate them in one master "todo" list.
- for pdf format, since it now produces 30 different pdf files, write an html file which links to each of them.
Other changes:
doc/common/conf.py
: add the intersphinx extension to the build process.doc/common/themes/sage/layout.html
: fix a bug where clicking the Sage logo in the upper left corner of the docs wouldn't take you to the right place, at least in the local documentation.doc/common/themes/sageref/
: add a new theme for the pieces of the reference manual. This is almost identical to the "sage" theme, except for a little tinkering to the links along the top and bottom lines.- in the main Sage library, change a few pathnames to media files in the reference manual, since those files have been moved.
- make the necessary changes to .hgignore and MANIFEST.in to deal with the relocated files.
The html docs for Sage 5.4.rc2,
html without MathJax,
html with MathJax, and
pdf,
built after applying the patches here.
Apply:
-
attachment: trac_6495-part1-moving-files-link.patch (or run attachment: trac_6495-script-jhp-link.sh)
-
attachment: trac_6495-part3-the-remaining-vs-5.7.beta4.patch
-
new Sphinx spkg: http://sage.math.washington.edu/home/palmieri/SPKG/sphinx-1.1.2.p2.spkg
Before building the docs, you should delete the documentation output directory: rm -rf SAGE_ROOT/devel/sage/doc/output
. To test this, you should run sage --docbuild all html
and sage --docbuild all pdf
. (Note: just running sage --docbuild reference html
will probably produce many warnings. If you run it a second time, the warnings should go away.)
Depends on #13064
Depends on #8327
Depends on #13891
Dependencies: 5.7.beta2 + #13064, #8327, #13891
CC: @jhpalmieri @nexttime @nilesjohnson @hivert @mguaypaq @mwhansen
Component: documentation
Keywords: days38
Author: Mitesh Patel, John Palmieri, Florent Hivert
Reviewer: Volker Braun, Florent Hivert
Merged: sage-5.8.beta0
Issue created by migration from https://trac.sagemath.org/ticket/6495