website/source/conf.py

327 lines
9 KiB
Python

# -*- coding: utf-8 -*-
import os
import ablog
project = 'Nerv Project'
basename = 'nervproject'
project_uid = basename # ISBN, etc.
baseurl = 'https://www.nerv-project.eu/'
copyright = '2020, Nerv Project ASBL'
author = 'Nerv Project ASBL'
publisher = 'Nerv Project ASBL'
site_url = 'https://www.nerv-project.eu/'
vcs_uri = "https://procrastinator.nerv-project.eu/"
repository_name = 'nerv-project/'
repository_name += 'nerv_website'
use_ablog = True
use_bibtex = False
use_git = True
language = 'fr'
html_favicon = '_static/favicon.ico'
version = "0.1"
release = "0.1"
if use_ablog:
blog_title = project
blog_baseurl = baseurl
blog_default_author = 'kujiu'
blog_default_location = 'BLA'
blog_authors = {
'kujiu': ('Kujiu', 'https://www.kujiu.org'),
'ptitgnu': ('PtitGNU', 'https://www.it4freedom.net/blog.html'),
'springouille': ('Springouille', 'https://www.instagram.com/springouille/'),
}
blog_locations = {
'BLA': (
"Braine-l'Alleud",
"https://fr.wikipedia.org/wiki/Braine-l'Alleud"
),
}
post_date_format = 'Le %d %b %Y à %H:%M'
post_auto_excerpt = 1
post_auto_image = 1
post_redirect_refresh = 5
post_always_section = False
post_auto_orphan = True
blog_feed_fulltext = False
blog_feed_subtitle = None
blog_feed_titles = False
blog_feed_length = 30
fontawesome_link_cdn = None
fontawesome_included = True
fontawesome_css_file = ''
show_authors = True
if use_git:
from git import Repo
repo = Repo(
os.path.join(
os.path.dirname(os.path.realpath(__file__)),
'..'
)
)
repo.config_reader()
if not repo.head.is_detached:
version = repo.head.ref.name
release = version + ' [' + repo.commit().hexsha[:20] + ']'
repository_uri = vcs_uri + repository_name
issues_uri = repository_uri + "/issues/{issue}"
issues_pr_uri = repository_uri + "/merge_requests/{pr}"
issues_commit_uri = repository_uri + "/commit/{commit}"
issues_user_uri = vcs_uri + "/{user}"
extensions = [
'sphinxemoji.sphinxemoji',
'sphinxcontrib.actdiag',
'sphinxcontrib.blockdiag',
'sphinxcontrib.nwdiag',
'sphinxcontrib.seqdiag',
'sphinxcontrib.images',
'sphinx.ext.extlinks',
'sphinx.ext.intersphinx',
'sphinx.ext.todo',
'sphinx_issues',
'sphinx_sitemap',
'sphinx_fasvg',
]
if use_ablog:
extensions.append('ablog')
if use_git:
extensions.append('sphinx_git')
if use_bibtex:
extensions.append('sphinxcontrib.bibtex')
locale_dirs = ['locale/']
if use_ablog:
locale_dirs.append(
os.path.join(ablog.get_html_templates_path(), '..', 'locale'),
)
images_config = {
"default_show_title": True,
"override_image_directive": True,
"show_caption": True,
}
templates_path = ['_templates']
source_suffix = '.rst'
master_doc = 'index'
exclude_patterns = []
pygments_style = 'sphinx'
html_logo = '_static/logo.svg'
html_theme = 'nervproject'
html_theme_options = {
"logoalt": "Deux ronds bleu et orange s'entre-déchirent pour former la lettre N.",
"social": [
('brands', 'twitter', 'twitter', 'http://twitter.com/@nerv_project'),
('solid', 'mug-hot', 'gitea', 'https://procrastinator.nerv-project.eu/nerv-project'),
('solid', 'hashtag', 'xmpp', 'xmpp:asbl@clac.nerv-project.eu'),
('regular', 'comments', 'movim', 'https://clac.nerv-project.eu/'),
('solid', 'film', 'peertube', 'https://clap.nerv-project.eu/video-channels/kujiu_channel/videos'),
('brands', 'youtube', 'youtube', 'https://www.youtube.com/channel/UC6LcFMVZUOs4WbKvV3p1xVw'),
('solid', 'podcast', 'podcasts', 'https://kreskenn.nerv-project.eu'),
('solid', 'rss', 'rss', 'https://www.nerv-project.eu/blog/atom.xml'),
('solid', 'rss', 'newsletter (rss)', 'https://morpork.nerv-project.eu/blog/atom.xml'),
('solid', 'envelope', 'newsletter', 'https://e8eb781a.sibforms.com/serve/MUIEAJvJnY3tRS7Nh4RvCneup4b6zYrTqGw3TUsq3igy7_QACEbhSd8G26qTXES6uJS-fGtcGBaji0Os0eWK2CY2it80LrbbXL7WRdNibWlpKtLD2sv43rRROQxdBktxF0qci_7hXvkRuAKLRk_X3NtNCkRUV2prn0BHb4g4tr8vck_yic-nw_ZQlmAPWSrFd1FwGBGTqf1M_Frm'),
],
"twitter_user": "nerv_project",
"fathom": {
'url': '//casanabo.nerv-project.eu',
'id': 'CVTXH',
},
'isso': {
'prefix': '/isso/nervproject',
'url': baseurl + '/isso/nervproject',
'require_author': "true",
'reply_to_self': "true",
'require_author': "true",
'require_email': "false",
'reply_notif': "true",
'max_comments_top': 20,
'max_comments_nested': 20,
'reveal_on_click': 20,
'avatar': "true",
'vote': "false",
'vote_levels': "",
'feed': "true",
},
"license": {
'type': 'CC',
'subtype': 'BY-SA',
'version': '4.0',
'url': 'https://creativecommons.org/licenses/by-sa/4.0/legalcode'
}
}
html_static_path = ['_static']
html_sidebars = {
'**': [
'about.html',
'postcard.html', 'util/sidetoc.html',
'recentposts.html', 'tagcloud.html',
'categories.html', 'archives.html',
'social.html',
'util/searchbox.html',
],
}
html_baseurl = baseurl
htmlhelp_basename = basename
pyppeteer_pdf_options = {
'printBackground': True,
'format': 'A4',
'margin': {
'top': '0mm',
'bottom': '0mm',
'left': '0mm',
'right': '0mm'
}
}
latex_engine = 'xelatex'
latex_toplevel_sectioning = 'chapter'
latex_show_urls = 'footnote'
latex_elements = {
# 'figure_align': 'htbp',
# 'extraclassoptions': '',
'papersize': 'a4paper',
'pointsize': '12pt',
'extraclassoptions': 'twoside',
'fontpkg': r'''
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Linux Biolinum O}
\setsansfont{Linux Biolinum O}
'''
}
latex_show_pagerefs = True
latex_documents = [
(master_doc, basename + '.tex', project,
author, 'book'),
]
man_pages = [
(master_doc, basename.lower(), project, [author], 1)
]
texinfo_documents = [
(master_doc, basename, project,
author, basename, '',
'Miscellaneous'),
]
epub_title = project
epub_author = author
epub_publisher = publisher
epub_copyright = copyright
epub_identifier = project_uid
epub_uid = ''
epub_exclude_files = [
'index.xhtml',
'search.xhtml',
'blog.xhtml',
'submit_success.xhtml',
'contact.xhtml',
'403.xhtml',
'404.xhtml',
'blog/archive.xhtml',
'blog/category.xhtml',
'blog/drafts.xhtml',
'blog/author.xhtml',
'blog/language.xhtml',
'blog/location.xhtml',
'blog/location/braine-lalleud.xhtml',
'blog/language/francais.xhtml',
'blog/author/kujiu.xhtml',
'blog/author/ptitgnu.xhtml',
'blog/2014.xhtml',
'blog/2015.xhtml',
'blog/2016.xhtml',
'blog/2017.xhtml',
'blog/2018.xhtml',
'blog/2019.xhtml',
'blog/2020.xhtml',
'blog/2021.xhtml',
'blog/2022.xhtml',
'blog/2023.xhtml',
'blog/2024.xhtml',
'blog/category/accueil.xhtml',
'blog/category/outils.xhtml',
'blog/category/la-victoire-des-grelots.xhtml',
'blog/category/series.xhtml',
'blog/category/one-shots.xhtml',
'publications/index.xhtml',
'publications/series/la_victoire_des_grelots/index.xhtml',
'publications/series/la_victoire_des_grelots/progression.xhtml',
'outils/index.xhtml',
'outils/sphinx_storymaker.xhtml',
'outils/sphinx_studiowriter.xhtml',
'google82f190054a773ed9.xhtml',
'genindex.xhtml',
'historique.xhtml',
'apropos.xhtml',
'nav.xhtml'
]
epub_theme = 'nervproject'
epub_theme_options = html_theme_options
epub_show_urls = 'footnote'
diag_antialias = True
diag_transparency = True
diag_html_image_format = "SVG"
diag_latex_image_format = "PDF"
diag_fontpath = os.path.dirname(os.path.realpath(__file__))
diag_fontpath = os.path.join(diag_fontpath, '_static', 'biolinumrah.ttf')
diag_debug = False
actdiag_antialias = diag_antialias
actdiag_transparency = diag_transparency
actdiag_html_image_format = diag_html_image_format
actdiag_latex_image_format = diag_latex_image_format
actdiag_fontpath = diag_fontpath
actdiag_debug = diag_debug
blockdiag_antialias = diag_antialias
blockdiag_transparency = diag_transparency
blockdiag_html_image_format = diag_html_image_format
blockdiag_fontpath = diag_fontpath
blockdiag_latex_image_format = diag_latex_image_format
blockdiag_debug = diag_debug
nwdiag_antialias = diag_antialias
nwdiag_transparency = diag_transparency
nwdiag_html_image_format = diag_html_image_format
nwdiag_latex_image_format = diag_latex_image_format
nwdiag_fontpath = diag_fontpath
nwdiag_debug = diag_debug
seqdiag_antialias = diag_antialias
seqdiag_transparency = diag_transparency
seqdiag_html_image_format = diag_html_image_format
seqdiag_latex_image_format = diag_latex_image_format
seqdiag_fontpath = diag_fontpath
seqdiag_debug = diag_debug
if use_bibtex:
import pybtex.style.formatting
from pybtex.richtext import Text, Tag
class NervPybtexStyle(pybtex.style.formatting.BaseStyle):
def format_article(self, entry):
return Text(Tag('em', entry.fields['key']))