From 011814df555858be49dace4d865a2bfffade9261 Mon Sep 17 00:00:00 2001 From: Ihar Bukach Date: Wed, 24 Jan 2024 19:43:28 +0300 Subject: [PATCH 1/2] feat(node): add .Net & Next.js frameworks --- diagrams/programming/framework.py | 10 ++++++++++ docs/nodes/programming.md | 6 ++++++ resources/programming/framework/dotnet.png | Bin 0 -> 15047 bytes resources/programming/framework/nextjs.png | Bin 0 -> 12644 bytes .../img/resources/programming/framework/dotnet.png | Bin 0 -> 15047 bytes .../img/resources/programming/framework/nextjs.png | Bin 0 -> 12644 bytes 6 files changed, 16 insertions(+) create mode 100644 resources/programming/framework/dotnet.png create mode 100644 resources/programming/framework/nextjs.png create mode 100644 website/static/img/resources/programming/framework/dotnet.png create mode 100644 website/static/img/resources/programming/framework/nextjs.png diff --git a/diagrams/programming/framework.py b/diagrams/programming/framework.py index aa28e45..fcc48fd 100644 --- a/diagrams/programming/framework.py +++ b/diagrams/programming/framework.py @@ -76,7 +76,17 @@ class Vue(_Framework): _icon = "vue.png" +class Dotnet(_Framework): + _icon = "dotnet.png" + + +class Nextjs(_Framework): + _icon = "nextjs.png" + + # Aliases FastAPI = Fastapi GraphQL = Graphql +DotNet = Dotnet +NextJs = Nextjs diff --git a/docs/nodes/programming.md b/docs/nodes/programming.md index 08c8394..c4a6940 100644 --- a/docs/nodes/programming.md +++ b/docs/nodes/programming.md @@ -134,6 +134,12 @@ Node classes list of programming provider. Vue **diagrams.programming.framework.Vue** +Dotnet + **diagrams.programming.framework.Dotnet**, **DotNet** (alias) + +Nextjs + **diagrams.programming.framework.Nextjs**, **NextJs** (alias) + ## programming.language diff --git a/resources/programming/framework/dotnet.png b/resources/programming/framework/dotnet.png new file mode 100644 index 0000000000000000000000000000000000000000..851e1b761a7206af54fceb05806d26b10b55c076 GIT binary patch literal 15047 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 literal 0 HcmV?d00001 diff --git a/resources/programming/framework/nextjs.png b/resources/programming/framework/nextjs.png new file mode 100644 index 0000000000000000000000000000000000000000..3306955acaf579737364018bb66dba9d892dc10e GIT binary patch literal 12644 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 X)i$42SZ)VAJ)o_wt5&6A9r^zNkN%$` literal 0 HcmV?d00001 diff --git a/website/static/img/resources/programming/framework/dotnet.png b/website/static/img/resources/programming/framework/dotnet.png new file mode 100644 index 0000000000000000000000000000000000000000..851e1b761a7206af54fceb05806d26b10b55c076 GIT binary patch literal 15047 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 literal 0 HcmV?d00001 diff --git a/website/static/img/resources/programming/framework/nextjs.png b/website/static/img/resources/programming/framework/nextjs.png new file mode 100644 index 0000000000000000000000000000000000000000..3306955acaf579737364018bb66dba9d892dc10e GIT binary patch literal 12644 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 X)i$42SZ)VAJ)o_wt5&6A9r^zNkN%$` literal 0 HcmV?d00001 From 84abfba00082f78d414d8769accbcac9e414a9ff Mon Sep 17 00:00:00 2001 From: tessier Date: Sat, 26 Oct 2024 16:24:52 +0900 Subject: [PATCH 2/2] feat(node): add vercel + fix alias --- config.py | 4 +++- diagrams/programming/framework.py | 20 ++++++++++++-------- docs/nodes/programming.md | 15 +++++++++------ resources/programming/framework/vercel.png | Bin 0 -> 3112 bytes .../img/resources/programming/framework/vercel.png | Bin 0 -> 3112 bytes 5 files changed, 24 insertions(+), 15 deletions(-) create mode 100644 resources/programming/framework/vercel.png create mode 100644 website/static/img/resources/programming/framework/vercel.png diff --git a/config.py b/config.py index dc0590b..58c4475 100644 --- a/config.py +++ b/config.py @@ -429,7 +429,9 @@ ALIASES = { "programming": { "framework": { "Fastapi": "FastAPI", - "Graphql": "GraphQL" + "Graphql": "GraphQL", + "Dotnet": "DotNet", + "Nextjs": "NextJs" }, "language": { "Javascript": "JavaScript", diff --git a/diagrams/programming/framework.py b/diagrams/programming/framework.py index fcc48fd..defb8db 100644 --- a/diagrams/programming/framework.py +++ b/diagrams/programming/framework.py @@ -20,6 +20,10 @@ class Django(_Framework): _icon = "django.png" +class Dotnet(_Framework): + _icon = "dotnet.png" + + class Ember(_Framework): _icon = "ember.png" @@ -48,6 +52,10 @@ class Micronaut(_Framework): _icon = "micronaut.png" +class Nextjs(_Framework): + _icon = "nextjs.png" + + class Quarkus(_Framework): _icon = "quarkus.png" @@ -72,16 +80,12 @@ class Svelte(_Framework): _icon = "svelte.png" -class Vue(_Framework): - _icon = "vue.png" - - -class Dotnet(_Framework): - _icon = "dotnet.png" +class Vercel(_Framework): + _icon = "vercel.png" -class Nextjs(_Framework): - _icon = "nextjs.png" +class Vue(_Framework): + _icon = "vue.png" # Aliases diff --git a/docs/nodes/programming.md b/docs/nodes/programming.md index c4a6940..56d8b64 100644 --- a/docs/nodes/programming.md +++ b/docs/nodes/programming.md @@ -92,6 +92,9 @@ Node classes list of programming provider. Django **diagrams.programming.framework.Django** +Dotnet +**diagrams.programming.framework.Dotnet**, **DotNet** (alias) + Ember **diagrams.programming.framework.Ember** @@ -113,6 +116,9 @@ Node classes list of programming provider. Micronaut **diagrams.programming.framework.Micronaut** +Nextjs +**diagrams.programming.framework.Nextjs**, **NextJs** (alias) + Quarkus **diagrams.programming.framework.Quarkus** @@ -131,15 +137,12 @@ Node classes list of programming provider. Svelte **diagrams.programming.framework.Svelte** +Vercel +**diagrams.programming.framework.Vercel** + Vue **diagrams.programming.framework.Vue** -Dotnet - **diagrams.programming.framework.Dotnet**, **DotNet** (alias) - -Nextjs - **diagrams.programming.framework.Nextjs**, **NextJs** (alias) - ## programming.language diff --git a/resources/programming/framework/vercel.png b/resources/programming/framework/vercel.png new file mode 100644 index 0000000000000000000000000000000000000000..6277be3f3e7770c08d888bddf1576b8e3aff9a46 GIT binary patch literal 3112 zcmeHIX*ARg7yny_VM4~zNR~7)!q_Iev778$Ov>`uWz4-#Pc(6i0h22p9$i004rqHg^U94t5C4 z^Kr4QaQovoY{wmBVrK#XRrduBe0kWpte>^B9RS3@0U(|T0Q>Ax{4xMsLju5x4*=-V z06^kuZljX{y8$9#>?}YmUS2St@X!0%?f}4f+tJq5g5CO8{$=3*#X$d~%%|+xBLruA z7l4D4i<^fR#K#X75QH2N5*9fs3KbKVkUR#Hl9rK`lRv2dKdq>QP(GuERM*hbMxE8s z)zddLGDe%2nOj(5Y;5i99h_WT-OjsvT=2Yj$;;cv*DoLthrb*g5_UB_B9d?|>Uwlc z?9I4a@ptZ$5|dKX?vc|e8JStsoCmZ=k8|_#|1KyjdQx2S^jTSXWmPq^uD+qMsk!CV z>(-9Wt~YPrb-(ZF?du;L8Xg%P8=sh*nx6SEJNI$^(*kR8Y5B{_>e{#Ujm_^{+dp=8 zf9~!7Iyn3-|4Y7}y&uP4Hdf{%{7nKR_9b><%uQS+kFnZPyr}`4ppCg6q@XPWc_JQ! z%SjzajEWa01edZx8>C88qyx()8LVd`iy2QoSK;wRxU|Ij^N&j98vTgv1)A+W&99Ad zm+Bm%ul8)7=-+CdQ+v+xYMy}TOGSR2ker|eT?<;eEcA7C9{%!+@5H$MY^`Xmb`80% z#*SnM**EB#{_Ag{1eJ#F$I(`i4FXYGi^*O3%#(gTX8EbIx5b`sv_>6wIOv!=*d}sC zEgZ&Q-)j|UdN|eB#B?C_`X663JQCFEC0@IEqP*Hine?OCAxQ(AESwx{}l!HbD;i?gI)VPLKzr zD(_U4Xh)gp8;W-X@IvX@QnGJ-s&u&F~gQEd5(NFy<12ptPG)}cOP%hk(cG<4@O~G0uD}hy#I=b@4X!2_# zg_QG)IY<}r*-Uq_9Zks$-ccLrRI9#3$yirj`K&DC&&+JZ z^7D(KoX?U;l=N5^Vq;23gc-_3&CyDt*i_@yefbfm&nIPyGI##z9~tdeD>8wfJmM6T zWQmr~7pr?(?Wt@)c~iMH@?p=H@}^0BMRiBD$mwPlZ#`BJrv^tV}uatWYg$&uAEN>1X?EJk4c6S~%~zA%r{J{%$S&iF$ z%F?VR+Z5MO1A{ynT{QLi=5`iWDOENjJWi~@*H@fId&G_L;Ojp&8VS2?20Z#0q0Y@J zD^_|ICp_FEYbTP+FBdR6q)>wu9(;+kJL<*DA(lUaJG$mCN6f0ywjCzc1)`CCLt9#d zd(NjjGMiM+iCWaLOch@|?A3DHvXwB`peMr1jsY3eVZ!Y@=tR^Y!T7V8-2K>0)gJ?CKR~$+g?P36t==LNpBC>aVM>NR`$_x?|%_`KfKL*d!%dI~F<2 z@Pzi1TObEF^vDT=D~at|`9Gwg_HSZ@Y(L%HKf^=V!JqC?e~Pf>AeHg9L0`OtgG)<$ zcr>@?N}Q~xUj0V4+d#)`kZm8Up<|P6$lTaV)PGW6M7HDZ-?q9Fx2q$V<0i&vHFd)x zslngGz-!$XCGNRa{+%%G4RA&0)H+^Ou`xvUZDc`b-_0ZYJVn52-^B$ri%CauO7SMm z(|%NRNRvbtEj-(~UXLsBZAH2xIAi6eq_30asljGGUdhi)Q+EQqm*3VrCuQQXiwU+{tNbUSv7DL>?W$gD_a`{i%m|e#IbWaMuvA*79n3 zGHbk)x$3~M%I|+#-*2#t!O~I%9u$CHT|iWfC0%J4uXTxD3;wX&_c>+?edteMzXoe5 zzVm^FHho_n-~}F(=nrP+hQdNkrgQGTFmRZ@apKa3_5ccY^Tq&}Tw74y%4Km85a{8|uc{wNo!OWv+*-;fi|?g7T$azt=aP)}(m zwgWVf8tN)Y6kA=@k$OlSJ#~~ak{uwoJ+~MB3lJLSj}MIg-vAP?tv4G0U@Yv-UzqwN F{0Crqbvyt7 literal 0 HcmV?d00001 diff --git a/website/static/img/resources/programming/framework/vercel.png b/website/static/img/resources/programming/framework/vercel.png new file mode 100644 index 0000000000000000000000000000000000000000..6277be3f3e7770c08d888bddf1576b8e3aff9a46 GIT binary patch literal 3112 zcmeHIX*ARg7yny_VM4~zNR~7)!q_Iev778$Ov>`uWz4-#Pc(6i0h22p9$i004rqHg^U94t5C4 z^Kr4QaQovoY{wmBVrK#XRrduBe0kWpte>^B9RS3@0U(|T0Q>Ax{4xMsLju5x4*=-V z06^kuZljX{y8$9#>?}YmUS2St@X!0%?f}4f+tJq5g5CO8{$=3*#X$d~%%|+xBLruA z7l4D4i<^fR#K#X75QH2N5*9fs3KbKVkUR#Hl9rK`lRv2dKdq>QP(GuERM*hbMxE8s z)zddLGDe%2nOj(5Y;5i99h_WT-OjsvT=2Yj$;;cv*DoLthrb*g5_UB_B9d?|>Uwlc z?9I4a@ptZ$5|dKX?vc|e8JStsoCmZ=k8|_#|1KyjdQx2S^jTSXWmPq^uD+qMsk!CV z>(-9Wt~YPrb-(ZF?du;L8Xg%P8=sh*nx6SEJNI$^(*kR8Y5B{_>e{#Ujm_^{+dp=8 zf9~!7Iyn3-|4Y7}y&uP4Hdf{%{7nKR_9b><%uQS+kFnZPyr}`4ppCg6q@XPWc_JQ! z%SjzajEWa01edZx8>C88qyx()8LVd`iy2QoSK;wRxU|Ij^N&j98vTgv1)A+W&99Ad zm+Bm%ul8)7=-+CdQ+v+xYMy}TOGSR2ker|eT?<;eEcA7C9{%!+@5H$MY^`Xmb`80% z#*SnM**EB#{_Ag{1eJ#F$I(`i4FXYGi^*O3%#(gTX8EbIx5b`sv_>6wIOv!=*d}sC zEgZ&Q-)j|UdN|eB#B?C_`X663JQCFEC0@IEqP*Hine?OCAxQ(AESwx{}l!HbD;i?gI)VPLKzr zD(_U4Xh)gp8;W-X@IvX@QnGJ-s&u&F~gQEd5(NFy<12ptPG)}cOP%hk(cG<4@O~G0uD}hy#I=b@4X!2_# zg_QG)IY<}r*-Uq_9Zks$-ccLrRI9#3$yirj`K&DC&&+JZ z^7D(KoX?U;l=N5^Vq;23gc-_3&CyDt*i_@yefbfm&nIPyGI##z9~tdeD>8wfJmM6T zWQmr~7pr?(?Wt@)c~iMH@?p=H@}^0BMRiBD$mwPlZ#`BJrv^tV}uatWYg$&uAEN>1X?EJk4c6S~%~zA%r{J{%$S&iF$ z%F?VR+Z5MO1A{ynT{QLi=5`iWDOENjJWi~@*H@fId&G_L;Ojp&8VS2?20Z#0q0Y@J zD^_|ICp_FEYbTP+FBdR6q)>wu9(;+kJL<*DA(lUaJG$mCN6f0ywjCzc1)`CCLt9#d zd(NjjGMiM+iCWaLOch@|?A3DHvXwB`peMr1jsY3eVZ!Y@=tR^Y!T7V8-2K>0)gJ?CKR~$+g?P36t==LNpBC>aVM>NR`$_x?|%_`KfKL*d!%dI~F<2 z@Pzi1TObEF^vDT=D~at|`9Gwg_HSZ@Y(L%HKf^=V!JqC?e~Pf>AeHg9L0`OtgG)<$ zcr>@?N}Q~xUj0V4+d#)`kZm8Up<|P6$lTaV)PGW6M7HDZ-?q9Fx2q$V<0i&vHFd)x zslngGz-!$XCGNRa{+%%G4RA&0)H+^Ou`xvUZDc`b-_0ZYJVn52-^B$ri%CauO7SMm z(|%NRNRvbtEj-(~UXLsBZAH2xIAi6eq_30asljGGUdhi)Q+EQqm*3VrCuQQXiwU+{tNbUSv7DL>?W$gD_a`{i%m|e#IbWaMuvA*79n3 zGHbk)x$3~M%I|+#-*2#t!O~I%9u$CHT|iWfC0%J4uXTxD3;wX&_c>+?edteMzXoe5 zzVm^FHho_n-~}F(=nrP+hQdNkrgQGTFmRZ@apKa3_5ccY^Tq&}Tw74y%4Km85a{8|uc{wNo!OWv+*-;fi|?g7T$azt=aP)}(m zwgWVf8tN)Y6kA=@k$OlSJ#~~ak{uwoJ+~MB3lJLSj}MIg-vAP?tv4G0U@Yv-UzqwN F{0Crqbvyt7 literal 0 HcmV?d00001