Skip to content

Commit

Permalink
Auto-deploy docs built from commit 615a3cc
Browse files Browse the repository at this point in the history
  • Loading branch information
gunnar-mb committed Jan 15, 2025
1 parent 76d7363 commit 5617e8a
Show file tree
Hide file tree
Showing 8 changed files with 16 additions and 16 deletions.
4 changes: 2 additions & 2 deletions README2.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ The documentation, [published](https://covesa.github.io/ifex) on GitHub pages, i

- The [GitHub actions workflow](/.github/workflows/generate_docs.yml) encodes the build steps.
- [markup-markdown](https://github.com/hailiang-wang/markup-markdown) is used to combine several markdown files into one. Some markdown files are static and stored in [[doc-parts]], whereas some are generated from source files. The naming convention for the definition files are `*.m.md`
- [ifex_ast_doc.py](../ifex/model/ifex_ast_doc.py) generates the main syntax documentation directly from the datatypes used in the internal model AST. The language definition for the YAML based IDL represents the internal object model. In the end, both the program behavior _and the documentation of it_ is defined from the python source definition in [ifex_ast.py](../ifex/model/ifex_ast.py)
- [ifex_ast_doc.py](../models/ifex/ifex_ast_doc.py) generates the main syntax documentation directly from the datatypes used in the internal model AST. The language definition for the YAML based IDL represents the internal object model. In the end, both the program behavior _and the documentation of it_ is defined from the python source definition in [ifex_ast.py](../models/ifex/ifex_ast.py)
- The script [create-toc.py](create-toc.py) is used to generate a Table of Contents for the document.

## Source files:

- [def-specification.stage1.m.md](./def-specification.stage1.m.md). Lists the parts required to produce the main specification.
- [def-specification.stage2.m.md](./def-specification.stage2.m.md). To combine the specification with the table-of-contents.
- [ifex_ast.py](../ifex/model/ifex_ast.py) is the python source that is interpreted to produce `generated-syntax.md` which is later included as the Syntax chapter in the specification.
- [ifex_ast.py](../models/ifex/ifex_ast.py) is the python source that is interpreted to produce `generated-syntax.md` which is later included as the Syntax chapter in the specification.
- [def-developers-manual.m.md](./def-developers-manual.m.md) lists the parts required to produce the developer documentation. (Work in progress)

## Build sequence
Expand Down
8 changes: 4 additions & 4 deletions developers-manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

## Table of Contents

Documentation generated from: 8b82cf9e114b9d5c94b4ea783da640b2c062039e
Documentation generated from: 615a3cc63c3bf2671c0c648715ade2a469822bf7

- [Mapping documents](#mapping-documents)
- [Datatype mapping](#datatype-mapping)
Expand Down Expand Up @@ -288,7 +288,7 @@ A simple generator (with only one template) can be done like this:

Unless you need to add more logic, generating one input file with one (or several)
templates is basically already available if ifex_generator.py is called as a
main program. You specify the directory name (relative to `<project-dir>/ifex/templates`)
main program. You specify the directory name (relative to `<project-dir>/output_filters/templates`)
where the template(s) is stored. Note that `setup.py` "installs" an executable entrypoint
`ifexgen` to call the program:

Expand All @@ -302,7 +302,7 @@ An advanced generator (with several templates) can be done like this:
* Import the ifex_generator.py and ifex_parser.py, and TemplateDir modules.
* Get the needed Service description file(s) (YAML), for example from command line argument
* For each file, get the Abstract Syntax Tree representation by calling `ifex_parser.get_ast_from_yaml_file(service_desc_file)`
* Write templates according to (some, not all) node types. You can call `gen(node)` or `gen(node, <Template>)` from within a template - see details below. Templates must be under a specific sub-directory of `<project-dir>/ifex/templates` and must be named with the naming convention such that the node type is mentioned first (see template chapter).
* Write templates according to (some, not all) node types. You can call `gen(node)` or `gen(node, <Template>)` from within a template - see details below. Templates must be under a specific sub-directory of `<project-dir>/output_filters/templates` and must be named with the naming convention such that the node type is mentioned first (see template chapter).
* Once the template directory is known, ee-initialize the TemplateDir object if needed. This will populate the default templates data structure such that gen() knows which template to use. It automatically uses the naming of the templates to know which template is for which node type.
* Implement the `gen()` function, normally by delegating directly into `ifex_generator.gen()`, but you can put your own logic here if needed.
* Set the jinja environment, passing in the gen() and any other symbols that must be callable from within Jinja templates.
Expand Down Expand Up @@ -392,7 +392,7 @@ gen(node, 'My-alternative-method-template.tpl')
### Naming convention
The only strict requirement is that all templates to be used by automatic type-to-template mapping in the gen() function, must be within the same subdirectory and must be named according to the naming conventioned mentioned before.

Templates can be stored in the sub-directories of the ifex/templates/ directory.
Templates can be stored in the sub-directories of the output_filters/templates/ directory.

The intended target format (output format) is normally clear from the naming of the subdirectory. E.g. "protobuf", or "D-Bus" or "ARXML" or other output format.

Expand Down
2 changes: 1 addition & 1 deletion generate-types-doc.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: Copyright (c) 2023 Novaspring AB
# SPDX-License-Identifier: MPL-2.0

from ifex.model.ifex_ast import FundamentalTypes
from models.ifex.ifex_ast import FundamentalTypes

print("|Name|Description|Min value|Max value|")
print("|----|-----------|---------|---------|")
Expand Down
6 changes: 3 additions & 3 deletions generated-developers-manual-content.md
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ A simple generator (with only one template) can be done like this:

Unless you need to add more logic, generating one input file with one (or several)
templates is basically already available if ifex_generator.py is called as a
main program. You specify the directory name (relative to `<project-dir>/ifex/templates`)
main program. You specify the directory name (relative to `<project-dir>/output_filters/templates`)
where the template(s) is stored. Note that `setup.py` "installs" an executable entrypoint
`ifexgen` to call the program:

Expand All @@ -265,7 +265,7 @@ An advanced generator (with several templates) can be done like this:
* Import the ifex_generator.py and ifex_parser.py, and TemplateDir modules.
* Get the needed Service description file(s) (YAML), for example from command line argument
* For each file, get the Abstract Syntax Tree representation by calling `ifex_parser.get_ast_from_yaml_file(service_desc_file)`
* Write templates according to (some, not all) node types. You can call `gen(node)` or `gen(node, <Template>)` from within a template - see details below. Templates must be under a specific sub-directory of `<project-dir>/ifex/templates` and must be named with the naming convention such that the node type is mentioned first (see template chapter).
* Write templates according to (some, not all) node types. You can call `gen(node)` or `gen(node, <Template>)` from within a template - see details below. Templates must be under a specific sub-directory of `<project-dir>/output_filters/templates` and must be named with the naming convention such that the node type is mentioned first (see template chapter).
* Once the template directory is known, ee-initialize the TemplateDir object if needed. This will populate the default templates data structure such that gen() knows which template to use. It automatically uses the naming of the templates to know which template is for which node type.
* Implement the `gen()` function, normally by delegating directly into `ifex_generator.gen()`, but you can put your own logic here if needed.
* Set the jinja environment, passing in the gen() and any other symbols that must be callable from within Jinja templates.
Expand Down Expand Up @@ -355,7 +355,7 @@ gen(node, 'My-alternative-method-template.tpl')
### Naming convention
The only strict requirement is that all templates to be used by automatic type-to-template mapping in the gen() function, must be within the same subdirectory and must be named according to the naming conventioned mentioned before.

Templates can be stored in the sub-directories of the ifex/templates/ directory.
Templates can be stored in the sub-directories of the output_filters/templates/ directory.

The intended target format (output format) is normally clear from the naming of the subdirectory. E.g. "protobuf", or "D-Bus" or "ARXML" or other output format.

Expand Down
2 changes: 1 addition & 1 deletion generated-developers-toc.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Documentation generated from: 8b82cf9e114b9d5c94b4ea783da640b2c062039e
Documentation generated from: 615a3cc63c3bf2671c0c648715ade2a469822bf7

- [Mapping documents](#mapping-documents)
- [Datatype mapping](#datatype-mapping)
Expand Down
2 changes: 1 addition & 1 deletion generated-toc.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Documentation generated from: 8b82cf9e114b9d5c94b4ea783da640b2c062039e
Documentation generated from: 615a3cc63c3bf2671c0c648715ade2a469822bf7

- [FEATURES](#features)
- [Features that are not included _in the core IDL_, but worth describing](#features-that-are-not-included-in-the-core-idl-but-worth-describing)
Expand Down
2 changes: 1 addition & 1 deletion ifex-specification.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ License: Creative Commons Attribution 4.0 International
License (CC-BY-4.0), described [here](https://creativecommons.org/licenses/by/4.0/)

<!-- Heading and TOC -->
Documentation generated from: 8b82cf9e114b9d5c94b4ea783da640b2c062039e
Documentation generated from: 615a3cc63c3bf2671c0c648715ade2a469822bf7

- [FEATURES](#features)
- [Features that are not included _in the core IDL_, but worth describing](#features-that-are-not-included-in-the-core-idl-but-worth-describing)
Expand Down
6 changes: 3 additions & 3 deletions static-developer-generators.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ A simple generator (with only one template) can be done like this:

Unless you need to add more logic, generating one input file with one (or several)
templates is basically already available if ifex_generator.py is called as a
main program. You specify the directory name (relative to `<project-dir>/ifex/templates`)
main program. You specify the directory name (relative to `<project-dir>/output_filters/templates`)
where the template(s) is stored. Note that `setup.py` "installs" an executable entrypoint
`ifexgen` to call the program:

Expand All @@ -53,7 +53,7 @@ An advanced generator (with several templates) can be done like this:
* Import the ifex_generator.py and ifex_parser.py, and TemplateDir modules.
* Get the needed Service description file(s) (YAML), for example from command line argument
* For each file, get the Abstract Syntax Tree representation by calling `ifex_parser.get_ast_from_yaml_file(service_desc_file)`
* Write templates according to (some, not all) node types. You can call `gen(node)` or `gen(node, <Template>)` from within a template - see details below. Templates must be under a specific sub-directory of `<project-dir>/ifex/templates` and must be named with the naming convention such that the node type is mentioned first (see template chapter).
* Write templates according to (some, not all) node types. You can call `gen(node)` or `gen(node, <Template>)` from within a template - see details below. Templates must be under a specific sub-directory of `<project-dir>/output_filters/templates` and must be named with the naming convention such that the node type is mentioned first (see template chapter).
* Once the template directory is known, ee-initialize the TemplateDir object if needed. This will populate the default templates data structure such that gen() knows which template to use. It automatically uses the naming of the templates to know which template is for which node type.
* Implement the `gen()` function, normally by delegating directly into `ifex_generator.gen()`, but you can put your own logic here if needed.
* Set the jinja environment, passing in the gen() and any other symbols that must be callable from within Jinja templates.
Expand Down Expand Up @@ -143,7 +143,7 @@ gen(node, 'My-alternative-method-template.tpl')
### Naming convention
The only strict requirement is that all templates to be used by automatic type-to-template mapping in the gen() function, must be within the same subdirectory and must be named according to the naming conventioned mentioned before.

Templates can be stored in the sub-directories of the ifex/templates/ directory.
Templates can be stored in the sub-directories of the output_filters/templates/ directory.

The intended target format (output format) is normally clear from the naming of the subdirectory. E.g. "protobuf", or "D-Bus" or "ARXML" or other output format.

Expand Down

0 comments on commit 5617e8a

Please sign in to comment.