Skip to content

Prepare PT-BR directory for translation #263

Prepare PT-BR directory for translation

Prepare PT-BR directory for translation #263

Workflow file for this run

name: Pull request pipeline
# checks are only on the draft and root directories because that is where the changes should be
on:
pull_request:
branches:
- main
workflow_dispatch:
env:
RESOURCE_PATH: release/assets/images:release/assets:release:assets/images:assets/images/logos:assets/images/logos/publish
# for security reasons the github actions are pinned to specific release versions
jobs:
link_checker:
name: Link checker
runs-on: ubuntu-24.04
steps:
- name: Checkout markdown
uses: actions/checkout@v4.2.0
- name: Link Checker
uses: lycheeverse/lychee-action@v2.2.0
with:
# skip the jekyll files under '_includes' directory, only check the draft and root directories
args: >-
--no-progress
--max-retries 5
--exclude-path './_includes/*.html'
'./draft/**/*.md'
'*.md'
fail: true
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
md_linter:
name: Lint markdown
runs-on: ubuntu-24.04
steps:
- name: Checkout markdown
uses: actions/checkout@v4.2.0
- name: Lint markdown
uses: DavidAnson/markdownlint-cli2-action@v19.0.0
with:
config: '.markdownlint.yaml'
globs: 'draft/**/*.md'
# only check the draft directory, that is where the changes should be
spell_checker:
name: Check spelling
runs-on: ubuntu-24.04
steps:
- name: Checkout markdown
uses: actions/checkout@v4.2.0
- name: Spell check EN draft
uses: rojopolis/spellcheck-github-actions@0.45.0
with:
config_path: .spellcheck-en.yaml
# checks the draft directory with an EN dictionary
check_es:
name: Check ES translation
runs-on: ubuntu-24.04
steps:
- name: Checkout markdown
uses: actions/checkout@v4.2.0
- name: Spell check ES release
uses: rojopolis/spellcheck-github-actions@0.45.0
with:
config_path: .spellcheck-es.yaml
# checks the release-es directory with an ES dictionary
- name: Lint ES markdown
uses: DavidAnson/markdownlint-cli2-action@v19.0.0
with:
config: '.markdownlint.yaml'
globs: 'release-es/**/*.md'
check_pt-br:
name: Check PT-BR translation
runs-on: ubuntu-24.04
steps:
- name: Checkout markdown
uses: actions/checkout@v4.2.0
- name: Set up Python
uses: actions/setup-python@v5.3.0
with:
python-version: '3.10'
- name: Install pyspelling
run: |
python -m pip install --upgrade pip setuptools
python -m pip install pyspelling
sudo apt-get install aspell aspell-pt
- name: Spell check PT-BR release
# disabled for now, until translation has less English in it
if: false
run: |
python -m pyspelling --config .spellcheck-pt-br.yaml
- name: Lint PT-BR markdown
uses: DavidAnson/markdownlint-cli2-action@v19.0.0
with:
config: '.markdownlint.yaml'
globs: 'release-pt-br/**/*.md'
export_draft:
name: Export epub and pdf (Draft)
runs-on: ubuntu-24.04
needs: [link_checker, md_linter, spell_checker]
steps:
- name: Checkout markdown
uses: actions/checkout@v4.2.0
- name: Combine markdown
run: |
mkdir publish
mkdir assets/images/logos/publish
mkdir draft/temp
tail --lines=+14 -q $(find draft -name "*[0-9]*.md" | sort) > draft/temp/draft.markdown
sed -i "s/{: .image-right }/{height=180px}/g" draft/temp/draft.markdown
sed -i "s/{: .image-right-small }/{height=26px}/g" draft/temp/draft.markdown
- name: Export to pdf
uses: docker://pandoc/latex:3.1
with:
args: >-
--from=markdown
--output=publish/OWASP_Developer_Guide.draft.pdf
--resource-path=${{ env.RESOURCE_PATH }}
-fmarkdown-implicit_figures
draft/title.pdf.yaml
draft/temp/draft.markdown
- name: Export to epub
uses: docker://pandoc/latex:3.1
with:
args: >-
--from=markdown
--output=publish/OWASP_Developer_Guide.draft.epub
--resource-path=${{ env.RESOURCE_PATH }}
-fmarkdown-implicit_figures
draft/title.yaml
draft/temp/draft.markdown
- name: Save pdfs and epubs
uses: actions/upload-artifact@v4.5.0
with:
name: export-draft
path: publish
export_es:
name: Export epub and pdf (ES)
runs-on: ubuntu-24.04
needs: check_es
steps:
- name: Checkout markdown
uses: actions/checkout@v4.2.0
- name: Combine ES markdown
run: |
mkdir publish
mkdir assets/images/logos/publish
mkdir release/temp
tail --lines=+14 -q $(find release-es -name "*[0-9]*.md" | sort) > release/temp/release.markdown
sed -i "s/{: .image-right }/{height=180px}/g" release/temp/release.markdown
sed -i "s/{: .image-right-small }/{height=26px}/g" release/temp/release.markdown
- name: Export to pdf
uses: docker://pandoc/latex:3.1
with:
args: >-
--from=markdown
--output=publish/OWASP_Developer_Guide.ES.pdf
--resource-path=${{ env.RESOURCE_PATH }}
-fmarkdown-implicit_figures
release-es/title.pdf.yaml
release/temp/release.markdown
- name: Export to epub
uses: docker://pandoc/latex:3.1
with:
args: >-
--from=markdown
--output=publish/OWASP_Developer_Guide.ES.epub
--resource-path=${{ env.RESOURCE_PATH }}
-fmarkdown-implicit_figures
release-es/title.yaml
release/temp/release.markdown
- name: Save pdfs and epubs
uses: actions/upload-artifact@v4.5.0
with:
name: export-es
path: publish
export_pt-br:
name: Export epub and pdf (PT-BR)
runs-on: ubuntu-24.04
needs: check_pt-br
steps:
- name: Checkout markdown
uses: actions/checkout@v4.2.0
- name: Combine PT-BR markdown
run: |
mkdir publish
mkdir assets/images/logos/publish
mkdir release/temp
tail --lines=+14 -q $(find release-pt-br -name "*[0-9]*.md" | sort) > release/temp/release.markdown
sed -i "s/{: .image-right }/{height=180px}/g" release/temp/release.markdown
sed -i "s/{: .image-right-small }/{height=26px}/g" release/temp/release.markdown
- name: Export to pdf
uses: docker://pandoc/latex:3.1
with:
args: >-
--from=markdown
--output=publish/OWASP_Developer_Guide.PT-BR.pdf
--resource-path=${{ env.RESOURCE_PATH }}
-fmarkdown-implicit_figures
release-pt-br/title.pdf.yaml
release/temp/release.markdown
- name: Export to epub
uses: docker://pandoc/latex:3.1
with:
args: >-
--from=markdown
--output=publish/OWASP_Developer_Guide.PT-BR.epub
--resource-path=${{ env.RESOURCE_PATH }}
-fmarkdown-implicit_figures
release-pt-br/title.yaml
release/temp/release.markdown
- name: Save pdfs and epubs
uses: actions/upload-artifact@v4.5.0
with:
name: export-pt-br
path: publish