> For the complete documentation index, see [llms.txt](https://lifeexe-art.gitbook.io/unreal-automation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lifeexe-art.gitbook.io/unreal-automation/plan-video-kursa/lekciya-33.md).

# Лекция 33

{% embed url="<https://life-exe.github.io/UnrealTPSGame/>" %}

## Software

{% embed url="<https://www.doxygen.nl/index.html>" %}

{% embed url="<https://www.mathjax.org/>" %}

{% embed url="<https://www.latex-project.org/>" %}

{% embed url="<https://git-scm.com/book/en/v2/Git-Tools-Submodules>" %}

{% embed url="<https://yaml.org/spec/1.2.2/>" %}

{% embed url="<https://www.python.org/>" %}

{% embed url="<https://conan.io/>" %}

{% embed url="<https://conan.io/center/doxygen>" %}

{% embed url="<https://www.mkdocs.org/>" %}

{% embed url="<https://en.wikipedia.org/wiki/Shebang_(Unix)>" %}

## Doxygen design & filter

{% embed url="<https://github.com/life-exe/Doxygen-Flat-Theme>" %}

{% embed url="<https://github.com/life-exe/Doxygen-Dark-Theme>" %}

{% embed url="<https://github.com/life-exe/Unreal-Engine-Doxygen-Filter>" %}

## Doxygen properties

```ini
PROJECT_NAME           = "TPS"
PROJECT_NUMBER         = 1.0.0
OUTPUT_DIRECTORY       = Documentation
INPUT                  = Source README.md
RECURSIVE              = YES
INPUT_FILTER           = py devops\docs\Unreal-Engine-Doxygen-Filter\filter_ue4_macros.py
USE_MDFILE_AS_MAINPAGE = README.md
HTML_FOOTER            = devops/docs/Doxygen-Dark-Theme/html_footer.html
HTML_EXTRA_STYLESHEET  = devops/docs/Doxygen-Flat-Theme/src/doxygen-style.css
HTML_EXTRA_FILES       = devops/docs/Doxygen-Flat-Theme/src/img/closed-folder.png \
devops/docs/Doxygen-Flat-Theme/src/img/document.png \
devops/docs/Doxygen-Flat-Theme/src/img/opened-folder.png \
devops/docs/Doxygen-Flat-Theme/src/img/off_sync.png \
devops/docs/Doxygen-Flat-Theme/src/img/on_sync.png
USE_MATHJAX            = YES
```

## Jenkins

{% embed url="<https://plugins.jenkins.io/htmlpublisher/>" %}

{% embed url="<https://issues.jenkins.io/browse/JENKINS-43614>" %}

## GitHub workflows & actions

{% embed url="<https://github.com/features/actions>" %}

{% embed url="<https://docs.github.com/en/actions>" %}

{% embed url="<https://docs.github.com/en/actions/using-workflows/about-workflows>" %}

{% embed url="<https://github.com/actions>" %}

{% embed url="<https://github.com/actions/deploy-pages/issues/9>" %}

{% embed url="<https://docs.conan.io/en/latest/versioning/revisions.html>" %}

## Code

```java
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self'; style-src 'self' 'unsafe-inline'; font-src *; sandbox allow-forms allow-scripts allow-same-origin;");
```

```git
git submodule update --init --recursive
```

```yaml
name: Game Documentation
on:
  push:
    branches: 
    - master
  pull_request:
    branches: 
    - master

permissions:
  pages: write
  deployments: write
  id-token: write
  
env:
  CONAN_REVISIONS_ENABLED: 1

jobs:
  docs:
    runs-on: windows-latest

    environment:
     name: github-pages
     url: ${{ steps.deployment.outputs.page_url }}

    steps:
      - name: Check Installed Software
        run: where git & where python & where pip
        shell: cmd
        
      - name: Checkout
        uses: actions/checkout@v3
        with:
          submodules: 'recursive'

      - name: Install Conan
        run: pip install conan
        
      - name: Install Doxygen
        run: conan download doxygen/1.9.4@#2af713e135f12722e3536808017ba086:e94378795f92fbf88bb8cef7f9c2f38c4ecf9126 --remote conancenter
        
      - name: Run Doxygen
        run: doxygen devops\docs\Doxyfile
        
      - name: Upload Docs
        uses: actions/upload-pages-artifact@v1
        with:
          path: Documentation\html
        
      - name: Setup Pages
        uses: actions/configure-pages@v2
        
      - name: Deploy To GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v1

```

{% embed url="<https://stackoverflow.com/questions/60034/how-can-you-find-and-replace-text-in-a-file-using-the-windows-command-line-envir/20999154#20999154>" %}

{% embed url="<https://youtu.be/wvy6lLt1YfY>" %}
