mirror of
				https://github.com/privacyguides/privacyguides.org.git
				synced 2025-10-31 11:36:36 +00:00 
			
		
		
		
	Enable website development (#2490)
This commit is contained in:
		
							
								
								
									
										8
									
								
								.devcontainer/devcontainer.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.devcontainer/devcontainer.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | // 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", | ||||||
|  | 	"image": "ghcr.io/squidfunk/mkdocs-material:9.5.17", | ||||||
|  | 	"forwardPorts": [8000], | ||||||
|  |   "postCreateCommand": "git submodule init; git submodule update theme/assets/brand; mkdocs serve --dev-addr=0.0.0.0:8000 --config-file config/mkdocs.en.yml" | ||||||
|  | } | ||||||
							
								
								
									
										8
									
								
								.devcontainer/team/devcontainer.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.devcontainer/team/devcontainer.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | // 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; MKDOCS_INHERIT=mkdocs-production.yml mkdocs serve --dev-addr=0.0.0.0:8000 --config-file config/mkdocs.en.yml" | ||||||
|  | } | ||||||
							
								
								
									
										10
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							| @@ -49,6 +49,16 @@ updates: | |||||||
|       interval: "monthly" |       interval: "monthly" | ||||||
|     labels: |     labels: | ||||||
|       - "fix:submodules" |       - "fix:submodules" | ||||||
|  |  | ||||||
|  |   - package-ecosystem: "devcontainers" | ||||||
|  |     directory: "/" | ||||||
|  |     schedule: | ||||||
|  |       interval: weekly | ||||||
|  |  | ||||||
|  |   - package-ecosystem: "docker" | ||||||
|  |     directory: "/" | ||||||
|  |     schedule: | ||||||
|  |       interval: weekly | ||||||
| # Disabled because some updates tend to remove needed dependencies for some reason | # Disabled because some updates tend to remove needed dependencies for some reason | ||||||
|  |  | ||||||
| #  # Maintain dependencies for pipenv | #  # Maintain dependencies for pipenv | ||||||
|   | |||||||
							
								
								
									
										93
									
								
								.github/workflows/build-container.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								.github/workflows/build-container.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,93 @@ | |||||||
|  | # | ||||||
|  | name: ☁️ Build Container | ||||||
|  |  | ||||||
|  | # Configures this workflow to run every time a change is pushed to the branch called `release`. | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     branches: ['main'] | ||||||
|  |   release: | ||||||
|  |     types: [published] | ||||||
|  |   workflow_dispatch: | ||||||
|  |  | ||||||
|  | concurrency: | ||||||
|  |   group: container-build | ||||||
|  |   cancel-in-progress: true | ||||||
|  |  | ||||||
|  | permissions: | ||||||
|  |   contents: read | ||||||
|  |   packages: write | ||||||
|  |  | ||||||
|  | # Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds. | ||||||
|  | env: | ||||||
|  |   REGISTRY: ghcr.io | ||||||
|  |   IMAGE_NAME: ${{ github.repository }} | ||||||
|  |  | ||||||
|  | # There is a single job in this workflow. It's configured to run on the latest available version of Ubuntu. | ||||||
|  | jobs: | ||||||
|  |   submodule: | ||||||
|  |     strategy: | ||||||
|  |       matrix: | ||||||
|  |         repo: [mkdocs-material-insiders, brand] | ||||||
|  |     uses: privacyguides/.github/.github/workflows/download-repo.yml@main | ||||||
|  |     with: | ||||||
|  |       repo: ${{ matrix.repo }} | ||||||
|  |     secrets: | ||||||
|  |       ACTIONS_SSH_KEY: ${{ secrets.ACTIONS_SSH_KEY }} | ||||||
|  |  | ||||||
|  |   build-and-push-image: | ||||||
|  |     needs: submodule | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: Checkout repository | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  |         with: | ||||||
|  |           fetch-depth: 0 | ||||||
|  |  | ||||||
|  |       - uses: actions/download-artifact@v4 | ||||||
|  |         with: | ||||||
|  |           pattern: repo-* | ||||||
|  |           path: modules | ||||||
|  |  | ||||||
|  |       - run: | | ||||||
|  |           rm -rf modules/mkdocs-material | ||||||
|  |           mv modules/repo-mkdocs-material-insiders modules/mkdocs-material | ||||||
|  |           rm -rf theme/assets/brand | ||||||
|  |           mv modules/repo-brand theme/assets/brand | ||||||
|  |  | ||||||
|  |       # Uses the `docker/login-action` action to log in to the Container registry registry using the account and password that will publish the packages. Once published, the packages are scoped to the account defined here. | ||||||
|  |       - name: Log in to the Container registry | ||||||
|  |         uses: docker/login-action@v3.1.0 | ||||||
|  |         with: | ||||||
|  |           registry: ${{ env.REGISTRY }} | ||||||
|  |           username: ${{ github.actor }} | ||||||
|  |           password: ${{ secrets.GITHUB_TOKEN }} | ||||||
|  |  | ||||||
|  |       # This step uses [docker/metadata-action](https://github.com/docker/metadata-action#about) to extract tags and labels that will be applied to the specified image. The `id` "meta" allows the output of this step to be referenced in a subsequent step. The `images` value provides the base name for the tags and labels. | ||||||
|  |       - name: Extract metadata (tags, labels) for Docker | ||||||
|  |         id: meta | ||||||
|  |         uses: docker/metadata-action@v5.5.1 | ||||||
|  |         with: | ||||||
|  |           images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | ||||||
|  |           tags: | | ||||||
|  |             type=ref,event=branch | ||||||
|  |             type=ref,event=tag | ||||||
|  |             type=ref,event=pr | ||||||
|  |             type=sha | ||||||
|  |           flavor: | | ||||||
|  |             latest=${{ github.event_name == 'release' }} | ||||||
|  |  | ||||||
|  |       # 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 `tags` and `labels` parameters to tag and label the image with the output from the "meta" step. | ||||||
|  |       - name: Build and push Docker image | ||||||
|  |         uses: docker/build-push-action@v5.3.0 | ||||||
|  |         with: | ||||||
|  |           context: . | ||||||
|  |           push: true | ||||||
|  |           tags: ${{ steps.meta.outputs.tags }} | ||||||
|  |           labels: ${{ steps.meta.outputs.labels }} | ||||||
|  |  | ||||||
|  |   cleanup: | ||||||
|  |     if: ${{ always() }} | ||||||
|  |     needs: build-and-push-image | ||||||
|  |     uses: privacyguides/.github/.github/workflows/cleanup.yml@main | ||||||
							
								
								
									
										4
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							| @@ -3,6 +3,9 @@ name: Build Website | |||||||
| on: | on: | ||||||
|   workflow_call: |   workflow_call: | ||||||
|     inputs: |     inputs: | ||||||
|  |       base_config: | ||||||
|  |         type: string | ||||||
|  |         default: mkdocs-production.yml | ||||||
|       ref: |       ref: | ||||||
|         required: true |         required: true | ||||||
|         type: string |         type: string | ||||||
| @@ -90,6 +93,7 @@ jobs: | |||||||
|       - env: |       - env: | ||||||
|           GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |           GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||
|           CONTEXT: ${{ inputs.context }} |           CONTEXT: ${{ inputs.context }} | ||||||
|  |           MKDOCS_INHERIT: ${{ inputs.base_config }} | ||||||
|           PRODUCTION: true |           PRODUCTION: true | ||||||
|         run: | |         run: | | ||||||
|           pipenv run mkdocs build --config-file config/mkdocs.${{ inputs.lang }}.yml |           pipenv run mkdocs build --config-file config/mkdocs.${{ inputs.lang }}.yml | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								.github/workflows/publish-release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/publish-release.yml
									
									
									
									
										vendored
									
									
								
							| @@ -25,6 +25,10 @@ on: | |||||||
|     tags: |     tags: | ||||||
|       - "*" |       - "*" | ||||||
|  |  | ||||||
|  | concurrency: | ||||||
|  |   group: release-deployment | ||||||
|  |   cancel-in-progress: true | ||||||
|  |  | ||||||
| permissions: | permissions: | ||||||
|   contents: write |   contents: write | ||||||
|   pages: write |   pages: write | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								.github/workflows/test-lint.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/test-lint.yml
									
									
									
									
										vendored
									
									
								
							| @@ -63,7 +63,7 @@ jobs: | |||||||
|           # ADD YOUR CUSTOM ENV VARIABLES HERE OR DEFINE THEM IN A FILE .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY |           # ADD YOUR CUSTOM ENV VARIABLES HERE OR DEFINE THEM IN A FILE .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY | ||||||
|           DISABLE: COPYPASTE,SPELL,HTML |           DISABLE: COPYPASTE,SPELL,HTML | ||||||
|           DISABLE_LINTERS: JSON_JSONLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER |           DISABLE_LINTERS: JSON_JSONLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER | ||||||
|           DISABLE_ERRORS_LINTERS: CSS_STYLELINT,MARKDOWN_MARKDOWN_LINK_CHECK,YAML_YAMLLINT |           DISABLE_ERRORS_LINTERS: CSS_STYLELINT,MARKDOWN_MARKDOWN_LINK_CHECK,YAML_YAMLLINT,DOCKERFILE_HADOLINT,REPOSITORY_TRIVY | ||||||
|           EDITORCONFIG_EDITORCONFIG_CHECKER_ARGUMENTS: -disable-indentation |           EDITORCONFIG_EDITORCONFIG_CHECKER_ARGUMENTS: -disable-indentation | ||||||
|           ENV_DOTENV_LINTER_ARGUMENTS: "--skip QuoteCharacter" |           ENV_DOTENV_LINTER_ARGUMENTS: "--skip QuoteCharacter" | ||||||
|           MARKDOWN_MARKDOWN_LINK_CHECK_FILTER_REGEX_INCLUDE: (docs) |           MARKDOWN_MARKDOWN_LINK_CHECK_FILTER_REGEX_INCLUDE: (docs) | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -20,3 +20,6 @@ site | |||||||
| # Local Netlify folder | # Local Netlify folder | ||||||
| .netlify | .netlify | ||||||
| node_modules | node_modules | ||||||
|  |  | ||||||
|  | # Python | ||||||
|  | .venv | ||||||
|   | |||||||
							
								
								
									
										71
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | |||||||
|  | FROM python:3.12-alpine as base | ||||||
|  |  | ||||||
|  | LABEL org.opencontainers.image.source="https://github.com/privacyguides/privacyguides.org" | ||||||
|  |  | ||||||
|  | # Setup env | ||||||
|  | ENV LANG C.UTF-8 | ||||||
|  | ENV LC_ALL C.UTF-8 | ||||||
|  | ENV PYTHONDONTWRITEBYTECODE 1 | ||||||
|  | ENV PYTHONFAULTHANDLER 1 | ||||||
|  |  | ||||||
|  | FROM base AS python-deps | ||||||
|  |  | ||||||
|  | # Install pipenv and compilation dependencies | ||||||
|  | RUN pip install pipenv | ||||||
|  | RUN \ | ||||||
|  |   apk upgrade --update-cache -a \ | ||||||
|  | && \ | ||||||
|  |   apk add --no-cache \ | ||||||
|  |     gcc \ | ||||||
|  |     libffi-dev \ | ||||||
|  |     musl-dev | ||||||
|  |  | ||||||
|  | # Install python dependencies in /.venv | ||||||
|  | COPY modules/mkdocs-material ./modules/mkdocs-material | ||||||
|  | COPY Pipfile . | ||||||
|  | COPY Pipfile.lock . | ||||||
|  | RUN PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy | ||||||
|  |  | ||||||
|  | FROM base AS runtime | ||||||
|  |  | ||||||
|  | # Install runtime dependencies | ||||||
|  | RUN \ | ||||||
|  |   apk upgrade --update-cache -a \ | ||||||
|  | && \ | ||||||
|  |   apk add --no-cache \ | ||||||
|  |     cairo \ | ||||||
|  |     freetype-dev \ | ||||||
|  |     git \ | ||||||
|  |     git-fast-import \ | ||||||
|  |     jpeg-dev \ | ||||||
|  |     openssh \ | ||||||
|  |     pngquant \ | ||||||
|  |     tini \ | ||||||
|  |     zlib-dev \ | ||||||
|  |     libffi-dev \ | ||||||
|  |     musl-dev | ||||||
|  |  | ||||||
|  | # Copy virtual env from python-deps stage | ||||||
|  | COPY --from=python-deps /.venv /.venv | ||||||
|  | COPY --from=python-deps /modules/mkdocs-material /modules/mkdocs-material | ||||||
|  | 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 config/*.yml config/ | ||||||
|  | COPY config/layouts config/layouts | ||||||
|  | COPY config/.cache/plugin/social/fonts config/.cache/plugin/social/fonts | ||||||
|  |  | ||||||
|  | EXPOSE 8000 | ||||||
|  |  | ||||||
|  | ENV MKDOCS_INHERIT mkdocs-production.yml | ||||||
|  |  | ||||||
|  | HEALTHCHECK NONE | ||||||
|  |  | ||||||
|  | ENTRYPOINT ["mkdocs"] | ||||||
|  | CMD ["serve", "--dev-addr=0.0.0.0:8000", "--config-file=config/mkdocs.en.yml"] | ||||||
							
								
								
									
										4
									
								
								Pipfile.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								Pipfile.lock
									
									
									
										generated
									
									
									
								
							| @@ -45,7 +45,6 @@ | |||||||
|                 "sha256:432531d72347291b9a9ebfb6777026b607563fd8719c46ee742db0aef7271ba0", |                 "sha256:432531d72347291b9a9ebfb6777026b607563fd8719c46ee742db0aef7271ba0", | ||||||
|                 "sha256:8a5222d4e6c3f86f1f7046b63246877a63b49923a1cd202184c3a634ef546b3b" |                 "sha256:8a5222d4e6c3f86f1f7046b63246877a63b49923a1cd202184c3a634ef546b3b" | ||||||
|             ], |             ], | ||||||
|             "markers": "python_version >= '3.5'", |  | ||||||
|             "version": "==2.7.1" |             "version": "==2.7.1" | ||||||
|         }, |         }, | ||||||
|         "certifi": { |         "certifi": { | ||||||
| @@ -399,6 +398,7 @@ | |||||||
|                 "sha256:b070bbe8d3f0f6147689bed981d19bbb33070225373338df755a46893528104a", |                 "sha256:b070bbe8d3f0f6147689bed981d19bbb33070225373338df755a46893528104a", | ||||||
|                 "sha256:b0b58fbfa1bf7367dde8a557994e3b1637294be6cf2169810375caf8571a085c", |                 "sha256:b0b58fbfa1bf7367dde8a557994e3b1637294be6cf2169810375caf8571a085c", | ||||||
|                 "sha256:b560e3aa4b1d49e0e6c847d72665384db35b2f5d45f8e6a5c0072e0283430533", |                 "sha256:b560e3aa4b1d49e0e6c847d72665384db35b2f5d45f8e6a5c0072e0283430533", | ||||||
|  |                 "sha256:b6241d4eee5f89453307c2f2bfa03b50362052ca0af1efecf9fef9a41a22bb4f", | ||||||
|                 "sha256:b6787b643356111dfd4032b5bffe26d2f8331556ecb79e15dacb9275da02866e", |                 "sha256:b6787b643356111dfd4032b5bffe26d2f8331556ecb79e15dacb9275da02866e", | ||||||
|                 "sha256:bcbf4af004f98793a95355980764b3d80d47117678118a44a80b721c9913436a", |                 "sha256:bcbf4af004f98793a95355980764b3d80d47117678118a44a80b721c9913436a", | ||||||
|                 "sha256:beb72935a941965c52990f3a32d7f07ce869fe21c6af8b34bf6a277b33a345d3", |                 "sha256:beb72935a941965c52990f3a32d7f07ce869fe21c6af8b34bf6a277b33a345d3", | ||||||
| @@ -569,6 +569,7 @@ | |||||||
|             "extras": [ |             "extras": [ | ||||||
|                 "imaging" |                 "imaging" | ||||||
|             ], |             ], | ||||||
|  |             "markers": "python_version >= '3.8'", | ||||||
|             "path": "./modules/mkdocs-material" |             "path": "./modules/mkdocs-material" | ||||||
|         }, |         }, | ||||||
|         "mkdocs-material-extensions": { |         "mkdocs-material-extensions": { | ||||||
| @@ -673,7 +674,6 @@ | |||||||
|                 "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27", |                 "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27", | ||||||
|                 "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a" |                 "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a" | ||||||
|             ], |             ], | ||||||
|             "markers": "python_version >= '3.8'", |  | ||||||
|             "version": "==10.3.0" |             "version": "==10.3.0" | ||||||
|         }, |         }, | ||||||
|         "platformdirs": { |         "platformdirs": { | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								README.md
									
									
									
									
									
								
							| @@ -86,7 +86,14 @@ When you contribute to this repository you are doing so under the above licenses | |||||||
|  |  | ||||||
| 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. | ||||||
|  |  | ||||||
| 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. Running this website locally without access to insiders is unsupported. If you are submitting a PR, please ensure the automatic preview generated for your PR looks correct, as that site will be built with the production insiders build. | ### With `mkdocs-material` | ||||||
|  |  | ||||||
|  | 1. Install required packages: `pip install mkdocs-material` | ||||||
|  | 2. Run a local preview of the English site: `mkdocs serve --config-file config/mkdocs.en.yml` | ||||||
|  |  | ||||||
|  | ### 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. If you are submitting a PR, please ensure the automatic preview generated for your PR looks correct, as that site will be built with the production insiders build. | ||||||
|  |  | ||||||
| **Team members** should clone the repository with `mkdocs-material-insiders` directly. This method is identical to production: | **Team members** should clone the repository with `mkdocs-material-insiders` directly. This method is identical to production: | ||||||
|  |  | ||||||
| @@ -95,9 +102,9 @@ This website uses [`mkdocs-material-insiders`](https://squidfunk.github.io/mkdoc | |||||||
| 3. Install Python **3.12**. | 3. Install Python **3.12**. | ||||||
| 4. Install **pipenv**: `pip install pipenv` | 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) | 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: `pipenv run mkdocs serve --config-file config/mkdocs.en.yml` (set `CARDS=true` to generate social cards) | 6. Serve the site locally: `MKDOCS_INHERIT=mkdocs-production.yml pipenv run mkdocs serve --config-file config/mkdocs.en.yml` (set `CARDS=true` to generate social cards) | ||||||
|     - The site will be available at `http://localhost:8000` |     - The site will be available at `http://localhost:8000` | ||||||
|     - You can build the site locally with `pipenv run mkdocs build --config-file config/mkdocs.en.yml` |     - You can build the site locally with `MKDOCS_INHERIT=mkdocs-production.yml pipenv run mkdocs build --config-file config/mkdocs.en.yml` | ||||||
|     - This version of the site should be identical to the live, production version |     - 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. | 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. | ||||||
|   | |||||||
| @@ -307,36 +307,12 @@ watch: | |||||||
| plugins: | plugins: | ||||||
|   tags: {} |   tags: {} | ||||||
|   search: {} |   search: {} | ||||||
|   macros: {} |  | ||||||
|   meta: {} |  | ||||||
|   git-committers: |  | ||||||
|     enabled: !ENV [GITCOMMITTERS, PRODUCTION, NETLIFY, false] |  | ||||||
|     repository: privacyguides/privacyguides.org |  | ||||||
|     branch: main |  | ||||||
|   git-revision-date-localized: |  | ||||||
|     enabled: !ENV [GITREVISIONDATE, PRODUCTION, NETLIFY, false] |  | ||||||
|     exclude: |  | ||||||
|       - index.md |  | ||||||
|     fallback_to_build_date: true |  | ||||||
|   privacy: |   privacy: | ||||||
|     assets_exclude: |     assets_exclude: | ||||||
|       - cdn.jsdelivr.net/npm/mathjax@3/* |       - cdn.jsdelivr.net/npm/mathjax@3/* | ||||||
|   optimize: |  | ||||||
|     enabled: !ENV [OPTIMIZE, PRODUCTION, NETLIFY, false] |  | ||||||
|   typeset: {} |  | ||||||
|   social: |  | ||||||
|     cards: !ENV [CARDS, PRODUCTION, NETLIFY, true] |  | ||||||
|     cards_dir: assets/img/social |  | ||||||
|     cards_layout_dir: config/layouts |  | ||||||
|     cards_layout: page |  | ||||||
|     # cards_layout: pride |  | ||||||
|  |  | ||||||
| markdown_extensions: | markdown_extensions: | ||||||
|   admonition: {} |   admonition: {} | ||||||
|   material.extensions.preview: |  | ||||||
|     sources: |  | ||||||
|       exclude: |  | ||||||
|         - tools.md |  | ||||||
|   pymdownx.details: {} |   pymdownx.details: {} | ||||||
|   pymdownx.superfences: |   pymdownx.superfences: | ||||||
|     custom_fences: |     custom_fences: | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||||
| # IN THE SOFTWARE. | # IN THE SOFTWARE. | ||||||
|  |  | ||||||
| INHERIT: mkdocs-common.yml | INHERIT: !ENV [MKDOCS_INHERIT, mkdocs-common.yml] | ||||||
|  |  | ||||||
| # Disable any GitHub integrations | # Disable any GitHub integrations | ||||||
| repo_url: "" | repo_url: "" | ||||||
|   | |||||||
							
								
								
									
										29
									
								
								config/mkdocs-production.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								config/mkdocs-production.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | |||||||
|  | INHERIT: mkdocs-common.yml | ||||||
|  |  | ||||||
|  | plugins: | ||||||
|  |   macros: {} | ||||||
|  |   meta: {} | ||||||
|  |   git-committers: | ||||||
|  |     enabled: !ENV [GITCOMMITTERS, PRODUCTION, NETLIFY, false] | ||||||
|  |     repository: privacyguides/privacyguides.org | ||||||
|  |     branch: main | ||||||
|  |   git-revision-date-localized: | ||||||
|  |     enabled: !ENV [GITREVISIONDATE, PRODUCTION, NETLIFY, false] | ||||||
|  |     exclude: | ||||||
|  |       - index.md | ||||||
|  |     fallback_to_build_date: true | ||||||
|  |   optimize: | ||||||
|  |     enabled: !ENV [OPTIMIZE, PRODUCTION, NETLIFY, false] | ||||||
|  |   typeset: {} | ||||||
|  |   social: | ||||||
|  |     cards: !ENV [CARDS, PRODUCTION, NETLIFY, true] | ||||||
|  |     cards_dir: assets/img/social | ||||||
|  |     cards_layout_dir: config/layouts | ||||||
|  |     cards_layout: page | ||||||
|  |     # cards_layout: pride | ||||||
|  |  | ||||||
|  | markdown_extensions: | ||||||
|  |   material.extensions.preview: | ||||||
|  |     sources: | ||||||
|  |       exclude: | ||||||
|  |         - tools.md | ||||||
| @@ -18,7 +18,7 @@ | |||||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||||
| # IN THE SOFTWARE. | # IN THE SOFTWARE. | ||||||
|  |  | ||||||
| INHERIT: mkdocs-common.yml | INHERIT: !ENV [MKDOCS_INHERIT, mkdocs-common.yml] | ||||||
| site_url: "https://www.privacyguides.org/en/" | site_url: "https://www.privacyguides.org/en/" | ||||||
| site_dir: "../site/en" | site_dir: "../site/en" | ||||||
|  |  | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||||
| # IN THE SOFTWARE. | # IN THE SOFTWARE. | ||||||
|  |  | ||||||
| INHERIT: mkdocs-common.yml | INHERIT: !ENV [MKDOCS_INHERIT, mkdocs-common.yml] | ||||||
| docs_dir: "../i18n/es" | docs_dir: "../i18n/es" | ||||||
| site_url: "https://www.privacyguides.org/es/" | site_url: "https://www.privacyguides.org/es/" | ||||||
| site_dir: "../site/es" | site_dir: "../site/es" | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||||
| # IN THE SOFTWARE. | # IN THE SOFTWARE. | ||||||
|  |  | ||||||
| INHERIT: mkdocs-common.yml | INHERIT: !ENV [MKDOCS_INHERIT, mkdocs-common.yml] | ||||||
| docs_dir: "../i18n/fr" | docs_dir: "../i18n/fr" | ||||||
| site_url: "https://www.privacyguides.org/fr/" | site_url: "https://www.privacyguides.org/fr/" | ||||||
| site_dir: "../site/fr" | site_dir: "../site/fr" | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||||
| # IN THE SOFTWARE. | # IN THE SOFTWARE. | ||||||
|  |  | ||||||
| INHERIT: mkdocs-common.yml | INHERIT: !ENV [MKDOCS_INHERIT, mkdocs-common.yml] | ||||||
| docs_dir: "../i18n/he" | docs_dir: "../i18n/he" | ||||||
| site_url: "https://www.privacyguides.org/he/" | site_url: "https://www.privacyguides.org/he/" | ||||||
| site_dir: "../site/he" | site_dir: "../site/he" | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||||
| # IN THE SOFTWARE. | # IN THE SOFTWARE. | ||||||
|  |  | ||||||
| INHERIT: mkdocs-common.yml | INHERIT: !ENV [MKDOCS_INHERIT, mkdocs-common.yml] | ||||||
| docs_dir: "../i18n/it" | docs_dir: "../i18n/it" | ||||||
| site_url: "https://www.privacyguides.org/it/" | site_url: "https://www.privacyguides.org/it/" | ||||||
| site_dir: "../site/it" | site_dir: "../site/it" | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||||
| # IN THE SOFTWARE. | # IN THE SOFTWARE. | ||||||
|  |  | ||||||
| INHERIT: mkdocs-common.yml | INHERIT: !ENV [MKDOCS_INHERIT, mkdocs-common.yml] | ||||||
| docs_dir: "../i18n/nl" | docs_dir: "../i18n/nl" | ||||||
| site_url: "https://www.privacyguides.org/nl/" | site_url: "https://www.privacyguides.org/nl/" | ||||||
| site_dir: "../site/nl" | site_dir: "../site/nl" | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||||
| # IN THE SOFTWARE. | # IN THE SOFTWARE. | ||||||
|  |  | ||||||
| INHERIT: mkdocs-common.yml | INHERIT: !ENV [MKDOCS_INHERIT, mkdocs-common.yml] | ||||||
| docs_dir: "../i18n/ru" | docs_dir: "../i18n/ru" | ||||||
| site_url: "https://www.privacyguides.org/ru/" | site_url: "https://www.privacyguides.org/ru/" | ||||||
| site_dir: "../site/ru" | site_dir: "../site/ru" | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||||
| # IN THE SOFTWARE. | # IN THE SOFTWARE. | ||||||
|  |  | ||||||
| INHERIT: mkdocs-common.yml | INHERIT: !ENV [MKDOCS_INHERIT, mkdocs-common.yml] | ||||||
| docs_dir: "../i18n/zh-Hant" | docs_dir: "../i18n/zh-Hant" | ||||||
| site_url: "https://www.privacyguides.org/zh-Hant/" | site_url: "https://www.privacyguides.org/zh-Hant/" | ||||||
| site_dir: "../site/zh-Hant" | site_dir: "../site/zh-Hant" | ||||||
|   | |||||||
 Submodule modules/mkdocs-material updated: fa7ed01691...2ab4dc8ce4
									
								
							| @@ -484,7 +484,7 @@ path[d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l- | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Cover images */ | /* Cover images */ | ||||||
| .center-cropped { | .cover.center-cropped { | ||||||
|     width: 100%; |     width: 100%; | ||||||
|     height: 200px; |     height: 200px; | ||||||
|     background-position: center center; |     background-position: center center; | ||||||
| @@ -497,19 +497,15 @@ path[d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l- | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Set the image to fill its parent and make transparent */ | /* Set the image to fill its parent and make transparent */ | ||||||
| .center-cropped img { | .cover.center-cropped img { | ||||||
|     min-height: 100%; |     height: 100%; | ||||||
|     min-width: 100%; |     width: 100%; | ||||||
|     opacity: 0; |     object-fit: cover; | ||||||
| } | } | ||||||
|  |  | ||||||
| .center-cropped h1 { | .cover ~ h1 { | ||||||
|     position: absolute; |     margin: 1.25em 0 0; | ||||||
|     top: 50%; |     text-align: center; | ||||||
|     left: 50%; |  | ||||||
|     transform: translate(-50%, -50%); |  | ||||||
|     color: white; |  | ||||||
|     z-index: 1; |  | ||||||
| } | } | ||||||
|  |  | ||||||
| /* Social share button */ | /* Social share button */ | ||||||
|   | |||||||
| @@ -22,10 +22,10 @@ | |||||||
| --> | --> | ||||||
|  |  | ||||||
| {% if page and page.meta and page.meta.cover %} | {% if page and page.meta and page.meta.cover %} | ||||||
|   <div class="center-cropped" style="background-image:linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('/en/assets/img/cover/{{ page.meta.cover }}');"> |   <div class="cover center-cropped"> | ||||||
|       <img src="/en/assets/img/cover/{{ page.meta.cover }}" alt=""> |       <img src="/en/assets/img/cover/{{ page.meta.cover }}" alt=""> | ||||||
|   </div> |   </div> | ||||||
|   <h1 style="margin-top: 50px; text-align: center">{{ page.title | d(config.site_name, true)}}</h1> |   <h1>{{ page.title | d(config.site_name, true)}}</h1> | ||||||
| {% endif %} | {% endif %} | ||||||
|  |  | ||||||
| <!-- Tags --> | <!-- Tags --> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user