From 3ac4ec670c881668aaedb2c3937bae5e10984988 Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Sun, 25 Apr 2010 17:05:25 +0200 Subject: [PATCH 1/4] Beefed up PDF docs. They actually look like something now. --- docs/conf.py | 30 +++++++----------- docs/contents.rst | 41 +++++++++++++++++++++++++ docs/flaskstyle.sty | 73 ++++++++++++++++++++++++++++++++++++++++++++ docs/index.rst | 42 +------------------------ docs/latexindex.rst | 4 +++ docs/logo.pdf | Bin 0 -> 28884 bytes 6 files changed, 130 insertions(+), 60 deletions(-) create mode 100644 docs/contents.rst create mode 100644 docs/flaskstyle.sty create mode 100644 docs/latexindex.rst create mode 100644 docs/logo.pdf diff --git a/docs/conf.py b/docs/conf.py index 03e27217..f4756ae0 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -172,35 +172,27 @@ htmlhelp_basename = 'Flaskdoc' # -- Options for LaTeX output -------------------------------------------------- -# The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' - -# The font size ('10pt', '11pt' or '12pt'). -#latex_font_size = '10pt' - # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'Flask.tex', u'Flask Documentation', + ('latexindex', 'Flask.tex', u'Flask Documentation', u'Armin Ronacher', 'manual'), ] -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# Additional stuff for the LaTeX preamble. -#latex_preamble = '' - # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. -#latex_use_modindex = True +latex_use_modindex = False + +latex_elements = { + 'fontpkg': r'\usepackage{mathpazo}', + 'papersize': 'a4paper', + 'pointsize': '12pt', + 'preamble': r'\usepackage{flaskstyle}' +} + +latex_additional_files = ['flaskstyle.sty', 'logo.pdf'] # -- Options for Epub output --------------------------------------------------- diff --git a/docs/contents.rst b/docs/contents.rst new file mode 100644 index 00000000..72491049 --- /dev/null +++ b/docs/contents.rst @@ -0,0 +1,41 @@ +User's Guide +------------ + +This part of the documentation is written text and should give you an idea +how to work with Flask. It's a series of step-by-step instructions for +web development. + +.. toctree:: + :maxdepth: 2 + + foreword + installation + quickstart + tutorial/index + testing + patterns/index + deploying/index + becomingbig + +Additional Notes +---------------- + +Design notes, legal information and changelog are here for the interested: + +.. toctree:: + :maxdepth: 2 + + design + license + changelog + +API Reference +------------- + +If you are looking for information on a specific function, class or +method, this part of the documentation is for you: + +.. toctree:: + :maxdepth: 2 + + api diff --git a/docs/flaskstyle.sty b/docs/flaskstyle.sty new file mode 100644 index 00000000..71d9ccc7 --- /dev/null +++ b/docs/flaskstyle.sty @@ -0,0 +1,73 @@ +\pagenumbering{arabic} +\definecolor{TitleColor}{rgb}{0,0,0} +\definecolor{InnerLinkColor}{rgb}{0,0,0} + +\renewcommand{\maketitle}{% + \begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \ifsphinxpdfoutput + \begingroup + % This \def is required to deal with multi-line authors; it + % changes \\ to ', ' (comma-space), making it pass muster for + % generating document info in the PDF file. + \def\\{, } + \pdfinfo{ + /Author (\@author) + /Title (\@title) + } + \endgroup + \fi + \begin{flushright}% + %\sphinxlogo% + {\center + \vspace*{3cm} + \includegraphics{logo.pdf} + \vspace{3cm} + \par + {\rm\Huge \@title \par}% + {\em\LARGE \py@release\releaseinfo \par} + {\large + \@date \par + \py@authoraddress \par + }}% + \end{flushright}%\par + \@thanks + \end{titlepage}% + \cleardoublepage% + \setcounter{footnote}{0}% + \let\thanks\relax\let\maketitle\relax + %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} +} + +\fancypagestyle{normal}{ + \fancyhf{} + \fancyfoot[LE,RO]{{\thepage}} + \fancyfoot[LO]{{\nouppercase{\rightmark}}} + \fancyfoot[RE]{{\nouppercase{\leftmark}}} + \fancyhead[LE,RO]{{ \@title, \py@release}} + \renewcommand{\headrulewidth}{0.4pt} + \renewcommand{\footrulewidth}{0.4pt} +} + +\fancypagestyle{plain}{ + \fancyhf{} + \fancyfoot[LE,RO]{{\thepage}} + \renewcommand{\headrulewidth}{0pt} + \renewcommand{\footrulewidth}{0.4pt} +} + +\titleformat{\section}{\Large}% + {\py@TitleColor\thesection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\subsection}{\large}% + {\py@TitleColor\thesubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\subsubsection}{}% + {\py@TitleColor\thesubsubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\paragraph}{\large}% + {\py@TitleColor}{0em}{\py@TitleColor}{\py@NormalColor} + +\ChNameVar{\raggedleft\normalsize} +\ChNumVar{\raggedleft \bfseries\Large} +\ChTitleVar{\raggedleft \rm\Huge} + +\usepackage{inconsolata} diff --git a/docs/index.rst b/docs/index.rst index 1f3b6460..e7ab260b 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -25,44 +25,4 @@ following links: .. _Jinja2: http://jinja.pocoo.org/2/ .. _Werkzeug: http://werkzeug.pocoo.org/ -User's Guide ------------- - -This part of the documentation is written text and should give you an idea -how to work with Flask. It's a series of step-by-step instructions for -web development. - -.. toctree:: - :maxdepth: 2 - - foreword - installation - quickstart - tutorial/index - testing - patterns/index - deploying/index - becomingbig - -Additional Notes ----------------- - -Design notes, legal information and changelog are here for the interested: - -.. toctree:: - :maxdepth: 2 - - design - license - changelog - -API Reference -------------- - -If you are looking for information on a specific function, class or -method, this part of the documentation is for you: - -.. toctree:: - :maxdepth: 2 - - api +.. include:: contents.rst diff --git a/docs/latexindex.rst b/docs/latexindex.rst new file mode 100644 index 00000000..be54f2de --- /dev/null +++ b/docs/latexindex.rst @@ -0,0 +1,4 @@ +Flask Documentation +=================== + +.. include:: contents.rst diff --git a/docs/logo.pdf b/docs/logo.pdf new file mode 100644 index 0000000000000000000000000000000000000000..49c5060e2563a6a47986c7a4694f04e859c31dc4 GIT binary patch literal 28884 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 literal 0 HcmV?d00001 From d22428bc8e8c3cf5e6006497cb8164decde31924 Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Sun, 25 Apr 2010 17:08:44 +0200 Subject: [PATCH 2/4] Updated Makefile to also upload and build pdf docs. --- Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c62cf587..c9f0a113 100644 --- a/Makefile +++ b/Makefile @@ -11,4 +11,7 @@ clean-pyc: find . -name '*~' -exec rm -f {} + upload-docs: - $(MAKE) -C docs dirhtml && scp -r docs/_build/dirhtml/* pocoo.org:/var/www/flask.pocoo.org/docs/ + $(MAKE) -C docs dirhtml latex + $(MAKE) -C docs/_build/latex all-pdf + scp -r docs/_build/dirhtml/* pocoo.org:/var/www/flask.pocoo.org/docs/ + scp -r docs/_build/latex/Flask.pdf pocoo.org:/var/www/flask.pocoo.org/docs/flask-docs.pdf From 606b006e2391d12fec5313ce606d82463d7aad07 Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Sun, 25 Apr 2010 17:25:16 +0200 Subject: [PATCH 3/4] Fixed at least one build warning by renaming files. --- Makefile | 4 +++- docs/{contents.rst => contents.rst.inc} | 0 docs/index.rst | 2 +- docs/latexindex.rst | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) rename docs/{contents.rst => contents.rst.inc} (100%) diff --git a/Makefile b/Makefile index c9f0a113..94ad0077 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,9 @@ clean-pyc: find . -name '*~' -exec rm -f {} + upload-docs: - $(MAKE) -C docs dirhtml latex + $(MAKE) -C docs html dirhtml latex $(MAKE) -C docs/_build/latex all-pdf + cd docs/_build/; mv html flask-docs; zip -r flask-docs.zip flask-docs; mv flask-docs html scp -r docs/_build/dirhtml/* pocoo.org:/var/www/flask.pocoo.org/docs/ scp -r docs/_build/latex/Flask.pdf pocoo.org:/var/www/flask.pocoo.org/docs/flask-docs.pdf + scp -r docs/_build/flask-docs.zip pocoo.org:/var/www/flask.pocoo.org/docs/ diff --git a/docs/contents.rst b/docs/contents.rst.inc similarity index 100% rename from docs/contents.rst rename to docs/contents.rst.inc diff --git a/docs/index.rst b/docs/index.rst index e7ab260b..2c3159c7 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -25,4 +25,4 @@ following links: .. _Jinja2: http://jinja.pocoo.org/2/ .. _Werkzeug: http://werkzeug.pocoo.org/ -.. include:: contents.rst +.. include:: contents.rst.inc diff --git a/docs/latexindex.rst b/docs/latexindex.rst index be54f2de..0b611b45 100644 --- a/docs/latexindex.rst +++ b/docs/latexindex.rst @@ -1,4 +1,4 @@ Flask Documentation =================== -.. include:: contents.rst +.. include:: contents.rst.inc From f419937d2c5f2db16a8157a0a061b92c38876649 Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Sun, 25 Apr 2010 17:33:56 +0200 Subject: [PATCH 4/4] License after API docs --- docs/contents.rst.inc | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/contents.rst.inc b/docs/contents.rst.inc index 72491049..1e9e7df9 100644 --- a/docs/contents.rst.inc +++ b/docs/contents.rst.inc @@ -17,25 +17,25 @@ web development. deploying/index becomingbig -Additional Notes ----------------- +API Reference +------------- -Design notes, legal information and changelog are here for the interested: +If you are looking for information on a specific function, class or +method, this part of the documentation is for you: .. toctree:: :maxdepth: 2 - design - license - changelog + api -API Reference -------------- +Additional Notes +---------------- -If you are looking for information on a specific function, class or -method, this part of the documentation is for you: +Design notes, legal information and changelog are here for the interested: .. toctree:: :maxdepth: 2 - api + design + license + changelog