Skip to content

Commit

Permalink
Merge branch 'main' of github.com:IGNF/cartes.gouv.fr-documentation i…
Browse files Browse the repository at this point in the history
…nto main
  • Loading branch information
Dolite committed Sep 25, 2024
2 parents 903db20 + a4daf22 commit 480e363
Show file tree
Hide file tree
Showing 24 changed files with 2,986 additions and 968 deletions.
6 changes: 3 additions & 3 deletions .docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#----------------------------------------------------------------------
# cartesgouvfr-documentation : Génération d'un build statique
#----------------------------------------------------------------------
FROM node:18-alpine as builder
FROM node:20-alpine AS builder

RUN apk add git

Expand All @@ -10,14 +10,14 @@ COPY . .

# --pathprefix=/docs/
RUN npm ci \
&& npx @11ty/eleventy \
&& npx @11ty/eleventy --pathprefix=/documentation \
&& npx pagefind --site _site/ --output-subdir \"_pagefind\" \
&& rm -rf node_modules .git

#----------------------------------------------------------------------
# cartesgouvfr-documentation : Config d'un serveur statique avec nginx
#----------------------------------------------------------------------
FROM nginxinc/nginx-unprivileged:alpine
FROM nginxinc/nginx-unprivileged:alpine-slim
COPY --from=builder /app/_site /usr/share/nginx/html/
COPY --from=builder /app/_site/fr/index.html /usr/share/nginx/html/
COPY .docker/nginx.conf /etc/nginx/nginx.conf
Expand Down
9 changes: 7 additions & 2 deletions .docker/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,17 @@ http {
uwsgi_temp_path /tmp/uwsgi_temp;
scgi_temp_path /tmp/scgi_temp;

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

server {
listen 8082;
listen [::]:8082;
server_name localhost;
resolver 127.0.0.11;
autoindex off;
absolute_redirect off;
port_in_redirect off;

server_name _;
server_tokens off;
Expand All @@ -34,8 +39,8 @@ http {
index index.html index.htm;

# Serve static files
location / {
root /usr/share/nginx/html;
location /documentation {
alias /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /404.html;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: 📚 Ajouter ou demander l'ajout de documentation
description: Posez une question sur une étape à éclaircir, suggérez des modifications de la documentation
labels: [documentation]
labels: [contenu]
body:
- type: textarea
id: description
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/3-demander-une-evolution.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: 🚀 Demander une évolution
description: Vous souhaiteriez intégrer un nouveau type de contenu que les templates ne permettent pas encore d'intégrer
labels: [enhancement]
labels: [évolution]
body:
- type: textarea
id: need-description
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
# Sample workflow for building and deploying an Eleventy site to GitHub Pages
name: Deploy Eleventy with GitHub Pages dependencies preinstalled
name: Build & Deploy Eleventy with GitHub Pages dependencies preinstalled

on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]
branches-ignore:
- "dependabot/**"
- "renovate/**"
pull_request:

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
Expand All @@ -15,12 +18,6 @@ permissions:
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
name: Generate a static build
Expand All @@ -31,7 +28,7 @@ jobs:
with:
fetch-depth: 0
- name: Setup Pages
uses: actions/configure-pages@v4
uses: actions/configure-pages@v5
- name: Build with Eleventy
run: |
npm install
Expand All @@ -45,11 +42,17 @@ jobs:

deploy-ghpages:
name: Deploy to github pages
if: github.event_name == 'push' && github.ref_name == 'main'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
steps:
- name: Deploy to GitHub Pages
id: deployment
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docker-build-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
# https://github.com/docker/build-push-action
- name: Build and push Docker image to ghcr
id: build-and-push
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
file: .docker/Dockerfile
Expand Down
4 changes: 2 additions & 2 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
# . "$(dirname "$0")/_/husky.sh"

npx lint-staged
npx lint-staged
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v20.15.0
2 changes: 1 addition & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"recommendations": ["ginfuru.better-nunjucks", "monosans.djlint"]
"recommendations": ["ginfuru.better-nunjucks"]
}
4 changes: 3 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ Ci-dessous, un guide pas à pas décrit le processus de contribution via un fork
git clone [email protected]:your_GH_account/cartes.gouv.fr-documentation.git
```

(en cas de problème, vérifiez votre configuration réseau. Si vous travaillez derrière un proxy, vérifiez par exemple vos variables d'environnement HTTP_PROXY et HTTPS_PROXY)

- Placez vous dans le nouveau dossier créé :

```bash
Expand Down Expand Up @@ -145,7 +147,7 @@ git push origin nouvelle-doc

### Créer une pull-request

AU moement de votre push, GitHub va vous répondre directement en vous donnant l'URL à laquelle vous pouvez créer votre pull request. Vous pouvez suivre cette URL ou vous rendre à tout moment sur votre fork sur Github, afficher la branche "nouvelle-doc" et Github vous montrera un bandeau avec un bouton pour créer une nouvelle pull request.
Au moment de votre push, GitHub va vous répondre directement en vous donnant l'URL à laquelle vous pouvez créer votre pull request. Vous pouvez suivre cette URL ou vous rendre à tout moment sur votre fork sur Github, afficher la branche "nouvelle-doc" et Github vous montrera un bandeau avec un bouton pour créer une nouvelle pull request.

### Après avoir créé une pull request

Expand Down
4 changes: 2 additions & 2 deletions _includes/components/pagefind_filters.njk
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
{% if espace %}
{% for item in espace %}<span class="fr-hidden" data-pagefind-filter="espace">{{ item }}</span>{% endfor %}
{% endif %}
{% if profile %}
{% for item in profile %}<span class="fr-hidden" data-pagefind-filter="profile">{{ item }}</span>{% endfor %}
{% if profil %}
{% for item in profil %}<span class="fr-hidden" data-pagefind-filter="profil">{{ item }}</span>{% endfor %}
{% endif %}
{% if tags %}
{% for item in tags %}<span class="fr-hidden" data-pagefind-filter="tags">{{ item }}</span>{% endfor %}
Expand Down
6 changes: 6 additions & 0 deletions _includes/components/sidemenu.njk
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,18 @@
</nav>
<script>
(() => {
// trouver le tag "a" correspondant au hash
const hash = window.location.hash
const link = document.querySelector(`.fr-sidemenu__link[href='${hash}']`);
if (link) {
link.ariaCurrent = "page"
/**
* Parcourir les liens du sidemenu, (boucle jusqu'à trouver fr-sidemenu__inner)
* - si l'élément à la classe fr-collapse (c'est la div qui enrobe la sous-liste actuelle), ajouter sur sur son element précédent (le button) el.previousElementSibling.ariaExpanded = true pour ouvrir le collapse.
* - Et lui ajouter l'attribut aria-current="true"
*/
let el = link.parentElement
do {
if (el?.classList?.contains("fr-collapse")) {
Expand Down
54 changes: 23 additions & 31 deletions _includes/layouts/profil.njk
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,34 @@
layout: layouts/base.njk
sidemenu: false
---

<div class="fr-mb-6w">
<div class="fr-container fr-mt-6w" data-pagefind-body>
<div class="fr-grid-row">
<div class="fr-col-4">
<fieldset class="fr-fieldset" id="profile-hint" aria-labelledby="profile-hint-legend">
<legend class="fr-fieldset__legend--regular fr-fieldset__legend" id="profile-hint-legend">
Je suis
</legend>
<div class="fr-fieldset__element">
<div class="fr-radio-group">
<input type="radio" id="developpeur" name="profile-hint" value="developpeur" onclick="document.location.href='../developpeur/'" {% if developpeur %}checked{% endif %}/>
<label for="developpeur">
Développ·eur·euse
</label>
<div class="fr-col-12 fr-col-md-4">
<nav class="fr-sidemenu" aria-labelledby="fr-sidemenu-title">
<div class="fr-sidemenu__inner">
<button class="fr-sidemenu__btn"
hidden
aria-controls="fr-sidemenu-wrapper"
aria-expanded="true">Je suis</button>
<div class="fr-collapse" id="fr-sidemenu-wrapper">
<div class="fr-sidemenu__title" id="fr-sidemenu-title">Je suis</div>
<ul class="fr-sidemenu__list">
{% for profil in collections.profils %}
<li class="fr-sidemenu__item fr-sidemenu__item--active">
<a class="fr-sidemenu__link"
href="{{ profil.url }}"
target="_self"
{% if profil.url == page.url %}aria-current="page"{% endif %}>{{ profil.data.title }}</a>
</li>
{% endfor %}
</ul>
</div>
</div>
<div class="fr-fieldset__element">
<div class="fr-radio-group">
<input type="radio" id="producteur" name="profile-hint" value="producteur" onclick="document.location.href='../producteur/'" {% if producteur %}checked{% endif %}/>
<label for="producteur">
Product·eur·rice
</label>
</div>
</div>
<div class="fr-fieldset__element">
<div class="fr-radio-group">
<input type="radio" id="utilisateur" name="profile-hint" value="utilisateur" onclick="document.location.href='../utilisateur/'" {% if utilisateur %}checked{% endif %}/>
<label for="utilisateur">Utilisat·eur·rice</label>
</div>
</div>
</fieldset>
</div>
<div class="fr-col-8">
<h1>{{ title }}</h1>
{{ content | safe }}
</nav>
</div>
<div class="fr-col-12 fr-col-md-8 fr-py-12v">{{ content | safe }}</div>
</div>
</div>
</div>
</div>
15 changes: 12 additions & 3 deletions compose.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
version: "3.8"
networks:
web_dev:
external: true

services:
site:
Expand All @@ -9,11 +11,18 @@ services:
args:
- HTTP_PROXY
- HTTPS_PROXY
ports:
- 8082:8082
# ports:
# - 8082:8082
environment:
- HTTP_PROXY=${HTTP_PROXY}
- HTTPS_PROXY=${HTTPS_PROXY}
- http_proxy=${HTTP_PROXY}
- https_proxy=${HTTPS_PROXY}
restart: unless-stopped
networks:
- web_dev
labels:
- "traefik.enable=true"
- "traefik.http.routers.cartesgouvfr-documentation.rule=Host(`cartesgouvfr-documentation.docker.localhost`) && PathPrefix(`/documentation`)"
- "traefik.http.routers.cartesgouvfr-documentation.entrypoints=websecure"
- "traefik.http.services.cartesgouvfr-documentation.loadbalancer.server.port=8082"
12 changes: 0 additions & 12 deletions content/fr/blog/posts/accordeon.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,6 @@ date: git Last Modified
tags:
- DSFR
- composant
format:
- Initiation
- Tutoriel
- Référentiel technique
- Article
profile:
- Utilisateur
- Producteur
- Développeur
espace:
- Ecosystème Géoplateforme
- Organismes producteurs
---

Chaque composant peut être inclus dans un fichier Nunjucks `.njk` ou Markdown `.md`.
Expand Down
9 changes: 7 additions & 2 deletions content/fr/developpeur/index.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
---
title: Toutes les ressources techniques pour utiliser cartes.gouv.fr et les briques de la Géoplateforme
layout: layouts/profil.njk
title: Développeur
developpeur: true
layout: "layouts/profil.njk"
tags: ["profils"]
slugOverride: developpeur
date: 2000-01-01
---

# Toutes les ressources techniques pour utiliser cartes.gouv.fr et les briques de la Géoplateforme

Consultez nos guides, FAQ, tutoriels et documentations techniques pour vous accompagner dans la prise en main des outils de la Géoplateforme et cartes.gouv.fr.

## Entrepôt Géoplateforme
Expand Down
8 changes: 6 additions & 2 deletions content/fr/producteur/index.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
---
title: Toutes les ressources pour utiliser cartes.gouv.fr
layout: layouts/profil.njk
title: Producteur
producteur: true
layout: "layouts/profil.njk"
tags: ["profils"]
date: 2001-01-01
---

# Toutes les ressources pour utiliser cartes.gouv.fr

Consultez nos guides, FAQ, tutoriels et documentations techniques pour vous accompagner dans la prise en main des outils de cartes.gouv.fr.

Documentation producteur...
28 changes: 22 additions & 6 deletions content/fr/utilisateur/index.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,31 @@
---
title: Toutes les ressources pour utiliser cartes.gouv.fr
layout: layouts/profil.njk
title: Utilisateur
utilisateur: true
layout: "layouts/profil.njk"
tags: ["profils"]
date: 2002-01-01
---

# Toutes les ressources pour utiliser cartes.gouv.fr

Consultez nos guides, FAQ, tutoriels et documentations techniques pour vous accompagner dans la prise en main des outils de cartes.gouv.fr.

## Créer mon compte
## Services Géoplateforme de diffusion, calcul et recherche

{% from "components/component.njk" import component with context %}

<div class="fr-grid-row fr-grid-row--gutters fr-grid-row--center">

<div class="fr-col-6">

...
{{ component("tile", {
url: false,
externalUrl: "https://geoservices.ign.fr/documentation/services/services-geoplateforme",
title: "Documentation des services Géoplateforme de diffusion, calcul et recheche",
description: "Des services pour accéder aux géodatas hébergées sur la Géoplateforme",
pictogram: "leisure/book.svg"
}) }}

## Consulter et utiliser des données
</div>

- [Service de découverte des métadonnées](metadata)
</div>
Loading

0 comments on commit 480e363

Please sign in to comment.