Skip to content
Snippets Groups Projects
conf.py 6.91 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    #
    # funkwhale documentation build configuration file, created by
    # sphinx-quickstart on Sun Jun 25 18:49:23 2017.
    #
    # 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.
    
    # 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 os
    import sys
    
    import datetime
    from shutil import copyfile
    
    sys.path.insert(0, os.path.abspath("../api"))
    
    
    import funkwhale_api  # NOQA
    
    Agate's avatar
    Agate committed
    FUNKWHALE_CONFIG = {
        "FUNKWHALE_URL": "mypod.funkwhale",
        "FUNKWHAL_PROTOCOL": "https",
        "DATABASE_URL": "postgres://localhost:5432/db",
        "AWS_ACCESS_KEY_ID": 'my_access_key',
        "AWS_SECRET_ACCESS_KEY": 'my_secret_key',
        "AWS_STORAGE_BUCKET_NAME": 'my_bucket',
    }
    for key, value in FUNKWHALE_CONFIG.items():
        os.environ[key] = value
    
    # -- 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.
    
    Agate's avatar
    Agate committed
    extensions = ["sphinx.ext.graphviz", "sphinx.ext.autodoc"]
    autodoc_mock_imports = ["celery", "django_auth_ldap", "ldap"]
    add_module_names = False
    
    # Add any paths that contain templates here, relative to this directory.
    
    
    # The suffix(es) of source filenames.
    # You can specify multiple suffix as a list of string:
    #
    # source_suffix = ['.rst', '.md']
    
    
    # The master toctree document.
    
    
    # General information about the project.
    
    year = datetime.datetime.now().year
    
    copyright = "{}, Eliot Berriot".format(year)
    
    
    # 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 = funkwhale_api.__version__
    
    if "-dev" in version:
        version = "develop"
    
    # The full version, including alpha/beta/rc tags.
    
    release = version
    
    
    # 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 = None
    
    # List of patterns, relative to source directory, that match files and
    # directories to ignore when looking for source files.
    # This patterns also effect to html_static_path and html_extra_path
    
    exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
    
    
    # The name of the Pygments (syntax highlighting) style to use.
    
    
    # If true, `todo` and `todoList` produce output, else they produce nothing.
    todo_include_todos = False
    
    # -- Options for HTML output ----------------------------------------------
    
    # The theme to use for HTML and HTML Help pages.  See the documentation for
    # a list of builtin themes.
    #
    
    
    # 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 = {"gitlab_url": "https://dev.funkwhale.audio/funkwhale/funkwhale"}
    
        "display_gitlab": True,
        "gitlab_host": "dev.funkwhale.audio",
        "gitlab_repo": "funkwhale",
        "gitlab_user": "funkwhale",
        "gitlab_version": "master",
        "conf_py_path": "/docs/",
    
    html_logo = "logo.svg"
    
    
    # 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".
    
    
    # -- Options for HTMLHelp output ------------------------------------------
    
    # Output file base name for HTML help builder.
    
    htmlhelp_basename = "funkwhaledoc"
    
    
    
    # -- 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, "funkwhale.tex", "funkwhale Documentation", "Eliot Berriot", "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, "funkwhale", "funkwhale 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,
            "funkwhale",
            "funkwhale Documentation",
            author,
            "funkwhale",
            "One line description of project.",
            "Miscellaneous",
        )
    
    
    # -- Build legacy redirect files -------------------------------------------
    
    # Define list of redirect files to be build in the Sphinx build process
    
    redirect_files = [
    
        ("importing-music.html", "admin/importing-music.html"),
        ("architecture.html", "developers/architecture.html"),
        ("troubleshooting.html", "admin/troubleshooting.html"),
        ("configuration.html", "admin/configuration.html"),
        ("upgrading/index.html", "../admin/upgrading.html"),
        ("upgrading/0.17.html", "../admin/0.17.html"),
        ("users/django.html", "../admin/django.html"),
    
    ]
    
    # Generate redirect template
    
    redirect_template = """\
    <html>
      <head>
        <meta http-equiv="refresh" content="1; url={new}" />
        <script>
          window.location.href = "{new}"
        </script>
      </head>
    </html>
    """
    
    # Tell Sphinx to copy the files
    
    
    def copy_legacy_redirects(app, docname):
    
        if app.builder.name == "html":
    
            for html_src_path, new in redirect_files:
                page = redirect_template.format(new=new)
    
                target_path = app.outdir + "/" + html_src_path
    
                if not os.path.exists(os.path.dirname(target_path)):
    
                    os.makedirs(os.path.dirname(target_path))
                with open(target_path, "w") as f:
                    f.write(page)
    
        app.connect("build-finished", copy_legacy_redirects)