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. + +:::