power_stencil 0.6.1 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +2 -0
- data/README.md +3 -7
- data/doc/builds.md +10 -1
- data/doc/entities.md +59 -50
- data/doc/images/power-stencil-entity-creation.svg +247 -114
- data/doc/plugins.md +1 -0
- data/doc/templates.md +23 -18
- data/etc/base_commands_definition.yml +14 -0
- data/etc/power_stencil.yaml +7 -1
- data/etc/templates/project/.zzzgitignore.erb +8 -3
- data/lib/power_stencil.rb +1 -0
- data/lib/power_stencil/command_processors/build.rb +15 -2
- data/lib/power_stencil/command_processors/check.rb +12 -0
- data/lib/power_stencil/command_processors/create.rb +6 -5
- data/lib/power_stencil/command_processors/delete.rb +23 -15
- data/lib/power_stencil/command_processors/edit.rb +4 -2
- data/lib/power_stencil/command_processors/plugin.rb +21 -6
- data/lib/power_stencil/command_processors/shell.rb +10 -3
- data/lib/power_stencil/dsl/entities.rb +0 -16
- data/lib/power_stencil/engine/entities_definitions.rb +16 -7
- data/lib/power_stencil/engine/entities_handling.rb +1 -1
- data/lib/power_stencil/engine/project_engine.rb +6 -10
- data/lib/power_stencil/initializer.rb +4 -7
- data/lib/power_stencil/plugins/entity_definitions.rb +15 -0
- data/lib/power_stencil/plugins/require.rb +1 -0
- data/lib/power_stencil/plugins/templates.rb +3 -3
- data/lib/power_stencil/project/base.rb +24 -9
- data/lib/power_stencil/project/create.rb +23 -2
- data/lib/power_stencil/project/git.rb +75 -0
- data/lib/power_stencil/project/info.rb +14 -1
- data/lib/power_stencil/project/paths.rb +22 -6
- data/lib/power_stencil/project/plugins.rb +1 -1
- data/lib/power_stencil/project/templates.rb +15 -22
- data/lib/power_stencil/system_entity_definitions/all.rb +2 -1
- data/lib/power_stencil/system_entity_definitions/buildable.rb +1 -1
- data/lib/power_stencil/system_entity_definitions/entity_override.rb +6 -0
- data/lib/power_stencil/system_entity_definitions/entity_project_common.rb +13 -5
- data/lib/power_stencil/system_entity_definitions/{has_associated_files.rb → entity_templates.rb} +2 -2
- data/lib/power_stencil/system_entity_definitions/project_config.rb +1 -1
- data/lib/power_stencil/system_entity_definitions/project_entity.rb +7 -0
- data/lib/power_stencil/system_entity_definitions/simple_exec.rb +3 -3
- data/lib/power_stencil/system_entity_definitions/source_provider.rb +15 -0
- data/lib/power_stencil/version.rb +1 -1
- data/power_stencil.gemspec +1 -0
- metadata +20 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f2f1b74e85edac12e51c2d02482f15f06e58e89
|
4
|
+
data.tar.gz: b346762e7dc8314ea998fac76f1df8fa6a08ca5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9facec67f2da0cbaebd9117326bf5544497e23d2981b07565763ab7d36950b93fd8d3ff87cc09016e52c79707da2a982e06cf899d1a23682f80895b960d927ab
|
7
|
+
data.tar.gz: 1d6b61bde1d41cd5baa82b50d56b0225979dd79b09fabce5aae4e378004cadf5795db8ad570677b3fc01e50ad787d03c51e1985dbca4cc93cfd220764a26b2bf
|
data/.gitlab-ci.yml
CHANGED
data/README.md
CHANGED
@@ -75,6 +75,8 @@ Then you can install the `PowerStencil` gem by issuing the usual:
|
|
75
75
|
|
76
76
|
$ gem install power_stencil
|
77
77
|
|
78
|
+
:hand: It is **strongly** advised to have `git` installed on your system, as `PowerStencil` is integrated with `git` to provide a better user experience.
|
79
|
+
|
78
80
|
If you want to create [Graphviz] graphs, you probably may want to install it for your system. If you are using an _apt-based_ system like Ubuntu or Debian it may probably be as simple as:
|
79
81
|
|
80
82
|
$ sudo apt install graphviz
|
@@ -139,13 +141,7 @@ Once the project created, if you are anywhere within the project tree, you don't
|
|
139
141
|
|
140
142
|
**:information_source: The rest of this documentation will assume you are at the root of this created project.**
|
141
143
|
|
142
|
-
**:information_source:
|
143
|
-
|
144
|
-
$ git init
|
145
|
-
$ git add .
|
146
|
-
$ git commit -a -m 'Initial commit'
|
147
|
-
|
148
|
-
This will allow you to track any change resulting of your interactions with `power_stencil` command line.
|
144
|
+
**:information_source: If you have `git` installed on your system, **the repository of the newly created project has been automatically turned into a git repository. And any action done through the `power_stencil` command-line will be automatically tracked by `git`**. Only things you will do outside of the `power_stencil` command-line (adding or modifying templates, creating or modifying entity types... any manual action) will require a user action to make `git` take it in account. You can completely de-activate this behaviour if you want to fully manage things by yourself by adding `:no-git: true` in the `.ps_project/versioned-config.yaml`, yet there is no good reason for that... Unless you know what you are doing, you should keep the default settings.
|
149
145
|
|
150
146
|
## `PowerStencil` project structure
|
151
147
|
|
data/doc/builds.md
CHANGED
@@ -20,6 +20,15 @@ Builds
|
|
20
20
|
|
21
21
|
You build a [buildable] entity by issuing `power_stencil build <entity_type>/<entity_name>`. If you try to build an entity which is not buildable, the process fail with an error message.
|
22
22
|
|
23
|
+
**:information_source: You can get the list of buildable entities in your repository by issuing a `power_stencil build --list`:**
|
24
|
+
|
25
|
+
```
|
26
|
+
$ power_stencil build --list
|
27
|
+
- 'simple_exec' (buildable by 'PowerStencil core' and provided by 'PowerStencil core').
|
28
|
+
```
|
29
|
+
|
30
|
+
We will see later in the [templates] part what to do with this `simple_exec` entity type.
|
31
|
+
|
23
32
|
Let's describe a bit more in detail what this build process is:
|
24
33
|
|
25
34
|
![entity-build-flow]
|
@@ -32,7 +41,7 @@ I guess you understood this is not a "real" _compilation_ process we are discuss
|
|
32
41
|
|
33
42
|
The mechanism of the compilation is coming from the [universe_compiler] Gem, but the two following features are the ones you really need to understand.
|
34
43
|
|
35
|
-
:information_source: The compilation process
|
44
|
+
:information_source: The compilation process is actually applied to all entities, ie it doesn't need to be [buildable] (see in next paragraph how to run the compilation). But an entity needs to be [buildable] to use `power_stencil build` which corresponds actually to _compilation_ + _detemplatization_.
|
36
45
|
|
37
46
|
## Extending an entity
|
38
47
|
|
data/doc/entities.md
CHANGED
@@ -58,8 +58,8 @@ $ power_stencil info
|
|
58
58
|
PROJECT REPORT
|
59
59
|
--------------------------------------------------------------------------------
|
60
60
|
General information:
|
61
|
-
- Project required version: 0.
|
62
|
-
- PowerStencil version: 0.
|
61
|
+
- Project required version: 0.6.1
|
62
|
+
- PowerStencil version: 0.6.1
|
63
63
|
--------------------------------------------------------------------------------
|
64
64
|
Paths:
|
65
65
|
- Project root path: '/tmp/tst2'
|
@@ -75,31 +75,31 @@ PROJECT REPORT
|
|
75
75
|
- project_config: 1
|
76
76
|
--------------------------------------------------------------------------------
|
77
77
|
Available entity types:
|
78
|
-
- Type 'base_entity' --> PowerStencil::SystemEntityDefinitions::ProjectEntity
|
79
|
-
- Type 'entity_override' --> UniverseCompiler::Entity::Override
|
80
|
-
- Type 'plugin_definition' --> PowerStencil::SystemEntityDefinitions::Plugin (template-template path: '/opt/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/power_stencil-0.
|
81
|
-
- Type 'process_descriptor' --> PowerStencil::SystemEntityDefinitions::ProcessDescriptor
|
82
|
-
- Type 'project_config' --> PowerStencil::SystemEntityDefinitions::ProjectConfig
|
83
|
-
- Type 'simple_exec' --> PowerStencil::SystemEntityDefinitions::SimpleExec (template-template path: '/opt/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/power_stencil-0.
|
78
|
+
- Type 'base_entity' --> PowerStencil::SystemEntityDefinitions::ProjectEntity (provided by 'PowerStencil core')
|
79
|
+
- Type 'entity_override' --> UniverseCompiler::Entity::Override (provided by 'PowerStencil core')
|
80
|
+
- Type 'plugin_definition' --> PowerStencil::SystemEntityDefinitions::Plugin (provided by 'PowerStencil core') template-template path: '/opt/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/power_stencil-0.6.1/etc/templates/plugin_definition'
|
81
|
+
- Type 'process_descriptor' --> PowerStencil::SystemEntityDefinitions::ProcessDescriptor (provided by 'PowerStencil core')
|
82
|
+
- Type 'project_config' --> PowerStencil::SystemEntityDefinitions::ProjectConfig (provided by 'PowerStencil core')
|
83
|
+
- Type 'simple_exec' --> PowerStencil::SystemEntityDefinitions::SimpleExec (provided by 'PowerStencil core') template-template path: '/opt/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/power_stencil-0.6.1/etc/templates/simple_exec'
|
84
84
|
```
|
85
85
|
|
86
86
|
It provides a lot of information about the project, but let's focus on the `Entities` and `Available entity types` parts of the report.
|
87
87
|
|
88
88
|
You can see here above that only 6 types of entity are defined by default in a brand new created `PowerStencil` project. You can find them below with some of their core features:
|
89
89
|
|
90
|
-
| entity type | system | persisted | buildable |
|
91
|
-
|
90
|
+
| entity type | system | persisted | buildable | provides templates |
|
91
|
+
|-------------|:------:|:---------:|:---------:|:------------------:|
|
92
92
|
|base_entity||X
|
93
93
|
|entity_override||X
|
94
|
-
|plugin_definition|X
|
94
|
+
|plugin_definition|X|||X
|
95
95
|
|process_descriptor||X
|
96
96
|
|project_config|X
|
97
97
|
|simple_exec||X|X|X
|
98
98
|
|
99
|
-
- You should not care about _system_
|
100
|
-
- By default any entity type, including those you may
|
101
|
-
- A _buildable_ entity is an entity you can run `power_stencil build` against. More about this in the [builds] part.
|
102
|
-
- When an entity
|
99
|
+
- You should not care about _system_ entity types unless you are developing features in `PowerStencil`. You cannot instantiate any of them like others.
|
100
|
+
- By default any entity type, including those you may instantiate, is _persistent_.
|
101
|
+
- A _buildable_ entity type is an entity type you can run `power_stencil build` against its instantiated entities. More about this in the [builds] part.
|
102
|
+
- When an entity type _provides templates_, it means its [templates] will generated in `<project_root>/templates/<entity_type>/<entity_name>` folder when you create an entity of this type. We'll talk about this more in depth in the [templates] and [builds] part.
|
103
103
|
|
104
104
|
On top of this `power_stencil info` brings you information about the actual Ruby classes implementing those entity types.
|
105
105
|
|
@@ -178,20 +178,23 @@ We have seen the `power_stencil info` returns (among other) the number of entiti
|
|
178
178
|
$ power_stencil check
|
179
179
|
RAW ENTITIES
|
180
180
|
'base_entity/my_1st_entity':
|
181
|
-
- Storage path: '/tmp/tst2/.ps_project/entities/base_entity/my_1st_entity.yaml'
|
182
|
-
-
|
183
|
-
-
|
181
|
+
- Storage path : '/tmp/tst2/.ps_project/entities/base_entity/my_1st_entity.yaml'
|
182
|
+
- Provided by : 'PowerStencil core'
|
183
|
+
- Status : Valid
|
184
|
+
- Buildable : false
|
184
185
|
'base_entity/my_2nd_entity':
|
185
|
-
- Storage path: '/tmp/tst2/.ps_project/entities/base_entity/my_2nd_entity.yaml'
|
186
|
-
-
|
187
|
-
-
|
186
|
+
- Storage path : '/tmp/tst2/.ps_project/entities/base_entity/my_2nd_entity.yaml'
|
187
|
+
- Provided by : 'PowerStencil core'
|
188
|
+
- Status : Valid
|
189
|
+
- Buildable : false
|
188
190
|
'project_config/Project Config':
|
189
|
-
- Storage path: ''
|
190
|
-
-
|
191
|
-
-
|
191
|
+
- Storage path : ''
|
192
|
+
- Provided by : 'PowerStencil core'
|
193
|
+
- Status : Valid
|
194
|
+
- Buildable : false
|
192
195
|
```
|
193
196
|
|
194
|
-
The goal of this command is normally to check the validity of entities, but it brings as well extra information like if the entity is _buildable_ or even where it is stored in the repository.
|
197
|
+
The goal of this command is normally to check the validity of entities, but it brings as well extra information like if the entity is _buildable_ or even where it is stored in the repository or if is provided by the core system (PowerStencil core) or a plugin.
|
195
198
|
|
196
199
|
:information_source: You can notice that the `project_config` entity has no storage path, the reason being [it is not persisted](#default-entity-types) in the entities repository (its content actually comes from config files outside of the repository).
|
197
200
|
|
@@ -203,13 +206,15 @@ By default `power_stencil check` will check all entities in the repository but y
|
|
203
206
|
$ power_stencil check base_entity/my_1st_entity 'project_config/Project Config'
|
204
207
|
RAW ENTITIES
|
205
208
|
'base_entity/my_1st_entity':
|
206
|
-
- Storage path: '/tmp/tst2/.ps_project/entities/base_entity/my_1st_entity.yaml'
|
207
|
-
-
|
208
|
-
-
|
209
|
+
- Storage path : '/tmp/tst2/.ps_project/entities/base_entity/my_1st_entity.yaml'
|
210
|
+
- Provided by : 'PowerStencil core'
|
211
|
+
- Status : Valid
|
212
|
+
- Buildable : false
|
209
213
|
'project_config/Project Config':
|
210
|
-
- Storage path: ''
|
211
|
-
-
|
212
|
-
-
|
214
|
+
- Storage path : ''
|
215
|
+
- Provided by : 'PowerStencil core'
|
216
|
+
- Status : Valid
|
217
|
+
- Buildable : false
|
213
218
|
```
|
214
219
|
Another possibility is to check a list of objects using a regular expression (applied to the ID of an entity, ie `<entity_type</<entity_name>`) by using the `--regexp` option:
|
215
220
|
|
@@ -217,13 +222,15 @@ Another possibility is to check a list of objects using a regular expression (ap
|
|
217
222
|
$ power_stencil check base_ --regexp
|
218
223
|
RAW ENTITIES
|
219
224
|
'base_entity/my_1st_entity':
|
220
|
-
- Storage path: '/tmp/tst2/.ps_project/entities/base_entity/my_1st_entity.yaml'
|
221
|
-
-
|
222
|
-
-
|
225
|
+
- Storage path : '/tmp/tst2/.ps_project/entities/base_entity/my_1st_entity.yaml'
|
226
|
+
- Provided by : 'PowerStencil core'
|
227
|
+
- Status : Valid
|
228
|
+
- Buildable : false
|
223
229
|
'base_entity/my_2nd_entity':
|
224
|
-
- Storage path: '/tmp/tst2/.ps_project/entities/base_entity/my_2nd_entity.yaml'
|
225
|
-
-
|
226
|
-
-
|
230
|
+
- Storage path : '/tmp/tst2/.ps_project/entities/base_entity/my_2nd_entity.yaml'
|
231
|
+
- Provided by : 'PowerStencil core'
|
232
|
+
- Status : Valid
|
233
|
+
- Buildable : false
|
227
234
|
```
|
228
235
|
|
229
236
|
## Querying and graphing entities
|
@@ -336,9 +343,10 @@ Created 'base_entity/dev_entity'
|
|
336
343
|
$ power_stencil check base_entity/dev_entity
|
337
344
|
RAW ENTITIES
|
338
345
|
'base_entity/dev_entity':
|
339
|
-
- Storage path: '/tmp/tst2/.ps_project/user_entities/base_entity/dev_entity.yaml'
|
340
|
-
-
|
341
|
-
-
|
346
|
+
- Storage path : '/tmp/tst2/.ps_project/user_entities/base_entity/dev_entity.yaml'
|
347
|
+
- Provided by : 'PowerStencil core'
|
348
|
+
- Status : Valid
|
349
|
+
- Buildable : false
|
342
350
|
```
|
343
351
|
You can notice where the YAML file has been created.
|
344
352
|
|
@@ -346,9 +354,9 @@ Of course you can then delete the entity like any other...
|
|
346
354
|
```shell
|
347
355
|
$ power_stencil delete base_entity/dev_entity --auto
|
348
356
|
Deleted 'base_entity/dev_entity'
|
349
|
-
|
350
357
|
```
|
351
358
|
|
359
|
+
:hand: As opposed to versioned entities, the templates are not generated in `<project_root>/templates/<entity_type>/<entity_name>` but instead in `<project_root>/unversioned-templates/<entity_type>/<entity_name>`. Anything below `<project_root>/unversioned-templates`, as its name suggests will not be versioned...
|
352
360
|
|
353
361
|
## Updating entities
|
354
362
|
|
@@ -487,13 +495,13 @@ $ power_stencil info
|
|
487
495
|
.
|
488
496
|
--------------------------------------------------------------------------------
|
489
497
|
Available entity types:
|
490
|
-
- Type 'base_entity' --> PowerStencil::SystemEntityDefinitions::ProjectEntity
|
498
|
+
- Type 'base_entity' --> PowerStencil::SystemEntityDefinitions::ProjectEntity (provided by 'PowerStencil core')
|
491
499
|
- Type 'custom_entity' --> MyCustomEntity
|
492
|
-
- Type 'entity_override' --> UniverseCompiler::Entity::Override
|
493
|
-
- Type 'plugin_definition' --> PowerStencil::SystemEntityDefinitions::Plugin (template-template path: '/opt/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/power_stencil-0.
|
494
|
-
- Type 'process_descriptor' --> PowerStencil::SystemEntityDefinitions::ProcessDescriptor
|
495
|
-
- Type 'project_config' --> PowerStencil::SystemEntityDefinitions::ProjectConfig
|
496
|
-
- Type 'simple_exec' --> PowerStencil::SystemEntityDefinitions::SimpleExec (template-template path: '/opt/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/power_stencil-0.
|
500
|
+
- Type 'entity_override' --> UniverseCompiler::Entity::Override (provided by 'PowerStencil core')
|
501
|
+
- Type 'plugin_definition' --> PowerStencil::SystemEntityDefinitions::Plugin (provided by 'PowerStencil core') template-template path: '/opt/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/power_stencil-0.6.1/etc/templates/plugin_definition'
|
502
|
+
- Type 'process_descriptor' --> PowerStencil::SystemEntityDefinitions::ProcessDescriptor (provided by 'PowerStencil core')
|
503
|
+
- Type 'project_config' --> PowerStencil::SystemEntityDefinitions::ProjectConfig (provided by 'PowerStencil core')
|
504
|
+
- Type 'simple_exec' --> PowerStencil::SystemEntityDefinitions::SimpleExec (provided by 'PowerStencil core') template-template path: '/opt/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/power_stencil-0.6.1/etc/templates/simple_exec'
|
497
505
|
```
|
498
506
|
You see that the `custom_entity` type appeared in the list. Need another proof ?
|
499
507
|
```shell
|
@@ -503,9 +511,10 @@ Created 'custom_entity/my_1st_custom_entity'
|
|
503
511
|
$ power_stencil check cust -r
|
504
512
|
RAW ENTITIES
|
505
513
|
'custom_entity/my_1st_custom_entity':
|
506
|
-
- Storage path: '/tmp/tst2/.ps_project/entities/custom_entity/my_1st_custom_entity.yaml'
|
507
|
-
-
|
508
|
-
-
|
514
|
+
- Storage path : '/tmp/tst2/.ps_project/entities/custom_entity/my_1st_custom_entity.yaml'
|
515
|
+
- Provided by : 'PowerStencil core'
|
516
|
+
- Status : Valid
|
517
|
+
- Buildable : false
|
509
518
|
|
510
519
|
$ power_stencil get custom_entity/my_1st_custom_entity --raw
|
511
520
|
--- !ruby/object:MyCustomEntity
|
@@ -9,9 +9,9 @@
|
|
9
9
|
xmlns="http://www.w3.org/2000/svg"
|
10
10
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
11
11
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
12
|
-
width="
|
13
|
-
height="153.
|
14
|
-
viewBox="0 0
|
12
|
+
width="397.49957mm"
|
13
|
+
height="153.6353mm"
|
14
|
+
viewBox="0 0 397.49958 153.6353"
|
15
15
|
version="1.1"
|
16
16
|
id="svg8"
|
17
17
|
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
@@ -20,6 +20,31 @@
|
|
20
20
|
id="title1457">PowerStencil entity creation flow description</title>
|
21
21
|
<defs
|
22
22
|
id="defs2">
|
23
|
+
<marker
|
24
|
+
inkscape:stockid="Arrow1Send"
|
25
|
+
orient="auto"
|
26
|
+
refY="0"
|
27
|
+
refX="0"
|
28
|
+
id="marker1186"
|
29
|
+
style="overflow:visible"
|
30
|
+
inkscape:isstock="true">
|
31
|
+
<path
|
32
|
+
id="path1184"
|
33
|
+
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
34
|
+
style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1.00000003pt;stroke-opacity:1"
|
35
|
+
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
|
36
|
+
inkscape:connector-curvature="0" />
|
37
|
+
</marker>
|
38
|
+
<inkscape:path-effect
|
39
|
+
effect="bspline"
|
40
|
+
id="path-effect1111"
|
41
|
+
is_visible="true"
|
42
|
+
weight="33.333333"
|
43
|
+
steps="2"
|
44
|
+
helper_size="0"
|
45
|
+
apply_no_weight="true"
|
46
|
+
apply_with_weight="true"
|
47
|
+
only_selected="false" />
|
23
48
|
<marker
|
24
49
|
inkscape:isstock="true"
|
25
50
|
style="overflow:visible"
|
@@ -27,7 +52,8 @@
|
|
27
52
|
refX="0"
|
28
53
|
refY="0"
|
29
54
|
orient="auto"
|
30
|
-
inkscape:stockid="Arrow1Send"
|
55
|
+
inkscape:stockid="Arrow1Send"
|
56
|
+
inkscape:collect="always">
|
31
57
|
<path
|
32
58
|
inkscape:connector-curvature="0"
|
33
59
|
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
|
@@ -86,6 +112,31 @@
|
|
86
112
|
apply_no_weight="true"
|
87
113
|
apply_with_weight="true"
|
88
114
|
only_selected="false" />
|
115
|
+
<marker
|
116
|
+
inkscape:isstock="true"
|
117
|
+
style="overflow:visible"
|
118
|
+
id="marker1231-8"
|
119
|
+
refX="0"
|
120
|
+
refY="0"
|
121
|
+
orient="auto"
|
122
|
+
inkscape:stockid="Arrow1Send">
|
123
|
+
<path
|
124
|
+
inkscape:connector-curvature="0"
|
125
|
+
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
|
126
|
+
style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1.00000003pt;stroke-opacity:1"
|
127
|
+
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
128
|
+
id="path1229-7" />
|
129
|
+
</marker>
|
130
|
+
<inkscape:path-effect
|
131
|
+
only_selected="false"
|
132
|
+
apply_with_weight="true"
|
133
|
+
apply_no_weight="true"
|
134
|
+
helper_size="0"
|
135
|
+
steps="2"
|
136
|
+
weight="33.333333"
|
137
|
+
is_visible="true"
|
138
|
+
id="path-effect1227-4"
|
139
|
+
effect="bspline" />
|
89
140
|
</defs>
|
90
141
|
<sodipodi:namedview
|
91
142
|
id="base"
|
@@ -95,8 +146,8 @@
|
|
95
146
|
inkscape:pageopacity="0.0"
|
96
147
|
inkscape:pageshadow="2"
|
97
148
|
inkscape:zoom="0.7"
|
98
|
-
inkscape:cx="
|
99
|
-
inkscape:cy="
|
149
|
+
inkscape:cx="691.24662"
|
150
|
+
inkscape:cy="306.60718"
|
100
151
|
inkscape:document-units="mm"
|
101
152
|
inkscape:current-layer="layer1"
|
102
153
|
showgrid="false"
|
@@ -130,37 +181,44 @@
|
|
130
181
|
inkscape:label="Calque 1"
|
131
182
|
inkscape:groupmode="layer"
|
132
183
|
id="layer1"
|
133
|
-
transform="translate(
|
184
|
+
transform="translate(113.48204,-90.846423)">
|
185
|
+
<path
|
186
|
+
style="opacity:1;vector-effect:none;fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1.88228047;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1186)"
|
187
|
+
d="m -48.999241,171.83879 c 60.854543,0 121.708712,0 182.562501,0"
|
188
|
+
id="path1109"
|
189
|
+
inkscape:connector-curvature="0"
|
190
|
+
inkscape:path-effect="#path-effect1111"
|
191
|
+
inkscape:original-d="m -48.999241,171.83879 c 60.854543,-2.6e-4 121.708712,-2.6e-4 182.562501,0" />
|
134
192
|
<rect
|
135
|
-
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#a7c2db;fill-opacity:0;fill-rule:evenodd;stroke:#b3b3b3;stroke-width:1.
|
193
|
+
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#a7c2db;fill-opacity:0;fill-rule:evenodd;stroke:#b3b3b3;stroke-width:1.29813564;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.19254323, 5.19254323;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
136
194
|
id="rect927"
|
137
|
-
width="
|
138
|
-
height="132.
|
139
|
-
x="-
|
140
|
-
y="101.
|
141
|
-
ry="5.
|
195
|
+
width="376.20145"
|
196
|
+
height="132.33716"
|
197
|
+
x="-102.83297"
|
198
|
+
y="101.49549"
|
199
|
+
ry="5.5368247" />
|
142
200
|
<path
|
143
|
-
inkscape:original-d="m 66.030921,191.14748 c
|
201
|
+
inkscape:original-d="m 66.030921,191.14748 c 19.950452,-6.45185 39.900939,-12.90345 59.851439,-19.35479"
|
144
202
|
inkscape:path-effect="#path-effect1227"
|
145
203
|
inkscape:connector-curvature="0"
|
146
204
|
id="path1225"
|
147
|
-
d="
|
148
|
-
style="fill:#4d4d4d;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1.
|
205
|
+
d="M 66.030921,191.14748 C 85.98145,184.69587 105.93194,178.24427 125.88236,171.79269"
|
206
|
+
style="fill:#4d4d4d;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1.84002388;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1231)" />
|
149
207
|
<path
|
150
|
-
style="fill:#4d4d4d;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1.
|
151
|
-
d="m
|
208
|
+
style="fill:#4d4d4d;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1.88874269;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Send)"
|
209
|
+
d="m 65.996854,151.12108 c 19.962565,6.79369 39.925066,13.58735 59.887526,20.381"
|
152
210
|
id="path1079"
|
153
211
|
inkscape:connector-curvature="0"
|
154
212
|
inkscape:path-effect="#path-effect1081"
|
155
|
-
inkscape:original-d="m
|
213
|
+
inkscape:original-d="m 65.996854,151.12108 c 19.962479,6.79394 39.924986,13.5876 59.887526,20.381" />
|
156
214
|
<text
|
157
215
|
xml:space="preserve"
|
158
216
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#999999;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
159
|
-
x="
|
217
|
+
x="-92.926559"
|
160
218
|
y="110.55138"
|
161
219
|
id="text1006-9"><tspan
|
162
220
|
sodipodi:role="line"
|
163
|
-
x="
|
221
|
+
x="-92.926559"
|
164
222
|
y="110.55138"
|
165
223
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.63020849px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#999999;stroke-width:0.26458332px"
|
166
224
|
id="tspan1026">Entity creation process (power_stencil create)</tspan></text>
|
@@ -234,141 +292,216 @@
|
|
234
292
|
</g>
|
235
293
|
</g>
|
236
294
|
<g
|
237
|
-
id="
|
295
|
+
id="g1039"
|
296
|
+
transform="translate(-98.27381,-31.074538)">
|
238
297
|
<g
|
239
|
-
|
240
|
-
id="g1087">
|
298
|
+
id="g1026">
|
241
299
|
<rect
|
242
300
|
ry="1.7865629"
|
243
|
-
y="
|
244
|
-
x="
|
301
|
+
y="202.91333"
|
302
|
+
x="6.126143"
|
245
303
|
height="21.836939"
|
246
304
|
width="87.226822"
|
247
305
|
id="rect933"
|
248
306
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#c8e1c8;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.7077052;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
249
307
|
<text
|
250
308
|
id="text937"
|
251
|
-
y="
|
252
|
-
x="
|
309
|
+
y="209.25699"
|
310
|
+
x="12.238936"
|
253
311
|
style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
254
312
|
xml:space="preserve"><tspan
|
255
313
|
id="tspan941"
|
256
314
|
style="stroke-width:0.26458332px"
|
257
|
-
y="
|
258
|
-
x="
|
315
|
+
y="209.25699"
|
316
|
+
x="12.238936"
|
259
317
|
sodipodi:role="line">templates-templates</tspan><tspan
|
260
318
|
id="tspan1007"
|
261
319
|
style="stroke-width:0.26458332px"
|
262
|
-
y="
|
263
|
-
x="
|
320
|
+
y="215.04475"
|
321
|
+
x="12.238936"
|
264
322
|
sodipodi:role="line">within project in </tspan><tspan
|
265
323
|
id="tspan1009"
|
266
324
|
style="stroke-width:0.26458332px"
|
267
|
-
y="
|
268
|
-
x="
|
325
|
+
y="220.8325"
|
326
|
+
x="12.238936"
|
269
327
|
sodipodi:role="line">.ps_project/templates-templates</tspan></text>
|
270
328
|
</g>
|
271
329
|
<g
|
272
|
-
|
273
|
-
id="g1068">
|
330
|
+
id="g1019">
|
274
331
|
<rect
|
275
332
|
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#a7c2db;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.7077052;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
276
333
|
id="rect1058"
|
277
334
|
width="87.226822"
|
278
335
|
height="21.836939"
|
279
|
-
x="
|
280
|
-
y="
|
336
|
+
x="6.126143"
|
337
|
+
y="181.07639"
|
281
338
|
ry="1.7865629" />
|
282
339
|
<text
|
283
340
|
id="text1017"
|
284
|
-
y="
|
285
|
-
x="
|
341
|
+
y="190.36026"
|
342
|
+
x="49.678513"
|
286
343
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
287
344
|
xml:space="preserve"><tspan
|
288
345
|
id="tspan1013"
|
289
346
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.63020849px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.26458332px"
|
290
|
-
y="
|
291
|
-
x="
|
347
|
+
y="190.36026"
|
348
|
+
x="49.678513"
|
292
349
|
sodipodi:role="line">Custom Project</tspan><tspan
|
293
350
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.63020849px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.26458332px"
|
294
|
-
y="
|
295
|
-
x="
|
351
|
+
y="196.14803"
|
352
|
+
x="49.678513"
|
296
353
|
sodipodi:role="line"
|
297
354
|
id="tspan1015">Entity Types</tspan></text>
|
298
355
|
</g>
|
299
356
|
</g>
|
300
357
|
<g
|
301
|
-
id="
|
302
|
-
transform="translate(54.418475,47.33271)">
|
358
|
+
id="g1107">
|
303
359
|
<g
|
304
|
-
id="
|
305
|
-
<
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
y="
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
style="
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
360
|
+
id="g1088">
|
361
|
+
<rect
|
362
|
+
ry="2.7240984"
|
363
|
+
y="171.79269"
|
364
|
+
x="125.88236"
|
365
|
+
height="33.296322"
|
366
|
+
width="137.29633"
|
367
|
+
id="rect1139"
|
368
|
+
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#c8e1c8;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.70367658;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
369
|
+
<text
|
370
|
+
id="text1147"
|
371
|
+
y="177.50699"
|
372
|
+
x="132.80325"
|
373
|
+
style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
374
|
+
xml:space="preserve"><tspan
|
375
|
+
id="tspan1143"
|
376
|
+
style="stroke-width:0.26458332px"
|
377
|
+
y="177.50699"
|
378
|
+
x="132.80325"
|
379
|
+
sodipodi:role="line">templates for <tspan
|
380
|
+
style="font-weight:bold"
|
381
|
+
id="tspan924">versioned</tspan> entities in:</tspan><tspan
|
382
|
+
id="tspan1145"
|
383
|
+
style="stroke-width:0.26458332px"
|
384
|
+
y="183.29475"
|
385
|
+
x="132.80325"
|
386
|
+
sodipodi:role="line">templates/<entity_type>/<entity_name></tspan><tspan
|
387
|
+
style="stroke-width:0.26458332px"
|
388
|
+
y="189.0825"
|
389
|
+
x="132.80325"
|
390
|
+
sodipodi:role="line"
|
391
|
+
id="tspan922" /><tspan
|
392
|
+
style="stroke-width:0.26458332px"
|
393
|
+
y="194.87027"
|
394
|
+
x="132.80325"
|
395
|
+
sodipodi:role="line"
|
396
|
+
id="tspan918">templates for <tspan
|
397
|
+
style="font-weight:bold"
|
398
|
+
id="tspan926">unversioned</tspan> entities in:</tspan><tspan
|
399
|
+
style="stroke-width:0.26458332px"
|
400
|
+
y="200.65804"
|
401
|
+
x="132.80325"
|
402
|
+
sodipodi:role="line"
|
403
|
+
id="tspan920">unversioned-templates/<entity_type>/<entity_name></tspan></text>
|
404
|
+
</g>
|
405
|
+
<g
|
406
|
+
id="g1077">
|
407
|
+
<rect
|
408
|
+
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#a7c2db;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.7077052;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
409
|
+
id="rect1062-3"
|
410
|
+
width="136.91151"
|
411
|
+
height="32.911507"
|
412
|
+
x="125.88438"
|
413
|
+
y="138.59058"
|
414
|
+
ry="2.6926153" />
|
415
|
+
<text
|
416
|
+
xml:space="preserve"
|
417
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
418
|
+
x="195.23486"
|
419
|
+
y="149.33342"
|
420
|
+
id="text819-3"><tspan
|
421
|
+
id="tspan951-7"
|
422
|
+
sodipodi:role="line"
|
423
|
+
x="195.23486"
|
424
|
+
y="149.33342"
|
425
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.63020849px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.26458332px">Project Entities</tspan></text>
|
426
|
+
<text
|
427
|
+
id="text882"
|
428
|
+
y="159.20033"
|
429
|
+
x="195.30766"
|
430
|
+
style="font-style:normal;font-weight:normal;font-size:2.72649646px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.15579979px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
431
|
+
xml:space="preserve"><tspan
|
432
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.15579979px"
|
433
|
+
y="159.20033"
|
434
|
+
x="195.98152"
|
435
|
+
id="tspan880"
|
436
|
+
sodipodi:role="line">Stored in </tspan><tspan
|
437
|
+
id="tspan884"
|
438
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.15579979px"
|
439
|
+
y="162.99988"
|
440
|
+
x="195.30766"
|
441
|
+
sodipodi:role="line">.ps_project/entities/<entity_type>/<entity_name>.yaml</tspan></text>
|
442
|
+
</g>
|
443
|
+
</g>
|
444
|
+
<g
|
445
|
+
id="g1069"
|
446
|
+
transform="translate(-1.0213384,-111.88095)">
|
447
|
+
<g
|
448
|
+
id="g1056">
|
449
|
+
<rect
|
450
|
+
ry="1.7865629"
|
451
|
+
y="315.04086"
|
452
|
+
x="7.0617967"
|
453
|
+
height="21.836939"
|
454
|
+
width="87.226822"
|
455
|
+
id="rect933-7"
|
456
|
+
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#c8e1c8;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.7077052;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
457
|
+
<text
|
458
|
+
id="text937-8"
|
459
|
+
y="321.38452"
|
460
|
+
x="13.17459"
|
461
|
+
style="font-style:normal;font-weight:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
462
|
+
xml:space="preserve"><tspan
|
463
|
+
id="tspan941-5"
|
464
|
+
style="stroke-width:0.26458332px"
|
465
|
+
y="321.38452"
|
466
|
+
x="13.17459"
|
467
|
+
sodipodi:role="line">templates-templates</tspan><tspan
|
468
|
+
id="tspan1009-3"
|
469
|
+
style="stroke-width:0.26458332px"
|
470
|
+
y="327.17227"
|
471
|
+
x="13.17459"
|
472
|
+
sodipodi:role="line">within plugins. Path is </tspan><tspan
|
473
|
+
style="stroke-width:0.26458332px"
|
474
|
+
y="332.96005"
|
475
|
+
x="13.17459"
|
476
|
+
sodipodi:role="line"
|
477
|
+
id="tspan1043">customizable (see plugins doc)</tspan></text>
|
478
|
+
</g>
|
479
|
+
<g
|
480
|
+
id="g1049">
|
481
|
+
<rect
|
482
|
+
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#a7c2db;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.7077052;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
483
|
+
id="rect1058-8"
|
484
|
+
width="87.226822"
|
485
|
+
height="21.836939"
|
486
|
+
x="7.0617967"
|
487
|
+
y="293.20392"
|
488
|
+
ry="1.7865629" />
|
489
|
+
<text
|
490
|
+
id="text1017-3"
|
491
|
+
y="302.48779"
|
492
|
+
x="50.614166"
|
493
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.63020849px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
494
|
+
xml:space="preserve"><tspan
|
495
|
+
id="tspan1013-7"
|
496
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.63020849px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.26458332px"
|
497
|
+
y="302.48779"
|
498
|
+
x="50.614166"
|
499
|
+
sodipodi:role="line">Plugins</tspan><tspan
|
500
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.63020849px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;stroke-width:0.26458332px"
|
501
|
+
y="308.27554"
|
502
|
+
x="50.614166"
|
503
|
+
sodipodi:role="line"
|
504
|
+
id="tspan1015-9">Entity Types</tspan></text>
|
372
505
|
</g>
|
373
506
|
</g>
|
374
507
|
</g>
|