Documentation#
Contents
Head project : tuto_devops#
Inspiration : sphinx-blogging de Chris Chris Holdgraf#
Gitlab project#
Issues#
pipelines#
Site#
root directory#
$ ls -als
total 176
4 drwxr-xr-x 14 4096 nov. 7 14:54 .
4 drwxr-xr-x 3 4096 oct. 31 07:30 ..
4 drwxr-xr-x 4 4096 nov. 7 14:57 _build
4 drwxr-xr-x 9 4096 nov. 7 14:56 chantiers
4 -rwxrwxrwx 1 3900 nov. 7 14:54 conf.py
4 drwxr-xr-x 2 4096 nov. 1 09:08 ethique
4 -rw-r--r-- 1 98 oct. 31 07:55 feed.xml
4 drwxr-xr-x 8 4096 nov. 7 15:03 .git
4 -rwxrwxrwx 1 49 mai 31 10:41 .gitignore
4 -rw-rw-rw- 1 214 août 19 17:43 .gitlab-ci.yml
4 drwxrwxrwx 2 4096 nov. 7 10:28 glossaire
4 drwxr-xr-x 2 4096 oct. 19 18:09 index
4 -rwxrwxrwx 1 800 nov. 7 14:51 index.rst
4 -rw-r--r-- 1 1177 nov. 6 08:46 Makefile
4 drwxr-xr-x 2 4096 oct. 31 12:17 manifeste
4 drwxr-xr-x 4 4096 nov. 7 07:33 meta
84 -rw-r--r-- 1 85325 nov. 6 19:59 poetry.lock
4 -rw-rw-rw- 1 1141 nov. 6 08:47 .pre-commit-config.yaml
4 -rw-rw-rw- 1 338 oct. 26 17:44 pyproject.toml
4 -rw-rw-rw- 1 2019 nov. 7 07:18 requirements.txt
4 drwxr-xr-x 8 4096 nov. 2 08:58 ressources
4 drwxr-xr-x 3 4096 nov. 7 15:02 reunions
4 drwxr-xr-x 2 4096 nov. 4 19:07 _static
4 drwxr-xr-x 3 4096 oct. 31 16:41 syndicats
pyproject.toml#
1[tool.poetry]
2name = "onestlatech"
3version = "0.1.0"
4description = "onestlatech"
5authors = ["Patrick <patbakou@riseup.net>"]
6license = "MIT"
7
8[tool.poetry.dependencies]
9python = "^3.11"
10sphinx = "*"
11sphinx-panels = "*"
12ablog = "*"
13pydata-sphinx-theme = "*"
14myst-parser = "*"
15myst_nb = "*"
16
17
18[tool.poetry.dev-dependencies]
conf.py#
1#
2# onestla.tech
3#
4import sys, os
5
6import platform
7from datetime import datetime
8
9# https://docs.python.org/3.9/library/zoneinfo.html
10from zoneinfo import ZoneInfo
11
12source_suffix = ".rst"
13master_doc = "index"
14index_doc = "index"
15now = datetime.now(tz=ZoneInfo("Europe/Paris"))
16version = f"{now.year}-{now.month:02}-{now.day:02} {now.hour:02}H ({now.tzinfo})"
17project = "onestla.tech"
18copyright = f"2011-{now.year}, onestlatech, Creative Commons CC BY-NC-SA 3.0. Built with Python {platform.python_version()}"
19release = version
20exclude_patterns = [".venv", "build", ".git"]
21extensions = ["sphinx.ext.intersphinx"]
22html_theme = "bizstyle"
23pygments_style = "colorful"
24html_title = "Onestlatech"
25html_short_title = html_title
26intersphinx_mapping = {
27 "http://france1.frama.io/juridique": None,
28 "https://international.frama.io/cnt/": None,
29}
30extensions += ["sphinx.ext.todo"]
31todo_include_todos = True
32extensions += [
33 # https://ablog.readthedocs.io/manual/markdown/
34 "myst_nb",
35]
36# MyST config
37myst_update_mathjax = False
38myst_admonition_enable = True
39myst_deflist_enable = True
40extensions += [
41 "ablog",
42]
43# https://ablog.readthedocs.io/manual/ablog-configuration-options/
44#####################################################################
45blog_path = "onestlatech"
46# Base URL for the website, required for generating feeds.
47blog_baseurl = "https://france1.frama.io/onestlatech/"
48blog_title = "onestlatech"
49# Post related
50# Date display format (default is '%b %d, %Y') for published posts
51post_date_format = "%Y-%m-%d"
52# Number of seconds (default is 5) that a redirect page waits before
53# refreshing the page to redirect to the post
54post_redirect_refresh = 1
55# Index of the image that will be displayed in the excerpt of the post.
56# Default is 0, meaning no image.
57# Setting this to 1 will include the first image, when available, to the excerpt.
58# This option can be set on a per post basis using post directive option image
59post_auto_image = 1
60# Number of paragraphs (default is 1) that will be displayed as an excerpt from the post
61post_auto_excerpt = 4
62# Blog feeds
63blog_feed_archives = True
64blog_feed_fulltext = True
65blog_feed_subtitle = False
66blog_feed_titles = False
67# Specify number of recent posts to include in feeds, default is None for all posts
68blog_feed_length = None
69# Font awesome
70# ABlog templates will use of Font Awesome icons if one of the following is set: fontawesome_link_cdn
71fontawesome_included = True
72# https://ablog.readthedocs.io/manual/posting-and-listing/?highlight=blog_post_pattern#posting-with-page-front-matter
73# Instead of adding blogpost: true to each page, you may also provide a
74# pattern (or list of patterns) in your conf.py file using the blog_post_pattern option
75blog_post_pattern = "news/*/*/*"
76html_extra_path = ["feed.xml"]
77liste_full = [
78 "postcard.html",
79 "recentposts.html",
80 "sourcelink.html",
81 "archives.html",
82 "tagcloud.html",
83 "categories.html",
84 "searchbox.html",
85]
86html_sidebars = {
87 "index": liste_full,
88 "meta/**": liste_full,
89 "chantiers/**": liste_full,
90 "reunions/**": liste_full,
91 "ethique/**": liste_full,
92 "glossaire/**": liste_full,
93 "manifeste/**": liste_full,
94 "ressources/**": liste_full,
95 "syndicats/**": liste_full,
96}
97extensions += [
98 "sphinx_panels",
99]
100# Panels config
101panels_add_bootstrap_css = False
102exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", ".venv"]
103pygments_style = "sphinx"
104html_theme = "pydata_sphinx_theme"
105html_theme_options = {
106 "search_bar_text": "Search this site...",
107}
108
109
gitlab-ci.yaml#
1image: python:3.11.1-slim-bullseye
2
3pages:
4 script:
5 - pip install -r requirements.txt
6 - sphinx-build -d _build/doctrees . _build/html
7 - mv _build/html public
8 artifacts:
9 paths:
10 - public
11 only:
12 - main
.pre-commit-config.yaml#
1---
2
3# .pre-commit-config.yaml
4# ========================
5#
6# pre-commit clean
7# pre-commit install
8# pre-commit install-hooks
9#
10# precommit hooks installation
11#
12# - pre-commit autoupdate
13#
14# - pre-commit run black
15#
16# continuous integration
17# ======================
18#
19# - pre-commit run --all-files
20#
21
22repos:
23 - repo: https://github.com/pre-commit/pre-commit-hooks
24 rev: v4.4.0
25 hooks:
26 - id: trailing-whitespace
27 - id: end-of-file-fixer
28 - id: check-yaml
29 - id: check-json
30 - id: fix-encoding-pragma
31 args: ['--remove']
32 - id: forbid-new-submodules
33 - id: mixed-line-ending
34 args: ['--fix=lf']
35 description: Forces to replace line ending by the UNIX 'lf' character.
36 # - id: pretty-format-json
37 # args: ['--no-sort-keys']
38 - id: check-added-large-files
39 args: ['--maxkb=1000']
40 - id: no-commit-to-branch
41 args: [--branch, staging]
42
43 - repo: https://github.com/ambv/black
44 rev: 22.12.0
45 hooks:
46 - id: black
47 language_version: python3.9
48
49 - repo: https://github.com/asottile/reorder_python_imports
50 rev: v3.9.0
51 hooks:
52 - id: reorder-python-imports
Makefile#
1# Minimal makefile for Sphinx documentation
2#
3
4# You can set these variables from the command line.
5SPHINXOPTS =
6SPHINXBUILD = sphinx-build
7SPHINXPROJ = Tutopython
8SOURCEDIR = .
9BUILDDIR = _build
10
11THIS_MAKEFILE := $(lastword $(MAKEFILE_LIST))
12
13# Put it first so that "make" without argument is like "make help".
14help:
15 @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
16 @echo " "
17 @echo "Targets:"
18 @echo " "
19 @echo "- make check_all"
20 @echo "- make req"
21 @echo "- make updatetools"
22 @echo "- make update"
23 @echo "- make tree"
24 @echo " "
25
26
27check_all:
28 pre-commit run --all-files
29
30req:
31 poetry env info --path
32 poetry show --tree
33 poetry check
34 poetry export -f requirements.txt --without-hashes > requirements.txt
35 cat requirements.txt
36
37tree:
38 rm -Rf _build
39 tree -L 7 > tree.txt
40
41update:
42 poetry update
43 @$(MAKE) -f $(THIS_MAKEFILE) req
44
45 pre-commit autoupdate
46
47updatetools:
48 pre-commit autoupdate
49 gitmoji --update
50 git status
51
52.PHONY: help Makefile
53
54# Catch-all target: route all unknown targets to Sphinx using the new
55# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
56%: Makefile
57 @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
Arborescence de la documentation#
make tree
1.
2├── chantiers
3│ ├── chantier_1
4│ │ ├── chantier_1.rst
5│ │ └── ressources
6│ │ ├── cest_quoi_un_syndicat
7│ │ │ └── cest_quoi_un_syndicat.rst
8│ │ ├── differences_structurelles
9│ │ │ └── differences_struturelles.rst
10│ │ └── ressources.rst
11│ ├── chantier_2
12│ │ ├── chantier_2.rst
13│ │ └── outils
14│ │ ├── decidim
15│ │ │ └── decidim.rst
16│ │ ├── loomio
17│ │ │ └── loomio.rst
18│ │ ├── outils.rst
19│ │ └── padlet
20│ │ └── padlet.rst
21│ ├── chantier_3
22│ │ └── chantier_3.rst
23│ ├── chantier_4
24│ │ └── chantier_4.rst
25│ ├── chantier_5
26│ │ └── chantier_5.rst
27│ ├── chantier_6
28│ │ ├── chantier_6.rst
29│ │ └── posts
30│ │ ├── 2020
31│ │ │ ├── 11
32│ │ │ │ ├── 07
33│ │ │ │ │ └── 07.rst
34│ │ │ │ └── 11.rst
35│ │ │ └── 2020.rst
36│ │ └── posts.rst
37│ ├── chantier_7
38│ │ └── chantier_7.rst
39│ └── chantiers.rst
40├── conf.py
41├── ethique
42│ └── ethique.rst
43├── feed.xml
44├── glossaire
45│ └── glossaire.rst
46├── index
47│ └── index.rst
48├── index.rst
49├── Makefile
50├── manifeste
51│ └── manifeste.rst
52├── meta
53│ ├── documentation
54│ │ └── documentation.rst
55│ ├── meta.rst
56│ └── onestlatech
57│ └── onestlatech.rst
58├── poetry.lock
59├── pyproject.toml
60├── requirements.txt
61├── ressources
62│ ├── climat
63│ │ ├── bonpoteofficiel
64│ │ │ └── bonpoteofficiel.rst
65│ │ ├── cassouman40
66│ │ │ └── cassouman40.rst
67│ │ ├── climat.rst
68│ │ ├── peter_kalmus
69│ │ │ └── peter_kalmus.rst
70│ │ └── valmasdel
71│ │ └── valmasdel.rst
72│ ├── economie
73│ │ ├── economie.rst
74│ │ ├── gael_giraud
75│ │ │ └── gael_giraud.rst
76│ │ ├── gilles_raveaud
77│ │ │ └── gilles_raveaud.rst
78│ │ └── maxim_combes
79│ │ └── maxim_combes.rst
80│ ├── energie
81│ │ ├── centrale_energie
82│ │ │ └── centrale_energie.rst
83│ │ ├── energie.rst
84│ │ └── theshiftproject
85│ │ └── theshiftproject_energie.rst
86│ ├── informatique
87│ │ ├── adullact
88│ │ │ └── adullact.rst
89│ │ ├── april
90│ │ │ └── april.rst
91│ │ ├── chatons
92│ │ │ └── chatons.rst
93│ │ ├── codefor.fr
94│ │ │ └── codefor.fr.rst
95│ │ ├── cooptilleuls
96│ │ │ └── cooptilleuls.rst
97│ │ ├── designersethiques
98│ │ │ └── designersethiques.rst
99│ │ ├── ffdn
100│ │ │ └── ffdn.rst
101│ │ ├── framasoft
102│ │ │ └── framasoft.rst
103│ │ ├── informatique.rst
104│ │ ├── laquadrature
105│ │ │ └── laquadrature.rst
106│ │ ├── lescommuns.org
107│ │ │ └── lescommuns.org.rst
108│ │ ├── maisouvaleweb
109│ │ │ └── maisouvaleweb.rst
110│ │ ├── mouton_numerique
111│ │ │ ├── manifeste
112│ │ │ │ └── manifeste.rst
113│ │ │ └── mouton_numerique.rst
114│ │ ├── reset.fing
115│ │ │ ├── dispositif
116│ │ │ │ ├── dispositif.rst
117│ │ │ │ └── qualites-numériques.webp
118│ │ │ └── reset.fing.rst
119│ │ └── tisseurs
120│ │ └── tisseurs.rst
121│ ├── politique
122│ │ ├── partipirate
123│ │ │ ├── partipirate.rst
124│ │ │ └── statuts
125│ │ │ ├── declararation_generale
126│ │ │ │ └── declaration_generale.rst
127│ │ │ ├── partie_1
128│ │ │ │ └── partie_1.rst
129│ │ │ ├── partie_2
130│ │ │ │ ├── partie_2.rst
131│ │ │ │ └── titre_1
132│ │ │ │ └── titre_1.rst
133│ │ │ └── statuts.rst
134│ │ └── politique.rst
135│ ├── ressources.rst
136│ └── sobriete_numerique
137│ ├── negaoctet
138│ │ └── negaoctet.rst
139│ ├── numeriqueEcoResponsable
140│ │ └── numeriqueEcoResponsable.rst
141│ ├── sobriete_numerique.rst
142│ └── theshiftproject
143│ ├── ptef
144│ │ └── ptef.rst
145│ ├── rapports
146│ │ ├── 2018
147│ │ │ ├── 2018.rst
148│ │ │ └── Rapport-final-v8-WEB.pdf
149│ │ ├── 2019
150│ │ │ └── 2019.rst
151│ │ ├── 2020
152│ │ │ ├── 2020_10_15_Deployer_la_sobriete_numerique_PPT-PRESENTATION.pdf
153│ │ │ ├── 2020.rst
154│ │ │ ├── Deployer-la-sobriete-numerique_Rapport-complet_ShiftProject_2020.pdf
155│ │ │ └── Deployer-la-sobriete-numerique_Resume_ShiftProject_2020.pdf
156│ │ └── rapports.rst
157│ ├── sobriete_numerique
158│ │ ├── Deployer-la-sobriete-numerique_Resume_ShiftProject.pdf
159│ │ ├── ressources.png
160│ │ └── sobriete_numerique.rst
161│ └── theshiftproject.rst
162├── reunions
163│ ├── 2020
164│ │ ├── 10
165│ │ │ ├── 10.rst
166│ │ │ ├── 15
167│ │ │ │ ├── 15.rst
168│ │ │ │ └── smert.rst
169│ │ │ └── 30
170│ │ │ ├── 30.rst
171│ │ │ ├── framapad
172│ │ │ │ ├── campagnes
173│ │ │ │ │ └── campagnes.rst
174│ │ │ │ ├── fonctionnement
175│ │ │ │ │ └── fonctionnement.rst
176│ │ │ │ ├── forme_juridique
177│ │ │ │ │ └── forme_juridique.rst
178│ │ │ │ ├── framapad.rst
179│ │ │ │ ├── liens
180│ │ │ │ │ └── liens.rst
181│ │ │ │ ├── ordre_du_jour
182│ │ │ │ │ └── ordre_du_jour.rst
183│ │ │ │ └── retour_bilan
184│ │ │ │ └── retour_bilan.rst
185│ │ │ └── reunion_discord.rst
186│ │ ├── 11
187│ │ │ ├── 06
188│ │ │ │ ├── 06.rst
189│ │ │ │ └── reunion.rst
190│ │ │ └── 11.rst
191│ │ └── 2020.rst
192│ ├── prisedeparole.jpg
193│ └── reunions.rst
194├── _static
195│ ├── 1500x500.webp
196│ └── PoingLeve.webp
197├── syndicats
198│ ├── definitions
199│ │ ├── definition_1
200│ │ │ ├── cnt_nas.png
201│ │ │ └── definition_1.rst
202│ │ └── definitions.rst
203│ └── syndicats.rst
204└── tree.txt
205
20691 directories, 112 files