From ae857a098a4584229a45eb14300a4f526bc98d67 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Fri, 8 Sep 2023 17:41:40 +0200 Subject: [PATCH] doc: Add user and developers documentation scheme. --- doc/dev/build.sh | 10 ++++ doc/dev/documentation.bib | 1 + doc/dev/documentation.org | 55 +++++++++++++++++++ doc/images/riverly.png | Bin 0 -> 34738 bytes doc/tools/PamhyrDoc.cls | 102 ++++++++++++++++++++++++++++++++++++ doc/tools/latex.org | 19 +++++++ doc/tools/macro.org | 35 +++++++++++++ doc/tools/ref.bib | 0 doc/tools/setup.el | 30 +++++++++++ doc/users/build.sh | 10 ++++ doc/users/documentation.bib | 1 + doc/users/documentation.org | 20 +++++++ 12 files changed, 283 insertions(+) create mode 100755 doc/dev/build.sh create mode 120000 doc/dev/documentation.bib create mode 100644 doc/dev/documentation.org create mode 100644 doc/images/riverly.png create mode 100644 doc/tools/PamhyrDoc.cls create mode 100644 doc/tools/latex.org create mode 100644 doc/tools/macro.org create mode 100644 doc/tools/ref.bib create mode 100644 doc/tools/setup.el create mode 100755 doc/users/build.sh create mode 120000 doc/users/documentation.bib create mode 100644 doc/users/documentation.org diff --git a/doc/dev/build.sh b/doc/dev/build.sh new file mode 100755 index 00000000..476dd5ad --- /dev/null +++ b/doc/dev/build.sh @@ -0,0 +1,10 @@ +#! /bin/sh + +# Build the PDF + +emacs -Q -q -nw --batch \ + --eval "(require 'org)" \ + --eval "(require 'ox-latex)" \ + --eval "(load-file \"../tools/setup.el\")" \ + --file ./documentation.org \ + -f org-latex-export-to-pdf diff --git a/doc/dev/documentation.bib b/doc/dev/documentation.bib new file mode 120000 index 00000000..8319e149 --- /dev/null +++ b/doc/dev/documentation.bib @@ -0,0 +1 @@ +../tools/ref.bib \ No newline at end of file diff --git a/doc/dev/documentation.org b/doc/dev/documentation.org new file mode 100644 index 00000000..99867b08 --- /dev/null +++ b/doc/dev/documentation.org @@ -0,0 +1,55 @@ +# documentation.org -- Pamhyr developers documentation +# Copyright (C) 2023 INRAE +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +# -*- coding: utf-8 -*- + +#+STARTUP: indent + +#+INCLUDE: ../tools/macro.org +#+INCLUDE: ../tools/latex.org + +#+TITLE: Developers documentation +#+SUBTITLE: Version: {{{version}}} +#+AUTHOR: {{{INRAE}}} + +#+OPTIONS: toc:t +#+LANGUAGE: UKenglish + +* TODO The environment +* TODO Architecture +** TODO Model +** TODO Solver +** TODO View +** TODO Unit tests +** TODO The debug mode +* TODO Build the project +** TODO Building packages +*** TODO Linux +*** TODO Windows +* TODO Documentation files +** TODO The environment +** TODO Org-mode +*** TODO Format +*** TODO Macro +*** TODO Footnote +*** TODO References +*** TODO Export +* TODO How to contribute? +** TODO Contribution rules +** TODO Translate +** TODO Code contribution + +{{{biblio}}} diff --git a/doc/images/riverly.png b/doc/images/riverly.png new file mode 100644 index 0000000000000000000000000000000000000000..14a38a2f43f67e0aa88cb5b692dc110c681a9d2d GIT binary patch literal 34738 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 W965=kQiaU`0000<MNUMnLSTXv9?k6l literal 0 HcmV?d00001 diff --git a/doc/tools/PamhyrDoc.cls b/doc/tools/PamhyrDoc.cls new file mode 100644 index 00000000..e2d15fa0 --- /dev/null +++ b/doc/tools/PamhyrDoc.cls @@ -0,0 +1,102 @@ +\ProvidesClass{Pamhyr}[Pamhyr class] +\NeedsTeXFormat{LaTeX2e} +\ProcessOptions\relax +\LoadClass[11pt,a4paper]{article} + +\usepackage[hmargin=2cm, vmargin=3cm]{geometry} +\usepackage[british,UKenglish,USenglish,english,american]{babel} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage[usenames,dvipsnames]{xcolor} +\usepackage[absolute]{textpos} +\usepackage{titlesec} +\usepackage{amssymb} +\usepackage{tcolorbox} + +\usepackage{enumitem} +\setlist[enumerate]{itemsep=-0.5em} +\setlist[itemize]{itemsep=-0.5em} + +%% +%% Bibtex +%% + +\bibliographystyle{plain} + +%% +%% Colors +%% + +\definecolor{primary}{HTML}{212121} +\definecolor{lightheadings}{HTML}{5c5c5c} +\definecolor{headings}{HTML}{212121} +\definecolor{links}{HTML}{e12121} + +%% +%% Title +%% + +\setlength{\columnsep}{20pt} +\setlength{\parskip}{0pt} %% inter paragraph space + +\renewcommand{\maketitle}{ + { + \centering + { + \fontsize{35}{40} + \selectfont + \scshape + Pamhyr2 \\ + \medskip + } + { + %\centering + \scshape + \fontsize{20pt}{24pt} + \selectfont + A graphical user interface for 1D hydro-sedimentary modelling + of rivers \\ + \medskip + } + \rule{3cm}{0.4pt}\\ + \vspace{0.3cm} + { + %\centering + \scshape + \fontsize{26pt}{24pt} + \selectfont + \@title \\ + \medskip + } + \vspace{0.3cm} + { + %\centering + %\scshape + \fontsize{14pt}{16pt} + \selectfont + © \@author \\ + \medskip + } + { + %\centering + %\scshape + \fontsize{12pt}{14pt} + \selectfont + \@date + %\medskip + }\\ + \vspace{0.3cm} + \rule{3cm}{0.4pt}\\ + \vspace{0.3cm} + { + \begin{minipage}[h]{0.24\textwidth} + \includegraphics[width=4cm]{../../src/View/ui/ressources/Logo-INRAE.png} + \end{minipage} + \begin{minipage}[h]{0.24\textwidth} + \includegraphics[width=4cm]{../images/riverly.png} + \end{minipage} + }\\ + \vspace{0.3cm} + %%\rule{\textwidth}{0.4pt} + } +} diff --git a/doc/tools/latex.org b/doc/tools/latex.org new file mode 100644 index 00000000..2e655049 --- /dev/null +++ b/doc/tools/latex.org @@ -0,0 +1,19 @@ +# latex.org -- Pamhyr documentation latex config +# Copyright (C) 2023 INRAE +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +# -*- coding: utf-8 -*- + +#+LaTeX_CLASS: PamhyrDoc diff --git a/doc/tools/macro.org b/doc/tools/macro.org new file mode 100644 index 00000000..2f897ae4 --- /dev/null +++ b/doc/tools/macro.org @@ -0,0 +1,35 @@ +# macro.org -- Pamhyr documentation macro +# Copyright (C) 2023 INRAE +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +# -*- coding: utf-8 -*- + +# Constant name +#+MACRO: oldPamhyr PAMHyR +#+MACRO: Pamhyr Pamhyr2 +#+MACRO: Mage Mage +#+MACRO: Rubarbe RubarBE +#+MACRO: Inrae INRAE + +# Information +#+MACRO: version (eval (pamhyr-version)) +#+MACRO: current-file (eval (pamhyr-current-file)) + +# Special format +#+MACRO: file =$1= + +# Biblio +#+MACRO: cite \cite{$1} +#+MACRO: biblio \bibliography{documentation} diff --git a/doc/tools/ref.bib b/doc/tools/ref.bib new file mode 100644 index 00000000..e69de29b diff --git a/doc/tools/setup.el b/doc/tools/setup.el new file mode 100644 index 00000000..81335dd3 --- /dev/null +++ b/doc/tools/setup.el @@ -0,0 +1,30 @@ +(require 'org) +(require 'subr-x) + +(add-to-list + 'org-latex-classes + '("PamhyrDoc" + "\\documentclass{../tools/PamhyrDoc}" + ("\\section{%s}" . "\\section*{%s}") + ("\\subsection{%s}" . "\\subsection*{%s}") + ("\\subsubsection{%s}" . "\\subsubsection*{%s}") + ("\\paragraph{%s}" . "\\paragraph*{%s}") + ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) + + +(setq org-latex-pdf-process + '("pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f" + "bibtex documentation" + "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f" + "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f")) + + +(defun pamhyr-version () + "Return the contents of the pamhyr version file." + (with-temp-buffer + (insert-file-contents "../../VERSION") + (buffer-string))) + +(defun pamhyr-current-file () + (let ((lst (split-string (buffer-file-name) "/"))) + (string-join (nthcdr (- (length lst) 3) lst) "/"))) diff --git a/doc/users/build.sh b/doc/users/build.sh new file mode 100755 index 00000000..476dd5ad --- /dev/null +++ b/doc/users/build.sh @@ -0,0 +1,10 @@ +#! /bin/sh + +# Build the PDF + +emacs -Q -q -nw --batch \ + --eval "(require 'org)" \ + --eval "(require 'ox-latex)" \ + --eval "(load-file \"../tools/setup.el\")" \ + --file ./documentation.org \ + -f org-latex-export-to-pdf diff --git a/doc/users/documentation.bib b/doc/users/documentation.bib new file mode 120000 index 00000000..8319e149 --- /dev/null +++ b/doc/users/documentation.bib @@ -0,0 +1 @@ +../tools/ref.bib \ No newline at end of file diff --git a/doc/users/documentation.org b/doc/users/documentation.org new file mode 100644 index 00000000..1907bf93 --- /dev/null +++ b/doc/users/documentation.org @@ -0,0 +1,20 @@ +#+STARTUP: indent + +#+INCLUDE: ../tools/macro.org +#+INCLUDE: ../tools/latex.org + +#+TITLE: User documentation +#+SUBTITLE: Version: {{{version}}} +#+AUTHOR: {{{INRAE}}} + +#+OPTIONS: toc:t +#+LANGUAGE: UKenglish + +* TODO Over view +* TODO Get started +** Installation +*** Linux +*** Windows +* TODO Usage + +{{{biblio}}} -- GitLab