diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..69fa449dd96e2405945b2e4cff2fd0ab8b102097 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +_build/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..99b360ecccd8d65cfdd694d8aea3cf7d0e867478 --- /dev/null +++ b/Makefile @@ -0,0 +1,30 @@ +# -*- mode: makefile; -*- +# Copyright (C) 2022 Savoir-faire Linux Inc. +# +# 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 <http://www.gnu.org/licenses/>. +# + +CMD ?= sphinx-build +OPTS ?= +SRC = . +OUT = _build + +# default rule +help: + @$(CMD) -M help "$(SRC)" "$(OUT)" $(OPTS) + +.PHONY: help Makefile + +%: Makefile + @$(CMD) -M $@ "$(SRC)" "$(OUT)" $(OPTS) diff --git a/_static/logo-jami.svg b/_static/logo-jami.svg new file mode 100644 index 0000000000000000000000000000000000000000..5aa80f47c0ce871c00239ae6d8dc9826dd04125f --- /dev/null +++ b/_static/logo-jami.svg @@ -0,0 +1,411 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 300 121" style="enable-background:new 0 0 300 121;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#0D132F;} + .st1{fill:url(#SVGID_1_);} + .st2{fill:url(#SVGID_2_);} + .st3{fill:url(#SVGID_3_);} + .st4{fill:url(#SVGID_4_);} + .st5{fill:url(#SVGID_5_);} + .st6{fill:url(#SVGID_6_);} + .st7{opacity:0.4;fill:url(#SVGID_7_);enable-background:new ;} + .st8{fill:url(#SVGID_8_);} + .st9{fill:url(#SVGID_9_);} + .st10{fill:url(#SVGID_10_);} + .st11{fill:url(#SVGID_11_);} + .st12{fill:url(#SVGID_12_);} + .st13{fill:url(#SVGID_13_);} + .st14{fill:url(#SVGID_14_);} + .st15{fill:url(#SVGID_15_);} + .st16{fill:url(#SVGID_16_);} + .st17{opacity:0.2;fill:url(#SVGID_17_);enable-background:new ;} + .st18{fill:url(#SVGID_18_);} + .st19{fill:url(#SVGID_19_);} + .st20{opacity:0.25;fill:url(#SVGID_20_);enable-background:new ;} + .st21{fill:url(#SVGID_21_);} + .st22{fill:url(#SVGID_22_);} + .st23{opacity:0.2;fill:url(#SVGID_23_);enable-background:new ;} + .st24{fill:url(#SVGID_24_);} +</style> +<g id="Layer_1_1_"> + <g> + <g> + <path class="st0" d="M142.6,30.2v27.5c0,15.8-12.8,28.7-28.6,28.7v-7.8c11.5-0.1,20.8-9.4,20.8-20.9V30.2H142.6z M144,16.3 + c0-2.9-2.4-5.2-5.2-5.2c-2.9,0-5.2,2.3-5.2,5.2c0,2.8,2.3,5.2,5.2,5.2C141.6,21.5,144,19.1,144,16.3z"/> + <path class="st0" d="M277.7,85.9V49.4c0-7.1-5.8-12.8-12.9-12.8c-7.1,0-12.9,5.8-12.9,12.9v36.3h-7.8V49.4 + c0-7.1-5.8-12.8-12.9-12.8c-7,0-12.8,5.8-12.8,12.9v36.3h-7.8V49.4c0-11.4,9.2-20.5,20.5-20.5c6.9,0,13,3.4,16.8,8.6 + c3.8-5.2,9.8-8.6,16.8-8.6c11.4,0,20.6,9.2,20.6,20.6v36.3H277.7z"/> + <path class="st0" d="M294.8,21.5c-2.9,0-5.2-2.3-5.2-5.2c0-2.8,2.3-5.2,5.2-5.2s5.2,2.4,5.2,5.2C300,19.2,297.7,21.5,294.8,21.5z + M298.6,30.2v55.7h-7.8V30.2H298.6z"/> + <path class="st0" d="M177.1,36.7c11.6,0,21.1,9.5,21.1,21.1V79h-21.1c-11.6,0-21.1-9.5-21.1-21.1S165.5,36.7,177.1,36.7 + M177.1,29.2c-15.8,0-28.7,12.8-28.7,28.7s12.8,28.7,28.7,28.7h28.7V57.9C205.8,42,193,29.2,177.1,29.2L177.1,29.2z"/> + </g> + <g> + <g> + <path class="st0" d="M160.4,108.6h-1.6v-1.8c-1.1,1.2-2.6,1.9-4.3,1.9c-3.3,0-6-2.7-6-6c0-3.3,2.7-6,6-6s6,2.7,6,6L160.4,108.6 + L160.4,108.6z M158.8,102.7c0-2.4-1.9-4.3-4.3-4.3s-4.4,1.9-4.4,4.3c0,2.4,2,4.4,4.4,4.4C156.9,107.1,158.8,105.1,158.8,102.7z" + /> + <path class="st0" d="M171.9,101.9h5.9c0,0.3,0,0.6,0,0.8c0,3.3-2.7,6-6,6c-3.3,0-6-2.7-6-6c0-3.3,2.7-6,6-6 + c2.4,0,4.5,1.4,5.5,3.5h-1.8c-0.8-1.2-2.1-1.9-3.6-1.9c-2.4,0-4.4,1.9-4.4,4.3c0,2.4,2,4.4,4.4,4.4c2.1,0,3.9-1.5,4.3-3.6h-4.3 + L171.9,101.9L171.9,101.9z"/> + <path class="st0" d="M190.9,108.6h-1.6v-5.8c0-2.4-1.9-4.4-4.3-4.4s-4.3,2-4.3,4.4v5.8H179v-5.9c0-3.3,2.7-5.9,6-5.9 + c3.3,0,6,2.7,6,6L190.9,108.6L190.9,108.6L190.9,108.6z"/> + <path class="st0" d="M192,96.9h1.6v5.8c0,2.4,1.9,4.4,4.3,4.4c2.4,0,4.3-2,4.3-4.4v-5.8h1.6v5.9c0,3.3-2.7,5.9-6,5.9 + c-3.3,0-6-2.7-6-6L192,96.9L192,96.9z"/> + <path class="st0" d="M209.4,111.2v-8.5c0-3.3,2.7-6,6-6c3.3,0,6,2.7,6,6c0,3.3-2.7,6-6,6c-1.7,0-3.3-0.7-4.3-1.9v4.4 + L209.4,111.2L209.4,111.2z M215.4,107.1c2.4,0,4.4-2,4.4-4.4s-1.9-4.3-4.4-4.3c-2.4,0-4.3,1.9-4.3,4.3 + C211,105.1,212.9,107.1,215.4,107.1z"/> + <path class="st0" d="M234.4,108.6h-1.6v-1.8c-1.1,1.2-2.6,1.9-4.3,1.9c-3.3,0-6-2.7-6-6c0-3.3,2.7-6,6-6c3.3,0,6,2.7,6,6 + L234.4,108.6L234.4,108.6z M232.8,102.7c0-2.4-1.9-4.3-4.3-4.3c-2.4,0-4.4,1.9-4.4,4.3c0,2.4,2,4.4,4.4,4.4 + C230.9,107.1,232.8,105.1,232.8,102.7z"/> + <path class="st0" d="M245.9,103.5h1.6c-0.4,2.9-2.9,5.2-5.9,5.2c-3.3,0-6-2.7-6-6c0-3.3,2.7-6,6-6c3,0,5.5,2.3,5.9,5.2h-1.6 + c-0.4-2-2.2-3.5-4.3-3.5c-2.4,0-4.4,1.9-4.4,4.3s2,4.4,4.4,4.4C243.7,107.1,245.5,105.5,245.9,103.5z"/> + <path class="st0" d="M259.6,106.5v2H258v-2c0-2.4-2-4.4-4.4-4.4h-3.4v6.4h-1.6V94.2h1.6v6.4h2.4c1.9,0,3.6-2,4.1-3.9h1.7 + c-0.3,1.6-1.2,3.4-2.5,4.3C258.1,101.9,259.6,104,259.6,106.5z"/> + <path class="st0" d="M272.7,108.6h-1.6v-1.8c-1.1,1.2-2.6,1.9-4.3,1.9c-3.3,0-6-2.7-6-6c0-3.3,2.7-6,6-6c3.3,0,6,2.7,6,6 + L272.7,108.6L272.7,108.6z M271.1,102.7c0-2.4-1.9-4.3-4.3-4.3c-2.4,0-4.4,1.9-4.4,4.3c0,2.4,2,4.4,4.4,4.4 + C269.1,107.1,271.1,105.1,271.1,102.7z"/> + <path class="st0" d="M279.9,101.9h5.9c0,0.3,0,0.6,0,0.8c0,3.3-2.7,6-6,6c-3.3,0-6-2.7-6-6c0-3.3,2.7-6,6-6 + c2.4,0,4.5,1.4,5.5,3.5h-1.8c-0.8-1.2-2.1-1.9-3.6-1.9c-2.4,0-4.4,1.9-4.4,4.3c0,2.4,2,4.4,4.4,4.4c2.1,0,3.9-1.5,4.3-3.6h-4.3 + L279.9,101.9L279.9,101.9z"/> + </g> + <path class="st0" d="M298.3,100.4c-0.3-0.9-0.9-1.7-1.6-2.3c-0.7-0.6-1.6-1-2.6-1.2c-1.1-0.2-2.1-0.1-3.1,0.2 + c-1,0.3-1.8,0.9-2.4,1.7c-0.7,0.8-1.1,1.7-1.3,2.9c-0.2,1.1-0.1,2.2,0.2,3.2c0.3,1,0.9,1.8,1.7,2.5c0.8,0.7,1.8,1.1,3,1.4 + c0.5,0.1,0.9,0.1,1.3,0.1c0.4,0,0.8,0,1.2-0.1c0.8-0.2,1.5-0.5,2.2-1l0.1-0.1l-0.8-1.3l-0.1,0.1c-0.5,0.4-1.1,0.7-1.7,0.8 + c-0.6,0.1-1.3,0.1-2,0c-1-0.2-1.9-0.6-2.5-1.3c-0.6-0.6-1-1.4-1.1-2.3h9.6l0-0.1C298.7,102.3,298.6,101.3,298.3,100.4z + M289,101.9c0,0,0-0.1,0-0.1c0.2-0.8,0.5-1.5,0.9-2.1c0.5-0.6,1-1,1.7-1.2c0.4-0.1,0.8-0.2,1.3-0.2c0.3,0,0.6,0,0.9,0.1 + c1,0.2,1.8,0.7,2.3,1.4c0.5,0.6,0.8,1.4,0.8,2.2"/> + </g> + </g> +</g> +<g id="Layer_3"> + <g> + + <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="62.0032" y1="550.975" x2="57.8781" y2="546.1624" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2B3C6B"/> + <stop offset="1" style="stop-color:#2B3C6B"/> + </linearGradient> + <polygon class="st1" points="48.5,57.7 54.8,57.5 51.7,63.5 "/> + + <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="97.5281" y1="553.056" x2="97.5281" y2="586.1333" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2B3C6B"/> + <stop offset="7.040000e-02" style="stop-color:#2E4677"/> + <stop offset="0.2165" style="stop-color:#2E568A"/> + <stop offset="0.3608" style="stop-color:#2E5E97"/> + <stop offset="0.5" style="stop-color:#2B639D"/> + <stop offset="0.6392" style="stop-color:#2E5E97"/> + <stop offset="0.7835" style="stop-color:#2E568A"/> + <stop offset="0.9296" style="stop-color:#2E4677"/> + <stop offset="1" style="stop-color:#2B3C6B"/> + </linearGradient> + <path class="st2" d="M76,59.2c23.5,3.8,26.8,9.6,26.8,9.6c0,0.4,0,0.7,0,1.1c0,0.2-0.1,0.4-0.2,0.6c-0.1,0.3-2.4,5.1-17.6,8.4 + L76,59.2z"/> + + <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="23.9829" y1="588.6321" x2="34.7157" y2="569.5223" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#252C59"/> + <stop offset="8.590000e-02" style="stop-color:#2C3B6A"/> + <stop offset="0.2267" style="stop-color:#304B7C"/> + <stop offset="0.3658" style="stop-color:#2F5588"/> + <stop offset="0.5" style="stop-color:#2E588D"/> + <stop offset="0.6342" style="stop-color:#2F5588"/> + <stop offset="0.7733" style="stop-color:#304B7C"/> + <stop offset="0.9141" style="stop-color:#2C3B6A"/> + <stop offset="1" style="stop-color:#252C59"/> + </linearGradient> + <path class="st3" d="M16.9,78.1c-5.3,14.1-2.6,18.5-2.4,18.9c0.1,0.2,0.2,0.4,0.4,0.5c0.4,0,0.7-0.1,1.1-0.2 + c0,0,9.6-0.5,20.8-16.4L16.9,78.1z"/> + + <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="54.6702" y1="523.7434" x2="36.9052" y2="503.0175" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#171944"/> + <stop offset="2.840000e-02" style="stop-color:#1D1F4C"/> + <stop offset="0.1353" style="stop-color:#283361"/> + <stop offset="0.2468" style="stop-color:#2E4273"/> + <stop offset="0.3647" style="stop-color:#304B7C"/> + <stop offset="0.5" style="stop-color:#304E7F"/> + <stop offset="0.6177" style="stop-color:#2E4677"/> + <stop offset="0.8125" style="stop-color:#273260"/> + <stop offset="1" style="stop-color:#171944"/> + </linearGradient> + <path class="st4" d="M52,24.3C39.1,10.1,32.9,10.9,32.5,11c-0.2,0-0.5,0.1-0.6,0.2c-0.5,0.2-0.9,1.6-0.9,1.6s-2.7,7.8,8.2,28.7 + L52,24.3z"/> + + <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="89.8493" y1="590.9018" x2="76.1251" y2="546.6906" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#171944"/> + <stop offset="2.840000e-02" style="stop-color:#1D1F4C"/> + <stop offset="0.1353" style="stop-color:#283361"/> + <stop offset="0.2468" style="stop-color:#2E4273"/> + <stop offset="0.3647" style="stop-color:#304B7C"/> + <stop offset="0.5" style="stop-color:#304E7F"/> + <stop offset="0.6177" style="stop-color:#2E4677"/> + <stop offset="0.8125" style="stop-color:#273260"/> + <stop offset="1" style="stop-color:#171944"/> + </linearGradient> + <path class="st5" d="M63.2,78.4c17.4,19.9,23.5,18.8,23.5,18.8c0.4,0.1,0.8,0.2,1.2,0.2c0.2-0.1,0.3-0.3,0.4-0.5 + c0.3-0.4,5.2-8.5-11.5-37.6L63.2,78.4z"/> + + <linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="28.3995" y1="553.0558" x2="28.3995" y2="586.1324" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2B3C6B"/> + <stop offset="7.040000e-02" style="stop-color:#2E4677"/> + <stop offset="0.2165" style="stop-color:#2E568A"/> + <stop offset="0.3608" style="stop-color:#2E5E97"/> + <stop offset="0.5" style="stop-color:#2B639D"/> + <stop offset="0.6392" style="stop-color:#2E5E97"/> + <stop offset="0.7835" style="stop-color:#2E568A"/> + <stop offset="0.9296" style="stop-color:#2E4677"/> + <stop offset="1" style="stop-color:#2B3C6B"/> + </linearGradient> + <path class="st6" d="M40.6,81.4C4.7,79.9,0.4,71,0.2,70.6C0.1,70.4,0,70.2,0,69.9c0.1-0.6,1.4-1.8,1.4-1.8s9.5-5.8,25.4-9 + L40.6,81.4z"/> + + <linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="46.5882" y1="520.5893" x2="59.5734" y2="520.5893" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2B3C6B"/> + <stop offset="1" style="stop-color:#2B3C6B"/> + </linearGradient> + <path class="st7" d="M51,23.2c-4.5,4.9-8.6,10.1-12.4,15.5h0.9c2.8-3.5,9.7-12.3,12-14.8L51,23.2z"/> + + <linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="63.7167" y1="534.3301" x2="63.7167" y2="503.1314" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#252C59"/> + <stop offset="0.5" style="stop-color:#2E588D"/> + <stop offset="0.6934" style="stop-color:#2E5689"/> + <stop offset="0.8038" style="stop-color:#2F5080"/> + <stop offset="0.8932" style="stop-color:#2D4575"/> + <stop offset="0.971" style="stop-color:#283564"/> + <stop offset="1" style="stop-color:#252C59"/> + </linearGradient> + <path class="st8" d="M65.4,39.4C74.9,17.2,71.2,12,71.2,12c-0.1-0.3-0.2-0.6-0.3-0.9c-0.2-0.1-0.4-0.1-0.6-0.2 + C69.8,10.9,60,9.6,39.4,38.6L65.4,39.4z"/> + + <linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="35.278" y1="594.9057" x2="92.2738" y2="508.7523" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2868A3"/> + <stop offset="8.239999e-02" style="stop-color:#1B7FBC"/> + <stop offset="0.1675" style="stop-color:#1691D0"/> + <stop offset="0.2527" style="stop-color:#21A1DB"/> + <stop offset="0.337" style="stop-color:#2DABE2"/> + <stop offset="0.42" style="stop-color:#34AFE4"/> + <stop offset="0.5" style="stop-color:#37AFE4"/> + <stop offset="0.58" style="stop-color:#34AFE4"/> + <stop offset="0.663" style="stop-color:#2DABE2"/> + <stop offset="0.7473" style="stop-color:#21A1DB"/> + <stop offset="0.8325" style="stop-color:#1691D0"/> + <stop offset="0.9176" style="stop-color:#1B7FBC"/> + <stop offset="1" style="stop-color:#2868A3"/> + </linearGradient> + <path class="st9" d="M51.2,95.1c-12.8,13.8-18.9,13-19.2,13c-0.5-0.2-1.1-0.5-1.5-0.7l-15.5-9.9c6.6-1.4,14.6-9.2,23.1-19.1 + L51.2,95.1z"/> + + <linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="30.1262" y1="596.6172" x2="52.7009" y2="576.405" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2F5D95"/> + <stop offset="8.220001e-02" style="stop-color:#246FAD"/> + <stop offset="0.1808" style="stop-color:#1E7AB9"/> + <stop offset="0.3007" style="stop-color:#1381C2"/> + <stop offset="0.5" style="stop-color:#1782C5"/> + <stop offset="0.6993" style="stop-color:#1381C2"/> + <stop offset="0.8192" style="stop-color:#1E7AB9"/> + <stop offset="0.9178" style="stop-color:#246FAD"/> + <stop offset="1" style="stop-color:#2F5D95"/> + </linearGradient> + <path class="st10" d="M51.8,95.6c-12.8,13.8-18.9,13-19.2,13c-0.5-0.2-1.1-0.5-1.5-0.7L14.9,97.4c6.6-1.4,15.2-8.6,23.6-18.6 + L51.8,95.6z"/> + + <linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="28.0433" y1="508.1702" x2="80.4632" y2="595.5366" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2F5D95"/> + <stop offset="1.760000e-02" style="stop-color:#2C6299"/> + <stop offset="0.1407" style="stop-color:#207AB8"/> + <stop offset="0.2631" style="stop-color:#128DC9"/> + <stop offset="0.3837" style="stop-color:#1197D4"/> + <stop offset="0.5" style="stop-color:#169AD7"/> + <stop offset="0.6163" style="stop-color:#1197D4"/> + <stop offset="0.7369" style="stop-color:#128DC9"/> + <stop offset="0.8593" style="stop-color:#207AB8"/> + <stop offset="0.9824" style="stop-color:#2C6299"/> + <stop offset="1" style="stop-color:#2F5D95"/> + </linearGradient> + <path class="st11" d="M17.7,41.7C12,27.1,14.8,22.6,15,22.3c0.4-0.5,0.8-0.8,1.3-1.1l15.5-9.9c-1.4,6.4,2.1,16.2,7.4,27.6 + L17.7,41.7z"/> + + <linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="84.8023" y1="594.9701" x2="51.0962" y2="552.5158" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2F5D95"/> + <stop offset="2.570000e-02" style="stop-color:#2C6299"/> + <stop offset="0.2053" style="stop-color:#207AB8"/> + <stop offset="0.384" style="stop-color:#128DC9"/> + <stop offset="0.5599" style="stop-color:#1197D4"/> + <stop offset="0.7296" style="stop-color:#169AD7"/> + <stop offset="0.7925" style="stop-color:#1197D4"/> + <stop offset="0.8577" style="stop-color:#128DC9"/> + <stop offset="0.9239" style="stop-color:#207AB8"/> + <stop offset="0.9905" style="stop-color:#2C6299"/> + <stop offset="1" style="stop-color:#2F5D95"/> + </linearGradient> + <path class="st12" d="M50.5,58.9c-7.8,0-15.6,0.6-23.4,1.7c0.3,0.5,3.9,6.5,6.5,10.5c25,38.5,36.7,36.9,37.2,36.9 + c0.5-0.2,1.1-0.5,1.5-0.7l15.5-9.9C77.3,95.2,62.6,77.9,50.5,58.9z"/> + + <linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="36.0941" y1="529.5416" x2="29.5314" y2="505.9164" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2F5D95"/> + <stop offset="8.220001e-02" style="stop-color:#246FAD"/> + <stop offset="0.1808" style="stop-color:#1E7AB9"/> + <stop offset="0.3007" style="stop-color:#1381C2"/> + <stop offset="0.5" style="stop-color:#1782C5"/> + <stop offset="0.6993" style="stop-color:#1381C2"/> + <stop offset="0.8192" style="stop-color:#1E7AB9"/> + <stop offset="0.9178" style="stop-color:#246FAD"/> + <stop offset="1" style="stop-color:#2F5D95"/> + </linearGradient> + <path class="st13" d="M17.2,42.2c-5.7-14.6-2.9-19.2-2.7-19.4c0.4-0.5,0.8-0.8,1.3-1.1l16.2-10.4c-1.4,6.4,1.5,16.7,6.8,28.1 + L17.2,42.2z"/> + + <linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="110.4175" y1="545.4503" x2="8.1688" y2="545.4503" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2868A3"/> + <stop offset="1.280000e-02" style="stop-color:#266CA8"/> + <stop offset="0.1121" style="stop-color:#1483C3"/> + <stop offset="0.2115" style="stop-color:#2497D4"/> + <stop offset="0.3099" style="stop-color:#30A2DC"/> + <stop offset="0.4066" style="stop-color:#32AAE1"/> + <stop offset="0.5" style="stop-color:#38ACE2"/> + <stop offset="0.5934" style="stop-color:#32AAE1"/> + <stop offset="0.6901" style="stop-color:#30A2DC"/> + <stop offset="0.7885" style="stop-color:#2497D4"/> + <stop offset="0.8879" style="stop-color:#1483C3"/> + <stop offset="0.9872" style="stop-color:#266CA8"/> + <stop offset="1" style="stop-color:#2868A3"/> + </linearGradient> + <path class="st14" d="M76,61.1c12.1,1.7,22.2,4.2,26.8,8.8V51.5c0-0.5-0.1-1.2-0.2-1.7c-0.1-0.3-2.4-5-17.1-8.2L76,61.1z"/> + + <linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="81.106" y1="544.0021" x2="110.3308" y2="545.5771" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2F5385"/> + <stop offset="6.100000e-03" style="stop-color:#305587"/> + <stop offset="9.120000e-02" style="stop-color:#2A659E"/> + <stop offset="0.1876" style="stop-color:#2470AE"/> + <stop offset="0.3049" style="stop-color:#2178B6"/> + <stop offset="0.5" style="stop-color:#2079B9"/> + <stop offset="0.6951" style="stop-color:#2178B6"/> + <stop offset="0.8124" style="stop-color:#2470AE"/> + <stop offset="0.9088" style="stop-color:#2A659E"/> + <stop offset="0.9939" style="stop-color:#305587"/> + <stop offset="1" style="stop-color:#2F5385"/> + </linearGradient> + <path class="st15" d="M76,60.5c12.1,1.7,22.2,5,26.8,9.5V50.8c0-0.5-0.1-1.2-0.2-1.7c-0.1-0.3-2.4-5-17.1-8.2L76,60.5z"/> + + <linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="8.0854" y1="544.0936" x2="60.813" y2="544.0936" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2868A3"/> + <stop offset="2.250000e-02" style="stop-color:#266CA8"/> + <stop offset="0.1971" style="stop-color:#1483C3"/> + <stop offset="0.3718" style="stop-color:#2497D4"/> + <stop offset="0.5447" style="stop-color:#30A2DC"/> + <stop offset="0.7147" style="stop-color:#32AAE1"/> + <stop offset="0.8788" style="stop-color:#38ACE2"/> + <stop offset="0.9015" style="stop-color:#32AAE1"/> + <stop offset="0.9249" style="stop-color:#30A2DC"/> + <stop offset="0.9487" style="stop-color:#2497D4"/> + <stop offset="0.9728" style="stop-color:#1483C3"/> + <stop offset="0.9969" style="stop-color:#266CA8"/> + <stop offset="1" style="stop-color:#2868A3"/> + </linearGradient> + <path class="st16" d="M65,39.1c-2.7-0.1-8.5-0.4-13.6-0.4c-45.9,0-51,10.6-51.2,11.1C0,50.4,0,51,0,51.6v18.5 + c4.5-4.5,14.3-6.9,26.3-8.7c7.7-1.1,15.5-1.7,23.3-1.8c1.4,0,2.9,0,4.3,0C53.8,59.5,67.7,39.2,65,39.1z"/> + + <linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="45.166" y1="530.4112" x2="25.3497" y2="527.6246" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2B3C6B"/> + <stop offset="1" style="stop-color:#2B3C6B"/> + </linearGradient> + <path class="st17" d="M38.7,37.7c-9.6,0.5-16.5,1.2-22.3,2.8l0.3,0.7c0.5-0.1,1.2-0.3,1.7-0.4c6.9-1.1,13.8-1.8,20.8-2.1 + L38.7,37.7z"/> + + <linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="65.3243" y1="547.3973" x2="9.3243" y2="539.5223" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2868A3"/> + <stop offset="3.820000e-02" style="stop-color:#2375B2"/> + <stop offset="0.1177" style="stop-color:#1686C4"/> + <stop offset="0.2081" style="stop-color:#1194D2"/> + <stop offset="0.3177" style="stop-color:#189BD7"/> + <stop offset="0.5" style="stop-color:#1F9DD9"/> + <stop offset="0.6823" style="stop-color:#189BD7"/> + <stop offset="0.7919" style="stop-color:#1194D2"/> + <stop offset="0.8823" style="stop-color:#1686C4"/> + <stop offset="0.9618" style="stop-color:#2375B2"/> + <stop offset="1" style="stop-color:#2868A3"/> + </linearGradient> + <path class="st18" d="M65,38.4c-2.7-0.1-8.5-0.4-13.6-0.4C5.5,38,0.5,48.6,0.2,49.2C0,49.7,0,50.2,0,50.9v19.2 + c4.5-4.5,14.3-7.6,26.3-9.4c7.7-1.1,15.5-1.7,23.3-1.8c1.4,0,2.9,0,4.3,0C55.9,58.9,67.7,38.5,65,38.4z"/> + + <linearGradient id="SVGID_19_" gradientUnits="userSpaceOnUse" x1="91.2641" y1="508.5487" x2="64.6339" y2="554.4119" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2868A3"/> + <stop offset="0.1238" style="stop-color:#1B7FBC"/> + <stop offset="0.2516" style="stop-color:#1691D0"/> + <stop offset="0.3797" style="stop-color:#21A1DB"/> + <stop offset="0.5064" style="stop-color:#2DABE2"/> + <stop offset="0.631" style="stop-color:#34AFE4"/> + <stop offset="0.7513" style="stop-color:#37AFE4"/> + <stop offset="0.7911" style="stop-color:#34AFE4"/> + <stop offset="0.8324" style="stop-color:#2DABE2"/> + <stop offset="0.8743" style="stop-color:#21A1DB"/> + <stop offset="0.9167" style="stop-color:#1691D0"/> + <stop offset="0.959" style="stop-color:#1B7FBC"/> + <stop offset="1" style="stop-color:#2868A3"/> + </linearGradient> + <path class="st19" d="M51.4,60.4c12.5-18.8,21.8-38.5,19.5-49.2l15.5,9.9c0.5,0.3,0.9,0.6,1.3,1.1c0.3,0.5,6.4,10.5-18.6,49 + c-1.8,2.9-3.5,6.2-4.1,6.5c-3.7-3.6-11.3-14-13.2-16.6C51.5,60.7,51.4,60.4,51.4,60.4z"/> + + <linearGradient id="SVGID_20_" gradientUnits="userSpaceOnUse" x1="94.6672" y1="531.6493" x2="84.9714" y2="549.8446" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2B3C6B"/> + <stop offset="1" style="stop-color:#2B3C6B"/> + </linearGradient> + <path class="st20" d="M86,41c-2.8,7-6.1,13.8-10,20.1l1.2,0.2c5-8.5,7.8-14.8,9.8-20.1L86,41z"/> + + <linearGradient id="SVGID_21_" gradientUnits="userSpaceOnUse" x1="90.4412" y1="509.5841" x2="63.7265" y2="559.7169" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2868A3"/> + <stop offset="3.820000e-02" style="stop-color:#2375B2"/> + <stop offset="0.1177" style="stop-color:#1686C4"/> + <stop offset="0.2081" style="stop-color:#1194D2"/> + <stop offset="0.3177" style="stop-color:#189BD7"/> + <stop offset="0.5" style="stop-color:#1F9DD9"/> + <stop offset="0.6823" style="stop-color:#189BD7"/> + <stop offset="0.7919" style="stop-color:#1194D2"/> + <stop offset="0.8823" style="stop-color:#1686C4"/> + <stop offset="0.9618" style="stop-color:#2375B2"/> + <stop offset="1" style="stop-color:#2868A3"/> + </linearGradient> + <path class="st21" d="M69.8,71.7c25-38.5,18.9-48.5,18.6-49c-0.4-0.5-0.8-0.8-1.3-1.1L70.9,11.2c2.3,10.6-6.6,31.1-19,49.9 + c4.1,6.4,8.5,12.6,13,17.9C65.8,77.9,68,74.3,69.8,71.7z"/> + + <linearGradient id="SVGID_22_" gradientUnits="userSpaceOnUse" x1="92.5002" y1="510.706" x2="65.5503" y2="561.2803" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2868A3"/> + <stop offset="3.820000e-02" style="stop-color:#2375B2"/> + <stop offset="0.1177" style="stop-color:#1686C4"/> + <stop offset="0.2081" style="stop-color:#1194D2"/> + <stop offset="0.3177" style="stop-color:#189BD7"/> + <stop offset="0.5" style="stop-color:#1F9DD9"/> + <stop offset="0.6823" style="stop-color:#189BD7"/> + <stop offset="0.7919" style="stop-color:#1194D2"/> + <stop offset="0.8823" style="stop-color:#1686C4"/> + <stop offset="0.9618" style="stop-color:#2375B2"/> + <stop offset="1" style="stop-color:#2868A3"/> + </linearGradient> + <path class="st22" d="M64.4,79.6c0.1-0.1,0.2-0.1,0.2-0.2c-4.8-5.7-9.2-11.6-13.2-17.7c-0.1,0.1-0.2,0.2-0.2,0.4 + C51.2,62,59.9,75.8,64.4,79.6z"/> + + <linearGradient id="SVGID_23_" gradientUnits="userSpaceOnUse" x1="48.978" y1="568.2083" x2="55.8905" y2="586.9353" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2B3C6B"/> + <stop offset="1" style="stop-color:#2B3C6B"/> + </linearGradient> + <path class="st23" d="M51.4,96c-0.2-0.3-9.4-11.1-13.6-17.4l-0.7,0.8c4.1,6,8.7,11.8,13.8,17.3L51.4,96z"/> + + <linearGradient id="SVGID_24_" gradientUnits="userSpaceOnUse" x1="62.1094" y1="548.9443" x2="70.2472" y2="599.6082" gradientTransform="matrix(1 0 0 1 -8.0854 -489.6845)"> + <stop offset="0" style="stop-color:#2F5385"/> + <stop offset="2.440000e-02" style="stop-color:#2D5D93"/> + <stop offset="8.880000e-02" style="stop-color:#2076B2"/> + <stop offset="0.1599" style="stop-color:#1686C4"/> + <stop offset="0.2403" style="stop-color:#1194D2"/> + <stop offset="0.3378" style="stop-color:#159CD8"/> + <stop offset="0.5" style="stop-color:#1F9DD9"/> + <stop offset="0.6718" style="stop-color:#189BD7"/> + <stop offset="0.7751" style="stop-color:#1194D2"/> + <stop offset="0.8603" style="stop-color:#1686C4"/> + <stop offset="0.9351" style="stop-color:#2375B2"/> + <stop offset="1" style="stop-color:#2F5D95"/> + </linearGradient> + <path class="st24" d="M64.6,79.4c-4.8-5.7-9.2-11.6-13.2-17.7c-0.5-0.7-1-1.4-1.4-2.2c-7.8,0-15.6,0.6-23.4,1.7 + c0.3,0.5,3.9,6.5,6.5,10.5c25,38.5,36.7,36.9,37.2,36.9c0.5-0.2,1.1-0.5,1.5-0.7l16.1-10.4C81.3,96,72.9,89.1,64.6,79.4z"/> + </g> +</g> +</svg> diff --git a/_templates/footer.html b/_templates/footer.html new file mode 100644 index 0000000000000000000000000000000000000000..db3a7034dd1deade028fd0484eeded313320f937 --- /dev/null +++ b/_templates/footer.html @@ -0,0 +1,71 @@ +{# + Copyright (C) 2022 Savoir-faire Linux Inc. + + 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 <http://www.gnu.org/licenses/>. + +The main purpose of this file is to enable use of a custom format +for the copyright statement in page footers, and is based on the +footer.html file from the Read the Docs Sphinx Theme project, under +the Expat License (also referred to as the "MIT License"), per the +following notice: + + Copyright (c) 2013-2018 Dave Snider, Read the Docs, Inc. & contributors + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +#} + +{% extends '!footer.html' %} +{% block contentinfo %} +<p>{%- if show_copyright %} + {%- if hasdoc('copyright') %} + {%- trans path=pathto('copyright'), copyright=copyright|e %}<a href="{{ path }}">Copyright</a> © {{ copyright }}.{% endtrans %} + {%- else %} + {%- trans copyright=copyright|e %}Copyright © {{ copyright }}.{% endtrans %} + {%- endif %} +{%- endif %} +{%- if build_id and build_url %} + <span class="build"> + {#- Translators: Build is a noun, not a verb -#} + {%- trans %}Build{% endtrans -%} + <a href="{{ build_url }}">{{ build_id }}</a>. + </span> +{%- elif commit %} + <span class="commit"> + {#- Translators: the phrase "revision" comes from Git, referring to a commit #} + {%- trans %}Revision{% endtrans %} <code>{{ commit }}</code>. + </span> +{%- endif %} +{%- if last_updated %} + <span class="lastupdated"> + {%- trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %} + </span> +{%- endif -%}</p> +{% endblock %} diff --git a/conf.py b/conf.py new file mode 100644 index 0000000000000000000000000000000000000000..7fcb202f9569ee2d98255dee39bc97a9e719a7e0 --- /dev/null +++ b/conf.py @@ -0,0 +1,42 @@ +# Copyright (C) 2022 Savoir-faire Linux Inc. +# +# 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 <http://www.gnu.org/licenses/>. +# + +# for a full list of Sphinx configuration options, see: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +project = 'Jami' +copyright = '2018-2022 Savoir-faire Linux Inc. and contributors' +author = 'Savoir-faire Linux Inc. and contributors' + +extensions = [ +] + +templates_path = ['_templates'] + +exclude_patterns = ['_build'] + +html_theme = 'sphinx_rtd_theme' + +html_theme_options = { + 'navigation_depth': 3, + 'sticky_navigation': False, + 'collapse_navigation': False, +} + +# paths containing custom static files +# (copied after the builtin static files, so a "default.css" +# file there would overwrite the builtin "default.css") +html_static_path = ['_static'] diff --git a/guides/how-to-contribute-to-this-documentation.rst b/guides/how-to-contribute-to-this-documentation.rst new file mode 100644 index 0000000000000000000000000000000000000000..976481d2ff27cab1d19384262f809c8ad3c8c300 --- /dev/null +++ b/guides/how-to-contribute-to-this-documentation.rst @@ -0,0 +1,147 @@ +####################################### +How to contribute to this documentation +####################################### + +Contributions to these docs are always welcome and appreciated, from +small corrections to whole new chapters. + +This page will walk through the steps to create a new page or submit a +correction. The patch review process is the same as :doc:`for any +other Jami project <how-to-submit-a-patch>`, so we will not explain +every command. + +**TODO: internationalization** + +Dependencies +============ + +You will need Git installed and configured to use your SSH keypair, +and an account on the Jami `Gerrit <https://review.jami.net>`_, where +you would send your patches for review. If you need help with this, +see :doc:`the beginning of our patch submission guide +<how-to-submit-a-patch>` (TODO). + +If you want to preview your changes locally in your web browser, you +need to install `Sphinx <https://www.sphinx-doc.org>`_. You also need +to install a markdown parser for Sphinx: + +.. code-block:: bash + + $ pip install --upgrade recommonmark + + +Cloning the repository +====================== + +Clone the repository and configure the push settings like this: + +.. code-block:: bash + + $ git clone "ssh://USERNAME@review.jami.net:29420/jami-docs.git" + $ cd jami-docs + $ git config remote.origin.push HEAD:refs/for/master + +You may want to checkout a new branch for each contribution/change +before you make any change to the files, so that you could easily +``git pull`` any future changes from upstream into your main local +branch: + +.. code-block:: bash + + $ git checkout -b my-example-change + +Editing a page +============== + +Pages are written in either markdown or `reStructuredText +<https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html>`_. +You can click "View page source" at the top of any page to open the +raw source of the page and see how it was written. + +Go ahead and make your changes to the ``.rst`` or ``.md`` files. + +Previewing your work +==================== + +From the base of the repository, run: + +.. code-block:: bash + + $ make clean && make html + +You should now be able to view the documentation in your web +browser. The homepage is at ``_build/html/index.html``. + +Saving your work +================ + +.. code-block:: bash + + $ git add source/file/you/edited.md + $ git commit + +Your commit message should look something like this: + +.. code-block:: none + + Short summary of your change in present tense + + Longer description of your change in complete sentences, if necessary. + + Jami GitLab issue numbers (e.g. GitLab: #445), if relevant. + +For example: + +.. code-block:: none + + Add new page section to guides/how-to-contribute-to-this-documentation + + Add a new section explaining how to add a new page to these docs, + including listing it in the `toctree` directive of the containing + section/folder index. + + GitLab: #123 + +Submitting a change +=================== + +The first time you try to push your changes, Gerrit will complain that +you don't have a Change-Id in your commit, and provide an ``scp`` +command to install the commit hook. After running the command, you +should be able to recommit and push your change: + +.. code-block:: bash + + $ git commit --amend --no-edit + $ git push + + +Modifying your work +=================== + +A reviewer may ask you to make changes to your patch before merging +it. This is no problem! Simply make the changes, ``git add`` them, +and run ``git commit --amend`` to modify the patch. Note the +``--amend`` switch, which is needed to tell git to *amend*/tweak the +existing newest commit rather than making a new commit. This is the +workflow for updating a proposed change when using Gerrit. + +Adding a page +============= + +If you decide to add a whole new page to the documentation, you must +also add it to the ``toctree`` directive of that chapter. + +For instance, if you added a new guide called +``hosting-jams-on-aws.md`` in the ``guides`` folder, you should add it +in the ``toctree`` directive of ``guides/index.rst``, *without* the +file extension: + + +.. code-block:: reST + + .. toctree:: + + bug-report-guide + ... + hosting-jams-on-aws diff --git a/guides/index.rst b/guides/index.rst new file mode 100644 index 0000000000000000000000000000000000000000..71e1e1dfbf3ac34705a11b51ef513e0850c9588a --- /dev/null +++ b/guides/index.rst @@ -0,0 +1,11 @@ +###### +Guides +###### + +These are how-to guides that should `follow this format +<https://documentation.divio.com/how-to-guides/>`_. + +.. toctree:: + :maxdepth: 1 + + how-to-contribute-to-this-documentation diff --git a/index.rst b/index.rst new file mode 100644 index 0000000000000000000000000000000000000000..5d2bf184a2786893c96f6671ad4ec160449cc808 --- /dev/null +++ b/index.rst @@ -0,0 +1,23 @@ +Home +==== + +.. image:: _static/logo-jami.svg + :alt: Jami logo + +This is the documentation for Jami, free software for universal +communication that respects the freedom and privacy of its users. + +This documentation is community-driven and :doc:`anyone can +contribute<guides/how-to-contribute-to-this-documentation>`! + +.. note:: You may also be interested in the Jami `daemon + <https://docs.jami.net/doxygen/daemon/>`_ or `libclient + <https://docs.jami.net/doxygen/lrc/>`_'s technical documentation, + the daemon's `code coverage <https://docs.jami.net/coverage/>`_, + or the `OpenDHT wiki + <https://github.com/savoirfairelinux/opendht/wiki>`_. + +.. toctree:: + :maxdepth: 2 + + guides/index