This is an automated email from the ASF dual-hosted git repository.
hsluoyz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/casbin-website.git
The following commit(s) were added to refs/heads/master by this push:
new b48c110f fix: update CDN asset links to relative paths (#454)
b48c110f is described below
commit b48c110f70e20afbdcc37f8398b4cb344bad3372
Author: Sagilio <[email protected]>
AuthorDate: Wed Mar 25 20:06:35 2026 +0800
fix: update CDN asset links to relative paths (#454)
---
src/components/LanguageIntegration/index.js | 34 +++++-----
src/pages/index.js | 2 +-
src/utils/languageIconMapping.ts | 60 ++++++++---------
static/img/langs/PHP-logo.svg | 96 ++++++++++++++++++++++++++++
static/img/langs/c.svg | 1 +
static/img/langs/dart.svg | 1 +
static/img/langs/delphi-2.svg | 1 +
static/img/langs/dotnet-logo.svg | 7 ++
static/img/langs/elixir-lang-icon.svg | 1 +
static/img/langs/go-logo-1.svg | 1 +
static/img/langs/jee-3.svg | 1 +
static/img/langs/kubernets.svg | 1 +
static/img/langs/laravel-2.svg | 1 +
static/img/langs/logo-javascript.svg | 1 +
static/img/langs/lua-5.svg | 1 +
static/img/langs/nodejs-1.svg | 1 +
static/img/langs/python-5.svg | 1 +
static/img/langs/ruby.svg | 1 +
static/img/langs/rust.svg | 1 +
static/img/langs/swift-15.svg | 1 +
static/video/background.mp4 | Bin 0 -> 3932401 bytes
21 files changed, 166 insertions(+), 48 deletions(-)
diff --git a/src/components/LanguageIntegration/index.js
b/src/components/LanguageIntegration/index.js
index be9b2e58..b78eae59 100644
--- a/src/components/LanguageIntegration/index.js
+++ b/src/components/LanguageIntegration/index.js
@@ -5,89 +5,89 @@ import styles from "./styles.module.css";
const languages = [
{
name: "Golang",
- icon: "https://cdn.casbin.org/language/go-logo-1.svg",
+ icon: "/img/langs/go-logo-1.svg",
url: "https://github.com/casbin",
},
{
name: "Java",
- icon: "https://cdn.casbin.org/language/jee-3.svg",
+ icon: "/img/langs/jee-3.svg",
url: "https://github.com/casbin/jcasbin",
},
{
name: "C/C++",
- icon: "https://cdn.casbin.org/language/c.svg",
+ icon: "/img/langs/c.svg",
url: "https://github.com/casbin/casbin-cpp",
},
{
name: "Node.js",
- icon: "https://cdn.casbin.org/language/nodejs-1.svg",
+ icon: "/img/langs/nodejs-1.svg",
url: "https://github.com/casbin/node-casbin",
},
{
name: "Front-end JavaScript",
- icon: "https://cdn.casbin.org/language/logo-javascript.svg",
+ icon: "/img/langs/logo-javascript.svg",
url: "https://github.com/casbin/casbin.js",
},
{
name: "PHP",
- icon: "https://cdn.casbin.org/language/PHP-logo.svg",
+ icon: "/img/langs/PHP-logo.svg",
url: "https://github.com/php-casbin/php-casbin",
},
{
name: "Laravel",
- icon: "https://cdn.casbin.org/language/laravel-2.svg",
+ icon: "/img/langs/laravel-2.svg",
url: "https://github.com/php-casbin/laravel-authz",
},
{
name: "Python",
- icon: "https://cdn.casbin.org/language/python-5.svg",
+ icon: "/img/langs/python-5.svg",
url: "https://github.com/casbin/pycasbin",
},
{
name: ".NET (C#)",
- icon: "https://cdn.casbin.org/language/dotnet-logo.svg",
+ icon: "/img/langs/dotnet-logo.svg",
url: "https://github.com/casbin/Casbin.NET",
},
{
name: "Delphi",
- icon: "https://cdn.casbin.org/language/delphi-2.svg",
+ icon: "/img/langs/delphi-2.svg",
url: "https://github.com/casbin4d/Casbin4D",
},
{
name: "Rust",
- icon: "https://cdn.casbin.org/language/rust.svg",
+ icon: "/img/langs/rust.svg",
url: "https://github.com/casbin/casbin-rs",
},
{
name: "Ruby",
- icon: "https://cdn.casbin.org/language/ruby.svg",
+ icon: "/img/langs/ruby.svg",
url: "https://github.com/CasbinRuby/casbin-ruby",
},
{
name: "Swift (Objective-C)",
- icon: "https://cdn.casbin.org/language/swift-15.svg",
+ icon: "/img/langs/swift-15.svg",
url: "https://github.com/casbin/SwiftCasbin",
},
{
name: "Lua (OpenResty, Kong, APISIX)",
- icon: "https://cdn.casbin.org/language/lua-5.svg",
+ icon: "/img/langs/lua-5.svg",
url: "https://github.com/casbin/lua-casbin",
},
{
name: "Dart (Flutter)",
- icon: "https://cdn.casbin.org/language/dart.svg",
+ icon: "/img/langs/dart.svg",
url: "https://github.com/casbin/dart-casbin",
},
{
name: "Elixir",
- icon: "https://cdn.casbin.org/language/elixir-lang-icon.svg",
+ icon: "/img/langs/elixir-lang-icon.svg",
url: "https://github.com/casbin/casbin-ex",
},
{
name: "Cloud Native",
displayName: "Cloud Native",
fullName: "Cloud Native (Kubernetes, Istio, Envoy, KubeSphere)",
- icon: "https://cdn.casbin.org/language/kubernets.svg",
+ icon: "/img/langs/kubernetes.svg",
url: "/docs/cloud-native",
},
];
diff --git a/src/pages/index.js b/src/pages/index.js
index 082a6de1..fcdbaa03 100644
--- a/src/pages/index.js
+++ b/src/pages/index.js
@@ -48,7 +48,7 @@ function HomepageHeader() {
e.target.play();
}}
>
- <source src="https://cdn.casbin.org/video/background.mp4"
type="video/mp4" />
+ <source src="/video/background.mp4" type="video/mp4" />
</video>
<div className={styles.heroOverlay}></div>
diff --git a/src/utils/languageIconMapping.ts b/src/utils/languageIconMapping.ts
index 4beed1d4..a5317b16 100644
--- a/src/utils/languageIconMapping.ts
+++ b/src/utils/languageIconMapping.ts
@@ -3,36 +3,36 @@
* Icons are sourced from the LanguageIntegration component
*/
export const languageIconMapping: Record<string, string> = {
- "Go": "https://cdn.casbin.org/language/go-logo-1.svg",
- "Golang": "https://cdn.casbin.org/language/go-logo-1.svg",
- "Java": "https://cdn.casbin.org/language/jee-3.svg",
- "C": "https://cdn.casbin.org/language/c.svg",
- "C++": "https://cdn.casbin.org/language/c.svg",
- "C/C++": "https://cdn.casbin.org/language/c.svg",
- "Node.js": "https://cdn.casbin.org/language/nodejs-1.svg",
- "Node": "https://cdn.casbin.org/language/nodejs-1.svg",
- "JavaScript": "https://cdn.casbin.org/language/logo-javascript.svg",
- "Front-end JavaScript":
"https://cdn.casbin.org/language/logo-javascript.svg",
- "PHP": "https://cdn.casbin.org/language/PHP-logo.svg",
- "Laravel": "https://cdn.casbin.org/language/laravel-2.svg",
- "Python": "https://cdn.casbin.org/language/python-5.svg",
- ".NET": "https://cdn.casbin.org/language/dotnet-logo.svg",
- ".NET (C#)": "https://cdn.casbin.org/language/dotnet-logo.svg",
- "C#": "https://cdn.casbin.org/language/dotnet-logo.svg",
- "Delphi": "https://cdn.casbin.org/language/delphi-2.svg",
- "Rust": "https://cdn.casbin.org/language/rust.svg",
- "Ruby": "https://cdn.casbin.org/language/ruby.svg",
- "Swift": "https://cdn.casbin.org/language/swift-15.svg",
- "Swift (Objective-C)": "https://cdn.casbin.org/language/swift-15.svg",
- "Objective-C": "https://cdn.casbin.org/language/swift-15.svg",
- "Lua": "https://cdn.casbin.org/language/lua-5.svg",
- "Lua (OpenResty, Kong, APISIX)": "https://cdn.casbin.org/language/lua-5.svg",
- "Dart": "https://cdn.casbin.org/language/dart.svg",
- "Dart (Flutter)": "https://cdn.casbin.org/language/dart.svg",
- "Flutter": "https://cdn.casbin.org/language/dart.svg",
- "Elixir": "https://cdn.casbin.org/language/elixir-lang-icon.svg",
- "Cloud Native": "https://cdn.casbin.org/language/kubernets.svg",
- "Kubernetes": "https://cdn.casbin.org/language/kubernets.svg",
+ "Go": "/img/langs/go-logo-1.svg",
+ "Golang": "/img/langs/go-logo-1.svg",
+ "Java": "/img/langs/jee-3.svg",
+ "C": "/img/langs/c.svg",
+ "C++": "/img/langs/c.svg",
+ "C/C++": "/img/langs/c.svg",
+ "Node.js": "/img/langs/nodejs-1.svg",
+ "Node": "/img/langs/nodejs-1.svg",
+ "JavaScript": "/img/langs/logo-javascript.svg",
+ "Front-end JavaScript": "/img/langs/logo-javascript.svg",
+ "PHP": "/img/langs/PHP-logo.svg",
+ "Laravel": "/img/langs/laravel-2.svg",
+ "Python": "/img/langs/python-5.svg",
+ ".NET": "/img/langs/dotnet-logo.svg",
+ ".NET (C#)": "/img/langs/dotnet-logo.svg",
+ "C#": "/img/langs/dotnet-logo.svg",
+ "Delphi": "/img/langs/delphi-2.svg",
+ "Rust": "/img/langs/rust.svg",
+ "Ruby": "/img/langs/ruby.svg",
+ "Swift": "/img/langs/swift-15.svg",
+ "Swift (Objective-C)": "/img/langs/swift-15.svg",
+ "Objective-C": "/img/langs/swift-15.svg",
+ "Lua": "/img/langs/lua-5.svg",
+ "Lua (OpenResty, Kong, APISIX)": "/img/langs/lua-5.svg",
+ "Dart": "/img/langs/dart.svg",
+ "Dart (Flutter)": "/img/langs/dart.svg",
+ "Flutter": "/img/langs/dart.svg",
+ "Elixir": "/img/langs/elixir-lang-icon.svg",
+ "Cloud Native": "/img/langs/kubernetes.svg",
+ "Kubernetes": "/img/langs/kubernetes.svg",
};
/**
diff --git a/static/img/langs/PHP-logo.svg b/static/img/langs/PHP-logo.svg
new file mode 100644
index 00000000..e4f137cb
--- /dev/null
+++ b/static/img/langs/PHP-logo.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg height="383.5975" id="svg3430" version="1.1" viewBox="0 0 711.20123
383.5975" width="711.20123" xml:space="preserve"
xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg">
+ <title id="title3510">Official PHP Logo</title>
+ <metadata id="metadata3436">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title>Official PHP Logo</dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Colin Viebrock</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:description/>
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title/>
+ </cc:Agent>
+ </dc:contributor>
+ <cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/"/>
+ <dc:rights>
+ <cc:Agent>
+ <dc:title>Copyright Colin Viebrock 1997 - All rights
reserved.</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <dc:date>1997</dc:date>
+ </cc:Work>
+ <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/3.0/">
+ <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
+ <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
+ <cc:requires rdf:resource="http://creativecommons.org/ns#Notice"/>
+ <cc:requires rdf:resource="http://creativecommons.org/ns#Attribution"/>
+ <cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
+ <cc:requires rdf:resource="http://creativecommons.org/ns#ShareAlike"/>
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <defs id="defs3434">
+ <clipPath clipPathUnits="userSpaceOnUse" id="clipPath3444">
+ <path d="M 11.52,162 C 11.52,81.677 135.307,16.561 288,16.561 l 0,0 c
152.693,0 276.481,65.116 276.481,145.439 l 0,0 c 0,80.322 -123.788,145.439
-276.481,145.439 l 0,0 C 135.307,307.439 11.52,242.322 11.52,162"
id="path3446"/>
+ </clipPath>
+ <radialGradient cx="0" cy="0" fx="0" fy="0"
gradientTransform="matrix(363.05789,0,0,-363.05789,177.52002,256.30713)"
gradientUnits="userSpaceOnUse" id="radialGradient3452" r="1" spreadMethod="pad">
+ <stop id="stop3454" offset="0"
style="stop-opacity:1;stop-color:#aeb2d5"/>
+ <stop id="stop3456" offset="0.3"
style="stop-opacity:1;stop-color:#aeb2d5"/>
+ <stop id="stop3458" offset="0.75"
style="stop-opacity:1;stop-color:#484c89"/>
+ <stop id="stop3460" offset="1"
style="stop-opacity:1;stop-color:#484c89"/>
+ </radialGradient>
+ <clipPath clipPathUnits="userSpaceOnUse" id="clipPath3468">
+ <path d="M 0,324 576,324 576,0 0,0 0,324 Z" id="path3470"/>
+ </clipPath>
+ <clipPath clipPathUnits="userSpaceOnUse" id="clipPath3480">
+ <path d="M 0,324 576,324 576,0 0,0 0,324 Z" id="path3482"/>
+ </clipPath>
+ </defs>
+ <g id="g3438" transform="matrix(1.25,0,0,-1.25,-4.4,394.29875)">
+ <g id="g3440">
+ <g clip-path="url(#clipPath3444)" id="g3442">
+ <g id="g3448">
+ <g id="g3450">
+ <path d="M 11.52,162 C 11.52,81.677 135.307,16.561 288,16.561 l
0,0 c 152.693,0 276.481,65.116 276.481,145.439 l 0,0 c 0,80.322
-123.788,145.439 -276.481,145.439 l 0,0 C 135.307,307.439 11.52,242.322
11.52,162" id="path3462" style="fill:url(#radialGradient3452);stroke:none"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g id="g3464">
+ <g clip-path="url(#clipPath3468)" id="g3466">
+ <g id="g3472" transform="translate(288,27.3594)">
+ <path d="M 0,0 C 146.729,0 265.68,60.281 265.68,134.641 265.68,209
146.729,269.282 0,269.282 -146.729,269.282 -265.68,209 -265.68,134.641
-265.68,60.281 -146.729,0 0,0" id="path3474"
style="fill:#777bb3;fill-opacity:1;fill-rule:nonzero;stroke:none"/>
+ </g>
+ </g>
+ </g>
+ <g id="g3476">
+ <g clip-path="url(#clipPath3480)" id="g3478">
+ <g id="g3484" transform="translate(161.7344,145.3066)">
+ <path d="m 0,0 c 12.065,0 21.072,2.225 26.771,6.611 5.638,4.341
9.532,11.862 11.573,22.353 1.903,9.806 1.178,16.653 -2.154,20.348 C
32.783,53.086 25.417,55 14.297,55 L -4.984,55 -15.673,0 0,0 Z m -63.063,-67.75
c -0.895,0 -1.745,0.4 -2.314,1.092 -0.57,0.691 -0.801,1.601 -0.63,2.48 L
-37.679,81.573 C -37.405,82.982 -36.17,84 -34.734,84 L 26.32,84 C 45.508,84
59.79,78.79 68.767,68.513 77.792,58.182 80.579,43.741 77.05,25.592
75.614,18.198 73.144,11.331 69.709,5.183 66.27,-0.972 6 [...]
+ </g>
+ <g id="g3488" transform="translate(159.2236,197.3071)">
+ <path d="m 0,0 16.808,0 c 13.421,0 18.083,-2.945 19.667,-4.7
2.628,-2.914 3.124,-9.058 1.435,-17.767 C 36.012,-32.217 32.494,-39.13
27.452,-43.012 22.29,-46.986 13.898,-49 2.511,-49 L -9.523,-49 0,0 Z m
28.831,35 -61.055,0 c -2.872,0 -5.341,-2.036 -5.889,-4.855 l -28.328,-145.751 c
-0.342,-1.759 0.12,-3.578 1.259,-4.961 1.14,-1.383 2.838,-2.183 4.63,-2.183 l
31.75,0 c 2.873,0 5.342,2.036 5.89,4.855 l 6.588,33.895 22.249,0 c 12.582,0
23.174,1.372 31.479,4.077 8.541,2.775 16.399, [...]
+ </g>
+ <g id="g3492" transform="translate(311.583,116.3066)">
+ <path d="m 0,0 c -0.896,0 -1.745,0.4 -2.314,1.092 -0.571,0.691
-0.802,1.6 -0.631,2.48 L 9.586,68.061 C 10.778,74.194 10.484,78.596
8.759,80.456 7.703,81.593 4.531,83.5 -4.848,83.5 L -27.55,83.5 -43.305,2.428 C
-43.579,1.018 -44.814,0 -46.25,0 l -31.5,0 c -0.896,0 -1.745,0.4 -2.315,1.092
-0.57,0.691 -0.801,1.601 -0.63,2.48 l 28.328,145.751 c 0.274,1.409 1.509,2.427
2.945,2.427 l 31.5,0 c 0.896,0 1.745,-0.4 2.315,-1.091 0.57,-0.692 0.801,-1.601
0.63,-2.481 L -21.813,113 2.609,113 [...]
+ </g>
+ <g id="g3496" transform="translate(293.6611,271.0571)">
+ <path d="m 0,0 -31.5,0 c -2.873,0 -5.342,-2.036 -5.89,-4.855 l
-28.328,-145.751 c -0.342,-1.759 0.12,-3.578 1.26,-4.961 1.14,-1.383
2.838,-2.183 4.63,-2.183 l 31.5,0 c 2.872,0 5.342,2.036 5.89,4.855 l
15.283,78.645 20.229,0 c 9.363,0 11.328,-2 11.407,-2.086 0.568,-0.611
1.315,-3.441 0.082,-9.781 l -12.531,-64.489 c -0.342,-1.759 0.12,-3.578
1.26,-4.961 1.14,-1.383 2.838,-2.183 4.63,-2.183 l 32,0 c 2.872,0 5.342,2.036
5.89,4.855 l 13.179,67.825 c 3.093,15.921 0.447,27.864 -7.861 [...]
+ </g>
+ <g id="g3500" transform="translate(409.5498,145.3066)">
+ <path d="m 0,0 c 12.065,0 21.072,2.225 26.771,6.611 5.638,4.34
9.532,11.861 11.574,22.353 1.903,9.806 1.178,16.653 -2.155,20.348 C
32.783,53.086 25.417,55 14.297,55 L -4.984,55 -15.673,0 0,0 Z m -63.062,-67.75
c -0.895,0 -1.745,0.4 -2.314,1.092 -0.57,0.691 -0.802,1.601 -0.631,2.48 L
-37.679,81.573 C -37.404,82.982 -36.17,84 -34.733,84 L 26.32,84 C 45.509,84
59.79,78.79 68.768,68.513 77.793,58.183 80.579,43.742 77.051,25.592
75.613,18.198 73.144,11.331 69.709,5.183 66.27,-0.972 [...]
+ </g>
+ <g id="g3504" transform="translate(407.0391,197.3071)">
+ <path d="M 0,0 16.808,0 C 30.229,0 34.891,-2.945 36.475,-4.7
39.104,-7.614 39.6,-13.758 37.91,-22.466 36.012,-32.217 32.493,-39.13
27.452,-43.012 22.29,-46.986 13.898,-49 2.511,-49 L -9.522,-49 0,0 Z m
28.831,35 -61.054,0 c -2.872,0 -5.341,-2.036 -5.889,-4.855 L -66.44,-115.606 c
-0.342,-1.759 0.12,-3.578 1.259,-4.961 1.14,-1.383 2.838,-2.183 4.63,-2.183 l
31.75,0 c 2.872,0 5.342,2.036 5.89,4.855 l 6.587,33.895 22.249,0 c 12.582,0
23.174,1.372 31.479,4.077 8.541,2.775 16.401,7. [...]
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/static/img/langs/c.svg b/static/img/langs/c.svg
new file mode 100644
index 00000000..a177a90e
--- /dev/null
+++ b/static/img/langs/c.svg
@@ -0,0 +1 @@
+<svg width="2222" height="2500" viewBox="0 0 256 288"
xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet"><path
d="M255.569
84.72c-.002-4.83-1.035-9.098-3.124-12.761-2.052-3.602-5.125-6.621-9.247-9.008-34.025-19.619-68.083-39.178-102.097-58.817-9.17-5.294-18.061-5.101-27.163.269C100.395
12.39 32.59 51.237 12.385 62.94 4.064 67.757.015 75.129.013 84.711 0
124.166.013 163.62 0 203.076c.002 4.724.991 8.909 2.988 12.517 2.053 3.711
5.169 6.813 9.386 9.254 20.206 11.703 88. [...]
\ No newline at end of file
diff --git a/static/img/langs/dart.svg b/static/img/langs/dart.svg
new file mode 100644
index 00000000..cd939474
--- /dev/null
+++ b/static/img/langs/dart.svg
@@ -0,0 +1 @@
+<svg width="2500" height="2500" viewBox="0 0 256 256"
xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet"><path
d="M70.534 69.696L53.988 53.15l.07 119.6.198 5.59c.082 2.63.57 5.598 1.384
8.674l131.104 46.23 32.772-14.52.012-.04L70.534 69.696" fill="#00D2B8"/><path
d="M55.64 187.014l.008.008c-.008-.054-.036-.114-.036-.17 0
.056.008.108.028.162zm163.876 31.71l-32.772 14.52-131.096-46.222c2.504 9.608
8.048 20.408 14.014 26.314l42.784 42.54 95.13.124 11.952-37.316-.012.04z [...]
\ No newline at end of file
diff --git a/static/img/langs/delphi-2.svg b/static/img/langs/delphi-2.svg
new file mode 100644
index 00000000..2db27804
--- /dev/null
+++ b/static/img/langs/delphi-2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="2500" height="2500" viewBox="0
0 192.756 192.756"><g fill-rule="evenodd" clip-rule="evenodd"><path fill="#fff"
d="M0 0h192.756v192.756H0V0z"/><path d="M184.252 96.378c-.189 19.433-39.34
32.61-87.874 32.61-48.535 0-87.874-12.229-87.874-33.842 0-17.916 39.339-31.377
87.874-31.377 48.534 0 88.159 13.366 87.874 32.609z" fill="#c82e37"/><path
fill="#fff" d="M84.245 87.941h4.834v13.555h13.46v2.275H84.245v-15.83zM127.375
87.941h4.74v6.636h14.598v-6 [...]
\ No newline at end of file
diff --git a/static/img/langs/dotnet-logo.svg b/static/img/langs/dotnet-logo.svg
new file mode 100644
index 00000000..d204a090
--- /dev/null
+++ b/static/img/langs/dotnet-logo.svg
@@ -0,0 +1,7 @@
+<svg width="456" height="456" viewBox="0 0 456 456" fill="none"
xmlns="http://www.w3.org/2000/svg">
+<rect width="456" height="456" fill="#512BD4"/>
+<path d="M81.2738 291.333C78.0496 291.333 75.309 290.259 73.052 288.11C70.795
285.906 69.6665 283.289 69.6665 280.259C69.6665 277.173 70.795 274.529 73.052
272.325C75.309 270.121 78.0496 269.019 81.2738 269.019C84.5518 269.019 87.3193
270.121 89.5763 272.325C91.887 274.529 93.0424 277.173 93.0424 280.259C93.0424
283.289 91.887 285.906 89.5763 288.11C87.3193 290.259 84.5518 291.333 81.2738
291.333Z" fill="white"/>
+<path d="M210.167 289.515H189.209L133.994 202.406C132.597 200.202 131.441
197.915 130.528 195.546H130.044C130.474 198.081 130.689 203.508 130.689
211.827V289.515H112.149V171H134.477L187.839 256.043C190.096 259.57 191.547
261.994 192.192 263.316H192.514C191.977 260.176 191.708 254.859 191.708
247.365V171H210.167V289.515Z" fill="white"/>
+<path d="M300.449
289.515H235.561V171H297.87V187.695H254.746V221.249H294.485V237.861H254.746V272.903H300.449V289.515Z"
fill="white"/>
+<path d="M392.667
187.695H359.457V289.515H340.272V187.695H307.143V171H392.667V187.695Z"
fill="white"/>
+</svg>
diff --git a/static/img/langs/elixir-lang-icon.svg
b/static/img/langs/elixir-lang-icon.svg
new file mode 100644
index 00000000..63f85412
--- /dev/null
+++ b/static/img/langs/elixir-lang-icon.svg
@@ -0,0 +1 @@
+<svg height="64" viewBox="0 0 64 64" width="64"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a"
gradientTransform="matrix(.12970797 0 0 .19997863 11.409779 -.000001)"
gradientUnits="userSpaceOnUse" x1="167.51685" x2="160.31" y1="24.393208"
y2="320.03421"><stop offset="0" stop-color="#d9d8dc"/><stop offset="1"
stop-color="#fff" stop-opacity=".385275"/></linearGradient><linearGradient
id="b" gradientTransform="matrix(.11420937 0 0 .22711 [...]
\ No newline at end of file
diff --git a/static/img/langs/go-logo-1.svg b/static/img/langs/go-logo-1.svg
new file mode 100644
index 00000000..b933ccf6
--- /dev/null
+++ b/static/img/langs/go-logo-1.svg
@@ -0,0 +1 @@
+<svg height="2500" preserveAspectRatio="xMidYMid" viewBox="-10.858
-38.49690284 271.141 389.92490284" width="1839"
xmlns="http://www.w3.org/2000/svg"><path d="m3.686 188.165c.498 10.26 10.758
5.479 15.34 2.291 4.383-3.088 5.678-.498
6.076-6.475.299-3.984.697-7.869.498-11.853-6.674-.598-13.846.996-19.325
4.98-2.888 1.992-8.068 8.567-2.59 11.057m204.502 126.107c7.869 4.881 22.313
19.624 10.459 26.796-11.356 10.36-17.73-11.456-27.692-14.444 4.283-5.877
9.662-11.256 17.233-12.352zm-140.85 16 [...]
\ No newline at end of file
diff --git a/static/img/langs/jee-3.svg b/static/img/langs/jee-3.svg
new file mode 100644
index 00000000..26e46265
--- /dev/null
+++ b/static/img/langs/jee-3.svg
@@ -0,0 +1 @@
+<svg enable-background="new 0 0 1802.9 2444.5" viewBox="0 0 1802.9 2444.5"
xmlns="http://www.w3.org/2000/svg"><path d="m580.6 1890.4s-93.4 54.3 66.5
72.7c193.7 22.1 292.7 18.9 506.1-21.4 0 0 56.2 35.2 134.6 65.6-478.5
205.1-1083.1-11.8-707.2-116.9zm-58.5-267.6s-104.7 77.5 55.3 94.1c207 21.4 370.3
23.1 653.2-31.3 0 0 39 39.6 100.5 61.3-578.6 169.2-1222.9 13.3-809-124.1z"
fill="#5582a0"/><path d="m1015.1 1168.8c118 135.8-30.9 257.9-30.9
257.9s299.4-154.5 161.9-348.1c-128.4-180.5-226.9-270. [...]
\ No newline at end of file
diff --git a/static/img/langs/kubernets.svg b/static/img/langs/kubernets.svg
new file mode 100644
index 00000000..97cd6bc4
--- /dev/null
+++ b/static/img/langs/kubernets.svg
@@ -0,0 +1 @@
+<svg width="2500" height="2432" viewBox="0 0 256 249"
xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path
d="M82.085 244.934c-5.946 0-11.561-2.642-15.36-7.432L8.92
165.657c-3.799-4.79-5.285-10.9-3.799-16.847l20.645-89.682c1.321-5.946
5.285-10.736 10.736-13.378l83.571-39.97c2.643-1.32 5.616-1.981 8.589-1.981
2.973 0 5.945.66 8.588 1.982l83.572 39.804c5.45 2.642 9.414 7.432 10.735
13.378l20.645 89.682c1.322 5.946 0 12.057-3.798 16.847l-57.807 71.845c-3.799
4.624-9.414 7 [...]
\ No newline at end of file
diff --git a/static/img/langs/laravel-2.svg b/static/img/langs/laravel-2.svg
new file mode 100644
index 00000000..8605e766
--- /dev/null
+++ b/static/img/langs/laravel-2.svg
@@ -0,0 +1 @@
+<svg height="2500" viewBox="0 -.11376601 49.74245785 51.31690859" width="2418"
xmlns="http://www.w3.org/2000/svg"><path d="m49.626 11.564a.809.809 0 0 1
.028.209v10.972a.8.8 0 0 1 -.402.694l-9.209 5.302v10.509c0
.286-.152.55-.4.694l-19.223
11.066c-.044.025-.092.041-.14.058-.018.006-.035.017-.054.022a.805.805 0 0 1
-.41
0c-.022-.006-.042-.018-.063-.026-.044-.016-.09-.03-.132-.054l-19.219-11.066a.801.801
0 0 1
-.402-.694v-32.916c0-.072.01-.142.028-.21.006-.023.02-.044.028-.067.015-.042.029
[...]
\ No newline at end of file
diff --git a/static/img/langs/logo-javascript.svg
b/static/img/langs/logo-javascript.svg
new file mode 100644
index 00000000..1f203d35
--- /dev/null
+++ b/static/img/langs/logo-javascript.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="2500" height="2500" viewBox="0
0 1052 1052"><path fill="#f0db4f" d="M0 0h1052v1052H0z"/><path d="M965.9
801.1c-7.7-48-39-88.3-131.7-125.9-32.2-14.8-68.1-25.399-78.8-49.8-3.8-14.2-4.3-22.2-1.9-30.8
6.9-27.9 40.2-36.6 66.6-28.6 17 5.7 33.1 18.801 42.8 39.7 45.4-29.399
45.3-29.2 77-49.399-11.6-18-17.8-26.301-25.4-34-27.3-30.5-64.5-46.2-124-45-10.3
1.3-20.699 2.699-31 4-29.699 7.5-58 23.1-74.6 44-49.8 56.5-35.6 155.399 25
196.1 59.7 44.8 147.4 5 [...]
\ No newline at end of file
diff --git a/static/img/langs/lua-5.svg b/static/img/langs/lua-5.svg
new file mode 100644
index 00000000..6e96b43c
--- /dev/null
+++ b/static/img/langs/lua-5.svg
@@ -0,0 +1 @@
+<svg width="2500" height="2500" viewBox="0 0 256 256"
xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path
d="M225.85 128.024c0-54.024-43.846-97.87-97.87-97.87-54.023 0-97.869
43.846-97.869 97.87 0 54.023 43.846 97.869 97.87 97.869 54.023 0 97.869-43.846
97.869-97.87" fill="#00007D"/><path d="M197.195
87.475c0-15.823-12.842-28.666-28.665-28.666-15.823 0-28.666 12.843-28.666
28.666s12.843 28.665 28.666 28.665 28.665-12.842 28.665-28.665"
fill="#FFF"/><path d="M254.515 3 [...]
\ No newline at end of file
diff --git a/static/img/langs/nodejs-1.svg b/static/img/langs/nodejs-1.svg
new file mode 100644
index 00000000..18034217
--- /dev/null
+++ b/static/img/langs/nodejs-1.svg
@@ -0,0 +1 @@
+<svg width="2500" height="1533" viewBox="0 0 512 314"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
preserveAspectRatio="xMidYMid"><defs><linearGradient x1="68.188%" y1="17.487%"
x2="27.823%" y2="89.755%" id="b"><stop stop-color="#41873F" offset="0%"/><stop
stop-color="#418B3D" offset="32.88%"/><stop stop-color="#419637"
offset="63.52%"/><stop stop-color="#3FA92D" offset="93.19%"/><stop
stop-color="#3FAE2A" offset="100%"/></linearGradient><path id="a" d="M [...]
\ No newline at end of file
diff --git a/static/img/langs/python-5.svg b/static/img/langs/python-5.svg
new file mode 100644
index 00000000..a16973b1
--- /dev/null
+++ b/static/img/langs/python-5.svg
@@ -0,0 +1 @@
+<svg width="2500" height="2490" viewBox="0 0 256 255"
xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin
meet"><defs><linearGradient x1="12.959%" y1="12.039%" x2="79.639%" y2="78.201%"
id="a"><stop stop-color="#387EB8" offset="0%"/><stop stop-color="#366994"
offset="100%"/></linearGradient><linearGradient x1="19.128%" y1="20.579%"
x2="90.742%" y2="88.429%" id="b"><stop stop-color="#FFE052" offset="0%"/><stop
stop-color="#FFC331" offset="100%"/></linearGradient></defs><path [...]
\ No newline at end of file
diff --git a/static/img/langs/ruby.svg b/static/img/langs/ruby.svg
new file mode 100644
index 00000000..7574d6ac
--- /dev/null
+++ b/static/img/langs/ruby.svg
@@ -0,0 +1 @@
+<svg width="2500" height="2490" viewBox="0 0 256 255"
xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin
meet"><defs><linearGradient x1="84.75%" y1="111.399%" x2="58.254%" y2="64.584%"
id="a"><stop stop-color="#FB7655" offset="0%"/><stop stop-color="#FB7655"
offset="0%"/><stop stop-color="#E42B1E" offset="41%"/><stop stop-color="#900"
offset="99%"/><stop stop-color="#900"
offset="100%"/></linearGradient><linearGradient x1="116.651%" y1="60.89%"
x2="1.746%" y2="19.288%" id=" [...]
\ No newline at end of file
diff --git a/static/img/langs/rust.svg b/static/img/langs/rust.svg
new file mode 100644
index 00000000..319bbab3
--- /dev/null
+++ b/static/img/langs/rust.svg
@@ -0,0 +1 @@
+<svg width="2500" height="2500" viewBox="0 0 256 256"
xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path
d="M254.251 124.862l-10.747-6.653a145.81 145.81 0 0
0-.306-3.13l9.236-8.615a3.686 3.686 0 0 0 1.105-3.427 3.685 3.685 0 0
0-2.33-2.744l-11.807-4.415a137.355 137.355 0 0 0-.925-3.048l7.365-10.229a3.698
3.698 0 0
0-2.407-5.814l-12.45-2.025c-.484-.944-.988-1.874-1.496-2.796l5.231-11.483a3.683
3.683 0 0 0-.288-3.59 3.678 3.678 0 0 0-3.204-1.642l-12.636.44a99.848 99.84
[...]
\ No newline at end of file
diff --git a/static/img/langs/swift-15.svg b/static/img/langs/swift-15.svg
new file mode 100644
index 00000000..5fe20abe
--- /dev/null
+++ b/static/img/langs/swift-15.svg
@@ -0,0 +1 @@
+<svg width="2500" height="2500" viewBox="0 0 256 256"
xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin
meet"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-1845.501"
y1="1255.639" x2="-1797.134" y2="981.338" gradientTransform="rotate(180
-846.605 623.252)"><stop offset="0" stop-color="#faae42"/><stop offset="1"
stop-color="#ef3e31"/></linearGradient><path fill="url(#a)" d="M56.9
0h141.8c6.9 0 13.6 1.1 20.1 3.4 9.4 3.4 17.9 9.4 24.3 17.2 6.5 7.8 10.8 17.4
12.3 [...]
\ No newline at end of file
diff --git a/static/video/background.mp4 b/static/video/background.mp4
new file mode 100644
index 00000000..b3a23d46
Binary files /dev/null and b/static/video/background.mp4 differ
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]