diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index f907f75f..00000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-version: 2
-
-_default: &default
- docker:
- - image: circleci/node:latest
- working_directory: ~/repo
-
-jobs:
- lint-md:
- <<: *default
- steps:
- - checkout
- - restore_cache:
- keys:
- - v1-dependencies-{{ checksum "package-lock.json" }}
- - run: npm install
- - save_cache:
- paths:
- - node_modules
- key: v1-dependencies-{{ checksum "package-lock.json" }}
- - run:
- name: Lint Markdown files
- command: |
- npm run lint-md
- extended-lint-md:
- <<: *default
- steps:
- - checkout
- - restore_cache:
- keys:
- - v1-dependencies-{{ checksum "package-lock.json" }}
- - run: npm install
- - save_cache:
- paths:
- - node_modules
- key: v1-dependencies-{{ checksum "package-lock.json" }}
- - run:
- name: Lint Markdown files
- command: |
- npm run extended-lint-md
-workflows:
- version: 2
- commit:
- jobs:
- - lint-md
- cron:
- triggers:
- - schedule:
- cron: "20 1 * * 1"
- filters:
- branches:
- only:
- - master
- jobs:
- - extended-lint-md
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 00000000..0c299285
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,108 @@
+name: "Build and deploy"
+
+on:
+ push:
+
+jobs:
+ publish:
+ name: Publish to GitHub Pages
+ needs: pdf
+ runs-on: ubuntu-latest
+ if: github.ref == 'refs/heads/master'
+
+ steps:
+ - name: Download website build
+ uses: actions/download-artifact@v2
+ with:
+ name: website
+ path: public/
+
+ - name: Download PDF build
+ uses: actions/download-artifact@v2
+ with:
+ name: pdf
+ path: pdf/
+
+ - name: Move PDF files
+ run: mv pdf public/
+
+ - name: Deploy to GitHub Pages
+ uses: peaceiris/actions-gh-pages@v3
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ publish_dir: public
+ user_name: 'actions-user'
+ user_email: 'actions@github.com'
+ force_orphan: true
+ cname: guides.etalab.gouv.fr
+
+ pdf:
+ name: Build PDF files
+ needs: build
+ runs-on: ubuntu-latest
+ container: aergus/latex:latest
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Install dependencies
+ run: |
+ apt update
+ apt install -y python3-venv
+
+ - name: Install pandoc-guides
+ run: |
+ git clone https://github.com/etalab/pandoc-guides.git /tmp/pandoc-guides
+ cp /tmp/pandoc-guides/* .
+ python3 -m venv venv
+ . venv/bin/activate
+ pip install -r requirements.txt
+
+ - name: Generate PDF files
+ run: |
+ . venv/bin/activate
+ python main.py algorithmes 'Expliquer les algorithmes publics' pdf/guide-algorithmes.pdf
+ python main.py data.gouv.fr 'Publier les données sur data.gouv.fr' pdf/guide-data.gouv.fr.pdf
+ python main.py juridique "Identifier les données à ouvrir" pdf/guide-juridique.pdf
+ python main.py logiciels 'Ouvrir les codes sources' pdf/guide-logiciels.pdf
+ python main.py producteurs-schemas 'Créer des schémas de données' pdf/guide-producteurs-schemas.pdf
+ python main.py pseudonymisation "Pseudonymiser des documents grâce à l'IA" pdf/guide-pseudonymisation.pdf
+ python main.py qualite "Préparer les données à l'ouverture et la circulation" pdf/guide-qualite.pdf
+
+ - uses: actions/upload-artifact@v2
+ with:
+ name: pdf
+ path: pdf/
+
+ build:
+ name: Lint and build website
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Cache Node.js modules
+ uses: actions/cache@v2
+ with:
+ path: ~/.npm
+ key: ${{ runner.OS }}-node-${{ hashFiles('package-lock.json') }}
+
+ - name: Cache VuePress files
+ uses: actions/cache@v2
+ with:
+ path: ./public
+ key: ${{ runner.OS }}-vuepress
+
+ - name: Install dependencies
+ run: npm install
+
+ - name: Lint Markdown files
+ run: npm run lint-md
+
+ - name: Build VuePress website
+ run: npm run build
+
+ - uses: actions/upload-artifact@v2
+ with:
+ name: website
+ path: public/
diff --git a/.vuepress/components/PDFExports.vue b/.vuepress/components/PDFExports.vue
new file mode 100644
index 00000000..097d75f0
--- /dev/null
+++ b/.vuepress/components/PDFExports.vue
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/.vuepress/config.js b/.vuepress/config.js
index 7a7ea994..cc584691 100644
--- a/.vuepress/config.js
+++ b/.vuepress/config.js
@@ -14,8 +14,9 @@ module.exports = {
editLinks: true,
editLinkText: 'Proposer des modifications sur cette page',
nav: [
- { text: 'Sommaire', link: '/accueil.html' },
- { text: 'Contacter Etalab', link: 'https://etalab.gouv.fr/contact' }
+ { text: '📚 Sommaire', link: '/accueil.html' },
+ { text: '💾 Télécharger les guides', link: '/pdf.html' },
+ { text: '✉️ Contacter Etalab', link: 'https://www.etalab.gouv.fr/contact' }
],
sidebarTitles: {
'/qualite/': "Préparer les données à l'ouverture et la circulation",
@@ -25,7 +26,16 @@ module.exports = {
'/logiciels/': 'Ouvrir les codes sources',
'/producteurs-schemas/': 'Créer des schémas de données',
'/pseudonymisation/': "Pseudonymiser des documents grâce à l'IA",
- }
+ },
+ pdfFiles: [
+ {path: 'pdf/guide-qualite.pdf', name: "Préparer les données à l'ouverture et la circulation"},
+ {path: 'pdf/guide-juridique.pdf', name: "Identifier les données à ouvrir"},
+ {path: 'pdf/guide-data.gouv.fr.pdf', name: 'Publier les données sur data.gouv.fr'},
+ {path: 'pdf/guide-algorithmes.pdf', name: 'Expliquer les algorithmes publics'},
+ {path: 'pdf/guide-logiciels.pdf', name: 'Ouvrir les codes sources'},
+ {path: 'pdf/guide-producteurs-schemas.pdf', name: 'Créer des schémas de données'},
+ {path: 'pdf/guide-pseudonymisation.pdf', name: "Pseudonymiser des documents grâce à l'IA"},
+ ],
},
locales: {'/': {lang: 'fr-FR'}},
dest: 'public',
diff --git a/pdf.md b/pdf.md
new file mode 100644
index 00000000..da9ce3b3
--- /dev/null
+++ b/pdf.md
@@ -0,0 +1,16 @@
+---
+title: Exports des guides en PDF
+sidebar: false
+---
+
+# Exports des guides en PDF
+
+Tous les guides présents sur ce site web sont téléchargeables au format PDF. Ceci vous permet de les lire lorsque vous n'avez pas accès à Internet ou les imprimer en cas de besoin.
+
+
+
+::: warning Mises à jour
+
+Ces documents correspondent aux guides au moment où vous les téléchargez. Les guides étant régulièrement mis à jour, nous vous conseillons donc de vous référer en priorité à ce site web.
+
+:::