mirror of
https://github.com/privacyguides/privacyguides.org.git
synced 2025-07-20 13:28:59 -04:00
ci: Complete dev container configuration (#3052)
This commit is contained in:
parent
1c3f22015c
commit
fd0d995cf8
18 changed files with 404 additions and 538 deletions
6
.devcontainer/Caddyfile
Normal file
6
.devcontainer/Caddyfile
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
:1337 {
|
||||||
|
reverse_proxy /articles/* http://127.0.0.1:8001
|
||||||
|
reverse_proxy /videos/* http://127.0.0.1:8002
|
||||||
|
reverse_proxy /en/* http://127.0.0.1:8000
|
||||||
|
redir / /en/
|
||||||
|
}
|
|
@ -1,8 +1,131 @@
|
||||||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
// For format details, see https://aka.ms/devcontainer.json.
|
||||||
// README at: https://github.com/devcontainers/templates/tree/main/src/python
|
|
||||||
{
|
{
|
||||||
"name": "Privacy Guides",
|
"name": "Privacy Guides",
|
||||||
"image": "ghcr.io/squidfunk/mkdocs-material:9.5.17",
|
"image": "ghcr.io/privacyguides/privacyguides.org:sha-750239d",
|
||||||
"forwardPorts": [8000],
|
"overrideCommand": true,
|
||||||
"postCreateCommand": "git submodule init; git submodule update theme/assets/brand; apk add bash; /bin/bash run.sh --cmd=mkdocs --cmd_flags=--dev-addr=0.0.0.0:8000"
|
"portsAttributes": {
|
||||||
|
"1337": {
|
||||||
|
"label": "Website Live Preview",
|
||||||
|
"onAutoForward": "notify"
|
||||||
|
},
|
||||||
|
"8000": {
|
||||||
|
"label": "Main",
|
||||||
|
"onAutoForward": "silent"
|
||||||
|
},
|
||||||
|
"8001": {
|
||||||
|
"label": "Articles",
|
||||||
|
"onAutoForward": "silent"
|
||||||
|
},
|
||||||
|
"8002": {
|
||||||
|
"label": "Videos",
|
||||||
|
"onAutoForward": "silent"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"otherPortsAttributes": {
|
||||||
|
"onAutoForward": "ignore"
|
||||||
|
},
|
||||||
|
"mounts": [
|
||||||
|
"source=${env:HOME}${env:USERPROFILE}/.config,target=/root/.config,type=bind"
|
||||||
|
],
|
||||||
|
"updateContentCommand": "git submodule update --init theme/assets/brand",
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"settings": {
|
||||||
|
"tasks": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Articles",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "mkdocs serve --config-file=mkdocs.blog.yml --dev-addr=localhost:8001",
|
||||||
|
"group": "test",
|
||||||
|
"runOptions": {
|
||||||
|
"runOn": "folderOpen"
|
||||||
|
},
|
||||||
|
"presentation": {
|
||||||
|
"reveal": "always",
|
||||||
|
"panel": "dedicated",
|
||||||
|
"group": "Live server"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Videos",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "mkdocs serve --config-file=mkdocs.videos.yml --dev-addr=localhost:8002",
|
||||||
|
"group": "test",
|
||||||
|
"runOptions": {
|
||||||
|
"runOn": "folderOpen"
|
||||||
|
},
|
||||||
|
"presentation": {
|
||||||
|
"reveal": "always",
|
||||||
|
"panel": "dedicated",
|
||||||
|
"group": "Live server"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Main",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "./run.sh --cmd=mkdocs --insiders --production",
|
||||||
|
"group": "test",
|
||||||
|
"runOptions": {
|
||||||
|
"runOn": "folderOpen"
|
||||||
|
},
|
||||||
|
"presentation": {
|
||||||
|
"reveal": "always",
|
||||||
|
"panel": "dedicated",
|
||||||
|
"group": "Live server",
|
||||||
|
"focus": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Caddy",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "caddy run --config .devcontainer/Caddyfile",
|
||||||
|
"group": "test",
|
||||||
|
"runOptions": {
|
||||||
|
"runOn": "folderOpen"
|
||||||
|
},
|
||||||
|
"presentation": {
|
||||||
|
"reveal": "never",
|
||||||
|
"panel": "dedicated"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"extensions": [
|
||||||
|
"EditorConfig.EditorConfig",
|
||||||
|
"DavidAnson.vscode-markdownlint",
|
||||||
|
"wholroyd.jinja",
|
||||||
|
"mikestead.dotenv",
|
||||||
|
"redhat.vscode-yaml",
|
||||||
|
"ecmel.vscode-html-css",
|
||||||
|
"yzhang.markdown-all-in-one",
|
||||||
|
"bierner.markdown-checkbox",
|
||||||
|
"bierner.markdown-emoji",
|
||||||
|
"bierner.markdown-footnotes",
|
||||||
|
"bierner.markdown-preview-github-styles",
|
||||||
|
"esbenp.prettier-vscode",
|
||||||
|
"ltex-plus.vscode-ltex-plus",
|
||||||
|
"ms-python.python",
|
||||||
|
"github.vscode-github-actions",
|
||||||
|
"matthewpi.caddyfile-support",
|
||||||
|
"ms-vsliveshare.vsliveshare"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"codespaces": {
|
||||||
|
"repositories": {
|
||||||
|
"privacyguides/mkdocs-material-insiders": {
|
||||||
|
"permissions": {
|
||||||
|
"content": "read"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"privacyguides/brand": {
|
||||||
|
"permissions": {
|
||||||
|
"content": "read"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
|
||||||
// README at: https://github.com/devcontainers/templates/tree/main/src/python
|
|
||||||
{
|
|
||||||
"name": "Privacy Guides Team",
|
|
||||||
"image": "ghcr.io/privacyguides/privacyguides.org:main",
|
|
||||||
"forwardPorts": [8000],
|
|
||||||
"postCreateCommand": "git submodule init; git submodule update theme/assets/brand; ./run.sh --cmd=mkdocs --insiders --production --cmd_flags=--dev-addr=0.0.0.0:8000"
|
|
||||||
}
|
|
13
.github/workflows/build-container.yml
vendored
13
.github/workflows/build-container.yml
vendored
|
@ -1,9 +1,7 @@
|
||||||
name: ☁️ Build Container
|
name: ☁️ Build Container
|
||||||
|
|
||||||
# Configures this workflow to run every time a change is pushed to the branch called `release`.
|
# Configures this workflow to run every release.
|
||||||
on:
|
on:
|
||||||
push:
|
|
||||||
branches: ["main"]
|
|
||||||
release:
|
release:
|
||||||
types: [published]
|
types: [published]
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
@ -75,6 +73,12 @@ jobs:
|
||||||
flavor: |
|
flavor: |
|
||||||
latest=${{ github.event_name == 'release' }}
|
latest=${{ github.event_name == 'release' }}
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
# This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages.
|
# This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages.
|
||||||
# It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository.
|
# It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository.
|
||||||
# It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step.
|
# It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step.
|
||||||
|
@ -85,6 +89,9 @@ jobs:
|
||||||
push: true
|
push: true
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
cache-from: type=gha
|
||||||
|
cache-to: type=gha,mode=max
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
|
|
12
.github/workflows/build.yml
vendored
12
.github/workflows/build.yml
vendored
|
@ -57,6 +57,18 @@ jobs:
|
||||||
echo "EXTRA_FLAGS=""$EXTRA_FLAGS" --production""
|
echo "EXTRA_FLAGS=""$EXTRA_FLAGS" --production""
|
||||||
} >> "$GITHUB_ENV"
|
} >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Set base navigation URLs for production build
|
||||||
|
if: inputs.context == 'production'
|
||||||
|
run: |
|
||||||
|
{
|
||||||
|
echo "MAIN_SITE_BASE_URL=https://www.privacyguides.org/en/"
|
||||||
|
echo "MAIN_SITE_ABOUT_URL=https://www.privacyguides.org/en/about/"
|
||||||
|
echo "MAIN_SITE_RECOMMENDATIONS_URL=https://www.privacyguides.org/en/tools/"
|
||||||
|
echo "MAIN_SITE_KNOWLEDGE_BASE_URL=https://www.privacyguides.org/en/basics/why-privacy-matters/"
|
||||||
|
echo "ARTICLES_SITE_BASE_URL=https://www.privacyguides.org/articles/"
|
||||||
|
echo "VIDEOS_SITE_BASE_URL=https://www.privacyguides.org/videos/"
|
||||||
|
} >> "$GITHUB_ENV"
|
||||||
|
|
||||||
- name: Set Metadata for Privileged Builds
|
- name: Set Metadata for Privileged Builds
|
||||||
if: inputs.privileged
|
if: inputs.privileged
|
||||||
run: |
|
run: |
|
||||||
|
|
2
.gitmodules
vendored
2
.gitmodules
vendored
|
@ -3,4 +3,4 @@
|
||||||
url = https://github.com/privacyguides/brand.git
|
url = https://github.com/privacyguides/brand.git
|
||||||
[submodule "modules/mkdocs-material"]
|
[submodule "modules/mkdocs-material"]
|
||||||
path = modules/mkdocs-material
|
path = modules/mkdocs-material
|
||||||
url = git@github.com:privacyguides/mkdocs-material-insiders.git
|
url = https://github.com/privacyguides/mkdocs-material-insiders.git
|
||||||
|
|
8
.vscode/extensions.json
vendored
8
.vscode/extensions.json
vendored
|
@ -27,11 +27,15 @@
|
||||||
"redhat.vscode-yaml",
|
"redhat.vscode-yaml",
|
||||||
"ecmel.vscode-html-css",
|
"ecmel.vscode-html-css",
|
||||||
"yzhang.markdown-all-in-one",
|
"yzhang.markdown-all-in-one",
|
||||||
"valentjn.vscode-ltex",
|
|
||||||
"bierner.markdown-checkbox",
|
"bierner.markdown-checkbox",
|
||||||
"bierner.markdown-emoji",
|
"bierner.markdown-emoji",
|
||||||
"bierner.markdown-footnotes",
|
"bierner.markdown-footnotes",
|
||||||
"bierner.markdown-preview-github-styles",
|
"bierner.markdown-preview-github-styles",
|
||||||
"esbenp.prettier-vscode"
|
"esbenp.prettier-vscode",
|
||||||
|
"ltex-plus.vscode-ltex-plus",
|
||||||
|
"ms-python.python",
|
||||||
|
"github.vscode-github-actions",
|
||||||
|
"ms-vscode-remote.remote-containers",
|
||||||
|
"github.codespaces"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
87
Dockerfile
87
Dockerfile
|
@ -1,72 +1,69 @@
|
||||||
FROM python:3.13-alpine as base
|
FROM python:3.12-bookworm AS base
|
||||||
|
|
||||||
LABEL org.opencontainers.image.source="https://github.com/privacyguides/privacyguides.org"
|
LABEL org.opencontainers.image.source="https://github.com/privacyguides/privacyguides.org"
|
||||||
|
|
||||||
# Setup env
|
# Setup environment
|
||||||
ENV LANG C.UTF-8
|
ENV LANG=C.UTF-8
|
||||||
ENV LC_ALL C.UTF-8
|
ENV LC_ALL=C.UTF-8
|
||||||
ENV PYTHONDONTWRITEBYTECODE 1
|
ENV PYTHONDONTWRITEBYTECODE=1
|
||||||
ENV PYTHONFAULTHANDLER 1
|
ENV PYTHONFAULTHANDLER=1
|
||||||
|
|
||||||
|
####################################################
|
||||||
|
# Stage: python-deps
|
||||||
|
# Install pipenv and compilation dependencies
|
||||||
|
####################################################
|
||||||
FROM base AS python-deps
|
FROM base AS python-deps
|
||||||
|
|
||||||
# Install pipenv and compilation dependencies
|
# Install pipenv
|
||||||
RUN pip install pipenv
|
RUN pip install --no-cache-dir pipenv
|
||||||
RUN \
|
|
||||||
apk upgrade --update-cache -a \
|
# Install build tools and libraries needed to compile any Python packages
|
||||||
&& \
|
RUN apt-get update && \
|
||||||
apk add --no-cache \
|
apt-get install -y --no-install-recommends \
|
||||||
gcc \
|
gcc \
|
||||||
libffi-dev \
|
libffi-dev \
|
||||||
musl-dev
|
build-essential \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Install python dependencies in /.venv
|
# Copy Pipfile, Pipfile.lock, and any local modules needed for dependency resolution
|
||||||
COPY modules/mkdocs-material ./modules/mkdocs-material
|
COPY modules/mkdocs-material ./modules/mkdocs-material
|
||||||
COPY Pipfile .
|
COPY Pipfile .
|
||||||
COPY Pipfile.lock .
|
COPY Pipfile.lock .
|
||||||
|
|
||||||
|
# Install all Python dependencies into a project‐local virtual environment at /.venv
|
||||||
RUN PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy
|
RUN PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy
|
||||||
|
|
||||||
|
####################################################
|
||||||
|
# Stage: runtime
|
||||||
|
# Install runtime dependencies and copy runtime artifacts
|
||||||
|
####################################################
|
||||||
FROM base AS runtime
|
FROM base AS runtime
|
||||||
|
|
||||||
# Install runtime dependencies
|
# Install runtime packages (GTK/Cairo, image processing libraries, Git, etc.)
|
||||||
RUN \
|
RUN apt-get update && \
|
||||||
apk upgrade --update-cache -a \
|
apt-get install -y --no-install-recommends \
|
||||||
&& \
|
libcairo2-dev \
|
||||||
apk add --no-cache \
|
libfreetype6-dev \
|
||||||
cairo \
|
|
||||||
freetype-dev \
|
|
||||||
git \
|
git \
|
||||||
git-fast-import \
|
libjpeg-dev \
|
||||||
jpeg-dev \
|
libpng-dev \
|
||||||
openssh \
|
openssh-client \
|
||||||
pngquant \
|
pngquant \
|
||||||
tini \
|
tini \
|
||||||
zlib-dev \
|
zlib1g-dev \
|
||||||
libffi-dev \
|
libffi-dev \
|
||||||
musl-dev \
|
bash \
|
||||||
bash
|
caddy \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Copy virtual env from python-deps stage
|
# Copy virtual environment and local mkdocs-material module from python-deps stage
|
||||||
COPY --from=python-deps /.venv /.venv
|
COPY --from=python-deps /.venv /.venv
|
||||||
COPY --from=python-deps /modules/mkdocs-material /modules/mkdocs-material
|
COPY --from=python-deps /modules/mkdocs-material /modules/mkdocs-material
|
||||||
|
|
||||||
|
# Ensure the virtual environment’s bin directory is first in PATH
|
||||||
ENV PATH="/.venv/bin:$PATH"
|
ENV PATH="/.venv/bin:$PATH"
|
||||||
|
|
||||||
# Create and switch to a new user
|
|
||||||
RUN mkdir /site
|
|
||||||
WORKDIR /site
|
|
||||||
|
|
||||||
COPY docs docs
|
|
||||||
COPY theme theme
|
|
||||||
COPY includes includes
|
|
||||||
COPY *.yml .
|
|
||||||
COPY .cache/plugin/social/fonts .cache/plugin/social/fonts
|
|
||||||
COPY run.sh .
|
|
||||||
|
|
||||||
EXPOSE 8000
|
|
||||||
|
|
||||||
ENV MKDOCS_INHERIT mkdocs-production.yml
|
|
||||||
|
|
||||||
HEALTHCHECK NONE
|
HEALTHCHECK NONE
|
||||||
|
|
||||||
ENTRYPOINT ["./run.sh"]
|
# Entry point script and default cmd for running mkdocs
|
||||||
CMD ["--cmd=mkdocs", "--insiders", "--cmd_flags=--dev-addr=0.0.0.0:8000"]
|
ENTRYPOINT ["/bin/bash"]
|
||||||
|
|
286
Pipfile.lock
generated
286
Pipfile.lock
generated
|
@ -41,11 +41,11 @@
|
||||||
"filecache"
|
"filecache"
|
||||||
],
|
],
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:7d47d19f866409b98ff6025b6a0fca8e4c791fb31abbd95f622093894ce903a2",
|
"sha256:73e7efec4b06b20d9267b441c1f733664f989fb8688391b670ca812d70795d11",
|
||||||
"sha256:ebad2091bf12d0d200dfc2464330db638c5deb41d546f6d7aca079e87290f3b0"
|
"sha256:b35e44a3113f17d2a31c1e6b27b9de6d4405f84ae51baa8c1d3cc5b633010cae"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.9'",
|
||||||
"version": "==0.14.2"
|
"version": "==0.14.3"
|
||||||
},
|
},
|
||||||
"cairocffi": {
|
"cairocffi": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -64,11 +64,11 @@
|
||||||
},
|
},
|
||||||
"certifi": {
|
"certifi": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651",
|
"sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6",
|
||||||
"sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"
|
"sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.6'",
|
"markers": "python_version >= '3.6'",
|
||||||
"version": "==2025.1.31"
|
"version": "==2025.4.26"
|
||||||
},
|
},
|
||||||
"cffi": {
|
"cffi": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -145,109 +145,109 @@
|
||||||
},
|
},
|
||||||
"charset-normalizer": {
|
"charset-normalizer": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537",
|
"sha256:005fa3432484527f9732ebd315da8da8001593e2cf46a3d817669f062c3d9ed4",
|
||||||
"sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa",
|
"sha256:046595208aae0120559a67693ecc65dd75d46f7bf687f159127046628178dc45",
|
||||||
"sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a",
|
"sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7",
|
||||||
"sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294",
|
"sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0",
|
||||||
"sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b",
|
"sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7",
|
||||||
"sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd",
|
"sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d",
|
||||||
"sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601",
|
"sha256:1b1bde144d98e446b056ef98e59c256e9294f6b74d7af6846bf5ffdafd687a7d",
|
||||||
"sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd",
|
"sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0",
|
||||||
"sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4",
|
"sha256:1cad5f45b3146325bb38d6855642f6fd609c3f7cad4dbaf75549bf3b904d3184",
|
||||||
"sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d",
|
"sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db",
|
||||||
"sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2",
|
"sha256:24498ba8ed6c2e0b56d4acbf83f2d989720a93b41d712ebd4f4979660db4417b",
|
||||||
"sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313",
|
"sha256:25a23ea5c7edc53e0f29bae2c44fcb5a1aa10591aae107f2a2b2583a9c5cbc64",
|
||||||
"sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd",
|
"sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b",
|
||||||
"sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa",
|
"sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8",
|
||||||
"sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8",
|
"sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff",
|
||||||
"sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1",
|
"sha256:36b31da18b8890a76ec181c3cf44326bf2c48e36d393ca1b72b3f484113ea344",
|
||||||
"sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2",
|
"sha256:3c21d4fca343c805a52c0c78edc01e3477f6dd1ad7c47653241cf2a206d4fc58",
|
||||||
"sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496",
|
"sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e",
|
||||||
"sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d",
|
"sha256:43e0933a0eff183ee85833f341ec567c0980dae57c464d8a508e1b2ceb336471",
|
||||||
"sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b",
|
"sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148",
|
||||||
"sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e",
|
"sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a",
|
||||||
"sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a",
|
"sha256:50bf98d5e563b83cc29471fa114366e6806bc06bc7a25fd59641e41445327836",
|
||||||
"sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4",
|
"sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e",
|
||||||
"sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca",
|
"sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63",
|
||||||
"sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78",
|
"sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c",
|
||||||
"sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408",
|
"sha256:6333b3aa5a12c26b2a4d4e7335a28f1475e0e5e17d69d55141ee3cab736f66d1",
|
||||||
"sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5",
|
"sha256:65c981bdbd3f57670af8b59777cbfae75364b483fa8a9f420f08094531d54a01",
|
||||||
"sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3",
|
"sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366",
|
||||||
"sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f",
|
"sha256:6a0289e4589e8bdfef02a80478f1dfcb14f0ab696b5a00e1f4b8a14a307a3c58",
|
||||||
"sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a",
|
"sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5",
|
||||||
"sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765",
|
"sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c",
|
||||||
"sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6",
|
"sha256:6fc1f5b51fa4cecaa18f2bd7a003f3dd039dd615cd69a2afd6d3b19aed6775f2",
|
||||||
"sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146",
|
"sha256:70f7172939fdf8790425ba31915bfbe8335030f05b9913d7ae00a87d4395620a",
|
||||||
"sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6",
|
"sha256:721c76e84fe669be19c5791da68232ca2e05ba5185575086e384352e2c309597",
|
||||||
"sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9",
|
"sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b",
|
||||||
"sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd",
|
"sha256:75d10d37a47afee94919c4fab4c22b9bc2a8bf7d4f46f87363bcf0573f3ff4f5",
|
||||||
"sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c",
|
"sha256:76af085e67e56c8816c3ccf256ebd136def2ed9654525348cfa744b6802b69eb",
|
||||||
"sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f",
|
"sha256:770cab594ecf99ae64c236bc9ee3439c3f46be49796e265ce0cc8bc17b10294f",
|
||||||
"sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545",
|
"sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0",
|
||||||
"sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176",
|
"sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941",
|
||||||
"sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770",
|
"sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0",
|
||||||
"sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824",
|
"sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86",
|
||||||
"sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f",
|
"sha256:8272b73e1c5603666618805fe821edba66892e2870058c94c53147602eab29c7",
|
||||||
"sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf",
|
"sha256:82d8fd25b7f4675d0c47cf95b594d4e7b158aca33b76aa63d07186e13c0e0ab7",
|
||||||
"sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487",
|
"sha256:844da2b5728b5ce0e32d863af26f32b5ce61bc4273a9c720a9f3aa9df73b1455",
|
||||||
"sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d",
|
"sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6",
|
||||||
"sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd",
|
"sha256:915f3849a011c1f593ab99092f3cecfcb4d65d8feb4a64cf1bf2d22074dc0ec4",
|
||||||
"sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b",
|
"sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0",
|
||||||
"sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534",
|
"sha256:982bb1e8b4ffda883b3d0a521e23abcd6fd17418f6d2c4118d257a10199c0ce3",
|
||||||
"sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f",
|
"sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1",
|
||||||
"sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b",
|
"sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6",
|
||||||
"sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9",
|
"sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981",
|
||||||
"sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd",
|
"sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c",
|
||||||
"sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125",
|
"sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980",
|
||||||
"sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9",
|
"sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645",
|
||||||
"sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de",
|
"sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7",
|
||||||
"sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11",
|
"sha256:aaf27faa992bfee0264dc1f03f4c75e9fcdda66a519db6b957a3f826e285cf12",
|
||||||
"sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d",
|
"sha256:b2680962a4848b3c4f155dc2ee64505a9c57186d0d56b43123b17ca3de18f0fa",
|
||||||
"sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35",
|
"sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd",
|
||||||
"sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f",
|
"sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef",
|
||||||
"sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda",
|
"sha256:b3daeac64d5b371dea99714f08ffc2c208522ec6b06fbc7866a450dd446f5c0f",
|
||||||
"sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7",
|
"sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2",
|
||||||
"sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a",
|
"sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d",
|
||||||
"sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971",
|
"sha256:c72fbbe68c6f32f251bdc08b8611c7b3060612236e960ef848e0a517ddbe76c5",
|
||||||
"sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8",
|
"sha256:c9e36a97bee9b86ef9a1cf7bb96747eb7a15c2f22bdb5b516434b00f2a599f02",
|
||||||
"sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41",
|
"sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3",
|
||||||
"sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d",
|
"sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd",
|
||||||
"sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f",
|
"sha256:d11b54acf878eef558599658b0ffca78138c8c3655cf4f3a4a673c437e67732e",
|
||||||
"sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757",
|
"sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214",
|
||||||
"sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a",
|
"sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd",
|
||||||
"sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886",
|
"sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a",
|
||||||
"sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77",
|
"sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c",
|
||||||
"sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76",
|
"sha256:dc7039885fa1baf9be153a0626e337aa7ec8bf96b0128605fb0d77788ddc1681",
|
||||||
"sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247",
|
"sha256:dccab8d5fa1ef9bfba0590ecf4d46df048d18ffe3eec01eeb73a42e0d9e7a8ba",
|
||||||
"sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85",
|
"sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f",
|
||||||
"sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb",
|
"sha256:e45ba65510e2647721e35323d6ef54c7974959f6081b58d4ef5d87c60c84919a",
|
||||||
"sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7",
|
"sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28",
|
||||||
"sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e",
|
"sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691",
|
||||||
"sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6",
|
"sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82",
|
||||||
"sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037",
|
"sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a",
|
||||||
"sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1",
|
"sha256:e8323a9b031aa0393768b87f04b4164a40037fb2a3c11ac06a03ffecd3618027",
|
||||||
"sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e",
|
"sha256:e92fca20c46e9f5e1bb485887d074918b13543b1c2a1185e69bb8d17ab6236a7",
|
||||||
"sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807",
|
"sha256:eb30abc20df9ab0814b5a2524f23d75dcf83cde762c161917a2b4b7b55b1e518",
|
||||||
"sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407",
|
"sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf",
|
||||||
"sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c",
|
"sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b",
|
||||||
"sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12",
|
"sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9",
|
||||||
"sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3",
|
"sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544",
|
||||||
"sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089",
|
"sha256:f4074c5a429281bf056ddd4c5d3b740ebca4d43ffffe2ef4bf4d2d05114299da",
|
||||||
"sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd",
|
"sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509",
|
||||||
"sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e",
|
"sha256:fb707f3e15060adf5b7ada797624a6c6e0138e2a26baa089df64c68ee98e040f",
|
||||||
"sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00",
|
"sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a",
|
||||||
"sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"
|
"sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.7'",
|
"markers": "python_version >= '3.7'",
|
||||||
"version": "==3.4.1"
|
"version": "==3.4.2"
|
||||||
},
|
},
|
||||||
"click": {
|
"click": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2",
|
"sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202",
|
||||||
"sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"
|
"sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.7'",
|
"markers": "python_version >= '3.10'",
|
||||||
"version": "==8.1.8"
|
"version": "==8.2.1"
|
||||||
},
|
},
|
||||||
"colorama": {
|
"colorama": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -275,10 +275,11 @@
|
||||||
},
|
},
|
||||||
"filelock": {
|
"filelock": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338",
|
"sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2",
|
||||||
"sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e"
|
"sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de"
|
||||||
],
|
],
|
||||||
"version": "==3.17.0"
|
"markers": "python_version >= '3.9'",
|
||||||
|
"version": "==3.18.0"
|
||||||
},
|
},
|
||||||
"ghp-import": {
|
"ghp-import": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -335,11 +336,11 @@
|
||||||
},
|
},
|
||||||
"markdown": {
|
"markdown": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2",
|
"sha256:794a929b79c5af141ef5ab0f2f642d0f7b1872981250230e72682346f7cc90dc",
|
||||||
"sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803"
|
"sha256:7df81e63f0df5c4b24b7d156eb81e4690595239b7d70937d0409f1b0de319c6f"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.9'",
|
||||||
"version": "==3.7"
|
"version": "==3.8"
|
||||||
},
|
},
|
||||||
"markupsafe": {
|
"markupsafe": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -434,21 +435,21 @@
|
||||||
},
|
},
|
||||||
"mkdocs-git-authors-plugin": {
|
"mkdocs-git-authors-plugin": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:77f97c321e08a8757beb866293eb257070b11cd5a080976bc6696b249cbade4f",
|
"sha256:acdacc8452db90a94d9c395a230b16965a9f2f51e0a6eef182ac7d3e02e394fb",
|
||||||
"sha256:f6cefc4dc832865d26f7f9f944c0a8c7dc852742d79320f3800e0d97814e2a84"
|
"sha256:e19f0252ead3d626fd73e15bb56d6675704c3b62aa569ebc363f791291b8f60e"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==0.9.2"
|
"version": "==0.9.5"
|
||||||
},
|
},
|
||||||
"mkdocs-git-revision-date-localized-plugin": {
|
"mkdocs-git-revision-date-localized-plugin": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:364d7c4c45c4f333c750e34bc298ac685a7a8bf9b7b52890d52b2f90f1812c4b",
|
"sha256:056c0a90242409148f1dc94d5c9d2c25b5b8ddd8de45489fa38f7fa7ccad2bc4",
|
||||||
"sha256:bb1eca7f156e0c8a587167662923d76efed7f7e0c06b84471aa5ae72a744a434"
|
"sha256:10a49eff1e1c3cb766e054b9d8360c904ce4fe8c33ac3f6cc083ac6459c91953"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==1.4.1"
|
"version": "==1.4.7"
|
||||||
},
|
},
|
||||||
"mkdocs-glightbox": {
|
"mkdocs-glightbox": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -484,12 +485,12 @@
|
||||||
},
|
},
|
||||||
"mkdocs-rss-plugin": {
|
"mkdocs-rss-plugin": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:9371d30afb0eda7288c946a89b419aa7a0b8e212d2219584c2dbd23ece93a991",
|
"sha256:0a5b3e03dd68cc6b94feb50fc2e47fd427d39c452affe0fc3135289da9810a6d",
|
||||||
"sha256:ff81f0ece33befd5a0152c196132e15eb93b4b9f7f53644c6d3db8e9a529e186"
|
"sha256:15b99c6b3370f50503fe189e814600b375e5a0d8f99d19f6d8d9b80c1aa56f5c"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.9' and python_version < '4'",
|
"markers": "python_version >= '3.9' and python_version < '4'",
|
||||||
"version": "==1.17.1"
|
"version": "==1.17.3"
|
||||||
},
|
},
|
||||||
"msgpack": {
|
"msgpack": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -563,11 +564,11 @@
|
||||||
},
|
},
|
||||||
"packaging": {
|
"packaging": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759",
|
"sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484",
|
||||||
"sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"
|
"sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.8'",
|
||||||
"version": "==24.2"
|
"version": "==25.0"
|
||||||
},
|
},
|
||||||
"paginate": {
|
"paginate": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -671,11 +672,11 @@
|
||||||
},
|
},
|
||||||
"platformdirs": {
|
"platformdirs": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907",
|
"sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc",
|
||||||
"sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"
|
"sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.8'",
|
"markers": "python_version >= '3.9'",
|
||||||
"version": "==4.3.6"
|
"version": "==4.3.8"
|
||||||
},
|
},
|
||||||
"pycparser": {
|
"pycparser": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -706,16 +707,15 @@
|
||||||
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
|
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
|
||||||
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
|
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
||||||
"version": "==2.9.0.post0"
|
"version": "==2.9.0.post0"
|
||||||
},
|
},
|
||||||
"pytz": {
|
"pytz": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:89dd22dca55b46eac6eda23b2d72721bf1bdfef212645d81513ef5d03038de57",
|
"sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3",
|
||||||
"sha256:c2db42be2a2518b28e65f9207c4d05e6ff547d1efa4086469ef855e4ab70178e"
|
"sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"
|
||||||
],
|
],
|
||||||
"markers": "python_version < '3.9'",
|
"version": "==2025.2"
|
||||||
"version": "==2025.1"
|
|
||||||
},
|
},
|
||||||
"pyyaml": {
|
"pyyaml": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -778,11 +778,11 @@
|
||||||
},
|
},
|
||||||
"pyyaml-env-tag": {
|
"pyyaml-env-tag": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb",
|
"sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04",
|
||||||
"sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"
|
"sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.6'",
|
"markers": "python_version >= '3.9'",
|
||||||
"version": "==0.1"
|
"version": "==1.1"
|
||||||
},
|
},
|
||||||
"requests": {
|
"requests": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -797,7 +797,7 @@
|
||||||
"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
|
"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
|
||||||
"sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"
|
"sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
||||||
"version": "==1.17.0"
|
"version": "==1.17.0"
|
||||||
},
|
},
|
||||||
"smmap": {
|
"smmap": {
|
||||||
|
@ -818,11 +818,11 @@
|
||||||
},
|
},
|
||||||
"termcolor": {
|
"termcolor": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:37b17b5fc1e604945c2642c872a3764b5d547a48009871aea3edd3afa180afb8",
|
"sha256:591dd26b5c2ce03b9e43f391264626557873ce1d379019786f99b0c2bee140aa",
|
||||||
"sha256:998d8d27da6d48442e8e1f016119076b690d962507531df4890fcd2db2ef8a6f"
|
"sha256:6a6dd7fbee581909eeec6a756cff1d7f7c376063b14e4a298dc4980309e55970"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.9'",
|
||||||
"version": "==2.5.0"
|
"version": "==3.1.0"
|
||||||
},
|
},
|
||||||
"tinycss2": {
|
"tinycss2": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -834,11 +834,11 @@
|
||||||
},
|
},
|
||||||
"urllib3": {
|
"urllib3": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df",
|
"sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466",
|
||||||
"sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"
|
"sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.9'",
|
"markers": "python_version >= '3.9'",
|
||||||
"version": "==2.3.0"
|
"version": "==2.4.0"
|
||||||
},
|
},
|
||||||
"watchdog": {
|
"watchdog": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
|
56
README.md
56
README.md
|
@ -48,6 +48,8 @@ The current list of team members can be found [here](https://www.privacyguides.o
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
[](https://codespaces.new/privacyguides/privacyguides.org?devcontainer_path=.devcontainer%2Fdevcontainer.json)
|
||||||
|
|
||||||
- 💬 [Start a discussion or suggest an idea](https://discuss.privacyguides.net)
|
- 💬 [Start a discussion or suggest an idea](https://discuss.privacyguides.net)
|
||||||
- 💖 [Sponsor the project](https://github.com/sponsors/privacyguides)
|
- 💖 [Sponsor the project](https://github.com/sponsors/privacyguides)
|
||||||
- 🈴 [Help translate the site](https://crowdin.com/project/privacyguides) [[Matrix chat](https://matrix.to/#/#pg-i18n:aragon.sh)]
|
- 🈴 [Help translate the site](https://crowdin.com/project/privacyguides) [[Matrix chat](https://matrix.to/#/#pg-i18n:aragon.sh)]
|
||||||
|
@ -72,18 +74,6 @@ All contributors to the site are listed [here](#contributors). If you have contr
|
||||||
|
|
||||||
- **Tor/onion:** [xoe4vn5uwdztif6goazfbmogh6wh5jc4up35bqdflu6bkdc5cas5vjqd.onion](http://www.xoe4vn5uwdztif6goazfbmogh6wh5jc4up35bqdflu6bkdc5cas5vjqd.onion)
|
- **Tor/onion:** [xoe4vn5uwdztif6goazfbmogh6wh5jc4up35bqdflu6bkdc5cas5vjqd.onion](http://www.xoe4vn5uwdztif6goazfbmogh6wh5jc4up35bqdflu6bkdc5cas5vjqd.onion)
|
||||||
|
|
||||||
- **IPFS:** `/ipns/ipfs.privacyguides.org` (**not** anonymous)
|
|
||||||
- Please help us out by pinning a copy: [Learn more](https://github.com/privacyguides/webserver/blob/main/ipfs/README.md)
|
|
||||||
- via Cloudflare: [cloudflare-ipfs.com/ipns/ipfs.privacyguides.org](https://cloudflare-ipfs.com/ipns/ipfs.privacyguides.org/en/)
|
|
||||||
- via 4everland: [ipfs-privacyguides-org.ipns.4everland.io](https://ipfs-privacyguides-org.ipns.4everland.io/)
|
|
||||||
- via [@jonaharagon](https://github.com/jonaharagon): [ipfs.jonaharagon.net/ipns/ipfs.privacyguides.org](https://ipfs.jonaharagon.net/ipns/ipfs.privacyguides.org/en/)
|
|
||||||
- via [peer](https://docs.ipfs.tech/how-to/peering-with-content-providers/): `/dnsaddr/node-1.ipfs.jonaharagon.net/p2p/12D3KooWMwqzuApCKxYfo66zq5BrTjCoz9naJ1rrMEBCnwuGGqWB`
|
|
||||||
|
|
||||||
- **I2P:** [privacyguides.i2p](http://privacyguides.i2p/?i2paddresshelper=fvbkmooriuqgssrjvbxu7nrwms5zyhf34r3uuppoakwwsm7ysv6q.b32.i2p)
|
|
||||||
|
|
||||||
- **Yggdrasil:** [http://[200:f3a6:4922:e067:770d:ac57:fcb1:8dbf]](http://[200:f3a6:4922:e067:770d:ac57:fcb1:8dbf]/en/) (**not** anonymous)
|
|
||||||
- via public peer: `tcp://5.161.245.8:45454`
|
|
||||||
|
|
||||||
### Git Mirrors
|
### Git Mirrors
|
||||||
|
|
||||||
[](https://github.com/privacyguides/privacyguides.org)
|
[](https://github.com/privacyguides/privacyguides.org)
|
||||||
|
@ -110,42 +100,18 @@ When you contribute to this repository you are doing so under the above licenses
|
||||||
|
|
||||||
## Developing
|
## Developing
|
||||||
|
|
||||||
[](https://codespaces.new/privacyguides/privacyguides.org?devcontainer_path=.devcontainer%2Fdevcontainer.json)
|
The only supported method of building and previewing this website locally is by running the automatic dev container. The easiest way to do this in your web browser without installing any software is to use [GitHub Codespaces](https://codespaces.new/privacyguides/privacyguides.org). To build the website locally, you will need the following software:
|
||||||
|
|
||||||
|
- macOS/Windows: [Docker Desktop](https://www.docker.com/products/docker-desktop/)
|
||||||
|
- Linux: [Docker CE](https://docs.docker.com/get-started/get-docker/#supported-platforms)
|
||||||
|
- [VS Code](https://code.visualstudio.com/)
|
||||||
|
- [Dev Containers for VS Code](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension
|
||||||
|
- [GitHub Desktop](https://github.com/apps/desktop) (optional)
|
||||||
|
|
||||||
|
You can technically use any IDE which supports [development containers](https://containers.dev/), but YMMV. Docker Desktop has an experimental Dev Environments option which allows you to use any text editor under Settings > Features in development. We are only testing with the combination of software above.
|
||||||
|
|
||||||
Committing to this repository requires [signing your commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits) (`git config commit.gpgsign true`) unless you are making edits via the GitHub.com text editor interface. As of August 2022 the preferred signing method is [SSH commit signatures](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification#ssh-commit-signature-verification), but GPG signing is also acceptable. You should add your signing key to your GitHub profile.
|
Committing to this repository requires [signing your commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits) (`git config commit.gpgsign true`) unless you are making edits via the GitHub.com text editor interface. As of August 2022 the preferred signing method is [SSH commit signatures](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification#ssh-commit-signature-verification), but GPG signing is also acceptable. You should add your signing key to your GitHub profile.
|
||||||
|
|
||||||
### With `mkdocs-material`
|
|
||||||
|
|
||||||
1. Install required packages: `pip install mkdocs-material`
|
|
||||||
2. Run a local preview of the English site: `./run.sh --cmd=mkdocs`
|
|
||||||
|
|
||||||
### With `mkdocs-material-insiders`
|
|
||||||
|
|
||||||
This website uses [`mkdocs-material-insiders`](https://squidfunk.github.io/mkdocs-material/insiders) which offers additional functionality over the open-source `mkdocs-material` project. For obvious reasons we cannot distribute access to the insiders repository.
|
|
||||||
|
|
||||||
**Team members** should clone the repository with `mkdocs-material-insiders` directly. This method is identical to production:
|
|
||||||
|
|
||||||
1. Clone this repository and submodules: `git clone --recurse-submodules https://github.com/privacyguides/privacyguides.org.git`
|
|
||||||
2. Enable SSH commit verification with our local [`.allowed_signers`](/.allowed_signers) file: `git config gpg.ssh.allowedSignersFile .allowed_signers`
|
|
||||||
3. Install Python **3.12**.
|
|
||||||
4. Install **pipenv**: `pip install pipenv`
|
|
||||||
5. Install dependencies: `pipenv install --dev` (install [Pillow and CairoSVG](https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#dependencies) as well to generate social cards)
|
|
||||||
6. Serve the site locally: `./run.sh --insiders` (set `CARDS=true` to generate social cards)
|
|
||||||
- The site will be available at `http://localhost:8000`
|
|
||||||
- You can build the site locally with `./run.sh --insiders --build`
|
|
||||||
- This version of the site should be identical to the live, production version
|
|
||||||
|
|
||||||
If you commit to `main` with commits signed with your SSH key, you should add your SSH key to [`.allowed_signers`](/.allowed_signers) in this repo.
|
|
||||||
|
|
||||||
### Local Translated Site Builds
|
|
||||||
|
|
||||||
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: `./run.sh --insiders --lang=fr` (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.
|
|
||||||
|
|
||||||
## Releasing
|
## Releasing
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
|
@ -47,7 +47,7 @@ extra:
|
||||||
- fontawesome/brands/creative-commons
|
- fontawesome/brands/creative-commons
|
||||||
- fontawesome/brands/creative-commons-by
|
- fontawesome/brands/creative-commons-by
|
||||||
- fontawesome/brands/creative-commons-sa
|
- fontawesome/brands/creative-commons-sa
|
||||||
homepage: https://www.privacyguides.org/en/
|
homepage: !ENV [MAIN_SITE_BASE_URL, "https://www.privacyguides.org/en/"]
|
||||||
generator: false
|
generator: false
|
||||||
context: !ENV [BUILD_CONTEXT, "production"]
|
context: !ENV [BUILD_CONTEXT, "production"]
|
||||||
offline: !ENV [BUILD_OFFLINE, false]
|
offline: !ENV [BUILD_OFFLINE, false]
|
||||||
|
@ -207,21 +207,23 @@ markdown_extensions:
|
||||||
toc_depth: 3
|
toc_depth: 3
|
||||||
|
|
||||||
nav:
|
nav:
|
||||||
- !ENV [NAV_HOME, "Home"]: /en/
|
- !ENV [NAV_HOME, "Home"]: !ENV [MAIN_SITE_BASE_URL, "/en/"]
|
||||||
- !ENV [NAV_KNOWLEDGE_BASE, "Knowledge Base"]: /en/basics/why-privacy-matters/
|
- !ENV [NAV_KNOWLEDGE_BASE, "Knowledge Base"]:
|
||||||
- !ENV [NAV_RECOMMENDATIONS, "Recommendations"]: /en/tools/
|
!ENV [MAIN_SITE_KNOWLEDGE_BASE_URL, "/en/basics/why-privacy-matters/"]
|
||||||
|
- !ENV [NAV_RECOMMENDATIONS, "Recommendations"]:
|
||||||
|
!ENV [MAIN_SITE_RECOMMENDATIONS_URL, "/en/tools/"]
|
||||||
- !ENV [NAV_BLOG, "Articles"]:
|
- !ENV [NAV_BLOG, "Articles"]:
|
||||||
- index.md
|
- index.md
|
||||||
- editorial.md
|
- editorial.md
|
||||||
- tags.md
|
- tags.md
|
||||||
- !ENV [NAV_VIDEOS, "Videos"]: /videos/
|
- !ENV [NAV_VIDEOS, "Videos"]: !ENV [VIDEOS_SITE_BASE_URL, "/videos/"]
|
||||||
- !ENV [NAV_FORUM, "Forum"]: "https://discuss.privacyguides.net/"
|
- !ENV [NAV_FORUM, "Forum"]: "https://discuss.privacyguides.net/"
|
||||||
- !ENV [NAV_WIKI, "Wiki"]:
|
- !ENV [NAV_WIKI, "Wiki"]:
|
||||||
!ENV [
|
!ENV [
|
||||||
NAV_WIKI_LINK,
|
NAV_WIKI_LINK,
|
||||||
"https://discuss.privacyguides.net/c/community-wiki/9411/none",
|
"https://discuss.privacyguides.net/c/community-wiki/9411/none",
|
||||||
]
|
]
|
||||||
- !ENV [NAV_ABOUT, "About"]: /en/about/
|
- !ENV [NAV_ABOUT, "About"]: !ENV [MAIN_SITE_ABOUT_URL, "/en/about/"]
|
||||||
|
|
||||||
validation:
|
validation:
|
||||||
nav:
|
nav:
|
||||||
|
|
18
mkdocs.insiders.yml
Normal file
18
mkdocs.insiders.yml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
INHERIT: mkdocs.yml
|
||||||
|
|
||||||
|
watch:
|
||||||
|
- theme
|
||||||
|
- includes
|
||||||
|
- mkdocs.yml
|
||||||
|
|
||||||
|
markdown_extensions:
|
||||||
|
material.extensions.preview:
|
||||||
|
sources:
|
||||||
|
exclude:
|
||||||
|
- index.md
|
||||||
|
- tools.md
|
||||||
|
- about.md
|
||||||
|
- about/*
|
||||||
|
targets:
|
||||||
|
exclude:
|
||||||
|
- about/contributors.md
|
198
mkdocs.net.yml
198
mkdocs.net.yml
|
@ -1,198 +0,0 @@
|
||||||
# Copyright (c) 2022-2024 Jonah Aragon <jonah@triplebit.net>
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
docs_dir: "net"
|
|
||||||
site_url: "https://www.privacyguides.net/"
|
|
||||||
site_dir: "site/net"
|
|
||||||
|
|
||||||
site_name: Privacy Guides Community
|
|
||||||
site_description: "Discover privacy tools and resources, ask questions, and stay informed at the biggest digital rights and privacy tech community online."
|
|
||||||
edit_uri_template: blob/main/net/{path}?plain=1
|
|
||||||
|
|
||||||
extra:
|
|
||||||
privacy_guides:
|
|
||||||
footer:
|
|
||||||
intro:
|
|
||||||
!ENV [
|
|
||||||
FOOTER_INTRO,
|
|
||||||
"Privacy Guides is a non-profit, socially motivated website that provides information for protecting your data security and privacy.",
|
|
||||||
]
|
|
||||||
note:
|
|
||||||
!ENV [
|
|
||||||
FOOTER_NOTE,
|
|
||||||
"We do not make money from recommending certain products, and we do not use affiliate links.",
|
|
||||||
]
|
|
||||||
copyright:
|
|
||||||
author:
|
|
||||||
!ENV [FOOTER_COPYRIGHT_AUTHOR, "Privacy Guides and contributors."]
|
|
||||||
date: !ENV [FOOTER_COPYRIGHT_DATE, "2019-2025"]
|
|
||||||
license:
|
|
||||||
- fontawesome/brands/creative-commons
|
|
||||||
- fontawesome/brands/creative-commons-by
|
|
||||||
- fontawesome/brands/creative-commons-sa
|
|
||||||
homepage: https://www.privacyguides.org/en/
|
|
||||||
generator: false
|
|
||||||
context: !ENV [BUILD_CONTEXT, "production"]
|
|
||||||
offline: !ENV [BUILD_OFFLINE, false]
|
|
||||||
deploy: !ENV DEPLOY_ID
|
|
||||||
social:
|
|
||||||
- icon: simple/mastodon
|
|
||||||
link: https://mastodon.neat.computer/@privacyguides
|
|
||||||
name: !ENV [SOCIAL_MASTODON, "Mastodon"]
|
|
||||||
- icon: simple/matrix
|
|
||||||
link: https://matrix.to/#/#privacyguides:matrix.org
|
|
||||||
name: !ENV [SOCIAL_MATRIX, "Matrix"]
|
|
||||||
- icon: simple/discourse
|
|
||||||
link: https://discuss.privacyguides.net/
|
|
||||||
name: !ENV [SOCIAL_FORUM, "Forum"]
|
|
||||||
- icon: simple/github
|
|
||||||
link: https://github.com/privacyguides
|
|
||||||
name: !ENV [SOCIAL_GITHUB, "GitHub"]
|
|
||||||
- icon: simple/torbrowser
|
|
||||||
link: http://www.xoe4vn5uwdztif6goazfbmogh6wh5jc4up35bqdflu6bkdc5cas5vjqd.onion/
|
|
||||||
name: !ENV [SOCIAL_TOR_SITE, "Hidden service"]
|
|
||||||
|
|
||||||
repo_url:
|
|
||||||
!ENV [BUILD_REPO_URL, "https://github.com/privacyguides/privacyguides.org"]
|
|
||||||
repo_name: ""
|
|
||||||
|
|
||||||
theme:
|
|
||||||
name: material
|
|
||||||
language: en
|
|
||||||
custom_dir: theme
|
|
||||||
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
|
|
||||||
features:
|
|
||||||
- announce.dismiss
|
|
||||||
- navigation.tracking
|
|
||||||
- navigation.tabs
|
|
||||||
- navigation.sections
|
|
||||||
- navigation.expand
|
|
||||||
- navigation.path
|
|
||||||
- navigation.indexes
|
|
||||||
- navigation.footer
|
|
||||||
- content.action.edit
|
|
||||||
- content.tabs.link
|
|
||||||
- content.tooltips
|
|
||||||
- search.highlight
|
|
||||||
|
|
||||||
extra_css:
|
|
||||||
- assets/stylesheets/extra.css?v=20240829
|
|
||||||
|
|
||||||
watch:
|
|
||||||
- theme
|
|
||||||
- includes
|
|
||||||
|
|
||||||
plugins:
|
|
||||||
tags: {}
|
|
||||||
privacy:
|
|
||||||
enabled: !ENV [BUILD_PRIVACY, true]
|
|
||||||
offline:
|
|
||||||
enabled: !ENV [BUILD_OFFLINE, false]
|
|
||||||
minify_html: {}
|
|
||||||
group:
|
|
||||||
enabled: !ENV [BUILD_INSIDERS, true]
|
|
||||||
plugins:
|
|
||||||
macros: {}
|
|
||||||
meta: {}
|
|
||||||
optimize:
|
|
||||||
enabled: !ENV [OPTIMIZE, PRODUCTION, NETLIFY, false]
|
|
||||||
typeset: {}
|
|
||||||
social:
|
|
||||||
cards: !ENV [CARDS, true]
|
|
||||||
cards_dir: assets/img/social
|
|
||||||
cards_layout_dir: theme/layouts
|
|
||||||
cards_layout: page
|
|
||||||
|
|
||||||
markdown_extensions:
|
|
||||||
admonition: {}
|
|
||||||
pymdownx.details: {}
|
|
||||||
pymdownx.superfences:
|
|
||||||
custom_fences:
|
|
||||||
- name: mermaid
|
|
||||||
class: mermaid
|
|
||||||
format: !!python/name:pymdownx.superfences.fence_code_format
|
|
||||||
pymdownx.tabbed:
|
|
||||||
alternate_style: true
|
|
||||||
pymdownx.arithmatex:
|
|
||||||
generic: true
|
|
||||||
pymdownx.critic: {}
|
|
||||||
pymdownx.caret: {}
|
|
||||||
pymdownx.keys: {}
|
|
||||||
pymdownx.mark: {}
|
|
||||||
pymdownx.tilde: {}
|
|
||||||
pymdownx.snippets:
|
|
||||||
auto_append:
|
|
||||||
- !ENV [BUILD_ABBREVIATIONS, "includes/abbreviations.en.txt"]
|
|
||||||
pymdownx.tasklist:
|
|
||||||
custom_checkbox: true
|
|
||||||
attr_list: {}
|
|
||||||
def_list: {}
|
|
||||||
md_in_html: {}
|
|
||||||
meta: {}
|
|
||||||
abbr: {}
|
|
||||||
pymdownx.emoji:
|
|
||||||
emoji_index: !!python/name:material.extensions.emoji.twemoji
|
|
||||||
emoji_generator: !!python/name:material.extensions.emoji.to_svg
|
|
||||||
tables: {}
|
|
||||||
footnotes: {}
|
|
||||||
toc:
|
|
||||||
permalink: true
|
|
||||||
toc_depth: 4
|
|
||||||
|
|
||||||
nav:
|
|
||||||
- !ENV [NAV_HOME, "Home"]: https://www.privacyguides.org/en/
|
|
||||||
- !ENV [NAV_KNOWLEDGE_BASE, "Knowledge Base"]:
|
|
||||||
https://www.privacyguides.org/en/basics/why-privacy-matters/
|
|
||||||
- !ENV [NAV_RECOMMENDATIONS, "Recommendations"]:
|
|
||||||
https://www.privacyguides.org/en/tools/
|
|
||||||
- !ENV [NAV_BLOG, "Articles"]: https://www.privacyguides.org/articles/
|
|
||||||
- !ENV [NAV_ABOUT, "About"]: https://www.privacyguides.org/en/about/
|
|
||||||
- "Donate": https://www.privacyguides.org/en/about/donate/
|
|
||||||
- !ENV [NAV_CHANGELOG, "Changelog"]:
|
|
||||||
"https://github.com/privacyguides/privacyguides.org/releases"
|
|
||||||
- !ENV [NAV_FORUM, "Forum"]: "https://discuss.privacyguides.net/"
|
|
||||||
|
|
||||||
validation:
|
|
||||||
nav:
|
|
||||||
not_found: info
|
|
|
@ -47,7 +47,7 @@ extra:
|
||||||
- fontawesome/brands/creative-commons
|
- fontawesome/brands/creative-commons
|
||||||
- fontawesome/brands/creative-commons-by
|
- fontawesome/brands/creative-commons-by
|
||||||
- fontawesome/brands/creative-commons-sa
|
- fontawesome/brands/creative-commons-sa
|
||||||
homepage: https://www.privacyguides.org/en/
|
homepage: !ENV [MAIN_SITE_BASE_URL, "https://www.privacyguides.org/en/"]
|
||||||
generator: false
|
generator: false
|
||||||
context: !ENV [BUILD_CONTEXT, "production"]
|
context: !ENV [BUILD_CONTEXT, "production"]
|
||||||
offline: !ENV [BUILD_OFFLINE, false]
|
offline: !ENV [BUILD_OFFLINE, false]
|
||||||
|
@ -198,10 +198,12 @@ markdown_extensions:
|
||||||
toc_depth: 4
|
toc_depth: 4
|
||||||
|
|
||||||
nav:
|
nav:
|
||||||
- !ENV [NAV_HOME, "Home"]: /en/
|
- !ENV [NAV_HOME, "Home"]: !ENV [MAIN_SITE_BASE_URL, "/en/"]
|
||||||
- !ENV [NAV_KNOWLEDGE_BASE, "Knowledge Base"]: /en/basics/why-privacy-matters/
|
- !ENV [NAV_KNOWLEDGE_BASE, "Knowledge Base"]:
|
||||||
- !ENV [NAV_RECOMMENDATIONS, "Recommendations"]: /en/tools/
|
!ENV [MAIN_SITE_KNOWLEDGE_BASE_URL, "/en/basics/why-privacy-matters/"]
|
||||||
- !ENV [NAV_BLOG, "Articles"]: /articles/
|
- !ENV [NAV_RECOMMENDATIONS, "Recommendations"]:
|
||||||
|
!ENV [MAIN_SITE_RECOMMENDATIONS_URL, "/en/tools/"]
|
||||||
|
- !ENV [NAV_BLOG, "Articles"]: !ENV [ARTICLES_SITE_BASE_URL, "/articles/"]
|
||||||
- !ENV [NAV_VIDEOS, "Videos"]:
|
- !ENV [NAV_VIDEOS, "Videos"]:
|
||||||
- index.md
|
- index.md
|
||||||
- playlists.md
|
- playlists.md
|
||||||
|
@ -211,7 +213,7 @@ nav:
|
||||||
NAV_WIKI_LINK,
|
NAV_WIKI_LINK,
|
||||||
"https://discuss.privacyguides.net/c/community-wiki/9411/none",
|
"https://discuss.privacyguides.net/c/community-wiki/9411/none",
|
||||||
]
|
]
|
||||||
- !ENV [NAV_ABOUT, "About"]: /en/about/
|
- !ENV [NAV_ABOUT, "About"]: !ENV [MAIN_SITE_ABOUT_URL, "/en/about/"]
|
||||||
|
|
||||||
validation:
|
validation:
|
||||||
nav:
|
nav:
|
||||||
|
|
|
@ -446,8 +446,8 @@ nav:
|
||||||
- !ENV [NAV_ADVANCED, "Advanced"]:
|
- !ENV [NAV_ADVANCED, "Advanced"]:
|
||||||
- "alternative-networks.md"
|
- "alternative-networks.md"
|
||||||
- "device-integrity.md"
|
- "device-integrity.md"
|
||||||
- !ENV [NAV_BLOG, "Articles"]: "/articles/"
|
- !ENV [NAV_BLOG, "Articles"]: !ENV [ARTICLES_SITE_BASE_URL, "/articles/"]
|
||||||
- !ENV [NAV_VIDEOS, "Videos"]: /videos/
|
- !ENV [NAV_VIDEOS, "Videos"]: !ENV [VIDEOS_SITE_BASE_URL, "/videos/"]
|
||||||
- !ENV [NAV_FORUM, "Forum"]:
|
- !ENV [NAV_FORUM, "Forum"]:
|
||||||
!ENV [NAV_FORUM_LINK, "https://discuss.privacyguides.net/"]
|
!ENV [NAV_FORUM_LINK, "https://discuss.privacyguides.net/"]
|
||||||
- !ENV [NAV_WIKI, "Wiki"]:
|
- !ENV [NAV_WIKI, "Wiki"]:
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 573ea60dc618719bff3897a4fdae22ab2cd725e8
|
Subproject commit ce2cca8c5240ae520e09a67954de09949bd04efe
|
42
net/index.md
42
net/index.md
|
@ -1,42 +0,0 @@
|
||||||
---
|
|
||||||
title: Weekly Discussions
|
|
||||||
meta_title: Privacy Guides Community
|
|
||||||
hide:
|
|
||||||
- footer
|
|
||||||
- toc
|
|
||||||
- navigation
|
|
||||||
schema:
|
|
||||||
-
|
|
||||||
"@context": https://schema.org
|
|
||||||
"@type": Organization
|
|
||||||
"@id": https://www.privacyguides.org/
|
|
||||||
name: Privacy Guides
|
|
||||||
url: https://www.privacyguides.org/
|
|
||||||
logo: https://www.privacyguides.org/en/assets/brand/logos/png/square/pg-yellow.png
|
|
||||||
sameAs:
|
|
||||||
- https://twitter.com/privacy_guides
|
|
||||||
- https://github.com/privacyguides
|
|
||||||
- https://www.wikidata.org/wiki/Q111710163
|
|
||||||
- https://www.youtube.com/@privacyguides
|
|
||||||
- https://mastodon.neat.computer/@privacyguides
|
|
||||||
-
|
|
||||||
"@context": https://schema.org
|
|
||||||
"@type": WebSite
|
|
||||||
name: Privacy Guides
|
|
||||||
alternateName: ["Privacy Guides Community", "Privacy Guides Forum", "Privacy & Security Forum", "Privacy Discussions", "Privacy Community", "PG Community"]
|
|
||||||
url: "https://www.privacyguides.net/"
|
|
||||||
isPartOf: "https://www.privacyguides.org/"
|
|
||||||
---
|
|
||||||
|
|
||||||
Discover privacy tools and resources, ask questions, and stay informed at the biggest digital rights and privacy tech community online.
|
|
||||||
|
|
||||||
[Open Forum](https://discuss.privacyguides.net){.md-button .md-button--primary}
|
|
||||||
[View Resources](https://www.privacyguides.org/en/tools/){.md-button}
|
|
||||||
|
|
||||||
<div class="grid cards">
|
|
||||||
<ul>
|
|
||||||
<!-- start latest posts -->
|
|
||||||
|
|
||||||
<!-- end latest posts -->
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
25
run.sh
25
run.sh
|
@ -113,31 +113,8 @@ fi
|
||||||
|
|
||||||
# Set theme if insiders
|
# Set theme if insiders
|
||||||
if $insiders ; then
|
if $insiders ; then
|
||||||
random_num=$RANDOM
|
|
||||||
export BUILD_INSIDERS=true
|
export BUILD_INSIDERS=true
|
||||||
cmd_flags+=("--config-file=$PWD/.mkdocs-insiders-$random_num.yml")
|
cmd_flags+=("--config-file=$PWD/mkdocs.insiders.yml")
|
||||||
touch "$PWD/.mkdocs-insiders-$random_num.yml"
|
|
||||||
cat <<EOT >> "$PWD/.mkdocs-insiders-$random_num.yml"
|
|
||||||
INHERIT: mkdocs.yml
|
|
||||||
|
|
||||||
watch:
|
|
||||||
- theme
|
|
||||||
- includes
|
|
||||||
- mkdocs.yml
|
|
||||||
|
|
||||||
markdown_extensions:
|
|
||||||
material.extensions.preview:
|
|
||||||
sources:
|
|
||||||
exclude:
|
|
||||||
- index.md
|
|
||||||
- tools.md
|
|
||||||
- about.md
|
|
||||||
- about/*
|
|
||||||
targets:
|
|
||||||
exclude:
|
|
||||||
- about/contributors.md
|
|
||||||
EOT
|
|
||||||
trap 'rm $PWD/.mkdocs-insiders-$random_num.yml' EXIT
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Run the command with the specified language
|
# Run the command with the specified language
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue