diff --git a/.drone.yml b/.drone.yml index 27532f2..bf7a010 100644 --- a/.drone.yml +++ b/.drone.yml @@ -2,9 +2,8 @@ kind: pipeline name: release steps: - name: build - image: minlag/mermaid-cli + image: hamroctopus/graphviz:2.38.0 commands: - - apt install make - make - name: publish diff --git a/Makefile b/Makefile index 74131e1..d0fd8c1 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,21 @@ -THEME=neutral -BACKGROUND_COLOR=\\\#333333 +BASE_ATTRS=\ + color=white \ + fontcolor=white -MMDC_BASE_CMD=mmdc --theme $(THEME) --backgroundColor $(BACKGROUND_COLOR) --puppeteerConfigFile ./puppeteer-config.json +GRAPH_ATTRS=\ + $(BASE_ATTRS) \ + bgcolor=gray8 \ + +NODE_ATTRS=\ + $(BASE_ATTRS) + +EDGE_ATTRS=\ + $(BASE_ATTRS) + +DOT_BASE_CMD=dot \ + $(patsubst %,-G%,$(GRAPH_ATTRS)) \ + $(patsubst %,-N%,$(NODE_ATTRS)) \ + $(patsubst %,-E%,$(EDGE_ATTRS)) .PHONY: All All: build/de.png build/de.svg build/en.png build/en.svg @@ -10,10 +24,11 @@ All: build/de.png build/de.svg build/en.png build/en.svg clean: rm -rf build -build/%.svg: %.mmd +build/%.svg: %.dot @mkdir -p $(@D) - $(MMDC_BASE_CMD) -i $< -o $@ + $(DOT_BASE_CMD) -Tsvg $< -o $@ -build/%.png: %.mmd +build/%.png: %.dot @mkdir -p $(@D) - $(MMDC_BASE_CMD) -i $< -o $@ -w 2000 + $(DOT_BASE_CMD) -Tpng $< -o $@ + diff --git a/de.dot b/de.dot new file mode 100644 index 0000000..3fbe528 --- /dev/null +++ b/de.dot @@ -0,0 +1,85 @@ +digraph langchart { + { + rank = same; + node [shape=hexagon]; + + v_bad [label="Die Sprache ist absoluter Dreck! Sofort entsorgen!"]; + bad [label="Die Sprache taugt nichts!"]; + acceptable [label="Die Sprache ist akzeptabel"]; + good [label="Die Sprache ist gut"]; + v_good [label="Die Sprache ist geil!"]; + } + + n_0 [shape=house, label="Ist diese Programmiersprache gut?"]; + n_1 [label="Ist die Sprache interpretiert?"]; + + n_0 -> n_1; + + n_2 [label="Wird die Sprache für embedded-scripting verwendet?"]; + + subgraph cluster0 { + label="Embedded Scripting"; + color=white; + + n_4 [label="Wird die Sprache in einem sehr komplexem Programm wie einem Browser als Scriptsprache verwendet?"]; + + n_2 -> n_4 [label="Ja"]; + + n_5 [shape=parallelogram, label="VM Sprache verwenden"]; + + n_4 -> n_5 [label="Ja"]; + } + + n_2 -> v_bad [label="Nein"]; + n_5 -> bad; + n_4 -> n_6 [label="Nein"]; + + n_1 -> n_3 [label="Nein"]; + n_1 -> n_2 [label="Ja"]; + + n_3 [label="Hat die Sprache dynamische Typen?"]; + n_6 [label="Hat die Sprache whitespace-dependant Syntax?"]; + + n_3 -> v_bad [label="Ja"]; + n_3 -> n_6 [label="Nein"]; + n_6 -> v_bad [label="Ja"]; + + n_7 [label="Funktioniert diese Sprache VOLLSTÄNDIG auf Linux?"]; + + n_6 -> n_7 [label="Nein"]; + n_7 -> v_bad [label="Nein"]; + + n_8 [label="Wurde die Sprache von Microsoft entwickelt?"]; + + n_8 -> v_bad [label="Ja"]; + n_7 -> n_8 [label="Ja"]; + + n_9 [label="Ist die GESAMTE Toolchain FOSS?"]; + + n_8 -> n_9 [label="Nein"]; + n_9 -> bad [label="Nein"]; + + n_10 [label="Wird die Sprache zu einer anderern transpiliert?"]; + n_11 [label="Kommen alle Targets der Sprache in diesem Test bei \"Schlecht\" an?"]; + n_12 [label="Läuft die Sprache in einer VM?"]; + + n_9 -> n_10 [label="Ja"]; + n_10 -> n_11 [label="Ja"]; + n_10 -> n_12 [label="Nein"]; + n_11 -> acceptable [label="Ja"]; + n_11 -> v_good [label="Nein"]; + + n_13 [label="Hat die Sprache einen Garbage Collector?"]; + + n_12 -> n_13 [label="Ja"]; + n_13 -> good [label="Ja"]; + n_13 -> v_good [label="Nein"]; + + n_14 [label="Wofür wird die Sprache verwendet?"]; + + n_12 -> n_14 [label="Nein"]; + n_14 -> v_bad [label="CLI App"]; + n_14 -> good [label="Embedded Scripting"]; + n_14 -> v_good [label="Game Dev"]; +} + diff --git a/de.mmd b/de.mmd deleted file mode 100644 index 245bb5b..0000000 --- a/de.mmd +++ /dev/null @@ -1,43 +0,0 @@ -flowchart TD -A[Ist diese Programmiersprache gut?] --> B([Ist die Sprache interpretiert?]) - -I --> |Nein| SSchlecht{{Die Sprache ist absoluter Dreck! Sofort entsorgen!}} -I --> |Ja| J([Wird die Sprache in einem sehr komplexem Programm wie einem Browser als Scriptsprache verwendet?]) - -J --> |Ja| K[\VM Sprache verwenden\] --> Schlecht -J --> |Nein| D - -B --> |Ja| I([Wird die Sprache für embedded-scripting verwendet?]) -B --> |Nein| C([Hat die Sprache dynamische Typen?]) - -C --> |Ja| SSchlecht -C --> |Nein| D([Hat die Sprache whitespace-dependant Syntax?]) - -D --> |Ja| SSchlecht -D --> |Nein| E([Funktionierd diese Sprache VOLLSTÄNDIG auf linux?]) - -E --> |Nein| SSchlecht -E --> |Ja| F([Wurde die Sprache von Microsoft entwickelt?]) - -F --> |Ja| SSchlecht -F --> |Nein| G([Ist die GESAMTE Toolchain FOSS?]) - -G --> |Nein| Schlecht{{Die Sprache taugt nichts!}} -G --> |Ja| N([Wird die Sprache zu einer anderern transpiliert?]) - -N --> |Ja| O(["Kommen alle Targets der sprache in diesem Test bei #quot;schlecht#quot; an?"]) -N --> |Nein| H([Läuft die Sprache nur in einer VM?]) - -O --> |Ja| Ok{{Die Sprache ist akzeptabel}} -O --> |Nein| SGut - -H --> |Ja| L([Wofür wird die Sprache verwendet?]) -H --> |Nein| M([Hat die Sprache einen Garbage Collector?]) - -M --> |Ja| Gut{{Die Sprache ist gut}} -M --> |Nein| SGut{{Die Sprache ist geil!}} - -L --> |CLI app| SSchlecht -L --> |Embedded Scripting| Gut -L --> |Game Dev| SGut - diff --git a/en.dot b/en.dot new file mode 100644 index 0000000..7ca6329 --- /dev/null +++ b/en.dot @@ -0,0 +1,85 @@ +digraph langchart { + { + rank = same; + node [shape=hexagon]; + + v_bad [label="The language is total Garbage! Immediately dispose of!"]; + bad [label="The language is bad!"]; + acceptable [label="The language is acceptable"]; + good [label="The language is good"]; + v_good [label="The language is awesome!"]; + } + + n_0 [shape=house, label="Is this programming language good?"]; + n_1 [label="Is the language interpreted?"]; + + n_0 -> n_1; + + n_2 [label="Is the language used for embedded scripting?"]; + + subgraph cluster0 { + label="Embedded Scripting"; + color=white; + + n_4 [label="Is the language used for scripting in a very complex program such as a browser?"]; + + n_2 -> n_4 [label="Yes"]; + + n_5 [shape=parallelogram, label="Use VM language"]; + + n_4 -> n_5 [label="Yes"]; + } + + n_2 -> v_bad [label="No"]; + n_5 -> bad; + n_4 -> n_6 [label="No"]; + + n_1 -> n_3 [label="No"]; + n_1 -> n_2 [label="Yes"]; + + n_3 [label="Does the language have dynamic types?"]; + n_6 [label="Does the language have whitespace-dependant Syntax?"]; + + n_3 -> v_bad [label="Yes"]; + n_3 -> n_6 [label="No"]; + n_6 -> v_bad [label="Yes"]; + + n_7 [label="Does the language COMPLETELY work on linux?"]; + + n_6 -> n_7 [label="No"]; + n_7 -> v_bad [label="No"]; + + n_8 [label="Has the language been developed by Microsoft?"]; + + n_8 -> v_bad [label="Yes"]; + n_7 -> n_8 [label="Yes"]; + + n_9 [label="Is the WHOLE Toolchain FOSS?"]; + + n_8 -> n_9 [label="No"]; + n_9 -> bad [label="No"]; + + n_10 [label="Is the language transpiled to another?"]; + n_11 [label="Do all targets of the langauge arrive at \"Bad\" in this test?"]; + n_12 [label="Does the language only run in a VM?"]; + + n_9 -> n_10 [label="Yes"]; + n_10 -> n_11 [label="Yes"]; + n_10 -> n_12 [label="No"]; + n_11 -> acceptable [label="Yes"]; + n_11 -> v_good [label="No"]; + + n_13 [label="Does the language have a Garbage Collector?"]; + + n_12 -> n_13 [label="Yes"]; + n_13 -> good [label="Yes"]; + n_13 -> v_good [label="No"]; + + n_14 [label="What is the language used for?"]; + + n_12 -> n_14 [label="No"]; + n_14 -> v_bad [label="CLI App"]; + n_14 -> good [label="Embedded Scripting"]; + n_14 -> v_good [label="Game Dev"]; +} + diff --git a/en.mmd b/en.mmd deleted file mode 100644 index 222fc5a..0000000 --- a/en.mmd +++ /dev/null @@ -1,43 +0,0 @@ -flowchart TD -A[Is this programming language good?] --> B([Is the language interpreted?]) - -I --> |No| VBad{{The language is total Garbage! Immediately dispose of!}} -I --> |Yes| J([Is the language used for scripting in a very complex program such as a browser?]) - -J --> |Yes| K[\Use VM language\] --> Bad -J --> |No| D - -B --> |Yes| I([Is the language used for embedded scripting?]) -B --> |No| C([Does the language have dynamic types?]) - -C --> |Yes| VBad -C --> |No| D([Does the language have whitespace-dependant syntax?]) - -D --> |Yes| VBad -D --> |No| E([Does the language COMPLETELY work on linux?]) - -E --> |No| VBad -E --> |Yes| F([Has the language been developed by Microsoft?]) - -F --> |Yes| VBad -F --> |No| G([Is the WHOLE Toolchain FOSS?]) - -G --> |No| Bad{{The language is bad!}} -G --> |Yes| N([Is the language transpiled to another?]) - -N --> |Yes| O(["Do all targets of the langauge arrive at #quot;Bad#quot; in this test?"]) -N --> |No| H([Does the language only run in a VM?]) - -O --> |Yes| Ok{{The language is acceptable}} -O --> |No| VGood - -H --> |Yes| L([What is the language used for?]) -H --> |No| M([Does the language have a Garbage Collector?]) - -M --> |Yes| Good{{The language is good}} -M --> |No| VGood{{The language is awesome!}} - -L --> |CLI app| VBad -L --> |Embedded Scripting| Good -L --> |Game Dev| VGood - diff --git a/puppeteer-config.json b/puppeteer-config.json deleted file mode 100644 index 261852f..0000000 --- a/puppeteer-config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "args": [ - "--no-sandbox" - ] -}