mirror of
				https://github.com/irmen/prog8.git
				synced 2025-10-31 00:16:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			205 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			205 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # -*- coding: utf-8 -*-
 | |
| #
 | |
| # Configuration file for the Sphinx documentation builder.
 | |
| #
 | |
| # This file does only contain a selection of the most common options. For a
 | |
| # full list see the documentation:
 | |
| # http://www.sphinx-doc.org/en/stable/config
 | |
| 
 | |
| # -- Path setup --------------------------------------------------------------
 | |
| 
 | |
| # 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.
 | |
| #
 | |
| # import sys
 | |
| # sys.path.insert(0, os.path.abspath('.'))
 | |
| 
 | |
| 
 | |
| # -- Project information -----------------------------------------------------
 | |
| 
 | |
| import subprocess
 | |
| 
 | |
| project = "Prog8"
 | |
| copyright = "Irmen de Jong"
 | |
| author = "Irmen de Jong"
 | |
| 
 | |
| 
 | |
| def read_properties(filename):
 | |
|     props = {}
 | |
|     for line in open("../../gradle.properties").readlines():
 | |
|         key, value = line.split("=")
 | |
|         props[key] = value
 | |
|     return props
 | |
| 
 | |
| 
 | |
| # The short X.Y version
 | |
| version = read_properties("gradle.properties")["version"].strip()
 | |
| # The full version, including alpha/beta/rc tags
 | |
| release = version
 | |
| 
 | |
| if release.endswith("SNAPSHOT"):
 | |
|     commit_id = subprocess.run(
 | |
|         ["git", "rev-parse", "HEAD"], capture_output=True, text=True, check=True
 | |
|     ).stdout.strip()
 | |
| else:
 | |
|     commit_id = f"v{release}"
 | |
| 
 | |
| 
 | |
| # -- extensions
 | |
| 
 | |
| 
 | |
| def setup(app):
 | |
|     # add custom css
 | |
|     app.add_css_file("css/customize.css")
 | |
| 
 | |
| 
 | |
| # -- General configuration ---------------------------------------------------
 | |
| 
 | |
| # If your documentation needs a minimal Sphinx version, state it here.
 | |
| #
 | |
| needs_sphinx = "5.3"
 | |
| 
 | |
| # Add any Sphinx extension module names here, as strings. They can be
 | |
| # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 | |
| # ones.
 | |
| extensions = [
 | |
|     "sphinxcontrib.jquery",
 | |
|     "sphinx_rtd_dark_mode",
 | |
|     "sphinx.ext.imgconverter",
 | |
|     "sphinx.ext.extlinks",
 | |
| ]
 | |
| 
 | |
| # Add any paths that contain templates here, relative to this directory.
 | |
| templates_path = ["_templates"]
 | |
| 
 | |
| # The suffix(es) of source filenames.
 | |
| # You can specify multiple suffix as a list of string:
 | |
| #
 | |
| # source_suffix = ['.rst', '.md']
 | |
| source_suffix = ".rst"
 | |
| 
 | |
| # The master toctree document.
 | |
| master_doc = "index"
 | |
| 
 | |
| # The language for content autogenerated by Sphinx. Refer to documentation
 | |
| # for a list of supported languages.
 | |
| #
 | |
| # This is also used if you do content translation via gettext catalogs.
 | |
| # Usually you set "language" from the command line for these cases.
 | |
| # language = 'en'
 | |
| 
 | |
| # List of patterns, relative to source directory, that match files and
 | |
| # directories to ignore when looking for source files.
 | |
| # This pattern also affects html_static_path and html_extra_path .
 | |
| exclude_patterns = []
 | |
| 
 | |
| # The name of the Pygments (syntax highlighting) style to use.
 | |
| pygments_style = "sphinx"
 | |
| # highlight_language = 'none'
 | |
| 
 | |
| 
 | |
| # -- 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_rtd_theme"
 | |
| 
 | |
| # logo in top of sidebar
 | |
| html_logo = "_static/logo_small.jpg"
 | |
| 
 | |
| # 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 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"]
 | |
| 
 | |
| # Custom sidebar templates, must be a dictionary that maps document names
 | |
| # to template names.
 | |
| #
 | |
| # The default sidebars (for documents that don't match any pattern) are
 | |
| # defined by theme itself.  Builtin themes are using these templates by
 | |
| # default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
 | |
| # 'searchbox.html']``.
 | |
| #
 | |
| # html_sidebars = {}
 | |
| 
 | |
| 
 | |
| # -- Options for HTMLHelp output ---------------------------------------------
 | |
| 
 | |
| # Output file base name for HTML help builder.
 | |
| htmlhelp_basename = "Prog8doc"
 | |
| 
 | |
| 
 | |
| # -- Options for LaTeX output ------------------------------------------------
 | |
| 
 | |
| latex_elements = {
 | |
|     # The paper size ('letterpaper' or 'a4paper').
 | |
|     #
 | |
|     # 'papersize': 'letterpaper',
 | |
|     # The font size ('10pt', '11pt' or '12pt').
 | |
|     #
 | |
|     # 'pointsize': '10pt',
 | |
|     # Additional stuff for the LaTeX preamble.
 | |
|     #
 | |
|     # 'preamble': '',
 | |
|     # Latex figure (float) alignment
 | |
|     #
 | |
|     # 'figure_align': 'htbp',
 | |
| }
 | |
| 
 | |
| # Grouping the document tree into LaTeX files. List of tuples
 | |
| # (source start file, target name, title,
 | |
| #  author, documentclass [howto, manual, or own class]).
 | |
| latex_documents = [
 | |
|     (master_doc, "Prog8.tex", "Prog8 Documentation", "Irmen de Jong", "manual"),
 | |
| ]
 | |
| 
 | |
| 
 | |
| # -- Options for manual page output ------------------------------------------
 | |
| 
 | |
| # One entry per manual page. List of tuples
 | |
| # (source start file, name, description, authors, manual section).
 | |
| man_pages = [(master_doc, "prog8", "Prog8 Documentation", [author], 1)]
 | |
| 
 | |
| 
 | |
| # -- 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 = [
 | |
|     (
 | |
|         master_doc,
 | |
|         "Prog8",
 | |
|         "Prog8 Documentation",
 | |
|         author,
 | |
|         "Prog8",
 | |
|         "One line description of project.",
 | |
|         "Miscellaneous",
 | |
|     ),
 | |
| ]
 | |
| 
 | |
| 
 | |
| # -- Extension configuration -------------------------------------------------
 | |
| 
 | |
| # user starts in light mode
 | |
| default_dark_mode = False
 | |
| 
 | |
| # -- Options for to do extension ----------------------------------------------
 | |
| 
 | |
| # todo_include_todos = True
 | |
| 
 | |
| suppress_warnings = ["epub.unknown_project_files", "html.unknown_project_files"]
 | |
| 
 | |
| extlinks = {"source": (f"https://github.com/irmen/prog8/tree/{commit_id}/%s", None)}
 | |
| rst_prolog = f"""
 | |
| .. |commit_id| replace:: {commit_id}
 | |
| """
 |