Update project layout

This commit is contained in:
Joeri Exelmans 2023-03-03 18:06:13 +01:00
parent ea70d9278e
commit b777df7874
15 changed files with 127 additions and 107 deletions

68
src/xopp2oml/template.oml Normal file
View file

@ -0,0 +1,68 @@
{%- macro attributes(pageindex, page, layerindex, layer, elementindex, element) -%}
{%- for key,value in element.attributes.items() %}
ci p{{pageindex}}l{{layerindex}}e{{elementindex}}a{{loop.index}} : xopp:XMLAttribute [
xopp:hasKey "{{key}}"
xopp:hasValue "{{value}}"
xopp:ofLayerElement p{{pageindex}}l{{layerindex}}e{{elementindex}}
object_diagram:inModel model
]
{% endfor %}
{%- endmacro -%}
{%- macro elements(pageindex, page, layerindex, layer) -%}
{% for el in layer.elements %}
ci p{{pageindex}}l{{layerindex}}e{{loop.index}} : xopp:{{el.__class__.__name__}} [
xopp:hasText "{{el.text}}"
xopp:inLayer p{{pageindex}}l{{layerindex}}
object_diagram:inModel model
]
{{ attributes(pageindex, page, layerindex, layer, loop.index, el) -}}
{% endfor %}
{%- endmacro -%}
{%- macro layers(pageindex, page) -%}
{% for layer in page.layers %}
ci p{{pageindex}}l{{loop.index}} : xopp:Layer [
xopp:inPage p{{pageindex}}
object_diagram:inModel model
]
{{ elements(pageindex, page, loop.index, layer) -}}
{% endfor %}
{%- endmacro -%}
{%- macro pages(file) -%}
{% for page in file.pages -%}
ci p{{loop.index}} : xopp:Page [
xopp:hasWidth {{ page.width }}
xopp:hasHeight {{ page.height }}
xopp:hasBackgroundType "{{ page.background_type }}"
xopp:hasBackgroundColor "{{ page.background_color }}"
xopp:hasBackgroundStyle "{{ page.background_style }}"
xopp:inFile file
object_diagram:inModel model
]
{{ layers(loop.index, page) -}}
{%- endfor %}
{%- endmacro -%}
// Warning: Generated code! Do not edit!
// Input file: '{{inputfile}}'
// Generator: https://msdl.uantwerpen.be/git/jexelmans/xopp2py
description <http://flandersmake.be/cdf/description/{{namespace}}#> as {{namespace}} {
uses <http://flandersmake.be/cdf/vocabulary/xopp#> as xopp
uses <http://flandersmake.be/cdf/vocabulary/object_diagram#> as object_diagram
ci model : xopp:Model []
ci file : xopp:File [
xopp:hasCreator "{{ file.creator }}"
xopp:hasFileVersion {{ file.fileversion }}
xopp:hasTitle "{{ file.title }}"
{%- if file.preview != None %}
xopp:hasPreview "{{ toBase64(file.preview).decode('utf-8') }}"
{%- endif %}
object_diagram:inModel model
]
{{ pages(file) }}
}