Skip to main content

CEC → GNU Info

CI Release Licence GPL-3.0-or-later

Convertit le Catéchisme de l'Église catholique publié par le Vatican (IntraText, version française) en manuel GNU Texinfo / Info, PDF et EPUB 3. La sortie Info est directement lisible dans Emacs.

Dépendances (Debian)

sudo apt install python3-bs4 texinfo

pandoc n'est pas nécessaire.

La génération PDF demande également une installation TeX fournissant texi2dvi et un convertisseur DVI vers PDF (par exemple texlive sur Debian).

Le projet peut aussi être installé dans un environnement Python :

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e .
cec2info --help

Utilisation

make

Le script crée :

  • .cec-cache/ : cache local des pages HTML ;
  • catechisme.texi : source Texinfo ;
  • catechisme.info : manuel GNU Info ;
  • catechisme.pdf : version PDF ;
  • catechisme.epub : livre EPUB 3 ;
  • generation-report.json : rapport de génération exploitable par un outil.

Pour ne produire qu'un format :

make info
make pdf
make epub

Les tests locaux se lancent avec make test.

La génération vérifie que les paragraphes 1 à 2865 sont tous présents une seule fois avant de compiler les formats finaux. Les pages IntraText absentes du sommaire sont récupérées automatiquement grâce aux liens Suivant. Pour un autre corpus, adaptez la borne avec --expected-last-paragraph, ou utilisez la valeur 0 pour désactiver ce contrôle.

Un rapport lisible est toujours affiché à la fin. Pour demander explicitement un rapport JSON avec la commande installée :

cec2info --compile --pdf --epub --report-json generation-report.json

Le JSON contient la source, le nombre d'entrées, les pages liées et orphelines, la couverture des paragraphes, ainsi que le chemin et la taille de chaque sortie.

Architecture

Le point d'entrée cec2info.py conserve l'interface publique et orchestre la commande. Les responsabilités internes sont séparées sans modifier son usage :

  • cec2info_network.py : téléchargement, reprises et cache atomique ;
  • cec2info_parser.py : analyse du sommaire et des pages HTML IntraText ;
  • cec2info_output.py : Texinfo, validation, rapports et compilation ;
  • cec2info_model.py : arbre du document et normalisation partagée.

Les fonctions historiquement importables depuis cec2info y restent réexportées pour préserver la compatibilité.

Pour forcer un nouveau téléchargement :

make refresh

make clean retire les sorties et auxiliaires de compilation ; make distclean retire aussi le cache HTML et les caches Python.

Intégration continue

Le workflow GitHub Actions .github/workflows/ci.yml teste Python 3.10 et 3.13 sous Ubuntu, ainsi que Python 3.13 sous macOS et Windows. Il vérifie le code avec Ruff et mypy, contrôle la commande cec2info et construit une wheel sans télécharger le corpus du Vatican. Ubuntu impose en plus au moins 95 % de couverture de branches et compile réellement les sorties Info/PDF/EPUB ; les autres plateformes exécutent les tests Python et ignorent ces tests lorsque les outils Texinfo/TeX ne sont pas installés. Localement, make check reproduit les contrôles de qualité Python.

Un mini-corpus HTML local exerce aussi toute la chaîne déterministe : sommaire, page orpheline, paragraphes, Texinfo et rapport JSON. La CI ne dépend donc pas du réseau pour détecter une régression d'intégration.

Le typage statique progressif peut aussi être exécuté séparément avec make typecheck.

Les actions tierces sont épinglées par empreinte Git complète. Dependabot surveille ces références chaque semaine et propose leurs mises à jour.

Publication

Un tag vX.Y.Z correspondant à la version de pyproject.toml déclenche les tests, construit le wheel et le paquet source, puis publie une GitHub Release.

La publication PyPI utilise Trusted Publishing (OIDC), sans secret permanent. Le publisher PyPI doit cibler le propriétaire fmaillar, le dépôt cec-info, le workflow release.yml et l'environnement GitHub pypi. La variable de dépôt PYPI_PUBLISH active cette étape lorsqu'elle vaut true.

Lecture dans Emacs

(info "/chemin/vers/catechisme.info")

Installation dans le répertoire Info utilisateur

mkdir -p ~/.local/share/info
cp catechisme.info ~/.local/share/info/
install-info ~/.local/share/info/catechisme.info ~/.local/share/info/dir

Puis, si ce répertoire n'est pas déjà connu d'Emacs :

(add-to-list 'Info-default-directory-list
             (expand-file-name "~/.local/share/info/"))

Ensuite : M-x info, puis m Catéchisme.

Navigation

  • n, p, u : suivant, précédent, parent ;
  • m : sélectionner une entrée du menu ;
  • i RET 2270 RET : aller à l'entrée d'index du § 2270 ;
  • s RET eucharistie RET : recherche plein texte.

Le script utilise automatiquement les pages __P*.HTM du système IntraText : ce sont les variantes de lecture sans les milliers de liens de concordance.

Licence et droits sur le texte

Le convertisseur est distribué sous la licence GNU GPL version 3 ou toute version ultérieure. Consultez le fichier LICENSE.

Cette licence ne couvre pas le texte du Catéchisme. Le projet ne distribue que le convertisseur ; le texte est téléchargé depuis le site officiel du Vatican au moment de la génération et reste soumis aux droits indiqués par son éditeur.

Les vulnérabilités doivent être signalées de manière privée conformément à la politique de sécurité, et non dans une issue publique.

Metadata

Release files for cec2info 3.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cec2info 3.5.0
File Size Uploaded
cec2info-3.5.0.tar.gz 35.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cec2info 3.5.0
File Interpreter ABI Platform
cec2info-3.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 65.0 kB

Release files / cec2info-3.5.0.tar.gz

Download URL cec2info-3.5.0.tar.gz
Size 35.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e13854610306e8aae18f67cae63f6659b8a4288d0de89e72d5b413a682eb800c
BLAKE2b-256 checksum
How to use checksums
3964f419d4e83f1c8c0d492781c3e40018e0b6d7503644aaa161367875d2523d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 15, 2026.

Transparency log

Release files / cec2info-3.5.0-py3-none-any.whl

Download URL cec2info-3.5.0-py3-none-any.whl
Size 30.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ff4e53782c97cdec887c320f3ea048465a2fd19288602e992a10103270e965e7
BLAKE2b-256 checksum
How to use checksums
38108902a0094c5e7f21e1ec624232c1bc3029ae59ec35af6f40977ccdcc0781
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 15, 2026.

Transparency log

Release history Release notifications | RSS feed

3.6.0

2 release files

This release

3.5.0 This release

2 release files

3.4.0

2 release files

3.3.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page