Ver código fonte

readme updated

Colby McHenry 2 meses atrás
pai
commit
6ea65246a5

+ 45 - 0
README.md

@@ -109,6 +109,51 @@ codegraph uninstall
 
 ---
 
+## Language Support
+
+Every language below gets the same treatment — full structural extraction and cross-file resolution into one graph, no per-language setup:
+
+<p align="center">
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/typescript.svg?v=1" width="104" height="104" alt="TypeScript" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/javascript.svg?v=1" width="104" height="104" alt="JavaScript" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/arkts.svg?v=1" width="104" height="104" alt="ArkTS" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/python.svg?v=1" width="104" height="104" alt="Python" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/go.svg?v=1" width="104" height="104" alt="Go" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/rust.svg?v=1" width="104" height="104" alt="Rust" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/java.svg?v=1" width="104" height="104" alt="Java" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/csharp.svg?v=1" width="104" height="104" alt="C#" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/php.svg?v=1" width="104" height="104" alt="PHP" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/ruby.svg?v=1" width="104" height="104" alt="Ruby" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/c.svg?v=1" width="104" height="104" alt="C" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/cpp.svg?v=1" width="104" height="104" alt="C++" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/objective-c.svg?v=1" width="104" height="104" alt="Objective-C" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/metal.svg?v=1" width="104" height="104" alt="Metal" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/cuda.svg?v=1" width="104" height="104" alt="CUDA" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/swift.svg?v=1" width="104" height="104" alt="Swift" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/kotlin.svg?v=1" width="104" height="104" alt="Kotlin" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/scala.svg?v=1" width="104" height="104" alt="Scala" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/dart.svg?v=1" width="104" height="104" alt="Dart" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/svelte.svg?v=1" width="104" height="104" alt="Svelte" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/vue.svg?v=1" width="104" height="104" alt="Vue" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/astro.svg?v=1" width="104" height="104" alt="Astro" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/liquid.svg?v=1" width="104" height="104" alt="Liquid" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/delphi.svg?v=1" width="104" height="104" alt="Pascal / Delphi" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/lua.svg?v=1" width="104" height="104" alt="Lua" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/r.svg?v=1" width="104" height="104" alt="R" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/luau.svg?v=1" width="104" height="104" alt="Luau" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/cfml.svg?v=1" width="104" height="104" alt="CFML" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/cobol.svg?v=1" width="104" height="104" alt="COBOL" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/vbnet.svg?v=1" width="104" height="104" alt="Visual Basic .NET" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/erlang.svg?v=1" width="104" height="104" alt="Erlang" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/solidity.svg?v=1" width="104" height="104" alt="Solidity" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/terraform.svg?v=1" width="104" height="104" alt="Terraform / OpenTofu" />
+  <img src="https://raw.githubusercontent.com/colbymchenry/codegraph/main/assets/languages/nix.svg?v=1" width="104" height="104" alt="Nix" />
+</p>
+
+<sub>Per-language details — extensions, frameworks, and what exactly gets extracted — in [Supported Languages](#supported-languages).</sub>
+
+---
+
 ## Why CodeGraph?
 
 When an AI agent needs to understand code — to answer a question or make a change — it discovers structure the slow way: grep, glob, and Read, one file at a time, rebuilding call paths and dependencies by hand. That's a pile of tool calls and round-trips before it even starts the real work.

+ 268 - 0
assets/generate-language-tiles.py

@@ -0,0 +1,268 @@
+#!/usr/bin/env python3
+"""Generate assets/languages/*.svg — the README "Language Support" icon grid.
+
+One tile per supported language: a paper card with the language's vector mark and
+its name centered underneath. Labels are converted to vector outlines (Archivo,
+same pipeline as generate-waitlist.py) so the SVG renders pixel-identical
+everywhere: GitHub loads README SVGs in "secure static mode", which blocks
+@font-face / web-font loading, so outlines are the only reliable way to ship the
+brand typeface. Every tile sits on the brand paper (#f7f6f2), so brand-colored
+marks — including near-black ones like Rust — stay legible on GitHub light *and*
+dark themes with no media-query tricks.
+
+Glyph sources (fetched at generation time, results checked in):
+  - simple-icons via https://cdn.simpleicons.org/<slug>  (CC0-1.0)
+  - devicon via jsDelivr, pinned @v2.16.0                (MIT) — Java, C#,
+    Objective-C, which simple-icons doesn't carry
+  - hand-drawn in this file: CFML, COBOL, VB.NET (no usable upstream mark)
+
+All trademarks/logos belong to their respective owners; they're used here only
+to indicate language support.
+
+Adding a language: append to LANGS, re-run, reference the new SVG in README.md
+with a fresh `?v=1`. If you change EXISTING tile bytes, bump that tile's `?v=N`
+in README.md in the same commit (GitHub caches README images aggressively).
+
+Requires: fonttools, brotli  (pip install fonttools brotli), network access.
+Font: @fontsource-variable/archivo (latin, wght axis) from the landing-page package.
+Usage: python3 generate-language-tiles.py [--preview /path/to/preview.svg]
+"""
+import os
+import re
+import sys
+import urllib.request
+from fontTools.ttLib import TTFont
+from fontTools.varLib.instancer import instantiateVariableFont
+from fontTools.pens.svgPathPen import SVGPathPen
+from fontTools.pens.transformPen import TransformPen
+from fontTools.misc.transform import Transform
+
+# --- brand palette (mirrors generate-waitlist.py) ---------------------------
+PAPER    = "#f7f6f2"
+HAIRLINE = "#d6d3c8"
+INK      = "#16150f"
+
+FONT = os.path.join(
+    os.path.dirname(__file__),
+    "../../landing-page/node_modules/@fontsource-variable/archivo/files/archivo-latin-wght-normal.woff2",
+)
+
+# --- tile geometry (px) ------------------------------------------------------
+TILE        = 104     # square tile, rx=8 card like the waitlist button
+GLYPH_BOX   = 44      # logo box, horizontally centered
+GLYPH_TOP   = 18
+LABEL_SIZE  = 12.5
+LABEL_WT    = 640
+LABEL_GAP   = 12      # glyph box bottom -> label cap top
+TRACK       = 0.15
+
+DEVICON = "https://cdn.jsdelivr.net/gh/devicons/devicon@v2.16.0/icons/{0}/{0}-{1}.svg"
+
+# (file slug, label, source) — README "Supported Languages" table order.
+# source: ("si", slug) simple-icons | ("devicon", name, variant) | ("custom", key)
+LANGS = [
+    ("typescript",  "TypeScript",  ("si", "typescript")),
+    ("javascript",  "JavaScript",  ("si", "javascript")),
+    ("arkts",       "ArkTS",       ("si", "harmonyos")),
+    ("python",      "Python",      ("si", "python")),
+    ("go",          "Go",          ("si", "go")),
+    ("rust",        "Rust",        ("si", "rust")),
+    ("java",        "Java",        ("devicon", "java", "original")),
+    ("csharp",      "C#",          ("devicon", "csharp", "original")),
+    ("php",         "PHP",         ("si", "php")),
+    ("ruby",        "Ruby",        ("si", "ruby")),
+    ("c",           "C",           ("si", "c")),
+    ("cpp",         "C++",         ("si", "cplusplus")),
+    ("objective-c", "Objective-C", ("devicon", "objectivec", "plain")),
+    ("metal",       "Metal",       ("si", "apple")),
+    ("cuda",        "CUDA",        ("si", "nvidia")),
+    ("swift",       "Swift",       ("si", "swift")),
+    ("kotlin",      "Kotlin",      ("si", "kotlin")),
+    ("scala",       "Scala",       ("si", "scala")),
+    ("dart",        "Dart",        ("si", "dart")),
+    ("svelte",      "Svelte",      ("si", "svelte")),
+    ("vue",         "Vue",         ("si", "vuedotjs")),
+    ("astro",       "Astro",       ("si", "astro")),
+    ("liquid",      "Liquid",      ("si", "shopify")),
+    ("delphi",      "Delphi",      ("si", "delphi")),
+    ("lua",         "Lua",         ("si", "lua")),
+    ("r",           "R",           ("si", "r")),
+    ("luau",        "Luau",        ("si", "luau")),
+    ("cfml",        "CFML",        ("custom", "cfml")),
+    ("cobol",       "COBOL",       ("custom", "cobol")),
+    ("vbnet",       "VB.NET",      ("custom", "vbnet")),
+    ("erlang",      "Erlang",      ("si", "erlang")),
+    ("solidity",    "Solidity",    ("si", "solidity")),
+    ("terraform",   "Terraform",   ("si", "terraform")),
+    ("nix",         "Nix",         ("si", "nixos")),
+]
+
+
+def fetch(url):
+    req = urllib.request.Request(url, headers={"User-Agent": "codegraph-assets"})
+    with urllib.request.urlopen(req, timeout=20) as r:
+        return r.read().decode("utf-8")
+
+
+class Outliner:
+    """Archivo text -> SVG path outlines, one font instance per weight."""
+
+    def __init__(self):
+        self._by_weight = {}
+
+    def _font(self, weight):
+        if weight not in self._by_weight:
+            ft = TTFont(FONT)
+            instantiateVariableFont(ft, {"wght": weight}, inplace=True)
+            self._by_weight[weight] = (ft, ft.getBestCmap(), ft.getGlyphSet(), ft["hmtx"])
+        return self._by_weight[weight]
+
+    def measure(self, text, size, weight, track=TRACK):
+        ft, cmap, _, hmtx = self._font(weight)
+        scale = size / ft["head"].unitsPerEm
+        w = sum(hmtx[cmap[ord(ch)]][0] * scale + track for ch in text)
+        return w - track
+
+    def cap_height(self, size, weight):
+        ft, _, _, _ = self._font(weight)
+        return getattr(ft["OS/2"], "sCapHeight", 700) * size / ft["head"].unitsPerEm
+
+    def outline(self, text, size, weight, start_x, baseline_y, track=TRACK):
+        ft, cmap, glyphs, hmtx = self._font(weight)
+        scale = size / ft["head"].unitsPerEm
+        sink = SVGPathPen(glyphs, ntos=lambda v: f"{round(v, 2):g}")
+        pen_x = start_x
+        for ch in text:
+            gname = cmap[ord(ch)]
+            if ch != " ":
+                t = Transform(scale, 0, 0, -scale, pen_x, baseline_y)
+                glyphs[gname].draw(TransformPen(sink, t))
+            pen_x += hmtx[gname][0] * scale + track
+        return sink.getCommands()
+
+    def centered(self, text, size, weight, center_x, baseline_y, track=TRACK):
+        w = self.measure(text, size, weight, track)
+        return self.outline(text, size, weight, center_x - w / 2, baseline_y, track)
+
+
+def si_glyph(slug):
+    """simple-icons: single brand-colored 24x24 path, scaled into the glyph box."""
+    svg = fetch(f"https://cdn.simpleicons.org/{slug}")
+    fill = re.search(r'fill="(#[0-9A-Fa-f]{3,8})"', svg).group(1)
+    d = re.search(r'<path d="([^"]+)"', svg).group(1)
+    s = round(GLYPH_BOX / 24, 5)
+    x = (TILE - GLYPH_BOX) / 2
+    return f'<g transform="translate({x},{GLYPH_TOP}) scale({s})"><path fill="{fill}" d="{d}"/></g>'
+
+
+def devicon_glyph(name, variant):
+    """devicon: multi-path 128x128 markup, embedded verbatim and scaled."""
+    svg = fetch(DEVICON.format(name, variant))
+    inner = re.search(r"<svg[^>]*>(.*)</svg>", svg, re.S).group(1).strip()
+    s = round(GLYPH_BOX / 128, 5)
+    x = (TILE - GLYPH_BOX) / 2
+    return f'<g transform="translate({x},{GLYPH_TOP}) scale({s})">{inner}</g>'
+
+
+def custom_glyph(key, out):
+    x = (TILE - GLYPH_BOX) / 2          # glyph box left edge (30)
+    cx = TILE / 2                        # 52
+    cy = GLYPH_TOP + GLYPH_BOX / 2       # glyph box vertical center (40)
+    if key == "cfml":
+        # The community CFML mark: a <cf> tag, set in Archivo.
+        size, wt = 20.0, 700
+        baseline = round(cy + out.cap_height(size, wt) / 2, 2)
+        d = out.centered("<cf>", size, wt, cx, baseline, track=0.4)
+        return f'<path fill="#1b5ea6" d="{d}"/>'
+    if key == "cobol":
+        # A punched card: manila stock, clipped corner, punched rows.
+        w, h = GLYPH_BOX, 28
+        top, cut = round(cy - h / 2, 2), 7
+        holes = []
+        for row in range(3):
+            hy = top + 7.4 + row * 6.4
+            for col in range(7):
+                if (row * 3 + col * 5) % 4 != 0:   # deterministic "data" pattern
+                    holes.append(
+                        f'<rect x="{round(x + 4.4 + col * 5.4, 2)}" y="{round(hy, 2)}" width="2.4" height="4" fill="#6b5d33"/>'
+                    )
+        card = (
+            f'M{x + cut},{top} H{x + w} V{top + h} H{x} V{top + cut} Z'
+        )
+        return (
+            f'<path d="{card}" fill="#ecdfb1" stroke="#b3a06a" stroke-width="1" stroke-linejoin="miter"/>'
+            + "".join(holes)
+        )
+    if key == "vbnet":
+        # The .NET-purple badge with a VB monogram.
+        size, wt = 16.5, 720
+        baseline = round(cy + out.cap_height(size, wt) / 2, 2)
+        d = out.centered("VB", size, wt, cx, baseline, track=0.6)
+        return (
+            f'<rect x="{x}" y="{GLYPH_TOP}" width="{GLYPH_BOX}" height="{GLYPH_BOX}" rx="6" fill="#512bd4"/>'
+            f'<path fill="{PAPER}" d="{d}"/>'
+        )
+    raise KeyError(key)
+
+
+def main():
+    preview_path = None
+    if "--preview" in sys.argv:
+        preview_path = sys.argv[sys.argv.index("--preview") + 1]
+
+    out = Outliner()
+    label_baseline = round(GLYPH_TOP + GLYPH_BOX + LABEL_GAP + out.cap_height(LABEL_SIZE, LABEL_WT), 2)
+
+    out_dir = os.path.join(os.path.dirname(__file__), "languages")
+    os.makedirs(out_dir, exist_ok=True)
+
+    bodies = {}
+    for slug, label, source in LANGS:
+        if source[0] == "si":
+            glyph = si_glyph(source[1])
+        elif source[0] == "devicon":
+            glyph = devicon_glyph(source[1], source[2])
+        else:
+            glyph = custom_glyph(source[1], out)
+        label_d = out.centered(label, LABEL_SIZE, LABEL_WT, TILE / 2, label_baseline)
+        body = (
+            f'<rect x="0.5" y="0.5" width="{TILE - 1}" height="{TILE - 1}" rx="8" fill="{PAPER}" stroke="{HAIRLINE}"/>\n'
+            f"  {glyph}\n"
+            f'  <path fill="{INK}" d="{label_d}"/>'
+        )
+        bodies[slug] = body
+        svg = (
+            f'<svg xmlns="http://www.w3.org/2000/svg" width="{TILE}" height="{TILE}" '
+            f'viewBox="0 0 {TILE} {TILE}" role="img" aria-label="{label}">\n'
+            f"  <title>{label}</title>\n"
+            f"  {body}\n"
+            f"</svg>\n"
+        )
+        path = os.path.join(out_dir, f"{slug}.svg")
+        with open(path, "w") as fh:
+            fh.write(svg)
+        print(f"wrote {os.path.relpath(path, os.path.dirname(__file__))}  ({len(svg)}b)  {label}")
+
+    if preview_path:
+        cols, pad = 7, 8
+        rows = -(-len(LANGS) // cols)
+        w = cols * (TILE + pad) + pad
+        h = rows * (TILE + pad) + pad
+        cells = []
+        for i, (slug, _, _) in enumerate(LANGS):
+            tx = pad + (i % cols) * (TILE + pad)
+            ty = pad + (i // cols) * (TILE + pad)
+            cells.append(f'<g transform="translate({tx},{ty})">{bodies[slug]}</g>')
+        light = "".join(cells)
+        with open(preview_path, "w") as fh:
+            fh.write(
+                f'<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h * 2}" viewBox="0 0 {w} {h * 2}">'
+                f'<rect width="{w}" height="{h}" fill="#ffffff"/>{light}'
+                f'<g transform="translate(0,{h})"><rect width="{w}" height="{h}" fill="#0d1117"/>{light}</g>'
+                f"</svg>\n"
+            )
+        print(f"wrote preview {preview_path} (top: light bg, bottom: dark bg)")
+
+
+if __name__ == "__main__":
+    main()

Diferenças do arquivo suprimidas por serem muito extensas
+ 3 - 0
assets/languages/arkts.svg


Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/astro.svg


+ 6 - 0
assets/languages/c.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="C">
+  <title>C</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <g transform="translate(30.0,18) scale(1.83333)"><path fill="#A8B9CC" d="M16.5921 9.1962s-.354-3.298-3.627-3.39c-3.2741-.09-4.9552 2.474-4.9552 6.14 0 3.6651 1.858 6.5972 5.0451 6.5972 3.184 0 3.5381-3.665 3.5381-3.665l6.1041.365s.36 3.31-2.196 5.836c-2.552 2.5241-5.6901 2.9371-7.8762 2.9201-2.19-.017-5.2261.034-8.1602-2.97-2.938-3.0101-3.436-5.9302-3.436-8.8002 0-2.8701.556-6.6702 4.047-9.5502C7.444.72 9.849 0 12.254 0c10.0422 0 10.7172 9.2602 10.7172 9.2602z"/></g>
+  <path fill="#16150f" d="M52.21 82.73Q50.89 82.73 49.95 82.26Q49.01 81.8 48.52 80.82Q48.02 79.83 48.02 78.29Q48.02 76.03 49.13 74.94Q50.23 73.85 52.21 73.85Q53.29 73.85 54.16 74.22Q55.02 74.59 55.52 75.33Q56.03 76.07 56.03 77.2H54.28Q54.28 76.58 54.02 76.16Q53.76 75.73 53.3 75.51Q52.84 75.29 52.24 75.29Q51.41 75.29 50.86 75.61Q50.32 75.94 50.06 76.57Q49.8 77.2 49.8 78.13V78.45Q49.8 79.39 50.06 80.03Q50.32 80.66 50.86 80.98Q51.4 81.3 52.23 81.3Q52.87 81.3 53.35 81.08Q53.83 80.86 54.09 80.44Q54.35 80.01 54.35 79.4H56.03Q56.03 80.53 55.53 81.27Q55.03 82.01 54.17 82.37Q53.31 82.73 52.21 82.73Z"/>
+</svg>

+ 6 - 0
assets/languages/cfml.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="CFML">
+  <title>CFML</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <path fill="#1b5ea6" d="M40.66 46.87 30.96 42.92V40.41L40.66 36.44V38.79L33.17 41.66L40.66 44.55ZM48.71 47.1Q47.04 47.1 45.9 46.51Q44.75 45.91 44.17 44.69Q43.59 43.47 43.59 41.6Q43.59 39.7 44.18 38.49Q44.77 37.28 45.91 36.68Q47.05 36.09 48.71 36.09Q49.8 36.09 50.68 36.35Q51.55 36.61 52.18 37.14Q52.82 37.67 53.15 38.47Q53.48 39.27 53.48 40.34H50.7Q50.7 39.63 50.48 39.16Q50.26 38.7 49.81 38.46Q49.36 38.23 48.68 38.23Q47.89 38.23 47.39 38.58Q46.89 38.94 46.65 39.64Q46.41 40.34 46.41 41.38V41.83Q46.41 42.86 46.65 43.56Q46.89 44.27 47.41 44.62Q47.93 44.96 48.78 44.96Q49.45 44.96 49.9 44.73Q50.35 44.49 50.59 44.01Q50.83 43.53 50.83 42.84H53.48Q53.48 43.87 53.15 44.67Q52.82 45.47 52.19 46.01Q51.56 46.55 50.68 46.82Q49.8 47.1 48.71 47.1ZM56.45 46.86V38.48H54.93V36.33H56.45V35.19Q56.45 34.33 56.73 33.65Q57.02 32.98 57.66 32.6Q58.3 32.21 59.37 32.21Q59.67 32.21 60 32.26Q60.33 32.3 60.63 32.37Q60.94 32.44 61.15 32.53V34.37H60.17Q59.68 34.37 59.45 34.6Q59.22 34.83 59.22 35.3V36.33H61.15V38.48H59.22V46.86ZM63.34 46.87V44.55L70.84 41.66L63.34 38.79V36.44L73.05 40.41V42.92Z"/>
+  <path fill="#16150f" d="M39.19 82.73Q37.87 82.73 36.93 82.26Q36 81.8 35.5 80.82Q35.01 79.83 35.01 78.29Q35.01 76.03 36.11 74.94Q37.21 73.85 39.19 73.85Q40.27 73.85 41.14 74.22Q42 74.59 42.51 75.33Q43.01 76.07 43.01 77.2H41.27Q41.27 76.58 41 76.16Q40.74 75.73 40.28 75.51Q39.82 75.29 39.22 75.29Q38.39 75.29 37.84 75.61Q37.3 75.94 37.04 76.57Q36.78 77.2 36.78 78.13V78.45Q36.78 79.39 37.04 80.03Q37.3 80.66 37.84 80.98Q38.38 81.3 39.21 81.3Q39.86 81.3 40.33 81.08Q40.81 80.86 41.07 80.44Q41.33 80.01 41.33 79.4H43.01Q43.01 80.53 42.51 81.27Q42.01 82.01 41.15 82.37Q40.29 82.73 39.19 82.73ZM44.62 82.58V74H50.85V75.45H46.34V77.68H50.39V79.12H46.34V82.58ZM52.44 82.58V74H55.12L56.42 78.63Q56.49 78.87 56.57 79.19Q56.64 79.5 56.72 79.8Q56.79 80.1 56.83 80.33H56.93Q56.96 80.14 57.01 79.85Q57.06 79.57 57.14 79.24Q57.21 78.92 57.29 78.61L58.6 74H61.24V82.58H59.52V78.35Q59.52 77.78 59.53 77.21Q59.55 76.64 59.56 76.22Q59.58 75.8 59.58 75.71H59.48Q59.46 75.83 59.36 76.2Q59.26 76.58 59.15 77Q59.04 77.43 58.96 77.74L57.57 82.58H56.02L54.63 77.75Q54.56 77.49 54.47 77.12Q54.37 76.76 54.28 76.38Q54.19 75.99 54.12 75.71H54.02Q54.03 76.04 54.04 76.51Q54.06 76.98 54.07 77.47Q54.08 77.95 54.08 78.35V82.58ZM63.28 82.58V74H65V81.1H69.31V82.58Z"/>
+</svg>

Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/cobol.svg


+ 6 - 0
assets/languages/cpp.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="C++">
+  <title>C++</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <g transform="translate(30.0,18) scale(1.83333)"><path fill="#00599C" d="M22.394 6c-.167-.29-.398-.543-.652-.69L12.926.22c-.509-.294-1.34-.294-1.848 0L2.26 5.31c-.508.293-.923 1.013-.923 1.6v10.18c0 .294.104.62.271.91.167.29.398.543.652.69l8.816 5.09c.508.293 1.34.293 1.848 0l8.816-5.09c.254-.147.485-.4.652-.69.167-.29.27-.616.27-.91V6.91c.003-.294-.1-.62-.268-.91zM12 19.11c-3.92 0-7.109-3.19-7.109-7.11 0-3.92 3.19-7.11 7.11-7.11a7.133 7.133 0 016.156 3.553l-3.076 1.78a3.567 3.567 0 00-3.08-1.78A3.56 3.56 0 008.444 12 3.56 3.56 0 0012 15.555a3.57 3.57 0 003.08-1.778l3.078 1.78A7.135 7.135 0 0112 19.11zm7.11-6.715h-.79v.79h-.79v-.79h-.79v-.79h.79v-.79h.79v.79h.79zm2.962 0h-.79v.79h-.79v-.79h-.79v-.79h.79v-.79h.79v.79h.79z"/></g>
+  <path fill="#16150f" d="M44.09 82.73Q42.76 82.73 41.83 82.26Q40.89 81.8 40.39 80.82Q39.9 79.83 39.9 78.29Q39.9 76.03 41 74.94Q42.11 73.85 44.09 73.85Q45.17 73.85 46.03 74.22Q46.89 74.59 47.4 75.33Q47.91 76.07 47.91 77.2H46.16Q46.16 76.58 45.9 76.16Q45.64 75.73 45.18 75.51Q44.71 75.29 44.11 75.29Q43.28 75.29 42.74 75.61Q42.19 75.94 41.93 76.57Q41.68 77.2 41.68 78.13V78.45Q41.68 79.39 41.94 80.03Q42.2 80.66 42.73 80.98Q43.27 81.3 44.11 81.3Q44.75 81.3 45.23 81.08Q45.7 80.86 45.96 80.44Q46.22 80.01 46.22 79.4H47.91Q47.91 80.53 47.41 81.27Q46.91 82.01 46.05 82.37Q45.18 82.73 44.09 82.73ZM51.92 82.58V80.01H49.57V78.75H51.92V76.17H53.17V78.75H55.53V80.01H53.17V82.58ZM60.04 82.58V80.01H57.7V78.75H60.04V76.17H61.3V78.75H63.66V80.01H61.3V82.58Z"/>
+</svg>

+ 6 - 0
assets/languages/csharp.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="C#">
+  <title>C#</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <g transform="translate(30.0,18) scale(0.34375)"><path fill="#9B4F96" d="M115.4 30.7L67.1 2.9c-.8-.5-1.9-.7-3.1-.7-1.2 0-2.3.3-3.1.7l-48 27.9c-1.7 1-2.9 3.5-2.9 5.4v55.7c0 1.1.2 2.4 1 3.5l106.8-62c-.6-1.2-1.5-2.1-2.4-2.7z"/><path fill="#68217A" d="M10.7 95.3c.5.8 1.2 1.5 1.9 1.9l48.2 27.9c.8.5 1.9.7 3.1.7 1.2 0 2.3-.3 3.1-.7l48-27.9c1.7-1 2.9-3.5 2.9-5.4V36.1c0-.9-.1-1.9-.6-2.8l-106.6 62z"/><path fill="#fff" d="M85.3 76.1C81.1 83.5 73.1 88.5 64 88.5c-13.5 0-24.5-11-24.5-24.5s11-24.5 24.5-24.5c9.1 0 17.1 5 21.3 12.5l13-7.5c-6.8-11.9-19.6-20-34.3-20-21.8 0-39.5 17.7-39.5 39.5s17.7 39.5 39.5 39.5c14.6 0 27.4-8 34.2-19.8l-12.9-7.6zM97 66.2l.9-4.3h-4.2v-4.7h5.1L100 51h4.9l-1.2 6.1h3.8l1.2-6.1h4.8l-1.2 6.1h2.4v4.7h-3.3l-.9 4.3h4.2v4.7h-5.1l-1.2 6h-4.9l1.2-6h-3.8l-1.2 6h-4.8l1.2-6h-2.4v-4.7H97zm4.8 0h3.8l.9-4.3h-3.8l-.9 4.3z"/></g>
+  <path fill="#16150f" d="M48.45 82.73Q47.13 82.73 46.19 82.26Q45.25 81.8 44.76 80.82Q44.26 79.83 44.26 78.29Q44.26 76.03 45.37 74.94Q46.47 73.85 48.45 73.85Q49.53 73.85 50.39 74.22Q51.26 74.59 51.76 75.33Q52.27 76.07 52.27 77.2H50.52Q50.52 76.58 50.26 76.16Q50 75.73 49.54 75.51Q49.08 75.29 48.47 75.29Q47.65 75.29 47.1 75.61Q46.56 75.94 46.3 76.57Q46.04 77.2 46.04 78.13V78.45Q46.04 79.39 46.3 80.03Q46.56 80.66 47.1 80.98Q47.63 81.3 48.47 81.3Q49.11 81.3 49.59 81.08Q50.06 80.86 50.33 80.44Q50.59 80.01 50.59 79.4H52.27Q52.27 80.53 51.77 81.27Q51.27 82.01 50.41 82.37Q49.55 82.73 48.45 82.73ZM53.65 82.73 54.11 80.49H53.22V79.25H54.37L54.71 77.6H53.8V76.36H54.98L55.52 73.85H56.79L56.26 76.36H57.75L58.28 73.85H59.56L59.03 76.36H60V77.6H58.78L58.43 79.25H59.44V80.49H58.18L57.7 82.73H56.42L56.9 80.49H55.39L54.93 82.73ZM55.65 79.25H57.15L57.5 77.6H55.99Z"/>
+</svg>

+ 6 - 0
assets/languages/cuda.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="CUDA">
+  <title>CUDA</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <g transform="translate(30.0,18) scale(1.83333)"><path fill="#76B900" d="M8.948 8.798v-1.43a6.7 6.7 0 0 1 .424-.018c3.922-.124 6.493 3.374 6.493 3.374s-2.774 3.851-5.75 3.851c-.398 0-.787-.062-1.158-.185v-4.346c1.528.185 1.837.857 2.747 2.385l2.04-1.714s-1.492-1.952-4-1.952a6.016 6.016 0 0 0-.796.035m0-4.735v2.138l.424-.027c5.45-.185 9.01 4.47 9.01 4.47s-4.08 4.964-8.33 4.964c-.37 0-.733-.035-1.095-.097v1.325c.3.035.61.062.91.062 3.957 0 6.82-2.023 9.593-4.408.459.371 2.34 1.263 2.73 1.652-2.633 2.208-8.772 3.984-12.253 3.984-.335 0-.653-.018-.971-.053v1.864H24V4.063zm0 10.326v1.131c-3.657-.654-4.673-4.46-4.673-4.46s1.758-1.944 4.673-2.262v1.237H8.94c-1.528-.186-2.73 1.245-2.73 1.245s.68 2.412 2.739 3.11M2.456 10.9s2.164-3.197 6.5-3.533V6.201C4.153 6.59 0 10.653 0 10.653s2.35 6.802 8.948 7.42v-1.237c-4.84-.6-6.492-5.936-6.492-5.936z"/></g>
+  <path fill="#16150f" d="M38.36 82.73Q37.04 82.73 36.1 82.26Q35.16 81.8 34.67 80.82Q34.17 79.83 34.17 78.29Q34.17 76.03 35.28 74.94Q36.38 73.85 38.36 73.85Q39.44 73.85 40.31 74.22Q41.17 74.59 41.67 75.33Q42.18 76.07 42.18 77.2H40.43Q40.43 76.58 40.17 76.16Q39.91 75.73 39.45 75.51Q38.99 75.29 38.39 75.29Q37.56 75.29 37.01 75.61Q36.47 75.94 36.21 76.57Q35.95 77.2 35.95 78.13V78.45Q35.95 79.39 36.21 80.03Q36.47 80.66 37.01 80.98Q37.55 81.3 38.38 81.3Q39.02 81.3 39.5 81.08Q39.98 80.86 40.24 80.44Q40.5 80.01 40.5 79.4H42.18Q42.18 80.53 41.68 81.27Q41.18 82.01 40.32 82.37Q39.46 82.73 38.36 82.73ZM47.41 82.73Q46.27 82.73 45.44 82.36Q44.62 82 44.18 81.25Q43.74 80.5 43.74 79.38V74H45.46V79.33Q45.46 80.29 45.97 80.79Q46.48 81.3 47.41 81.3Q48.34 81.3 48.86 80.79Q49.38 80.29 49.38 79.33V74H51.1V79.38Q51.1 80.5 50.66 81.25Q50.22 82 49.39 82.36Q48.57 82.73 47.41 82.73ZM53.1 82.58V74H56.56Q57.88 74 58.81 74.47Q59.74 74.93 60.24 75.87Q60.74 76.82 60.74 78.29Q60.74 79.75 60.24 80.7Q59.74 81.66 58.81 82.12Q57.88 82.58 56.56 82.58ZM54.82 81.13H56.56Q57.14 81.13 57.59 80.96Q58.05 80.79 58.35 80.46Q58.65 80.12 58.81 79.62Q58.97 79.12 58.97 78.45V78.14Q58.97 77.47 58.81 76.96Q58.65 76.46 58.35 76.12Q58.05 75.79 57.59 75.62Q57.14 75.45 56.56 75.45H54.82ZM61.52 82.58 64.84 74H66.99L70.32 82.58H68.46L67.8 80.81H63.95L63.29 82.58ZM64.47 79.39H67.27L66.45 77.14Q66.4 77.02 66.33 76.82Q66.26 76.63 66.19 76.39Q66.11 76.16 66.04 75.92Q65.96 75.69 65.9 75.5H65.84Q65.76 75.75 65.66 76.07Q65.56 76.39 65.46 76.68Q65.36 76.97 65.29 77.14Z"/>
+</svg>

Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/dart.svg


Diferenças do arquivo suprimidas por serem muito extensas
+ 3 - 0
assets/languages/delphi.svg


Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/erlang.svg


+ 6 - 0
assets/languages/go.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="Go">
+  <title>Go</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <g transform="translate(30.0,18) scale(1.83333)"><path fill="#00ADD8" d="M1.811 10.231c-.047 0-.058-.023-.035-.059l.246-.315c.023-.035.081-.058.128-.058h4.172c.046 0 .058.035.035.07l-.199.303c-.023.036-.082.07-.117.07zM.047 11.306c-.047 0-.059-.023-.035-.058l.245-.316c.023-.035.082-.058.129-.058h5.328c.047 0 .07.035.058.07l-.093.28c-.012.047-.058.07-.105.07zm2.828 1.075c-.047 0-.059-.035-.035-.07l.163-.292c.023-.035.07-.07.117-.07h2.337c.047 0 .07.035.07.082l-.023.28c0 .047-.047.082-.082.082zm12.129-2.36c-.736.187-1.239.327-1.963.514-.176.046-.187.058-.34-.117-.174-.199-.303-.327-.548-.444-.737-.362-1.45-.257-2.115.175-.795.514-1.204 1.274-1.192 2.22.011.935.654 1.706 1.577 1.835.795.105 1.46-.175 1.987-.77.105-.13.198-.27.315-.434H10.47c-.245 0-.304-.152-.222-.35.152-.362.432-.97.596-1.274a.315.315 0 01.292-.187h4.253c-.023.316-.023.631-.07.947a4.983 4.983 0 01-.958 2.29c-.841 1.11-1.94 1.8-3.33 1.986-1.145.152-2.209-.07-3.143-.77-.865-.655-1.356-1.52-1.484-2.595-.152-1.274.222-2.419.993-3.424.83-1.086 1.928-1.776 3.272-2.02 1.098-.2 2.15-.07 3.096.571.62.41 1.063.97 1.356 1.648.07.105.023.164-.117.2m3.868 6.461c-1.064-.024-2.034-.328-2.852-1.029a3.665 3.665 0 01-1.262-2.255c-.21-1.32.152-2.489.947-3.529.853-1.122 1.881-1.706 3.272-1.95 1.192-.21 2.314-.095 3.33.595.923.63 1.496 1.484 1.648 2.605.198 1.578-.257 2.863-1.344 3.962-.771.783-1.718 1.273-2.805 1.495-.315.06-.63.07-.934.106zm2.78-4.72c-.011-.153-.011-.27-.034-.387-.21-1.157-1.274-1.81-2.384-1.554-1.087.245-1.788.935-2.045 2.033-.21.912.234 1.835 1.075 2.21.643.28 1.285.244 1.905-.07.923-.48 1.425-1.228 1.484-2.233z"/></g>
+  <path fill="#16150f" d="M48.02 82.73Q46.02 82.73 44.92 81.66Q43.82 80.58 43.82 78.29Q43.82 76.78 44.34 75.8Q44.87 74.82 45.85 74.34Q46.84 73.85 48.22 73.85Q49.06 73.85 49.79 74.04Q50.52 74.23 51.08 74.61Q51.64 75 51.95 75.58Q52.27 76.15 52.27 76.94H50.51Q50.51 76.54 50.33 76.23Q50.16 75.92 49.85 75.71Q49.54 75.5 49.13 75.39Q48.73 75.29 48.28 75.29Q47.61 75.29 47.1 75.46Q46.6 75.64 46.26 76Q45.93 76.36 45.76 76.89Q45.6 77.43 45.6 78.14V78.45Q45.6 79.43 45.88 80.06Q46.16 80.69 46.73 80.99Q47.3 81.3 48.14 81.3Q48.85 81.3 49.39 81.08Q49.93 80.86 50.25 80.45Q50.56 80.03 50.56 79.43V79.35H47.89V77.96H52.27V82.58H51.08L50.93 81.64Q50.56 82.01 50.13 82.25Q49.7 82.49 49.19 82.61Q48.67 82.73 48.02 82.73ZM57.06 82.73Q55.98 82.73 55.24 82.36Q54.51 81.99 54.14 81.23Q53.77 80.46 53.77 79.29Q53.77 78.11 54.14 77.35Q54.51 76.59 55.24 76.22Q55.98 75.85 57.06 75.85Q58.15 75.85 58.88 76.22Q59.6 76.59 59.98 77.35Q60.35 78.11 60.35 79.29Q60.35 80.46 59.98 81.23Q59.6 81.99 58.88 82.36Q58.15 82.73 57.06 82.73ZM57.06 81.44Q57.64 81.44 58 81.22Q58.36 80.99 58.53 80.54Q58.69 80.08 58.69 79.4V79.18Q58.69 78.5 58.53 78.05Q58.36 77.59 58 77.37Q57.64 77.14 57.06 77.14Q56.47 77.14 56.11 77.37Q55.75 77.59 55.58 78.05Q55.42 78.5 55.42 79.18V79.4Q55.42 80.08 55.58 80.54Q55.75 80.99 56.11 81.22Q56.47 81.44 57.06 81.44Z"/>
+</svg>

Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/java.svg


Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/javascript.svg


+ 6 - 0
assets/languages/kotlin.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="Kotlin">
+  <title>Kotlin</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <g transform="translate(30.0,18) scale(1.83333)"><path fill="#7F52FF" d="M24 24H0V0h24L12 12Z"/></g>
+  <path fill="#16150f" d="M35.43 82.58V74H37.15V77.95L40.89 74H43L39.7 77.48L43.06 82.58H41.02L38.52 78.68L37.15 79.9V82.58ZM47.24 82.73Q46.16 82.73 45.43 82.36Q44.7 81.99 44.32 81.23Q43.95 80.46 43.95 79.29Q43.95 78.11 44.32 77.35Q44.7 76.59 45.43 76.22Q46.16 75.85 47.24 75.85Q48.33 75.85 49.06 76.22Q49.79 76.59 50.16 77.35Q50.53 78.11 50.53 79.29Q50.53 80.46 50.16 81.23Q49.79 81.99 49.06 82.36Q48.33 82.73 47.24 82.73ZM47.24 81.44Q47.83 81.44 48.19 81.22Q48.55 80.99 48.72 80.54Q48.88 80.08 48.88 79.4V79.18Q48.88 78.5 48.72 78.05Q48.55 77.59 48.19 77.37Q47.83 77.14 47.24 77.14Q46.66 77.14 46.3 77.37Q45.94 77.59 45.77 78.05Q45.61 78.5 45.61 79.18V79.4Q45.61 80.08 45.77 80.54Q45.94 80.99 46.3 81.22Q46.66 81.44 47.24 81.44ZM53.81 82.73Q53.19 82.73 52.82 82.49Q52.46 82.26 52.3 81.88Q52.15 81.49 52.15 81.07V77.29H51.35V76H52.19L52.49 74.15H53.75V76H54.91V77.29H53.75V80.86Q53.75 81.14 53.89 81.29Q54.03 81.44 54.32 81.44H54.91V82.53Q54.78 82.58 54.59 82.62Q54.4 82.67 54.19 82.7Q53.99 82.73 53.81 82.73ZM56.19 82.58V73.54H57.8V82.58ZM59.56 75.01V73.54H61.17V75.01ZM59.56 82.58V76H61.17V82.58ZM62.94 82.58V76H64.28L64.41 76.89H64.5Q64.72 76.58 65.03 76.35Q65.34 76.11 65.74 75.98Q66.14 75.85 66.61 75.85Q67.25 75.85 67.73 76.08Q68.22 76.31 68.49 76.82Q68.76 77.32 68.76 78.16V82.58H67.14V78.43Q67.14 78.1 67.06 77.87Q66.98 77.64 66.83 77.5Q66.68 77.36 66.46 77.3Q66.24 77.23 65.97 77.23Q65.57 77.23 65.25 77.43Q64.92 77.62 64.74 77.96Q64.55 78.3 64.55 78.75V82.58Z"/>
+</svg>

+ 6 - 0
assets/languages/liquid.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="Liquid">
+  <title>Liquid</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <g transform="translate(30.0,18) scale(1.83333)"><path fill="#7AB55C" d="M15.337 23.979l7.216-1.561s-2.604-17.613-2.625-17.73c-.018-.116-.114-.192-.211-.192s-1.929-.136-1.929-.136-1.275-1.274-1.439-1.411c-.045-.037-.075-.057-.121-.074l-.914 21.104h.023zM11.71 11.305s-.81-.424-1.774-.424c-1.447 0-1.504.906-1.504 1.141 0 1.232 3.24 1.715 3.24 4.629 0 2.295-1.44 3.76-3.406 3.76-2.354 0-3.54-1.465-3.54-1.465l.646-2.086s1.245 1.066 2.28 1.066c.675 0 .975-.545.975-.932 0-1.619-2.654-1.694-2.654-4.359-.034-2.237 1.571-4.416 4.827-4.416 1.257 0 1.875.361 1.875.361l-.945 2.715-.02.01zM11.17.83c.136 0 .271.038.405.135-.984.465-2.064 1.639-2.508 3.992-.656.213-1.293.405-1.889.578C7.697 3.75 8.951.84 11.17.84V.83zm1.235 2.949v.135c-.754.232-1.583.484-2.394.736.466-1.777 1.333-2.645 2.085-2.971.193.501.309 1.176.309 2.1zm.539-2.234c.694.074 1.141.867 1.429 1.755-.349.114-.735.231-1.158.366v-.252c0-.752-.096-1.371-.271-1.871v.002zm2.992 1.289c-.02 0-.06.021-.078.021s-.289.075-.714.21c-.423-1.233-1.176-2.37-2.508-2.37h-.115C12.135.209 11.669 0 11.265 0 8.159 0 6.675 3.877 6.21 5.846c-1.194.365-2.063.636-2.16.674-.675.213-.694.232-.772.87-.075.462-1.83 14.063-1.83 14.063L15.009 24l.927-21.166z"/></g>
+  <path fill="#16150f" d="M34.56 82.58V74H36.28V81.1H40.59V82.58ZM41.79 75.01V73.54H43.4V75.01ZM41.79 82.58V76H43.4V82.58ZM49.43 84.77V81.83H49.35Q49.15 82.13 48.86 82.33Q48.58 82.53 48.21 82.63Q47.84 82.73 47.39 82.73Q46.66 82.73 46.08 82.37Q45.5 82 45.17 81.24Q44.85 80.48 44.85 79.3Q44.85 78.11 45.17 77.34Q45.49 76.58 46.08 76.22Q46.67 75.85 47.47 75.85Q48.11 75.85 48.64 76.11Q49.17 76.37 49.49 76.88H49.57L49.71 76H51.04V84.77ZM47.98 81.37Q48.37 81.37 48.64 81.24Q48.92 81.1 49.09 80.84Q49.26 80.59 49.34 80.22Q49.43 79.85 49.43 79.38V79.2Q49.43 78.57 49.28 78.12Q49.12 77.68 48.81 77.44Q48.49 77.21 47.98 77.21Q47.43 77.21 47.11 77.42Q46.78 77.64 46.64 78.08Q46.5 78.52 46.5 79.19V79.41Q46.5 80.07 46.64 80.51Q46.78 80.94 47.11 81.16Q47.43 81.37 47.98 81.37ZM54.91 82.73Q53.94 82.73 53.35 82.2Q52.76 81.67 52.76 80.43V76H54.37V80.15Q54.37 80.49 54.45 80.71Q54.53 80.94 54.68 81.08Q54.83 81.22 55.05 81.29Q55.27 81.35 55.54 81.35Q55.94 81.35 56.26 81.15Q56.59 80.96 56.77 80.61Q56.96 80.27 56.96 79.83V76H58.57V82.58H57.24L57.12 81.69H57.03Q56.8 82 56.49 82.23Q56.18 82.47 55.78 82.6Q55.38 82.73 54.91 82.73ZM60.33 75.01V73.54H61.94V75.01ZM60.33 82.58V76H61.94V82.58ZM66.01 82.73Q65.21 82.73 64.61 82.37Q64.02 82 63.7 81.24Q63.38 80.48 63.38 79.28Q63.38 78.09 63.71 77.34Q64.04 76.58 64.61 76.22Q65.19 75.85 65.93 75.85Q66.37 75.85 66.74 75.95Q67.12 76.05 67.4 76.25Q67.69 76.46 67.89 76.75H67.96V73.54H69.57V82.58H68.24L68.12 81.7H68.03Q67.71 82.22 67.18 82.47Q66.65 82.73 66.01 82.73ZM66.51 81.37Q67.03 81.37 67.34 81.14Q67.66 80.91 67.81 80.47Q67.97 80.03 67.97 79.4V79.22Q67.97 78.75 67.88 78.37Q67.8 77.99 67.62 77.74Q67.44 77.48 67.17 77.35Q66.89 77.21 66.51 77.21Q65.97 77.21 65.64 77.42Q65.32 77.64 65.18 78.08Q65.04 78.52 65.04 79.19V79.41Q65.04 80.07 65.18 80.51Q65.32 80.95 65.64 81.16Q65.97 81.37 66.51 81.37Z"/>
+</svg>

Diferenças do arquivo suprimidas por serem muito extensas
+ 3 - 0
assets/languages/lua.svg


+ 6 - 0
assets/languages/luau.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="Luau">
+  <title>Luau</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <g transform="translate(30.0,18) scale(1.83333)"><path fill="#00A2FF" d="M24 5.072 18.928 24 0 18.928 5.072 0 24 5.072ZM8.984 18.402l-.085.375.61.163 1.005-3.75-.641-.172-.731 2.728c-.26.322-.635.417-1.125.286-.462-.124-.616-.47-.464-1.039l.649-2.422-.641-.172-.654 2.44c-.12.455-.107.828.039 1.117.148.287.422.485.822.592.483.13.888.081 1.216-.146Zm3.818 1.42.672.18.015-.055c-.034-.227-.004-.512.088-.857l.462-1.725c.093-.382.045-.713-.142-.994-.187-.282-.496-.481-.928-.597a1.897 1.897 0 0 0-.793-.05 1.42 1.42 0 0 0-.652.272.912.912 0 0 0-.343.488l.645.172c.044-.164.159-.283.344-.357a.969.969 0 0 1 .622-.02c.261.07.44.19.54.36.098.168.117.364.057.588l-.079.295-.624-.167c-.538-.145-.985-.148-1.342-.01-.353.135-.582.398-.687.789-.086.32-.04.618.14.891.183.272.458.458.828.557.414.11.811.05 1.192-.179-.028.196-.033.336-.015.42Zm-.934-.774a.8.8 0 0 1-.47-.307.606.606 0 0 1-.075-.526c.123-.46.577-.584 1.363-.374l.502.135-.206.77a.978.978 0 0 1-.5.3 1.166 1.166 0 0 1-.614.002ZM21 6.804l-3.786-1.015L16.2 9.575l3.786 1.014L21 6.804ZM3.818 16.832l1.207-4.502-.67-.18-1.352 5.047 3.06.82.146-.544-2.39-.64Zm12.944 3.654-.086.375.61.163 1.005-3.75-.641-.172-.731 2.728c-.26.322-.634.417-1.124.286-.462-.124-.617-.47-.465-1.039l.65-2.422-.642-.172-.654 2.44c-.12.456-.106.828.04 1.117.147.288.421.485.821.592.483.13.889.081 1.217-.146Z"/></g>
+  <path fill="#16150f" d="M38.2 82.58V74H39.92V81.1H44.23V82.58ZM47.54 82.73Q46.57 82.73 45.98 82.2Q45.38 81.67 45.38 80.43V76H46.99V80.15Q46.99 80.49 47.07 80.71Q47.15 80.94 47.3 81.08Q47.45 81.22 47.67 81.29Q47.89 81.35 48.16 81.35Q48.57 81.35 48.89 81.15Q49.21 80.96 49.4 80.61Q49.59 80.27 49.59 79.83V76H51.2V82.58H49.87L49.74 81.69H49.65Q49.43 82 49.12 82.23Q48.8 82.47 48.41 82.6Q48.01 82.73 47.54 82.73ZM54.67 82.73Q54.37 82.73 54.01 82.66Q53.65 82.59 53.32 82.4Q52.99 82.21 52.78 81.84Q52.57 81.47 52.57 80.88Q52.57 80.2 52.87 79.75Q53.17 79.31 53.72 79.05Q54.27 78.8 55.03 78.69Q55.79 78.59 56.71 78.59V78.07Q56.71 77.78 56.62 77.56Q56.53 77.34 56.3 77.21Q56.07 77.09 55.62 77.09Q55.18 77.09 54.92 77.19Q54.66 77.3 54.56 77.46Q54.46 77.62 54.46 77.8V77.96H52.9Q52.88 77.9 52.88 77.84Q52.88 77.78 52.88 77.7Q52.88 77.13 53.23 76.71Q53.57 76.3 54.18 76.07Q54.8 75.85 55.61 75.85Q56.52 75.85 57.11 76.1Q57.71 76.34 58.02 76.81Q58.32 77.27 58.32 77.95V81Q58.32 81.23 58.45 81.34Q58.59 81.44 58.75 81.44H59.16V82.53Q59.03 82.58 58.78 82.65Q58.54 82.72 58.18 82.72Q57.84 82.72 57.57 82.61Q57.3 82.51 57.12 82.31Q56.94 82.11 56.87 81.84H56.79Q56.58 82.1 56.28 82.3Q55.98 82.51 55.58 82.62Q55.18 82.73 54.67 82.73ZM55.18 81.45Q55.54 81.45 55.83 81.35Q56.12 81.24 56.31 81.04Q56.5 80.85 56.61 80.57Q56.71 80.3 56.71 79.97V79.65Q56.02 79.65 55.45 79.74Q54.88 79.83 54.55 80.06Q54.21 80.29 54.21 80.71Q54.21 80.94 54.32 81.11Q54.43 81.27 54.65 81.36Q54.86 81.45 55.18 81.45ZM62.29 82.73Q61.32 82.73 60.73 82.2Q60.13 81.67 60.13 80.43V76H61.74V80.15Q61.74 80.49 61.82 80.71Q61.9 80.94 62.05 81.08Q62.2 81.22 62.42 81.29Q62.64 81.35 62.91 81.35Q63.32 81.35 63.64 81.15Q63.96 80.96 64.15 80.61Q64.34 80.27 64.34 79.83V76H65.95V82.58H64.62L64.49 81.69H64.4Q64.18 82 63.87 82.23Q63.55 82.47 63.16 82.6Q62.76 82.73 62.29 82.73Z"/>
+</svg>

Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/metal.svg


+ 6 - 0
assets/languages/nix.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="Nix">
+  <title>Nix</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <g transform="translate(30.0,18) scale(1.83333)"><path fill="#5277C3" d="M7.352 1.592l-1.364.002L5.32 2.75l1.557 2.713-3.137-.008-1.32 2.34H14.11l-1.353-2.332-3.192-.006-2.214-3.865zm6.175 0l-2.687.025 5.846 10.127 1.341-2.34-1.59-2.765 2.24-3.85-.683-1.182h-1.336l-1.57 2.705-1.56-2.72zm6.887 4.195l-5.846 10.125 2.696-.008 1.601-2.76 4.453.016.682-1.183-.666-1.157-3.13-.008L21.778 8.1l-1.365-2.313zM9.432 8.086l-2.696.008-1.601 2.76-4.453-.016L0 12.02l.666 1.157 3.13.008-1.575 2.71 1.365 2.315L9.432 8.086zM7.33 12.25l-.006.01-.002-.004-1.342 2.34 1.59 2.765-2.24 3.85.684 1.182H7.35l.004-.006h.001l1.567-2.698 1.558 2.72 2.688-.026-.004-.006h.01L7.33 12.25zm2.55 3.93l1.354 2.332 3.192.006 2.215 3.865 1.363-.002.668-1.156-1.557-2.713 3.137.008 1.32-2.34H9.881Z"/></g>
+  <path fill="#16150f" d="M43.07 82.58V74H44.69L48.27 78.89Q48.34 78.97 48.43 79.11Q48.53 79.25 48.61 79.39Q48.7 79.52 48.73 79.61L48.79 79.6Q48.79 79.41 48.79 79.24Q48.79 79.06 48.79 78.89V74H50.44V82.58H48.83L45.21 77.62Q45.1 77.47 44.97 77.25Q44.84 77.03 44.78 76.93L44.72 76.94Q44.72 77.11 44.72 77.28Q44.72 77.46 44.72 77.62V82.58ZM52.34 75.01V73.54H53.95V75.01ZM52.34 82.58V76H53.95V82.58ZM55.03 82.58 57.4 79.18 55.2 76H57.14L58.42 78.02H58.5L59.8 76H61.62L59.41 79.15L61.75 82.58H59.83L58.39 80.32H58.31L56.86 82.58Z"/>
+</svg>

Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/objective-c.svg


+ 6 - 0
assets/languages/php.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="PHP">
+  <title>PHP</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <g transform="translate(30.0,18) scale(1.83333)"><path fill="#777BB4" d="M7.01 10.207h-.944l-.515 2.648h.838c.556 0 .97-.105 1.242-.314.272-.21.455-.559.55-1.049.092-.47.05-.802-.124-.995-.175-.193-.523-.29-1.047-.29zM12 5.688C5.373 5.688 0 8.514 0 12s5.373 6.313 12 6.313S24 15.486 24 12c0-3.486-5.373-6.312-12-6.312zm-3.26 7.451c-.261.25-.575.438-.917.551-.336.108-.765.164-1.285.164H5.357l-.327 1.681H3.652l1.23-6.326h2.65c.797 0 1.378.209 1.744.628.366.418.476 1.002.33 1.752a2.836 2.836 0 0 1-.305.847c-.143.255-.33.49-.561.703zm4.024.715l.543-2.799c.063-.318.039-.536-.068-.651-.107-.116-.336-.174-.687-.174H11.46l-.704 3.625H9.388l1.23-6.327h1.367l-.327 1.682h1.218c.767 0 1.295.134 1.586.401s.378.7.263 1.299l-.572 2.944h-1.389zm7.597-2.265a2.782 2.782 0 0 1-.305.847c-.143.255-.33.49-.561.703a2.44 2.44 0 0 1-.917.551c-.336.108-.765.164-1.286.164h-1.18l-.327 1.682h-1.378l1.23-6.326h2.649c.797 0 1.378.209 1.744.628.366.417.477 1.001.331 1.751zM17.766 10.207h-.943l-.516 2.648h.838c.557 0 .971-.105 1.242-.314.272-.21.455-.559.551-1.049.092-.47.049-.802-.125-.995s-.524-.29-1.047-.29z"/></g>
+  <path fill="#16150f" d="M39.73 82.58V74H44.1Q45.03 74 45.65 74.34Q46.27 74.68 46.59 75.3Q46.9 75.91 46.9 76.77Q46.9 77.61 46.58 78.24Q46.25 78.86 45.61 79.21Q44.96 79.55 44.02 79.55H41.45V82.58ZM41.45 78.11H43.89Q44.5 78.11 44.83 77.76Q45.16 77.4 45.16 76.77Q45.16 76.34 45.02 76.05Q44.87 75.76 44.6 75.6Q44.32 75.45 43.89 75.45H41.45ZM48.32 82.58V74H50.04V77.46H53.96V74H55.68V82.58H53.96V78.93H50.04V82.58ZM57.73 82.58V74H62.1Q63.03 74 63.65 74.34Q64.27 74.68 64.59 75.3Q64.9 75.91 64.9 76.77Q64.9 77.61 64.58 78.24Q64.25 78.86 63.61 79.21Q62.96 79.55 62.02 79.55H59.45V82.58ZM59.45 78.11H61.89Q62.5 78.11 62.83 77.76Q63.16 77.4 63.16 76.77Q63.16 76.34 63.02 76.05Q62.87 75.76 62.6 75.6Q62.32 75.45 61.89 75.45H59.45Z"/>
+</svg>

Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/python.svg


+ 6 - 0
assets/languages/r.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="R">
+  <title>R</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <g transform="translate(30.0,18) scale(1.83333)"><path fill="#276DC3" d="M12 2.746c-6.627 0-12 3.599-12 8.037 0 3.897 4.144 7.144 9.64 7.88V16.26c-2.924-.915-4.925-2.755-4.925-4.877 0-3.035 4.084-5.494 9.12-5.494 5.038 0 8.757 1.683 8.757 5.494 0 1.976-.999 3.379-2.662 4.272.09.066.174.128.258.216.169.149.25.363.372.544 2.128-1.45 3.44-3.437 3.44-5.631 0-4.44-5.373-8.038-12-8.038zm-2.111 4.99v13.516l4.093-.002-.002-5.291h1.1c.225 0 .321.066.549.25.272.22.715.982.715.982l2.164 4.063 4.627-.002-2.864-4.826s-.086-.193-.265-.383a2.22 2.22 0 00-.582-.416c-.422-.214-1.149-.434-1.149-.434s3.578-.264 3.578-3.826c0-3.562-3.744-3.63-3.744-3.63zm4.127 2.93l2.478.002s1.149-.062 1.149 1.127c0 1.165-1.149 1.17-1.149 1.17h-2.478zm1.754 6.119c-.494.049-1.012.079-1.54.088v1.807a16.622 16.622 0 002.37-.473l-.471-.891s-.108-.183-.248-.394c-.039-.054-.08-.098-.111-.137z"/></g>
+  <path fill="#16150f" d="M48.44 82.58V74H53.02Q53.98 74 54.6 74.33Q55.23 74.66 55.54 75.27Q55.86 75.87 55.86 76.67Q55.86 77.51 55.48 78.15Q55.1 78.8 54.38 79.13L56.15 82.58H54.26L52.71 79.42H50.16V82.58ZM50.16 78.01H52.85Q53.45 78.01 53.78 77.65Q54.1 77.3 54.1 76.68Q54.1 76.28 53.96 76.01Q53.81 75.73 53.54 75.59Q53.26 75.44 52.85 75.44H50.16Z"/>
+</svg>

+ 6 - 0
assets/languages/ruby.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="Ruby">
+  <title>Ruby</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <g transform="translate(30.0,18) scale(1.83333)"><path fill="#CC342D" d="M20.156.083c3.033.525 3.893 2.598 3.829 4.77L24 4.822 22.635 22.71 4.89 23.926h.016C3.433 23.864.15 23.729 0 19.139l1.645-3 2.819 6.586.503 1.172 2.805-9.144-.03.007.016-.03 9.255 2.956-1.396-5.431-.99-3.9 8.82-.569-.615-.51L16.5 2.114 20.159.073l-.003.01zM0 19.089zM5.13 5.073c3.561-3.533 8.157-5.621 9.922-3.84 1.762 1.777-.105 6.105-3.673 9.636-3.563 3.532-8.103 5.734-9.864 3.957-1.766-1.777.045-6.217 3.612-9.75l.003-.003z"/></g>
+  <path fill="#16150f" d="M37.43 82.58V74H42.02Q42.97 74 43.6 74.33Q44.22 74.66 44.54 75.27Q44.85 75.87 44.85 76.67Q44.85 77.51 44.47 78.15Q44.1 78.8 43.38 79.13L45.14 82.58H43.25L41.7 79.42H39.15V82.58ZM39.15 78.01H41.84Q42.44 78.01 42.77 77.65Q43.1 77.3 43.1 76.68Q43.1 76.28 42.95 76.01Q42.81 75.73 42.53 75.59Q42.25 75.44 41.84 75.44H39.15ZM48.57 82.73Q47.6 82.73 47.01 82.2Q46.42 81.67 46.42 80.43V76H48.02V80.15Q48.02 80.49 48.1 80.71Q48.18 80.94 48.33 81.08Q48.49 81.22 48.7 81.29Q48.92 81.35 49.19 81.35Q49.6 81.35 49.92 81.15Q50.24 80.96 50.43 80.61Q50.62 80.27 50.62 79.83V76H52.23V82.58H50.9L50.77 81.69H50.68Q50.46 82 50.15 82.23Q49.84 82.47 49.44 82.6Q49.04 82.73 48.57 82.73ZM57.55 82.73Q56.91 82.73 56.39 82.47Q55.86 82.22 55.54 81.7H55.45L55.32 82.58H53.99V73.54H55.6V76.75H55.67Q55.87 76.46 56.16 76.25Q56.45 76.05 56.82 75.95Q57.19 75.85 57.63 75.85Q58.38 75.85 58.95 76.22Q59.53 76.58 59.85 77.34Q60.18 78.09 60.18 79.28Q60.18 80.48 59.86 81.24Q59.54 82 58.95 82.37Q58.37 82.73 57.55 82.73ZM57.05 81.37Q57.6 81.37 57.92 81.16Q58.24 80.95 58.38 80.51Q58.52 80.07 58.52 79.41V79.19Q58.52 78.52 58.38 78.08Q58.24 77.64 57.92 77.42Q57.6 77.21 57.05 77.21Q56.67 77.21 56.4 77.35Q56.12 77.48 55.94 77.74Q55.77 77.99 55.68 78.37Q55.6 78.75 55.6 79.22V79.4Q55.6 80.03 55.75 80.47Q55.9 80.91 56.22 81.14Q56.55 81.37 57.05 81.37ZM62.53 84.89Q62.07 84.89 61.77 84.82Q61.48 84.75 61.42 84.73V83.61H62.15Q62.43 83.61 62.69 83.47Q62.95 83.33 63.15 83.09Q63.35 82.86 63.44 82.58L60.88 76H62.57L63.76 79.11Q63.84 79.32 63.93 79.65Q64.03 79.97 64.13 80.31Q64.23 80.65 64.29 80.93H64.35Q64.4 80.74 64.46 80.5Q64.53 80.27 64.6 80.02Q64.66 79.77 64.74 79.53Q64.81 79.3 64.86 79.12L65.84 76H67.46L65.25 82.25Q65.06 82.79 64.82 83.27Q64.59 83.74 64.28 84.11Q63.96 84.47 63.53 84.68Q63.11 84.89 62.53 84.89Z"/>
+</svg>

Diferenças do arquivo suprimidas por serem muito extensas
+ 3 - 0
assets/languages/rust.svg


Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/scala.svg


Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/solidity.svg


Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/svelte.svg


Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/swift.svg


Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/terraform.svg


Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 0
assets/languages/typescript.svg


+ 6 - 0
assets/languages/vbnet.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="VB.NET">
+  <title>VB.NET</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <rect x="30.0" y="18" width="44" height="44" rx="6" fill="#512bd4"/><path fill="#f7f6f2" d="M44.22 45.66 40.12 34.33H42.89L45.27 41.4Q45.33 41.58 45.41 41.85Q45.49 42.12 45.58 42.39Q45.67 42.65 45.73 42.87H45.83Q45.89 42.68 45.97 42.42Q46.05 42.16 46.13 41.9Q46.21 41.63 46.28 41.41L48.64 34.33H51.3L47.2 45.66ZM53.34 45.66V34.33H59.9Q60.79 34.33 61.51 34.68Q62.23 35.03 62.64 35.66Q63.06 36.28 63.06 37.12Q63.06 37.81 62.81 38.34Q62.56 38.87 62.13 39.21Q61.71 39.55 61.19 39.72V39.79Q61.8 39.92 62.3 40.28Q62.79 40.64 63.07 41.21Q63.36 41.78 63.36 42.57Q63.36 43.58 62.9 44.27Q62.43 44.96 61.66 45.31Q60.89 45.66 59.93 45.66ZM55.91 43.6H59.38Q59.97 43.6 60.35 43.26Q60.73 42.92 60.73 42.2Q60.73 41.8 60.57 41.49Q60.41 41.19 60.09 41.02Q59.77 40.85 59.28 40.85H55.91ZM55.91 38.9H59.1Q59.53 38.9 59.83 38.73Q60.12 38.57 60.27 38.28Q60.43 37.98 60.43 37.61Q60.43 36.99 60.08 36.67Q59.73 36.35 59.19 36.35H55.91Z"/>
+  <path fill="#16150f" d="M31.5 82.58 28.38 74H30.25L32.21 79.74Q32.26 79.86 32.32 80.04Q32.37 80.21 32.42 80.38Q32.48 80.54 32.52 80.67H32.58Q32.63 80.55 32.67 80.4Q32.72 80.24 32.78 80.07Q32.83 79.9 32.88 79.75L34.83 74H36.62L33.5 82.58ZM37.85 82.58V74H42.61Q43.3 74 43.84 74.27Q44.38 74.53 44.7 75Q45.01 75.48 45.01 76.12Q45.01 76.61 44.82 77.01Q44.63 77.41 44.32 77.68Q44 77.95 43.6 78.08V78.13Q44.07 78.23 44.44 78.51Q44.82 78.79 45.03 79.22Q45.25 79.65 45.25 80.22Q45.25 81.01 44.89 81.54Q44.54 82.06 43.95 82.32Q43.35 82.58 42.62 82.58ZM39.57 81.14H42.35Q42.84 81.14 43.16 80.87Q43.47 80.59 43.47 80.01Q43.47 79.67 43.34 79.42Q43.21 79.17 42.94 79.03Q42.67 78.89 42.25 78.89H39.57ZM39.57 77.49H42.13Q42.49 77.49 42.74 77.36Q42.99 77.22 43.11 76.99Q43.24 76.76 43.24 76.47Q43.24 75.95 42.95 75.69Q42.67 75.43 42.21 75.43H39.57ZM47 82.58V80.9H48.68V82.58ZM50.84 82.58V74H52.45L56.03 78.89Q56.1 78.97 56.19 79.11Q56.29 79.25 56.38 79.39Q56.46 79.52 56.49 79.61L56.56 79.6Q56.55 79.41 56.55 79.24Q56.55 79.06 56.55 78.89V74H58.2V82.58H56.59L52.98 77.62Q52.87 77.47 52.73 77.25Q52.6 77.03 52.54 76.93L52.48 76.94Q52.48 77.11 52.48 77.28Q52.48 77.46 52.48 77.62V82.58ZM60.25 82.58V74H67V75.45H61.98V77.48H66.44V78.92H61.98V81.13H67.08V82.58ZM70.96 82.58V75.47H68.21V74H75.43V75.47H72.68V82.58Z"/>
+</svg>

+ 6 - 0
assets/languages/vue.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="104" height="104" viewBox="0 0 104 104" role="img" aria-label="Vue">
+  <title>Vue</title>
+  <rect x="0.5" y="0.5" width="103" height="103" rx="8" fill="#f7f6f2" stroke="#d6d3c8"/>
+  <g transform="translate(30.0,18) scale(1.83333)"><path fill="#4FC08D" d="M24,1.61H14.06L12,5.16,9.94,1.61H0L12,22.39ZM12,14.08,5.16,2.23H9.59L12,6.41l2.41-4.18h4.43Z"/></g>
+  <path fill="#16150f" d="M43.6 82.58 40.48 74H42.35L44.31 79.74Q44.36 79.86 44.42 80.04Q44.47 80.21 44.52 80.38Q44.58 80.54 44.62 80.67H44.68Q44.73 80.55 44.77 80.4Q44.82 80.24 44.88 80.07Q44.93 79.9 44.98 79.75L46.93 74H48.72L45.6 82.58ZM51.91 82.73Q50.94 82.73 50.35 82.2Q49.76 81.67 49.76 80.43V76H51.37V80.15Q51.37 80.49 51.45 80.71Q51.53 80.94 51.68 81.08Q51.83 81.22 52.05 81.29Q52.27 81.35 52.54 81.35Q52.94 81.35 53.26 81.15Q53.59 80.96 53.77 80.61Q53.96 80.27 53.96 79.83V76H55.57V82.58H54.24L54.12 81.69H54.03Q53.8 82 53.49 82.23Q53.18 82.47 52.78 82.6Q52.38 82.73 51.91 82.73ZM60.22 82.73Q59.16 82.73 58.44 82.36Q57.73 81.99 57.37 81.23Q57.01 80.47 57.01 79.29Q57.01 78.11 57.37 77.35Q57.73 76.59 58.44 76.22Q59.15 75.85 60.21 75.85Q61.18 75.85 61.84 76.21Q62.5 76.57 62.83 77.31Q63.17 78.05 63.17 79.22V79.67H58.65Q58.68 80.27 58.83 80.68Q58.99 81.09 59.33 81.29Q59.67 81.5 60.23 81.5Q60.52 81.5 60.77 81.42Q61.02 81.35 61.2 81.19Q61.38 81.04 61.49 80.81Q61.59 80.57 61.59 80.27H63.17Q63.17 80.89 62.95 81.36Q62.73 81.82 62.33 82.12Q61.93 82.43 61.4 82.58Q60.86 82.73 60.22 82.73ZM58.68 78.59H61.5Q61.5 78.19 61.41 77.91Q61.32 77.63 61.15 77.44Q60.98 77.26 60.75 77.18Q60.51 77.1 60.22 77.1Q59.74 77.1 59.41 77.26Q59.08 77.42 58.91 77.75Q58.74 78.08 58.68 78.59Z"/>
+</svg>

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff