support line breaks

This commit is contained in:
Janik von Rotz committed 2023-06-14 13:27:16 +02:00
1 parent 800acbe72d
commit f65bd2bacf
9 files changed
+450 -38

No files matched your search

+13
View File
@@ -0,0 +1,13 @@
{
"nodes":[
{"id":"1fa81fd89c6de237","x":-380,"y":-190,"width":540,"height":270,"color":"1","type":"group","label":"Docker Host"},
{"type":"text","text":"Docker-in-Docker Container\ndocker:dind","id":"c2d1c62825b6138c","x":-90,"y":-170,"width":230,"height":90,"color":"6"},
{"type":"text","text":"Jenkins Agent\njenkins:agent","id":"4fb299b75e9bba66","x":-90,"y":-40,"width":230,"height":100,"color":"6"},
{"id":"35f1fbbd96262a78","x":-360,"y":-170,"width":220,"height":90,"color":"6","type":"text","text":"Jenkins Container\njenkins:jenkins"}
],
"edges":[
{"id":"2942d4445600f290","fromNode":"35f1fbbd96262a78","fromSide":"right","toNode":"c2d1c62825b6138c","toSide":"left"},
{"id":"02864d4d5ef134e6","fromNode":"35f1fbbd96262a78","fromSide":"bottom","toNode":"4fb299b75e9bba66","toSide":"left","color":"3","label":"build odoo:odoo"},
{"id":"cad12ed8c9f45c25","fromNode":"c2d1c62825b6138c","fromSide":"bottom","toNode":"4fb299b75e9bba66","toSide":"top"}
]
}
+7 -1
View File
@@ -6,4 +6,10 @@ tags:
Website: <https://www.jenkins.io/>
[[Jenkins Handbuch]]
Weiterführende Links:
* [[Jenkins Handbuch]]
## Docker Umgebung
![[Jenkins Docker Umgebung.canvas|Jenkins Docker Umgebung]]
+122 -12
View File
@@ -6,7 +6,7 @@
<text x="75" y="-295" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="24" font-weight="bold" fill="#2c2d2c">Odoo Environment</text>
<rect x="-180" y="-280" width="180" height="290" rx="30" stroke="#7e7e7e" stroke-width="4" fill="#fbfbfb"/>
<text x="-165" y="-295" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="24" font-weight="bold" fill="#2c2d2c">Drone</text>
<text x="-165" y="-295" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="24" font-weight="bold" fill="#2c2d2c">Jenkins</text>
<rect x="-420" y="-280" width="180" height="290" rx="30" stroke="#7e7e7e" stroke-width="4" fill="#fbfbfb"/>
<text x="-405" y="-295" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="24" font-weight="bold" fill="#2c2d2c">GitHub Repo</text>
@@ -108,35 +108,145 @@
<line x1="-19" y1="-45" x2="69" y2="-45" stroke="#7e7e7e" stroke-width="5" marker-end="url(#arrow-end-e02dffeb998d3136)" />
<rect x="80" y="-260" width="140" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="95" y="-230" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">odoo01</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="95" y="-260" width="110" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="37875053b83406f6">odoo01</p>
</foreignObject>
<rect x="-160" y="-260" width="140" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="-145" y="-230" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">main pipeline</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-145" y="-260" width="110" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="067586fab30ab8eb">main pipeline</p>
</foreignObject>
<rect x="-400" y="-260" width="140" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="-385" y="-230" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">main branch</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-385" y="-260" width="110" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="d49954f100392182">main branch</p>
</foreignObject>
<rect x="-400" y="-170" width="140" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="-385" y="-140" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">int branch</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-385" y="-170" width="110" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="36fa923450ae6d97">int branch</p>
</foreignObject>
<rect x="-400" y="-70" width="140" height="50" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="-385" y="-40" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">dev branch</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-385" y="-70" width="110" height="50">
<p xmlns="http://www.w3.org/1999/xhtml" class="3c7f4aecfa9902cb">dev branch</p>
</foreignObject>
<rect x="-160" y="-75" width="140" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="-145" y="-45" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">dev pipeline</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-145" y="-75" width="110" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="509910fff8fc18ab">dev pipeline</p>
</foreignObject>
<rect x="-160" y="-170" width="140" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="-145" y="-140" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">int pipeline</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-145" y="-170" width="110" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="6e1aafd32d9ca51f">int pipeline</p>
</foreignObject>
<rect x="80" y="20" width="140" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="95" y="50" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">mailhog01</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="95" y="20" width="110" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="e74e3fd9c0461407">mailhog01</p>
</foreignObject>
<rect x="80" y="-75" width="140" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="95" y="-45" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">odoo03</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="95" y="-75" width="110" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="c38f8a144a2ed122">odoo03</p>
</foreignObject>
<rect x="80" y="-170" width="140" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="95" y="-140" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">odoo02</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="95" y="-170" width="110" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="0a8ff69caa999d26">odoo02</p>
</foreignObject>
<rect x="360" y="-195" width="220" height="180" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="375" y="-185" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c"><tspan x="375" dy="19">nginx01</tspan><tspan x="375" dy="19">- odoo.example.com</tspan><tspan x="375" dy="19">- int.example.com</tspan><tspan x="375" dy="19">- dev.example.com</tspan><tspan x="375" dy="19">- mail.example.com</tspan><tspan x="375" dy="19">- drone.example.com</tspan></text>
<text x="375" y="-185" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" fill="#2c2d2c"><tspan x="375" dy="18">nginx01</tspan><tspan x="375" dy="18">- odoo.example.com</tspan><tspan x="375" dy="18">- int.example.com</tspan><tspan x="375" dy="18">- dev.example.com</tspan><tspan x="375" dy="18">- mail.example.com</tspan><tspan x="375" dy="18">- drone.example.com</tspan></text>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 14 KiB

+32 -16
View File
@@ -81,24 +81,41 @@ function renderNode(node) {
const fontWeight = 'bold'
let textOffsetX = 15
let textOffsetY = 30
let textOffsetY = 0
let fontColor = '#2c2d2c'
let text = node['text']
let fontSize = 16
let fontSize = 15
let fontFamily = 'Roboto, Oxygen, Ubuntu, Cantarell, sans-serif'
// Process multiline text
let content = ''
if (text && text.split('\n').length > 1) {
let spans = ''
for (const line of text.split('\n')) {
spans += `<tspan x="${node['x'] + textOffsetX}" dy="${fontSize + 3}">${line}</tspan>`
}
text = spans
textOffsetY = 10
// Render default text
if (node['text']) {
content = `
<style>
p {
font-family: ${fontFamily};
font-size: ${fontSize}px;
color: ${fontColor};
}
</style>
<foreignObject x="${node['x'] + textOffsetX}" y="${node['y'] + textOffsetY}" width="${node['width'] - textOffsetX*2}" height="${node['height'] - textOffsetY*2}">
<p xmlns="http://www.w3.org/1999/xhtml" class="${node['id']}">${node['text']}</p>
</foreignObject>
`
}
// Link markdown file
// Render multiline text
if (node['text'] && node['text'].split('\n').length > 1) {
let spans = ''
for (const line of node['text'].split('\n')) {
spans += `<tspan x="${node['x'] + textOffsetX}" dy="${fontSize + 3}">${line}</tspan>`
}
textOffsetY = 10
content = `<text x="${node['x'] + textOffsetX}" y="${node['y'] + textOffsetY}" font-family="${fontFamily}" fill="${fontColor}">${spans}</text>`
}
// Render linked markdown file
if (node['file'] && node['file'].endsWith('.md')) {
title = node['file'].replace('.md', '')
@@ -107,11 +124,10 @@ function renderNode(node) {
fontSize = 28
textOffsetX = 30
textOffsetY = 45
content = `<text x="${node['x'] + textOffsetX}" y="${node['y'] + textOffsetY}" font-family="${fontFamily}" font-size="${fontSize}" font-weight="${fontWeight}" fill="${fontColor}">${text}</text>`
}
content = `<text x="${node['x'] + textOffsetX}" y="${node['y'] + textOffsetY}" font-family="${fontFamily}" font-size="${fontSize}" font-weight="${fontWeight}" fill="${fontColor}">${text}</text>`
// If file is not markdown render as image
// Render image
if (node['file'] && !node['file'].endsWith('.md')) {
filePath = node['file']
+24 -2
View File
@@ -30,7 +30,18 @@
<line x1="249" y1="-120" x2="101" y2="-170" stroke="#a56c3a" stroke-width="5" />
<rect x="-150" y="-200" width="250" height="60" rx="15" stroke="#aa363d" stroke-width="4" fill="none"/>
<text x="-135" y="-170" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">Canvas in Obsidian erstellen</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-135" y="-200" width="220" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="c2b83b58ff104957">Canvas in Obsidian erstellen</p>
</foreignObject>
<rect x="-200" y="-80" width="350" height="240" rx="15" stroke="#803dd1" stroke-width="4" fill="none"/>
<text x="-170" y="-35" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="28" font-weight="bold" fill="#9a7fee"><a href="/obsidian.html">Obsidian</a></text>
@@ -39,5 +50,16 @@
<image href="data:image/{extension};base64,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 truncated
<rect x="240" y="10" width="170" height="60" rx="15" stroke="#249391" stroke-width="4" fill="none"/>
<text x="255" y="40" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">Export als SVG</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="255" y="10" width="140" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="3bbb4a8b9a8a726b">Export als SVG</p>
</foreignObject>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 17 KiB

+40
View File
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg viewBox="-430 -240 640 370" xmlns="http://www.w3.org/2000/svg">
<rect x="-380" y="-190" width="540" height="270" rx="30" stroke="#aa363d" stroke-width="4" fill="#fbfbfb"/>
<text x="-365" y="-205" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="24" font-weight="bold" fill="#2c2d2c">Docker Host</text>
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-end-2942d4445600f290" viewBox="0 0 10 10" refX="1" refY="5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L 7 5 L 0 10 z"/>
</marker>
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-start-2942d4445600f290" viewBox="-10 -10 10 10" refX="-1" refY="-5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L -7 -5 L -0 -10 z"/>
</marker>
<line x1="-139" y1="-125" x2="-101" y2="-125" stroke="#7e7e7e" stroke-width="5" marker-end="url(#arrow-end-2942d4445600f290)" />
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-end-02864d4d5ef134e6" viewBox="0 0 10 10" refX="1" refY="5" fill="#aba960" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L 7 5 L 0 10 z"/>
</marker>
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-start-02864d4d5ef134e6" viewBox="-10 -10 10 10" refX="-1" refY="-5" fill="#aba960" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L -7 -5 L -0 -10 z"/>
</marker>
<line x1="-250" y1="-79" x2="-101" y2="10" stroke="#aba960" stroke-width="5" marker-end="url(#arrow-end-02864d4d5ef134e6)" />
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-end-cad12ed8c9f45c25" viewBox="0 0 10 10" refX="1" refY="5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L 7 5 L 0 10 z"/>
</marker>
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-start-cad12ed8c9f45c25" viewBox="-10 -10 10 10" refX="-1" refY="-5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L -7 -5 L -0 -10 z"/>
</marker>
<line x1="25" y1="-79" x2="25" y2="-51" stroke="#7e7e7e" stroke-width="5" marker-end="url(#arrow-end-cad12ed8c9f45c25)" />
<rect x="-90" y="-170" width="230" height="90" rx="15" stroke="#795fac" stroke-width="4" fill="none"/>
<text x="-75" y="-160" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" fill="#2c2d2c"><tspan x="-75" dy="18">Docker-in-Docker Container</tspan><tspan x="-75" dy="18">docker:dind</tspan></text>
<rect x="-90" y="-40" width="230" height="100" rx="15" stroke="#795fac" stroke-width="4" fill="none"/>
<text x="-75" y="-30" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" fill="#2c2d2c"><tspan x="-75" dy="18">Jenkins Agent</tspan><tspan x="-75" dy="18">jenkins:agent</tspan></text>
<rect x="-360" y="-170" width="220" height="90" rx="15" stroke="#795fac" stroke-width="4" fill="none"/>
<text x="-345" y="-160" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" fill="#2c2d2c"><tspan x="-345" dy="18">Jenkins Container</tspan><tspan x="-345" dy="18">jenkins:jenkins</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

+128
View File
@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg viewBox="-370 -190 770 300" xmlns="http://www.w3.org/2000/svg">
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-end-451d4cdd05a37287" viewBox="0 0 10 10" refX="1" refY="5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L 7 5 L 0 10 z"/>
</marker>
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-start-451d4cdd05a37287" viewBox="-10 -10 10 10" refX="-1" refY="-5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L -7 -5 L -0 -10 z"/>
</marker>
<line x1="-159" y1="-110" x2="-131" y2="-110" stroke="#7e7e7e" stroke-width="5" marker-end="url(#arrow-end-451d4cdd05a37287)" />
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-end-58c65ad7c53457e6" viewBox="0 0 10 10" refX="1" refY="5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L 7 5 L 0 10 z"/>
</marker>
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-start-58c65ad7c53457e6" viewBox="-10 -10 10 10" refX="-1" refY="-5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L -7 -5 L -0 -10 z"/>
</marker>
<line x1="61" y1="-110" x2="89" y2="-110" stroke="#7e7e7e" stroke-width="5" marker-end="url(#arrow-end-58c65ad7c53457e6)" />
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-end-ac75a566ce37eb2c" viewBox="0 0 10 10" refX="1" refY="5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L 7 5 L 0 10 z"/>
</marker>
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-start-ac75a566ce37eb2c" viewBox="-10 -10 10 10" refX="-1" refY="-5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L -7 -5 L -0 -10 z"/>
</marker>
<line x1="225" y1="-79" x2="-230" y2="-11" stroke="#7e7e7e" stroke-width="5" marker-end="url(#arrow-end-ac75a566ce37eb2c)" />
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-end-562f0db526e9881b" viewBox="0 0 10 10" refX="1" refY="5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L 7 5 L 0 10 z"/>
</marker>
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-start-562f0db526e9881b" viewBox="-10 -10 10 10" refX="-1" refY="-5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L -7 -5 L -0 -10 z"/>
</marker>
<line x1="-139" y1="30" x2="-111" y2="30" stroke="#7e7e7e" stroke-width="5" marker-end="url(#arrow-end-562f0db526e9881b)" />
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-end-e2cb416078541d4d" viewBox="0 0 10 10" refX="1" refY="5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L 7 5 L 0 10 z"/>
</marker>
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-start-e2cb416078541d4d" viewBox="-10 -10 10 10" refX="-1" refY="-5" fill="#7e7e7e" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L -7 -5 L -0 -10 z"/>
</marker>
<line x1="115" y1="30" x2="142" y2="30" stroke="#7e7e7e" stroke-width="5" marker-end="url(#arrow-end-e2cb416078541d4d)" />
<rect x="-320" y="-140" width="160" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-305" y="-140" width="130" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="c5808484b7d4182d">Clone Github-Repo</p>
</foreignObject>
<rect x="-120" y="-140" width="180" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-105" y="-140" width="150" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="abe03ff7339903cf">Clone Submodules</p>
</foreignObject>
<rect x="100" y="-140" width="250" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="115" y="-140" width="220" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="c6f62538a31d858f">Start containers: Odoo and Postgres</p>
</foreignObject>
<rect x="-320" y="0" width="180" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-305" y="0" width="150" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="982f84b024968f5b">Init Odoo database</p>
</foreignObject>
<rect x="-100" y="0" width="214" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-85" y="0" width="184" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="be6695397abfc8cf">Run Odoo module tests</p>
</foreignObject>
<rect x="153" y="0" width="197" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="168" y="0" width="167" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="e8f53a37319df23a">Deploy to environment</p>
</foreignObject>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

+36 -3
View File
@@ -30,11 +30,44 @@
<line x1="-35" y1="-141" x2="-35" y2="-169" stroke="#7e7e7e" stroke-width="5" marker-end="url(#arrow-end-0f8d3bca95afe73f)" />
<rect x="-160" y="-240" width="250" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="-145" y="-210" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">Production (main)</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-145" y="-240" width="220" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="8d24fb19cc0a5f90">Production (main)</p>
</foreignObject>
<rect x="-160" y="-140" width="250" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="-145" y="-110" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">Staging (int)</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-145" y="-140" width="220" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="750c9f8b67bccb0f">Staging (int)</p>
</foreignObject>
<rect x="-160" y="-40" width="250" height="60" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="-145" y="-10" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">Development (dev)</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-145" y="-40" width="220" height="60">
<p xmlns="http://www.w3.org/1999/xhtml" class="6ace56e7f65f66ed">Development (dev)</p>
</foreignObject>
</svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

+48 -4
View File
@@ -35,19 +35,63 @@
<line x1="-622" y1="-505" x2="-809" y2="-535.5" stroke="#aba960" stroke-width="5" marker-end="url(#arrow-end-84ea74136f1c39c5)" />
<rect x="-621" y="-405" width="160" height="130" rx="15" stroke="#795fac" stroke-width="4" fill="none"/>
<text x="-606" y="-375" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">Aerodoo</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-606" y="-405" width="130" height="130">
<p xmlns="http://www.w3.org/1999/xhtml" class="657173ed1488a129">Aerodoo</p>
</foreignObject>
<rect x="-621" y="-570" width="160" height="130" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="-606" y="-540" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">Caluma</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-606" y="-570" width="130" height="130">
<p xmlns="http://www.w3.org/1999/xhtml" class="1b9d1d8b6c4aeafd">Caluma</p>
</foreignObject>
<rect x="-440" y="-405" width="160" height="130" rx="15" stroke="#6e1151" stroke-width="4" fill="none"/>
<text x="-425" y="-375" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">Odoo</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-425" y="-405" width="130" height="130">
<p xmlns="http://www.w3.org/1999/xhtml" class="86e8832c295bce23">Odoo</p>
</foreignObject>
<rect x="-941" y="-144" width="301" height="86" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<text x="-911" y="-99" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="28" font-weight="bold" fill="#9a7fee"><a href="/aerodoo.html">Aerodoo</a></text>
<rect x="-440" y="-570" width="160" height="130" rx="15" stroke="#249391" stroke-width="4" fill="none"/>
<text x="-425" y="-540" font-family="Roboto, Oxygen, Ubuntu, Cantarell, sans-serif" font-size="16" font-weight="bold" fill="#2c2d2c">Infrastruktur</text>
<style>
p {
font-family: Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
font-size: 15px;
color: #2c2d2c;
}
</style>
<foreignObject x="-425" y="-570" width="130" height="130">
<p xmlns="http://www.w3.org/1999/xhtml" class="9a46d9935effc7c2">Infrastruktur</p>
</foreignObject>
<rect x="-640" y="-800" width="400" height="143" rx="15" stroke="#7e7e7e" stroke-width="4" fill="none"/>
<image href="data:image/{extension};base64,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 truncated

Before

Width:  |  Height:  |  Size: 927 KiB

After

Width:  |  Height:  |  Size: 928 KiB