From 4436a9848208d76fa6d1aa9077b54a3d29645c68 Mon Sep 17 00:00:00 2001 From: Jean-Philippe ARGAUD Date: Mon, 25 May 2020 16:39:48 +0200 Subject: [PATCH] Conditional use 'Read The Docs' theme for documentation (Tuleap [bos #18858]) --- Doc/CMakeLists.txt | 31 +++-- Doc/conf.py | 310 +++++++++++++++------------------------------ Doc/conf.py.in | 247 ------------------------------------ 3 files changed, 119 insertions(+), 469 deletions(-) delete mode 100644 Doc/conf.py.in diff --git a/Doc/CMakeLists.txt b/Doc/CMakeLists.txt index 12067fce..da7ad195 100755 --- a/Doc/CMakeLists.txt +++ b/Doc/CMakeLists.txt @@ -1,13 +1,23 @@ -find_package(Sphinx REQUIRED) +# Copyright (C) 2001-2020 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -if(NOT DEFINED SPHINX_THEME) - set(SPHINX_THEME basic) -endif() +find_package(Sphinx REQUIRED) -if(NOT DEFINED SPHINX_THEME_DIR) - set(SPHINX_THEME_DIR) -endif() - # configured documentation tools and intermediate build results set(BINARY_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/_build") @@ -17,11 +27,6 @@ set(SPHINX_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_doctrees") # HTML output directory set(SPHINX_HTML_DIR "${CMAKE_CURRENT_BINARY_DIR}/html") -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/conf.py.in" - "${BINARY_BUILD_DIR}/conf.py" - @ONLY) - add_custom_target(EFICAS_NOUVEAUdoc ALL ${SPHINX_EXECUTABLE} -q -b html diff --git a/Doc/conf.py b/Doc/conf.py index a242a882..819c52a2 100644 --- a/Doc/conf.py +++ b/Doc/conf.py @@ -1,247 +1,139 @@ # -*- coding: utf-8 -*- # -# Eficas documentation build configuration file, created by -# sphinx-quickstart on Thu Oct 1 10:55:47 2015. +# Copyright (C) 2001-2020 EDF R&D # -# This file is execfile()d with the current directory set to its containing dir. +# This file is part of SALOME EFICAS module # -# Note that not all possible configuration values are present in this -# autogenerated file. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys, os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'Eficas' -copyright = u'2015, Pascale Noyret' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# The short X.Y version. -version = '7.7' -# The full version, including alpha/beta/rc tags. -release = '7.7.0' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None +import sys, os, time, sphinx, logging -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# -- Module version information -------------------------------------------------- -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True +if "module_version" not in locals(): + module_version = lambda : None + module_version.name = "EFICAS_NOUVEAU" + module_version.year = "%s"%(time.localtime()[0],) + module_version.version = "" + logging.warning('Using fallback "module_version" because none was found') -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False +# -- Project information ------------------------------------------------------- -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +project = u'%s'%module_version.name +author = u'Pascale NOYRET' +copyright = u'2001-%s, EDF R&D, %s'%(module_version.year,author) +version = '%s'%module_version.version +release = '%s'%module_version.version +doctitle = u"%s documentation"%module_version.name +docfull = u"Editeur de FIchier de Commandes et Analyseur Sémantique" -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# -- General configuration ----------------------------------------------------- +from distutils.version import LooseVersion #, StrictVersion +__lv = LooseVersion(sphinx.__version__) +if __lv < LooseVersion("1.4.0"): + extensions = ['sphinx.ext.pngmath'] +else: + extensions = ['sphinx.ext.imgmath'] +try: + import sphinx_rtd_theme + extensions += ['sphinx_rtd_theme'] + use_rtd_theme = True + logging.debug('Using "sphinx_rtd_theme" that was found') +except: + use_rtd_theme = False + logging.debug('Not using "sphinx_rtd_theme" because none was found') +# +source_suffix = '.rst' +source_encoding = 'utf-8' +master_doc = 'index' +language = 'en' +exclude_patterns = [ + '_build', + 'Thumbs.db', + '.DS_Store', + ] +pygments_style = None +templates_path = ['_templates'] # -- Options for HTML output --------------------------------------------------- -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'basic' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +if use_rtd_theme: + html_theme = "sphinx_rtd_theme" +else: + html_theme = 'default' if __lv < LooseVersion("1.3.0") else 'classic' +# +html_title = doctitle +html_static_path = ['_static'] +html_show_sourcelink = False +html_search_language = language -# Output file base name for HTML help builder. -htmlhelp_basename = 'Eficasdoc' +# -- Options for HTMLHelp output ----------------------------------------------- +htmlhelp_basename = module_version.name+'doc' # -- Options for LaTeX output -------------------------------------------------- latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - # get rid off blank pages - 'classoptions': ',openany,oneside', - 'babel' : '\\usepackage[english]{babel}', - - - -# Additional stuff for the LaTeX preamble. -#'preamble': '', + 'papersize': 'a4paper', + 'pointsize': '10pt', + 'figure_align': 'htbp', } - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'Eficas.tex', u'Eficas Documentation', - u'Pascale Noyret', 'manual'), + ('index', '%s.tex'%module_version.name, doctitle, + author, '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 - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - # -- Options for manual page output -------------------------------------------- -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). man_pages = [ - ('index', 'eficasdoc', u'Eficas Documentation', - [u'Pascale Noyret'], 1) + (master_doc, '%s'%module_version.name, doctitle, + [author], 1) ] -# If true, show URL addresses after external links. -#man_show_urls = False - - # -- Options for Texinfo output ------------------------------------------------ -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) texinfo_documents = [ - ('index', 'Eficas', u'Eficas Documentation', - u'Pascale Noyret', 'Eficas', 'One line description of project.', - 'Miscellaneous'), + (master_doc, '%s'%module_version.name, doctitle, + author, '%s'%module_version.name, docfull, + 'Miscellaneous'), ] -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# -- Options for Epub output --------------------------------------------------- + +epub_title = doctitle +epub_author = author +epub_publisher = author +epub_copyright = copyright +epub_exclude_files = ['search.html'] + +# -- Options for PDF output ---------------------------------------------------- -# If false, no module index is generated. -#texinfo_domain_indices = True +pdf_documents = [( + 'contents', + u'%s'%module_version.name, + u'%s'%module_version.name, + author, + dict(pdf_compressed = True), +),] +pdf_stylesheets = ['sphinx','kerning','a4'] +pdf_compressed = True +pdf_inline_footnotes = True -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# -- Extension configuration --------------------------------------------------- diff --git a/Doc/conf.py.in b/Doc/conf.py.in deleted file mode 100644 index 40afd7b2..00000000 --- a/Doc/conf.py.in +++ /dev/null @@ -1,247 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Eficas documentation build configuration file, created by -# sphinx-quickstart on Thu Oct 1 10:55:47 2015. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys, os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'Eficas' -copyright = u'2015, Pascale Noyret' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '7.7' -# The full version, including alpha/beta/rc tags. -release = '7.7.0' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = '@SPHINX_THEME@' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -html_theme_path = ['@SPHINX_THEME_DIR@'] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'EFICAS_NOUVEAUdoc' - - -# -- Options for LaTeX output -------------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - # get rid off blank pages - 'classoptions': ',openany,oneside', - 'babel' : '\\usepackage[english]{babel}', - - - -# Additional stuff for the LaTeX preamble. -#'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'Eficas.tex', u'Eficas Documentation', - u'Pascale Noyret', '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 - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'eficasdoc', u'Eficas Documentation', - [u'Pascale Noyret'], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------------ - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ('index', 'Eficas', u'Eficas Documentation', - u'Pascale Noyret', 'Eficas', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' -- 2.39.2