From fc19f44c186a699949a409374d3f9619e38d83ee Mon Sep 17 00:00:00 2001 From: Jonah Aragon Date: Sat, 30 Mar 2024 19:12:48 -0500 Subject: [PATCH] Use GitHub Actions instead of Netlify (#2462) Signed-off-by: Daniel Gray --- .../{release.yml => build-offline.yml} | 95 ++++------- .github/workflows/build.yml | 67 +++++--- .github/workflows/cleanup.yml | 20 +-- .github/workflows/deploy.yml | 123 +++++++++++++-- .github/workflows/download-repo.yml | 10 +- .github/workflows/pages.yml | 100 ------------ .../{mirror.yml => publish-mirror.yml} | 9 -- .../{preview-pr.yml => publish-pr.yml} | 35 +++-- .github/workflows/publish-release.yml | 97 ++++++++++++ ...{crowdin-upload.yml => upload-crowdin.yml} | 0 .vscode/extensions.json | 4 +- README.md | 10 +- config/layouts/home.yml | 2 +- config/mkdocs-common.yml | 148 ++++++++++++++++-- config/mkdocs-offline.yml | 129 +-------------- config/mkdocs.en.yml | 127 --------------- config/mkdocs.es.yml | 120 +------------- config/mkdocs.fr.yml | 120 +------------- config/mkdocs.he.yml | 117 +------------- config/mkdocs.it.yml | 120 +------------- config/mkdocs.nl.yml | 120 +------------- config/mkdocs.ru.yml | 116 -------------- config/mkdocs.zh-Hant.yml | 115 +------------- includes/strings.en.env | 41 +++++ includes/strings.en.yml | 52 ------ netlify.toml | 8 +- theme/main.html | 35 +---- 27 files changed, 514 insertions(+), 1426 deletions(-) rename .github/workflows/{release.yml => build-offline.yml} (66%) delete mode 100644 .github/workflows/pages.yml rename .github/workflows/{mirror.yml => publish-mirror.yml} (88%) rename .github/workflows/{preview-pr.yml => publish-pr.yml} (72%) create mode 100644 .github/workflows/publish-release.yml rename .github/workflows/{crowdin-upload.yml => upload-crowdin.yml} (100%) create mode 100644 includes/strings.en.env delete mode 100644 includes/strings.en.yml diff --git a/.github/workflows/release.yml b/.github/workflows/build-offline.yml similarity index 66% rename from .github/workflows/release.yml rename to .github/workflows/build-offline.yml index ac67fd23..9a7ebffe 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/build-offline.yml @@ -1,4 +1,4 @@ -# Copyright (c) 2021-2023 Jonah Aragon +# Copyright (c) 2024 Jonah Aragon # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to @@ -18,47 +18,36 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. -name: 📦 Releases +name: Build Offline Website on: - push: - tags: - - '*' + workflow_call: + +permissions: + contents: read jobs: - production: - name: Push release to production - runs-on: ubuntu-latest - environment: - name: actions-ssh - permissions: - contents: write - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: '0' - ssh-key: ${{ secrets.ACTIONS_SSH_KEY }} - submodules: 'true' - - - name: Push to production branch - run: | - git push origin HEAD:production - build: - name: Create release packages runs-on: ubuntu-latest - environment: - name: actions-ssh + permissions: + contents: read steps: - name: Checkout repository uses: actions/checkout@v4 with: - fetch-depth: '0' - ssh-key: ${{ secrets.ACTIONS_SSH_KEY }} - submodules: 'true' + persist-credentials: 'false' + + - uses: actions/download-artifact@v4 + with: + pattern: repo-* + path: modules + + - run: | + rmdir modules/mkdocs-material + mv modules/repo-mkdocs-material-insiders modules/mkdocs-material + rmdir theme/assets/brand + mv modules/repo-brand theme/assets/brand - name: Python setup uses: actions/setup-python@v5 @@ -66,11 +55,13 @@ jobs: python-version: '3.8' cache: 'pipenv' - - name: Cache files - uses: actions/cache@v4.0.2 + - uses: actions/cache/restore@v4.0.2 with: - key: ${{ github.ref }} + key: site-cache-${{ github.repository }}-en-${{ github.ref }}-${{ hashfiles('.cache/**') }} path: .cache + restore-keys: | + site-cache-${{ github.repository }}-en-${{ github.ref }}- + site-cache-${{ github.repository }}-en- - name: Install Python dependencies run: | @@ -91,6 +82,11 @@ jobs: tar -czvf offline.tar.gz site zip -r -q offline.zip site + - uses: actions/cache/save@v4.0.2 + with: + key: site-cache-${{ github.repository }}-en-${{ github.ref }}-${{ hashfiles('.cache/**') }} + path: .cache + - name: Upload tar.gz file uses: actions/upload-artifact@v4 with: @@ -114,32 +110,5 @@ jobs: - name: Upload ZIM file uses: actions/upload-artifact@v4 with: - name: privacy_guides.zim - path: privacy_guides.zim - - release: - name: Create release notes - needs: build - runs-on: ubuntu-latest - permissions: - contents: write - - steps: - - uses: actions/download-artifact@v4 - with: - name: offline.tar.gz - - - uses: actions/download-artifact@v4 - with: - name: offline.zip - - - uses: actions/download-artifact@v4 - with: - name: privacy_guides.zim - - - name: Create release notes - uses: ncipollo/release-action@v1 - with: - generateReleaseNotes: true - token: ${{ secrets.REPO_TOKEN }} - artifacts: "offline.zip,offline.tar.gz,privacy_guides.zim" + name: offline-privacy_guides.zim + path: offline-privacy_guides.zim diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 02cc3a85..3503ecd4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,22 +30,27 @@ on: required: true type: string lang: - required: true type: string - i18n: - required: true + default: en + context: + type: string + default: deploy-preview + continue-on-error: type: boolean + default: true + +permissions: + contents: read jobs: build: runs-on: ubuntu-latest - continue-on-error: ${{ inputs.i18n }} + continue-on-error: ${{ inputs.continue-on-error }} permissions: contents: read steps: - - name: Checkout repository - uses: actions/checkout@v4 + - uses: actions/checkout@v4 with: repository: ${{ inputs.repo }} ref: ${{ inputs.ref }} @@ -53,52 +58,62 @@ jobs: - uses: actions/download-artifact@v4 with: + pattern: repo-* path: modules - run: | rmdir modules/mkdocs-material - mv modules/mkdocs-material-insiders modules/mkdocs-material + mv modules/repo-mkdocs-material-insiders modules/mkdocs-material rmdir theme/assets/brand - mv modules/brand theme/assets/brand + mv modules/repo-brand theme/assets/brand - - if: inputs.i18n + - if: inputs.lang != 'en' run: | - cp -rl modules/i18n/i18n . - cp -rl modules/i18n/includes . - cp -rl modules/i18n/theme . + cp -rl modules/repo-i18n/i18n . + cp -rl modules/repo-i18n/includes . + cp -rl modules/repo-i18n/theme . - - name: Python setup - uses: actions/setup-python@v5 + - uses: actions/setup-python@v5 with: python-version: '3.8' cache: 'pipenv' - - name: Cache files - uses: actions/cache@v4.0.2 + - uses: actions/cache/restore@v4.0.2 with: - key: ${{ inputs.ref }} + key: site-cache-${{ inputs.repo }}-${{ inputs.lang }}-${{ inputs.ref }}-${{ hashfiles('.cache/**') }} path: .cache + restore-keys: | + site-cache-${{ inputs.repo }}-${{ inputs.lang }}-${{ inputs.ref }}- + site-cache-${{ inputs.repo }}-${{ inputs.lang }}- + site-cache-${{ github.repository }}-${{ inputs.lang }} - - name: Install Python dependencies - run: | + - run: | pip install pipenv pipenv install sudo apt install pngquant - - name: Build website - env: + - if: inputs.lang != 'en' + uses: falti/dotenv-action@v1.1 + with: + path: includes/strings.${{ inputs.lang }}.env + export-variables: true + + - env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CARDS: false - CONTEXT: deploy-preview - NETLIFY: true + CONTEXT: ${{ inputs.context }} + PRODUCTION: true run: | pipenv run mkdocs build --config-file config/mkdocs.${{ inputs.lang }}.yml cp -r static/* site/ pipenv run mkdocs --version tar -czvf site-build-${{ inputs.lang }}.tar.gz site - - name: Upload tar.gz file - uses: actions/upload-artifact@v4 + - uses: actions/cache/save@v4.0.2 + with: + key: site-cache-${{ inputs.repo }}-${{ inputs.lang }}-${{ inputs.ref }}-${{ hashfiles('.cache/**') }} + path: .cache + + - uses: actions/upload-artifact@v4 with: name: site-build-${{ inputs.lang }}.tar.gz path: site-build-${{ inputs.lang }}.tar.gz diff --git a/.github/workflows/cleanup.yml b/.github/workflows/cleanup.yml index edb70251..3275c0f7 100644 --- a/.github/workflows/cleanup.yml +++ b/.github/workflows/cleanup.yml @@ -24,26 +24,10 @@ on: workflow_call: jobs: - brand: + cleanup: runs-on: ubuntu-latest steps: - uses: geekyeggo/delete-artifact@v5 with: - name: brand - failOnError: false - - i18n: - runs-on: ubuntu-latest - steps: - - uses: geekyeggo/delete-artifact@v5 - with: - name: i18n - failOnError: false - - mkdocs-material-insiders: - runs-on: ubuntu-latest - steps: - - uses: geekyeggo/delete-artifact@v5 - with: - name: mkdocs-material-insiders + name: repo-* failOnError: false diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 54f7502b..138c8f10 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -18,31 +18,35 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. -name: Cleanup Artifacts +name: Deploy Website Build on: workflow_call: inputs: - netlify: + netlify_preview: type: boolean netlify_alias: type: string + netlify_production: + type: boolean + github_pages: + type: boolean outputs: - netlify_address: - value: ${{ jobs.netlify.outputs.address }} + netlify_preview_address: + value: ${{ jobs.netlify_preview.outputs.address }} secrets: NETLIFY_TOKEN: jobs: - netlify: - if: inputs.netlify + netlify_preview: + if: inputs.netlify_preview runs-on: ubuntu-latest - outputs: - address: ${{ steps.deployment.outputs.address }} - environment: - name: preview-netlify - url: ${{ steps.deployment.outputs.address }} + permissions: + contents: read + + outputs: + address: ${{ steps.address.outputs.address }} steps: - uses: actions/download-artifact@v4 @@ -60,13 +64,104 @@ jobs: - run: | npm install netlify-cli -g - - name: Limit length of Netlify alias to 12 + - if: inputs.netlify_preview + name: Limit length of Netlify alias to 12 run: echo "SHORT_ALIAS=`echo ${{ inputs.netlify_alias }} | cut -c1-12`" >> $GITHUB_ENV - - id: deployment + - if: inputs.netlify_preview + id: deployment env: NETLIFY_SITE_ID: ${{ vars.NETLIFY_SITE }} NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_TOKEN }} run: | netlify deploy --dir=site --alias=${{ env.SHORT_ALIAS }} - echo "address=https://${{ env.SHORT_ALIAS }}--${{ vars.NETLIFY_SITE }}.netlify.app/" >> "$GITHUB_OUTPUT" + echo "DEPLOYED_ADDRESS=https://${{ env.SHORT_ALIAS }}--${{ vars.NETLIFY_SITE }}.netlify.app/" >> "$GITHUB_ENV" + + - id: address + run: | + echo "address=$DEPLOYED_ADDRESS" >> "$GITHUB_OUTPUT" + + netlify_production: + if: inputs.netlify_production + runs-on: ubuntu-latest + + permissions: + contents: read + + environment: + name: production + url: https://www.privacyguides.org + + steps: + - uses: actions/download-artifact@v4 + with: + pattern: site-build-* + merge-multiple: true + + - run: | + for file in *.tar.gz; do tar -zxf "$file"; done + wget https://raw.githubusercontent.com/privacyguides/privacyguides.org/main/netlify.toml + ls -la site/ + + - uses: actions/setup-node@v4 + + - run: | + npm install netlify-cli -g + + - id: prod_deployment + env: + NETLIFY_SITE_ID: ${{ vars.PROD_NETLIFY_SITE }} + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_TOKEN }} + run: | + netlify deploy --dir=site --prod-if-unlocked + + github_pages: + if: inputs.github_pages + runs-on: ubuntu-latest + + concurrency: + group: "pages" + + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + # Grant GITHUB_TOKEN the permissions required to make a Pages deployment + permissions: + contents: read + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + + steps: + - uses: actions/configure-pages@v5 + + - uses: actions/download-artifact@v4 + with: + pattern: site-build-* + merge-multiple: true + + - run: | + for file in *.tar.gz; do tar -zxf "$file"; done + ls -la site/ + + - uses: 1arp/create-a-file-action@0.4.4 + with: + path: site + file: index.html + content: | + + + Redirecting to English site... + + + + + - uses: actions/upload-pages-artifact@v3 + with: + path: site + + - id: deployment + uses: actions/deploy-pages@main diff --git a/.github/workflows/download-repo.yml b/.github/workflows/download-repo.yml index 730d3f0a..cc80ef9d 100644 --- a/.github/workflows/download-repo.yml +++ b/.github/workflows/download-repo.yml @@ -18,7 +18,7 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. -name: Download repository +name: Download Repository on: workflow_call: @@ -33,18 +33,16 @@ on: jobs: download: runs-on: ubuntu-latest - environment: - name: actions-ssh steps: - name: Checkout repository uses: actions/checkout@v4 with: repository: 'privacyguides/${{ inputs.repo }}' - path: ${{ inputs.repo }} + path: repo-${{ inputs.repo }} ssh-key: ${{ secrets.ACTIONS_SSH_KEY }} - uses: actions/upload-artifact@v4 with: - name: ${{ inputs.repo }} - path: ${{ inputs.repo }} + name: repo-${{ inputs.repo }} + path: repo-${{ inputs.repo }} retention-days: 1 diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml deleted file mode 100644 index f45243db..00000000 --- a/.github/workflows/pages.yml +++ /dev/null @@ -1,100 +0,0 @@ -# Copyright (c) 2022-2024 Jonah Aragon - -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: - -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. - -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -name: 🛠️ Deploy to GitHub Pages - -on: - workflow_dispatch: - release: - types: [published] - -# Allow one concurrent deployment -concurrency: - group: "pages" - cancel-in-progress: true - -env: - PYTHON_VERSION: 3.8 - -jobs: - build: - name: Build - - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: '0' - ssh-key: ${{ secrets.ACTIONS_SSH_KEY }} - submodules: 'true' - - - name: Pages setup - uses: actions/configure-pages@v4 - - - name: Python setup - uses: actions/setup-python@v5 - with: - python-version: '3.8' - cache: 'pipenv' - - - name: Cache files - uses: actions/cache@v4.0.2 - with: - key: ${{ github.ref }} - path: .cache - - - name: Install Python dependencies - run: | - pip install pipenv - pipenv install - sudo apt install pngquant - - - name: Build website - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CARDS: true - run: | - pipenv run mkdocs build --config-file config/mkdocs.en.yml - pipenv run mkdocs --version - - - name: Package website - uses: actions/upload-pages-artifact@v3 - with: - path: site - - deploy: - name: Deploy - needs: build - - # Grant GITHUB_TOKEN the permissions required to make a Pages deployment - permissions: - pages: write # to deploy to Pages - id-token: write # to verify the deployment originates from an appropriate source - - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - - runs-on: ubuntu-latest - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@main diff --git a/.github/workflows/mirror.yml b/.github/workflows/publish-mirror.yml similarity index 88% rename from .github/workflows/mirror.yml rename to .github/workflows/publish-mirror.yml index 0c71de90..be05831c 100644 --- a/.github/workflows/mirror.yml +++ b/.github/workflows/publish-mirror.yml @@ -29,9 +29,6 @@ concurrency: jobs: gitlab: runs-on: ubuntu-latest - environment: - name: actions-ssh - url: https://gitlab.com/privacyguides/privacyguides.org steps: - name: Mirror to GitLab uses: wearerequired/git-mirror-action@v1 @@ -43,9 +40,6 @@ jobs: codeberg: runs-on: ubuntu-latest - environment: - name: actions-ssh - url: https://codeberg.org/privacyguides/privacyguides.org steps: - name: Mirror to Codeberg uses: wearerequired/git-mirror-action@v1 @@ -57,9 +51,6 @@ jobs: sourcehut: runs-on: ubuntu-latest - environment: - name: actions-ssh - url: https://git.sr.ht/~jonaharagon/privacyguides.org steps: - name: Mirror to SourceHut uses: wearerequired/git-mirror-action@v1 diff --git a/.github/workflows/preview-pr.yml b/.github/workflows/publish-pr.yml similarity index 72% rename from .github/workflows/preview-pr.yml rename to .github/workflows/publish-pr.yml index a69bda34..77215167 100644 --- a/.github/workflows/preview-pr.yml +++ b/.github/workflows/publish-pr.yml @@ -18,17 +18,23 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. -name: Build Pull Request Preview +name: 📦 Publish Pull Request Preview on: pull_request_target: +concurrency: + group: ${{github.event.pull_request.head.ref}} + cancel-in-progress: true + permissions: pull-requests: write contents: read + pages: write + id-token: write jobs: - downloadSubmodules: + submodule: strategy: matrix: repo: [mkdocs-material-insiders, brand, i18n] @@ -39,14 +45,14 @@ jobs: ACTIONS_SSH_KEY: ${{ secrets.ACTIONS_SSH_KEY }} build: - needs: downloadSubmodules + needs: submodule strategy: matrix: lang: [es, fr, he, it, nl, ru, zh-Hant] - i18n: [true] + allow-error: [true] include: - lang: en - i18n: false + allow-error: false fail-fast: false permissions: contents: read @@ -55,13 +61,17 @@ jobs: ref: ${{github.event.pull_request.head.ref}} repo: ${{github.event.pull_request.head.repo.full_name}} lang: ${{ matrix.lang }} - i18n: ${{ matrix.i18n }} + continue-on-error: ${{ matrix.allow-error }} deploy: needs: build + permissions: + contents: read + pages: write + id-token: write uses: ./.github/workflows/deploy.yml with: - netlify: true + netlify_preview: true netlify_alias: ${{ github.event.pull_request.head.sha }} secrets: NETLIFY_TOKEN: ${{ secrets.NETLIFY_TOKEN }} @@ -72,13 +82,18 @@ jobs: needs: deploy runs-on: ubuntu-latest env: - address: ${{ needs.deploy.outputs.netlify_address }} + address: ${{ needs.deploy.outputs.netlify_preview_address }} steps: - - uses: thollander/actions-comment-pull-request@v2 + - uses: thollander/actions-comment-pull-request@v2.5.0 with: message: | - This is a test :eyes: ${{ env.address }} + ### Your preview is ready! + + | Name | Link | + | :---: | ---- | + | Latest commit | ${{ github.event.pull_request.head.sha }} | + | Preview | ${{ env.address }} | comment_tag: deployment cleanup: diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml new file mode 100644 index 00000000..eb035bc9 --- /dev/null +++ b/.github/workflows/publish-release.yml @@ -0,0 +1,97 @@ +# Copyright (c) 2021-2024 Jonah Aragon + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +name: 📦 Publish Release + +on: + push: + tags: + - '*' + +permissions: + contents: write + pages: write + id-token: write + +jobs: + submodule: + strategy: + matrix: + repo: [mkdocs-material-insiders, brand, i18n] + uses: ./.github/workflows/download-repo.yml + with: + repo: ${{ matrix.repo }} + secrets: + ACTIONS_SSH_KEY: ${{ secrets.ACTIONS_SSH_KEY }} + + build: + needs: submodule + strategy: + matrix: + lang: [en, es, fr, he, it, nl, ru, zh-Hant] + permissions: + contents: read + uses: ./.github/workflows/build.yml + with: + ref: ${{ github.repository }} + repo: ${{ github.ref }} + lang: ${{ matrix.lang }} + context: production + continue-on-error: false + + buildoffline: + needs: submodule + permissions: + contents: read + uses: ./.github/workflows/build-offline.yml + + release: + name: Create release notes + needs: buildoffline + runs-on: ubuntu-latest + permissions: + contents: write + + steps: + - uses: actions/download-artifact@v4 + with: + pattern: offline* + merge-multiple: true + + - name: Create release notes + uses: ncipollo/release-action@v1 + with: + generateReleaseNotes: true + artifacts: "offline.zip,offline.tar.gz,offline-privacy_guides.zim" + makeLatest: true + + deploy: + needs: build + uses: ./.github/workflows/deploy.yml + with: + netlify_production: true + github_pages: true + secrets: + NETLIFY_TOKEN: ${{ secrets.NETLIFY_TOKEN }} + + cleanup: + if: ${{ always() }} + needs: [build, buildoffline] + uses: ./.github/workflows/cleanup.yml diff --git a/.github/workflows/crowdin-upload.yml b/.github/workflows/upload-crowdin.yml similarity index 100% rename from .github/workflows/crowdin-upload.yml rename to .github/workflows/upload-crowdin.yml diff --git a/.vscode/extensions.json b/.vscode/extensions.json index f6da553c..07f7ef05 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -21,6 +21,8 @@ { "recommendations": [ "EditorConfig.EditorConfig", - "DavidAnson.vscode-markdownlint" + "DavidAnson.vscode-markdownlint", + "wholroyd.jinja", + "mikestead.dotenv" ] } diff --git a/README.md b/README.md index 4a076ed2..bba93e4e 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,8 @@ If you commit to `main` with commits signed with your SSH key, you should add yo 1. Install the [Crowdin CLI Tool](https://developer.crowdin.com/cli-tool) (`brew install crowdin`) 2. Set the `CROWDIN_PERSONAL_TOKEN` environment variable to your Crowdin personal access token 3. Run `crowdin download` in the root of this repo -4. Serve the site locally: `pipenv run mkdocs serve --config-file config/mkdocs.fr.yml` (replacing the config file with any language in [/config](/config)) +4. Import the language's environment variables: `set -a; source includes/strings.fr.env; set +a` (replacing fr with the appropriate language) +5. Serve the site locally: `pipenv run mkdocs serve --config-file config/mkdocs.fr.yml` (replacing fr with the appropriate language in [/config](/config)) Translations downloaded from Crowdin are [.gitignore](/.gitignore)'d, so any local changes to the translated site cannot be committed to this repo. Actual modifications need to be made on Crowdin. As an alternative to steps 1-3, you can copy the folders from [privacyguides/i18n](https://github.com/privacyguides/i18n) to the root of this repo to obtain the translated files. @@ -115,10 +116,9 @@ Translations downloaded from Crowdin are [.gitignore](/.gitignore)'d, so any loc It is required to create a GitHub release to publish the current site to privacyguides.org. The current `main` branch can be previewed at [https://main.staging.privacyguides.dev](https://main.staging.privacyguides.dev) prior to release. -1. Create a new tag: `git tag -s v3.X.X -m 'Some message'` - - [View existing tags](https://github.com/privacyguides/privacyguides.org/tags) - - Tag [numbering](https://semver.org): Increment the MINOR (2nd) number when making significant changes (adding/deleting pages, etc.), increment the PATCH (3rd) number when making minor changes (typos, bug fixes). Probably leave the MAJOR number at 3 until a massive revamp (v1 -> v2 was the Jekyll to MkDocs transition, v2 -> v3 was the introduction of translations). - - Consider enabling GPG tag signing by default (`git config tag.gpgSign true`) to avoid missing signatures +1. Create a new tag: `git tag -s YYYY.MM.DD -m 'Some message'` + - Tag numbering: `YYYY.MM.DD` - if two+ releases are published on the same day, append short commit sha to next release, e.g. `YYYY.MM.DD-6aa14e8` + - Enable GPG tag signing by default (`git config tag.gpgSign true`) to avoid missing signatures 2. Push the tag to GitHub: `git push --tags` 3. A GitHub Release will be automatically created and deployed to the live site. - You may wish to manually check or edit the release changelog/title after it is published for accuracy. diff --git a/config/layouts/home.yml b/config/layouts/home.yml index a859b453..6f9d2594 100644 --- a/config/layouts/home.yml +++ b/config/layouts/home.yml @@ -25,7 +25,7 @@ definitions: {{ page.meta.get("title", page.title) }} - &page_description >- - {{ config.extra.homepage_description or "A socially motivated website which provides information about protecting your online data privacy and security." }} + {{ config.extra.homepage_description }} - &og_description >- {{ page.meta.get("description", config.site_description) or "" }} diff --git a/config/mkdocs-common.yml b/config/mkdocs-common.yml index 67c83267..65d7dd4b 100644 --- a/config/mkdocs-common.yml +++ b/config/mkdocs-common.yml @@ -18,25 +18,39 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. +docs_dir: '../docs' +site_url: "https://www.privacyguides.org/" +site_dir: '../site' + +site_name: Privacy Guides +site_description: !ENV [SITE_DESCRIPTION, "Privacy Guides is your central privacy and security resource to protect yourself online."] +copyright: !ENV [FOOTER_COPYRIGHT, "© 2019 Privacy Guides and contributors."] +edit_uri: edit/main/docs/ + extra: + generator: false context: !ENV [CONTEXT, "production"] deploy: !ENV DEPLOY_ID + homepage_description: !ENV [DESCRIPTION_HOMEPAGE, "A socially motivated website which provides information about protecting your online data privacy and security."] + translation_notice: !ENV DESCRIPTION_TRANSLATION + translation_notice_cta: !ENV [DESCRIPTION_TRANSLATION_CTA, "Visit Crowdin"] + translation_notice_language: !ENV LANG_ENGLISH social: - icon: simple/mastodon link: https://mastodon.neat.computer/@privacyguides - name: Mastodon + name: !ENV [SOCIAL_MASTODON, "Mastodon"] - icon: simple/matrix link: https://matrix.to/#/#privacyguides:matrix.org - name: Matrix + name: !ENV [SOCIAL_MATRIX, "Matrix"] - icon: simple/discourse link: https://discuss.privacyguides.net/ - name: Forum + name: !ENV [SOCIAL_FORUM, "Forum"] - icon: simple/github link: https://github.com/privacyguides - name: GitHub + name: !ENV [SOCIAL_GITHUB, "GitHub"] - icon: simple/torbrowser link: http://www.xoe4vn5uwdztif6goazfbmogh6wh5jc4up35bqdflu6bkdc5cas5vjqd.onion/ - name: Hidden service + name: !ENV [SOCIAL_TOR_SITE, "Hidden service"] alternate: - name: English link: /en/ @@ -54,7 +68,7 @@ extra: link: /he/ lang: he icon: https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1ee-1f1f1.svg - - name: Italian + - name: Italiano link: /it/ lang: it icon: https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1ee-1f1f9.svg @@ -66,18 +80,42 @@ extra: link: /zh-hant/ lang: zh-Hant icon: https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1ed-1f1f0.svg - - name: Russian + - name: русский link: /ru/ lang: ru icon: https://raw.githubusercontent.com/twitter/twemoji/master/assets/svg/1f1f7-1f1fa.svg repo_url: https://github.com/privacyguides/privacyguides.org repo_name: "" +edit_uri: edit/main/docs/ theme: name: material + language: en custom_dir: ../theme logo: ../../theme/assets/brand/logos/svg/logo/privacy-guides-logo-notext-colorbg.svg + font: + text: Public Sans + code: DM Mono + palette: + - media: "(prefers-color-scheme)" + scheme: default + accent: deep purple + toggle: + icon: material/brightness-auto + name: !ENV [THEME_DARK, "Switch to dark mode"] + - media: "(prefers-color-scheme: dark)" + scheme: slate + accent: amber + toggle: + icon: material/brightness-2 + name: !ENV [THEME_LIGHT, "Switch to light mode"] + - media: "(prefers-color-scheme: light)" + scheme: default + accent: deep purple + toggle: + icon: material/brightness-5 + name: !ENV [THEME_AUTO, "Switch to system theme"] favicon: assets/brand/logos/png/favicon-32x32.png icon: repo: simple/github @@ -109,11 +147,11 @@ plugins: macros: {} meta: {} git-committers: - enabled: !ENV [NETLIFY, false] + enabled: !ENV [GITCOMMITTERS, PRODUCTION, NETLIFY, false] repository: privacyguides/privacyguides.org branch: main git-revision-date-localized: - enabled: !ENV [NETLIFY, false] + enabled: !ENV [GITREVISIONDATE, PRODUCTION, NETLIFY, false] exclude: - index.md fallback_to_build_date: true @@ -121,10 +159,10 @@ plugins: assets_exclude: - cdn.jsdelivr.net/npm/mathjax@3/* optimize: - enabled: !ENV [NETLIFY, false] + enabled: !ENV [OPTIMIZE, PRODUCTION, NETLIFY, false] typeset: {} social: - cards: !ENV [CARDS, true] + cards: !ENV [CARDS, PRODUCTION, NETLIFY, true] cards_dir: assets/img/social cards_layout_dir: config/layouts cards_layout: page @@ -147,7 +185,9 @@ markdown_extensions: pymdownx.keys: {} pymdownx.mark: {} pymdownx.tilde: {} - pymdownx.snippets: {} + pymdownx.snippets: + auto_append: + - includes/abbreviations.en.txt pymdownx.tasklist: custom_checkbox: true attr_list: {} @@ -163,3 +203,87 @@ markdown_extensions: toc: permalink: true toc_depth: 4 + +nav: + - !ENV [NAV_HOME, 'Home']: 'index.md' + - !ENV [NAV_KNOWLEDGE_BASE, 'Knowledge Base']: + - 'basics/why-privacy-matters.md' + - 'basics/threat-modeling.md' + - 'basics/common-threats.md' + - 'basics/common-misconceptions.md' + - 'basics/account-creation.md' + - 'basics/account-deletion.md' + - !ENV [NAV_TECHNOLOGY_ESSENTIALS, 'Technology Essentials']: + - 'basics/passwords-overview.md' + - 'basics/multi-factor-authentication.md' + - 'basics/email-security.md' + - 'basics/vpn-overview.md' + - !ENV [NAV_ADVANCED_TOPICS, 'Advanced Topics']: + - 'advanced/dns-overview.md' + - 'advanced/tor-overview.md' + - 'advanced/payments.md' + - 'advanced/communication-network-types.md' + - !ENV [NAV_OPERATING_SYSTEMS, 'Operating Systems']: + - 'os/android-overview.md' + - 'os/ios-overview.md' + - 'os/linux-overview.md' + - 'os/macos-overview.md' + - 'os/qubes-overview.md' + - kb-archive.md + - !ENV [NAV_RECOMMENDATIONS, 'Recommendations']: + - 'tools.md' + - !ENV [NAV_INTERNET_BROWSING, 'Internet Browsing']: + - 'tor.md' + - 'desktop-browsers.md' + - 'mobile-browsers.md' + - !ENV [NAV_PROVIDERS, 'Providers']: + - 'cloud.md' + - 'dns.md' + - 'email-aliasing.md' + - 'email.md' + - 'financial-services.md' + - 'photo-management.md' + - 'search-engines.md' + - 'vpn.md' + - !ENV [NAV_SOFTWARE, 'Software']: + - 'calendar.md' + - 'cryptocurrency.md' + - 'data-redaction.md' + - 'email-clients.md' + - 'encryption.md' + - 'file-sharing.md' + - 'frontends.md' + - 'multi-factor-authentication.md' + - 'news-aggregators.md' + - 'notebooks.md' + - 'passwords.md' + - 'productivity.md' + - 'real-time-communication.md' + - !ENV [NAV_OPERATING_SYSTEMS, 'Operating Systems']: + - 'android.md' + - 'desktop.md' + - 'router.md' + - !ENV [NAV_ADVANCED, 'Advanced']: + - 'device-integrity.md' + - !ENV [NAV_ABOUT, 'About']: + - 'about/index.md' + - 'about/criteria.md' + - 'about/notices.md' + - 'about/privacy-policy.md' + - !ENV [NAV_COMMUNITY, 'Community']: + - 'about/donate.md' + - !ENV [NAV_ONLINE_SERVICES, 'Online Services']: 'about/services.md' + - !ENV [NAV_CODE_OF_CONDUCT, 'Code of Conduct']: 'CODE_OF_CONDUCT.md' + - 'about/privacytools.md' + - !ENV [NAV_CONTRIBUTING, 'Contributing']: + - !ENV [NAV_WRITING_GUIDE, 'Writing Guide']: + - 'meta/writing-style.md' + - 'meta/admonitions.md' + - 'meta/brand.md' + - 'meta/translations.md' + - !ENV [NAV_TECHNICAL_GUIDES, 'Technical Guides']: + - 'meta/uploading-images.md' + - 'meta/git-recommendations.md' + - !ENV [NAV_CHANGELOG, 'Changelog']: 'https://github.com/privacyguides/privacyguides.org/releases' + - !ENV [NAV_FORUM, 'Forum']: 'https://discuss.privacyguides.net/' + - !ENV [NAV_BLOG, 'Blog']: 'https://blog.privacyguides.org/' diff --git a/config/mkdocs-offline.yml b/config/mkdocs-offline.yml index 384dc69f..55173031 100644 --- a/config/mkdocs-offline.yml +++ b/config/mkdocs-offline.yml @@ -1,4 +1,4 @@ -# Copyright (c) 2023 Jonah Aragon +# Copyright (c) 2023-2024 Jonah Aragon # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to @@ -19,53 +19,18 @@ # IN THE SOFTWARE. INHERIT: mkdocs-common.yml -docs_dir: '../docs' -site_url: "https://www.privacyguides.org/" -site_dir: '../site' -site_name: Privacy Guides -site_description: | - Privacy Guides is your central privacy and security resource to protect yourself online. -copyright: | - Privacy Guides is a non-profit, socially motivated website that provides information for protecting your data security and privacy.
- We do not make money from recommending certain products, and we do not use affiliate links.
- © 2019 - 2024 Privacy Guides and contributors. - - Content licensed under CC BY-ND 4.0. +# Disable any GitHub integrations repo_url: "" extra: - generator: false - analytics: false + # Disable language switcher alternate: false offline: true theme: - language: en - # this logo needs to be set separately because the relative path is different + # OFFLINE ONLY: this logo needs to be set separately because the relative path is different logo: ../theme/assets/brand/logos/svg/logo/privacy-guides-logo-notext-colorbg.svg - font: - text: Public Sans - code: DM Mono - palette: - - media: "(prefers-color-scheme)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-auto - name: "Switch to dark mode" - - media: "(prefers-color-scheme: dark)" - scheme: slate - accent: amber - toggle: - icon: material/brightness-2 - name: "Switch to light mode" - - media: "(prefers-color-scheme: light)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-5 - name: "Switch to system theme" features: - navigation.tabs - navigation.sections @@ -80,88 +45,4 @@ plugins: social: enabled: false -markdown_extensions: - pymdownx.snippets: - auto_append: - - includes/abbreviations.en.txt - -nav: - - Home: 'index.md' - - Knowledge Base: - - 'basics/why-privacy-matters.md' - - 'basics/threat-modeling.md' - - 'basics/common-threats.md' - - 'basics/common-misconceptions.md' - - 'basics/account-creation.md' - - 'basics/account-deletion.md' - - Technology Essentials: - - 'basics/passwords-overview.md' - - 'basics/multi-factor-authentication.md' - - 'basics/email-security.md' - - 'basics/vpn-overview.md' - - Advanced Topics: - - 'advanced/dns-overview.md' - - 'advanced/tor-overview.md' - - 'advanced/payments.md' - - 'advanced/communication-network-types.md' - - Operating Systems: - - 'os/android-overview.md' - - 'os/linux-overview.md' - - 'os/qubes-overview.md' - - kb-archive.md - - Recommendations: - - 'tools.md' - - Internet Browsing: - - 'tor.md' - - 'desktop-browsers.md' - - 'mobile-browsers.md' - - Providers: - - 'cloud.md' - - 'dns.md' - - 'email.md' - - 'email-aliasing.md' - - 'financial-services.md' - - 'photo-management.md' - - 'search-engines.md' - - 'vpn.md' - - Software: - - 'calendar.md' - - 'cryptocurrency.md' - - 'data-redaction.md' - - 'email-clients.md' - - 'encryption.md' - - 'file-sharing.md' - - 'frontends.md' - - 'multi-factor-authentication.md' - - 'news-aggregators.md' - - 'notebooks.md' - - 'passwords.md' - - 'productivity.md' - - 'real-time-communication.md' - - Operating Systems: - - 'android.md' - - 'desktop.md' - - 'router.md' - - About: - - 'about/index.md' - - 'about/criteria.md' - - 'about/statistics.md' - - 'about/notices.md' - - 'about/privacy-policy.md' - - Community: - - 'about/donate.md' - - Online Services: 'about/services.md' - - Code of Conduct: 'CODE_OF_CONDUCT.md' - - 'about/privacytools.md' - - Contributing: - - Writing Guide: - - 'meta/writing-style.md' - - 'meta/admonitions.md' - - 'meta/brand.md' - - 'meta/translations.md' - - Technical Guides: - - 'meta/uploading-images.md' - - 'meta/git-recommendations.md' - - Changelog: 'https://github.com/privacyguides/privacyguides.org/releases' - - Forum: 'https://discuss.privacyguides.net/' - - Blog: 'https://blog.privacyguides.org/' +# Edit the offline-mode navbar in mkdocs-common.yml diff --git a/config/mkdocs.en.yml b/config/mkdocs.en.yml index f0dc606e..cd7bf5d0 100644 --- a/config/mkdocs.en.yml +++ b/config/mkdocs.en.yml @@ -19,136 +19,9 @@ # IN THE SOFTWARE. INHERIT: mkdocs-common.yml -docs_dir: '../docs' site_url: "https://www.privacyguides.org/en/" site_dir: '../site/en' -site_name: Privacy Guides -site_description: | - Privacy Guides is your central privacy and security resource to protect yourself online. -copyright: | - Privacy Guides is a non-profit, socially motivated website that provides information for protecting your data security and privacy.
- We do not make money from recommending certain products, and we do not use affiliate links.
- © 2019 - 2024 Privacy Guides and contributors. - - Content licensed under CC BY-ND 4.0. -edit_uri: edit/main/docs/ - -extra: - generator: false - theme: - language: en # ENGLISH ONLY: this logo needs to be set separately because the relative path is different logo: ../theme/assets/brand/logos/svg/logo/privacy-guides-logo-notext-colorbg.svg - font: - text: Public Sans - code: DM Mono - palette: - - media: "(prefers-color-scheme)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-auto - name: "Switch to dark mode" - - media: "(prefers-color-scheme: dark)" - scheme: slate - accent: amber - toggle: - icon: material/brightness-2 - name: "Switch to light mode" - - media: "(prefers-color-scheme: light)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-5 - name: "Switch to system theme" - -markdown_extensions: - pymdownx.snippets: - auto_append: - - includes/abbreviations.en.txt - -nav: - - Home: 'index.md' - - Knowledge Base: - - 'basics/why-privacy-matters.md' - - 'basics/threat-modeling.md' - - 'basics/common-threats.md' - - 'basics/common-misconceptions.md' - - 'basics/account-creation.md' - - 'basics/account-deletion.md' - - Technology Essentials: - - 'basics/passwords-overview.md' - - 'basics/multi-factor-authentication.md' - - 'basics/email-security.md' - - 'basics/vpn-overview.md' - - Advanced Topics: - - 'advanced/dns-overview.md' - - 'advanced/tor-overview.md' - - 'advanced/payments.md' - - 'advanced/communication-network-types.md' - - Operating Systems: - - 'os/android-overview.md' - - 'os/ios-overview.md' - - 'os/linux-overview.md' - - 'os/macos-overview.md' - - 'os/qubes-overview.md' - - kb-archive.md - - Recommendations: - - 'tools.md' - - Internet Browsing: - - 'tor.md' - - 'desktop-browsers.md' - - 'mobile-browsers.md' - - Providers: - - 'cloud.md' - - 'dns.md' - - 'email-aliasing.md' - - 'email.md' - - 'financial-services.md' - - 'photo-management.md' - - 'search-engines.md' - - 'vpn.md' - - Software: - - 'calendar.md' - - 'cryptocurrency.md' - - 'data-redaction.md' - - 'email-clients.md' - - 'encryption.md' - - 'file-sharing.md' - - 'frontends.md' - - 'multi-factor-authentication.md' - - 'news-aggregators.md' - - 'notebooks.md' - - 'passwords.md' - - 'productivity.md' - - 'real-time-communication.md' - - Operating Systems: - - 'android.md' - - 'desktop.md' - - 'router.md' - - Advanced: - - 'device-integrity.md' - - About: - - 'about/index.md' - - 'about/criteria.md' - - 'about/notices.md' - - 'about/privacy-policy.md' - - Community: - - 'about/donate.md' - - Online Services: 'about/services.md' - - Code of Conduct: 'CODE_OF_CONDUCT.md' - - 'about/privacytools.md' - - Contributing: - - Writing Guide: - - 'meta/writing-style.md' - - 'meta/admonitions.md' - - 'meta/brand.md' - - 'meta/translations.md' - - Technical Guides: - - 'meta/uploading-images.md' - - 'meta/git-recommendations.md' - - Changelog: 'https://github.com/privacyguides/privacyguides.org/releases' - - Forum: 'https://discuss.privacyguides.net/' - - Blog: 'https://blog.privacyguides.org/' diff --git a/config/mkdocs.es.yml b/config/mkdocs.es.yml index 38b0b701..f47c0bbd 100644 --- a/config/mkdocs.es.yml +++ b/config/mkdocs.es.yml @@ -23,130 +23,12 @@ docs_dir: '../i18n/es' site_url: "https://www.privacyguides.org/es/" site_dir: '../site/es' -site_name: Privacy Guides -site_description: | - Privacy Guides es tu recurso central de privacidad y seguridad para protegerte en línea. -copyright: | - Privacy Guides es un sitio web sin fines lucrativos y de motivación social que ofrece información para proteger la seguridad y privacidad de sus datos.
- No ganamos dinero por recomendar determinados productos y no utilizamos enlaces de afiliados.
- © 2019 - 2024 Privacy Guides y colaboradores. - - Contenido bajo licencia CC BY-ND 4.0. edit_uri: edit/main/i18n/es/ -extra: - generator: false - theme: language: es - font: - text: Public Sans - code: DM Mono - palette: - - media: "(prefers-color-scheme)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-auto - name: "Cambiar a modo oscuro" - - media: "(prefers-color-scheme: dark)" - scheme: slate - accent: amber - toggle: - icon: material/brightness-2 - name: "Cambiar a modo claro" - - media: "(prefers-color-scheme: light)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-5 - name: "Cambiar al tema del sistema" markdown_extensions: pymdownx.snippets: - auto_append: + auto_append: - includes/abbreviations.es.txt - -nav: - - Inicio: 'index.md' - - Base de conocimientos: - - 'basics/why-privacy-matters.md' - - 'basics/threat-modeling.md' - - 'basics/common-threats.md' - - 'basics/common-misconceptions.md' - - 'basics/account-creation.md' - - 'basics/account-deletion.md' - - "Aspectos tecnológicos esenciales": - - 'basics/passwords-overview.md' - - 'basics/multi-factor-authentication.md' - - 'basics/email-security.md' - - 'basics/vpn-overview.md' - - Temas avanzados: - - 'advanced/dns-overview.md' - - 'advanced/tor-overview.md' - - 'advanced/payments.md' - - 'advanced/communication-network-types.md' - - Sistemas operativos: - - 'os/android-overview.md' - - 'os/ios-overview.md' - - 'os/linux-overview.md' - - 'os/macos-overview.md' - - 'os/qubes-overview.md' - - kb-archive.md - - Recomendaciones: - - 'tools.md' - - "Navegación por Internet": - - 'tor.md' - - 'desktop-browsers.md' - - 'mobile-browsers.md' - - Proveedores: - - 'cloud.md' - - 'dns.md' - - 'email-aliasing.md' - - 'email.md' - - 'financial-services.md' - - 'photo-management.md' - - 'search-engines.md' - - 'vpn.md' - - Software: - - 'calendar.md' - - 'cryptocurrency.md' - - 'data-redaction.md' - - 'email-clients.md' - - 'encryption.md' - - 'file-sharing.md' - - 'frontends.md' - - 'multi-factor-authentication.md' - - 'news-aggregators.md' - - 'notebooks.md' - - 'passwords.md' - - 'productivity.md' - - 'real-time-communication.md' - - Sistemas operativos: - - 'android.md' - - 'desktop.md' - - 'router.md' - - Advanced: - - 'device-integrity.md' - - Acerca de: - - 'about/index.md' - - 'about/criteria.md' - - 'about/notices.md' - - 'about/privacy-policy.md' - - Comunidad: - - 'about/donate.md' - - Servicios en línea: 'about/services.md' - - "Código de conducta": 'CODE_OF_CONDUCT.md' - - 'about/privacytools.md' - - Contribuir: - - "Guía de redacción": - - 'meta/writing-style.md' - - 'meta/admonitions.md' - - 'meta/brand.md' - - 'meta/translations.md' - - "Guías técnicas": - - 'meta/uploading-images.md' - - 'meta/git-recommendations.md' - - "Registro de cambios": 'https://github.com/privacyguides/privacyguides.org/releases' - - Foro: 'https://discuss.privacyguides.net/' - - Blog: 'https://blog.privacyguides.org/' diff --git a/config/mkdocs.fr.yml b/config/mkdocs.fr.yml index e51f1972..8ff85401 100644 --- a/config/mkdocs.fr.yml +++ b/config/mkdocs.fr.yml @@ -23,130 +23,12 @@ docs_dir: '../i18n/fr' site_url: "https://www.privacyguides.org/fr/" site_dir: '../site/fr' -site_name: Privacy Guides -site_description: | - Privacy Guides est votre ressource centrale en matière de vie privée et de sécurité pour vous protéger en ligne. -copyright: | - Privacy Guides est un site web à but non lucratif et à vocation sociale qui fournit des informations pour protéger la sécurité de vos données et votre vie privée.
- Nous ne gagnons pas d'argent en recommandant certains produits et nous n'utilisons pas de liens d'affiliation.
- © 2019 - 2024 Privacy Guides et contributeurs. - - Contenu sous licence CC BY-ND 4.0. edit_uri: edit/main/i18n/fr/ -extra: - generator: false - theme: language: fr - font: - text: Public Sans - code: DM Mono - palette: - - media: "(prefers-color-scheme)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-auto - name: "Basculer en mode sombre" - - media: "(prefers-color-scheme: dark)" - scheme: slate - accent: amber - toggle: - icon: material/brightness-2 - name: "Basculer en mode clair" - - media: "(prefers-color-scheme: light)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-5 - name: "Basculer vers le thème du système" markdown_extensions: pymdownx.snippets: - auto_append: + auto_append: - includes/abbreviations.fr.txt - -nav: - - Accueil: 'index.md' - - Base de connaissances: - - 'basics/why-privacy-matters.md' - - 'basics/threat-modeling.md' - - 'basics/common-threats.md' - - 'basics/common-misconceptions.md' - - 'basics/account-creation.md' - - 'basics/account-deletion.md' - - Les essentiels de la technologie: - - 'basics/passwords-overview.md' - - 'basics/multi-factor-authentication.md' - - 'basics/email-security.md' - - 'basics/vpn-overview.md' - - "Sujets avancés": - - 'advanced/dns-overview.md' - - 'advanced/tor-overview.md' - - 'advanced/payments.md' - - 'advanced/communication-network-types.md' - - "Systèmes d'exploitation": - - 'os/android-overview.md' - - 'os/ios-overview.md' - - 'os/linux-overview.md' - - 'os/macos-overview.md' - - 'os/qubes-overview.md' - - kb-archive.md - - Recommandations: - - 'tools.md' - - Navigation internet: - - 'tor.md' - - 'desktop-browsers.md' - - 'mobile-browsers.md' - - "Fournisseurs": - - 'cloud.md' - - 'dns.md' - - 'email-aliasing.md' - - 'email.md' - - 'financial-services.md' - - 'photo-management.md' - - 'search-engines.md' - - 'vpn.md' - - "Logiciels": - - 'calendar.md' - - 'cryptocurrency.md' - - 'data-redaction.md' - - 'email-clients.md' - - 'encryption.md' - - 'file-sharing.md' - - 'frontends.md' - - 'multi-factor-authentication.md' - - 'news-aggregators.md' - - 'notebooks.md' - - 'passwords.md' - - 'productivity.md' - - 'real-time-communication.md' - - "Systèmes d'exploitation": - - 'android.md' - - 'desktop.md' - - 'router.md' - - "Advanced": - - 'device-integrity.md' - - "À propos": - - 'about/index.md' - - 'about/criteria.md' - - 'about/notices.md' - - 'about/privacy-policy.md' - - "Communauté": - - 'about/donate.md' - - "Services en ligne": 'about/services.md' - - "Code de conduite": 'CODE_OF_CONDUCT.md' - - 'about/privacytools.md' - - "Contribuer": - - "Guide de rédaction": - - 'meta/writing-style.md' - - 'meta/admonitions.md' - - 'meta/brand.md' - - 'meta/translations.md' - - "Guides techniques": - - 'meta/uploading-images.md' - - 'meta/git-recommendations.md' - - Journal des modifications: 'https://github.com/privacyguides/privacyguides.org/releases' - - Forum: 'https://discuss.privacyguides.net/' - - Blog: 'https://blog.privacyguides.org/' diff --git a/config/mkdocs.he.yml b/config/mkdocs.he.yml index 5be48ff7..33fc6949 100644 --- a/config/mkdocs.he.yml +++ b/config/mkdocs.he.yml @@ -23,20 +23,8 @@ docs_dir: '../i18n/he' site_url: "https://www.privacyguides.org/he/" site_dir: '../site/he' -site_name: Privacy Guides -site_description: | - Privacy Guides (מדריכי פרטיות) הם משאב הפרטיות והאבטחה המרכזי שלכם כדי להגן על עצמכם באופן מקוון. -copyright: | - Privacy Guides is a non-profit, socially motivated website that provides information for protecting your data security and privacy.
- We do not make money from recommending certain products, and we do not use affiliate links.
- © 2019 - 2024 Privacy Guides and contributors. - - Content licensed under CC BY-ND 4.0. edit_uri: edit/main/i18n/he/ -extra: - generator: false - extra_css: - assets/stylesheets/extra.css?v=3.2.0 - assets/stylesheets/lang-he.css?v=3.4.0 @@ -46,111 +34,8 @@ theme: font: text: Open Sans code: Cousine - palette: - - media: "(prefers-color-scheme)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-auto - name: "עבור למצב כהה" - - media: "(prefers-color-scheme: dark)" - scheme: slate - accent: amber - toggle: - icon: material/brightness-2 - name: "עבור למצב בהיר" - - media: "(prefers-color-scheme: light)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-5 - name: "עבור לערכת הנושא של המערכת" markdown_extensions: pymdownx.snippets: - auto_append: + auto_append: - includes/abbreviations.he.txt - -nav: - - "דף הבית": 'index.md' - - "ידע בסיסי": - - 'basics/why-privacy-matters.md' - - 'basics/threat-modeling.md' - - 'basics/common-threats.md' - - 'basics/common-misconceptions.md' - - 'basics/account-creation.md' - - 'basics/account-deletion.md' - - "יסודות הטכנולוגיה": - - 'basics/passwords-overview.md' - - 'basics/multi-factor-authentication.md' - - 'basics/email-security.md' - - 'basics/vpn-overview.md' - - "נושאים מתקדמים": - - 'advanced/dns-overview.md' - - 'advanced/tor-overview.md' - - 'advanced/payments.md' - - 'advanced/communication-network-types.md' - - "מערכות הפעלה": - - 'os/android-overview.md' - - 'os/ios-overview.md' - - 'os/linux-overview.md' - - 'os/macos-overview.md' - - 'os/qubes-overview.md' - - kb-archive.md - - "המלצות": - - 'tools.md' - - "גלישה באינטרנט": - - 'tor.md' - - 'desktop-browsers.md' - - 'mobile-browsers.md' - - "ספקים": - - 'cloud.md' - - 'dns.md' - - 'email-aliasing.md' - - 'email.md' - - 'financial-services.md' - - 'photo-management.md' - - 'search-engines.md' - - 'vpn.md' - - "תוכנה": - - 'calendar.md' - - 'cryptocurrency.md' - - 'data-redaction.md' - - 'email-clients.md' - - 'encryption.md' - - 'file-sharing.md' - - 'frontends.md' - - 'multi-factor-authentication.md' - - 'news-aggregators.md' - - 'notebooks.md' - - 'passwords.md' - - 'productivity.md' - - 'real-time-communication.md' - - "מערכות הפעלה": - - 'android.md' - - 'desktop.md' - - 'router.md' - - "Advanced": - - 'device-integrity.md' - - "על אודות": - - 'about/index.md' - - 'about/criteria.md' - - 'about/notices.md' - - 'about/privacy-policy.md' - - Community: - - 'about/donate.md' - - Online Services: 'about/services.md' - - Code of Conduct: 'CODE_OF_CONDUCT.md' - - 'about/privacytools.md' - - Contributing: - - Writing Guide: - - 'meta/writing-style.md' - - 'meta/admonitions.md' - - 'meta/brand.md' - - 'meta/translations.md' - - Technical Guides: - - 'meta/uploading-images.md' - - 'meta/git-recommendations.md' - - "יומן שינויים": 'https://github.com/privacyguides/privacyguides.org/releases' - - "פורום": 'https://discuss.privacyguides.net/' - - "בלוג": 'https://blog.privacyguides.org/' diff --git a/config/mkdocs.it.yml b/config/mkdocs.it.yml index f22f0f56..5694891a 100644 --- a/config/mkdocs.it.yml +++ b/config/mkdocs.it.yml @@ -23,130 +23,12 @@ docs_dir: '../i18n/it' site_url: "https://www.privacyguides.org/it/" site_dir: '../site/it' -site_name: Privacy Guides -site_description: | - Privacy Guides è la risorsa centrale per la privacy e la sicurezza per proteggersi online. -copyright: | - Privacy Guides è un sito web senza fini di lucro e a sfondo sociale che fornisce informazioni per proteggere la sicurezza e la privacy dei dati.
- Non guadagniamo denaro consigliando determinati prodotti e non utilizziamo link di affiliazione.
- © 2019 - 2024 Privacy Guides e collaboratori. - - Contenuto sotto licenza CC BY-ND 4.0. edit_uri: edit/main/i18n/it/ -extra: - generator: false - theme: language: it - font: - text: Public Sans - code: DM Mono - palette: - - media: "(prefers-color-scheme)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-auto - name: "Passa al tema scuro" - - media: "(prefers-color-scheme: dark)" - scheme: slate - accent: amber - toggle: - icon: material/brightness-2 - name: "Passa al tema chiaro" - - media: "(prefers-color-scheme: light)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-5 - name: "Passa al tema di sistema" markdown_extensions: pymdownx.snippets: - auto_append: + auto_append: - includes/abbreviations.it.txt - -nav: - - Pagina iniziale: 'index.md' - - Conoscenze di base: - - 'basics/why-privacy-matters.md' - - 'basics/threat-modeling.md' - - 'basics/common-threats.md' - - 'basics/common-misconceptions.md' - - 'basics/account-creation.md' - - 'basics/account-deletion.md' - - Elementi essenziali della tecnologia: - - 'basics/passwords-overview.md' - - 'basics/multi-factor-authentication.md' - - 'basics/email-security.md' - - 'basics/vpn-overview.md' - - Argomenti avanzati: - - 'advanced/dns-overview.md' - - 'advanced/tor-overview.md' - - 'advanced/payments.md' - - 'advanced/communication-network-types.md' - - Sistemi operativi: - - 'os/android-overview.md' - - 'os/ios-overview.md' - - 'os/linux-overview.md' - - 'os/macos-overview.md' - - 'os/qubes-overview.md' - - kb-archive.md - - Raccomandazioni: - - 'tools.md' - - Navigazione su Internet: - - 'tor.md' - - 'desktop-browsers.md' - - 'mobile-browsers.md' - - Fornitori: - - 'cloud.md' - - 'dns.md' - - 'email-aliasing.md' - - 'email.md' - - 'financial-services.md' - - 'photo-management.md' - - 'search-engines.md' - - 'vpn.md' - - Software: - - 'calendar.md' - - 'cryptocurrency.md' - - 'data-redaction.md' - - 'email-clients.md' - - 'encryption.md' - - 'file-sharing.md' - - 'frontends.md' - - 'multi-factor-authentication.md' - - 'news-aggregators.md' - - 'notebooks.md' - - 'passwords.md' - - 'productivity.md' - - 'real-time-communication.md' - - Sistemi operativi: - - 'android.md' - - 'desktop.md' - - 'router.md' - - "Advanced": - - 'device-integrity.md' - - Informazioni: - - 'about/index.md' - - 'about/criteria.md' - - 'about/notices.md' - - 'about/privacy-policy.md' - - Comunità: - - 'about/donate.md' - - Servizi online: 'about/services.md' - - Codice di condotta: 'CODE_OF_CONDUCT.md' - - 'about/privacytools.md' - - Contribuisci: - - Guida alla scrittura: - - 'meta/writing-style.md' - - 'meta/admonitions.md' - - 'meta/brand.md' - - 'meta/translations.md' - - Guide tecniche: - - 'meta/uploading-images.md' - - 'meta/git-recommendations.md' - - Registro delle modifiche: 'https://github.com/privacyguides/privacyguides.org/releases' - - Forum: 'https://discuss.privacyguides.net/' - - Blog: 'https://blog.privacyguides.org/' diff --git a/config/mkdocs.nl.yml b/config/mkdocs.nl.yml index 368e8dff..642694b9 100644 --- a/config/mkdocs.nl.yml +++ b/config/mkdocs.nl.yml @@ -23,130 +23,12 @@ docs_dir: '../i18n/nl' site_url: "https://www.privacyguides.org/nl/" site_dir: '../site/nl' -site_name: Privacy Guides -site_description: | - Privacy Guides is jouw centrale bron voor privacy en beveiliging om jezelf online te beschermen. -copyright: | - Privacy Guides is een non-profit, sociaal gemotiveerde website die informatie biedt voor de bescherming van jouw gegevensbeveiliging en privacy.
- Wij verdienen geen geld met het aanbevelen van bepaalde producten, en wij maken geen gebruik van affiliate links.
- © 2019 - 2024 Privacy Guides en medewerkers. - - Inhoud gelicentieerd onder CC BY-ND 4.0. edit_uri: edit/main/i18n/nl/ -extra: - generator: false - theme: language: nl - font: - text: Public Sans - code: DM Mono - palette: - - media: "(prefers-color-scheme)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-auto - name: "Verander naar donker thema" - - media: "(prefers-color-scheme: dark)" - scheme: slate - accent: amber - toggle: - icon: material/brightness-2 - name: "Verander naar licht thema" - - media: "(prefers-color-scheme: light)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-5 - name: "Verander naar systeem thema" markdown_extensions: pymdownx.snippets: - auto_append: + auto_append: - includes/abbreviations.nl.txt - -nav: - - Home: 'index.md' - - Kennisbank: - - 'basics/why-privacy-matters.md' - - 'basics/threat-modeling.md' - - 'basics/common-threats.md' - - 'basics/common-misconceptions.md' - - 'basics/account-creation.md' - - 'basics/account-deletion.md' - - Technologie essenties: - - 'basics/passwords-overview.md' - - 'basics/multi-factor-authentication.md' - - 'basics/email-security.md' - - 'basics/vpn-overview.md' - - Gevorderde onderwerpen: - - 'advanced/dns-overview.md' - - 'advanced/tor-overview.md' - - 'advanced/payments.md' - - 'advanced/communication-network-types.md' - - Besturings systemen: - - 'os/android-overview.md' - - 'os/ios-overview.md' - - 'os/linux-overview.md' - - 'os/macos-overview.md' - - 'os/qubes-overview.md' - - kb-archive.md - - Recommendaties: - - 'tools.md' - - Surfen op het internet: - - 'tor.md' - - 'desktop-browsers.md' - - 'mobile-browsers.md' - - Providers: - - 'cloud.md' - - 'dns.md' - - 'email-aliasing.md' - - 'email.md' - - 'financial-services.md' - - 'photo-management.md' - - 'search-engines.md' - - 'vpn.md' - - Software: - - 'calendar.md' - - 'cryptocurrency.md' - - 'data-redaction.md' - - 'email-clients.md' - - 'encryption.md' - - 'file-sharing.md' - - 'frontends.md' - - 'multi-factor-authentication.md' - - 'news-aggregators.md' - - 'notebooks.md' - - 'passwords.md' - - 'productivity.md' - - 'real-time-communication.md' - - Besturings systemen: - - 'android.md' - - 'desktop.md' - - 'router.md' - - "Advanced": - - 'device-integrity.md' - - Over ons: - - 'about/index.md' - - 'about/criteria.md' - - 'about/notices.md' - - 'about/privacy-policy.md' - - Gemeenschap: - - 'about/donate.md' - - Online diensten: 'about/services.md' - - Gedragscode: 'CODE_OF_CONDUCT.md' - - 'about/privacytools.md' - - Bijdragen: - - Schrijfgids: - - 'meta/writing-style.md' - - 'meta/admonitions.md' - - 'meta/brand.md' - - 'meta/translations.md' - - Technische gids: - - 'meta/uploading-images.md' - - 'meta/git-recommendations.md' - - Wijzigingslogboek: 'https://github.com/privacyguides/privacyguides.org/releases' - - Forum: 'https://discuss.privacyguides.net/' - - Blog: 'https://blog.privacyguides.org/' diff --git a/config/mkdocs.ru.yml b/config/mkdocs.ru.yml index fb225c8b..f007a593 100644 --- a/config/mkdocs.ru.yml +++ b/config/mkdocs.ru.yml @@ -23,132 +23,16 @@ docs_dir: '../i18n/ru' site_url: "https://www.privacyguides.org/ru/" site_dir: '../site/ru' -site_name: Privacy Guides -site_description: | - Privacy Guides - это ваш главный ресурс по конфиденциальности и безопасности для защиты себя в Интернете. -copyright: | - Privacy Guides - некоммерческий сайт, предоставляющий информацию по защите безопасности и конфиденциальности ваших данных.
- Мы не зарабатываем на рекомендациях определенных продуктов и не используем партнерские ссылки.
- © 2019 - 2023 Privacy Guides и поддерживающие. - - Содержание доступно под лицензией CC BY-ND 4.0. edit_uri: edit/main/docs/ -extra: - generator: false - extra_css: - assets/stylesheets/extra.css?v=3.2.0 - assets/stylesheets/lang-ru.css?v=3.13.0 theme: language: ru - font: - text: Public Sans - code: DM Mono - palette: - - media: "(prefers-color-scheme)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-auto - name: "Включить тёмную тему" - - media: "(prefers-color-scheme: dark)" - scheme: slate - accent: amber - toggle: - icon: material/brightness-2 - name: "Включить светлую тему" - - media: "(prefers-color-scheme: light)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-5 - name: "Переключиться на тему системы" markdown_extensions: pymdownx.snippets: auto_append: - includes/abbreviations.ru.txt - -nav: - - Главная: 'index.md' - - База знаний: - - 'basics/why-privacy-matters.md' - - 'basics/threat-modeling.md' - - 'basics/common-threats.md' - - 'basics/common-misconceptions.md' - - 'basics/account-creation.md' - - 'basics/account-deletion.md' - - Технологические аспекты: - - 'basics/passwords-overview.md' - - 'basics/multi-factor-authentication.md' - - 'basics/email-security.md' - - 'basics/vpn-overview.md' - - Дополнительные темы: - - 'advanced/dns-overview.md' - - 'advanced/tor-overview.md' - - 'advanced/payments.md' - - 'advanced/communication-network-types.md' - - Операционные системы: - - 'os/android-overview.md' - - 'os/linux-overview.md' - - 'os/qubes-overview.md' - - kb-archive.md - - Рекомендации: - - 'tools.md' - - Интернет-браузинг: - - 'tor.md' - - 'desktop-browsers.md' - - 'mobile-browsers.md' - - Провайдеры: - - 'cloud.md' - - 'dns.md' - - 'email-aliasing.md' - - 'email.md' - - 'financial-services.md' - - 'photo-management.md' - - 'search-engines.md' - - 'vpn.md' - - Программное обеспечение: - - 'calendar.md' - - 'cryptocurrency.md' - - 'data-redaction.md' - - 'email-clients.md' - - 'encryption.md' - - 'file-sharing.md' - - 'frontends.md' - - 'multi-factor-authentication.md' - - 'news-aggregators.md' - - 'notebooks.md' - - 'passwords.md' - - 'productivity.md' - - 'real-time-communication.md' - - Операционные системы: - - 'android.md' - - 'desktop.md' - - 'router.md' - - Advanced: - - 'device-integrity.md' - - О сайте: - - 'about/index.md' - - 'about/criteria.md' - - 'about/notices.md' - - 'about/privacy-policy.md' - - Сообщество: - - 'about/donate.md' - - Онлайн-сервисы: 'about/services.md' - - Правила поведения: 'CODE_OF_CONDUCT.md' - - 'about/privacytools.md' - - Помощь проекту: - - Руководство по написанию: - - 'meta/writing-style.md' - - 'meta/admonitions.md' - - 'meta/brand.md' - - 'meta/translations.md' - - Технические руководства: - - 'meta/uploading-images.md' - - 'meta/git-recommendations.md' - - Список изменений: 'https://github.com/privacyguides/privacyguides.org/releases' - - Форум: 'https://discuss.privacyguides.net/' - - Блог: 'https://blog.privacyguides.org/' diff --git a/config/mkdocs.zh-Hant.yml b/config/mkdocs.zh-Hant.yml index f41d5cbc..7c2616b5 100644 --- a/config/mkdocs.zh-Hant.yml +++ b/config/mkdocs.zh-Hant.yml @@ -23,20 +23,8 @@ docs_dir: '../i18n/zh-Hant' site_url: "https://www.privacyguides.org/zh-Hant/" site_dir: '../site/zh-Hant' -site_name: Privacy Guides -site_description: | - Privacy Guides 是您重要的網路隱私與安全資源。 -copyright: | - Privacy Guides 是一個非營利、社會導向的網站,旨在提供有關資訊以確保您的資料安全和隱私。
- 我們不會通過推薦某些產品來賺錢,我們也不會使用推廣回贈鏈接。 - © 2019 - 2024 Privacy Guides 和貢獻者。 - - 根據CC BY-ND 4.0授權的內容。 CC BY-ND 4.0. edit_uri: edit/main/i18n/zh-Hant/ -extra: - generator: false - extra_css: - assets/stylesheets/extra.css?v=3.2.0 - assets/stylesheets/lang-zh-Hant.css?v=3.13.0 @@ -46,109 +34,8 @@ theme: font: text: Noto Sans TC code: Noto Sans TC - palette: - - media: "(prefers-color-scheme)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-auto - name: "切換至深色模式" - - media: "(prefers-color-scheme: dark)" - scheme: slate - accent: amber - toggle: - icon: material/brightness-2 - name: "切換至淺色模式" - - media: "(prefers-color-scheme: light)" - scheme: default - accent: deep purple - toggle: - icon: material/brightness-5 - name: "切換到系統主題" markdown_extensions: pymdownx.snippets: - auto_append: + auto_append: - includes/abbreviations.zh-Hant.txt - -nav: - - 首頁: 'index.md' - - 知識庫: - - 'basics/why-privacy-matters.md' - - 'basics/threat-modeling.md' - - 'basics/common-threats.md' - - 'basics/common-misconceptions.md' - - 'basics/account-creation.md' - - 'basics/account-deletion.md' - - 技術精華: - - 'basics/passwords-overview.md' - - 'basics/multi-factor-authentication.md' - - 'basics/email-security.md' - - 'basics/vpn-overview.md' - - 進階主題: - - 'advanced/dns-overview.md' - - 'advanced/tor-overview.md' - - 'advanced/payments.md' - - 'advanced/communication-network-types.md' - - 作業系統: - - 'os/android-overview.md' - - 'os/linux-overview.md' - - 'os/qubes-overview.md' - - kb-archive.md - - 推薦: - - 'tools.md' - - 網際網路瀏覽: - - 'tor.md' - - 'desktop-browsers.md' - - 'mobile-browsers.md' - - 提供者: - - 'cloud.md' - - 'dns.md' - - 'email-aliasing.md' - - 'email.md' - - 'financial-services.md' - - 'photo-management.md' - - 'search-engines.md' - - 'vpn.md' - - 軟體: - - 'calendar.md' - - 'cryptocurrency.md' - - 'data-redaction.md' - - 'email-clients.md' - - 'encryption.md' - - 'file-sharing.md' - - 'frontends.md' - - 'multi-factor-authentication.md' - - 'news-aggregators.md' - - 'notebooks.md' - - 'passwords.md' - - 'productivity.md' - - 'real-time-communication.md' - - 作業系統: - - 'android.md' - - 'desktop.md' - - 'router.md' - - Advanced: - - 'device-integrity.md' - - 關於: - - 'about/index.md' - - 'about/criteria.md' - - 'about/notices.md' - - 'about/privacy-policy.md' - - 社群: - - 'about/donate.md' - - 線上服務: 'about/services.md' - - 行為守則: 'CODE_OF_CONDUCT.md' - - 'about/privacytools.md' - - 貢獻: - - 寫作指南: - - 'meta/writing-style.md' - - 'meta/admonitions.md' - - 'meta/brand.md' - - 'meta/translations.md' - - 技術指導: - - 'meta/uploading-images.md' - - 'meta/git-recommendations.md' - - 變更記錄: 'https://github.com/privacyguides/privacyguides.org/releases' - - 論壇: 'https://discuss.privacyguides.net/' - - 部落格: 'https://blog.privacyguides.org/' diff --git a/includes/strings.en.env b/includes/strings.en.env new file mode 100644 index 00000000..bfdeb8d7 --- /dev/null +++ b/includes/strings.en.env @@ -0,0 +1,41 @@ +LANG="English" +LANG_ENGLISH="English" +SITE_NAME="Privacy Guides" +SITE_DESCRIPTION="Privacy Guides is your central privacy and security resource to protect yourself online." +FOOTER_COPYRIGHT_INTRO="Privacy Guides is a non-profit, socially motivated website that provides information for protecting your data security and privacy." +FOOTER_COPYRIGHT_AFFILIATE="We do not make money from recommending certain products, and we do not use affiliate links." +FOOTER_COPYRIGHT_DATE="2019 - 2024 Privacy Guides and contributors." +FOOTER_COPYRIGHT_ICON='' +FOOTER_COPYRIGHT_LICENSE="Content license:" +FOOTER_COPYRIGHT="$FOOTER_COPYRIGHT_INTRO
$FOOTER_COPYRIGHT_AFFILIATE
© $FOOTER_COPYRIGHT_DATE $FOOTER_COPYRIGHT_ICON $FOOTER_COPYRIGHT_LICENSE CC BY-ND 4.0." +THEME_LIGHT="Switch to light mode" +THEME_DARK="Switch to dark mode" +THEME_AUTO="Switch to system theme" +DESCRIPTION_HOMEPAGE="A socially motivated website which provides information about protecting your online data privacy and security." +DESCRIPTION_TRANSLATION="You're viewing the $LANG copy of Privacy Guides, translated by our fantastic language team on Crowdin. If you notice an error, or see any untranslated sections on this page, please consider helping out!" +DESCRIPTION_TRANSLATION_CTA="Visit Crowdin" +SOCIAL_MASTODON="Mastodon" +SOCIAL_MATRIX="Matrix" +SOCIAL_FORUM="Forum" +SOCIAL_GITHUB="GitHub" +SOCIAL_TOR_SITE="Hidden service" +NAV_HOME="Home" +NAV_KNOWLEDGE_BASE="Knowledge Base" +NAV_TECHNOLOGY_ESSENTIALS="Technology Essentials" +NAV_OPERATING_SYSTEMS="Operating Systems" +NAV_ADVANCED_TOPICS="Advanced Topics" +NAV_RECOMMENDATIONS="Recommendations" +NAV_INTERNET_BROWSING="Internet Browsing" +NAV_PROVIDERS="Providers" +NAV_SOFTWARE="Software" +NAV_ADVANCED="Advanced" +NAV_ABOUT="About" +NAV_COMMUNITY="Community" +NAV_ONLINE_SERVICES="Online Services" +NAV_CODE_OF_CONDUCT="Code of Conduct" +NAV_CONTRIBUTING="Contributing" +NAV_WRITING_GUIDE="Writing Guide" +NAV_TECHNICAL_GUIDES="Technical Guides" +NAV_CHANGELOG="Changelog" +NAV_FORUM="Forum" +NAV_BLOG="Blog" diff --git a/includes/strings.en.yml b/includes/strings.en.yml deleted file mode 100644 index 6bca4f9d..00000000 --- a/includes/strings.en.yml +++ /dev/null @@ -1,52 +0,0 @@ -# The strings in these files need to be copied MANUALLY to /config/mkdocs.LANG.yml -# This file exists just so these strings can be originally translated on Crowdin. -config: - description: Privacy Guides is your central privacy and security resource to protect yourself online. - copyright: - - 1: | - Privacy Guides is a non-profit, socially motivated website that provides information for protecting your data security and privacy. - - 2: | - We do not make money from recommending certain products, and we do not use affiliate links. - - 3: | - Privacy Guides and contributors. - - 4: | - Content licensed under CC BY-ND 4.0. - feedback: - question: Was this page helpful? - yes: This page was helpful - yes-note: Thanks for your feedback! - no: This page could be improved - no-note: | - Thanks for your feedback! Help us improve this page by opening a discussion on our forum. - theme: - dark: Switch to dark mode - light: Switch to light mode - system: Switch to system theme - -nav: - Home: Home - Knowledge Base: Knowledge Base - Technology Essentials: Technology Essentials - Operating Systems: Operating Systems - Advanced Topics: Advanced Topics - Recommendations: Recommendations - Internet Browsing: Internet Browsing - Providers: Providers - Software: Software - Advanced: Advanced - About: About - Community: Community - Online Services: Online Services - Code of Conduct: Code of Conduct - Contributing: Contributing - Writing Guide: Writing Guide - Technical Guides: Technical Guides - Changelog: Changelog - Forum: Forum - Blog: Blog - -site: - homepage_card: | - A socially motivated website which provides information about protecting your online data privacy and security. - translation: | - You're viewing the English copy of Privacy Guides, translated by our fantastic language team on Crowdin. If you notice an error, or see any untranslated sections on this page, please consider helping out! For more information and tips see our translation guide. diff --git a/netlify.toml b/netlify.toml index 553cd18e..2df26ed0 100644 --- a/netlify.toml +++ b/netlify.toml @@ -92,13 +92,13 @@ package = "@netlify/plugin-lighthouse" [[plugins.inputs.audits]] - path = "en/index.html" + path = "en" [[plugins.inputs.audits]] - path = "en/tools/index.html" + path = "en/tools" [[plugins.inputs.audits]] - path = "en/basics/why-privacy-matters/index.html" + path = "en/basics/why-privacy-matters" [[plugins.inputs.audits]] - path = "en/vpn/index.html" + path = "en/vpn" diff --git a/theme/main.html b/theme/main.html index 9eb5ccd7..44efff1a 100644 --- a/theme/main.html +++ b/theme/main.html @@ -121,39 +121,10 @@

Share this website and spread privacy knowledge

Copy this text to easily share Privacy Guides with your friends and family on any social network!

- {% elif config.theme.language == "es" %} + {% elif config.extra.translation_notice %}
-

Está viendo la copia en español de Privacy Guides, traducidas por nuestro fantástico equipo lingüístico en Crowdin. Si nota un error o ve alguna sección sin traducir en esta página, ¡considere ayudar! Para obtener más información y consejos, consulte nuestra guía de traducción.

-

You're viewing the Spanish copy of Privacy Guides, translated by our fantastic language team on Crowdin. If you notice an error, or see any untranslated sections on this page, please consider helping out! For more information and tips see our translation guide.

-
- {% elif config.theme.language == "fr" %} -
-

Vous êtes en train de consulter la copie française de Privacy Guides, traduite par notre fantastique équipe de traducteurs sur Crowdin. Si vous remarquez une erreur, ou si vous voyez des sections non traduites sur cette page, n'hésitez pas à nous aider! Pour plus d'informations et de conseils, consultez notre guide de traduction.

-

You're viewing the French copy of Privacy Guides, translated by our fantastic language team on Crowdin. If you notice an error, or see any untranslated sections on this page, please consider helping out! For more information and tips see our translation guide.

-
- {% elif config.theme.language == "he" %} -
-

אתה צופה בעותק העברי של Privacy Guides, שתורגם על ידי צוות השפה הפנטסטי שלנו ב-Crowdin. אם אתה מבחין בשגיאה, או רואה קטעים לא מתורגמים בדף זה, אנא שקול לעזור! למידע נוסף וטיפים עיין במדריך התרגום שלנו.

-

You're viewing the Hebrew copy of Privacy Guides, translated by our fantastic language team on Crowdin. If you notice an error, or see any untranslated sections on this page, please consider helping out! For more information and tips see our translation guide.

-
- {% elif config.theme.language == "it" %} -
-

Stai visualizzando la versione italiana di Privacy Guides, tradotta dal nostro fantastico team linguistico su Crowdin. Se noti un errore o vedi sezioni non tradotte in questa pagina, ti invitiamo a dare una mano! Per ulteriori informazioni e consigli consulta la nostra guida alla traduzione.

-

You're viewing the Italian copy of Privacy Guides, translated by our fantastic language team on Crowdin. If you notice an error, or see any untranslated sections on this page, please consider helping out! For more information and tips see our translation guide.

-
- {% elif config.theme.language == "nl" %} -
-

Je bekijkt de Nederlandse versie van Privacy Guides, vertaald door ons fantastische taalteam op Crowdin. Als u een fout opmerkt of onvertaalde gedeelten op deze pagina ziet, overweeg dan om te helpen! Voor meer informatie en tips zie onze vertaalgids.

-

You're viewing the Dutch copy of Privacy Guides, translated by our fantastic language team on Crowdin. If you notice an error, or see any untranslated sections on this page, please consider helping out! For more information and tips see our translation guide.

-
- {% elif config.theme.language == "zh-Hant" %} -
-

您正在查看由我們在Crowdin上出色的語言團隊翻譯的《隱私指南》英文版。如果您發現錯誤,或在此頁面上看到任何未翻譯的部分,請考慮提供幫助!有關更多信息和提示,請參閱我們的翻譯指南.

-

You're viewing the Chinese (Traditional) copy of Privacy Guides, translated by our fantastic language team on Crowdin. If you notice an error, or see any untranslated sections on this page, please consider helping out! For more information and tips see our translation guide.

- {% elif config.theme.language == "ru" %} -
-

Вы просматриваете русскую копию Privacy Guides, переведённую нашей невероятной командой переводчиков на Crowdin. Если вы нашли ошибку или непереведённые разделы на этой странице, пожалуйста, помогите нам! Для получения дополнительной информации и советов см. наше руководство по переводу.

-

You're viewing the Russian copy of Privacy Guides, translated by our fantastic language team on Crowdin. If you notice an error, or see any untranslated sections on this page, please consider helping out! For more information and tips see our translation guide.

+

{{ config.extra.translation_notice }} {{ config.extra.translation_notice_cta }}

+

You're viewing the {{ config.extra.translation_notice_language }} copy of Privacy Guides, translated by our fantastic language team on Crowdin. If you notice an error, or see any untranslated sections on this page, please consider helping out!

{% endif %}