# Лекция 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>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lifeexe-art.gitbook.io/unreal-automation/plan-video-kursa/lekciya-33.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
