mkdocs (Dokumentationsseite)
Die Dokumentation der Engine Pi ist mit MkDocs und dem Theme Material realisiert. Sie verwendet Tutorials und Bilder aus dem Engine Alpha Wiki, die unter der Creative Commons „Namensnennung, Weitergabe unter gleichen Bedingungen“ Lizenz stehen.
Makros:
Das MkDocs-Plugin Mkdocs-Macros ermöglicht den Einsatz von Makros. Die Makros sind in der Datei docs/macros.py definiert. Folgende Makros können verwendet werden:
Java spezifisch
javadoc(spec, link_title?)
- Klasse:
- Paket:
- Methode:
- Attribute:
- Engine Pi: Controller#config
demo(relpath, hash?, lines?)
Zum Java-Code: demos/docs/dev/design/SimpleGeometricActorsDemo.java
{{ demo('docs/dev/design/SimpleGeometricActorsDemo', 'd9e92a3759dce13923528f62a1afa8328be5126e', 'L38-L42') }}
Zum Java-Code: demos/docs/dev/design/SimpleGeometricActorsDemo.java
import_admonition(class_path)
Import
Die Klasse Group ist im Paket pi.actor enthalten und kann über die Anweisung
importiert werden.
code(path, start_line?, end_line?, line?, link?, from_import?)
Ohne Argumente
Ohne Argumente wird die komplette Java-Datei eingebunden.
from_import=true
Ist das Argument from_import auf wahr gesetzt, so wird der Quelltext ab dem ersten import-Statement angezeigt.
link=false
Das Argument link steuert, ob eine Link zum Github-Repository angehängt werden
soll.
line(relpath, line)
assets (Mediendaten)
image(relpath, caption?)
Das Logo der Engine Pi
video(relpath, caption?)
{{ video('docs/MainAnimation.mp4', 'Die Hauptanimation der Engine Pi. <br>Sie erscheint, wenn <code>Controller.start()</code> ohne Szene ausgeführt wird.') }}
Die Hauptanimation der Engine Pi.
Sie erscheint, wenn Controller.start() ohne Szene ausgeführt wird.
Projekt spezifisch
contribute()
Warning
Diese Hilfeseite hat leider noch keinen Inhalt. Hilf mit und fülle diese Seite mit Inhalt.
repo_link(relpath, link_title)
Vom Macros-Plugin bereit gestellt.
Macros Plugin Environment
General List
All available variables and filters within the macros plugin:
| Variable | Type | Content |
|---|---|---|
| extra | dict | version = '0.48.0', generator = False, social = [{'icon': 'fontawesome/brands/github', 'link': 'https://github.com/engine-pi/engine-pi'}, {'icon': 'simple/forgejo', 'link': 'https://inf.pirckheimer-gymnasium.de/engine-pi/engine-pi'}, {'icon': 'fontawesome/brands/java', 'link': 'https://engine-pi.github.io/javadocs/pi/package-summary.html'}, {'icon': 'fontawesome/solid/paper-plane', 'link': 'mailto:josef.friedrich@pirckheimer-gymnasium.de'}] |
| config | MkDocsConfig | {'config_file_path': '/home/runner/work/engine-pi/engine-pi/mkdocs.yml', 'site_name': 'Engine Pi', 'nav': [{'Handbuch': ['index.md', {'Hauptklassen': ['manual/main-classes/index.md', {'Controller (Steuerung)': ['manual/main-classes/controller/index.md', 'manual/main-classes/controller/coordinate-system.md', 'manual/main-classes/controller/instant-mode.md', 'manual/main-classes/controller/game-loop.md', 'manual/main-classes/controller/dialog.md', 'manual/main-classes/controller/jukebox.md']}, 'manual/main-classes/scene.md', 'manual/main-classes/camera.md', 'manual/main-classes/layer.md', {'Actor (Figur)': ['manual/main-classes/actor/index.md', 'manual/main-classes/actor/group.md', 'manual/main-classes/actor/animation.md', 'manual/main-classes/actor/circle.md', 'manual/main-classes/actor/counter.md', 'manual/main-classes/actor/grid.md', 'manual/main-classes/actor/image-text.md', 'manual/main-classes/actor/image.md', 'manual/main-classes/actor/line.md', 'manual/main-classes/actor/polygon.md', 'manual/main-classes/actor/rectangle.md', 'manual/main-classes/actor/regular-polygon.md', 'manual/main-classes/actor/square.md', 'manual/main-classes/actor/star.md', 'manual/main-classes/actor/stateful-animation.md', 'manual/main-classes/actor/stop-watch.md', 'manual/main-classes/actor/text-block.md', 'manual/main-classes/actor/text.md', 'manual/main-classes/actor/tile-map.md', 'manual/main-classes/actor/triangle.md', 'manual/main-classes/actor/turtle.md']}]}, {'events (Ereignissteuerung)': ['manual/events/index.md', 'manual/events/key-event.md', 'manual/events/key-stroke.md', 'manual/events/mouse-click.md', 'manual/events/collision.md', 'manual/events/repeat.md', 'manual/events/shortcuts.md']}, {'physics (Physiksimulation)': ['manual/physics/index.md', 'manual/physics/body-type.md', 'manual/physics/gravity.md', 'manual/physics/density.md', 'manual/physics/restitution.md', 'manual/physics/impulse.md', 'manual/physics/joints.md']}, {'Ressourcenverwaltung': ['manual/resources/index.md', 'manual/resources/colors.md', 'manual/resources/fonts.md', 'manual/resources/images.md', 'manual/resources/sounds/index.md', 'manual/resources/config.md']}, {'Projekte': ['manual/projects/index.md', 'manual/projects/philosophers.md']}, {'Java': ['manual/java/index.md', 'manual/java/design-pattern.md', 'manual/java/exceptions.md', 'manual/java/foreach.md', 'manual/java/ide.md', 'manual/java/import.md', 'manual/java/index.md', 'manual/java/lambda.md', 'manual/java/overloading.md', 'manual/java/packages.md', 'manual/java/super.md', 'manual/java/generics.md']}, {'Entwicklung': ['manual/dev/index.md', 'manual/dev/monorepo.md', 'manual/dev/design.md', 'manual/dev/coding-style.md', 'manual/dev/javadoc.md', 'manual/dev/mkdocs.md', 'manual/dev/setter-getter.md', 'manual/dev/versions.md', 'manual/dev/tests.md', 'manual/dev/go-to-file.md', 'manual/dev/screen-recording.md', 'manual/dev/logging.md', 'manual/dev/graphics2d.md', 'manual/dev/other-engines.md']}]}, {'API (javadocs)': 'https://engine-pi.github.io/javadocs/pi/package-summary.html'}, 'download.md'], 'pages': None, 'exclude_docs': None, 'draft_docs': None, 'not_in_nav': None, 'site_url': 'https://engine-pi.github.io/engine-pi/', 'site_description': None, 'site_author': None, 'theme': Theme(name='material', dirs=['/opt/hostedtoolcache/Python/3.14.4/x64/lib/python3.14/site-packages/material/templates', '/opt/hostedtoolcache/Python/3.14.4/x64/lib/python3.14/site-packages/mkdocs/templates'], static_templates={'sitemap.xml', '404.html'}, name='material', locale=Locale('en'), language='en', direction=None, features=['navigation.indexes', 'navigation.footer', 'content.code.copy', 'content.code.select', 'content.action.edit'], font={'text': 'Cantarell', 'code': 'Ubuntu Mono'}, icon=None, favicon='assets/images/favicon.png', logo='_assets/logo.svg'), 'docs_dir': '/home/runner/work/engine-pi/engine-pi/docs', 'site_dir': '/home/runner/work/engine-pi/engine-pi/site', 'copyright': 'Copyright © 2024 - 2026 Josef Friedrich', 'google_analytics': None, 'dev_addr': _IpAddressValue(host='127.0.0.1', port=8000), 'use_directory_urls': True, 'repo_url': 'https://github.com/engine-pi/engine-pi', 'repo_name': 'Engine Pi', 'edit_uri_template': None, 'edit_uri': 'edit/main/docs/', 'extra_css': ['_assets/extra.css'], 'extra_javascript': ['_assets/mathjax.js', 'https://unpkg.com/mathjax@3/es5/tex-mml-chtml.js'], 'extra_templates': [], 'markdown_extensions': ['toc', 'tables', 'fenced_code', 'pymdownx.highlight', 'pymdownx.inlinehilite', 'pymdownx.snippets', 'pymdownx.superfences', 'footnotes', 'pymdownx.magiclink', 'attr_list', 'md_in_html', 'pymdownx.blocks.caption', 'admonition', 'pymdownx.details', 'pymdownx.emoji', 'pymdownx.arithmatex'], 'mdx_configs': {'pymdownx.highlight': {'anchor_linenums': True, 'line_spans': '__span', 'pygments_lang_class': True}, 'pymdownx.emoji': {'emoji_index': |
| environment | dict | system = 'Linux', system_version = '6.17.0-1010-azure', python_version = '3.14.4', mkdocs_version = '1.6.1', macros_plugin_version = '1.5.0', jinja2_version = '3.1.6' |
| plugin | LegacyConfig | {'module_name': 'docs/macros', 'modules': [], 'render_by_default': True, 'force_render_paths': '', 'include_dir': '', 'include_yaml': [], 'j2_block_start_string': '', 'j2_block_end_string': '', 'j2_variable_start_string': '', 'j2_variable_end_string': '', 'j2_comment_start_string': '', 'j2_comment_end_string': '', 'j2_extensions': [], 'on_undefined': 'keep', 'on_error_fail': False, 'verbose': False} |
| git | dict | status = True, date [datetime], short_commit = '8fbab29', commit = '8fbab29ee30a228bfbc9b928565769db220b9b87', tag = '', short_tag = '', author = 'Josef Friedrich', author_email = 'josef@friedrich.rocks', committer = 'Josef Friedrich', committer_email = 'josef@friedrich.rocks', date_ISO = 'Sun May 10 10:59:59 2026 +0200', message = 'Refactor the WorldHandler by implmenting an new helper class: BodySorter', raw = 'commit 8fbab29ee30a228bfbc9b928565769db220b9b87\nAuthor: Josef Friedrich |
| version | str | '0.48.0' |
| generator | bool | False |
| social | SuperList | [{'icon': 'fontawesome/brands/github', 'link': 'https://github.com/engine-pi/engine-pi'}, {'icon': 'simple/forgejo', 'link': 'https://inf.pirckheimer-gymnasium.de/engine-pi/engine-pi'}, {'icon': 'fontawesome/brands/java', 'link': 'https://engine-pi.github.io/javadocs/pi/package-summary.html'}, {'icon': 'fontawesome/solid/paper-plane', 'link': 'mailto:josef.friedrich@pirckheimer-gymnasium.de'}] |
| macros | SuperDict | context [function], macros_info [function], now [function], fix_url [function], javadoc [function], methods [function], demo [function], image [function], video [function], contribute [function], import_admonition [function], static_import_admonition [function], repo_link [function], code [function], line [function] |
| filters | dict | pretty [function], relative_url [function] |
| filters_builtin | dict | abs [builtin_function_or_method], attr [function], batch [function], capitalize [function], center [function], count [builtin_function_or_method], d [function], default [function], dictsort [function], e [function], escape [function], filesizeformat [function], first [function], float [function], forceescape [function], format [function], groupby [function], indent [function], int [function], join [function], last [function], length [builtin_function_or_method], list [function], lower [function], items [function], map [function], min [function], max [function], pprint [function], random [function], reject [function], rejectattr [function], replace [function], reverse [function], round [function], safe [function], select [function], selectattr [function], slice [function], sort [function], string [function], striptags [function], sum [function], title [function], trim [function], truncate [function], unique [function], upper [function], urlencode [function], urlize [function], wordcount [function], wordwrap [function], xmlattr [function], tojson [function] |
| navigation | Navigation | |
| files | Files | |
| page | Page | Page(title='`mkdocs` (Dokumentationsseite)', url='/engine-pi/manual/dev/mkdocs/') |
Config Information
Standard MkDocs configuration information. Do not try to modify.
e.g. {{ config.docs_dir }}
See also the MkDocs documentation on the config object.
| Variable | Type | Content |
|---|---|---|
| config_file_path | str | '/home/runner/work/engine-pi/engine-pi/mkdocs.yml' |
| site_name | str | 'Engine Pi' |
| nav | list | [{'Handbuch': ['index.md', {'Hauptklassen': ['manual/main-classes/index.md', {'Controller (Steuerung)': ['manual/main-classes/controller/index.md', 'manual/main-classes/controller/coordinate-system.md', 'manual/main-classes/controller/instant-mode.md', 'manual/main-classes/controller/game-loop.md', 'manual/main-classes/controller/dialog.md', 'manual/main-classes/controller/jukebox.md']}, 'manual/main-classes/scene.md', 'manual/main-classes/camera.md', 'manual/main-classes/layer.md', {'Actor (Figur)': ['manual/main-classes/actor/index.md', 'manual/main-classes/actor/group.md', 'manual/main-classes/actor/animation.md', 'manual/main-classes/actor/circle.md', 'manual/main-classes/actor/counter.md', 'manual/main-classes/actor/grid.md', 'manual/main-classes/actor/image-text.md', 'manual/main-classes/actor/image.md', 'manual/main-classes/actor/line.md', 'manual/main-classes/actor/polygon.md', 'manual/main-classes/actor/rectangle.md', 'manual/main-classes/actor/regular-polygon.md', 'manual/main-classes/actor/square.md', 'manual/main-classes/actor/star.md', 'manual/main-classes/actor/stateful-animation.md', 'manual/main-classes/actor/stop-watch.md', 'manual/main-classes/actor/text-block.md', 'manual/main-classes/actor/text.md', 'manual/main-classes/actor/tile-map.md', 'manual/main-classes/actor/triangle.md', 'manual/main-classes/actor/turtle.md']}]}, {'events (Ereignissteuerung)': ['manual/events/index.md', 'manual/events/key-event.md', 'manual/events/key-stroke.md', 'manual/events/mouse-click.md', 'manual/events/collision.md', 'manual/events/repeat.md', 'manual/events/shortcuts.md']}, {'physics (Physiksimulation)': ['manual/physics/index.md', 'manual/physics/body-type.md', 'manual/physics/gravity.md', 'manual/physics/density.md', 'manual/physics/restitution.md', 'manual/physics/impulse.md', 'manual/physics/joints.md']}, {'Ressourcenverwaltung': ['manual/resources/index.md', 'manual/resources/colors.md', 'manual/resources/fonts.md', 'manual/resources/images.md', 'manual/resources/sounds/index.md', 'manual/resources/config.md']}, {'Projekte': ['manual/projects/index.md', 'manual/projects/philosophers.md']}, {'Java': ['manual/java/index.md', 'manual/java/design-pattern.md', 'manual/java/exceptions.md', 'manual/java/foreach.md', 'manual/java/ide.md', 'manual/java/import.md', 'manual/java/index.md', 'manual/java/lambda.md', 'manual/java/overloading.md', 'manual/java/packages.md', 'manual/java/super.md', 'manual/java/generics.md']}, {'Entwicklung': ['manual/dev/index.md', 'manual/dev/monorepo.md', 'manual/dev/design.md', 'manual/dev/coding-style.md', 'manual/dev/javadoc.md', 'manual/dev/mkdocs.md', 'manual/dev/setter-getter.md', 'manual/dev/versions.md', 'manual/dev/tests.md', 'manual/dev/go-to-file.md', 'manual/dev/screen-recording.md', 'manual/dev/logging.md', 'manual/dev/graphics2d.md', 'manual/dev/other-engines.md']}]}, {'API (javadocs)': 'https://engine-pi.github.io/javadocs/pi/package-summary.html'}, 'download.md'] |
| pages | NoneType | None |
| exclude_docs | NoneType | None |
| draft_docs | NoneType | None |
| not_in_nav | NoneType | None |
| site_url | str | 'https://engine-pi.github.io/engine-pi/' |
| site_description | NoneType | None |
| site_author | NoneType | None |
| theme | Theme | Theme(name='material', dirs=['/opt/hostedtoolcache/Python/3.14.4/x64/lib/python3.14/site-packages/material/templates', '/opt/hostedtoolcache/Python/3.14.4/x64/lib/python3.14/site-packages/mkdocs/templates'], static_templates={'sitemap.xml', '404.html'}, name='material', locale=Locale('en'), language='en', direction=None, features=['navigation.indexes', 'navigation.footer', 'content.code.copy', 'content.code.select', 'content.action.edit'], font={'text': 'Cantarell', 'code': 'Ubuntu Mono'}, icon=None, favicon='assets/images/favicon.png', logo='_assets/logo.svg') |
| docs_dir | str | '/home/runner/work/engine-pi/engine-pi/docs' |
| site_dir | str | '/home/runner/work/engine-pi/engine-pi/site' |
| copyright | str | 'Copyright © 2024 - 2026 Josef Friedrich' |
| google_analytics | NoneType | None |
| dev_addr | _IpAddressValue | _IpAddressValue(host='127.0.0.1', port=8000) |
| use_directory_urls | bool | True |
| repo_url | str | 'https://github.com/engine-pi/engine-pi' |
| repo_name | str | 'Engine Pi' |
| edit_uri_template | NoneType | None |
| edit_uri | str | 'edit/main/docs/' |
| extra_css | list | ['_assets/extra.css'] |
| extra_javascript | list | ['_assets/mathjax.js', 'https://unpkg.com/mathjax@3/es5/tex-mml-chtml.js'] |
| extra_templates | list | [] |
| markdown_extensions | list | ['toc', 'tables', 'fenced_code', 'pymdownx.highlight', 'pymdownx.inlinehilite', 'pymdownx.snippets', 'pymdownx.superfences', 'footnotes', 'pymdownx.magiclink', 'attr_list', 'md_in_html', 'pymdownx.blocks.caption', 'admonition', 'pymdownx.details', 'pymdownx.emoji', 'pymdownx.arithmatex'] |
| mdx_configs | dict | pymdownx.highlight [dict], pymdownx.emoji [dict], pymdownx.arithmatex [dict] |
| strict | bool | True |
| remote_branch | str | 'gh-pages' |
| remote_name | str | 'origin' |
| extra | LegacyConfig | {'version': '0.48.0', 'generator': False, 'social': [{'icon': 'fontawesome/brands/github', 'link': 'https://github.com/engine-pi/engine-pi'}, {'icon': 'simple/forgejo', 'link': 'https://inf.pirckheimer-gymnasium.de/engine-pi/engine-pi'}, {'icon': 'fontawesome/brands/java', 'link': 'https://engine-pi.github.io/javadocs/pi/package-summary.html'}, {'icon': 'fontawesome/solid/paper-plane', 'link': 'mailto:josef.friedrich@pirckheimer-gymnasium.de'}]} |
| plugins | PluginCollection | macros [MacrosPlugin], drawio [DrawioPlugin] |
| hooks | dict | |
| watch | list | ['/home/runner/work/engine-pi/engine-pi'] |
| validation | Validation | {'nav': {'omitted_files': 20, 'not_found': 30, 'absolute_links': 20}, 'links': {'not_found': 30, 'absolute_links': 20, 'unrecognized_links': 20, 'anchors': 20}} |
Macros
These macros have been defined programmatically for this environment (module or pluglets).
| Variable | Type | Content |
|---|---|---|
| { context: ''' Function: (obj: dict = None) *Default Mkdocs-Macro*: List an object (by default the variables) ''' macros_info: ''' Function: () *Test/debug function*: list useful documentation on the mkdocs_macro environment. ''' now: ''' Function: () *Default Mkdocs-Macro*: Get the current time (at the moment of the project build). It returns a datetime object. Used alone, it provides a timestamp. To get the year use `now().year`, for the month number `now().month`, etc. ''' fix_url: ''' Function: (url) If url is relative, fix it so that it points to the docs directory. This is necessary because relative links in markdown must be adapted in html ('img/foo.png' => '../img/img.png'). ''' javadoc: Function: (spec: str, link_title: str | None = None) -> str None methods: ''' Function: (class_path: str, methods: list[str]) -> str :param class_path: For example ``pi.actor.Actor`` :param methods: For example ``['color(java.awt.Color)', 'color(String)']`` ''' demo: ''' Function: (relpath: str, blob: str = 'main', lines: str | None = None, start_line: int = 0, end_line: int = 0) -> str :param blob: The branch name or the commit id ''' image: Function: (relpath: str, caption: str | None = None) -> str None video: Function: (relpath: str, caption: str | None = None) -> str None contribute: Function: () -> str None import_admonition: Function: (classpath: str) -> str :param class_path: for example ``pi.actor.Group`` static_import_admonition: Function: (attribute: str, classpath: str = 'pi.Controller') -> str :param attribute: The name of the static attribute, for example ``images``. repo_link: Function: (relpath: str, link_title: str | None = None) -> str None code: ''' Function: (path: str, start_line: int = 0, end_line: int = 0, line: int = 0, link: bool = True, from_import: bool = False, from_class: bool = False, snippet: bool | int = False) -> str Extract a substring of code lines based on specified line numbers. :param path: A class path (for example ``demos.docs.resources.config.CustomConfigGroupDemo``) or a file path relative to ``subprojects/demos/src/main/java/demos``. :param start_line: The starting line number (1-indexed). If 0, starts from the beginning. Defaults to 0. :param end_line: The ending line number (1-indexed, inclusive). If 0, goes to the end. Defaults to 0. :param line: A specific line number to extract (1-indexed). If greater than 0, overrides ``start_line`` and ``end_line`` to extract only that line. Defaults to 0. :param link: If true, it adds a link to the GitHub repository where the Java class is hosted. :param from_import: Define the snippet from the first import statement. :param from_class: Define the snippet from the first class declaration. :param snippet: If the parameter is true, all the snippets are shown. If the snippet is an integer, then that integer specifies which snippet should be used. 1 specifies the first snippet :return: A string containing the extracted code lines joined by newline characters. :raises Exception: If the end line is an empty string. :raises Exception: If the start line is an empty string. .. note:: If the `line` parameter is specified (> 0), it takes precedence over `start_line` and `end_line` parameters. https://github.com/mkdocs/mkdocs/issues/692 https://pypi.org/project/mkdocs-snippets/ ''' line: Function: (relpath: str, line: int) -> str None } | SuperDict | {'context': |
Git Information
Information available on the last commit and the git repository containing the documentation project:
e.g. {{ git.message }}
| Variable | Type | Content |
|---|---|---|
| status | bool | True |
| date | datetime | datetime.datetime(2026, 5, 10, 10, 59, 59, tzinfo=tzoffset(None, 7200)) |
| short_commit | str | '8fbab29' |
| commit | str | '8fbab29ee30a228bfbc9b928565769db220b9b87' |
| tag | str | '' |
| short_tag | str | '' |
| author | str | 'Josef Friedrich' |
| author_email | str | 'josef@friedrich.rocks' |
| committer | str | 'Josef Friedrich' |
| committer_email | str | 'josef@friedrich.rocks' |
| date_ISO | str | 'Sun May 10 10:59:59 2026 +0200' |
| message | str | 'Refactor the WorldHandler by implmenting an new helper class: BodySorter' |
| raw | str | 'commit 8fbab29ee30a228bfbc9b928565769db220b9b87\nAuthor: Josef Friedrich |
| root_dir | str | '/home/runner/work/engine-pi/engine-pi' |
Page Attributes
Provided by MkDocs. These attributes change for every page (the attributes shown are for this page).
e.g. {{ page.title }}
See also the MkDocs documentation on the page object.
| Variable | Type | Content |
|---|---|---|
| file | File | src_uri = 'manual/dev/mkdocs.md', src_dir = '/home/runner/work/engine-pi/engine-pi/docs', dest_dir = '/home/runner/work/engine-pi/engine-pi/site', use_directory_urls = True, inclusion [InclusionLevel], name = 'mkdocs', dest_uri = 'manual/dev/mkdocs/index.html', page [Page], url = 'manual/dev/mkdocs/', abs_src_path = '/home/runner/work/engine-pi/engine-pi/docs/manual/dev/mkdocs.md' |
| children | NoneType | None |
| previous_page | Page | Page(title='javadoc (API-Dokumentation)', url='/engine-pi/manual/dev/javadoc/') |
| next_page | Page | Page(title=[blank], url='/engine-pi/manual/dev/setter-getter/') |
| _Page__active | bool | False |
| update_date | str | '2026-05-10' |
| canonical_url | str | 'https://engine-pi.github.io/engine-pi/manual/dev/mkdocs/' |
| abs_url | str | '/engine-pi/manual/dev/mkdocs/' |
| edit_url | str | 'https://github.com/engine-pi/engine-pi/edit/main/docs/manual/dev/mkdocs.md' |
| markdown | str | "# `mkdocs` (Dokumentationsseite)\n\nDie Dokumentation der [Engine Pi](https://github.com/engine-pi/engine-pi) ist\nmit [MkDocs](https://www.mkdocs.org) und dem Theme\n[Material](https://squidfunk.github.io/mkdocs-material) realisiert. Sie\nverwendet Tutorials und Bilder aus dem [Engine Alpha\nWiki](https://engine-alpha.org), die unter der [Creative Commons „Namensnennung,\nWeitergabe unter gleichen\nBedingungen“](https://creativecommons.org/licenses/by-sa/3.0/) Lizenz stehen.\n\n## Makros:\n\nDas MkDocs-Plugin\n[Mkdocs-Macros](https://github.com/fralau/mkdocs-macros-plugin) ermöglicht den\nEinsatz von Makros. Die Makros sind in der Datei {{ repo_link('docs/macros.py')\n}} definiert. Folgende Makros können verwendet werden:\n\n### Java spezifisch\n\n#### `javadoc(spec, link_title?)`\n\n```jinja\n{% raw %}\n{{ javadoc('pi', 'Haupt-Paket') }}\n{% endraw %}\n```\n\n- Klasse:\n - Engine Pi: {{ javadoc('pi.actor.Actor') }}\n - Java: {{ javadoc('java.lang.Iterable') }}\n- Paket:\n - Engine Pi: {{ javadoc('pi.actor') }}\n - Java: {{ javadoc('java.util') }}\n- Methode:\n - Engine Pi: {{ javadoc('pi.actor.Group#forEach(java.lang.Class,java.util.function.Consumer)', 'forEach(Class<S> clazz, Consumer<? super S> action)') }}\n - Java: {{ javadoc('java.lang.String#equals(java.lang.Object)') }}\n- Attribute:\n - Engine Pi: {{ javadoc('pi.Controller#config') }}\n\n---\n\n#### `demo(relpath, hash?, lines?)`\n\n```jinja\n{% raw %}\n{{ demo('docs/dev/design/SimpleGeometricActorsDemo') }}\n{% endraw %}\n```\n\n{{ demo('docs/dev/design/SimpleGeometricActorsDemo') }}\n\n```jinja\n{% raw %}\n{{ demo('docs/dev/design/SimpleGeometricActorsDemo', 'd9e92a3759dce13923528f62a1afa8328be5126e', 'L38-L42') }}\n{% endraw %}\n```\n\n{{ demo('docs/dev/design/SimpleGeometricActorsDemo', 'd9e92a3759dce13923528f62a1afa8328be5126e', 'L38-L42') }}\n\n#### `import_admonition(class_path)`\n\n```jinja\n{% raw %}\n{{ import_admonition('pi.actor.Group') }}\n{% endraw %}\n```\n\n{{ import_admonition('pi.actor.Group') }}\n\n---\n\n#### `code(path, start_line?, end_line?, line?, link?, from_import?)`\n\n```jinja\n{% raw %}\n{{ code('docs/main_classes/actor/hello_world/HelloWorldVersion2.java', 25) }}\n{% endraw %}\n```\n\n##### Ohne Argumente\n\nOhne Argumente wird die komplette Java-Datei eingebunden.\n\n```jinja\n{% raw %}\n{{ code('docs/HelloWorldVersion.java') }}\n{% endraw %}\n```\n\n{{ code('docs/main_classes/actor/hello_world/HelloWorldVersion2.java') }}\n\n##### from_import=true\n\nIst das Argument `from_import` auf wahr gesetzt, so wird der Quelltext ab dem ersten import-Statement angezeigt.\n\n```jinja\n{% raw %}\n{{ code('docs/HelloWorldVersion.java', from_import=true) }}\n{% endraw %}\n```\n\n{{ code('docs/main_classes/actor/hello_world/HelloWorldVersion2.java', from_import=true) }}\n\n---\n\n##### link=false\n\nDas Argument `link` steuert, ob eine Link zum Github-Repository angehängt werden\nsoll.\n\n```jinja\n{% raw %}\n{{ code('docs/HelloWorldVersion.java', link=false) }}\n{% endraw %}\n```\n\n{{ code('docs/main_classes/actor/hello_world/HelloWorldVersion2.java', line=57, link=false) }}\n\n---\n\n#### `line(relpath, line)`\n\n```jinja\n{% raw %}\n{{ line('docs/main_classes/actor/hello_world/HelloWorldVersion1.java', 42) }}\n{% endraw %}\n```\n\n{{ line('docs/main_classes/actor/hello_world/HelloWorldVersion1.java', 44) }}\n\n### assets (Mediendaten)\n\n#### `image(relpath, caption?)`\n\n```jinja\n{% raw %}\n{{ image('logo/logo.svg', 'Das Logo der Engine Pi') }}\n{% endraw %}\n```\n\n{{ image('logo/logo.svg', 'Das Logo der Engine Pi') }}\n\n---\n\n#### `video(relpath, caption?)`\n\n```jinja\n{% raw %}\n{{ video('docs/MainAnimation.mp4', 'Die Hauptanimation der Engine Pi. Sie erscheint, wenn Controller.start() ohne Szene ausgeführt wird.') }}\n{% endraw %}\n```\n\n{{ video('docs/MainAnimation.mp4', 'Die Hauptanimation der Engine Pi. Sie erscheint, wenn Controller.start() ohne Szene ausgeführt wird.') }}\n\n---\n\n### Projekt spezifisch\n\n#### `contribute()`\n\n```jinja\n{% raw %}\n{{ contribute() }}\n{% endraw %}\n```\n\n{{ contribute() }}\n\n---\n\n### `repo_link(relpath, link_title)`\n\n```jinja\n{% raw %}\n{{ repo_link('docs/macros.py') }}\n{% endraw %}\n```\n\n{{ repo_link('docs/macros.py') }}\n\n---\n\n## Vom Macros-Plugin bereit gestellt.\n\n{{ macros_info() }}\n" |
| _title_from_render | NoneType | None |
| content | NoneType | None |
| toc | list | [] |
| meta | dict | |
| parent | Section | title = 'Entwicklung', children = [Page(title='Entwicklung', url='/engine-pi/manual/dev/'), Page(title=[blank], url='/engine-pi/manual/dev/monorepo/'), Page(title='design (Optisches Erscheinungsbild)', url='/engine-pi/manual/dev/design/'), Page(title='coding style (Programmierstil)', url='/engine-pi/manual/dev/coding-style/'), Page(title='javadoc (API-Dokumentation)', url='/engine-pi/manual/dev/javadoc/'), Page(title='`mkdocs` (Dokumentationsseite)', url='/engine-pi/manual/dev/mkdocs/'), Page(title=[blank], url='/engine-pi/manual/dev/setter-getter/'), Page(title=[blank], url='/engine-pi/manual/dev/versions/'), Page(title=[blank], url='/engine-pi/manual/dev/tests/'), Page(title='Go to file:// (Links zwischen Textdateien)', url='/engine-pi/manual/dev/go-to-file/'), Page(title=[blank], url='/engine-pi/manual/dev/screen-recording/'), Page(title='Logging', url='/engine-pi/manual/dev/logging/'), Page(title='Graphics2D-API', url='/engine-pi/manual/dev/graphics2d/'), Page(title=[blank], url='/engine-pi/manual/dev/other-engines/')], _Section__active = False, parent [Section] |
To have all titles of all pages, use:
Plugin Filters
These filters are provided as a standard by the macros plugin.
| Variable | Type | Content |
|---|---|---|
| pretty | function | (var_list, var, var_type, content, rows, header, e) Default Mkdocs-Macro: Prettify a dictionary or object (used for environment documentation, or debugging). |
| relative_url | function | (path) Default Mkdocs-Macro: convert the path of any page according to MkDoc's internal logic, into a URL relative to the current page (implements the |
Builtin Jinja2 Filters
These filters are provided by Jinja2 as a standard.
See also the Jinja2 documentation on builtin filters.
| Variable | Type | Content |
|---|---|---|
| abs | builtin_function_or_method | Return the absolute value of the argument. |
| attr | function | (environment, obj, name) Get an attribute of an object. |
| batch | function | (value, linecount, fill_with, tmp, item) A filter that batches items. It works pretty much like |
| capitalize | function | (s) Capitalize a value. The first character will be uppercase, all others lowercase. |
| center | function | (value, width) Centers the value in a field of a given width. |
| count | builtin_function_or_method | Return the number of items in a container. |
| d | function | (value, default_value, boolean) If the value is undefined it will return the passed default value, otherwise the value of the variable. |
| default | function | (value, default_value, boolean) If the value is undefined it will return the passed default value, otherwise the value of the variable. |
| dictsort | function | (value, case_sensitive, by, reverse, sort_func) Sort a dict and yield (key, value) pairs. Python dicts may not be in the order you want to display them in, so sort them first. |
| e | function | (s) Replace the characters |
| escape | function | (s) Replace the characters |
| filesizeformat | function | (value, binary, bytes, base, prefixes, i, prefix, unit) Format the value like a 'human-readable' file size (i.e. 13 kB, 4.1 MB, 102 Bytes, etc). Per default decimal prefixes are used (Mega, Giga, etc.), if the second parameter is set to |
| first | function | (args, kwargs, b) Return the first item of a sequence. |
| float | function | (value, default) Convert the value into a floating point number. If the conversion doesn't work it will return |
| forceescape | function | (value) Enforce HTML escaping. This will probably double escape variables. |
| format | function | (value, args, kwargs) Apply the given values to a |
| groupby | function | (args, kwargs, b) Group a sequence of objects by an attribute using Python's :func: |
| indent | function | (s, width, first, blank, newline, rv, lines) Return a copy of the string with each line indented by 4 spaces. The first line and blank lines are not indented by default. |
| int | function | (value, default, base) Convert the value into an integer. If the conversion doesn't work it will return |
| join | function | (args, kwargs, b) Return a string which is the concatenation of the strings in the sequence. The separator between elements is an empty string per default, you can define it with the optional parameter. |
| last | function | (environment, seq) Return the last item of a sequence. |
| length | builtin_function_or_method | Return the number of items in a container. |
| list | function | (args, kwargs, b) Convert the value into a list. If it was a string the returned list will be a list of characters. |
| lower | function | (s) Convert a value to lowercase. |
| items | function | (value) Return an iterator over the |
| map | function | (args, kwargs, b) Applies a filter on a sequence of objects or looks up an attribute. This is useful when dealing with lists of objects but you are really only interested in a certain value of it. |
| min | function | (environment, value, case_sensitive, attribute) Return the smallest item from the sequence. |
| max | function | (environment, value, case_sensitive, attribute) Return the largest item from the sequence. |
| pprint | function | (value) Pretty print a variable. Useful for debugging. |
| random | function | (context, seq) Return a random item from the sequence. |
| reject | function | (args, kwargs, b) Filters a sequence of objects by applying a test to each object, and rejecting the objects with the test succeeding. |
| rejectattr | function | (args, kwargs, b) Filters a sequence of objects by applying a test to the specified attribute of each object, and rejecting the objects with the test succeeding. |
| replace | function | (eval_ctx, s, old, new, count) Return a copy of the value with all occurrences of a substring replaced with a new one. The first argument is the substring that should be replaced, the second is the replacement string. If the optional third argument |
| reverse | function | (value, rv, e) Reverse the object or return an iterator that iterates over it the other way round. |
| round | function | (value, precision, method, func) Round the number to a given precision. The first parameter specifies the precision (default is |
| safe | function | (value) Mark the value as safe which means that in an environment with automatic escaping enabled this variable will not be escaped. |
| select | function | (args, kwargs, b) Filters a sequence of objects by applying a test to each object, and only selecting the objects with the test succeeding. |
| selectattr | function | (args, kwargs, b) Filters a sequence of objects by applying a test to the specified attribute of each object, and only selecting the objects with the test succeeding. |
| slice | function | (args, kwargs, b) Slice an iterator and return a list of lists containing those items. Useful if you want to create a div containing three ul tags that represent columns. |
| sort | function | (environment, value, reverse, case_sensitive, attribute, key_func) Sort an iterable using Python's :func: |
| string | function | (s) Convert an object to a string if it isn't already. This preserves a :class: |
| striptags | function | (value) Strip SGML/XML tags and replace adjacent whitespace by one space. |
| sum | function | (args, kwargs, b) Returns the sum of a sequence of numbers plus the value of parameter 'start' (which defaults to 0). When the sequence is empty it returns start. |
| title | function | (s, item) Return a titlecased version of the value. I.e. words will start with uppercase letters, all remaining characters are lowercase. |
| trim | function | (value, chars) Strip leading and trailing characters, by default whitespace. |
| truncate | function | (env, s, length, killwords, end, leeway, result) Return a truncated copy of the string. The length is specified with the first parameter which defaults to |
| unique | function | (args, kwargs, b) Returns a list of unique items from the given iterable. |
| upper | function | (s) Convert a value to uppercase. |
| urlencode | function | (value, items) Quote data for use in a URL path or query using UTF-8. |
| urlize | function | (eval_ctx, value, trim_url_limit, nofollow, target, rel, extra_schemes, policies, rel_parts, scheme, rv) Convert URLs in text into clickable links. |
| wordcount | function | (s) Count the words in that string. |
| wordwrap | function | (environment, s, width, break_long_words, wrapstring, break_on_hyphens, textwrap, line) Wrap a string to the given width. Existing newlines are treated as paragraphs to be wrapped separately. |
| xmlattr | function | (eval_ctx, d, autospace, items, key, value, rv) Create an SGML/XML attribute string based on the items in a dict. |
| tojson | function | (eval_ctx, value, indent, policies, dumps, kwargs) Serialize an object to a string of JSON, and mark it safe to render in HTML. This filter is only for use in HTML documents. |