taler-xotp

xOTP generator
Log | Files | Refs | Submodules | README

commit 4e38871639d2ba74786f8d3d1dc1a9019fb07fc7
parent 6bbad8856cfa40f18fe582400a78ba301cd81a96
Author: Adrian STEINER <adrian.steiner@bfh.ch>
Date:   Wed, 14 Jan 2026 16:38:23 +0100

Add base sphinx project, update gitingnore

Diffstat:
M.gitignore | 778+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
AMakefile | 33+++++++++++++++++++++++++++++++++
Amake.bat | 35+++++++++++++++++++++++++++++++++++
Arequirements.txt | 7+++++++
Asource/conf.py | 27+++++++++++++++++++++++++++
Asource/index.rst | 17+++++++++++++++++
6 files changed, 762 insertions(+), 135 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -1,164 +1,673 @@ -# Created by https://www.toptal.com/developers/gitignore/api/c,c++,windows,linux,kicad,freecad -# Edit at https://www.toptal.com/developers/gitignore?templates=c,c++,windows,linux,kicad,freecad - -### C ### -# Prerequisites -*.d - -# Object files -*.o -*.ko -*.obj -*.elf - -# Linker output -*.ilk -*.map -*.exp - -# Precompiled Headers -*.gch -*.pch - -# Libraries -*.lib -*.a -*.la -*.lo - -# Shared objects (inc. Windows DLLs) -*.dll -*.so -*.so.* -*.dylib +#Own defines like build directories +_build +_output + +#Drawio backups +*.bkp + +# Created by https://www.toptal.com/developers/gitignore/api/latex,visualstudiocode,python,venv,tex +# Edit at https://www.toptal.com/developers/gitignore?templates=latex,visualstudiocode,python,venv,tex + +### LibreOffice ### +# LibreOffice locks +.~lock.*# -# Executables -*.exe + +### LaTeX ### +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls *.out -*.app -*.i*86 -*.x86_64 -*.hex - -# Debug files -*.dSYM/ -*.su -*.idb -*.pdb - -# Kernel Module Compile Results -*.mod* -*.cmd -.tmp_versions/ -modules.order -Module.symvers -Mkfile.old -dkms.conf - -### C++ ### -# Prerequisites - -# Compiled Object files +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs +*.slg *.slo +*.sls + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplot +*.gnuplot +*.table + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.glog +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# newpax +*.newpax + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# svg +svg-inkscape/ + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# titletoc +*.ptc + +# todonotes +*.tdo -# Precompiled Headers +# vhistory +*.hst +*.ver -# Compiled Dynamic libraries +# easy-todo +*.lod -# Fortran module files -*.mod -*.smod +# xcolor +*.xcp -# Compiled Static libraries -*.lai +# xmpincl +*.xmpi -# Executables +# xindy +*.xdy -### FreeCad ### -*.pyc -*.fcstd1 -*.FCStd1 -*.fcstd2 -*.FCStd2 +# xypic precompiled matrices and outlines +*.xyc +*.xyd -### KiCad ### -# For PCBs designed using KiCad: https://www.kicad.org/ -# Format documentation: https://kicad.org/help/file-formats/ +# endfloat +*.ttt +*.fff -# Temporary files -*.000 +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt *.bak -*.bck -*.kicad_pcb-bak -*.kicad_sch-bak -*-backups -*.kicad_prl -*.sch-bak -*~ -_autosave-* -*.tmp -*-save.pro -*-save.kicad_pcb -fp-info-cache +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib + +### LaTeX Patch ### +# LIPIcs / OASIcs +*.vtc + +# glossaries +*.glstex + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +### Python Patch ### +# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration +poetry.toml + +# ruff +.ruff_cache/ + +# LSP config files +pyrightconfig.json + +### TeX ### + +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + + + + +# latexrun + +# algorithms + +# achemso + +# amsthm + +# beamer + +# changes + +# comment + +# cprotect + +# elsarticle (documentclass of Elsevier journals) + +# endnotes + +# fixme + +# feynmf/feynmp + + +# glossaries + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplot + +# gnuplottex + +# gregoriotex + +# htlatex + +# hyperref + +# knitr +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz + +# listings + +# luatexja-ruby + +# makeidx + +# minitoc + +# minted + +# morewrites + +# newpax + +# nomencl + +# pax + +# pdfpcnotes + +# sagetex + +# scrwfile + +# svg + +# sympy + +# pdfcomment + +# pythontex + +# tcolorbox + +# thmtools + +# TikZ & PGF + +# titletoc + +# todonotes + +# vhistory + +# easy-todo + +# xcolor + +# xmpincl + +# xindy + +# xypic precompiled matrices and outlines + +# endfloat + +# Latexian + +# WinEdt + +# Texpad + +# LyX -# Netlist files (exported from Eeschema) -*.net +# Kile -# Autorouter files (exported from Pcbnew) -*.dsn -*.ses +# gummi -# Exported BOM files -*.xml -*.csv +# KBibTeX -### KiCad Patch ### -rescue-backup/ +# TeXnicCenter -*.tsv -bom/ +# auto folder when using emacs and auctex -# Gerber export output -out/ +# expex forward references with \gathertags -### Linux ### +# standalone packages -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* +# Makeindex log files -# KDE directory preferences -.directory +# xwatermark package -# Linux trash folder which might appear on any partition or disk -.Trash-* +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. -# .nfs files are created when an open file is removed but is still being accessed -.nfs* +### TeX Patch ### +# LIPIcs / OASIcs -### Windows ### -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db +# glossaries -# Dump file -*.stackdump +### venv ### +# Virtualenv +# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/ +[Bb]in +[Ii]nclude +[Ll]ib +[Ll]ib64 +[Ll]ocal +[Ss]cripts +pyvenv.cfg +pip-selfcheck.json -# Folder config file -[Dd]esktop.ini +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets -# Recycle Bin used on file shares -$RECYCLE.BIN/ +# Local History for Visual Studio Code +.history/ -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp +# Built Visual Studio Code Extensions +*.vsix -# Windows shortcuts -*.lnk +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide -# End of https://www.toptal.com/developers/gitignore/api/c,c++,windows,linux,kicad,freecad -\ No newline at end of file +# End of https://www.toptal.com/developers/gitignore/api/latex,visualstudiocode,python,venv,tex diff --git a/Makefile b/Makefile @@ -0,0 +1,32 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +#Own Settings +PORT ?= 2000 +ADDRESS ?= 0.0.0.0 +BROWSER ?= xdg-open + + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile installRequirements localView + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +installRequirements: + pip install -r requirements.txt + +localView: + $(BROWSER) http://$(ADDRESS):$(PORT)/index.html && python3 -m http.server -d $(BUILDDIR)/html -b $(ADDRESS) $(PORT) +\ No newline at end of file diff --git a/make.bat b/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/requirements.txt b/requirements.txt @@ -0,0 +1,6 @@ +Sphinx==8.1.3 +sphinx_immaterial==0.12.4 +sphinxcontrib-video==0.2.1 +sphinx-immaterial[keys] +git+https://github.com/steinerAdi/sphinx-embedPDF.git +myst-parser +\ No newline at end of file diff --git a/source/conf.py b/source/conf.py @@ -0,0 +1,27 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'xOTP Documentation' +copyright = '2026, Adrian STEINER' +author = 'Adrian STEINER' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = [] + +templates_path = ['_templates'] +exclude_patterns = [] + + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = 'alabaster' +html_static_path = ['_static'] diff --git a/source/index.rst b/source/index.rst @@ -0,0 +1,17 @@ +.. xOTP Documentation documentation master file, created by + sphinx-quickstart on Wed Jan 14 16:29:02 2026. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +xOTP Documentation documentation +================================ + +Add your content using ``reStructuredText`` syntax. See the +`reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`_ +documentation for details. + + +.. toctree:: + :maxdepth: 2 + :caption: Contents: +