##// END OF EJS Templates
more docs on building docs
Matthias Bussonnier -
Show More
@@ -1,165 +1,166 b''
1 # Makefile for Sphinx documentation
1 # Makefile for Sphinx documentation
2 #
2 #
3
3
4 # You can set these variables from the command line.
4 # You can set these variables from the command line.
5 SPHINXOPTS =
5 SPHINXOPTS =
6 SPHINXBUILD = sphinx-build
6 SPHINXBUILD = sphinx-build
7 PAPER =
7 PAPER =
8 SRCDIR = source
8 SRCDIR = source
9 BUILDDIR = build
9 BUILDDIR = build
10
10
11 # Internal variables.
11 # Internal variables.
12 PAPEROPT_a4 = -D latex_paper_size=a4
12 PAPEROPT_a4 = -D latex_paper_size=a4
13 PAPEROPT_letter = -D latex_paper_size=letter
13 PAPEROPT_letter = -D latex_paper_size=letter
14 ALLSPHINXOPTS = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SRCDIR)
14 ALLSPHINXOPTS = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SRCDIR)
15
15
16 .PHONY: help clean html web pickle htmlhelp latex changes linkcheck api
16 .PHONY: help clean html web pickle htmlhelp latex changes linkcheck api
17
17
18 default: html
18 default: html
19
19
20 help:
20 help:
21 @echo "Please use \`make <target>' where <target> is one of"
21 @echo "Please use \`make <target>' where <target> is one of"
22 @echo " html standalone HTML files"
22 @echo " html standalone HTML files"
23 @echo " html_noapi same as above, without the time consuming API docs"
23 @echo " html_noapi same as above, without the time consuming API docs"
24 @echo " pickle pickle files (usable by e.g. sphinx-web)"
24 @echo " pickle pickle files (usable by e.g. sphinx-web)"
25 @echo " htmlhelp HTML files and a HTML help project"
25 @echo " htmlhelp HTML files and a HTML help project"
26 @echo " latex LaTeX files, you can set PAPER=a4 or PAPER=letter"
26 @echo " latex LaTeX files, you can set PAPER=a4 or PAPER=letter"
27 @echo " texinfo Texinfo files"
27 @echo " texinfo Texinfo files"
28 @echo " info Texinfo files and run them through makeinfo"
28 @echo " info Texinfo files and run them through makeinfo"
29 @echo " changes an overview over all changed/added/deprecated items"
29 @echo " changes an overview over all changed/added/deprecated items"
30 @echo " linkcheck check all external links for integrity (takes a long time)"
30 @echo " linkcheck check all external links for integrity (takes a long time)"
31 @echo " gh-pages clone IPython docs in ./gh-pages/ , build doc, autocommit"
31 @echo
32 @echo
32 @echo "Compound utility targets:"
33 @echo "Compound utility targets:"
33 @echo "pdf latex and then runs the PDF generation"
34 @echo "pdf latex and then runs the PDF generation"
34 @echo "all html and pdf"
35 @echo "all html and pdf"
35 @echo "dist all, and then puts the results in dist/"
36 @echo "dist all, and then puts the results in dist/"
36 @echo "gitwash-update update git workflow from source repo"
37 @echo "gitwash-update update git workflow from source repo"
37
38
38 clean_api:
39 clean_api:
39 -rm -rf $(SRCDIR)/api/generated
40 -rm -rf $(SRCDIR)/api/generated
40
41
41 clean: clean_api
42 clean: clean_api
42 -rm -rf build/* dist/*
43 -rm -rf build/* dist/*
43 -cd $(SRCDIR)/config/options; test -f generated && cat generated | xargs rm -f
44 -cd $(SRCDIR)/config/options; test -f generated && cat generated | xargs rm -f
44 -rm -rf $(SRCDIR)/config/options/generated
45 -rm -rf $(SRCDIR)/config/options/generated
45 -rm -f $(SRCDIR)/interactive/magics-generated.txt
46 -rm -f $(SRCDIR)/interactive/magics-generated.txt
46
47
47 pdf: latex
48 pdf: latex
48 cd build/latex && make all-pdf
49 cd build/latex && make all-pdf
49
50
50 all: html pdf
51 all: html pdf
51
52
52 # For final distribution, only build HTML (our pdf is now so large as to be
53 # For final distribution, only build HTML (our pdf is now so large as to be
53 # unusable, takes forever to build and just bloats the downloads). We leave
54 # unusable, takes forever to build and just bloats the downloads). We leave
54 # them hardlinked at the top-level so users find them easily, though the
55 # them hardlinked at the top-level so users find them easily, though the
55 # original build/html dir is left in-place (useful to reload builds while
56 # original build/html dir is left in-place (useful to reload builds while
56 # testing).
57 # testing).
57 dist: html
58 dist: html
58 rm -rf html
59 rm -rf html
59 cp -al build/html .
60 cp -al build/html .
60 @echo "Build finished. Final docs are in html/"
61 @echo "Build finished. Final docs are in html/"
61
62
62 html: jsapi api autoconfig automagic
63 html: jsapi api autoconfig automagic
63 html_noapi: clean_api autoconfig automagic
64 html_noapi: clean_api autoconfig automagic
64
65
65 html html_noapi:
66 html html_noapi:
66 mkdir -p build/html build/doctrees
67 mkdir -p build/html build/doctrees
67 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html
68 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html
68 @echo
69 @echo
69 @echo "Build finished. The HTML pages are in build/html."
70 @echo "Build finished. The HTML pages are in build/html."
70
71
71 automagic: source/interactive/magics-generated.txt
72 automagic: source/interactive/magics-generated.txt
72
73
73 source/interactive/magics-generated.txt: autogen_magics.py
74 source/interactive/magics-generated.txt: autogen_magics.py
74 python autogen_magics.py
75 python autogen_magics.py
75 @echo "Created docs for line & cell magics"
76 @echo "Created docs for line & cell magics"
76
77
77 autoconfig: source/config/options/generated
78 autoconfig: source/config/options/generated
78
79
79 source/config/options/generated:
80 source/config/options/generated:
80 python autogen_config.py
81 python autogen_config.py
81 @echo "Created docs for config options"
82 @echo "Created docs for config options"
82
83
83 jsapi:
84 jsapi:
84 jsdoc -c jsdoc_config.json -d ./build/jsapi_html/
85 jsdoc -c jsdoc_config.json -d ./build/jsapi_html/
85
86
86 api: source/api/generated/gen.txt
87 api: source/api/generated/gen.txt
87
88
88 source/api/generated/gen.txt:
89 source/api/generated/gen.txt:
89 python autogen_api.py
90 python autogen_api.py
90 @echo "Build API docs finished."
91 @echo "Build API docs finished."
91
92
92 pickle:
93 pickle:
93 mkdir -p build/pickle build/doctrees
94 mkdir -p build/pickle build/doctrees
94 $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle
95 $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle
95 @echo
96 @echo
96 @echo "Build finished; now you can process the pickle files or run"
97 @echo "Build finished; now you can process the pickle files or run"
97 @echo " sphinx-web build/pickle"
98 @echo " sphinx-web build/pickle"
98 @echo "to start the sphinx-web server."
99 @echo "to start the sphinx-web server."
99
100
100 web: pickle
101 web: pickle
101
102
102 htmlhelp:
103 htmlhelp:
103 mkdir -p build/htmlhelp build/doctrees
104 mkdir -p build/htmlhelp build/doctrees
104 $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) build/htmlhelp
105 $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) build/htmlhelp
105 @echo
106 @echo
106 @echo "Build finished; now you can run HTML Help Workshop with the" \
107 @echo "Build finished; now you can run HTML Help Workshop with the" \
107 ".hhp project file in build/htmlhelp."
108 ".hhp project file in build/htmlhelp."
108
109
109 qthelp:
110 qthelp:
110 mkdir -p build/qthelp
111 mkdir -p build/qthelp
111 $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) build/qthelp
112 $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) build/qthelp
112 @echo
113 @echo
113 @echo "Build finished; now you can run "qcollectiongenerator" with the" \
114 @echo "Build finished; now you can run "qcollectiongenerator" with the" \
114 ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
115 ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
115 @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/IPython.qhcp"
116 @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/IPython.qhcp"
116 @echo "To view the help file:"
117 @echo "To view the help file:"
117 @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/IPython.qhc"
118 @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/IPython.qhc"
118
119
119 latex: api autoconfig
120 latex: api autoconfig
120 mkdir -p build/latex build/doctrees
121 mkdir -p build/latex build/doctrees
121 $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex
122 $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex
122 @echo
123 @echo
123 @echo "Build finished; the LaTeX files are in build/latex."
124 @echo "Build finished; the LaTeX files are in build/latex."
124 @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
125 @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
125 "run these through (pdf)latex."
126 "run these through (pdf)latex."
126
127
127 changes:
128 changes:
128 mkdir -p build/changes build/doctrees
129 mkdir -p build/changes build/doctrees
129 $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes
130 $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes
130 @echo
131 @echo
131 @echo "The overview file is in build/changes."
132 @echo "The overview file is in build/changes."
132
133
133 linkcheck:
134 linkcheck:
134 mkdir -p build/linkcheck build/doctrees
135 mkdir -p build/linkcheck build/doctrees
135 $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) build/linkcheck
136 $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) build/linkcheck
136 @echo
137 @echo
137 @echo "Link check complete; look for any errors in the above output " \
138 @echo "Link check complete; look for any errors in the above output " \
138 "or in build/linkcheck/output.rst."
139 "or in build/linkcheck/output.rst."
139
140
140 gitwash-update:
141 gitwash-update:
141 python ../tools/gitwash_dumper.py source/development ipython
142 python ../tools/gitwash_dumper.py source/development ipython
142
143
143 nightly: dist
144 nightly: dist
144 rsync -avH --delete dist/ ipython:www/doc/nightly
145 rsync -avH --delete dist/ ipython:www/doc/nightly
145
146
146 gh-pages: clean html
147 gh-pages: clean html
147 # if VERSION is unspecified, it will be dev
148 # if VERSION is unspecified, it will be dev
148 # For releases, VERSION should be just the major version,
149 # For releases, VERSION should be just the major version,
149 # e.g. VERSION=2 make gh-pages
150 # e.g. VERSION=2 make gh-pages
150 python gh-pages.py $(VERSION)
151 python gh-pages.py $(VERSION)
151
152
152 texinfo:
153 texinfo:
153 mkdir -p $(BUILDDIR)/texinfo
154 mkdir -p $(BUILDDIR)/texinfo
154 $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
155 $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
155 @echo
156 @echo
156 @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
157 @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
157 @echo "Run \`make' in that directory to run these through makeinfo" \
158 @echo "Run \`make' in that directory to run these through makeinfo" \
158 "(use \`make info' here to do that automatically)."
159 "(use \`make info' here to do that automatically)."
159
160
160 info:
161 info:
161 mkdir -p $(BUILDDIR)/texinfo
162 mkdir -p $(BUILDDIR)/texinfo
162 $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
163 $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
163 @echo "Running Texinfo files through makeinfo..."
164 @echo "Running Texinfo files through makeinfo..."
164 make -C $(BUILDDIR)/texinfo info
165 make -C $(BUILDDIR)/texinfo info
165 @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
166 @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
@@ -1,35 +1,43 b''
1 IPython Documentation
1 IPython Documentation
2 ---------------------
2 ---------------------
3
3
4 This directory contains the majority of the documentation for IPython.
4 This directory contains the majority of the documentation for IPython.
5
5
6 Deploy docs
7 -----------
8
9 Run ``make gh-pages``, and follow instruction, that is to say:
10 cd into ``gh-pages``, check that everything is alright and push.
11
12
13
6 Requirements
14 Requirements
7 ------------
15 ------------
8 The following tools are needed to build the documentation:
16 The following tools are needed to build the documentation:
9
17
10 sphinx jsdoc
18 sphinx jsdoc
11
19
12 On Debian-based systems, you should be able to run::
20 On Debian-based systems, you should be able to run::
13
21
14 sudo apt-get install python-sphinx npm
22 sudo apt-get install python-sphinx npm
15 sudo npm install -g jsdoc@"<=3.3.0"
23 sudo npm install -g jsdoc@"<=3.3.0"
16
24
17 The documentation gets built using ``make``, and comes in several flavors.
25 The documentation gets built using ``make``, and comes in several flavors.
18
26
19 ``make html`` - build the API (both Javascript and Python) and narrative
27 ``make html`` - build the API (both Javascript and Python) and narrative
20 documentation web pages, this is the the default ``make`` target, so
28 documentation web pages, this is the the default ``make`` target, so
21 running just ``make`` is equivalent to ``make html``.
29 running just ``make`` is equivalent to ``make html``.
22
30
23 ``make html_noapi`` - same as above, but without running the auto-generated
31 ``make html_noapi`` - same as above, but without running the auto-generated
24 API docs. When you are working on the narrative documentation, the most time
32 API docs. When you are working on the narrative documentation, the most time
25 consuming portion of the build process is the processing and rending of the
33 consuming portion of the build process is the processing and rending of the
26 API documentation. This build target skips that.
34 API documentation. This build target skips that.
27
35
28 ``make jsapi`` - build Javascript auto-generated API documents.
36 ``make jsapi`` - build Javascript auto-generated API documents.
29
37
30 ``make pdf`` will compile a pdf from the documentation.
38 ``make pdf`` will compile a pdf from the documentation.
31
39
32 You can run ``make help`` to see information on all possible make targets.
40 You can run ``make help`` to see information on all possible make targets.
33
41
34
42
35
43
General Comments 0
You need to be logged in to leave comments. Login now