├── .editorconfig ├── .gitignore ├── LICENSE.md ├── README.md ├── assets ├── css │ ├── base │ │ ├── layout.css │ │ └── main.css │ ├── charte.css │ ├── checka11y.css │ ├── debug.css │ ├── element │ │ ├── blockquote.css │ │ ├── codeformatting.css │ │ ├── definitionlists.css │ │ ├── embed.css │ │ ├── table.css │ │ └── tableofcontents.css │ ├── fonts.css │ ├── mermaid.css │ ├── night-owl.min.css │ ├── object │ │ ├── benchmark.css │ │ ├── breadcrumb.css │ │ ├── buttons.css │ │ ├── card.css │ │ ├── counter.css │ │ ├── form.css │ │ ├── gantt.css │ │ ├── icon.css │ │ ├── medal.css │ │ ├── nav-anchor.css │ │ ├── nav-language.css │ │ ├── nav-tabs.css │ │ ├── pagination.css │ │ ├── parcours.css │ │ ├── scores.css │ │ ├── summary.css │ │ ├── tag.css │ │ ├── timeline.css │ │ └── usertests.css │ ├── overgo │ │ ├── base │ │ │ └── base.css │ │ ├── config │ │ │ ├── colors.css │ │ │ ├── mediaqueries.css │ │ │ └── typography.css │ │ ├── generic │ │ │ ├── normalize-opentype.css │ │ │ ├── print.css │ │ │ └── skiplink.css │ │ └── tool │ │ │ └── utilities.css │ ├── simple-lightbox.min.css │ └── styles.css └── js │ ├── debug.js │ ├── debug │ ├── jquery-3.4.1.slim.min.js │ ├── popper.min.js │ ├── sa11y.js │ └── tippy-bundle.umd.min.js │ ├── frappe-charts.min.iife.js │ ├── frappe-colors.js │ ├── highlight.min.js │ ├── mermaid.min.js │ ├── simple-lightbox.min.js │ └── van11y-accessible-tab-panel-aria.min.js ├── config.toml ├── content ├── 404.md ├── _index.md ├── _redirects ├── audits │ └── _index.md ├── greenit │ └── 0.3 │ │ └── criteres.md ├── offline.md ├── pidila │ └── 1.0 │ │ └── criteres.md ├── plans │ └── _index.md ├── rgaa │ ├── 4.0 │ │ ├── criteres.md │ │ └── glossaire.md │ ├── 4.1 │ │ ├── criteres.md │ │ └── glossaire.md │ └── _index.md ├── rgesn │ └── 0.1 │ │ └── criteres.md ├── schema.md ├── schemas │ └── _index.md ├── sitemap.md └── styleguide │ └── _index.md ├── data ├── greenit │ └── 0.3.json ├── month.yml ├── pidila │ ├── 1.0 │ │ └── criteria.json │ └── criteria.json ├── rgaa │ ├── 4.0 │ │ ├── criteria.json │ │ └── glossary.json │ ├── 4.1 │ │ ├── criteria.json │ │ └── glossary.json │ ├── criteria.json │ └── tests.yml └── rgesn │ └── 0.1.json ├── exampleSite ├── .gitignore ├── config.toml ├── content │ └── audits │ │ ├── projet1 │ │ ├── accessibility │ │ │ ├── 2022-02-10.csv │ │ │ └── context.yml │ │ └── index.md │ │ └── projet2 │ │ ├── accessibility │ │ ├── 2020-04-01.csv │ │ ├── 2022-01-18.csv │ │ └── context.yml │ │ └── index.md └── exampleFiles │ ├── .github │ └── workflows │ │ └── gh-pages.yml │ ├── .gitlab-ci.yml │ ├── grille-criteres-rgaa.csv │ ├── grille-tests-rgaa4.0.csv │ └── grille-tests-rgaa4.1.csv ├── go.mod ├── i18n ├── en.yaml └── fr.yaml ├── images └── frago.png ├── layouts ├── 404.html ├── _default │ ├── _markup │ │ ├── render-heading.html │ │ ├── render-image.html │ │ └── render-link.html │ ├── baseof.html │ ├── index.json │ ├── list.html │ ├── list.json │ ├── single.declaration.txt │ ├── single.html │ ├── single.json │ └── sitemap.xml ├── accessibility │ ├── single.declaration.txt │ ├── single.declarationpage.txt │ └── single.html ├── audits │ ├── list.accessibility.csv │ ├── list.accessibility.json │ ├── list.declaration.txt │ ├── list.html │ ├── list.performance.json │ ├── list.recommendation.json │ ├── single.accessibility.csv │ ├── single.accessibility.json │ ├── single.declaration.txt │ ├── single.html │ ├── single.performance.json │ └── single.recommendation.json ├── categories │ └── category.html ├── contact │ └── single.html ├── directory │ └── single.html ├── ecoconception │ └── single.html ├── glossary │ └── single.html ├── greenit │ └── single.html ├── index.html ├── index.json.json ├── index.schema.txt ├── offline │ └── single.html ├── partials │ ├── components │ │ ├── contact │ │ │ └── script.js │ │ ├── parcours │ │ │ └── template.html │ │ ├── personas │ │ │ └── template.html │ │ ├── phases │ │ │ └── template.html │ │ ├── recommendation │ │ │ ├── critical.html │ │ │ └── lot.html │ │ ├── scores │ │ │ ├── accessibility-graph.html │ │ │ ├── accessibility-small.html │ │ │ ├── accessibility.html │ │ │ ├── criteria.html │ │ │ ├── ecoconception-small.html │ │ │ ├── greenit-small.html │ │ │ ├── greenit.html │ │ │ ├── performance-small.html │ │ │ ├── performance.html │ │ │ ├── quality-small.html │ │ │ └── quality.html │ │ └── steps │ │ │ ├── script.js │ │ │ └── template.html │ ├── debug │ │ ├── debug.html │ │ ├── debuglist-element.html │ │ ├── debuglist.html │ │ └── debugprint.html │ ├── elements │ │ ├── content.html │ │ ├── images.html │ │ ├── tableofcontent.html │ │ └── time-to-read.html │ ├── footer.html │ ├── list.html │ ├── navigations │ │ ├── breadcrumb.html │ │ ├── nav-prevnext.html │ │ ├── nav-translated.html │ │ ├── paginator.html │ │ └── tags.html │ ├── render │ │ ├── accessibility.html │ │ ├── actions.html │ │ ├── context.html │ │ ├── ecoconception.html │ │ ├── externals.html │ │ ├── filepath.html │ │ ├── greenit.html │ │ ├── issimpleproject.html │ │ ├── lastfile.html │ │ ├── methodology.html │ │ ├── notepath.html │ │ ├── performance.html │ │ ├── projectpath.html │ │ ├── recommendation.html │ │ └── rootpath.html │ ├── templates │ │ ├── accessibility.html │ │ ├── actions.html │ │ ├── dashboard.html │ │ ├── declaration.html │ │ ├── ecoconception.html │ │ ├── greenit.html │ │ ├── performance.html │ │ ├── projects-list.html │ │ ├── projects-monitoring.html │ │ ├── projects.html │ │ ├── recommendation.html │ │ ├── schema.html │ │ └── validity.html │ └── utils │ │ ├── css.html │ │ └── isURL.html ├── performance │ └── single.html ├── personas │ ├── list.html │ └── single.html ├── pidila │ └── single.html ├── plans │ └── single.html ├── post │ └── single.html ├── projects │ └── single.html ├── quality │ └── single.html ├── rgaa │ └── single.html ├── rgesn │ └── single.html ├── schemas │ └── single.html ├── shortcodes │ ├── backlinks.html │ ├── benchmark.html │ ├── graphic.html │ ├── list-content.html │ ├── mermaid.html │ ├── mermaidmeetings.html │ ├── parcours.html │ ├── personas.html │ └── similary.html ├── simple │ └── single.html ├── sitemap │ └── single.html ├── styleguide │ └── list.html └── usertests │ └── single.html ├── netlify.toml ├── package.json ├── postcss.config.js ├── static ├── assets │ ├── css │ │ └── fonts.css │ ├── favicons │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── android-icon-144x144.png │ │ ├── android-icon-192x192.png │ │ ├── android-icon-36x36.png │ │ ├── android-icon-48x48.png │ │ ├── android-icon-72x72.png │ │ ├── android-icon-96x96.png │ │ ├── apple-icon-114x114.png │ │ ├── apple-icon-120x120.png │ │ ├── apple-icon-144x144.png │ │ ├── apple-icon-152x152.png │ │ ├── apple-icon-180x180.png │ │ ├── apple-icon-57x57.png │ │ ├── apple-icon-60x60.png │ │ ├── apple-icon-72x72.png │ │ ├── apple-icon-76x76.png │ │ ├── apple-icon-precomposed.png │ │ ├── apple-icon.png │ │ ├── apple-touch-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── favicon-original.png │ │ ├── favicon.ico │ │ ├── manifest.json │ │ ├── ms-icon-144x144.png │ │ ├── ms-icon-150x150.png │ │ ├── ms-icon-310x310.png │ │ ├── ms-icon-70x70.png │ │ └── site.webmanifest │ ├── fonts │ │ ├── Marianne-Bold.woff2 │ │ ├── Marianne-ExtraBold.woff2 │ │ ├── Marianne-Light.woff2 │ │ ├── Marianne-Medium.woff2 │ │ ├── Marianne-Regular.woff2 │ │ └── Marianne-Thin.woff2 │ └── images │ │ ├── greenit │ │ ├── picto-dechets.svg │ │ ├── picto-difficulte.svg │ │ ├── picto-eau.svg │ │ ├── picto-electricite.svg │ │ ├── picto-gaz.svg │ │ ├── picto-impact.svg │ │ ├── picto-potentiel-economie.svg │ │ ├── picto-potentiel-environnement.svg │ │ ├── picto-potentiel-social.svg │ │ ├── picto-priorite.svg │ │ ├── picto-ressources.svg │ │ ├── picto-social.svg │ │ └── picto.svg │ │ ├── logo.svg │ │ └── logodark.svg ├── manifest.json └── sw.js ├── theme.toml └── themes ├── documentago └── layouts │ └── _default │ └── list.html └── frago └── layouts └── partials └── elements └── content.html /.editorconfig: -------------------------------------------------------------------------------- 1 | # This fixes the annoying trailing space trim on VS Code 2 | # (we don't want it for mardown files) 3 | # see https://github.com/editorconfig/editorconfig-vscode/issues/153 4 | [*.md] 5 | trim_trailing_whitespace = false 6 | 7 | [*.html] 8 | indent_style = space 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Hugo 2 | public 3 | resources 4 | .hugo_build.lock 5 | 6 | # OS file systems 7 | .DS_Store 8 | 9 | # Editors 10 | .vscode -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Antoine Augusti 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Ce projet n'est plus maintenu par la [DINUM](https://www.numerique.gouv.fr). 2 | 3 | Il continue d'être développé sur [github.com/lowdit/frago](https://github.com/lowdit/frago). 4 | 5 | ## Génération de rapports de synthèse pour le suivi et l’amélioration de l’accessibilité web. 6 | 7 |

8 | 9 |

10 | 11 | ![Dernière version](https://badgen.net/github/tag/DISIC/frago) 12 | ![License](https://badgen.net/github/license/DISIC/frago) 13 | ![Issues](https://badgen.net/github/issues/DISIC/frago) 14 | ![Stars](https://badgen.net/github/stars/DISIC/frago) 15 | 16 | --- 17 | > FRAGO : French Reports for Accessibility compliance with goHugo 18 | 19 | ## Documentation 20 | 21 | Consultez la documentation pour découvrir l’outil : 22 | 23 | ## Licence 24 | 25 | Le code source de ce dépôt est publié sous licence [MIT](https://opensource.org/licenses/mit-license.php). 26 | 27 | La marque d’État est à usage exclusif des acteurs de la sphère étatique. En particulier, la typographie Marianne© est protégée par le droit d’auteur. 28 | Lire [les explications](https://www.gouvernement.fr/charte/charte-graphique-les-fondamentaux/la-typographie) sur le site de la marque d’État. 29 | 30 | Le thème Frago utilise cette liste de bibliothèques : 31 | 32 | 1. Frappe Charts ([MIT](https://github.com/mermaid-js/mermaid/blob/develop/LICENSE)) : - 33 | 2. Mermaid ([MIT](https://github.com/mermaid-js/mermaid/blob/develop/LICENSE)) : 34 | 3. Highlight.js ([MIT](https://github.com/highlightjs/highlight.js/blob/main/LICENSE)) : 35 | 4. simplelightbox ([MIT](https://github.com/andreknieriem/simplelightbox/blob/master/LICENSE)) : 36 | 5. Van11y accessible tabs panel system ([MIT](https://github.com/nico3333fr/van11y-accessible-tab-panel-aria/blob/master/LICENSE)) : 37 | 6. Checka11y.css ([MIT](https://github.com/jackdomleo7/Checka11y.css/blob/master/LICENSE)) : 38 | 39 | ## Auteur 40 | 41 | 2019-2020, Direction interministérielle du numérique. 42 | 2020-2022, Ministère de l’économie, des Finances et de la Relance. 43 | -------------------------------------------------------------------------------- /assets/css/base/layout.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Layout 3 | */ 4 | 5 | :root { 6 | --layout-max-width: 78rem; 7 | } 8 | 9 | /* Page & Wrapper 10 | // ------------------------- 11 | */ 12 | 13 | .page { 14 | padding-bottom: var(--baseline,1.5em); 15 | } 16 | 17 | .page, 18 | .fg-wrapper { 19 | margin-right: auto; 20 | margin-left: auto; 21 | width: 100vw; 22 | max-width: 100%; 23 | } 24 | 25 | .fg-wrapper { 26 | padding-right: var(--baseline,1.5em); 27 | padding-left: var(--baseline,1.5em); 28 | width: clamp(16rem, 90%, var(--layout-max-width)); 29 | } 30 | 31 | .narrow { 32 | max-width: 90ch; 33 | } 34 | 35 | /* Flex 36 | // ------------------------- 37 | */ 38 | 39 | .flex { 40 | flex-direction: column; 41 | justify-content: center; 42 | } 43 | 44 | .flex-gap > * { 45 | margin: 0 0 calc(var(--baseline,1.5em) / 2); 46 | } 47 | 48 | .flex-wrap { 49 | flex-wrap: wrap; 50 | } 51 | 52 | @media screen and (min-width: 56.25em) { 53 | .flex { 54 | display: flex; 55 | flex-direction: row; 56 | } 57 | 58 | .flex-gap { 59 | gap: 0 calc(var(--baseline,1.5em) / 2); 60 | } 61 | 62 | .flex-gap > * { 63 | margin: 0; 64 | } 65 | } 66 | 67 | .flex > * { 68 | flex: 1; 69 | } 70 | 71 | .flex-max { 72 | flex: 999; 73 | } 74 | 75 | .flex-min { 76 | flex: 0.001; 77 | } 78 | 79 | .flex-column { 80 | -ms-flex-direction: column; 81 | flex-direction: column; 82 | } 83 | 84 | /* Grid 85 | // ------------------------- 86 | */ 87 | 88 | @supports (grid-area: auto) { 89 | .grid { 90 | display: grid; 91 | grid-gap: 1.5em; 92 | padding: 0; 93 | } 94 | 95 | .grid-center { 96 | display: grid; 97 | place-items: center; 98 | } 99 | 100 | .grid-4 { 101 | grid-template-columns: repeat(2, minmax(250px, 1fr)) !important; 102 | } 103 | } 104 | 105 | .grid-separator > *:not(:first-child) { 106 | position: relative; 107 | border-top: #f1f1f1 2px solid; 108 | padding: 1em 0 0; 109 | } 110 | 111 | @media screen and (min-width: 56.25em) { 112 | .grid { 113 | grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); 114 | } 115 | 116 | .grid-4 > * { 117 | grid-template-columns: repeat(auto-fit, minmax(150px, 300px)) !important; 118 | } 119 | } 120 | 121 | 122 | /* Margin 123 | // ------------------------- 124 | */ 125 | 126 | .margin-baseline { 127 | margin-bottom: var(--baseline,1.5em); 128 | } 129 | 130 | .padding-baseline { 131 | padding-top: var(--baseline,1.5em); 132 | padding-bottom: var(--baseline,1.5em); 133 | } 134 | 135 | /* Alignement 136 | // ------------------------- 137 | */ 138 | 139 | .row-reverse { 140 | flex-direction: row-reverse; 141 | } 142 | 143 | .align-items-center { 144 | align-items: center; 145 | -ms-flex-align: center; 146 | } 147 | 148 | .justify-content-center { 149 | -ms-flex-pack: center; 150 | justify-content: center; 151 | } 152 | 153 | .justify-content-end { 154 | -ms-flex-pack: end; 155 | justify-content: flex-end; 156 | } 157 | -------------------------------------------------------------------------------- /assets/css/element/blockquote.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Blockquotes 3 | */ 4 | 5 | blockquote { 6 | margin-bottom: var(--baseline,1.5em); 7 | padding: calc(var(--baseline,1.5em) / 2) var(--baseline,1.5em) calc(var(--baseline,1.5em) / 4); 8 | font-size: calc(1rem * var(--ms1)); 9 | border-left: 5px solid var(--color-primary); 10 | background-color: #fff; 11 | quotes: "\201C""\201D""\2018""\2019"; 12 | } 13 | 14 | blockquote:before { 15 | color: var(--text-color); 16 | content: open-quote; 17 | font-size: 2rem; 18 | line-height: 0.1rem; 19 | margin-right: 0.25rem; 20 | vertical-align: -0.4rem; 21 | } 22 | 23 | blockquote, 24 | blockquote p, 25 | q { 26 | color: var(--color-grey-dark); 27 | } 28 | 29 | q { 30 | quotes: "“" "”"; 31 | } 32 | 33 | q:lang(de) { 34 | quotes: "„" "“"; 35 | } 36 | 37 | 38 | -------------------------------------------------------------------------------- /assets/css/element/codeformatting.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Code formatting 3 | */ 4 | 5 | pre, 6 | code { 7 | font-size: 0.9em; 8 | color: var(--color-grey-light,#fefefe); 9 | border: 1px solid var(--color-grey-light); 10 | border-radius: 3px; 11 | background-color: #272822; 12 | } 13 | 14 | code { 15 | padding: 1px 5px; 16 | } 17 | 18 | pre > code { 19 | padding-right: 0; 20 | padding-left: 0; 21 | border: 0; 22 | background: none; 23 | } 24 | -------------------------------------------------------------------------------- /assets/css/element/definitionlists.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Description Lists 3 | */ 4 | 5 | dl { 6 | margin-top: 0; 7 | margin-bottom: var(--baseline,1.5em); 8 | } 9 | 10 | dt, 11 | dd { 12 | line-height: var(--line-height-base); 13 | } 14 | 15 | dt { 16 | margin-top: calc(var(--baseline,1.5em) / 2); 17 | font-size: var(--bigger); 18 | font-weight: bold; 19 | } 20 | 21 | dd { 22 | margin-left: 0; 23 | } 24 | -------------------------------------------------------------------------------- /assets/css/element/embed.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// iFrame 3 | */ 4 | 5 | embed { 6 | margin-bottom: var(--baseline,1.5em); 7 | width: 100%; 8 | min-height: 800px; 9 | } 10 | 11 | iframe, 12 | embed, 13 | object, 14 | video { 15 | max-width: 100%; 16 | } 17 | -------------------------------------------------------------------------------- /assets/css/element/table.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Table 3 | */ 4 | 5 | table { 6 | margin-bottom: var(--baseline,1.5em); 7 | width: 100%; 8 | font-size: var(--smaller); 9 | color: var(--color-grey-dark); 10 | border: none; 11 | border: 1px solid var(--color-grey-verydark); 12 | border-collapse: collapse; 13 | border-left: 1px solid #000; 14 | background-color: #fff; 15 | } 16 | 17 | table caption { 18 | font-size: var(--bigger); 19 | font-weight: bold; 20 | text-align: left; 21 | color: var(--text-color); 22 | } 23 | 24 | table thead tr { 25 | height: 50px; 26 | } 27 | table tbody tr { 28 | height: 70px; 29 | } 30 | 31 | table th { 32 | color: var(--color-grey-verylight); 33 | border-bottom: 1px solid #000; 34 | border-left: 2px solid #000; 35 | background-color: #000; 36 | } 37 | 38 | table tbody th { 39 | color: var(--color-grey-dark); 40 | background-color: var(--color-primary-verylight); 41 | } 42 | 43 | table tr { 44 | border-bottom: 1px solid var(--color-grey-dark); 45 | } 46 | 47 | table tr:last-child { 48 | border: none; 49 | } 50 | 51 | table th, 52 | table td { 53 | padding: 5px 10px; 54 | } 55 | 56 | table td { 57 | border-left: 1px solid #000; 58 | color: #000; 59 | } 60 | 61 | -------------------------------------------------------------------------------- /assets/css/element/tableofcontents.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Table of content 3 | */ 4 | 5 | .tableofcontents { 6 | margin: var(--baseline,1.5em) 0 calc(var(--baseline,1.5em) * 2); 7 | padding: 0 var(--baseline,1.5em) var(--baseline,1.5em); 8 | color: var(--text-color); 9 | border: 1px solid #dedede; 10 | background: var(--background-color-body, #fff); 11 | } 12 | 13 | .tableofcontents ul { 14 | margin: var(--baseline,1.5em) 0 0; 15 | padding-left: var(--baseline,1.5em); 16 | } 17 | 18 | .tableofcontents a { 19 | color: var(--text-color); 20 | } 21 | 22 | .tableofcontents a { 23 | font-weight: 700; 24 | } 25 | -------------------------------------------------------------------------------- /assets/css/fonts.css: -------------------------------------------------------------------------------- 1 | @media (prefers-reduced-data: no-preference) { 2 | /* Marianne-Light - latin */ 3 | @font-face { 4 | font-family: 'Marianne'; 5 | font-style: normal; 6 | font-weight: 300; 7 | src: local('Marianne Light'), local('Marianne-Light'), 8 | url('/assets/fonts/Marianne-Light.woff2') format('woff2'); 9 | font-display: optional; 10 | } 11 | /* Marianne-regular - latin */ 12 | @font-face { 13 | font-family: 'Marianne'; 14 | font-style: normal; 15 | font-weight: 400; 16 | src: local('Marianne Regular'), local('Marianne-Regular'), 17 | url('/assets/fonts/Marianne-Regular.woff2') format('woff2'); 18 | font-display: optional; 19 | } 20 | /* Marianne-Bold - latin */ 21 | @font-face { 22 | font-family: 'Marianne'; 23 | font-style: normal; 24 | font-weight: 600; 25 | src: local('Marianne SemiBold'), local('Marianne-SemiBold'), 26 | url('/assets/fonts/Marianne-Bold.woff2') format('woff2'); 27 | font-display: optional; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /assets/css/mermaid.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Mermaid JS 3 | */ 4 | 5 | .mermaid { 6 | margin: 0 auto 1.5rem; 7 | max-width: 1400px; 8 | text-align: center; 9 | } 10 | 11 | .mermaid.meetings text { 12 | fill: black !important; 13 | } 14 | 15 | .mermaid svg { 16 | margin: auto; 17 | padding: 0 var(--baseline,1.5em); 18 | max-width: 98%; 19 | border-radius: 4px; 20 | background: #ffffff; 21 | } 22 | -------------------------------------------------------------------------------- /assets/css/night-owl.min.css: -------------------------------------------------------------------------------- 1 | .hljs{display:block;overflow-x:auto;padding:.5em;background:#011627;color:#d6deeb}.hljs-keyword{color:#c792ea;font-style:italic}.hljs-built_in{color:#addb67;font-style:italic}.hljs-type{color:#82aaff}.hljs-literal{color:#ff5874}.hljs-number{color:#f78c6c}.hljs-regexp{color:#5ca7e4}.hljs-string{color:#ecc48d}.hljs-subst{color:#d3423e}.hljs-symbol{color:#82aaff}.hljs-class{color:#ffcb8b}.hljs-function{color:#82aaff}.hljs-title{color:#dcdcaa;font-style:italic}.hljs-params{color:#7fdbca}.hljs-comment{color:#637777;font-style:italic}.hljs-doctag{color:#7fdbca}.hljs-meta{color:#82aaff}.hljs-meta-keyword{color:#82aaff}.hljs-meta-string{color:#ecc48d}.hljs-section{color:#82b1ff}.hljs-builtin-name,.hljs-name,.hljs-tag{color:#7fdbca}.hljs-attr{color:#7fdbca}.hljs-attribute{color:#80cbc4}.hljs-variable{color:#addb67}.hljs-bullet{color:#d9f5dd}.hljs-code{color:#80cbc4}.hljs-emphasis{color:#c792ea;font-style:italic}.hljs-strong{color:#addb67;font-weight:700}.hljs-formula{color:#c792ea}.hljs-link{color:#ff869a}.hljs-quote{color:#697098;font-style:italic}.hljs-selector-tag{color:#ff6363}.hljs-selector-id{color:#fad430}.hljs-selector-class{color:#addb67;font-style:italic}.hljs-selector-attr,.hljs-selector-pseudo{color:#c792ea;font-style:italic}.hljs-template-tag{color:#c792ea}.hljs-template-variable{color:#addb67}.hljs-addition{color:#addb67ff;font-style:italic}.hljs-deletion{color:#ef535090;font-style:italic} 2 | -------------------------------------------------------------------------------- /assets/css/object/benchmark.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Benchmark 3 | */ 4 | 5 | .benchmark { 6 | margin: calc(var(--baseline,1.5em) * 2) auto 0; 7 | } 8 | 9 | .benchmark:empty { 10 | display: none; 11 | } 12 | 13 | .benchmark > * { 14 | position: relative; 15 | flex-direction: column; 16 | padding-bottom: 2em; 17 | border: 1px solid var(--color-grey); 18 | background: #fff; 19 | } 20 | 21 | .benchmark-name { 22 | position: absolute; 23 | bottom: 0; 24 | display: grid; 25 | align-content: center; 26 | padding: 0 0.5em; 27 | width: 100%; 28 | line-height: 1; 29 | min-height: 3em; 30 | font-size: var(--smaller); 31 | color: #fff; 32 | background: rgba(0,0,0,0.8); 33 | } 34 | 35 | .benchmark figure { 36 | padding: var(--baseline,1.5em); 37 | text-align: center; 38 | background: #fff; 39 | } 40 | 41 | .benchmark img { 42 | margin: auto; 43 | } 44 | -------------------------------------------------------------------------------- /assets/css/object/breadcrumb.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Breadcrumb 3 | */ 4 | 5 | .breadcrumb { 6 | display: flex; 7 | flex-wrap: wrap; 8 | padding: var(--baseline,1.5em) calc(var(--baseline,1.5em) / 2); 9 | margin: 0 0 var(--baseline,1.5em); 10 | font-size: var(--smaller); 11 | list-style: none; 12 | } 13 | 14 | .breadcrumb-item { 15 | margin: 0; 16 | } 17 | 18 | .breadcrumb-item + .breadcrumb-item { 19 | padding-left: calc(var(--baseline,1.5em) / 2); 20 | } 21 | 22 | .breadcrumb-item + .breadcrumb-item a::before, 23 | .breadcrumb-item + .breadcrumb-item span::before { 24 | display: inline-block; 25 | padding-right: calc(var(--baseline,1.5em) / 2); 26 | content: '>'; 27 | } 28 | 29 | .breadcrumb-item + .breadcrumb-item:hover::before { 30 | text-decoration: underline; 31 | } 32 | 33 | .breadcrumb-item + .breadcrumb-item:hover::before { 34 | text-decoration: none; 35 | } 36 | 37 | .breadcrumb-item .active { 38 | color: red; 39 | } 40 | 41 | .breadcrumb-item .--has-menu span { 42 | position: relative; 43 | } 44 | 45 | .breadcrumb-item:hover .--has-menu span + ul { 46 | display: block; 47 | } 48 | 49 | .breadcrumb-item .--has-menu span a:after { 50 | padding-left: .5em; 51 | content: "\25BE"; 52 | } 53 | 54 | .breadcrumb-item .--has-menu span ul { 55 | display: none; 56 | position: absolute; 57 | margin: 0; 58 | padding: 0; 59 | min-width: 30vw; 60 | z-index: 3; 61 | margin-left: 1em; 62 | background-color: #fefefe; 63 | } 64 | 65 | .breadcrumb-item .--has-menu span a { 66 | display: block; 67 | margin: 0; 68 | padding: calc(var(--baseline,1.5em) / 4) var(--baseline,1.5em); 69 | } 70 | 71 | .breadcrumb-item .--has-menu span a:hover { 72 | color: #fefefe; 73 | background: #333; 74 | } 75 | -------------------------------------------------------------------------------- /assets/css/object/buttons.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Buttons 3 | */ 4 | 5 | form,body { 6 | --btn-bg--default: var(--base-primary); 7 | } 8 | 9 | input[type="submit"],.btn { 10 | display: inline-flex; 11 | align-items: center; 12 | justify-content: center; 13 | box-sizing: border-box; 14 | margin: var(--baseline,1.5em) 0; 15 | padding: calc(var(--baseline,1.5em) / 2) var(--baseline,1.5em); 16 | font-size: inherit; 17 | cursor: pointer; 18 | transition: background 0.45s; 19 | text-decoration: none; 20 | letter-spacing: .03125em; 21 | color: #fff; 22 | border: none; 23 | border-radius: 0; 24 | transition: all ease 0.15s; 25 | cursor: pointer; 26 | background: var(--background-effect, hsl(var(--btn-bg--state,var(--btn-bg,var(--btn-bg--type,var(--btn-bg--default)))), var(--base-sat), var(--base-light))); 27 | /* box-shadow: var(--enable-shadows,0 1px 1px rgba(0,0,0,0.08),0 2px 2px rgba(0,0,0,0.12),0 4px 4px rgba(0,0,0,0.16),0 8px 8px rgba(0,0,0,0.20)); */ 28 | } 29 | 30 | input[type="submit"]:not(:disabled):hover, 31 | .btn:not(:disabled):hover { 32 | --base-light: 30%; 33 | text-decoration: none; 34 | /* box-shadow: var(--enable-shadows,0 8px 8px rgba(0,0,0,0.04),0 10px 10px rgba(0,0,0,0.08)); */ 35 | text-decoration: none; 36 | transform: translateY(0); 37 | } 38 | 39 | input[type="submit"]:not(:disabled):active, 40 | .btn:not(:disabled):active { 41 | --base-light: 20%; 42 | transform: translate(0); 43 | /* box-shadow: var(--enable-shadows, inset 1px 1px 1px rgba(0, 0, 0, 0.11), inset 1px 1px 2px rgba(0, 0, 0, 0.11), inset 1px 1px 4px rgba(0, 0, 0, 0.31)); */ 44 | } 45 | 46 | input[type="submit"]:disabled, 47 | .btn:disabled { 48 | --background-effect: var(--color-grey); 49 | --enable-shadows: none; 50 | --btn-bg--state: 0; 51 | cursor: not-allowed; 52 | color: var(--color-grey-verylight); 53 | box-shadow: none; 54 | text-shadow: 1px 1px 2px var(--color-grey); 55 | } 56 | 57 | .skip { 58 | --base-opacity: 0; 59 | --enable-shadows: none; 60 | --btn-bg--state: transparent; 61 | color: var(--text-color, #555); 62 | } 63 | 64 | .primary { 65 | --btn-bg--type: var(--base-primary); 66 | } 67 | 68 | .secondary { 69 | --btn-bg--type: var(--base-secondary); 70 | } 71 | 72 | .warning { 73 | --btn-bg--type: calc(var(--base-hue) + 30); 74 | } 75 | 76 | .action { 77 | --btn-bg--type: calc(var(--base-hue) + 120); 78 | } 79 | 80 | .btn-large { 81 | font-size: var(--bigger); 82 | } 83 | 84 | .btn-small { 85 | font-size: var(--smaller); 86 | } 87 | -------------------------------------------------------------------------------- /assets/css/object/card.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Card 3 | */ 4 | 5 | .card { 6 | position: relative; 7 | display: -ms-grid; 8 | display: grid; 9 | -ms-grid-columns: 100%; 10 | -ms-grid-rows: auto 1fr auto; 11 | grid-template-columns: 100%; 12 | grid-template-rows: auto 1fr auto; 13 | overflow: hidden; 14 | justify-content: center; 15 | padding: var(--baseline,1.5em); 16 | min-height: 5em; 17 | font-weight: bold; 18 | background: var(--background-color-grey); 19 | } 20 | 21 | .card { 22 | padding: var(--baseline,1.5em); 23 | color: #666; 24 | color: var(--background-color); 25 | border-radius: 30px; 26 | box-shadow: 0 15px 30px 0 rgba(0, 0, 0, 0.1); 27 | } 28 | 29 | .card h3 a { 30 | text-decoration: none; 31 | color: var(--text-color); 32 | } 33 | 34 | .card h3 a:hover { 35 | text-decoration: underline; 36 | } 37 | 38 | .card-inline { 39 | display: flex; 40 | align-items: center; 41 | flex-wrap: wrap; 42 | justify-content: center; 43 | margin-bottom: var(--baseline,1.5em); 44 | padding: 0 var(--baseline,1.5em); 45 | text-decoration: none; 46 | color: var(--text-color); 47 | } 48 | 49 | .card-inline > * { 50 | padding: var(--baseline,1.5em) 0; 51 | width: 100%; 52 | } 53 | 54 | .card-inline > h2 { 55 | flex: 1; 56 | margin: 0; 57 | max-width: 75%; 58 | } 59 | 60 | @media screen and (min-width: 37.5em) { 61 | .card-inline { 62 | justify-content: space-between; 63 | text-align: left; 64 | } 65 | .card-inline > * { 66 | width: auto; 67 | } 68 | } 69 | 70 | .card-inline:hover { 71 | background: var(--background-color-grey-dark); 72 | } 73 | 74 | .card-inline:active { 75 | background: var(--background-color-grey-verydark); 76 | } 77 | 78 | .card-animate:focus-within, 79 | .card-animate:hover { 80 | transform: scale(1.03); 81 | opacity: 1; 82 | } 83 | 84 | .card-animate { 85 | transition: 0.3s opacity, 0.3s transform; 86 | pointer-events: auto; 87 | } 88 | 89 | .card-border { 90 | border: 1px solid var(--color-primary-dark); 91 | } 92 | 93 | .card-background { 94 | background: #fefefe; 95 | border: 2px solid #aaa; 96 | border-top: none; 97 | color: #000; 98 | } 99 | 100 | .card-shadow { 101 | box-shadow: var(--enable-shadows, 0 0 1px rgba(0, 0, 0, 0.11), 0 0 2px rgba(0, 0, 0, 0.11), 0 4px 4px rgba(0, 0, 0, 0.11)); 102 | } 103 | 104 | .card h2, 105 | .card h3, 106 | .card h4 { 107 | line-height: 1.25; 108 | color: var(--color-grey-dark); 109 | } 110 | 111 | .card > figure { 112 | overflow: hidden; 113 | border: 1px solid rgba(0, 0, 0, 0.11); 114 | border-radius: 4px 4px 0 0; 115 | } 116 | 117 | .card > img { 118 | width: 100%; 119 | max-height: 7em; 120 | object-fit: cover; 121 | } 122 | 123 | .card img.full { 124 | margin: -2em calc(var(--baseline,1.5em) * -1) calc(var(--baseline,1.5em)); 125 | width: calc(100% + calc(var(--baseline,1.5em) * 2)); 126 | max-width: calc(100% + calc(var(--baseline,1.5em) * 2)); 127 | max-height: 100em; 128 | object-fit: cover; 129 | } 130 | 131 | .card .meta-content { 132 | display: flex; 133 | flex: 1; 134 | flex-direction: column; 135 | justify-content: space-between; 136 | } 137 | 138 | .card p { 139 | color: var(--color-grey-dark); 140 | } 141 | 142 | .card a:hover { 143 | text-decoration: inherit; 144 | } 145 | 146 | .card-shadow { 147 | border: 1px solid var(--color-primary); 148 | box-shadow: var(--enable-shadows, inset 0 -0.25rem 0 0 var(--color-primary)); 149 | } 150 | -------------------------------------------------------------------------------- /assets/css/object/counter.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Counter 3 | */ 4 | 5 | .counter { 6 | align-items: center; 7 | padding: calc(var(--baseline,1.5em) / 2) calc(var(--baseline,1.5em) / 4); 8 | font-family: Futura, Tahoma, Helvetica, Arial, sans-serif; 9 | color: #fff; 10 | background: var(--color-score,#204f93); 11 | background-image: radial-gradient(rgba(255,255,255,0.1) 5%, transparent 10%); 12 | background-position: 0 0, 100px 100px; 13 | background-size: 20px 20px; 14 | } 15 | 16 | .counter b { 17 | font-size: 1.5rem; 18 | } 19 | 20 | .good.counter, 21 | .dataset-0 rect { 22 | background: var(--color-score-good,#307f5c); 23 | background-image: repeating-linear-gradient(60deg, transparent, transparent 10%, rgba(255,255,255,0.1) 10%, rgba(255,255,255,0.1) 11%,rgba(0,0,0,0.05) 11%,rgba(0,0,0,0.05) 11.3%); 24 | } 25 | 26 | .bad.counter, 27 | .dataset-1 rect { 28 | background: var(--color-score-bad,#ac3636); 29 | background-image: repeating-linear-gradient(-45deg, var(--color-score-bad,#ac3636), var(--color-score-bad,#ac3636) 10%, rgba(0,0,0,0.05) 10%, rgba(0,0,0,0.05) 10.3%,rgba(255,255,255,0.1) 10.3%,rgba(255,255,255,0.1) 14%); 30 | } 31 | 32 | .medium.counter, 33 | .dataset-1 rect { 34 | background: var(--color-score-medium,#dd9c0a); 35 | background-image: repeating-linear-gradient(45deg, transparent, transparent 10%, rgba(255,255,255,0.1) 10%, rgba(255,255,255,0.1) 12%),repeating-linear-gradient(-45deg, transparent, transparent 10%, rgba(255,255,255,0.1) 10%, rgba(255,255,255,0.1) 12%); 36 | } 37 | 38 | .verygood { 39 | background: var(--color-score-verygood,#30d42a); 40 | } 41 | 42 | .verybad { 43 | background: var(--color-score-verybad,#722); 44 | } 45 | -------------------------------------------------------------------------------- /assets/css/object/gantt.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Gantt 3 | */ 4 | 5 | .gantt h3 { 6 | grid-row: 1; 7 | margin: 0; 8 | padding: calc(var(--baseline,1.5em) / 2) 0; 9 | text-align: center; 10 | color: var(--text-color); 11 | background: var(--background-color-body, #fff); 12 | } 13 | 14 | .gantt div { 15 | margin: auto; 16 | padding: 10px 10px; 17 | max-width: 90%; 18 | font-size: 12px; 19 | text-align: center; 20 | color: white; 21 | border-radius: 20px; 22 | } 23 | 24 | @media only screen and (min-width: 960px) { 25 | .gantt { 26 | display: grid; 27 | grid-template-columns: [sept-start] 1fr [sept-middle] 1fr 28 | [sept-end oct-start] 1fr [oct-middle] 1fr 29 | [oct-end nov-start] 1fr [nov-middle] 1fr 30 | [nov-end dec-start] 1fr [dec-middle] 1fr 31 | [dec-end]; 32 | grid-gap: 10px 0; 33 | margin: 0 auto; 34 | padding-top: 40px; 35 | width: 100%; 36 | max-width: 1150px; 37 | } 38 | 39 | .gantt div { 40 | margin: 0; 41 | max-width: 100%; 42 | font-size: 16px; 43 | } 44 | 45 | /* Gantt */ 46 | .gantt span { 47 | grid-row: 1 / span 10; 48 | border-left: 1px solid var(--text-color); 49 | } 50 | 51 | .gantt h3 { 52 | border-left: 1px solid var(--text-color); 53 | } 54 | 55 | [class$=mid] { 56 | grid-row: 1 / span 9; 57 | } 58 | 59 | h3.h-sept { 60 | grid-column: 1 / span 2; 61 | } 62 | h3.h-oct { 63 | grid-column: 3 / span 2; 64 | } 65 | h3.h-nov { 66 | grid-column: 5 / span 2; 67 | } 68 | h3.h-dec { 69 | grid-column: 7 / span 2; 70 | } 71 | 72 | span.d-1 { 73 | grid-column: 1; 74 | } 75 | span.d-1mid { 76 | grid-column: 2; 77 | border-color: var(--text-color); 78 | border-left-style: dashed; 79 | } 80 | span.d-2 { 81 | grid-column: 3; 82 | } 83 | span.d-2mid { 84 | grid-column: 4; 85 | border-color: var(--text-color); 86 | border-left-style: dashed; 87 | } 88 | span.d-3 { 89 | grid-column: 5; 90 | } 91 | span.d-3mid { 92 | grid-column: 6; 93 | border-color: var(--text-color); 94 | border-left-style: dashed; 95 | } 96 | span.d-4 { 97 | grid-column: 7; 98 | } 99 | span.d-4mid { 100 | grid-column: 8; 101 | border-color: var(--text-color); 102 | border-left-style: dashed; 103 | } 104 | span.d-5 { 105 | grid-column: 9; 106 | } 107 | span.d-5mid { 108 | grid-column: 10; 109 | border-color: var(--text-color); 110 | border-left-style: dashed; 111 | } 112 | span.d-6 { 113 | grid-column: 11; 114 | } 115 | } 116 | /* specific task styles */ 117 | .t-1 { 118 | grid-row: 2; 119 | background: #b03532; 120 | } 121 | .t-2 { 122 | grid-row: 3; 123 | background: #33a8a5; 124 | } 125 | .t-3 { 126 | grid-row: 4; 127 | background: #30997a; 128 | } 129 | .t-4 { 130 | grid-row: 5; 131 | background: #6a478f; 132 | } 133 | .t-5 { 134 | grid-row: 6; 135 | background: #da6f2b; 136 | } 137 | .t-6 { 138 | grid-row: 7; 139 | background: #3d8bb1; 140 | } 141 | .t-7 { 142 | grid-row: 8; 143 | background: #e03f3f; 144 | } 145 | .t-8 { 146 | grid-row: 9; 147 | background: #59a627; 148 | } 149 | .t-9 { 150 | grid-row: 10; 151 | background: #4464a1; 152 | } 153 | -------------------------------------------------------------------------------- /assets/css/object/icon.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Title icon 3 | */ 4 | 5 | .icon:before { 6 | content: ""; 7 | display: block; 8 | margin: 0 auto 1em; 9 | width: 100px; 10 | height: 100px; 11 | color: var(--color-primary-dark); 12 | border: 1px solid var(--color-primary-verylight); 13 | border-radius: 50%; 14 | background-color: #fff; 15 | background-repeat: no-repeat; 16 | background-position: center center; 17 | } 18 | 19 | .control:before { 20 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='midnightblue' stroke-width='2' stroke-linecap='square' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='8.5' cy='7' r='4'%3E%3C/circle%3E%3Cpolyline points='17 11 19 13 23 9'%3E%3C/polyline%3E%3C/svg%3E"); 21 | } 22 | 23 | .externalize:before { 24 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='midnightblue' stroke-width='2' stroke-linecap='square' stroke-linejoin='round'%3E%3Cpath d='M16 17l5-5-5-5M19.8 12H9M13 22a10 10 0 1 1 0-20'/%3E%3C/svg%3E"); 25 | } 26 | 27 | .facilitate:before { 28 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='midnightblue' stroke-width='2' stroke-linecap='square' stroke-linejoin='round'%3E%3Cpath d='M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3'%3E%3C/path%3E%3C/svg%3E"); 29 | } 30 | -------------------------------------------------------------------------------- /assets/css/object/medal.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Medal 3 | */ 4 | 5 | .medal span { 6 | font-weight: bold; 7 | } 8 | 9 | .medal b { 10 | display: flex; 11 | align-items: center; 12 | justify-content: center; 13 | margin: 0 auto 0.2em; 14 | width: 3em; 15 | height: 3em; 16 | font-weight: bold; 17 | color: var(--background-color-body, #fff); 18 | border-radius: 50%; 19 | background: var(--color-primary-dark); 20 | } 21 | -------------------------------------------------------------------------------- /assets/css/object/nav-anchor.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Navigations anchor 3 | */ 4 | 5 | .nav-anchor { 6 | margin-bottom: calc(var(--baseline,1.5em) * 2); 7 | padding: var(--baseline,1.5em) calc(var(--baseline,1.5em) * 2) var(--baseline,1.5em); 8 | background-color: var(--background-color); 9 | } 10 | 11 | .nav-anchor li { 12 | display: inline-block; 13 | margin: var(--baseline,1.5em) var(--baseline,1.5em) var(--baseline,1.5em) 0; 14 | } 15 | -------------------------------------------------------------------------------- /assets/css/object/nav-language.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Nav language 3 | */ 4 | 5 | .nav-language { 6 | width: 100%; 7 | text-align: right; 8 | } 9 | 10 | .nav-language li:not(:first-child):before { 11 | content: "-"; 12 | margin-left: 4px; 13 | } 14 | -------------------------------------------------------------------------------- /assets/css/object/nav-tabs.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Navigations tabs 3 | */ 4 | 5 | .nav-tabs { 6 | margin: 0 0 var(--baseline,1.5em); 7 | } 8 | 9 | .nav-tabs li { 10 | text-align: center; 11 | } 12 | 13 | .nav-tabs__link { 14 | display: block; 15 | padding: 1em; 16 | height: 100%; 17 | line-height: 1.5; 18 | color: #fff; 19 | cursor: pointer; 20 | text-decoration: none; 21 | background: var(--color-primary); 22 | z-index: 0; 23 | } 24 | 25 | .nav-tabs__link strong { 26 | overflow: hidden; 27 | display: block; 28 | vertical-align: middle; 29 | } 30 | 31 | .nav-tabs__link span { 32 | display: inline-block; 33 | margin: 0 0.5em 0.5em 0; 34 | padding: 0.1em 0.5em; 35 | border-radius: 50%; 36 | font-size: var(--bigger); 37 | font-weight: bold; 38 | color: #000; 39 | background: #fff; 40 | } 41 | 42 | .nav-tabs__link:hover, 43 | [aria-selected="true"].nav-tabs__link { 44 | text-decoration: none; 45 | background: var(--color-primary-dark); 46 | } 47 | 48 | .nav-tabs__content { 49 | margin-top: var(--baseline,1.5em); 50 | padding: var(--baseline,1.5em); 51 | min-height: 20rem; 52 | text-align: center; 53 | font-size: var(--bigger); 54 | background: var(--background-color); 55 | } 56 | 57 | [aria-hidden="true"].nav-tabs__content { 58 | display: none; 59 | } 60 | 61 | @media screen and (min-width: 56.25em) { 62 | 63 | .nav-tabs ul { 64 | display: flex; 65 | } 66 | 67 | .nav-tabs li { 68 | position: relative; 69 | overflow: hidden; 70 | flex: 1; 71 | } 72 | 73 | li:not(:first-child) .nav-tabs__link { 74 | padding-left: 2em; 75 | } 76 | 77 | li:not(:last-child) .nav-tabs__link { 78 | padding-right: 2em; 79 | } 80 | 81 | li:not(:first-child) .nav-tabs__link::before, 82 | li:not(:last-child) .nav-tabs__link::after { 83 | --border-color: var(--color-primary); 84 | position: absolute; 85 | top: 50%; 86 | left: 0; 87 | content: ""; 88 | width: 0; 89 | height: 0; 90 | background: var(--background-color); 91 | border-top: 100px solid var(--border-color); 92 | border-left: 30px solid transparent; 93 | border-bottom: 100px solid var(--border-color); 94 | transition: .5s ease all; 95 | transform: translateY(-50%); 96 | } 97 | 98 | li:not(:last-child) .nav-tabs__link::after { 99 | left: auto; 100 | right: 0; 101 | border-top: 100px solid transparent; 102 | border-left: 30px solid var(--border-color); 103 | border-bottom: 100px solid transparent; 104 | } 105 | 106 | li [aria-selected="true"].nav-tabs__link::before, 107 | li [aria-selected="true"].nav-tabs__link::after, 108 | li .nav-tabs__link:hover::before, 109 | li .nav-tabs__link:hover::after { 110 | --border-color: var(--color-primary-dark); 111 | } 112 | } 113 | 114 | -------------------------------------------------------------------------------- /assets/css/object/pagination.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Pagination 3 | */ 4 | 5 | .pagination--item { 6 | position: relative; 7 | display: block; 8 | padding: 1em 0; 9 | color: var(--text-color); 10 | } 11 | 12 | .pagination--item::before { 13 | position: absolute; 14 | } 15 | 16 | .pagination--prev { 17 | padding-left: 1em; 18 | } 19 | 20 | .pagination--prev .pagination--item::before { 21 | content: "< "; 22 | left: -1em; 23 | } 24 | 25 | .pagination--next { 26 | padding-right: 1em; 27 | } 28 | 29 | .pagination--next .pagination--item::before { 30 | content: ">"; 31 | right: -1em; 32 | } 33 | -------------------------------------------------------------------------------- /assets/css/object/scores.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Scores 3 | */ 4 | 5 | .scores { 6 | overflow: hidden; 7 | align-items: stretch; 8 | margin: 0; 9 | } 10 | 11 | .scores + .scores { 12 | padding-top: 0; 13 | } 14 | 15 | .scores ul { 16 | margin: 0 calc(var(--baseline,1.5em) / -2) var(--baseline,1.5em); 17 | padding: 0; 18 | } 19 | 20 | .scores li { 21 | min-width: 8rem; 22 | min-height: 5rem; 23 | list-style: none; 24 | } 25 | -------------------------------------------------------------------------------- /assets/css/object/summary.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Details & Summary 3 | */ 4 | /* https://codepen.io/MoritzGiessmann/pen/PobErJB */ 5 | 6 | .details, 7 | details { 8 | overflow: hidden; 9 | width: 100%; 10 | border-bottom: 1px solid var(--background-color-grey-dark); 11 | background: var(--background-color-grey); 12 | } 13 | 14 | details:last-of-type { 15 | border-bottom: none; 16 | } 17 | 18 | .summary, 19 | summary { 20 | position: relative; 21 | display: block; 22 | align-items: center; 23 | margin-bottom: 0; 24 | padding: 20px 30px; 25 | font-weight: 600; 26 | 27 | user-select: none; 28 | border-bottom: 1px solid rgba(0, 0, 0, 0.1); 29 | outline: none; 30 | background: var(--background-color-grey); 31 | } 32 | 33 | .details-arrow summary:before { 34 | position: absolute; 35 | content: ""; 36 | top: 1.6rem; 37 | left: 1rem; 38 | transition: 0.25s transform ease; 39 | transform: rotate(0); 40 | transform-origin: 0.2rem 50%; 41 | border-width: 0.4rem; 42 | border-style: solid; 43 | border-color: transparent transparent transparent #000; 44 | } 45 | 46 | summary ~ * { 47 | padding-left: 30px; 48 | } 49 | 50 | summary ~ ul { 51 | padding-left: 60px; 52 | } 53 | 54 | .summary:last-of-type, 55 | summary:last-of-type { 56 | border-bottom: none; 57 | } 58 | 59 | .details-arrow summary::marker, 60 | .details-arrow summary::-webkit-details-marker { 61 | display: none; 62 | } 63 | 64 | summary:hover { 65 | cursor: pointer; 66 | background: var(--background-color-grey-dark,#f6f8fb); 67 | } 68 | 69 | details[open] summary { 70 | margin-bottom: 20px; 71 | padding-bottom: 20px; 72 | border-bottom: 1px solid rgba(0, 0, 0, 0.1); 73 | } 74 | -------------------------------------------------------------------------------- /assets/css/object/tag.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Tags 3 | */ 4 | 5 | .tags { 6 | display: flex; 7 | margin-bottom: var(--baseline,1.5em); 8 | } 9 | 10 | .tags a { 11 | position: relative; 12 | margin: 0 calc(var(--baseline,1.5em) / 4) 0 0; 13 | padding: 0.2em calc(var(--baseline,1.5em) / 2); 14 | text-decoration: none; 15 | color: var(--color-grey-verylight); 16 | background: hsl(var(--base-primary), var(--base-sat), var(--base-light)); 17 | border-radius: 4px; 18 | transition: color 0.2s; 19 | } 20 | 21 | .tags a:hover { 22 | --base-light: 30%; 23 | color: var(--color-grey-light); 24 | } 25 | 26 | -------------------------------------------------------------------------------- /assets/css/object/timeline.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Timeline 3 | */ 4 | 5 | .timeline { 6 | padding-left: 30px; 7 | list-style: none; 8 | border-left: 8px solid var(--color-grey-light); 9 | } 10 | 11 | @media only screen and (min-width: 600px) { 12 | .timeline { 13 | margin: 50px 0 30px 120px; 14 | padding-left: 30px; 15 | list-style: none; 16 | border-left: 8px solid var(--color-grey-light); 17 | } 18 | } 19 | 20 | .timeline a { 21 | color: var(--background-color-body, #fff); 22 | } 23 | 24 | .timeline li { 25 | position: relative; 26 | margin: 40px 0; 27 | } 28 | 29 | .timeline p { 30 | margin: 5px 0 15px; 31 | } 32 | 33 | @media only screen and (min-width: 600px) { 34 | .timeline .date { 35 | position: absolute; 36 | top: 50%; 37 | left: -158px; 38 | margin-top: -10px; 39 | line-height: 20px; 40 | font-size: 0.95em; 41 | } 42 | } 43 | 44 | .timeline .circle { 45 | position: absolute; 46 | top: 50%; 47 | left: -44px; 48 | display: block; 49 | margin-top: -10px; 50 | width: 20px; 51 | height: 20px; 52 | border: 5px solid var(--color-grey-verylight); 53 | border-radius: 50%; 54 | background: #48b379; 55 | } 56 | 57 | .timeline .content p { 58 | overflow: hidden; 59 | max-height: 200px; 60 | text-align: justify; 61 | word-break: break-word; 62 | color: var(--background-color-body, #fff); 63 | } 64 | 65 | .timeline label { 66 | font-size: 1.3em; 67 | font-weight: bold; 68 | cursor: auto; 69 | } 70 | 71 | .timeline .radio { 72 | display: none; 73 | } 74 | 75 | @media only screen and (min-width: 600px) { 76 | .timeline .content { 77 | max-height: 180px; 78 | transform: translateX(20px); 79 | border-width: 2px; 80 | border-style: solid; 81 | border-color: var(--color-grey-light,transparent); 82 | border-radius: 0.5em; 83 | } 84 | 85 | .timeline label { 86 | position: absolute; 87 | z-index: 100; 88 | top: 20px; 89 | transform: translateX(42px); 90 | } 91 | 92 | .timeline .content { 93 | position: relative; 94 | margin-right: 20px; 95 | padding: 50px 20px 0; 96 | } 97 | 98 | .timeline .content:before, 99 | .timeline .content:after { 100 | position: absolute; 101 | content: ""; 102 | right: calc(100% + 1px); 103 | width: 0; 104 | height: 0; 105 | pointer-events: none; 106 | border: solid transparent; 107 | } 108 | 109 | .timeline .content:before { 110 | top: 50%; 111 | margin-top: -20px; 112 | border-width: 20px; 113 | border-right-color: inherit; 114 | } 115 | 116 | .timeline .content:after { 117 | top: 50%; 118 | margin-top: -17px; 119 | border-width: 17px; 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /assets/css/object/usertests.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Usertests 3 | */ 4 | 5 | .usertests { 6 | padding: 0.5em; 7 | line-height: 1.2; 8 | border: 2px solid var(--color-grey-light); 9 | background: var(--color-grey-verylight); 10 | } 11 | 12 | .usertests h3 { 13 | margin-bottom: 0.5em; 14 | } 15 | 16 | .usertests .flex div { 17 | padding: 0.5em; 18 | 19 | --base-light: 35%; 20 | } 21 | 22 | .usertests-vis div { 23 | line-height: 1; 24 | min-height: 4em; 25 | font-size: var(--smaller); 26 | } 27 | -------------------------------------------------------------------------------- /assets/css/overgo/base/base.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Very basic styles 3 | */ 4 | 5 | html, 6 | body { 7 | box-sizing: border-box; 8 | margin: 0; 9 | scroll-behavior: smooth; 10 | } 11 | 12 | @media (prefers-reduced-motion: reduce) { 13 | html { 14 | scroll-behavior: auto; 15 | } 16 | } 17 | 18 | *, 19 | *:before, 20 | *:after { 21 | box-sizing: inherit; 22 | } 23 | 24 | /* @media (prefers-reduced-motion: reduce) { 25 | :root { 26 | --enable-shadows: none; 27 | } 28 | } */ 29 | 30 | /* Selection focus */ 31 | main:focus { 32 | outline: none; 33 | } 34 | 35 | :focus { 36 | outline: max(1px, 0.1em) dashed var(--color-primary); 37 | outline-offset: 0.15em; 38 | } 39 | 40 | @supports selector(:focus-visible) { 41 | :focus { 42 | outline: none; 43 | } 44 | 45 | [tabindex="-1"]:focus:not(:focus-visible) { 46 | outline: 0; 47 | } 48 | 49 | :focus-visible { 50 | outline: max(1px, 0.1em) dashed var(--color-primary); 51 | outline-offset: 0.15em; 52 | } 53 | @media (prefers-reduced-motion: no-preference) { 54 | :focus-visible { 55 | transition: outline-offset .25s ease; 56 | outline-offset: 5px; 57 | } 58 | } 59 | } 60 | 61 | /* Chunk rendering for all but the first article */ 62 | body > main > * + * { 63 | content-visibility: auto; 64 | } 65 | 66 | /* Images 67 | // ------------------------- 68 | */ 69 | 70 | img { 71 | max-width: 100%; 72 | height: auto; 73 | vertical-align: middle; 74 | -ms-interpolation-mode: bicubic; 75 | border: 0; 76 | } 77 | 78 | /* We need to revert these for Google maps cause else it breaks! */ 79 | .img--no-max { 80 | max-width: none; 81 | } 82 | 83 | /* Time 84 | // ------------------------- 85 | */ 86 | 87 | time { 88 | font-weight: bold; 89 | } 90 | 91 | /* Figures 92 | // ------------------------- 93 | */ 94 | 95 | figure > img { 96 | display: block; 97 | width: 100%; 98 | max-width: min(55rem, 100%); 99 | } 100 | 101 | figcaption { 102 | margin-top: 1rem; 103 | font-size: var(--smaller); 104 | font-style: italic; 105 | } 106 | 107 | /* Links 108 | // ------------------------- 109 | */ 110 | 111 | a { 112 | transition: 0.5s ease all; 113 | text-decoration: underline; 114 | color: var(--link-color); 115 | } 116 | 117 | [href]:hover { 118 | text-decoration: none; 119 | } 120 | 121 | a:hover, 122 | a:active { 123 | outline: none; 124 | } 125 | 126 | [id] { 127 | scroll-margin-top: 2ex; 128 | } 129 | 130 | /* Lists 131 | // ------------------------- 132 | */ 133 | 134 | ul, 135 | ol { 136 | margin-bottom: var(--baseline,1.5em); 137 | } 138 | 139 | /*/ List options 140 | // ------------------------- 141 | */ 142 | 143 | /* Unstyled keeps list items block level, just removes default browser padding and list-style*/ 144 | .list-unstyled { 145 | margin: 0; 146 | padding-left: 0; 147 | list-style: none; 148 | } 149 | 150 | /* Inline turns list items into inline-block */ 151 | .list-inline > li { 152 | display: inline-block; 153 | margin: 0 -5px 0 0; 154 | } 155 | 156 | /* Address 157 | // ------------------------- 158 | */ 159 | 160 | address { 161 | font-style: inherit; 162 | } 163 | -------------------------------------------------------------------------------- /assets/css/overgo/config/mediaqueries.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Media queries 3 | */ 4 | 5 | /* Media Query breakpoint 6 | // https://medium.freecodecamp.com/the-100-correct-way-to-do-css-breakpoints-88d6a5ba1862#.59e713wwa 7 | //------------------------------------- 8 | */ 9 | 10 | :root { 11 | --screen: "only screen"; 12 | --tiny: 20; /* 320px */ 13 | --small: 37.5; /* 600px */ 14 | --medium: 56.25; /* 900px */ 15 | --large: 75; /* 1200px */ 16 | --xlarge: 112.5; /* 1800px */ 17 | --xxlarge: 150; /* 2400px */ 18 | } 19 | -------------------------------------------------------------------------------- /assets/css/overgo/config/typography.css: -------------------------------------------------------------------------------- 1 | /* 2 | /// Typography 3 | */ 4 | 5 | /* Our variables 6 | //------------------------------------- 7 | */ 8 | 9 | :root { 10 | 11 | --system-font: BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif,'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; 12 | --base-font: var(--base-font-name,-apple-system), var(--system-font); 13 | --title-font: var(--title-font-name,-apple-system), var(--system-font); 14 | 15 | --ratio: 1.2; 16 | --base: 1; 17 | --base-em: calc(var(--base) * 1em); 18 | --base-rem: calc(var(--base) * 1rem); 19 | 20 | --ms0: 1; 21 | --ms1: var(--ratio); /* 1.2 */ 22 | --ms2: calc(var(--ratio) * var(--ms1)); /* 1.44 */ 23 | --ms3: calc(var(--ratio) * var(--ms2)); /* 1.728 */ 24 | --ms4: calc(var(--ratio) * var(--ms3)); /* 2.074 */ 25 | --ms5: calc(var(--ratio) * var(--ms4)); /* 2.488 */ 26 | --ms6: calc(var(--ratio) * var(--ms5)); /* 2.986 */ 27 | --ms7: calc(var(--ratio) * var(--ms6)); /* 3.583 */ 28 | 29 | --smaller: calc(var(--base-em) / var(--ms1)); 30 | --normal: calc(var(--base-em) * var(--ms0)); 31 | --bigger: calc(var(--base-em) * var(--ms1)); 32 | --title3: calc(var(--base-em) * var(--ms2)); 33 | --title2: calc(var(--base-em) * var(--ms3)); 34 | --title1: calc(var(--base-em) * var(--ms4)); 35 | 36 | --line-height-base: 1.5; 37 | --baseline: 1.5rem; 38 | 39 | --min-font-size: 14; 40 | --max-font-size: 16; 41 | --fluid-size: var(--min-font-size) * 1px + (var(--max-font-size) - var(--min-font-size)) * ((100vw - 420px) / (1200 - 420)); 42 | } 43 | 44 | /*-------------------------------------- 45 | // Typography 46 | --------------------------------------*/ 47 | 48 | :root { 49 | font-size: clamp(var(--min-font-size) * 1px,var(--fluid-size),var(--max-font-size) * 1px); 50 | } 51 | 52 | 53 | body { 54 | margin: 0; 55 | padding-bottom: 0; 56 | line-height: var(--line-height-base); 57 | font-family: var(--base-font); 58 | color: var(--title-color); 59 | } 60 | 61 | @media (prefers-reduced-data: reduce) { 62 | body { 63 | font-family: var(--system-font); 64 | } 65 | } 66 | 67 | h1, 68 | h2, 69 | h3, 70 | h4, 71 | h5, 72 | h6 73 | label, 74 | legend { 75 | color: currentColor; 76 | margin-top: var(--baseline,1.5em); 77 | margin-bottom: var(--baseline,1.5em); 78 | font-family: var(--title-font); 79 | } 80 | 81 | h6, 82 | .h6 { 83 | font-size: var(--smaller); 84 | } 85 | h5, 86 | .h5 { 87 | font-size: var(--normal); 88 | } 89 | h4, 90 | .h4 { 91 | font-size: var(--normal); 92 | } 93 | h3, 94 | .h3 { 95 | font-size: var(--title3); 96 | } 97 | h2, 98 | .h2, 99 | legend { 100 | font-size: var(--title2); 101 | } 102 | h1, 103 | .h1 { 104 | font-size: var(--title1); 105 | } 106 | 107 | h1 small, 108 | h2 small, 109 | h3 small { 110 | font-size: 65%; 111 | } 112 | 113 | p { 114 | margin: 0 0 var(--baseline,1.5em); 115 | } 116 | -------------------------------------------------------------------------------- /assets/css/overgo/generic/normalize-opentype.css: -------------------------------------------------------------------------------- 1 | /*! normalize-opentype.css v0.2.4 | MIT License | kennethormandy.com/journal/normalize-opentype-css */ 2 | 3 | /** 4 | // 1. Inherit style issues with custom selections, per robsterlini.co.uk/journal/opentype-and-selection-dont-mix 5 | // 2. Turn on kerning, standard ligatures, and proportional, oldstyle numerals 6 | // Turn off all other ligatures, tabular, lining numerals, and alternates 7 | // Uses same settings for tables 8 | // 3. Hard-codes fallback text selection for issue #18, color is Chrome’s per via http://stackoverflow.com/a/16094931/864799 9 | //// 10 | */ 11 | 12 | ::selection { 13 | color: inherit; /* 1. */ 14 | background-color: var(--background-color-selection,#accef7); /* 3. */ 15 | text-shadow: inherit; /* 2. */ 16 | } 17 | 18 | html, 19 | body, 20 | table { 21 | font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "pnum" 1, "tnum" 0, "onum" 1, "lnum" 0, "dlig" 0; /* 2. */ 22 | } 23 | 24 | /* Headings 25 | //========================================================================== // 26 | */ 27 | 28 | /* 29 | // 1. Turn on discretionary ligatures for larger headings 30 | */ 31 | 32 | h1, 33 | h2, 34 | h3 { 35 | font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "pnum" 1, "tnum" 0, "onum" 1, "lnum" 0, "dlig" 1; /* 1. */ 36 | } 37 | 38 | /* Text-level semantics 39 | //========================================================================== // 40 | */ 41 | 42 | /* 43 | // 1. Change all letters to uppercase 44 | // 2. Turn on small caps for upper and lowercase letters 45 | */ 46 | 47 | abbr { 48 | text-transform: uppercase; /* 1 */ 49 | 50 | font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "pnum" 1, "tnum" 0, "onum" 1, "lnum" 0, "smcp" 1, "c2sc" 1; /* 2 */ 51 | } 52 | 53 | time { 54 | font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "pnum" 1, "tnum" 0, "onum" 1, "lnum" 0; 55 | } 56 | 57 | /* 58 | // 1. Turn off kerning and ligatures, 59 | // Turn on lining, tabular numerals, slashed zero 60 | */ 61 | 62 | pre, 63 | kbd, 64 | samp, 65 | code { 66 | font-feature-settings: "kern" 0, "liga" 0, "calt" 1, "dlig" 0, "pnum" 0, "tnum" 1, "onum" 0, "lnum" 1, "zero" 1; /* 1. */ 67 | } 68 | 69 | /* 70 | // 1. Turn on proper supercript numerals 71 | */ 72 | 73 | sup { 74 | font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "pnum" 1, "tnum" 0, "onum" 1, "lnum" 0, "dlig" 0, "sups" 1; /* 1. */ 75 | } 76 | 77 | /* 78 | // 1. Turn on proper subscript numerals 79 | */ 80 | 81 | sub { 82 | font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "pnum" 1, "tnum" 0, "onum" 1, "lnum" 0, "dlig" 0, "subs" 1; /* 1. */ 83 | } 84 | 85 | /* Forms 86 | //========================================================================== // 87 | */ 88 | 89 | input[type="color"], 90 | input[type="date"], 91 | input[type="datetime"], 92 | input[type="datetime-local"], 93 | input[type="number"], 94 | input[type="range"], 95 | input[type="tel"], 96 | input[type="week"] { 97 | font-feature-settings: "kern" 0, "liga" 1, "calt" 1, "pnum" 1, "tnum" 0, "onum" 0, "lnum" 1, "zero" 0; /* 1. */ 98 | } 99 | 100 | 101 | /* 102 | // 1. Turns on tabular, lining numerals and slashed zero 103 | */ 104 | 105 | tbody, 106 | caption { 107 | font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "pnum" 0, "tnum" 1, "onum" 0, "lnum" 1, "zero" 1; /* 1. */ 108 | } 109 | -------------------------------------------------------------------------------- /assets/css/overgo/generic/print.css: -------------------------------------------------------------------------------- 1 | /* 2 | / Print 3 | / 4 | / http://www.alsacreations.com/tuto/lire/586-feuille-style-css-print-impression.html 5 | / http://www.alsacreations.com/astuce/lire/1160-une-feuille-de-styles-de-base-pour-le-media-print.html 6 | / https://uxdesign.cc/i-totally-forgot-about-print-style-sheets-f1e6604cfd6#.ad9m8zgbd 7 | / https://www.smashingmagazine.com/2018/05/print-stylesheets-in-2018/ 8 | //// 9 | */ 10 | 11 | @media print { 12 | /* Reset */ 13 | *, 14 | *:before, 15 | *:after, 16 | *:first-letter, 17 | p:first-line, 18 | div:first-line, 19 | blockquote:first-line, 20 | li:first-line { 21 | color: #000 !important; 22 | background: transparent !important; 23 | box-shadow: none !important; 24 | text-shadow: none !important; 25 | } 26 | 27 | /* Content */ 28 | body > *:not(main) { 29 | display: none; 30 | } 31 | 32 | /* a[href]:after { 33 | content: " ("attr(href) ")"; 34 | } 35 | 36 | abbr[title]:after { 37 | content: " ("attr(title) ")"; 38 | } */ 39 | 40 | 41 | @page { 42 | size: auto; 43 | } 44 | 45 | @page :first { 46 | header { 47 | margin: -100px; 48 | } 49 | } 50 | 51 | html { 52 | } 53 | 54 | body { 55 | font-size: 11pt; 56 | color: #000; 57 | background-color: #fff; 58 | } 59 | 60 | a, 61 | header a { 62 | color: #000; 63 | } 64 | 65 | p, 66 | blockquote { 67 | orphans: 3; 68 | widows: 3; 69 | } 70 | 71 | blockquote, 72 | ul, 73 | ol { 74 | page-break-inside: avoid; 75 | } 76 | 77 | h1, 78 | h2, 79 | h3, 80 | caption, 81 | figure { 82 | page-break-after: avoid; 83 | } 84 | 85 | .wrapper { 86 | margin: 0; 87 | max-width: none; 88 | } 89 | 90 | header { 91 | background: none; 92 | } 93 | 94 | nav, 95 | .breadcrumb { 96 | display: none; 97 | } 98 | 99 | table th, 100 | table td { 101 | padding: 1px 5px; 102 | border-width: 1px !important; 103 | } 104 | 105 | pre, 106 | code { 107 | overflow-x: auto; 108 | white-space: pre-wrap; 109 | white-space: -moz-pre-wrap !important; 110 | white-space: -pre-wrap; 111 | white-space: -o-pre-wrap; 112 | word-wrap: break-word; 113 | background: #fff; 114 | 115 | break-inside: avoid; 116 | } 117 | 118 | figure { 119 | padding: 0 !important; 120 | border: none !important; 121 | } 122 | 123 | figure a { 124 | display: block; 125 | } 126 | 127 | .no-print, 128 | .no-print * { 129 | display: none !important; 130 | } 131 | 132 | .grid { 133 | display: grid; 134 | grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); 135 | } 136 | 137 | .flex { 138 | display: flex; 139 | flex-direction: row; 140 | flex-wrap: wrap; 141 | } 142 | 143 | .flex > * { 144 | min-width: 200px; 145 | } 146 | 147 | .benchmark { 148 | break-inside: avoid; 149 | } 150 | 151 | .counter { 152 | display: grid; 153 | align-items: center; 154 | padding: 1em; 155 | font-family: Futura; 156 | border: 1px solid; 157 | } 158 | 159 | .page-break { 160 | break-before: page; 161 | } 162 | } 163 | -------------------------------------------------------------------------------- /assets/css/overgo/generic/skiplink.css: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | // Skiplink 4 | */ 5 | 6 | /* styling skip links */ 7 | .skip-links { 8 | position: absolute; 9 | top: 0; 10 | width: 100%; 11 | } 12 | 13 | .skip-links a { 14 | position: absolute; 15 | display: inline-block; 16 | overflow: hidden; 17 | clip: rect(1px, 1px, 1px, 1px); 18 | padding: var(--baseline,1.5em); 19 | text-decoration: none; 20 | color: white; 21 | background: black; 22 | } 23 | 24 | .skip-links a:focus { 25 | position: static; 26 | overflow: visible; 27 | clip: auto; 28 | } 29 | -------------------------------------------------------------------------------- /assets/css/styles.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | 3 | /* CSS DIRECTORY 4 | 1. =GLOBAL SETTINGS 5 | 2. =HEADER & FOOTER 6 | 3. =TYPOGRAPHY 7 | 4. =LOGO 8 | */ 9 | 10 | /* GLOBAL SETTINGS 11 | ----------------------------- */ 12 | 13 | /* = Colors = */ 14 | 15 | :root { 16 | --background-color: var(--color-primary-dark); 17 | 18 | --base-font-name: "Marianne"; 19 | --title-font-name: var(--base-font-name); 20 | --base-primary: 240; 21 | --base-secondary: calc(var(--base-primary) + 125); 22 | --link-color: var(--color-primary); 23 | --text-color: hsl(0 0% var(--l-0)); 24 | --text-color-lighter: hsl(0 0% var(--l-10)); 25 | --title-color: var(--text-color); 26 | --background-color-selection: var(--color-primary-light); 27 | } 28 | 29 | @media (prefers-color-scheme: dark) { 30 | :root { 31 | --background-color-body: #212529; 32 | } 33 | 34 | body { 35 | font-weight: 400; 36 | } 37 | 38 | strong, 39 | b, 40 | th, 41 | h1, 42 | h2, 43 | h3, 44 | h4, 45 | h5, 46 | h6 { 47 | font-weight: 600; 48 | } 49 | } 50 | 51 | /* = Very basic styles = */ 52 | 53 | *, 54 | *:before, 55 | *:after { 56 | box-sizing: border-box; 57 | margin: 0; 58 | } 59 | 60 | html { 61 | box-sizing: border-box; 62 | height: -webkit-fill-available; 63 | word-spacing: 1px; 64 | scroll-behavior: smooth; 65 | 66 | -webkit-text-size-adjust: 100%; 67 | -moz-osx-font-smoothing: grayscale; 68 | -webkit-font-smoothing: antialiased; 69 | } 70 | 71 | body { 72 | display: flex; 73 | flex-direction: column; 74 | min-height: 100vh; 75 | min-height: -webkit-fill-available; 76 | color: var(--text-color, --color-grey-dark); 77 | background-color: var(--background-color-body, #fff); 78 | } 79 | 80 | /* = Error = */ 81 | 82 | body.error-page { 83 | color: #fff; 84 | background-color: var(--color-grey-dark); 85 | background-size: cover; 86 | } 87 | 88 | /* HEADER & FOOTER 89 | ----------------------------- */ 90 | 91 | /* = main = */ 92 | 93 | main { 94 | flex-grow: 1; 95 | } 96 | 97 | /* = header = */ 98 | 99 | header { 100 | margin-bottom: calc(var(--baseline,1.5em) * 2); 101 | padding: 0 var(--baseline,1.5em); 102 | border-bottom: 1px solid #dedede; 103 | } 104 | 105 | /* COLOR 106 | ----------------------------- */ 107 | 108 | .primary { 109 | color: var(--color-primary); 110 | } 111 | -------------------------------------------------------------------------------- /assets/js/debug.js: -------------------------------------------------------------------------------- 1 | window.onscroll = function(ev) { 2 | if (window.innerHeight + window.pageYOffset >= document.body.offsetHeight) { 3 | console.log('bottom of page'); 4 | } 5 | }; 6 | 7 | var debugToggle = document.querySelector('.debug-toggle'); 8 | var debugHeader = document.querySelector('.debug-header'); 9 | var debugWrapper = document.querySelector('.debug'); 10 | var debugMainContent = document.querySelector('.debug-content'); 11 | 12 | debugToggle.onclick = function() { 13 | debugToggle.classList.toggle('active'); 14 | debugWrapper.classList.toggle('expanded'); 15 | debugMainContent.classList.toggle('open'); 16 | debugHeader.scrollIntoView({behavior: "smooth", block: "end"}); 17 | }; 18 | 19 | function openTab(evt, tabName) { 20 | // Declare all variables 21 | var i, tabcontent, tablinks; 22 | 23 | // Get all elements with class="tabcontent" and hide them 24 | tabcontent = document.getElementsByClassName('tabcontent'); 25 | for (i = 0; i < tabcontent.length; i++) { 26 | tabcontent[i].style.display = 'none'; 27 | } 28 | 29 | // Get all elements with class="tablinks" and remove the class "active" 30 | tablinks = document.getElementsByClassName('tablinks'); 31 | for (i = 0; i < tablinks.length; i++) { 32 | tablinks[i].className = tablinks[i].className.replace(' active', ''); 33 | } 34 | 35 | // Show the current tab, and add an "active" class to the button that opened the tab 36 | document.getElementById(tabName).style.display = 'block'; 37 | evt.currentTarget.className += ' active'; 38 | } 39 | -------------------------------------------------------------------------------- /assets/js/frappe-colors.js: -------------------------------------------------------------------------------- 1 | function hslToHex(hsl) { 2 | var h = hsl[0] 3 | s = hsl[1] 4 | l = hsl[02] 5 | l /= 100; 6 | const a = s * Math.min(l, 1 - l) / 100; 7 | 8 | const f = n => { 9 | const k = (n + h / 30) % 12; 10 | const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1); 11 | return Math.round(255 * color).toString(16).padStart(2, '0'); // convert to Hex and prefix "0" if needed 12 | }; 13 | return `#${f(0)}${f(8)}${f(4)}`; 14 | } 15 | function split(value) { 16 | var result = value 17 | if (value.includes('hsl')) { 18 | value = value.replaceAll('%','').slice(4,-1).split(', ').map(function(num) { 19 | if (num.includes('calc')) { 20 | return eval(num.slice(5,-1)); 21 | } 22 | else { 23 | return eval(num); 24 | } 25 | }) 26 | result = value 27 | } 28 | return result 29 | } 30 | const hslprimary = split(getComputedStyle(document.body).getPropertyValue('--color-graph-primary')) 31 | const hslsecondary = split(getComputedStyle(document.body).getPropertyValue('--color-graph-secondary')) 32 | const hsltertiary = split(getComputedStyle(document.body).getPropertyValue('--color-graph-tertiary')) 33 | const hslquartenary = split(getComputedStyle(document.body).getPropertyValue('--color-graph-quartenary')) 34 | -------------------------------------------------------------------------------- /config.toml: -------------------------------------------------------------------------------- 1 | baseURL = "/" 2 | paginate = "10" 3 | 4 | title = "Observatoire Accessibilité" 5 | 6 | languageCode = "fr-FR" 7 | defaultContentLanguage = "fr" 8 | defaultContentLanguageInSubdir = false 9 | enableInlineShortcodes = true 10 | removePathAccents = true 11 | enableGitInfo = true 12 | 13 | disableKinds = ["RSS", "sitemap", "taxonomy", "taxonomyTerm"] 14 | 15 | [outputformats] 16 | _merge = 'deep' 17 | 18 | [outputFormats.declarationpage] 19 | baseName = "declaration" 20 | mediaType = "text/html" 21 | notAlternative = false 22 | permalinkable = true 23 | isHTML = true 24 | [outputFormats.declaration] 25 | baseName = "declaration" 26 | mediaType = "text/plain" 27 | isPlainText = true 28 | notAlternative = false 29 | [outputFormats.accessibilitypage] 30 | baseName = "accessibility" 31 | mediaType = "text/html" 32 | notAlternative = false 33 | permalinkable = true 34 | isHTML = true 35 | [outputFormats.accessibilitycsv] 36 | baseName = "accessibility" 37 | mediaType = "text/csv" 38 | isPlainText = true 39 | notAlternative = false 40 | [outputFormats.accessibility] 41 | baseName = "accessibility" 42 | mediaType = "application/json" 43 | isPlainText = true 44 | notAlternative = false 45 | [outputFormats.ecoconceptionpage] 46 | baseName = "ecoconception" 47 | mediaType = "text/html" 48 | notAlternative = false 49 | permalinkable = true 50 | isHTML = true 51 | [outputFormats.ecoconceptioncsv] 52 | baseName = "ecoconception" 53 | mediaType = "text/csv" 54 | isPlainText = true 55 | notAlternative = false 56 | [outputFormats.ecoconception] 57 | baseName = "ecoconception" 58 | mediaType = "application/json" 59 | isPlainText = true 60 | notAlternative = false 61 | [outputFormats.greenitpage] 62 | baseName = "greenit" 63 | mediaType = "text/html" 64 | notAlternative = false 65 | permalinkable = true 66 | isHTML = true 67 | [outputFormats.greenit] 68 | baseName = "greenit" 69 | mediaType = "application/json" 70 | isPlainText = true 71 | notAlternative = false 72 | [outputFormats.recommendationpage] 73 | baseName = "recommendation" 74 | mediaType = "text/html" 75 | notAlternative = false 76 | permalinkable = true 77 | isHTML = true 78 | [outputFormats.recommendationcsv] 79 | baseName = "recommendation" 80 | mediaType = "text/csv" 81 | isPlainText = true 82 | notAlternative = false 83 | [outputFormats.recommendation] 84 | baseName = "recommendation" 85 | mediaType = "application/json" 86 | isPlainText = true 87 | notAlternative = false 88 | [outputFormats.qualitypage] 89 | baseName = "quality" 90 | mediaType = "text/html" 91 | notAlternative = false 92 | permalinkable = true 93 | isHTML = true 94 | [outputFormats.quality] 95 | baseName = "quality" 96 | mediaType = "application/json" 97 | isPlainText = true 98 | notAlternative = false 99 | [outputFormats.performancepage] 100 | baseName = "performance" 101 | mediaType = "text/html" 102 | isPlainText = true 103 | notAlternative = false 104 | permalinkable = true 105 | isHTML = true 106 | [outputFormats.performance] 107 | baseName = "performance" 108 | mediaType = "application/json" 109 | isPlainText = true 110 | notAlternative = false 111 | -------------------------------------------------------------------------------- /content/404.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Page d’erreur 3 | sitemapExclude: true 4 | --- 5 | -------------------------------------------------------------------------------- /content/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Accueil 3 | outputs: 4 | - html 5 | - json 6 | disableKinds: 7 | - RSS 8 | - taxonomy 9 | - taxonomyTerm 10 | cascade: 11 | - _target: 12 | path: /audits/**/index.md 13 | outputs: 14 | - html 15 | - json 16 | - declaration 17 | - declarationpage 18 | - accessibility 19 | - ecoconception 20 | - greenit 21 | - quality 22 | - recommendation 23 | - performance 24 | - accessibilitypage 25 | - ecoconceptionpage 26 | - greenitpage 27 | - qualitypage 28 | - recommendationpage 29 | - performancepage 30 | - _target: 31 | path: /audits/**/_index.md 32 | outputs: 33 | - html 34 | - json 35 | - declaration 36 | - declarationpage 37 | - _target: 38 | path: /audits/_index.md 39 | outputs: 40 | - html 41 | - json 42 | - declaration 43 | - accessibility 44 | - ecoconception 45 | - greenit 46 | - quality 47 | - recommendation 48 | - performance 49 | - accessibilitypage 50 | - ecoconceptionpage 51 | - greenitpage 52 | - qualitypage 53 | - recommendationpage 54 | - performancepage 55 | - _target: 56 | path: /audits/index.md 57 | type: "audits" 58 | --- 59 | -------------------------------------------------------------------------------- /content/_redirects: -------------------------------------------------------------------------------- 1 | 2 | /* /404.html 404 3 | -------------------------------------------------------------------------------- /content/audits/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Accueil 3 | outputs: 4 | - html 5 | - json 6 | disableKinds: 7 | - RSS 8 | - taxonomy 9 | - taxonomyTerm 10 | cascade: 11 | - _target: 12 | path: /audits/**/index.md 13 | outputs: 14 | - html 15 | - json 16 | - declaration 17 | - declarationpage 18 | - accessibility 19 | - ecoconception 20 | - greenit 21 | - quality 22 | - recommendation 23 | - performance 24 | - accessibilitypage 25 | - ecoconceptionpage 26 | - greenitpage 27 | - qualitypage 28 | - recommendationpage 29 | - performancepage 30 | - _target: 31 | path: /audits/**/_index.md 32 | outputs: 33 | - html 34 | - json 35 | - declaration 36 | - declarationpage 37 | - _target: 38 | path: /audits/_index.md 39 | outputs: 40 | - html 41 | - json 42 | - declaration 43 | - accessibility 44 | - ecoconception 45 | - greenit 46 | - quality 47 | - recommendation 48 | - performance 49 | - accessibilitypage 50 | - ecoconceptionpage 51 | - greenitpage 52 | - qualitypage 53 | - recommendationpage 54 | - performancepage 55 | - _target: 56 | path: /audits/index.md 57 | type: "audits" 58 | --- 59 | -------------------------------------------------------------------------------- /content/greenit/0.3/criteres.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Critères GreenIT 0.3 3 | menu: 4 | footer: 5 | name: "Critères GreenIT" 6 | weight: 6 7 | --- 8 | -------------------------------------------------------------------------------- /content/offline.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Oops, vous êtes déconnecté du réseau." 3 | type: "offline" 4 | sitemapExclude: true 5 | --- 6 | 7 | Essayez de vous connecter à Internet pour naviguer sur le site. 8 | -------------------------------------------------------------------------------- /content/pidila/1.0/criteres.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Critères Pidila 3 | --- 4 | -------------------------------------------------------------------------------- /content/plans/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Plan d’actions" 3 | --- 4 | -------------------------------------------------------------------------------- /content/rgaa/4.0/criteres.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Critères RGAA 4.0 3 | --- 4 | -------------------------------------------------------------------------------- /content/rgaa/4.0/glossaire.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Glossaire RGAA 4.0 3 | type: glossary 4 | --- 5 | -------------------------------------------------------------------------------- /content/rgaa/4.1/criteres.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Critères RGAA 4.1 3 | menu: 4 | footer: 5 | name: "Critères RGAA" 6 | weight: 1 7 | --- 8 | -------------------------------------------------------------------------------- /content/rgaa/4.1/glossaire.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Glossaire RGAA 4.1 3 | type: glossary 4 | menu: 5 | footer: 6 | name: "Glossaire RGAA" 7 | weight: 1 8 | --- 9 | -------------------------------------------------------------------------------- /content/rgaa/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Documents RGAA 3 | --- 4 | -------------------------------------------------------------------------------- /content/rgesn/0.1/criteres.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Critères RGESN 0.1 3 | menu: 4 | footer: 5 | name: "Critères RGESN" 6 | weight: 5 7 | --- 8 | -------------------------------------------------------------------------------- /content/schema.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Schéma Pluriannuel" 3 | type: schemas 4 | --- 5 | -------------------------------------------------------------------------------- /content/schemas/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Schémas Pluriannuels 3 | --- 4 | -------------------------------------------------------------------------------- /content/sitemap.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Plan du site 3 | type: sitemap 4 | sitemapExclude: true 5 | --- 6 | -------------------------------------------------------------------------------- /content/styleguide/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Styleguide 3 | type: styleguide 4 | sitemapExclude: true 5 | --- 6 | -------------------------------------------------------------------------------- /data/month.yml: -------------------------------------------------------------------------------- 1 | 1: "janvier" 2 | 2: "février" 3 | 3: "mars" 4 | 4: "avril" 5 | 5: "mai" 6 | 6: "juin" 7 | 7: "juillet" 8 | 8: "août" 9 | 9: "septembre" 10 | 10: "octobre" 11 | 11: "novembre" 12 | 12: "décembre" 13 | -------------------------------------------------------------------------------- /data/pidila/criteria.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "Pi-001", 4 | "description": "Ajouter un pied de page à la démarche une indication sur la niveau de conformité de la démarche." 5 | }, 6 | { 7 | "id": "Pi-008", 8 | "description": "Ajouter un pied de page à la démarche avec un lien vers une page ”mentions légales”." 9 | }, 10 | { 11 | "id": "Pi-010", 12 | "description": "Ajouter un pied de page à la démarche avec un lien vers une page ”accessibilité”." 13 | }, 14 | { 15 | "id": "Pi-012", 16 | "description": "Indiquer 2 moyens de contact. Ex. sur la déclaration d’accessibilité" 17 | }, 18 | { 19 | "id": "Pi-016", 20 | "description": "Indiquer/Décrire sur la page d’accueil la nature de la démarche." 21 | }, 22 | { 23 | "id": "Pi-022", 24 | "description": "Indiquer/Décrire sur la page d’accueil la nature de la démarche." 25 | }, 26 | { 27 | "id": "Pi-026", 28 | "description": "Indiquer 2 moyens de contact. Ex. sur la déclaration d’accessibilité" 29 | }, 30 | { 31 | "id": "Pi-032", 32 | "description": "Ajouter/compléter la navigation de pied de page ave cles liens obligatoires." 33 | } 34 | , 35 | { 36 | "id": "Pi-122", 37 | "description": "Ajouter ou le bandeau et le pied de page pour être à la charte de l’État : logo, couleur…" 38 | } 39 | ] 40 | -------------------------------------------------------------------------------- /data/rgaa/tests.yml: -------------------------------------------------------------------------------- 1 | 25: 2 | - "1.1" 3 | - "3.1" 4 | - "4.1" 5 | - "4.10" 6 | - "5.3" 7 | - "5.7" 8 | - "6.1" 9 | - "6.2" 10 | - "7.1" 11 | - "7.3" 12 | - "8.3" 13 | - "8.4" 14 | - "8.5" 15 | - "9.1" 16 | - "10.3" 17 | - "10.6" 18 | - "10.7" 19 | - "11.1" 20 | - "11.2" 21 | - "11.5" 22 | - "11.6" 23 | - "11.9" 24 | - "11.10" 25 | - "12.8" 26 | - "12.9" 27 | 50: 28 | - "1.3" 29 | - "1.5" 30 | - "1.6" 31 | - "1.7" 32 | - "4.2" 33 | - "4.4" 34 | - "4.8" 35 | - "4.9" 36 | - "5.4" 37 | - "5.6" 38 | - "7.2" 39 | - "8.2" 40 | - "8.6" 41 | - "8.10" 42 | - "10.2" 43 | - "10.8" 44 | - "10.9" 45 | - "10.10" 46 | - "13.1" 47 | - "13.3" 48 | - "13.4" 49 | - "13.5" 50 | - "13.6" 51 | - "13.7" 52 | - "13.8" 53 | 81: 54 | - "1.2" 55 | - "1.4" 56 | - "1.9" 57 | - "2.1" 58 | - "2.2" 59 | - "4.3" 60 | - "4.7" 61 | - "4.11" 62 | - "4.12" 63 | - "4.13" 64 | - "5.1" 65 | - "5.2" 66 | - "5.5" 67 | - "5.8" 68 | - "7.4" 69 | - "8.1" 70 | - "8.9" 71 | - "9.2" 72 | - "9.3" 73 | - "9.4" 74 | - "10.1" 75 | - "10.14" 76 | - "11.8" 77 | - "12.6" 78 | - "12.7" 79 | - "12.10" 80 | - "12.11" 81 | - "13.2" 82 | - "13.10" 83 | - "13.11" 84 | - "13.12" 85 | 106: 86 | - "1.8" 87 | - "3.2" 88 | - "3.3" 89 | - "4.5" 90 | - "4.6" 91 | - "7.5" 92 | - "8.7" 93 | - "8.8" 94 | - "10.4" 95 | - "10.5" 96 | - "10.11" 97 | - "10.12" 98 | - "10.13" 99 | - "11.3" 100 | - "11.4" 101 | - "11.7" 102 | - "11.11" 103 | - "11.12" 104 | - "11.13" 105 | - "12.1" 106 | - "12.2" 107 | - "12.3" 108 | - "12.4" 109 | - "12.5" 110 | - "13.9" 111 | 112 | -------------------------------------------------------------------------------- /exampleSite/.gitignore: -------------------------------------------------------------------------------- 1 | config-local.toml 2 | package-lock.json 3 | .vscode 4 | resources/_gen 5 | public 6 | themesdev 7 | hugo.log 8 | -------------------------------------------------------------------------------- /exampleSite/config.toml: -------------------------------------------------------------------------------- 1 | baseURL = "" 2 | 3 | title = "Mon titre" 4 | theme = ["frago"] 5 | 6 | [params] 7 | organisation = "Mon organisation" 8 | -------------------------------------------------------------------------------- /exampleSite/content/audits/projet1/accessibility/context.yml: -------------------------------------------------------------------------------- 1 | website: "projet1.fr" 2 | contacts: 3 | email: stap-amendes@ministere.gouv.fr 4 | address : 139 rue de Bercy, 75572 Paris, Cedex 12 5 | audits: 6 | 2022-02-10: 7 | guidelines: "RGAA 4.1" 8 | condition: "Auto-évaluation" 9 | technologies: ["HTML", "CSS", "JS", "PDF"] 10 | tools: ["Wave", "AXE", "Web Developper","Usability Hike","Heading Maps"] 11 | environment: ["MacOS", "Firefox", "Chrome", "ChromeVox"] 12 | -------------------------------------------------------------------------------- /exampleSite/content/audits/projet1/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Projet 1 3 | --- 4 | -------------------------------------------------------------------------------- /exampleSite/content/audits/projet2/accessibility/2020-04-01.csv: -------------------------------------------------------------------------------- 1 | "Thématiques","Critères","Dépot Fichier","Retrait Fichier" 2 | "1","1","c","na" 3 | "1","2","na","na" 4 | "1","3","c","na" 5 | "1","4","na","na" 6 | "1","5","na","na" 7 | "1","6","na","na" 8 | "1","7","na","na" 9 | "1","8","c","c" 10 | "1","9","na","na" 11 | "2","1","na","na" 12 | "2","2","na","na" 13 | "3","1","c","c" 14 | "3","2","nc","nc" 15 | "3","3","nc","na" 16 | "4","1","na","na" 17 | "4","2","na","na" 18 | "4","3","na","na" 19 | "4","4","na","na" 20 | "4","5","na","na" 21 | "4","6","na","na" 22 | "4","7","na","na" 23 | "4","8","na","na" 24 | "4","9","na","na" 25 | "4","10","na","na" 26 | "4","11","na","na" 27 | "4","12","na","na" 28 | "4","13","na","na" 29 | "5","1","na","na" 30 | "5","2","na","na" 31 | "5","3","na","na" 32 | "5","4","na","na" 33 | "5","5","na","na" 34 | "5","6","na","c" 35 | "5","7","na","nc" 36 | "5","8","na","na" 37 | "6","1","c","c" 38 | "6","2","c","c" 39 | "7","1","na","na" 40 | "7","2","na","na" 41 | "7","3","na","na" 42 | "7","4","na","na" 43 | "7","5","na","na" 44 | "8","1","c","c" 45 | "8","2","c","nc" 46 | "8","3","nc","nc" 47 | "8","4","na","na" 48 | "8","5","c","c" 49 | "8","6","nc","nc" 50 | "8","7","na","na" 51 | "8","8","na","na" 52 | "8","9","nc","nc" 53 | "8","10","na","na" 54 | "9","1","nc","nc" 55 | "9","2","nc","nc" 56 | "9","3","na","na" 57 | "9","4","na","na" 58 | "10","1","nc","nc" 59 | "10","2","c","c" 60 | "10","3","c","c" 61 | "10","4","c","c" 62 | "10","5","c","c" 63 | "10","6","na","c" 64 | "10","7","c","c" 65 | "10","8","na","na" 66 | "10","9","c","c" 67 | "10","10","c","c" 68 | "10","11","c","c" 69 | "10","12","c","c" 70 | "10","13","na","na" 71 | "10","14","na","na" 72 | "11","1","na","na" 73 | "11","2","na","na" 74 | "11","3","na","na" 75 | "11","4","na","na" 76 | "11","5","na","na" 77 | "11","6","na","na" 78 | "11","7","na","na" 79 | "11","8","na","na" 80 | "11","9","c","na" 81 | "11","10","na","na" 82 | "11","11","na","na" 83 | "11","12","na","na" 84 | "11","13","na","na" 85 | "12","1","nc","na" 86 | "12","2","na","na" 87 | "12","3","na","na" 88 | "12","4","na","na" 89 | "12","5","na","na" 90 | "12","6","na","na" 91 | "12","7","na","na" 92 | "12","8","c","c" 93 | "12","9","c","c" 94 | "12","10","na","na" 95 | "12","11","na","na" 96 | "13","1","na","na" 97 | "13","2","na","na" 98 | "13","3","na","na" 99 | "13","4","na","na" 100 | "13","5","na","na" 101 | "13","6","na","na" 102 | "13","7","na","na" 103 | "13","8","na","na" 104 | "13","9","c","c" 105 | "13","10","na","na" 106 | "13","11","nc","na" 107 | "13","12","na","na" 108 | -------------------------------------------------------------------------------- /exampleSite/content/audits/projet2/accessibility/2022-01-18.csv: -------------------------------------------------------------------------------- 1 | "Thématiques","Critères","Dépot Fichier","Retrait Fichier" 2 | "1","1","c","na" 3 | "1","2","na","na" 4 | "1","3","c","na" 5 | "1","4","na","na" 6 | "1","5","na","na" 7 | "1","6","na","na" 8 | "1","7","na","na" 9 | "1","8","c","c" 10 | "1","9","na","na" 11 | "2","1","na","na" 12 | "2","2","na","na" 13 | "3","1","c","c" 14 | "3","2","nc","nc" 15 | "3","3","nc","na" 16 | "4","1","na","na" 17 | "4","2","na","na" 18 | "4","3","na","na" 19 | "4","4","na","na" 20 | "4","5","na","na" 21 | "4","6","na","na" 22 | "4","7","na","na" 23 | "4","8","na","na" 24 | "4","9","na","na" 25 | "4","10","na","na" 26 | "4","11","na","na" 27 | "4","12","na","na" 28 | "4","13","na","na" 29 | "5","1","na","na" 30 | "5","2","na","na" 31 | "5","3","na","na" 32 | "5","4","na","na" 33 | "5","5","na","na" 34 | "5","6","na","c" 35 | "5","7","na","nc" 36 | "5","8","na","na" 37 | "6","1","c","c" 38 | "6","2","c","c" 39 | "7","1","na","na" 40 | "7","2","na","na" 41 | "7","3","na","na" 42 | "7","4","na","na" 43 | "7","5","na","na" 44 | "8","1","c","c" 45 | "8","2","c","nc" 46 | "8","3","nc","nc" 47 | "8","4","na","na" 48 | "8","5","c","c" 49 | "8","6","nc","nc" 50 | "8","7","na","na" 51 | "8","8","na","na" 52 | "8","9","nc","nc" 53 | "8","10","na","na" 54 | "9","1","nc","nc" 55 | "9","2","nc","nc" 56 | "9","3","na","na" 57 | "9","4","na","na" 58 | "10","1","nc","nc" 59 | "10","2","nc","nc" 60 | "10","3","nc","nc" 61 | "10","4","nc","nc" 62 | "10","5","nc","nc" 63 | "10","6","na","c" 64 | "10","7","c","c" 65 | "10","8","na","na" 66 | "10","9","c","c" 67 | "10","10","c","c" 68 | "10","11","c","c" 69 | "10","12","c","c" 70 | "10","13","na","na" 71 | "10","14","na","na" 72 | "11","1","na","na" 73 | "11","2","na","na" 74 | "11","3","na","na" 75 | "11","4","na","na" 76 | "11","5","na","na" 77 | "11","6","na","na" 78 | "11","7","na","na" 79 | "11","8","na","na" 80 | "11","9","c","na" 81 | "11","10","na","na" 82 | "11","11","na","na" 83 | "11","12","na","na" 84 | "11","13","na","na" 85 | "12","1","nc","na" 86 | "12","2","nc","nc" 87 | "12","3","na","na" 88 | "12","4","na","na" 89 | "12","5","na","na" 90 | "12","6","na","na" 91 | "12","7","na","na" 92 | "12","8","c","c" 93 | "12","9","c","c" 94 | "12","10","nc","nc" 95 | "12","11","nc","nc" 96 | "13","1","na","na" 97 | "13","2","na","na" 98 | "13","3","na","na" 99 | "13","4","na","na" 100 | "13","5","na","na" 101 | "13","6","na","na" 102 | "13","7","na","na" 103 | "13","8","na","na" 104 | "13","9","c","c" 105 | "13","10","na","na" 106 | "13","11","nc","na" 107 | "13","12","na","na" 108 | -------------------------------------------------------------------------------- /exampleSite/content/audits/projet2/accessibility/context.yml: -------------------------------------------------------------------------------- 1 | website: "projet1.fr" 2 | contacts: 3 | email: stap-amendes@ministere.gouv.fr 4 | address : 139 rue de Bercy, 75572 Paris, Cedex 12 5 | audits: 6 | 2022-01-18: 7 | guidelines: "RGAA 4.1" 8 | condition: "Auto-évaluation" 9 | technologies: ["HTML", "CSS", "JS", "PDF"] 10 | tools: ["Wave", "AXE", "Web Developper","Usability Hike","Heading Maps"] 11 | environment: ["MacOS", "Firefox", "Safari", "VoiceOver"] 12 | 2020-04-01: 13 | guidelines: "RGAA 4.1" 14 | condition: "Auto-évaluation" 15 | technologies: ["HTML", "CSS", "JS", "PDF"] 16 | tools: ["Wave", "AXE", "Web Developper","Usability Hike","Heading Maps"] 17 | environment: ["MacOS", "Firefox", "Safari", "VoiceOver"] 18 | -------------------------------------------------------------------------------- /exampleSite/content/audits/projet2/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Projet2 3 | --- 4 | -------------------------------------------------------------------------------- /exampleSite/exampleFiles/.github/workflows/gh-pages.yml: -------------------------------------------------------------------------------- 1 | name: github pages 2 | 3 | on: 4 | push: 5 | branches: 6 | - master # Set a branch to deploy 7 | 8 | jobs: 9 | deploy: 10 | runs-on: ubuntu-18.04 11 | steps: 12 | - uses: actions/checkout@v2 13 | with: 14 | submodules: true # Fetch Hugo themes (true OR recursive) 15 | fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod 16 | 17 | - name: Setup Hugo 18 | uses: peaceiris/actions-hugo@v2 19 | with: 20 | hugo-version: 'latest' 21 | # extended: true 22 | 23 | - name: Build 24 | run: hugo --minify --buildFuture 25 | 26 | - name: Deploy 27 | uses: peaceiris/actions-gh-pages@v3 28 | with: 29 | github_token: ${{ secrets.GITHUB_TOKEN }} 30 | publish_dir: ./public 31 | -------------------------------------------------------------------------------- /exampleSite/exampleFiles/.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | image: registry.gitlab.com/pages/hugo:latest 2 | 3 | variables: 4 | GIT_SUBMODULE_STRATEGY: recursive 5 | 6 | pages: 7 | script: 8 | - hugo --minify --buildFuture 9 | artifacts: 10 | paths: 11 | - public 12 | -------------------------------------------------------------------------------- /exampleSite/exampleFiles/grille-criteres-rgaa.csv: -------------------------------------------------------------------------------- 1 | "Thématiques","Critères","Accueil" 2 | "1","1","25" 3 | "1","2","81" 4 | "1","3","50" 5 | "1","4","81" 6 | "1","5","50" 7 | "1","6","50" 8 | "1","7","50" 9 | "1","8","" 10 | "1","9","81" 11 | "2","1","81" 12 | "2","2","81" 13 | "3","1","25" 14 | "3","2","" 15 | "3","3","" 16 | "4","1","25" 17 | "4","2","50" 18 | "4","3","81" 19 | "4","4","50" 20 | "4","5","" 21 | "4","6","" 22 | "4","7","81" 23 | "4","8","50" 24 | "4","9","50" 25 | "4","10","25" 26 | "4","11","81" 27 | "4","12","81" 28 | "4","13","81" 29 | "5","1","81" 30 | "5","2","81" 31 | "5","3","25" 32 | "5","4","50" 33 | "5","5","81" 34 | "5","6","50" 35 | "5","7","25" 36 | "5","8","81" 37 | "6","1","25" 38 | "6","2","25" 39 | "7","1","25" 40 | "7","2","50" 41 | "7","3","25" 42 | "7","4","81" 43 | "7","5","" 44 | "8","1","81" 45 | "8","2","50" 46 | "8","3","25" 47 | "8","4","25" 48 | "8","5","25" 49 | "8","6","50" 50 | "8","7","" 51 | "8","8","" 52 | "8","9","81" 53 | "8","10","50" 54 | "9","1","25" 55 | "9","2","81" 56 | "9","3","81" 57 | "9","4","81" 58 | "10","1","81" 59 | "10","2","50" 60 | "10","3","25" 61 | "10","4","" 62 | "10","5","" 63 | "10","6","25" 64 | "10","7","25" 65 | "10","8","50" 66 | "10","9","" 67 | "10","10","50" 68 | "10","11","" 69 | "10","12","" 70 | "10","13","" 71 | "10","14","81" 72 | "11","1","25" 73 | "11","2","25" 74 | "11","3","" 75 | "11","4","" 76 | "11","5","25" 77 | "11","6","25" 78 | "11","7","" 79 | "11","8","81" 80 | "11","9","25" 81 | "11","10","25" 82 | "11","11","" 83 | "11","12","" 84 | "11","13","" 85 | "12","1","" 86 | "12","2","" 87 | "12","3","" 88 | "12","4","" 89 | "12","5","" 90 | "12","6","81" 91 | "12","7","81" 92 | "12","8","25" 93 | "12","9","25" 94 | "12","10","81" 95 | "12","11","81" 96 | "13","1","50" 97 | "13","2","81" 98 | "13","3","50" 99 | "13","4","50" 100 | "13","5","50" 101 | "13","6","50" 102 | "13","7","50" 103 | "13","8","50" 104 | "13","9","" 105 | "13","10","81" 106 | "13","11","81" 107 | "13","12","81" 108 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/disic/frago 2 | 3 | go 1.14 4 | -------------------------------------------------------------------------------- /i18n/en.yaml: -------------------------------------------------------------------------------- 1 | home: 2 | other: "Home" 3 | nav-content: 4 | other: "Other contents" 5 | nav-package: 6 | other: "View the other categories" 7 | nav-anchor: 8 | other: "Discover the thematics" 9 | promise-title: 10 | other: "Content library" 11 | promise-text: 12 | other: "Improving teaching and learning outcomes in the Northern region of Ghana" 13 | title-related-content: 14 | other: "related content" 15 | link-access-more: 16 | other: "See more" 17 | link-access-content: 18 | other: "See more" 19 | form-legend-sort: 20 | other: "Sort by:" 21 | form-legend-sort-date: 22 | other: "Sort by date:" 23 | form-label-title: 24 | other: "Title" 25 | form-label-lang: 26 | other: "Language" 27 | form-legend-lang: 28 | other: "Languages:" 29 | form-label-date: 30 | other: "Date" 31 | form-label-ascending: 32 | other: "Ascending" 33 | form-label-descending: 34 | other: "Descending" 35 | form-label-all: 36 | other: "All" 37 | search-placeholder: 38 | other: "What are you looking for?" 39 | search-button: 40 | other: "Search" 41 | assets-images: 42 | other: "images" 43 | assets-audio: 44 | other: "sounds" 45 | assets-documents: 46 | other: "documents" 47 | assets-videos: 48 | other: videos 49 | message-video-compatibility: 50 | other: "Your browser does not support the video tag." 51 | message-audio-compatibility: 52 | other: "Your browser does not support the audio tag." 53 | message-notfound: 54 | other: "Page not found" 55 | languages: 56 | one: "Language" 57 | other: "Languages" 58 | category: 59 | one: "category" 60 | other: "categories" 61 | optional: 62 | other: "optional" 63 | required: 64 | other: "required" 65 | location: 66 | other: "location" 67 | name: 68 | other: "name" 69 | email: 70 | other: "email" 71 | phone: 72 | other: "phone" 73 | message: 74 | other: "message" 75 | send: 76 | other: "send" 77 | contact-us: 78 | other: "Contact Us" 79 | 80 | -------------------------------------------------------------------------------- /images/frago.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/images/frago.png -------------------------------------------------------------------------------- /layouts/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | {{ block "title" . }}{{ .Title }}{{ end }} | {{ .Site.Title }} 8 | 9 | 10 | {{ hugo.Generator }} 11 | 12 | 13 | {{- if .IsTranslated -}} 14 | {{- range .Translations -}} 15 | 16 | {{- end -}} 17 | {{- end -}} 18 | {{- if and (not .Site.IsServer) (eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production")) -}} 19 | 20 | {{ else }} 21 | 22 | {{- end -}} 23 | 24 | 25 | 26 | 27 | 28 | {{ with .Site.Params.tile_color }}{{ else }}{{ end }} 29 | {{ with .Site.Params.theme_color }}{{ else }}{{ end }} 30 | 31 | 32 | {{- with resources.Match "**.css" -}} 33 | 34 | {{- range . -}} 35 | {{- if (in . "overgo") -}}{{- $.Scratch.Add "css" (slice .) -}}{{ end }} 36 | {{- end -}} 37 | {{- end -}} 38 | 39 | {{- $styles := resources.Get "/css/styles.css" -}} 40 | 41 | {{- $.Scratch.Add "css" (slice $styles) -}} 42 | {{- $style := ($.Scratch.Get "css") | resources.Concat "styles.css" -}} 43 | 44 | {{- if and (not .Site.IsServer) (eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production")) -}} 45 | {{- $style := $style | postCSS (dict "config" "postcss.config.js") -}} 46 | {{- end -}} 47 | 48 | {{- partialCached "utils/css.html" (dict "context" . "filefolder" "" "filename" "fonts") "fonts" -}} 49 | 52 | 53 | {{- with .OutputFormats.Get "RSS" -}} 54 | 55 | 56 | {{- end -}} 57 | 58 | 59 |
60 |
61 |

¯\_(ツ)_/¯

62 |

{{ i18n "message-not-found" }}

63 |
64 |
65 | {{ partialCached "footer" . . }} 66 | 67 | 68 | -------------------------------------------------------------------------------- /layouts/_default/_markup/render-heading.html: -------------------------------------------------------------------------------- 1 | 2 | {{- $anchoredLinkLevels := slice 2 -}} 3 | {{- if in $anchoredLinkLevels .Level -}} 4 | {{ printf "" (.Anchor | safeURL) (T "anchor_for") (.Text | plainify | safeHTML) | safeHTML }} {{ .Text | safeHTML }} 5 | {{- else -}} 6 | {{ .Text | safeHTML }} 7 | {{- end -}} 8 | -------------------------------------------------------------------------------- /layouts/_default/_markup/render-image.html: -------------------------------------------------------------------------------- 1 | {{ partial "elements/images.html" (dict "image" .Destination "title" .Title "alt" .Text) | replaceRE "" (.name | urlize | safeURL) (T "anchor_for") (.name | plainify | safeHTML) | safeHTML }}{{ .name }} 7 |

8 | {{ if .job }}Poste : {{ .job }}
{{ end }} 9 | {{ if .direction }}Direction : {{ .direction }}
{{ end }} 10 | {{ if .ministry }}Ministère : {{ .ministry }}
{{ end }} 11 | {{ if .email }}Email : {{ .email }}
{{ end }} 12 |

13 | {{- end -}} 14 | {{- else -}} 15 | {{- warnf "%s" "data/directory.json file is missing" -}} 16 | {{- end -}} 17 | 18 | {{- end -}} 19 | -------------------------------------------------------------------------------- /layouts/ecoconception/single.html: -------------------------------------------------------------------------------- 1 | {{- define "title" -}} 2 | {{- $context := . -}} 3 | {{- $alternate := where (where .OutputFormats "Permalink" "eq" .Permalink) "Rel" "eq" "alternate" -}} 4 | {{- if ne (len $alternate) 0 -}} 5 | {{- with $alternate -}} 6 | {{- range $key, $value := . -}} 7 | {{- if eq .Format.BaseName "declaration" -}}Déclaration{{- end -}} 8 | {{- end -}} 9 | {{- end -}} 10 | {{- else -}} 11 | Éco conception 12 | {{- end -}} 13 | {{- $projectTitle := (.GetPage "./").Title -}}{{ with $projectTitle }} pour {{ $projectTitle }}{{ else }}{{ (index (split (path.Dir .Path) "/") 1) }}{{ end }} 14 | {{- end -}} 15 | 16 | {{- define "main" -}} 17 | {{- $context := . -}} 18 | {{- $partial := (partialCached "templates/ecoconception.html" (dict "context" $context) $context) -}} 19 | {{- partialCached "elements/content.html" $partial $partial -}} 20 | {{- end -}} 21 | -------------------------------------------------------------------------------- /layouts/glossary/single.html: -------------------------------------------------------------------------------- 1 | {{- define "main" -}} 2 | {{- $patharray := split (path.Dir .Path) "/" -}} 3 | 4 | {{- $.Scratch.Set "guidelinename" "rgaa" -}} 5 | {{- $.Scratch.Set "guidelineversion" "4.1" -}} 6 | {{- if ge ($patharray) 2 -}} 7 | {{- $.Scratch.Set "guideline" (index $patharray 0) -}} 8 | {{- $.Scratch.Set "guidelinename" (index $patharray 0) -}} 9 | {{- $.Scratch.Set "guidelineversion" (index $patharray 1) -}} 10 | {{- end -}} 11 | 12 | {{ partialCached "utils/css.html" (dict "context" . "filefolder" "element" "filename" "definitionlists") "definitionlists" }} 13 | {{ partialCached "utils/css.html" (dict "context" . "filefolder" "element" "filename" "codeformatting") "codeformatting" }} 14 |
15 |

{{ .Title }}

16 | {{- range $key, $value := (index (index $.Site.Data ($.Scratch.Get "guidelinename")) ($.Scratch.Get "guidelineversion")).glossary -}} 17 | {{- range $value -}} 18 |

{{ .section }}

19 |
20 | {{- range .dl -}} 21 |
{{ .dt }}
22 |
23 | {{- range .dd -}} 24 | {{- if reflect.IsMap . -}} 25 | {{- range . -}} 26 |
    27 | {{- range . -}} 28 | {{- if reflect.IsMap . -}} 29 |
  • 30 | {{- range . -}} 31 |
      32 | {{- range . -}} 33 |
    • 34 | {{ . | markdownify }} 35 |
    • 36 | {{- end -}} 37 |
    38 | {{- end -}} 39 |
  • 40 | {{- else -}} 41 |
  • {{ . | markdownify }}
  • 42 | {{- end -}} 43 | {{- end -}} 44 |
45 | {{- end -}} 46 | {{- else -}} 47 |

{{ . | markdownify }}

48 | {{- end -}} 49 | {{- end -}} 50 |
51 | {{- end -}} 52 |
53 | {{- end -}} 54 | {{- end -}} 55 |
56 | {{- end -}} 57 | -------------------------------------------------------------------------------- /layouts/index.html: -------------------------------------------------------------------------------- 1 | {{- define "title" -}}{{- .Title -}}{{- end -}} 2 | 3 | {{- define "main" -}} 4 | {{/* Looking for alternate format */}} 5 | {{- $alternate := where (where .OutputFormats "RelPermalink" "eq" .RelPermalink) "Rel" "eq" "alternate" -}} 6 | {{/* If /schema.html exist */}} 7 | {{- if ne (len $alternate) 0 -}} 8 | {{- with $alternate -}}{{- range $key, $value := . -}} 9 |
10 | {{- if eq .Format.BaseName "schema" -}} 11 |

Schéma Pluriannuel

12 | {{- $partial := (partialCached "templates/schema.html" . .) | markdownify -}} 13 | {{- partialCached "elements/content.html" $partial $partial -}} 14 | {{- end -}} 15 |
16 | {{- end -}}{{- end -}} 17 | {{- else -}} 18 |

{{ if .Site.Params.organisation }}{{ .Site.Params.organisation }}{{ else }}{{ .Title }}{{ end }}

19 | {{/* If only one project */}} 20 | {{- if (partialCached "render/issimpleproject.html" "arg" "arg") -}} 21 | {{- $partial := (partialCached "templates/projects.html" . .) -}} 22 | {{- partialCached "elements/content.html" $partial "projects" -}} 23 | {{/* If several projects :: call list of projects */}} 24 | {{- else -}} 25 | {{- $partial := (partialCached "templates/projects-list.html" . .) -}} 26 | {{- partialCached "elements/content.html" $partial "projectslist" -}} 27 | {{- end -}} 28 |
29 | {{ partialCached "elements/content.html" .Content .Content }} 30 |
31 | {{- end -}} 32 | {{- end -}} 33 | 34 | {{- define "script" -}} 35 | {{- end -}} 36 | -------------------------------------------------------------------------------- /layouts/offline/single.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Offline 5 | 9 | 10 | 11 |
12 |
13 |
14 | Offline website 15 |
16 | {{ .Content }} 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /layouts/partials/components/contact/script.js: -------------------------------------------------------------------------------- 1 | {{- $hyperform := resources.Get "js/hyperform.min.js" -}} 2 | 3 | 15 | -------------------------------------------------------------------------------- /layouts/partials/components/parcours/template.html: -------------------------------------------------------------------------------- 1 | {{- partialCached "utils/css.html" (dict "context" . "filefolder" "object" "filename" "parcours") "parcours" -}} 2 | {{- if .context.parcours -}} 3 | {{- $.pages.Scratch.Set "counter" 0 -}} 4 | {{- range $id, $p := .context.parcours -}} 5 | {{- $.pages.Scratch.Add "counter" 1 -}} 6 | {{- end -}} 7 | {{- end -}} 8 |
9 |

{{ .context.name }}

10 | {{- with .context.parcours -}} 11 | {{- range $id, $p := . -}} 12 | {{ if gt ($.pages.Scratch.Get "counter") 1 }}

Parcours {{ add $id 1 }}

{{ end }} 13 |
14 | {{ .name | safeHTML }} 15 | {{- with .list -}} 16 |
17 | {{- range . -}} 18 |
{{ .name | safeHTML }} 19 | {{- with .list -}} 20 |
21 | {{- range . -}} 22 |
{{ .name | safeHTML }} 23 | {{- with .list -}} 24 |
25 | {{- range . -}} 26 |
{{ .name | safeHTML }}
27 | {{- end -}} 28 |
29 | {{- end -}} 30 |
31 | {{- end -}} 32 |
33 | {{- end -}} 34 |
35 | {{- end -}} 36 |
37 | {{- end -}} 38 |
39 | {{- end -}} 40 | {{- end -}} 41 |
42 | -------------------------------------------------------------------------------- /layouts/partials/components/personas/template.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{- $name := .context.name | urlize -}} 4 | {{- if (fileExists "/static/images/personas") -}} 5 | {{- range (readDir "/static/images/personas") -}} 6 | {{- if eq $name (replace .Name ".png" "") -}} 7 |
8 | 9 |
10 | {{- end -}} 11 | {{- end -}} 12 | {{- end -}} 13 | {{- $personaspath := printf "/personas/%s/%s" .project $name -}} 14 |

{{ with .pages.GetPage $personaspath }}{{ end }}{{ .context.name }}{{ with .pages.GetPage $personaspath }}{{ end }}
{{ .context.job }}

15 |
16 |
17 |

18 | Âge : {{ .context.age }}
19 | Raison: {{ .context.reason }} 20 |

21 |
22 |

Motivations

23 |
    24 | {{- range .context.motivations -}} 25 |
  • . {{ . }}
  • 26 | {{- end -}} 27 |
28 |

Frustrations

29 |
    30 | {{- range .context.frustrations -}} 31 |
  • . {{ . }}
  • 32 | {{- end -}} 33 |
34 |

Sentiments

35 |
    36 |
  • . {{ .context.feeling }}
  • 37 |
38 |
39 |
40 |

Aisance numérique

41 | {{- $ditmissed := sub 5 (int .context.digitalease) -}} 42 | {{- range seq .context.digitalease -}} 43 | {{ . }} 44 | {{- end -}} 45 | {{- range seq $ditmissed -}} 46 | {{ . }} 47 | {{- end -}} 48 |

49 |
50 |
51 | -------------------------------------------------------------------------------- /layouts/partials/components/recommendation/critical.html: -------------------------------------------------------------------------------- 1 | {{- $project := .project -}} 2 | {{- $.context.Scratch.Delete "pagesstatus-critical" -}} 3 | {{- $.context.Scratch.Set "lastfile-recommendation" (readFile (index (partialCached "render/lastfile.html" (dict "context" .context "project" $project "type" "recommendation" "datafilename" .datafilename) $project "recommendation" .datafilename) "auditfile-path") | transform.Unmarshal) -}} 4 | 5 | {{- $.context.Scratch.Set "delivery" slice -}} 6 | {{- $.context.Scratch.Set "pagesdelivery" slice -}} 7 | {{- range ($.context.Scratch.Get "lastfile-recommendation") -}} 8 | {{- range $idpage, $s := .pages -}} 9 | {{- $page := dict "pagename" .name -}} 10 | {{- range $idblock, $s := .blocks -}} 11 | {{- range $iderror, $s:= .errors -}} 12 | {{ $id := (printf "/%s%s%s" (string $idpage) (string $idblock) (string $iderror)) }} 13 | {{- if .status -}} 14 | {{- $s := merge $s $page -}} 15 | {{- $.context.Scratch.SetInMap "pagesstatus-critical" (string $id) $s -}} 16 | {{- end -}} 17 | {{- end -}} 18 | {{- end -}} 19 | {{- end -}} 20 | {{- end -}} 21 | 22 | {{- with $.context.Scratch.Get "pagesstatus-critical" -}} 23 |

Erreurs par criticité

24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | {{- range $key, $value := sort . "status" "asc" -}} 34 | 35 | 36 | 37 | 38 | 42 | 43 | {{- end -}} 44 | 45 |
IntituléPageCriticité
#{{ add $key 1 }}{{ if .checked }} ✅ {{ else }} ❌ {{ end }} - {{ .name }}{{ if .pagename }}{{ .pagename }}{{ end }} 39 | {{ if eq .status "critique" }}🚫 {{ else if eq .status "important" }}❗️ {{ else if eq .status "moindre" }}➰ {{ else }}❓ {{ end }} 40 | {{ .status }}{{ if not .status }}Aucune{{ end }} 41 |
46 | {{- end -}} 47 | -------------------------------------------------------------------------------- /layouts/partials/components/scores/accessibility-small.html: -------------------------------------------------------------------------------- 1 | {{- with .scores -}} 2 | 3 | {{- if (ne .isempty 0) -}} 4 | {{- .scores.compliance -}}% 5 | conformité RGAA 6 | {{ if lt (.scores.criteria.total) 110 }}{{ (.scores.criteria.total) }}{{ end }} 7 | {{- else -}} 8 | Conformité 9 | En cours 10 | {{- end -}} 11 | 12 | {{- end -}} 13 | -------------------------------------------------------------------------------- /layouts/partials/components/scores/accessibility.html: -------------------------------------------------------------------------------- 1 |
2 |
    3 |
  • {{- .score -}}%
    Critères conformes
  • 4 |
  • {{- sub 100 .score -}}%
    Critères non conformes
  • 5 |
6 |
7 | -------------------------------------------------------------------------------- /layouts/partials/components/scores/criteria.html: -------------------------------------------------------------------------------- 1 | {{- if .criteria.testtotal -}} 2 |
3 |
    4 |
  • {{ if .criteria.conforme -}}{{ len .criteria.conforme }}{{ else }}0{{ end }}
    Critères conformes
  • 5 |
  • {{ if .criteria.nonapplicable }}{{ len .criteria.nonapplicable }}{{ else }}0{{ end }}
    Critères non applicables
  • 6 |
  • {{ if .criteria.nonconforme }}{{ len .criteria.nonconforme }}{{ else }}0{{ end }}
    Critères non conformes
  • 7 |
8 |
9 | {{- end -}} 10 | -------------------------------------------------------------------------------- /layouts/partials/components/scores/ecoconception-small.html: -------------------------------------------------------------------------------- 1 | {{- $project := .project -}} 2 | {{- $lastfile := (index (partialCached "render/lastfile.html" (dict "context" .context "project" $project "type" "ecoconception") $project "ecoconception") "auditfile-path") -}} 3 | {{- $ecoconception := partialCached "render/ecoconception.html" (dict "context" .context "auditfile" $lastfile) .context $lastfile -}} 4 | 5 | {{- with $ecoconception -}} 6 | 7 | {{- if (ne .isempty 0) -}} 8 | {{- .scores.compliance -}}% 9 | conformité RGESN 10 | {{ if lt (.scores.criteria.total) 110 }}{{ (.scores.criteria.total) }}{{ end }} 11 | {{- else -}} 12 | Conformité 13 | En cours 14 | {{- end -}} 15 | 16 | {{- end -}} 17 | -------------------------------------------------------------------------------- /layouts/partials/components/scores/greenit-small.html: -------------------------------------------------------------------------------- 1 | {{- $project := .project -}} 2 | {{- $lastfile := (index (partialCached "render/lastfile.html" (dict "context" .context "project" $project "type" "greenit") $project "greenit") "auditfile-path") -}} 3 | {{- $greenit := partialCached "render/greenit.html" (dict "context" .context "auditfile" $lastfile) .context $lastfile -}} 4 | 5 | {{- with $greenit -}} 6 | 7 | {{- if (ne .isempty 0) -}} 8 | {{- .scores.compliance -}}% 9 | avancée GreenIT 10 | {{ if lt (.scores.criteria.total) 74 }}{{ (.scores.criteria.total) }}{{ end }} 11 | {{- else -}} 12 | Avancée 13 | En cours 14 | {{- end -}} 15 | 16 | {{ end }} 17 | -------------------------------------------------------------------------------- /layouts/partials/components/scores/greenit.html: -------------------------------------------------------------------------------- 1 |
2 |
    3 |
  • {{- .score -}}%
    de pratiques réalisées
  • 4 |
  • {{- sub 100 .score -}}%
    de pratiques à traiter
  • 5 |
6 |
7 | -------------------------------------------------------------------------------- /layouts/partials/components/scores/performance-small.html: -------------------------------------------------------------------------------- 1 | {{- $project := .project -}} 2 | {{- $lastfile := (index (partialCached "render/lastfile.html" (dict "context" .context "project" $project "type" "lighthouse") $project "lighthouse") "auditfile-path") -}} 3 | {{- $performance := partialCached "render/performance.html" (dict "context" .context "auditfile" $lastfile) .context $lastfile -}} 4 | 5 | {{- if $performance.LCP -}} 6 | 7 | {{ div ($performance.LCP) 1000 | lang.NumFmt 1 }}s 8 | de chargement 9 | 10 | {{- else -}} 11 | {{- warnf "Lighthouse file %s has to a test to be relaunched" $lastfile -}} 12 | {{- end -}} 13 | -------------------------------------------------------------------------------- /layouts/partials/components/scores/performance.html: -------------------------------------------------------------------------------- 1 | {{- if .counter.LCP -}} 2 |
3 |
    4 |
  • Page chargée
    {{ div (.counter.LCP) 1000 | lang.NumFmt 1 }}s
  • 5 |
  • Poids de la page
    {{ div .counter.pageweight 1024 | lang.NumFmt 0 }}kb
  • 6 |
  • Éléments sur la page
    {{ .counter.domsize | lang.NumFmt 0 }}
  • 7 |
  • Nombre de requêtes
    {{ .counter.requests }}
  • 8 |
9 |
10 |

Écoindex

11 |
12 |
    13 |
  • Score
    {{ .counter.ecoindex }}
  • 14 |
  • Eau (cl)
    {{ .counter.eau | lang.NumFmt 2 }}
  • 15 |
  • GES (gCO2e)
    {{ .counter.co2 | lang.NumFmt 2 }}
  • 16 |
17 |
18 | {{- end -}} 19 | -------------------------------------------------------------------------------- /layouts/partials/components/scores/quality-small.html: -------------------------------------------------------------------------------- 1 | {{- with .counter.total -}} 2 | 3 | {{ . }} 4 | erreurs 5 | 6 | {{- end -}} 7 | 8 | 9 | -------------------------------------------------------------------------------- /layouts/partials/components/scores/quality.html: -------------------------------------------------------------------------------- 1 | {{- with .counter -}} 2 |
3 |
    4 |
  • {{ .total }}
    Erreurs total
  • 5 |
  • {{ .checked }}
    Erreurs corrigées
  • 6 |
7 | {{- if gt (.pathlen) 2 -}} 8 | {{- if or (.critical) (.important) (.medium) -}} 9 |
    10 |
  • {{ .critical }}
    🚫 Critique
  • 11 |
  • {{ .important }}
    ❗️ Important
  • 12 |
  • {{ .medium }}
    ➰ Moindre
  • 13 |
14 | {{- end -}} 15 | {{- if or (.type.code) (.type.visual) (.type.structure) (.type.text) -}} 16 |
    17 |
  • {{ .type.code }}
    Erreurs de code
  • 18 |
  • {{ .type.visual }}
    Erreurs visuelles
  • 19 |
  • {{ .type.structure }}
    Erreurs de structure
  • 20 |
  • {{ .type.text }}
    Erreurs textuelles
  • 21 |
22 | {{- end -}} 23 | {{- end -}} 24 |
25 | {{- end -}} 26 | -------------------------------------------------------------------------------- /layouts/partials/components/steps/script.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /layouts/partials/components/steps/template.html: -------------------------------------------------------------------------------- 1 | {{- partialCached "utils/css.html" (dict "context" . "filefolder" "object" "filename" "nav-tabs") "nav-tabs" -}} 2 |
3 |

{{ .Params.steps.title }}

4 |
5 | 12 | {{- range $i, $p := .Params.steps.elements -}} 13 |
14 |
15 |

{{ .text }}

16 |
17 | {{ if .image }} 18 |
19 | {{ partial "elements/images.html" (dict "image" .image) }} 20 |
21 | {{ end }} 22 |
23 | {{- end -}} 24 |
25 | 26 |
27 | -------------------------------------------------------------------------------- /layouts/partials/debug/debuglist-element.html: -------------------------------------------------------------------------------- 1 | {{ .context.Scratch.Set "kind" "" }} 2 | {{ if .range }} 3 | {{- range $i, $p := sort .range ".Kind" "asc" -}} 4 | {{ if eq .Kind ($.context.Scratch.Get "kind") }} 5 | {{ else }} 6 | {{ if not (eq $i 0) }}{{ end }} 7 | {{ $.context.Scratch.Set "kind" .Kind }} 8 |

Section : {{ $.context.Scratch.Get "kind" }}

9 | 20 |

21 | {{- else -}} 22 |

Any page listed for this page call

23 | {{- end -}} 24 | -------------------------------------------------------------------------------- /layouts/partials/debug/debuglist.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Page lists loop

4 |

All Pages in this section

5 | {{ partial "debug/debuglist-element.html" (dict "context" . "range" .Pages) }} 6 |

All RegularPages in this section

7 | {{ partial "debug/debuglist-element.html" (dict "context" . "range" .RegularPages) }} 8 |

All RegularPagesRecursive in this section

9 | {{ partial "debug/debuglist-element.html" (dict "context" . "range" .RegularPagesRecursive) }} 10 |

All Site Sections

11 | {{ partial "debug/debuglist-element.html" (dict "context" . "range" .Site.Sections) }} 12 |

All Site Pages

13 | {{ partial "debug/debuglist-element.html" (dict "context" . "range" .Site.Pages) }} 14 |

All Site RegularPages

15 | {{ partial "debug/debuglist-element.html" (dict "context" . "range" .Site.RegularPages) }} 16 |
17 |
18 | -------------------------------------------------------------------------------- /layouts/partials/elements/images.html: -------------------------------------------------------------------------------- 1 | 2 | {{- $path := print .image -}} 3 | {{- $url := $path -}} 4 | {{- $image := resources.Get $url -}} 5 | {{- with $image -}} 6 | {{- if ge .Width "800" -}} 7 | {{ $image800 := printf ", %s 800w" (.Resize "800x").Permalink }} 8 | {{- end -}} 9 | {{- with .title -}} 10 |
11 | {{- end -}} 12 | 27 | {{ .alt }} 48 | {{- with .title -}} 49 |
{{ . }}
50 |
51 | {{- end -}} 52 | {{- else -}} 53 |
54 | 55 |
56 | {{- end -}} 57 | -------------------------------------------------------------------------------- /layouts/partials/elements/tableofcontent.html: -------------------------------------------------------------------------------- 1 | {{- if and (gt .WordCount 400 ) (.Params.toc) -}} 2 | {{ partialCached "utils/css.html" (dict "context" . "filefolder" "element" "filename" "tableofcontents") "tableofcontents" }} 3 | 7 | {{- end -}} 8 | -------------------------------------------------------------------------------- /layouts/partials/elements/time-to-read.html: -------------------------------------------------------------------------------- 1 | {{ $time := math.Round (div (countwords .Content) 180.0) }} 2 | {{- if le $time 1 -}} 3 | 1 min de lecture 4 | {{- else -}} 5 | {{ $time }} mins de lectures 6 | {{- end -}} 7 | -------------------------------------------------------------------------------- /layouts/partials/footer.html: -------------------------------------------------------------------------------- 1 | {{- if .Site.Menus.footer -}} 2 |
3 |
4 |
5 |
6 |
    7 | {{- $currentPage := . -}} 8 | {{- range .Site.Menus.footer -}} 9 |
  •  {{ .Name }} 
  • 10 | {{- end -}} 11 |
12 |
13 |
14 |
15 |
16 | {{- end -}} 17 | -------------------------------------------------------------------------------- /layouts/partials/list.html: -------------------------------------------------------------------------------- 1 | {{- $patharray := split (path.Dir .context.Path) "/" -}} 2 | {{- $context := .context -}} 3 | {{- $project := (partialCached "render/projectpath" $context $context) -}} 4 | {{- $section := where .context.Site.RegularPages "Section" .section -}} 5 | {{/* Set the audit file */}} 6 | {{- if eq (len $patharray) 2 -}} 7 | {{- range $id, $value := $section -}} 8 | {{- if in (path.Dir .Path) $project -}}{{- $.context.Scratch.SetInMap "element" (string $id) . -}}{{- end -}} 9 | {{- end -}} 10 | {{- else -}} 11 | {{- $.context.Scratch.Set "element" ($section) -}} 12 | {{- end -}} 13 | 14 | {{- if $.context.Scratch.Get "element" -}} 15 |
16 |
17 |

{{ with .context.Site.GetPage .section }}{{ .Title }}{{ end }}

18 |
19 |
    20 | {{- range first 4 (sort ($.context.Scratch.Get "element")) -}} 21 |
  • 22 | {{- if .Date -}}{{ end }} 23 |

    {{ .Title }}

    24 |
  • 25 | {{- $.context.Scratch.Set "linksingle" .RelPermalink -}} 26 | {{- end -}} 27 |
28 | Voir toutes les {{ with .context.Site.GetPage .section }}{{ lower .Title }}{{ end }} 29 |
30 |
31 | {{- end -}} 32 | -------------------------------------------------------------------------------- /layouts/partials/navigations/breadcrumb.html: -------------------------------------------------------------------------------- 1 | {{- partialCached "utils/css.html" (dict "context" . "filefolder" "object" "filename" "breadcrumb") "breadcrumb" -}} 2 | 24 | -------------------------------------------------------------------------------- /layouts/partials/navigations/nav-prevnext.html: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /layouts/partials/navigations/nav-translated.html: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /layouts/partials/navigations/paginator.html: -------------------------------------------------------------------------------- 1 | {{ partialCached "utils/css.html" (dict "context" . "filefolder" "object" "filename" "pagination") "pagination" }} 2 | 13 | -------------------------------------------------------------------------------- /layouts/partials/navigations/tags.html: -------------------------------------------------------------------------------- 1 | {{- with .GetTerms "tags" -}} 2 | {{- partialCached "utils/css.html" (dict "context" . "filefolder" "object" "filename" "tag") "tag" -}} 3 |

Tags :

4 | 9 | {{- end -}} 10 | -------------------------------------------------------------------------------- /layouts/partials/render/ecoconception.html: -------------------------------------------------------------------------------- 1 | {{ $data := newScratch }} 2 | 3 | {{ if (ne .auditfile "/false") }} 4 | {{ $auditfile := (getCSV "," .auditfile) }} 5 | {{ $data.Set "date" (replace (path.Base .auditfile) (path.Ext .auditfile) "") }} 6 | 7 | 8 | {{ range $key1, $value1 := after 1 $auditfile }} 9 | {{ range $id, $value2 := after 2 . }} 10 | {{ $value2 := lower (index (split . "|") 0) }} 11 | {{ $key := printf "%s.%s" (index $value1 0) (index $value1 1)}} 12 | {{ if eq $value2 "oui"}} 13 | {{ $data.SetInMap "CritC" (string $key) . }} 14 | {{ else if eq $value2 "non"}} 15 | {{ $data.SetInMap "CritNC" (string $key) . }} 16 | {{ else if or ( eq $value2 "na") (eq $value2 "non applicable") }} 17 | {{ $data.SetInMap "CritNA" (string $key) . }} 18 | {{ else }} 19 | {{ $data.SetInMap "CritNT" (string $key) . }} 20 | {{ end }} 21 | {{ end }} 22 | {{ end }} 23 | 24 | {{ end }} 25 | 26 | {{ $data.Set "iCritC" 0 }} 27 | {{ with ($data.Get "CritC") }} 28 | {{ $data.Set "iCritC" (len .) }} 29 | {{ end }} 30 | 31 | {{ $data.Set "iCritNC" 0 }} 32 | {{ with ($data.Get "CritNC") }} 33 | {{ $data.Set "iCritNC" (len .) }} 34 | {{ end }} 35 | 36 | {{ $data.Set "iCritNA" 0 }} 37 | {{ with ($data.Get "CritNA") }} 38 | {{ $data.Set "iCritNA" (len .) }} 39 | {{ end }} 40 | 41 | {{ $data.Set "iCritNT" 0 }} 42 | {{ with ($data.Get "CritNT") }} 43 | {{ $data.Set "iCritNT" (len .) }} 44 | {{ end }} 45 | 46 | {{ $data.Set "CritCount" ($data.Get "CritC") }} 47 | {{ with ($data.Get "CritNC") }} 48 | {{ $data.Set "CritCount" (merge ($data.Get "CritC") .) }} 49 | {{ end }} 50 | 51 | {{ $data.Set "compliance" 0 }} 52 | {{ $data.Set "compliance" 53 | (div (mul ($data.Get "iCritC") 100) (len ($data.Get "CritCount"))) 54 | }} 55 | 56 | {{ return (dict 57 | "isempty" true 58 | "date" ($data.Get "date") 59 | "criteria" (dict "conforme" ($data.Get "CritC") 60 | "nonconforme" ($data.Get "CritNC") 61 | "nonapplicable" ($data.Get "CritNA") 62 | "nonteste" ($data.Get "CritNT") 63 | "testtotal" (add (add ($data.Get "iCritC") ($data.Get "iCritNC")) ($data.Get "iCritNA")) 64 | ) 65 | "scores" (dict "criteria" 66 | (dict "total" (add (add ($data.Get "iCritC") ($data.Get "iCritNC")) ($data.Get "iCritNA")) 67 | "conforme" ($data.Get "iCritC") 68 | "nonapplicable" ($data.Get "iCritNA") 69 | "nonconforme" ($data.Get "iCritNC") 70 | "nonteste" ($data.Get "iCritNT") 71 | ) 72 | "compliance" ($data.Get "compliance") 73 | ) 74 | ) 75 | }} 76 | -------------------------------------------------------------------------------- /layouts/partials/render/filepath.html: -------------------------------------------------------------------------------- 1 | {{/* return the filepath of the audits files */}} 2 | {{ $project := .project }} 3 | {{ $data := newScratch }} 4 | {{ $data.Set "filepath" (printf "static/%s/%s/" .project .type) }} 5 | {{ $loop := (dict 6 | "accessibility" (slice "accessibility" "rgaa") 7 | "greenit" (slice "greenit") 8 | "ecoconception" (slice "rgesn") 9 | "recommendation" (slice "quality" "recommendation" "recommendations") 10 | "quality" (slice "quality" "recommendation" "recommendations") 11 | "lighthouse" (slice "lighthouse" "performance") 12 | "performance" (slice "lighthouse" "performance") 13 | ) 14 | }} 15 | {{ $rootpath := partialCached "render/rootpath" (dict "context" . "project" $project "type" .type) $project .type }} 16 | {{/* $return := replace (replace (replace (cond (fileExists $pathcontentmulti) $pathcontentmulti (cond (fileExists $pathcontentsingle) $pathcontentsingle $pathstatic)) "///" "/") "//" "/") "/audits/audits/" "/audits/" */}} 17 | {{ range $key, $value := index $loop .type }} 18 | {{ $data.Set "filepath" (cond (fileExists (printf "%s/%s/%s/" $rootpath $project $value)) (printf "%s/%s/%s/" $rootpath $project $value) (cond (fileExists (printf "%s/%s/" $rootpath $value)) (printf "%s/%s/" $rootpath $value) ($data.Get "filepath"))) }} 19 | {{ end }} 20 | 21 | {{ $return := replace (replace (replace ($data.Get "filepath") "///" "/") "//" "/") "/audits/audits/" "/audits/"}} 22 | 23 | {{ return $return }} 24 | -------------------------------------------------------------------------------- /layouts/partials/render/greenit.html: -------------------------------------------------------------------------------- 1 | 2 | {{ $data := newScratch }} 3 | 4 | {{ if (ne .auditfile "/false") }} 5 | {{ $auditfile := (getCSV "," .auditfile) }} 6 | {{ $data.Set "auditfile" $auditfile }} 7 | {{ $data.Set "date" (replace (path.Base .auditfile) (path.Ext .auditfile) "") }} 8 | 9 | {{ range $key1, $value1 := after 1 $auditfile }} 10 | {{ $key := index $value1 0 }} 11 | {{ $value := index $value1 1 }} 12 | {{ $data.SetInMap "CritAll" (string $key) $value }} 13 | {{ if eq $value "1"}} 14 | {{ $data.SetInMap "Crit1" (string $key) $value }} 15 | {{ else if eq $value "2"}} 16 | {{ $data.SetInMap "Crit2" (string $key) $value }} 17 | {{ else if eq $value "3"}} 18 | {{ $data.SetInMap "Crit3" (string $key) $value }} 19 | {{ else if eq $value "4"}} 20 | {{ $data.SetInMap "Crit4" (string $key) $value }} 21 | {{ else if eq $value "5"}} 22 | {{ $data.SetInMap "Crit5" (string $key) $value }} 23 | {{ else }} 24 | {{ $data.SetInMap "Critnonteste" (string $key) $value }} 25 | {{ end }} 26 | {{ end }} 27 | 28 | {{ end }} 29 | 30 | {{ $data.Set "iCrit1" 0 }} 31 | {{ with ($data.Get "Crit1") }} 32 | {{ $data.Set "iCrit1" (len .) }} 33 | {{ end }} 34 | 35 | {{ $data.Set "iCrit2" 0 }} 36 | {{ with ($data.Get "Crit2") }} 37 | {{ $data.Set "iCrit2" (len .) }} 38 | {{ end }} 39 | 40 | {{ $data.Set "iCrit3" 0 }} 41 | {{ with ($data.Get "Crit3") }} 42 | {{ $data.Set "iCrit3" (len .) }} 43 | {{ end }} 44 | 45 | {{ $data.Set "iCrit4" 0 }} 46 | {{ with ($data.Get "Crit4") }} 47 | {{ $data.Set "iCrit4" (len .) }} 48 | {{ end }} 49 | 50 | {{ $data.Set "iCrit5" 0 }} 51 | {{ with ($data.Get "Crit5") }} 52 | {{ $data.Set "iCrit5" (len .) }} 53 | {{ end }} 54 | 55 | {{ $data.Set "iCritnonteste" 0 }} 56 | {{ with ($data.Get "Critnonteste") }} 57 | {{ $data.Set "iCritnonteste" (len .) }} 58 | {{ end }} 59 | 60 | {{ $compliancetotal := (add (add (add (add (mul ($data.Get "iCrit1") 1) (mul ($data.Get "iCrit2") 2)) (mul ($data.Get "iCrit3") 3) ) (mul ($data.Get "iCrit4") 4 )) (mul ($data.Get "iCrit5") 5)) }} 61 | 62 | {{ return (dict 63 | "isempty" false 64 | "date" ($data.Get "date") 65 | "criteria" (dict "1" ($data.Get "Crit1") 66 | "2" ($data.Get "Crit2") 67 | "3" ($data.Get "Crit3") 68 | "4" ($data.Get "Crit4") 69 | "5" ($data.Get "Crit5") 70 | "all" ($data.Get "CritAll") 71 | "nonteste" ($data.Get "Critnonteste") 72 | ) 73 | "scores" (dict "criteria" 74 | (dict "total" (add (add (add (add ($data.Get "iCrit1") ($data.Get "iCrit2")) ($data.Get "iCrit3")) ($data.Get "iCrit4")) ($data.Get "iCrit5")) 75 | "1" ($data.Get "iCrit1") 76 | "2" ($data.Get "iCrit2") 77 | "3" ($data.Get "iCrit3") 78 | "4" ($data.Get "iCrit4") 79 | "5" ($data.Get "iCrit5") 80 | "nonteste" ($data.Get "iCritnonteste") 81 | ) 82 | "compliancetotal" $compliancetotal 83 | "compliance" (div ((mul $compliancetotal 100)) 370) 84 | ) 85 | ) 86 | }} 87 | -------------------------------------------------------------------------------- /layouts/partials/render/issimpleproject.html: -------------------------------------------------------------------------------- 1 | {{ $data := newScratch }} 2 | {{ $data.Set "isSimple" slice }} 3 | {{ if (fileExists "content/audits") }} 4 | {{ range (readDir "content/audits") }} 5 | {{ $data.Add "isSimple" .Name }} 6 | {{ end }} 7 | {{ end }} 8 | {{ return (ne (len (intersect ($data.Get "isSimple") (slice "accessibility" "rgaa"))) 0) }} 9 | -------------------------------------------------------------------------------- /layouts/partials/render/methodology.html: -------------------------------------------------------------------------------- 1 | {{/* Return the type of audit file :: if with "Thématiques" "Critères" or "Thématiques" "Critères" "Tests" */}} 2 | {{ $auditfile := .auditfile }} 3 | {{ $data := newScratch }} 4 | {{ with $auditfile }} 5 | {{ $data.Set "methodology" (len (intersect (index . 0) (slice "Thématiques" "Critères" "Tests"))) }} 6 | {{ $data.Set "methodologypageslist" (cond (eq ($data.Get "methodology") 2) ((index . 0) | symdiff (slice "Thématiques" "Critères")) ((index . 0) | symdiff (slice "Thématiques" "Critères" "Tests"))) }} 7 | {{ return 8 | (dict 9 | "methodology" ($data.Get "methodology") 10 | "pageslist" ($data.Get "methodologypageslist") 11 | ) 12 | }} 13 | {{ end }} 14 | -------------------------------------------------------------------------------- /layouts/partials/render/notepath.html: -------------------------------------------------------------------------------- 1 | {{ $data := newScratch }} 2 | {{ $path := printf "content/%s" (path.Dir .Path) }} 3 | {{- range $key, $value := readDir (printf "content/%s" (path.Dir .Path)) -}} 4 | {{- $file := .Name -}} 5 | {{- if gt (len ((intersect (slice $file) (slice "quality.md" "recommendation.md" "recommendations.md" "notes.md" "note.md")))) 0 -}} 6 | {{- $data.SetInMap "notes" (string $key) ((readFile (printf "%s/%s" $path $file)) | markdownify) -}} 7 | {{- end -}} 8 | {{- end -}} 9 | {{ return ($data.Get "notes") -}} 10 | -------------------------------------------------------------------------------- /layouts/partials/render/projectpath.html: -------------------------------------------------------------------------------- 1 | {{ $projectpath := cond (not (partialCached "render/issimpleproject.html" "arg" "arg")) (cond (eq (len (split (path.Dir .Path) "/")) 1) "" (replace (path.Dir .Path) (printf "%s/" .Section) "")) "" }} 2 | {{/* $projectpath := replace $projectpath "/" "" % */}} 3 | {{/* if eq (getenv "HUGO_ENV") "dev" -}} 4 | {{ warnf "ProjectPath for project %s is: %s" (path.Dir .Path) $projectpath }} 5 | {{ end */}} 6 | {{ return $projectpath -}} 7 | -------------------------------------------------------------------------------- /layouts/partials/render/recommendation.html: -------------------------------------------------------------------------------- 1 | 2 | {{/* Determine values from recommendation files */}} 3 | {{ $pathlen := len (split (path.Dir .context.Path) "/") }} 4 | {{ $auditfile := .auditfile }} 5 | {{ $data := newScratch }} 6 | {{/* START Test if audit file not false */}} 7 | {{ if (ne $auditfile "/false") }} 8 | {{ $lastfile := readFile $auditfile | transform.Unmarshal }} 9 | {{ $data.Delete "counterrecommendation" }} 10 | 11 | {{ range $lastfile }} 12 | {{ $data.Set "countererrorstotal" 0 }} 13 | {{ $data.Set "countererrorschecked" 0 }} 14 | {{ $data.Set "countererrorstypecode" 0 }} 15 | {{ $data.Set "countererrorstypevisual" 0 }} 16 | {{ $data.Set "countererrorstypestructure" 0 }} 17 | {{ $data.Set "countererrorstypetext" 0 }} 18 | {{ $data.Set "countererrorscritical" 0 }} 19 | {{ $data.Set "countererrorsimportant" 0 }} 20 | {{ $data.Set "countererrorsmedium" 0 }} 21 | {{ range .pages }} 22 | {{ range $b := .blocks }} 23 | {{ range .errors }} 24 | {{ $data.Add "countererrorstotal" 1 }} 25 | {{ if .checked }}{{ $data.Add "countererrorschecked" 1 }}{{ end }} 26 | {{ if in .type "code" }}{{ $data.Add "countererrorstypecode" 1 }}{{ end }} 27 | {{ if in .type "vis" }}{{ $data.Add "countererrorstypevisual" 1 }}{{ end }} 28 | {{ if in .type "structure" }}{{ $data.Add "countererrorstypestructure" 1 }}{{ end }} 29 | {{ if in .type "text" }}{{ $data.Add "countererrorstypetext" 1 }}{{ end }} 30 | {{ if in .status "criti" }}{{ $data.Add "countererrorscritical" 1 }}{{ end }} 31 | {{ if in .status "important" }}{{ $data.Add "countererrorsimportant" 1 }}{{ end }} 32 | {{ if in .status "moindre" }}{{ $data.Add "countererrorsmedium" 1 }}{{ end }} 33 | {{ end }} 34 | {{ end }} 35 | {{ end }} 36 | {{ end }} 37 | 38 | {{ return 39 | (dict 40 | "date" (replace (path.Base $auditfile) (path.Ext $auditfile) "") 41 | "pathlen" ($pathlen) 42 | "total" ($data.Get "countererrorstotal") 43 | "checked" ($data.Get "countererrorschecked") 44 | "critical" ($data.Get "countererrorscritical") 45 | "important" ($data.Get "countererrorsimportant") 46 | "medium" ($data.Get "countererrorsmedium") 47 | "type" (dict 48 | "code" ($data.Get "countererrorstypecode") 49 | "visual" ($data.Get "countererrorstypevisual") 50 | "structure" ($data.Get "countererrorstypestructure") 51 | "text" ($data.Get "countererrorstypetext") 52 | ) 53 | ) 54 | }} 55 | {{ else }} 56 | {{ if ne .context.Path "_index.md" }}{{ warnf "Maybe recommendation file is missing in %s" .context.Path }}{{ end }} 57 | {{ end }} 58 | {{/* END Test if audit file not false */}} 59 | -------------------------------------------------------------------------------- /layouts/partials/render/rootpath.html: -------------------------------------------------------------------------------- 1 | {{/* return the rootpath of the audits files */}} 2 | {{ $project := .project }} 3 | {{ $data := newScratch }} 4 | {{ $data.Set "rootpath" "static" }} 5 | {{ $loop := (dict 6 | "accessibility" (slice "accessibility" "rgaa") 7 | "greenit" (slice "greenit") 8 | "ecoconception" (slice "rgesn") 9 | "recommendation" (slice "quality" "recommendation" "recommendations") 10 | "quality" (slice "quality" "recommendation" "recommendations") 11 | "performance" (slice "lighthouse" "performance") 12 | "lighthouse" (slice "lighthouse" "performance") 13 | ) 14 | }} 15 | 16 | {{ range $key, $value := index $loop .type }} 17 | {{ $data.Set "rootpath" (cond (fileExists (printf "content/audits/%s/%s/" $project $value)) "content/audits" (cond (fileExists (printf "content/audits/%s/" $value)) "content/audits" ($data.Get "rootpath"))) }} 18 | {{ end }} 19 | {{/* if eq (getenv "HUGO_ENV") "dev" -}} 20 | {{ warnf "RootPath for project %s is: %s" .project $rootpath }} 21 | {{ end */}} 22 | {{ return ($data.Get "rootpath") }} 23 | -------------------------------------------------------------------------------- /layouts/partials/templates/actions.html: -------------------------------------------------------------------------------- 1 | {{/* Variables */}} 2 | {{- $pagedate := replace (path.Base .Path) (path.Ext .Path) "" -}} 3 | {{- $kind := .Kind -}} 4 | 5 | {{/* START Write table with all actions */}} 6 | {{- with (partialCached "render/actions.html" .) -}} 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | {{- range $key, $value := (index (index . "actions") $pagedate) }} 19 | {{- range . -}} 20 | 21 | 22 | {{- range . -}} 23 | 34 | {{- end -}} 35 | 36 | {{- end -}} 37 | {{- end -}} 38 | 39 |
DémarchesTypeActionDétailsAvancement
{{ $key }} 24 | {{- with (trim . " ") -}} 25 | {{- if findRE "(\\d{2})-(\\d{2})" . }} 26 | De {{ index $.Site.Data.month (string (float (index (split . "-") 0))) }} à {{ index $.Site.Data.month (string (float (index (split . "-") 1))) }} {{ (string (now.Format "2006")) -}} 27 | {{- else if (findRE "(\\d{2})/(\\d{2})" .) }} 28 | le {{ (float (index (split . "/") 0)) }} {{ index $.Site.Data.month (string (float (index (split . "/") 1))) }} {{ (string (now.Format "2006")) -}} 29 | {{- else -}} 30 | {{ . }} 31 | {{- end -}} 32 | {{- end -}} 33 |
40 | {{- end -}} 41 | {{/* END Write table with all actions */}} 42 | -------------------------------------------------------------------------------- /layouts/partials/templates/dashboard.html: -------------------------------------------------------------------------------- 1 |

{{ with .Title }}{{ . }}{{ else }}Tableau de bord{{ end }}

2 | {{- $partial := (partialCached "templates/projects-list.html" . .) -}} 3 | {{- partialCached "elements/content.html" $partial "projectslist" -}} 4 | -------------------------------------------------------------------------------- /layouts/partials/utils/css.html: -------------------------------------------------------------------------------- 1 | {{- $filepath := printf "/css/%s/%s.css" .filefolder .filename -}} 2 | {{- $css := (resources.Get $filepath) -}} 3 | {{- if $css -}} 4 | {{- $css := $css | minify -}} 5 | {{- if .inline -}} 6 | 9 | {{- else -}} 10 | 11 | 12 | 15 | {{- end -}} 16 | {{- else -}} 17 | {{- warnf "The file css %s doesn't exist" $filepath -}} 18 | {{- end -}} 19 | 20 | -------------------------------------------------------------------------------- /layouts/partials/utils/isURL.html: -------------------------------------------------------------------------------- 1 | {{ $context := .context }} 2 | {{ $projectTitle := .projectTitle }} 3 | {{ $project := partialCached "render/projectpath" $context $context }} 4 | 5 | {{ with (partialCached "render/context.html" (dict "context" $context "project" $project) $project) }} 6 | {{ $context.Scratch.Set "website" (index (last 1 (sort .)) 0).website }} 7 | {{- end -}} 8 | 9 | {{ $matchurl := "([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])" }} 10 | {{ $matchhttp := "(http|ftp|https)://" }} 11 | 12 | {{ $urlprefix1 := cond (gt (len (findRE $matchhttp $projectTitle)) 0) "" "//" }} 13 | {{ $urlprefix2 := cond (gt (len (findRE $matchhttp ($context.Scratch.Get "website"))) 0) "" "//" }} 14 | {{ $result := cond (gt (len (findRE $matchurl $projectTitle)) 0) (printf "%s" $urlprefix1 $projectTitle $projectTitle | safeHTML) $projectTitle }} 15 | {{ $result := cond (gt (len (findRE $matchurl ($context.Scratch.Get "website"))) 0) (printf "%s" $urlprefix2 ($context.Scratch.Get "website") $projectTitle | safeHTML) $projectTitle }} 16 | 17 | {{ return $result }} 18 | -------------------------------------------------------------------------------- /layouts/performance/single.html: -------------------------------------------------------------------------------- 1 | {{- define "title" -}} 2 | {{- $context := . -}} 3 | {{- $projectTitle := (.GetPage "./").Title -}}Audit Performance {{ with $projectTitle }}pour {{ $projectTitle }}{{ else }}{{ (index (split (path.Dir .Path) "/") 1) }}{{ end }} 4 | {{- end -}} 5 | {{- define "main" -}} 6 | {{/* Vars */}} 7 | {{- $context := . -}} 8 | {{- $partial := (partialCached "templates/performance.html" (dict "context" $context) $context) -}} 9 | {{- partialCached "elements/content.html" $partial $partial -}} 10 | {{- end -}} 11 | -------------------------------------------------------------------------------- /layouts/personas/list.html: -------------------------------------------------------------------------------- 1 | {{- define "main" -}} 2 | {{/* Vars */}} 3 | {{- $patharray := split (path.Dir .Path) "/" -}} 4 | {{- $project := (partialCached "render/projectpath" . .) -}} 5 | {{- $path := (partialCached "render/filepath" (dict "context" . "project" $project "type" "personas.json") $project "personas.json") -}} 6 | 7 | {{- if $project -}} 8 |
9 |

{{ .Title }}

10 | {{ partialCached "elements/content.html" .Content .Content }} 11 |
12 | {{/* Range all regular pages */}} 13 | {{- range .RegularPages -}} 14 | {{/* Range the personas file in the project and find/list the pages on `content/personas/` directory */}} 15 | {{- range where (getJSON $path) "name" "eq" .Title -}} 16 | {{ partial "components/personas/template.html" (dict "context" . "pages" $.Site "project" $project) }} 17 | {{- end -}} 18 | {{- end -}} 19 |
20 |
21 | {{- else -}} 22 | 23 | {{ .Scratch.Set "Paginator" (.Paginate .Pages) }} 24 | {{- $paginator:=(.Scratch.Get "Paginator") -}} 25 |
26 |

{{ .Title }}

27 | {{ partialCached "elements/content.html" .Content .Content }} 28 | {{- $.Scratch.Set "linksingle" .RelPermalink -}} 29 | {{- $.Scratch.Set "hassection" .Sections -}} 30 | {{- range $paginator.Pages -}} 31 |
32 |

{{ .Title }}

33 |

34 | {{- if .Date -}}{{ end }} 35 | {{ if $.Scratch.Get "hassection" }}{{ if lt (len (split ($.Scratch.Get "linksingle") "/")) 4 }} pour {{ index (last 2 (split (delimit (split .RelPermalink "/") "," "") ",")) 0 }}{{ end }}{{ end }} 36 |

37 |

{{ .Params.summary }}

38 |
39 |
40 | {{- end -}} 41 | 42 |
43 | {{- partial "navigations/paginator.html" . -}} 44 |
45 | {{- end -}} 46 | {{- end -}} 47 | -------------------------------------------------------------------------------- /layouts/personas/single.html: -------------------------------------------------------------------------------- 1 | {{- define "main" -}} 2 | {{/* Vars */}} 3 | {{- $patharray := split (path.Dir .Path) "/" -}} 4 | {{- $project := (partialCached "render/projectpath" . .) -}} 5 | {{/* Condition about structure level */}} 6 | {{- $filepath := (partialCached "render/filepath" (dict "context" . "project" $project "type" "personas.json") $project "personas.json") -}} 7 | {{- $.Scratch.Set "auditfile" (getJSON $filepath) -}} 8 |
9 | 10 |

{{ .Title }} {{ if .Params.tags }}{{ range .Params.tags }}pour {{ . }}{{ end }}{{ end }}

11 | {{/* List the data for this files with range personas files on the project */}} 12 | {{- range where ($.Scratch.Get "auditfile") "name" "eq" .Title -}} 13 | {{ $name := .name | urlize }} 14 | {{ if (fileExists "/static/images/personas") }} 15 | {{- range (readDir "/static/images/personas") -}} 16 | {{ if eq $name (replace .Name ".png" "") }}
{{ end }} 17 | {{- end -}} 18 | {{- end -}} 19 |

Description

20 |
21 |
    22 |
  • {{ .age }} ans
  • 23 |
  • {{ .reason }}
  • 24 |
25 |
26 |
27 |
28 |
29 |

Motivations

30 |
    31 | {{- range .motivations -}} 32 |
  • . {{ . }}
  • 33 | {{- end -}} 34 |
35 |
36 |
37 |

Frustrations

38 |
    39 | {{- range .frustrations -}} 40 |
  • . {{ . }}
  • 41 | {{- end -}} 42 |
43 |
44 |
45 |

Sentiments

46 |

{{ .feeling }}

47 |
48 |
49 |

Aisance numérique

50 |

51 | {{- $ditmissed := sub 5 (int .digitalease) -}} 52 | {{- range seq .digitalease -}} 53 | {{ . }} 54 | {{- end -}} 55 | {{- range seq $ditmissed -}} 56 | {{ . }} 57 | {{- end -}} 58 |

59 |
60 |
61 | {{- end -}} 62 |
63 |
64 | {{- range where ($.Scratch.Get "auditfile") "name" "eq" .Title -}} 65 | {{ with .parcours }}

Parcours

{{ end }} 66 | {{ partial "components/parcours/template.html" (dict "context" . "pages" $ "project" $project) }} 67 | {{- end -}} 68 |
69 | {{- end -}} 70 | -------------------------------------------------------------------------------- /layouts/pidila/single.html: -------------------------------------------------------------------------------- 1 | {{- define "main" -}} 2 | {{- $patharray := split (path.Dir .Path) "/" -}} 3 | 4 | {{- $.Scratch.Set "guidelinename" "pidila" -}} 5 | {{- $.Scratch.Set "guidelineversion" "1.0" -}} 6 | {{- if ge ($patharray) 2 -}} 7 | {{- $.Scratch.Set "guideline" (index $patharray 0) -}} 8 | {{- $.Scratch.Set "guidelinename" (index $patharray 0) -}} 9 | {{- $.Scratch.Set "guidelineversion" (index $patharray 1) -}} 10 | {{- end -}} 11 | 12 | {{- $criteriafile := (index (index $.Site.Data ($.Scratch.Get "guidelinename")) ($.Scratch.Get "guidelineversion")).criteria.criterias -}} 13 |
14 |

Critères {{ replace ($.Scratch.Get "guidelinename" | upper) "RGAA" "RGAA "}}

15 | {{ partialCached "elements/content.html" .Content .Content }} 16 | 17 | {{- range $key1, $value := $criteriafile -}} 18 | {{- if eq (len (findRE "
  • RGAA : " .rawHTMLContent)) 0 -}} 19 |

    {{ printf "" (.id | safeURL) (T "anchor_for") (.id | plainify | safeHTML) | safeHTML }}{{ .id }}{{ .title }}

    20 | {{ .rawHTMLContent | safeHTML }} 21 |
    22 | {{- end -}} 23 | {{- end -}} 24 | {{- end -}} 25 | -------------------------------------------------------------------------------- /layouts/post/single.html: -------------------------------------------------------------------------------- 1 | {{- define "main" -}} 2 |
    3 | 4 | {{- partial "elements/tableofcontent.html" . -}} 5 | 6 | 7 | {{ partialCached "elements/content.html" .Content .Content }} 8 | 9 | 10 | {{- partial "navigations/tags.html" . -}} 11 | 12 | 13 | {{ if or .PrevInSection .NextInSection}} 14 | {{ partialCached "utils/css.html" (dict "context" . "filefolder" "object" "filename" "pagination") "pagination" }} 15 |
    16 | {{with .PrevInSection}}{{.Title}}{{- end -}} 17 | {{with .NextInSection}}{{.Title}}{{- end -}} 18 |
    19 | {{- end -}} 20 | 21 | 22 | {{- $related := .Site.RegularPages.Related . | first 5 -}} 23 | {{- with $related -}} 24 |
    25 |

    Voir aussi

    26 | {{- partialCached "utils/css.html" (dict "context" . "filefolder" "object" "filename" "card") "card" -}} 27 |
    28 | {{range .}} 29 |
    30 |

    {{.Title}}

    31 |

    {{ .Params.description }}

    32 |

    En savoir plus

    33 |
    34 | {{- end -}} 35 |
    36 | 37 | {{- end -}} 38 |
    39 | {{- end -}} 40 | -------------------------------------------------------------------------------- /layouts/projects/single.html: -------------------------------------------------------------------------------- 1 | {{- define "main" -}} 2 |

    {{ .Title }}

    3 | {{- partialCached "templates/projects.html" . . -}} 4 | {{- partialCached "elements/content.html" .Content .Content -}} 5 | {{- end -}} 6 | -------------------------------------------------------------------------------- /layouts/quality/single.html: -------------------------------------------------------------------------------- 1 | 2 | {{- define "title" -}} 3 | {{- $context := . -}} 4 | {{- $projectTitle := (.GetPage "./").Title -}}Recommandations {{ with $projectTitle }}pour {{ $projectTitle }}{{ else }}{{ (index (split (path.Dir .Path) "/") 1) }}{{ end }} 5 | {{- end -}} 6 | {{- define "main" -}} 7 | {{/* Vars */}} 8 | {{- $context := . -}} 9 | {{- $partial := (partialCached "templates/recommendation.html" (dict "context" $context) $context) -}} 10 | {{- partialCached "elements/content.html" $partial $partial -}} 11 | {{- end -}} 12 | -------------------------------------------------------------------------------- /layouts/rgesn/single.html: -------------------------------------------------------------------------------- 1 | {{- define "main" -}} 2 | {{- $patharray := split (path.Dir .Path) "/" -}} 3 | 4 | {{- $.Scratch.Set "guidelinename" "rgesn" -}} 5 | {{- $.Scratch.Set "guidelineversion" "0.1" -}} 6 | {{- if ge ($patharray) 2 -}} 7 | {{- $.Scratch.Set "guideline" (index $patharray 0) -}} 8 | {{- $.Scratch.Set "guidelinename" (index $patharray 0) -}} 9 | {{- $.Scratch.Set "guidelineversion" (index $patharray 1) -}} 10 | {{- end -}} 11 | {{- $criteriafile := (index (index $.Site.Data ($.Scratch.Get "guidelinename")) ($.Scratch.Get "guidelineversion")).criteres -}} 12 | 13 | {{- $.Scratch.Set "thematique" slice -}} 14 | {{- $thematiqueCounter := 1 -}} 15 | {{- range $key1, $value1 := $criteriafile -}} 16 | {{- $thematique := int (index (first 1 (split .id ".")) 0) -}} 17 | {{- if eq $thematique $thematiqueCounter -}} 18 | {{- $.Scratch.Add "thematique" .thematique -}} 19 | {{- $thematiqueCounter = add $thematiqueCounter 1 -}} 20 | {{ end }} 21 | {{- end -}} 22 | 23 |
    24 |

    {{ (index (index $.Site.Data ($.Scratch.Get "guidelinename")) ($.Scratch.Get "guidelineversion")).title | safeHTML }}

    25 | {{ partialCached "utils/css.html" (dict "context" . "filefolder" "element" "filename" "tableofcontents") "tableofcontents" }} 26 |
    27 |

    Thématiques

    28 |
      29 | {{/* Range all topics for anchors menu */}} 30 | {{- range $key1, $value1 := $.Scratch.Get "thematique" -}} 31 |
    1. {{ . }}
    2. 32 | {{- end -}} 33 |
    34 |
    35 | 36 | {{/* Range all topics */}} 37 | {{- range $key1, $value1 := $.Scratch.Get "thematique" -}} 38 |

    {{ . }}

    39 | {{- range $key2, $value2 := where $criteriafile "thematique" . -}} 40 |

    {{ .critere }}

    41 |

    42 | {{ .objectif | markdownify }}
    43 | {{ .miseEnOeuvre | markdownify }} 44 |

    45 |
    46 |

    {{ .controle | markdownify }}

    47 |
    48 |
    49 | {{- end -}} 50 | {{- end -}} 51 |
  • 52 | 53 | {{- end -}} 54 | -------------------------------------------------------------------------------- /layouts/shortcodes/backlinks.html: -------------------------------------------------------------------------------- 1 | {{- $filepath := (partialCached "render/filepath" (dict "context" . "project" (.Get "project") "type" "backlinks.json") (.Get "project") "backlinks.json") -}} 2 | {{- if fileExists $filepath -}} 3 | {{- range sort (getJSON $filepath) -}} 4 |
    5 | ▶ {{ (index . "Source Page Title") }} {{ (index . "Source URL") }}
    6 |
    7 | {{- end -}} 8 | {{- else -}} 9 |

    Le fichier {{ (printf "`%s`" $filepath) | markdownify }} est manquant.

    10 | {{- end -}} 11 | {{- .Inner -}} 12 | -------------------------------------------------------------------------------- /layouts/shortcodes/benchmark.html: -------------------------------------------------------------------------------- 1 | {{- $src := .Get "src" -}} 2 | {{- $project := .Get "datafile" -}} 3 | {{- $filepath := (partialCached "render/filepath" (dict "context" . "project" $project "type" "similary.json") $project "similary.json") -}} 4 | {{- if fileExists $filepath -}}ss 5 | {{- if eq .Ordinal 0 -}} 6 | {{ partialCached "utils/css.html" (dict "context" . "filefolder" "object" "filename" "benchmark") "benchmark" }} 7 | 8 | 9 | 10 | {{- end -}} 11 | 22 | 23 | {{- else -}} 24 |

    Le fichier {{ (printf "`%s`" $filepath) | markdownify }} est manquant.

    25 | {{- end -}} 26 | {{- .Inner -}} 27 | -------------------------------------------------------------------------------- /layouts/shortcodes/graphic.html: -------------------------------------------------------------------------------- 1 | {{- $title := .Get "title" -}} 2 | {{- $type := .Get "type" -}} 3 |
    4 | {{ if eq .Ordinal 0 }} 5 | 6 | 7 | 8 | {{ end }} 9 | 31 | -------------------------------------------------------------------------------- /layouts/shortcodes/list-content.html: -------------------------------------------------------------------------------- 1 | {{- $rangepages := where .Site.RegularPages "Section" (.Get "section") -}} 2 | {{- if $rangepages -}} 3 |
    4 |
    5 |

    {{ with .Site.GetPage (.Get "section") }}{{ .Title }}{{ end }}

    6 |
    7 | {{- partialCached "utils/css.html" (dict "context" . "filefolder" "object" "filename" "card") "card" -}} 8 |
      9 | {{- range first 4 $rangepages -}} 10 |
    • 11 | {{- if .Date -}}{{ end }} 12 |

      {{ .Title }}

      13 | {{- if .Params.tags -}}{{ range .Params.tags }}{{ . }}{{ end }}{{ end }} 14 |
    • 15 | {{- end -}} 16 |
    17 | Voir les {{ with .Site.GetPage (.Get "section") }}{{ lower .Title }}{{ end }} 18 |
    19 | {{- .Inner -}} 20 |
    21 | {{- end -}} 22 | -------------------------------------------------------------------------------- /layouts/shortcodes/mermaid.html: -------------------------------------------------------------------------------- 1 | {{ if eq .Ordinal 0 }} 2 | 3 | 4 | 5 | 16 | {{- end -}} 17 |
    18 | {{- .Inner -}} 19 |
    20 | 21 | -------------------------------------------------------------------------------- /layouts/shortcodes/mermaidmeetings.html: -------------------------------------------------------------------------------- 1 | {{ if eq .Ordinal 0 }} 2 | 3 | 4 | 5 | 16 | {{- end -}} 17 |
    18 | gantt 19 | dateFormat YYYY-MM-DD 20 | section Réunions 21 | Lancement commando :2020-09-07, 1d 22 | {{ range (where .Site.RegularPages "Section" "meetings").Reverse }}{{ .Title }} :{{ .Date.Format "2006-01-02" }}, 1d 23 | {{ end }}Clôture commando :2020-12-12, 10h 24 |
    25 | {{- .Inner -}} 26 | -------------------------------------------------------------------------------- /layouts/shortcodes/parcours.html: -------------------------------------------------------------------------------- 1 | {{- $project := .Get "project" -}} 2 | {{ if eq .Ordinal 0 }} 3 | 4 | 5 | 6 | {{- end -}} 7 |
    8 | {{- range (getJSON (printf "/static/%s/personas.json" $project)) -}} 9 | {{ partial "components/parcours/template.html" (dict "context" . "pages" $ "project" $project) }} 10 | {{- end -}} 11 |
    12 | {{- .Inner -}} 13 | -------------------------------------------------------------------------------- /layouts/shortcodes/personas.html: -------------------------------------------------------------------------------- 1 | {{- $project := .Get "project" -}} 2 | {{ if eq .Ordinal 0 }} 3 | {{- partialCached "utils/css.html" (dict "context" . "filefolder" "object" "filename" "card") "card" -}} 4 | {{- end -}} 5 | {{- $filepath := (partialCached "render/filepath" (dict "context" . "project" $project "type" "personas.json") $project "personas.json") -}} 6 | {{- if fileExists $filepath -}} 7 |
    8 | {{- range (getJSON (printf "static/%s/personas.json" $project)) -}} 9 | {{ partialCached "components/personas/template.html" (dict "context" . "pages" $.Site "project" $project) . }} 10 | {{- end -}} 11 |
    12 | {{- else -}} 13 |

    Le fichier {{ (printf "`%s`" $filepath) | markdownify }} est manquant.

    14 | {{- end -}} 15 | {{- .Inner -}} 16 | -------------------------------------------------------------------------------- /layouts/shortcodes/similary.html: -------------------------------------------------------------------------------- 1 | {{- $.Scratch.Set "countries" slice -}} 2 | {{- $project := .Get "project" -}} 3 | {{- if $project -}} 4 | {{- $path := (partialCached "render/filepath" (dict "context" . "project" $project "type" "similary.json") $project "similary.json") -}} 5 | {{- $.Scratch.Set "auditpath" $path -}} 6 | {{- end -}} 7 | {{- range sort (index (getJSON ($.Scratch.Get "auditpath"))) "country" "asc" -}} 8 | {{- $.Scratch.Add "countries" (slice .country) -}} 9 | {{- end -}} 10 | {{- $field := $.Scratch.Get "countries" | uniq -}} 11 | {{- range $field -}} 12 |

    {{ . }}

    13 |
      14 | {{- range where (index (getJSON ($.Scratch.Get "auditpath"))) "country" . -}} 15 |
    • {{ .name }} - {{ .url | truncate 80 }}
    • 16 | {{- end -}} 17 |
    18 | {{- end -}} 19 | {{- .Inner -}} 20 | -------------------------------------------------------------------------------- /layouts/simple/single.html: -------------------------------------------------------------------------------- 1 | {{- define "main" -}} 2 | {{ partialCached "elements/content.html" .Content .Content }} 3 | {{- end -}} 4 | {{- define "script" -}} 5 | {{- end -}} 6 | -------------------------------------------------------------------------------- /layouts/sitemap/single.html: -------------------------------------------------------------------------------- 1 | {{- define "main" -}} 2 |

    {{ .Title }}

    3 |
    4 | {{ range (where (symdiff $.Site.RegularPages $.Site.Pages) ".Params.sitemapExclude" "ne" true) }} 5 | {{ if not (intersect (slice .Type) (slice "categories" "tags")) }} 6 |

    {{ .Title }} - Lien

    7 | {{ with .RegularPages }} 8 | 21 | {{- end -}} 22 | {{- end -}} 23 | {{- end -}} 24 |
    25 | {{- end -}} 26 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [[headers]] 2 | for = "/*" 3 | 4 | [headers.values] 5 | Permissions-Policy = "interest-cohort=()" 6 | X-Frame-Options = "DENY" 7 | X-XSS-Protection = "1; mode=block" 8 | Content-Security-Policy = "frame-ancestors https://www.facebook.com" 9 | 10 | # Multi-value headers are expressed with multi-line strings. 11 | cache-control = ''' 12 | max-age=0, 13 | no-cache, 14 | no-store, 15 | must-revalidate''' 16 | 17 | [[headers]] 18 | for = "*.js" 19 | [headers.values] 20 | Cache-Control = "public, max-age=604800" 21 | 22 | [[headers]] 23 | for = "*.css" 24 | [headers.values] 25 | Cache-Control = "public, max-age=604800" 26 | 27 | [[redirects]] 28 | from = "/*" 29 | to = "/404.html" 30 | status = 404 31 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Frago", 3 | "version": "1.0.0", 4 | "description": "Tool for a French governemental Reports for Accessibility compliance with goHugo", 5 | "license": "MIT", 6 | "author": "bertrand.keller@gmail.com", 7 | "scripts": {}, 8 | "dependencies": { 9 | "@fullhuman/postcss-purgecss": "^2.1.0", 10 | "autoprefixer": "^9.6.4", 11 | "css-mqpacker": "^7.0.0", 12 | "cssnano": "^4.1.10", 13 | "eslint": "^5.15.1", 14 | "postcss-cli": "^6.1.3", 15 | "postcss-unused-var": "^0.1.1", 16 | "stylelint": "^11.0.0", 17 | "stylelint-a11y": "^1.2.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | const purgecss = require('@fullhuman/postcss-purgecss')({ 2 | 3 | // Specify the paths to all of the template files in your project 4 | content: [ 5 | './public/**/*.html', 6 | ], 7 | 8 | // Include any special characters you're using in this regular expression 9 | defaultExtractor: content => content.match(/[\w-/:]+(?1%'] 17 | }), 18 | require('stylelint'), 19 | require("postcss-unused-var"), 20 | require("css-mqpacker"), 21 | require('cssnano')({ 22 | preset: 'default', 23 | }), 24 | purgecss 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /static/assets/css/fonts.css: -------------------------------------------------------------------------------- 1 | @media (prefers-reduced-data: no-preference) { 2 | /* Marianne-Light - latin */ 3 | @font-face { 4 | font-family: 'Marianne'; 5 | font-style: normal; 6 | font-weight: 300; 7 | src: local('Marianne Light'), local('Marianne-Light'), 8 | url('/assets/fonts/Marianne-Light.woff2') format('woff2'); 9 | font-display: optional; 10 | } 11 | /* Marianne-regular - latin */ 12 | @font-face { 13 | font-family: 'Marianne'; 14 | font-style: normal; 15 | font-weight: 400; 16 | src: local('Marianne Regular'), local('Marianne-Regular'), 17 | url('/assets/fonts/Marianne-Regular.woff2') format('woff2'); 18 | font-display: optional; 19 | } 20 | /* Marianne-Bold - latin */ 21 | @font-face { 22 | font-family: 'Marianne'; 23 | font-style: normal; 24 | font-weight: 600; 25 | src: local('Marianne SemiBold'), local('Marianne-SemiBold'), 26 | url('/assets/fonts/Marianne-Bold.woff2') format('woff2'); 27 | font-display: optional; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /static/assets/favicons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/android-chrome-192x192.png -------------------------------------------------------------------------------- /static/assets/favicons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/android-chrome-512x512.png -------------------------------------------------------------------------------- /static/assets/favicons/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/android-icon-144x144.png -------------------------------------------------------------------------------- /static/assets/favicons/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/android-icon-192x192.png -------------------------------------------------------------------------------- /static/assets/favicons/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/android-icon-36x36.png -------------------------------------------------------------------------------- /static/assets/favicons/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/android-icon-48x48.png -------------------------------------------------------------------------------- /static/assets/favicons/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/android-icon-72x72.png -------------------------------------------------------------------------------- /static/assets/favicons/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/android-icon-96x96.png -------------------------------------------------------------------------------- /static/assets/favicons/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/apple-icon-114x114.png -------------------------------------------------------------------------------- /static/assets/favicons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/apple-icon-120x120.png -------------------------------------------------------------------------------- /static/assets/favicons/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/apple-icon-144x144.png -------------------------------------------------------------------------------- /static/assets/favicons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/apple-icon-152x152.png -------------------------------------------------------------------------------- /static/assets/favicons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/apple-icon-180x180.png -------------------------------------------------------------------------------- /static/assets/favicons/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/apple-icon-57x57.png -------------------------------------------------------------------------------- /static/assets/favicons/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/apple-icon-60x60.png -------------------------------------------------------------------------------- /static/assets/favicons/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/apple-icon-72x72.png -------------------------------------------------------------------------------- /static/assets/favicons/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/apple-icon-76x76.png -------------------------------------------------------------------------------- /static/assets/favicons/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/apple-icon-precomposed.png -------------------------------------------------------------------------------- /static/assets/favicons/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/apple-icon.png -------------------------------------------------------------------------------- /static/assets/favicons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/apple-touch-icon.png -------------------------------------------------------------------------------- /static/assets/favicons/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | #ffffff -------------------------------------------------------------------------------- /static/assets/favicons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/favicon-16x16.png -------------------------------------------------------------------------------- /static/assets/favicons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/favicon-32x32.png -------------------------------------------------------------------------------- /static/assets/favicons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/favicon-96x96.png -------------------------------------------------------------------------------- /static/assets/favicons/favicon-original.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/favicon-original.png -------------------------------------------------------------------------------- /static/assets/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/favicon.ico -------------------------------------------------------------------------------- /static/assets/favicons/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "App", 3 | "icons": [ 4 | { 5 | "src": "\/android-icon-36x36.png", 6 | "sizes": "36x36", 7 | "type": "image\/png", 8 | "density": "0.75" 9 | }, 10 | { 11 | "src": "\/android-icon-48x48.png", 12 | "sizes": "48x48", 13 | "type": "image\/png", 14 | "density": "1.0" 15 | }, 16 | { 17 | "src": "\/android-icon-72x72.png", 18 | "sizes": "72x72", 19 | "type": "image\/png", 20 | "density": "1.5" 21 | }, 22 | { 23 | "src": "\/android-icon-96x96.png", 24 | "sizes": "96x96", 25 | "type": "image\/png", 26 | "density": "2.0" 27 | }, 28 | { 29 | "src": "\/android-icon-144x144.png", 30 | "sizes": "144x144", 31 | "type": "image\/png", 32 | "density": "3.0" 33 | }, 34 | { 35 | "src": "\/android-icon-192x192.png", 36 | "sizes": "192x192", 37 | "type": "image\/png", 38 | "density": "4.0" 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /static/assets/favicons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/ms-icon-144x144.png -------------------------------------------------------------------------------- /static/assets/favicons/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/ms-icon-150x150.png -------------------------------------------------------------------------------- /static/assets/favicons/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/ms-icon-310x310.png -------------------------------------------------------------------------------- /static/assets/favicons/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/favicons/ms-icon-70x70.png -------------------------------------------------------------------------------- /static/assets/favicons/site.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} -------------------------------------------------------------------------------- /static/assets/fonts/Marianne-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/fonts/Marianne-Bold.woff2 -------------------------------------------------------------------------------- /static/assets/fonts/Marianne-ExtraBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/fonts/Marianne-ExtraBold.woff2 -------------------------------------------------------------------------------- /static/assets/fonts/Marianne-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/fonts/Marianne-Light.woff2 -------------------------------------------------------------------------------- /static/assets/fonts/Marianne-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/fonts/Marianne-Medium.woff2 -------------------------------------------------------------------------------- /static/assets/fonts/Marianne-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/fonts/Marianne-Regular.woff2 -------------------------------------------------------------------------------- /static/assets/fonts/Marianne-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DISIC/frago/c13379c38d118901fcbe69d73b6ff0f1ba349885/static/assets/fonts/Marianne-Thin.woff2 -------------------------------------------------------------------------------- /static/assets/images/greenit/picto-dechets.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /static/assets/images/greenit/picto-difficulte.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/assets/images/greenit/picto-eau.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/assets/images/greenit/picto-electricite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/assets/images/greenit/picto-gaz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/assets/images/greenit/picto-potentiel-economie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/assets/images/greenit/picto-potentiel-social.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/assets/images/greenit/picto-priorite.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /static/assets/images/greenit/picto-ressources.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/assets/images/greenit/picto-social.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DINUM - Commando UX", 3 | "short_name": "Command", 4 | "icons": [{ 5 | "src": "/assets/favicons/android-chrome-192x192.png", 6 | "sizes": "192x192", 7 | "type": "image/png" 8 | }, { 9 | "src": "/assets/favicons/android-chrome-512x512.png", 10 | "sizes": "512x512", 11 | "type": "image/png" 12 | }], 13 | "start_url": "/index.html", 14 | "display": "standalone", 15 | "orientation" : "portrait", 16 | "background_color": "#2d7ad2", 17 | "theme_color": "#2d7ad2" 18 | } 19 | -------------------------------------------------------------------------------- /theme.toml: -------------------------------------------------------------------------------- 1 | name = "frago" 2 | license = "MIT" 3 | licenselink = "https://github.com/disic/frago/blob/master/LICENSE" 4 | description = "Tool for a French governemental Reports for Accessibility compliance with goHugo" 5 | homepage = "https://github.com/disic/frago/" 6 | tags = ["audits", "accessibility", "compliance","RGAA","quality","front-end"] 7 | min_version = 0.8 8 | theme_version = "1.7.4" 9 | 10 | [author] 11 | name = "Bertrand Keller" 12 | homepage = "https://github.com/bertrandkeller" 13 | -------------------------------------------------------------------------------- /themes/documentago/layouts/_default/list.html: -------------------------------------------------------------------------------- 1 | {{ define "header_css" }}{{ end }} 2 | {{ define "body_classes" }}page-default-list{{ end }} 3 | {{ define "header_classes" }}{{ end }} 4 | 5 | {{ define "main" }} 6 | 7 |

    {{ .Title }}

    8 | {{- $currentNode := . -}} 9 | {{- $data := newScratch -}} 10 | {{- $data.Set "section" (slice "false") -}} 11 | {{- range (where .Site.Pages "Section" .Section) -}} 12 | {{- if in .Path "/_index.md" -}} 13 | {{- $data.Add "section" .Path -}} 14 | {{- end -}} 15 | {{- end -}} 16 | {{ range $data.Get "section" }} 17 | {{- if ($.Site.GetPage .).Pages -}} 18 | {{ if ne $currentNode.Path . }}

    {{ ($.Site.GetPage .).Title }}

    {{ end }} 19 | {{- range ($.Site.GetPage .).RegularPages -}} 20 | {{ .Render "summary" }} 21 | {{- end -}} 22 | {{- end -}} 23 | {{- end -}} 24 | 25 | {{ end }} 26 | --------------------------------------------------------------------------------