├── .eslintrc.json
├── .gitignore
├── LICENSE
├── README.md
├── components.json
├── next.config.mjs
├── package.json
├── pnpm-lock.yaml
├── postcss.config.js
├── public
├── favicon.ico
└── pill.png
├── src
├── app
│ ├── 404
│ │ └── page.tsx
│ ├── [user]
│ │ ├── error.tsx
│ │ ├── opengraph-image.tsx
│ │ └── page.tsx
│ ├── component
│ │ ├── animatedbar.tsx
│ │ └── user-stats.tsx
│ ├── fetch-repos.tsx
│ ├── globals.css
│ ├── layout.tsx
│ ├── opengraph-image.png
│ └── page.tsx
├── components
│ ├── logo.tsx
│ └── ui
│ │ ├── button.tsx
│ │ └── input.tsx
├── constants.ts
└── utils
│ ├── colors.json
│ ├── github.ts
│ ├── methods.ts
│ ├── pillgorithm.ts
│ ├── tailwind.ts
│ └── types.ts
├── tailwind.config.ts
└── tsconfig.json
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "next/core-web-vitals"
3 | }
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 | .yarn/install-state.gz
8 |
9 | # testing
10 | /coverage
11 |
12 | # next.js
13 | /.next/
14 | /out/
15 |
16 | # production
17 | /build
18 |
19 | # misc
20 | .DS_Store
21 | *.pem
22 |
23 | # debug
24 | npm-debug.log*
25 | yarn-debug.log*
26 | yarn-error.log*
27 |
28 | # local env files
29 | .env*.local
30 |
31 | # vercel
32 | .vercel
33 |
34 | # typescript
35 | *.tsbuildinfo
36 | next-env.d.ts
37 |
38 | .env
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 Sean Boult
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # gitpilled
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | ## What is this?
16 | Do you want to know what languages you are pilled? Now you can do it with our revolutionary [**pillgorithm™**](https://github.com/Hacksore/gitpilled/blob/main/src/utils/pillgorithm.ts)
17 |
--------------------------------------------------------------------------------
/components.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://ui.shadcn.com/schema.json",
3 | "style": "default",
4 | "rsc": true,
5 | "tsx": true,
6 | "tailwind": {
7 | "config": "tailwind.config.ts",
8 | "css": "src/app/globals.css",
9 | "baseColor": "stone",
10 | "cssVariables": true,
11 | "prefix": ""
12 | },
13 | "aliases": {
14 | "components": "@/components",
15 | "utils": "@/lib/utils"
16 | }
17 | }
--------------------------------------------------------------------------------
/next.config.mjs:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {};
3 |
4 | export default nextConfig;
5 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gitpilled",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start",
9 | "lint": "next lint"
10 | },
11 | "dependencies": {
12 | "@octokit/request": "^9.0.1",
13 | "@radix-ui/react-slot": "^1.0.2",
14 | "@vercel/analytics": "^1.2.2",
15 | "@vercel/og": "^0.6.2",
16 | "class-variance-authority": "^0.7.0",
17 | "clsx": "^2.1.0",
18 | "framer-motion": "^11.0.24",
19 | "lucide-react": "^0.363.0",
20 | "next": "14.1.4",
21 | "octokit": "^3.1.2",
22 | "react": "^18",
23 | "react-dom": "^18",
24 | "react-github-btn": "^1.4.0",
25 | "tailwind-merge": "^2.2.2",
26 | "tailwindcss-animate": "^1.0.7"
27 | },
28 | "devDependencies": {
29 | "@types/node": "^20",
30 | "@types/react": "^18",
31 | "@types/react-dom": "^18",
32 | "autoprefixer": "^10.0.1",
33 | "eslint": "^8",
34 | "eslint-config-next": "14.1.4",
35 | "postcss": "^8",
36 | "tailwindcss": "^3.3.0",
37 | "typescript": "^5"
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hacksore/gitpilled/9f3b6691535d2c088a751c3b93de0bfadd120f03/public/favicon.ico
--------------------------------------------------------------------------------
/public/pill.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hacksore/gitpilled/9f3b6691535d2c088a751c3b93de0bfadd120f03/public/pill.png
--------------------------------------------------------------------------------
/src/app/404/page.tsx:
--------------------------------------------------------------------------------
1 | export default function NotFound() {
2 | return (
3 |
4 | 404 page
5 |
6 | );
7 | }
8 |
--------------------------------------------------------------------------------
/src/app/[user]/error.tsx:
--------------------------------------------------------------------------------
1 | "use client"; // Error components must be Client Components
2 |
3 | import { useEffect } from "react";
4 | import UserStats from "../component/user-stats";
5 | import { useParams } from "next/navigation";
6 |
7 | export default function Error({
8 | error,
9 | }: {
10 | error: Error & { digest?: string };
11 | }) {
12 | const params = useParams<{ user: string }>();
13 |
14 | useEffect(() => {
15 | // Log the error to an error reporting service
16 | console.error(error);
17 | }, [error]);
18 |
19 | return ;
20 | }
21 |
--------------------------------------------------------------------------------
/src/app/[user]/opengraph-image.tsx:
--------------------------------------------------------------------------------
1 | /* eslint-disable jsx-a11y/alt-text */
2 | /* eslint-disable @next/next/no-img-element */
3 | import { ImageResponse } from "next/og";
4 | import colors from "@/utils/colors.json";
5 | import { getUsersTopLanguages } from "@/utils/github";
6 | import { LanguageName } from "@/utils/types";
7 | import { DEFAULT_COLOR } from "@/constants";
8 | import { GitPilledLogo } from "@/components/logo";
9 | import { notFound } from "next/navigation";
10 | // Route segment config
11 | export const runtime = "edge";
12 |
13 | // Image metadata
14 | export const alt = "GitPilled OG Image";
15 | export const size = {
16 | width: 1200,
17 | height: 630,
18 | };
19 |
20 | export const contentType = "image/png";
21 |
22 | // Image generation
23 | export default async function Image(props: {
24 | params: {
25 | user: string;
26 | };
27 | }) {
28 | const { user } = props.params;
29 |
30 | let res;
31 | try {
32 | res = await getUsersTopLanguages(user);
33 | } catch (e) {
34 | // do nothing and eat the error
35 | }
36 |
37 | if (!res) {
38 | const rawImageData = await fetch(
39 | new URL("../opengraph-image.png", import.meta.url),
40 | ).then((res) => res.arrayBuffer());
41 |
42 | const imageData = `data:image/png;base64,${Buffer.from(
43 | rawImageData,
44 | ).toString("base64")}`;
45 | return new ImageResponse(
46 | (
47 |
58 |

59 |
60 | ),
61 | {
62 | width: 1200,
63 | height: 630,
64 | },
65 | );
66 | }
67 |
68 | const { pilledLanguages, username } = res;
69 | const base64UserImage = await fetch(`https://github.com/${user}.png`)
70 | .then(async (r) => r.blob())
71 | .then(
72 | async (blob) =>
73 | `data:${blob.type};base64,${Buffer.from(
74 | await blob.arrayBuffer(),
75 | ).toString("base64")}`,
76 | );
77 |
78 | return new ImageResponse(
79 | (
80 | // ImageResponse JSX element
81 |
93 |
105 |
111 |
112 |
126 |
137 |

149 | @{username}
150 |
151 |
163 |
173 | {pilledLanguages.map((lang, i) => {
174 | const bgColor =
175 | colors[lang.name.toLocaleLowerCase() as LanguageName].color ||
176 | DEFAULT_COLOR;
177 | return (
178 |
189 |
197 | {lang.name}
198 |
199 |
213 |
228 | #{i + 1}
229 |
230 |
231 |
232 | );
233 | })}
234 |
235 |
236 |
237 |
238 | ),
239 | // ImageResponse options
240 | {
241 | ...size,
242 | },
243 | );
244 | }
245 |
--------------------------------------------------------------------------------
/src/app/[user]/page.tsx:
--------------------------------------------------------------------------------
1 | import { Suspense } from "react";
2 | import UserStats from "../component/user-stats";
3 | import FetchRepos from "../fetch-repos";
4 |
5 | export default function Home({
6 | params: { user },
7 | }: {
8 | params: { user: string };
9 | }) {
10 | return (
11 | }>
12 |
13 |
14 | );
15 | }
16 |
--------------------------------------------------------------------------------
/src/app/component/animatedbar.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 | import { DEFAULT_COLOR } from "@/constants";
3 | import { cn } from "@/utils/tailwind";
4 | import { GithubData } from "@/utils/github";
5 | import { motion } from "framer-motion";
6 | import colors from "@/utils/colors.json";
7 | import { LanguageName } from "@/utils/types";
8 |
9 | type AnimatedBarProps = {
10 | username?: string;
11 | rank: number;
12 | loading?: boolean;
13 | language?: GithubData["pilledLanguages"][number];
14 | };
15 |
16 | export function AnimatedBar({
17 | language,
18 | username,
19 | rank,
20 | loading,
21 | }: AnimatedBarProps) {
22 | const backgroundColor =
23 | (!loading &&
24 | language &&
25 | colors[language.name.toLocaleLowerCase() as LanguageName]?.color) ||
26 | DEFAULT_COLOR;
27 | return (
28 |
49 | {!loading && username && (
50 |
51 | #{rank}
52 |
53 | )}
54 |
55 | );
56 | }
57 |
--------------------------------------------------------------------------------
/src/app/component/user-stats.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 | /* eslint-disable @next/next/no-img-element */
3 | import { GitPilledLogo } from "@/components/logo";
4 | import { AnimatedBar } from "./animatedbar";
5 | import { GithubData } from "@/utils/github";
6 | import { PilledLanguage } from "@/utils/pillgorithm";
7 |
8 | const MOCK_NUMBERS = Array.from({ length: 5 }, (_, _i) => {
9 | const i = _i + 1;
10 | const mockData: PilledLanguage = {
11 | name: "Loading...",
12 | percentage: (i * i) / 25,
13 | realPercentage: 0,
14 | score: 0,
15 | };
16 |
17 | return mockData;
18 | });
19 |
20 | export default function UserStats({
21 | githubData,
22 | loading,
23 | user,
24 | }: {
25 | githubData?: GithubData;
26 | loading?: boolean;
27 | user: string;
28 | }) {
29 | const shareData = new URLSearchParams();
30 | shareData.append(
31 | "url",
32 | `https://gitpilled.vercel.app/${githubData?.username || ""}`,
33 | );
34 | shareData.append(
35 | "text",
36 | `Checkout what ${githubData?.username || "everybody"} is pilled on 💊`,
37 | );
38 |
39 | return (
40 |
41 |
49 |
50 |
51 |
52 | {githubData !== undefined ? (
53 |
54 |
59 |
60 | ) : (
61 |
62 | )}
63 |
64 | {loading ? (
65 | "Loading..."
66 | ) : githubData === undefined ? (
67 | `User ${user} not found`
68 | ) : (
69 | <>
70 | This is what{" "}
71 |
72 |
76 | @{githubData.username}
77 |
78 | {" "}
79 | is pilled on
80 | >
81 | )}
82 |
83 |
92 | Share on{" "}
93 |
103 |
104 |
105 | {(loading || githubData === undefined
106 | ? MOCK_NUMBERS
107 | : githubData.pilledLanguages
108 | ).map((lang, i) => {
109 | return (
110 |
114 |
115 | {loading || githubData !== undefined ? lang.name : null}
116 |
117 |
123 |
124 | );
125 | })}
126 |
127 |
128 |
129 | );
130 | }
131 |
--------------------------------------------------------------------------------
/src/app/fetch-repos.tsx:
--------------------------------------------------------------------------------
1 | import { getUsersTopLanguages } from "@/utils/github";
2 | import UserStats from "./component/user-stats";
3 |
4 | export default async function FetchRepos({ user }: { user: string }) {
5 | const githubData = await getUsersTopLanguages(user);
6 |
7 | return ;
8 | }
9 |
--------------------------------------------------------------------------------
/src/app/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | html, body {
6 | background: #000;
7 | }
8 |
9 | @layer base {
10 | :root {
11 | --background: 0 0% 100%;
12 | --foreground: 20 14.3% 4.1%;
13 |
14 | --card: 0 0% 100%;
15 | --card-foreground: 20 14.3% 4.1%;
16 |
17 | --popover: 0 0% 100%;
18 | --popover-foreground: 20 14.3% 4.1%;
19 |
20 | --primary: 24 9.8% 10%;
21 | --primary-foreground: 60 9.1% 97.8%;
22 |
23 | --secondary: 60 4.8% 95.9%;
24 | --secondary-foreground: 24 9.8% 10%;
25 |
26 | --muted: 60 4.8% 95.9%;
27 | --muted-foreground: 25 5.3% 44.7%;
28 |
29 | --accent: 60 4.8% 95.9%;
30 | --accent-foreground: 24 9.8% 10%;
31 |
32 | --destructive: 0 84.2% 60.2%;
33 | --destructive-foreground: 60 9.1% 97.8%;
34 |
35 | --border: 20 5.9% 90%;
36 | --input: 20 5.9% 90%;
37 | --ring: 20 14.3% 4.1%;
38 |
39 | --radius: 0.5rem;
40 | }
41 |
42 | .dark {
43 | --background: 20 14.3% 4.1%;
44 | --foreground: 60 9.1% 97.8%;
45 |
46 | --card: 20 14.3% 4.1%;
47 | --card-foreground: 60 9.1% 97.8%;
48 |
49 | --popover: 20 14.3% 4.1%;
50 | --popover-foreground: 60 9.1% 97.8%;
51 |
52 | --primary: 60 9.1% 97.8%;
53 | --primary-foreground: 24 9.8% 10%;
54 |
55 | --secondary: 12 6.5% 15.1%;
56 | --secondary-foreground: 60 9.1% 97.8%;
57 |
58 | --muted: 12 6.5% 15.1%;
59 | --muted-foreground: 24 5.4% 63.9%;
60 |
61 | --accent: 12 6.5% 15.1%;
62 | --accent-foreground: 60 9.1% 97.8%;
63 |
64 | --destructive: 0 62.8% 30.6%;
65 | --destructive-foreground: 60 9.1% 97.8%;
66 |
67 | --border: 12 6.5% 15.1%;
68 | --input: 12 6.5% 15.1%;
69 | --ring: 24 5.7% 82.9%;
70 | }
71 | }
72 |
73 | @layer base {
74 | * {
75 | @apply border-border;
76 | }
77 | body {
78 | @apply bg-background text-foreground;
79 | }
80 | }
81 |
82 |
83 | .animated-grid {
84 | animation: grid 10s infinite linear;
85 | }
86 |
87 | @keyframes grid {
88 | 0% {
89 | background-position: 0 0;
90 | }
91 | 100% {
92 | background-position: 0 100%;
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/src/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import type { Metadata } from "next";
2 | import { Inter } from "next/font/google";
3 | import "./globals.css";
4 | import { Analytics } from "@vercel/analytics/react";
5 |
6 | const inter = Inter({ subsets: ["latin"] });
7 | const META_INFO = {
8 | title: "gitpilled",
9 | description: "What language are you pilled in?",
10 | };
11 |
12 | export const metadata: Metadata = {
13 | title: META_INFO.title,
14 | description: META_INFO.description,
15 | metadataBase: new URL(
16 | process.env.NODE_ENV === "development"
17 | ? "http://localhost:3000"
18 | : "https://gitpilled.vercel.app",
19 | ),
20 | };
21 |
22 | export default function RootLayout({
23 | children,
24 | }: Readonly<{
25 | children: React.ReactNode;
26 | }>) {
27 | return (
28 |
29 |
30 | {children}
31 |
32 | );
33 | }
34 |
--------------------------------------------------------------------------------
/src/app/opengraph-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Hacksore/gitpilled/9f3b6691535d2c088a751c3b93de0bfadd120f03/src/app/opengraph-image.png
--------------------------------------------------------------------------------
/src/app/page.tsx:
--------------------------------------------------------------------------------
1 | /* eslint-disable @next/next/no-img-element */
2 | "use client";
3 |
4 | import { useState } from "react";
5 | import { redirect } from "next/navigation";
6 | import { Input } from "@/components/ui/input";
7 | import { Button } from "@/components/ui/button";
8 | import { GitPilledLogo } from "@/components/logo";
9 | import GitHubButton from "react-github-btn";
10 |
11 | const redirectToUserProfile = (username: string) => {
12 | return redirect("/" + username);
13 | };
14 |
15 | export default function Home() {
16 | const [user, setUser] = useState("");
17 | return (
18 |
19 |
22 |
30 |
31 |
32 |
40 | Star
41 |
42 |
43 |

44 |
45 |
46 | What language are you pilled in?
47 |
48 |
64 |
65 |
85 |
86 |
87 | );
88 | }
89 |
--------------------------------------------------------------------------------
/src/components/logo.tsx:
--------------------------------------------------------------------------------
1 | export function GitPilledLogo(props: React.SVGProps) {
2 | return (
3 |
48 | );
49 | }
50 |
--------------------------------------------------------------------------------
/src/components/ui/button.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import { Slot } from "@radix-ui/react-slot";
3 | import { cva, type VariantProps } from "class-variance-authority";
4 |
5 | import { cn } from "@/utils/tailwind";
6 |
7 | const buttonVariants = cva(
8 | "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
9 | {
10 | variants: {
11 | variant: {
12 | default: "bg-primary text-primary-foreground hover:bg-primary/90",
13 | destructive:
14 | "bg-destructive text-destructive-foreground hover:bg-destructive/90",
15 | outline:
16 | "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
17 | secondary:
18 | "bg-secondary text-secondary-foreground hover:bg-secondary/80",
19 | ghost: "hover:bg-accent hover:text-accent-foreground",
20 | link: "text-primary underline-offset-4 hover:underline",
21 | },
22 | size: {
23 | default: "h-10 px-4 py-2",
24 | sm: "h-9 rounded-md px-3",
25 | lg: "h-11 rounded-md px-8",
26 | icon: "h-10 w-10",
27 | },
28 | },
29 | defaultVariants: {
30 | variant: "default",
31 | size: "default",
32 | },
33 | },
34 | );
35 |
36 | export interface ButtonProps
37 | extends React.ButtonHTMLAttributes,
38 | VariantProps {
39 | asChild?: boolean;
40 | }
41 |
42 | const Button = React.forwardRef(
43 | ({ className, variant, size, asChild = false, ...props }, ref) => {
44 | const Comp = asChild ? Slot : "button";
45 | return (
46 |
51 | );
52 | },
53 | );
54 | Button.displayName = "Button";
55 |
56 | export { Button, buttonVariants };
57 |
--------------------------------------------------------------------------------
/src/components/ui/input.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 |
3 | import { cn } from "@/utils/tailwind";
4 |
5 | export interface InputProps
6 | extends React.InputHTMLAttributes { }
7 |
8 | const Input = React.forwardRef(
9 | ({ className, type, ...props }, ref) => {
10 | return (
11 |
20 | );
21 | },
22 | );
23 | Input.displayName = "Input";
24 |
25 | export { Input };
26 |
--------------------------------------------------------------------------------
/src/constants.ts:
--------------------------------------------------------------------------------
1 | export const DEFAULT_COLOR = "#c0c0c0";
2 |
--------------------------------------------------------------------------------
/src/utils/colors.json:
--------------------------------------------------------------------------------
1 | {
2 | "1c enterprise": {
3 | "color": "#814CCC",
4 | "url": "https://github.com/trending?l=1C-Enterprise"
5 | },
6 | "2-dimensional array": {
7 | "color": "#38761D",
8 | "url": "https://github.com/trending?l=2-Dimensional-Array"
9 | },
10 | "4d": {
11 | "color": "#004289",
12 | "url": "https://github.com/trending?l=4D"
13 | },
14 | "abap": {
15 | "color": "#E8274B",
16 | "url": "https://github.com/trending?l=ABAP"
17 | },
18 | "abap cds": {
19 | "color": "#555e25",
20 | "url": "https://github.com/trending?l=ABAP-CDS"
21 | },
22 | "actionscript": {
23 | "color": "#882B0F",
24 | "url": "https://github.com/trending?l=ActionScript"
25 | },
26 | "ada": {
27 | "color": "#02f88c",
28 | "url": "https://github.com/trending?l=Ada"
29 | },
30 | "adblock filter list": {
31 | "color": "#800000",
32 | "url": "https://github.com/trending?l=Adblock-Filter-List"
33 | },
34 | "adobe font metrics": {
35 | "color": "#fa0f00",
36 | "url": "https://github.com/trending?l=Adobe-Font-Metrics"
37 | },
38 | "agda": {
39 | "color": "#315665",
40 | "url": "https://github.com/trending?l=Agda"
41 | },
42 | "ags script": {
43 | "color": "#B9D9FF",
44 | "url": "https://github.com/trending?l=AGS-Script"
45 | },
46 | "aidl": {
47 | "color": "#34EB6B",
48 | "url": "https://github.com/trending?l=AIDL"
49 | },
50 | "al": {
51 | "color": "#3AA2B5",
52 | "url": "https://github.com/trending?l=AL"
53 | },
54 | "alloy": {
55 | "color": "#64C800",
56 | "url": "https://github.com/trending?l=Alloy"
57 | },
58 | "alpine abuild": {
59 | "color": "#0D597F",
60 | "url": "https://github.com/trending?l=Alpine-Abuild"
61 | },
62 | "altium designer": {
63 | "color": "#A89663",
64 | "url": "https://github.com/trending?l=Altium-Designer"
65 | },
66 | "ampl": {
67 | "color": "#E6EFBB",
68 | "url": "https://github.com/trending?l=AMPL"
69 | },
70 | "angelscript": {
71 | "color": "#C7D7DC",
72 | "url": "https://github.com/trending?l=AngelScript"
73 | },
74 | "ant build system": {
75 | "color": "#A9157E",
76 | "url": "https://github.com/trending?l=Ant-Build-System"
77 | },
78 | "antlers": {
79 | "color": "#ff269e",
80 | "url": "https://github.com/trending?l=Antlers"
81 | },
82 | "antlr": {
83 | "color": "#9DC3FF",
84 | "url": "https://github.com/trending?l=ANTLR"
85 | },
86 | "apacheconf": {
87 | "color": "#d12127",
88 | "url": "https://github.com/trending?l=ApacheConf"
89 | },
90 | "apex": {
91 | "color": "#1797c0",
92 | "url": "https://github.com/trending?l=Apex"
93 | },
94 | "api blueprint": {
95 | "color": "#2ACCA8",
96 | "url": "https://github.com/trending?l=API-Blueprint"
97 | },
98 | "apl": {
99 | "color": "#5A8164",
100 | "url": "https://github.com/trending?l=APL"
101 | },
102 | "apollo guidance computer": {
103 | "color": "#0B3D91",
104 | "url": "https://github.com/trending?l=Apollo-Guidance-Computer"
105 | },
106 | "applescript": {
107 | "color": "#101F1F",
108 | "url": "https://github.com/trending?l=AppleScript"
109 | },
110 | "arc": {
111 | "color": "#aa2afe",
112 | "url": "https://github.com/trending?l=Arc"
113 | },
114 | "asciidoc": {
115 | "color": "#73a0c5",
116 | "url": "https://github.com/trending?l=AsciiDoc"
117 | },
118 | "asl": {
119 | "color": null,
120 | "url": "https://github.com/trending?l=ASL"
121 | },
122 | "asp.net": {
123 | "color": "#9400ff",
124 | "url": "https://github.com/trending?l=ASP.NET"
125 | },
126 | "aspectj": {
127 | "color": "#a957b0",
128 | "url": "https://github.com/trending?l=AspectJ"
129 | },
130 | "assembly": {
131 | "color": "#6E4C13",
132 | "url": "https://github.com/trending?l=Assembly"
133 | },
134 | "astro": {
135 | "color": "#ff5a03",
136 | "url": "https://github.com/trending?l=Astro"
137 | },
138 | "asymptote": {
139 | "color": "#ff0000",
140 | "url": "https://github.com/trending?l=Asymptote"
141 | },
142 | "ats": {
143 | "color": "#1ac620",
144 | "url": "https://github.com/trending?l=ATS"
145 | },
146 | "augeas": {
147 | "color": "#9CC134",
148 | "url": "https://github.com/trending?l=Augeas"
149 | },
150 | "autohotkey": {
151 | "color": "#6594b9",
152 | "url": "https://github.com/trending?l=AutoHotkey"
153 | },
154 | "autoit": {
155 | "color": "#1C3552",
156 | "url": "https://github.com/trending?l=AutoIt"
157 | },
158 | "avro idl": {
159 | "color": "#0040FF",
160 | "url": "https://github.com/trending?l=Avro-IDL"
161 | },
162 | "awk": {
163 | "color": "#c30e9b",
164 | "url": "https://github.com/trending?l=Awk"
165 | },
166 | "ballerina": {
167 | "color": "#FF5000",
168 | "url": "https://github.com/trending?l=Ballerina"
169 | },
170 | "basic": {
171 | "color": "#ff0000",
172 | "url": "https://github.com/trending?l=BASIC"
173 | },
174 | "batchfile": {
175 | "color": "#C1F12E",
176 | "url": "https://github.com/trending?l=Batchfile"
177 | },
178 | "beef": {
179 | "color": "#a52f4e",
180 | "url": "https://github.com/trending?l=Beef"
181 | },
182 | "befunge": {
183 | "color": null,
184 | "url": "https://github.com/trending?l=Befunge"
185 | },
186 | "berry": {
187 | "color": "#15A13C",
188 | "url": "https://github.com/trending?l=Berry"
189 | },
190 | "bibtex": {
191 | "color": "#778899",
192 | "url": "https://github.com/trending?l=BibTeX"
193 | },
194 | "bicep": {
195 | "color": "#519aba",
196 | "url": "https://github.com/trending?l=Bicep"
197 | },
198 | "bikeshed": {
199 | "color": "#5562ac",
200 | "url": "https://github.com/trending?l=Bikeshed"
201 | },
202 | "bison": {
203 | "color": "#6A463F",
204 | "url": "https://github.com/trending?l=Bison"
205 | },
206 | "bitbake": {
207 | "color": "#00bce4",
208 | "url": "https://github.com/trending?l=BitBake"
209 | },
210 | "blade": {
211 | "color": "#f7523f",
212 | "url": "https://github.com/trending?l=Blade"
213 | },
214 | "blitzbasic": {
215 | "color": "#00FFAE",
216 | "url": "https://github.com/trending?l=BlitzBasic"
217 | },
218 | "blitzmax": {
219 | "color": "#cd6400",
220 | "url": "https://github.com/trending?l=BlitzMax"
221 | },
222 | "bluespec": {
223 | "color": "#12223c",
224 | "url": "https://github.com/trending?l=Bluespec"
225 | },
226 | "bluespec bh": {
227 | "color": "#12223c",
228 | "url": "https://github.com/trending?l=Bluespec-BH"
229 | },
230 | "boo": {
231 | "color": "#d4bec1",
232 | "url": "https://github.com/trending?l=Boo"
233 | },
234 | "boogie": {
235 | "color": "#c80fa0",
236 | "url": "https://github.com/trending?l=Boogie"
237 | },
238 | "brainfuck": {
239 | "color": "#2F2530",
240 | "url": "https://github.com/trending?l=Brainfuck"
241 | },
242 | "brighterscript": {
243 | "color": "#66AABB",
244 | "url": "https://github.com/trending?l=BrighterScript"
245 | },
246 | "brightscript": {
247 | "color": "#662D91",
248 | "url": "https://github.com/trending?l=Brightscript"
249 | },
250 | "browserslist": {
251 | "color": "#ffd539",
252 | "url": "https://github.com/trending?l=Browserslist"
253 | },
254 | "c": {
255 | "color": "#555555",
256 | "url": "https://github.com/trending?l=C"
257 | },
258 | "c#": {
259 | "color": "#178600",
260 | "url": "https://github.com/trending?l=Csharp"
261 | },
262 | "c++": {
263 | "color": "#f34b7d",
264 | "url": "https://github.com/trending?l=C++"
265 | },
266 | "c2hs haskell": {
267 | "color": null,
268 | "url": "https://github.com/trending?l=C2hs-Haskell"
269 | },
270 | "cabal config": {
271 | "color": "#483465",
272 | "url": "https://github.com/trending?l=Cabal-Config"
273 | },
274 | "cadence": {
275 | "color": "#00ef8b",
276 | "url": "https://github.com/trending?l=Cadence"
277 | },
278 | "cairo": {
279 | "color": "#ff4a48",
280 | "url": "https://github.com/trending?l=Cairo"
281 | },
282 | "cameligo": {
283 | "color": "#3be133",
284 | "url": "https://github.com/trending?l=CameLIGO"
285 | },
286 | "cap cds": {
287 | "color": "#0092d1",
288 | "url": "https://github.com/trending?l=CAP-CDS"
289 | },
290 | "cap'n proto": {
291 | "color": "#c42727",
292 | "url": "https://github.com/trending?l=Cap'n-Proto"
293 | },
294 | "cartocss": {
295 | "color": null,
296 | "url": "https://github.com/trending?l=CartoCSS"
297 | },
298 | "ceylon": {
299 | "color": "#dfa535",
300 | "url": "https://github.com/trending?l=Ceylon"
301 | },
302 | "chapel": {
303 | "color": "#8dc63f",
304 | "url": "https://github.com/trending?l=Chapel"
305 | },
306 | "charity": {
307 | "color": null,
308 | "url": "https://github.com/trending?l=Charity"
309 | },
310 | "chuck": {
311 | "color": "#3f8000",
312 | "url": "https://github.com/trending?l=ChucK"
313 | },
314 | "circom": {
315 | "color": "#707575",
316 | "url": "https://github.com/trending?l=Circom"
317 | },
318 | "cirru": {
319 | "color": "#ccccff",
320 | "url": "https://github.com/trending?l=Cirru"
321 | },
322 | "clarion": {
323 | "color": "#db901e",
324 | "url": "https://github.com/trending?l=Clarion"
325 | },
326 | "clarity": {
327 | "color": "#5546ff",
328 | "url": "https://github.com/trending?l=Clarity"
329 | },
330 | "classic asp": {
331 | "color": "#6a40fd",
332 | "url": "https://github.com/trending?l=Classic-ASP"
333 | },
334 | "clean": {
335 | "color": "#3F85AF",
336 | "url": "https://github.com/trending?l=Clean"
337 | },
338 | "click": {
339 | "color": "#E4E6F3",
340 | "url": "https://github.com/trending?l=Click"
341 | },
342 | "clips": {
343 | "color": "#00A300",
344 | "url": "https://github.com/trending?l=CLIPS"
345 | },
346 | "clojure": {
347 | "color": "#db5855",
348 | "url": "https://github.com/trending?l=Clojure"
349 | },
350 | "closure templates": {
351 | "color": "#0d948f",
352 | "url": "https://github.com/trending?l=Closure-Templates"
353 | },
354 | "cloud firestore security rules": {
355 | "color": "#FFA000",
356 | "url": "https://github.com/trending?l=Cloud-Firestore-Security-Rules"
357 | },
358 | "cmake": {
359 | "color": "#DA3434",
360 | "url": "https://github.com/trending?l=CMake"
361 | },
362 | "cobol": {
363 | "color": null,
364 | "url": "https://github.com/trending?l=COBOL"
365 | },
366 | "codeql": {
367 | "color": "#140f46",
368 | "url": "https://github.com/trending?l=CodeQL"
369 | },
370 | "coffeescript": {
371 | "color": "#244776",
372 | "url": "https://github.com/trending?l=CoffeeScript"
373 | },
374 | "coldfusion": {
375 | "color": "#ed2cd6",
376 | "url": "https://github.com/trending?l=ColdFusion"
377 | },
378 | "coldfusion cfc": {
379 | "color": "#ed2cd6",
380 | "url": "https://github.com/trending?l=ColdFusion-CFC"
381 | },
382 | "collada": {
383 | "color": "#F1A42B",
384 | "url": "https://github.com/trending?l=COLLADA"
385 | },
386 | "common lisp": {
387 | "color": "#3fb68b",
388 | "url": "https://github.com/trending?l=Common-Lisp"
389 | },
390 | "common workflow language": {
391 | "color": "#B5314C",
392 | "url": "https://github.com/trending?l=Common-Workflow-Language"
393 | },
394 | "component pascal": {
395 | "color": "#B0CE4E",
396 | "url": "https://github.com/trending?l=Component-Pascal"
397 | },
398 | "cool": {
399 | "color": null,
400 | "url": "https://github.com/trending?l=Cool"
401 | },
402 | "coq": {
403 | "color": "#d0b68c",
404 | "url": "https://github.com/trending?l=Coq"
405 | },
406 | "crystal": {
407 | "color": "#000100",
408 | "url": "https://github.com/trending?l=Crystal"
409 | },
410 | "cson": {
411 | "color": "#244776",
412 | "url": "https://github.com/trending?l=CSON"
413 | },
414 | "csound": {
415 | "color": "#1a1a1a",
416 | "url": "https://github.com/trending?l=Csound"
417 | },
418 | "csound document": {
419 | "color": "#1a1a1a",
420 | "url": "https://github.com/trending?l=Csound-Document"
421 | },
422 | "csound score": {
423 | "color": "#1a1a1a",
424 | "url": "https://github.com/trending?l=Csound-Score"
425 | },
426 | "css": {
427 | "color": "#563d7c",
428 | "url": "https://github.com/trending?l=CSS"
429 | },
430 | "csv": {
431 | "color": "#237346",
432 | "url": "https://github.com/trending?l=CSV"
433 | },
434 | "cuda": {
435 | "color": "#3A4E3A",
436 | "url": "https://github.com/trending?l=Cuda"
437 | },
438 | "cue": {
439 | "color": "#5886E1",
440 | "url": "https://github.com/trending?l=CUE"
441 | },
442 | "curry": {
443 | "color": "#531242",
444 | "url": "https://github.com/trending?l=Curry"
445 | },
446 | "cweb": {
447 | "color": "#00007a",
448 | "url": "https://github.com/trending?l=CWeb"
449 | },
450 | "cycript": {
451 | "color": null,
452 | "url": "https://github.com/trending?l=Cycript"
453 | },
454 | "cypher": {
455 | "color": "#34c0eb",
456 | "url": "https://github.com/trending?l=Cypher"
457 | },
458 | "cython": {
459 | "color": "#fedf5b",
460 | "url": "https://github.com/trending?l=Cython"
461 | },
462 | "d": {
463 | "color": "#ba595e",
464 | "url": "https://github.com/trending?l=D"
465 | },
466 | "d2": {
467 | "color": "#526ee8",
468 | "url": "https://github.com/trending?l=D2"
469 | },
470 | "dafny": {
471 | "color": "#FFEC25",
472 | "url": "https://github.com/trending?l=Dafny"
473 | },
474 | "darcs patch": {
475 | "color": "#8eff23",
476 | "url": "https://github.com/trending?l=Darcs-Patch"
477 | },
478 | "dart": {
479 | "color": "#00B4AB",
480 | "url": "https://github.com/trending?l=Dart"
481 | },
482 | "dataweave": {
483 | "color": "#003a52",
484 | "url": "https://github.com/trending?l=DataWeave"
485 | },
486 | "debian package control file": {
487 | "color": "#D70751",
488 | "url": "https://github.com/trending?l=Debian-Package-Control-File"
489 | },
490 | "denizenscript": {
491 | "color": "#FBEE96",
492 | "url": "https://github.com/trending?l=DenizenScript"
493 | },
494 | "dhall": {
495 | "color": "#dfafff",
496 | "url": "https://github.com/trending?l=Dhall"
497 | },
498 | "digital command language": {
499 | "color": null,
500 | "url": "https://github.com/trending?l=DIGITAL-Command-Language"
501 | },
502 | "directx 3d file": {
503 | "color": "#aace60",
504 | "url": "https://github.com/trending?l=DirectX-3D-File"
505 | },
506 | "dm": {
507 | "color": "#447265",
508 | "url": "https://github.com/trending?l=DM"
509 | },
510 | "dockerfile": {
511 | "color": "#384d54",
512 | "url": "https://github.com/trending?l=Dockerfile"
513 | },
514 | "dogescript": {
515 | "color": "#cca760",
516 | "url": "https://github.com/trending?l=Dogescript"
517 | },
518 | "dotenv": {
519 | "color": "#e5d559",
520 | "url": "https://github.com/trending?l=Dotenv"
521 | },
522 | "dtrace": {
523 | "color": null,
524 | "url": "https://github.com/trending?l=DTrace"
525 | },
526 | "dylan": {
527 | "color": "#6c616e",
528 | "url": "https://github.com/trending?l=Dylan"
529 | },
530 | "e": {
531 | "color": "#ccce35",
532 | "url": "https://github.com/trending?l=E"
533 | },
534 | "earthly": {
535 | "color": "#2af0ff",
536 | "url": "https://github.com/trending?l=Earthly"
537 | },
538 | "easybuild": {
539 | "color": "#069406",
540 | "url": "https://github.com/trending?l=Easybuild"
541 | },
542 | "ec": {
543 | "color": "#913960",
544 | "url": "https://github.com/trending?l=eC"
545 | },
546 | "ecere projects": {
547 | "color": "#913960",
548 | "url": "https://github.com/trending?l=Ecere-Projects"
549 | },
550 | "ecl": {
551 | "color": "#8a1267",
552 | "url": "https://github.com/trending?l=ECL"
553 | },
554 | "eclipse": {
555 | "color": "#001d9d",
556 | "url": "https://github.com/trending?l=ECLiPSe"
557 | },
558 | "ecmarkup": {
559 | "color": "#eb8131",
560 | "url": "https://github.com/trending?l=Ecmarkup"
561 | },
562 | "edge": {
563 | "color": "#0dffe0",
564 | "url": "https://github.com/trending?l=Edge"
565 | },
566 | "edgeql": {
567 | "color": "#31A7FF",
568 | "url": "https://github.com/trending?l=EdgeQL"
569 | },
570 | "editorconfig": {
571 | "color": "#fff1f2",
572 | "url": "https://github.com/trending?l=EditorConfig"
573 | },
574 | "eiffel": {
575 | "color": "#4d6977",
576 | "url": "https://github.com/trending?l=Eiffel"
577 | },
578 | "ejs": {
579 | "color": "#a91e50",
580 | "url": "https://github.com/trending?l=EJS"
581 | },
582 | "elixir": {
583 | "color": "#6e4a7e",
584 | "url": "https://github.com/trending?l=Elixir"
585 | },
586 | "elm": {
587 | "color": "#60B5CC",
588 | "url": "https://github.com/trending?l=Elm"
589 | },
590 | "elvish": {
591 | "color": "#55BB55",
592 | "url": "https://github.com/trending?l=Elvish"
593 | },
594 | "elvish transcript": {
595 | "color": "#55BB55",
596 | "url": "https://github.com/trending?l=Elvish-Transcript"
597 | },
598 | "emacs lisp": {
599 | "color": "#c065db",
600 | "url": "https://github.com/trending?l=Emacs-Lisp"
601 | },
602 | "emberscript": {
603 | "color": "#FFF4F3",
604 | "url": "https://github.com/trending?l=EmberScript"
605 | },
606 | "eq": {
607 | "color": "#a78649",
608 | "url": "https://github.com/trending?l=EQ"
609 | },
610 | "erlang": {
611 | "color": "#B83998",
612 | "url": "https://github.com/trending?l=Erlang"
613 | },
614 | "euphoria": {
615 | "color": "#FF790B",
616 | "url": "https://github.com/trending?l=Euphoria"
617 | },
618 | "f#": {
619 | "color": "#b845fc",
620 | "url": "https://github.com/trending?l=Fsharp"
621 | },
622 | "f*": {
623 | "color": "#572e30",
624 | "url": "https://github.com/trending?l=F*"
625 | },
626 | "factor": {
627 | "color": "#636746",
628 | "url": "https://github.com/trending?l=Factor"
629 | },
630 | "fancy": {
631 | "color": "#7b9db4",
632 | "url": "https://github.com/trending?l=Fancy"
633 | },
634 | "fantom": {
635 | "color": "#14253c",
636 | "url": "https://github.com/trending?l=Fantom"
637 | },
638 | "faust": {
639 | "color": "#c37240",
640 | "url": "https://github.com/trending?l=Faust"
641 | },
642 | "fennel": {
643 | "color": "#fff3d7",
644 | "url": "https://github.com/trending?l=Fennel"
645 | },
646 | "figlet font": {
647 | "color": "#FFDDBB",
648 | "url": "https://github.com/trending?l=FIGlet-Font"
649 | },
650 | "filebench wml": {
651 | "color": "#F6B900",
652 | "url": "https://github.com/trending?l=Filebench-WML"
653 | },
654 | "filterscript": {
655 | "color": null,
656 | "url": "https://github.com/trending?l=Filterscript"
657 | },
658 | "fish": {
659 | "color": "#4aae47",
660 | "url": "https://github.com/trending?l=fish"
661 | },
662 | "fluent": {
663 | "color": "#ffcc33",
664 | "url": "https://github.com/trending?l=Fluent"
665 | },
666 | "flux": {
667 | "color": "#88ccff",
668 | "url": "https://github.com/trending?l=FLUX"
669 | },
670 | "forth": {
671 | "color": "#341708",
672 | "url": "https://github.com/trending?l=Forth"
673 | },
674 | "fortran": {
675 | "color": "#4d41b1",
676 | "url": "https://github.com/trending?l=Fortran"
677 | },
678 | "fortran free form": {
679 | "color": "#4d41b1",
680 | "url": "https://github.com/trending?l=Fortran-Free-Form"
681 | },
682 | "freebasic": {
683 | "color": "#141AC9",
684 | "url": "https://github.com/trending?l=FreeBasic"
685 | },
686 | "freemarker": {
687 | "color": "#0050b2",
688 | "url": "https://github.com/trending?l=FreeMarker"
689 | },
690 | "frege": {
691 | "color": "#00cafe",
692 | "url": "https://github.com/trending?l=Frege"
693 | },
694 | "futhark": {
695 | "color": "#5f021f",
696 | "url": "https://github.com/trending?l=Futhark"
697 | },
698 | "g-code": {
699 | "color": "#D08CF2",
700 | "url": "https://github.com/trending?l=G-code"
701 | },
702 | "game maker language": {
703 | "color": "#71b417",
704 | "url": "https://github.com/trending?l=Game-Maker-Language"
705 | },
706 | "gaml": {
707 | "color": "#FFC766",
708 | "url": "https://github.com/trending?l=GAML"
709 | },
710 | "gams": {
711 | "color": "#f49a22",
712 | "url": "https://github.com/trending?l=GAMS"
713 | },
714 | "gap": {
715 | "color": "#0000cc",
716 | "url": "https://github.com/trending?l=GAP"
717 | },
718 | "gcc machine description": {
719 | "color": "#FFCFAB",
720 | "url": "https://github.com/trending?l=GCC-Machine-Description"
721 | },
722 | "gdb": {
723 | "color": null,
724 | "url": "https://github.com/trending?l=GDB"
725 | },
726 | "gdscript": {
727 | "color": "#355570",
728 | "url": "https://github.com/trending?l=GDScript"
729 | },
730 | "gedcom": {
731 | "color": "#003058",
732 | "url": "https://github.com/trending?l=GEDCOM"
733 | },
734 | "gemfile.lock": {
735 | "color": "#701516",
736 | "url": "https://github.com/trending?l=Gemfile.lock"
737 | },
738 | "gemini": {
739 | "color": "#ff6900",
740 | "url": "https://github.com/trending?l=Gemini"
741 | },
742 | "genero 4gl": {
743 | "color": "#63408e",
744 | "url": "https://github.com/trending?l=Genero-4gl"
745 | },
746 | "genero per": {
747 | "color": "#d8df39",
748 | "url": "https://github.com/trending?l=Genero-per"
749 | },
750 | "genie": {
751 | "color": "#fb855d",
752 | "url": "https://github.com/trending?l=Genie"
753 | },
754 | "genshi": {
755 | "color": "#951531",
756 | "url": "https://github.com/trending?l=Genshi"
757 | },
758 | "gentoo ebuild": {
759 | "color": "#9400ff",
760 | "url": "https://github.com/trending?l=Gentoo-Ebuild"
761 | },
762 | "gentoo eclass": {
763 | "color": "#9400ff",
764 | "url": "https://github.com/trending?l=Gentoo-Eclass"
765 | },
766 | "gerber image": {
767 | "color": "#d20b00",
768 | "url": "https://github.com/trending?l=Gerber-Image"
769 | },
770 | "gherkin": {
771 | "color": "#5B2063",
772 | "url": "https://github.com/trending?l=Gherkin"
773 | },
774 | "git attributes": {
775 | "color": "#F44D27",
776 | "url": "https://github.com/trending?l=Git-Attributes"
777 | },
778 | "git config": {
779 | "color": "#F44D27",
780 | "url": "https://github.com/trending?l=Git-Config"
781 | },
782 | "git revision list": {
783 | "color": "#F44D27",
784 | "url": "https://github.com/trending?l=Git-Revision-List"
785 | },
786 | "gleam": {
787 | "color": "#ffaff3",
788 | "url": "https://github.com/trending?l=Gleam"
789 | },
790 | "glimmer js": {
791 | "color": "#F5835F",
792 | "url": "https://github.com/trending?l=Glimmer-JS"
793 | },
794 | "glimmer ts": {
795 | "color": "#3178c6",
796 | "url": "https://github.com/trending?l=Glimmer-TS"
797 | },
798 | "glsl": {
799 | "color": "#5686a5",
800 | "url": "https://github.com/trending?l=GLSL"
801 | },
802 | "glyph": {
803 | "color": "#c1ac7f",
804 | "url": "https://github.com/trending?l=Glyph"
805 | },
806 | "gnuplot": {
807 | "color": "#f0a9f0",
808 | "url": "https://github.com/trending?l=Gnuplot"
809 | },
810 | "go": {
811 | "color": "#00ADD8",
812 | "url": "https://github.com/trending?l=Go"
813 | },
814 | "go checksums": {
815 | "color": "#00ADD8",
816 | "url": "https://github.com/trending?l=Go-Checksums"
817 | },
818 | "go module": {
819 | "color": "#00ADD8",
820 | "url": "https://github.com/trending?l=Go-Module"
821 | },
822 | "go workspace": {
823 | "color": "#00ADD8",
824 | "url": "https://github.com/trending?l=Go-Workspace"
825 | },
826 | "godot resource": {
827 | "color": "#355570",
828 | "url": "https://github.com/trending?l=Godot-Resource"
829 | },
830 | "golo": {
831 | "color": "#88562A",
832 | "url": "https://github.com/trending?l=Golo"
833 | },
834 | "gosu": {
835 | "color": "#82937f",
836 | "url": "https://github.com/trending?l=Gosu"
837 | },
838 | "grace": {
839 | "color": "#615f8b",
840 | "url": "https://github.com/trending?l=Grace"
841 | },
842 | "gradle": {
843 | "color": "#02303a",
844 | "url": "https://github.com/trending?l=Gradle"
845 | },
846 | "gradle kotlin dsl": {
847 | "color": "#02303a",
848 | "url": "https://github.com/trending?l=Gradle-Kotlin-DSL"
849 | },
850 | "grammatical framework": {
851 | "color": "#ff0000",
852 | "url": "https://github.com/trending?l=Grammatical-Framework"
853 | },
854 | "graphql": {
855 | "color": "#e10098",
856 | "url": "https://github.com/trending?l=GraphQL"
857 | },
858 | "graphviz (dot)": {
859 | "color": "#2596be",
860 | "url": "https://github.com/trending?l=Graphviz-(DOT)"
861 | },
862 | "groovy": {
863 | "color": "#4298b8",
864 | "url": "https://github.com/trending?l=Groovy"
865 | },
866 | "groovy server pages": {
867 | "color": "#4298b8",
868 | "url": "https://github.com/trending?l=Groovy-Server-Pages"
869 | },
870 | "gsc": {
871 | "color": "#FF6800",
872 | "url": "https://github.com/trending?l=GSC"
873 | },
874 | "hack": {
875 | "color": "#878787",
876 | "url": "https://github.com/trending?l=Hack"
877 | },
878 | "haml": {
879 | "color": "#ece2a9",
880 | "url": "https://github.com/trending?l=Haml"
881 | },
882 | "handlebars": {
883 | "color": "#f7931e",
884 | "url": "https://github.com/trending?l=Handlebars"
885 | },
886 | "haproxy": {
887 | "color": "#106da9",
888 | "url": "https://github.com/trending?l=HAProxy"
889 | },
890 | "harbour": {
891 | "color": "#0e60e3",
892 | "url": "https://github.com/trending?l=Harbour"
893 | },
894 | "haskell": {
895 | "color": "#5e5086",
896 | "url": "https://github.com/trending?l=Haskell"
897 | },
898 | "haxe": {
899 | "color": "#df7900",
900 | "url": "https://github.com/trending?l=Haxe"
901 | },
902 | "hcl": {
903 | "color": "#844FBA",
904 | "url": "https://github.com/trending?l=HCL"
905 | },
906 | "hiveql": {
907 | "color": "#dce200",
908 | "url": "https://github.com/trending?l=HiveQL"
909 | },
910 | "hlsl": {
911 | "color": "#aace60",
912 | "url": "https://github.com/trending?l=HLSL"
913 | },
914 | "hocon": {
915 | "color": "#9ff8ee",
916 | "url": "https://github.com/trending?l=HOCON"
917 | },
918 | "holyc": {
919 | "color": "#ffefaf",
920 | "url": "https://github.com/trending?l=HolyC"
921 | },
922 | "hoon": {
923 | "color": "#00b171",
924 | "url": "https://github.com/trending?l=hoon"
925 | },
926 | "hosts file": {
927 | "color": "#308888",
928 | "url": "https://github.com/trending?l=Hosts-File"
929 | },
930 | "html": {
931 | "color": "#e34c26",
932 | "url": "https://github.com/trending?l=HTML"
933 | },
934 | "html+ecr": {
935 | "color": "#2e1052",
936 | "url": "https://github.com/trending?l=HTML+ECR"
937 | },
938 | "html+eex": {
939 | "color": "#6e4a7e",
940 | "url": "https://github.com/trending?l=HTML+EEX"
941 | },
942 | "html+erb": {
943 | "color": "#701516",
944 | "url": "https://github.com/trending?l=HTML+ERB"
945 | },
946 | "html+php": {
947 | "color": "#4f5d95",
948 | "url": "https://github.com/trending?l=HTML+PHP"
949 | },
950 | "html+razor": {
951 | "color": "#512be4",
952 | "url": "https://github.com/trending?l=HTML+Razor"
953 | },
954 | "http": {
955 | "color": "#005C9C",
956 | "url": "https://github.com/trending?l=HTTP"
957 | },
958 | "hxml": {
959 | "color": "#f68712",
960 | "url": "https://github.com/trending?l=HXML"
961 | },
962 | "hy": {
963 | "color": "#7790B2",
964 | "url": "https://github.com/trending?l=Hy"
965 | },
966 | "hyphy": {
967 | "color": null,
968 | "url": "https://github.com/trending?l=HyPhy"
969 | },
970 | "idl": {
971 | "color": "#a3522f",
972 | "url": "https://github.com/trending?l=IDL"
973 | },
974 | "idris": {
975 | "color": "#b30000",
976 | "url": "https://github.com/trending?l=Idris"
977 | },
978 | "ignore list": {
979 | "color": "#000000",
980 | "url": "https://github.com/trending?l=Ignore-List"
981 | },
982 | "igor pro": {
983 | "color": "#0000cc",
984 | "url": "https://github.com/trending?l=IGOR-Pro"
985 | },
986 | "imagej macro": {
987 | "color": "#99AAFF",
988 | "url": "https://github.com/trending?l=ImageJ-Macro"
989 | },
990 | "imba": {
991 | "color": "#16cec6",
992 | "url": "https://github.com/trending?l=Imba"
993 | },
994 | "inform 7": {
995 | "color": null,
996 | "url": "https://github.com/trending?l=Inform-7"
997 | },
998 | "ini": {
999 | "color": "#d1dbe0",
1000 | "url": "https://github.com/trending?l=INI"
1001 | },
1002 | "ink": {
1003 | "color": null,
1004 | "url": "https://github.com/trending?l=Ink"
1005 | },
1006 | "inno setup": {
1007 | "color": "#264b99",
1008 | "url": "https://github.com/trending?l=Inno-Setup"
1009 | },
1010 | "io": {
1011 | "color": "#a9188d",
1012 | "url": "https://github.com/trending?l=Io"
1013 | },
1014 | "ioke": {
1015 | "color": "#078193",
1016 | "url": "https://github.com/trending?l=Ioke"
1017 | },
1018 | "isabelle": {
1019 | "color": "#FEFE00",
1020 | "url": "https://github.com/trending?l=Isabelle"
1021 | },
1022 | "isabelle root": {
1023 | "color": "#FEFE00",
1024 | "url": "https://github.com/trending?l=Isabelle-ROOT"
1025 | },
1026 | "j": {
1027 | "color": "#9EEDFF",
1028 | "url": "https://github.com/trending?l=J"
1029 | },
1030 | "janet": {
1031 | "color": "#0886a5",
1032 | "url": "https://github.com/trending?l=Janet"
1033 | },
1034 | "jar manifest": {
1035 | "color": "#b07219",
1036 | "url": "https://github.com/trending?l=JAR-Manifest"
1037 | },
1038 | "jasmin": {
1039 | "color": "#d03600",
1040 | "url": "https://github.com/trending?l=Jasmin"
1041 | },
1042 | "java": {
1043 | "color": "#b07219",
1044 | "url": "https://github.com/trending?l=Java"
1045 | },
1046 | "java properties": {
1047 | "color": "#2A6277",
1048 | "url": "https://github.com/trending?l=Java-Properties"
1049 | },
1050 | "java server pages": {
1051 | "color": "#2A6277",
1052 | "url": "https://github.com/trending?l=Java-Server-Pages"
1053 | },
1054 | "javascript": {
1055 | "color": "#f1e05a",
1056 | "url": "https://github.com/trending?l=JavaScript"
1057 | },
1058 | "javascript+erb": {
1059 | "color": "#f1e05a",
1060 | "url": "https://github.com/trending?l=JavaScript+ERB"
1061 | },
1062 | "jcl": {
1063 | "color": "#d90e09",
1064 | "url": "https://github.com/trending?l=JCL"
1065 | },
1066 | "jest snapshot": {
1067 | "color": "#15c213",
1068 | "url": "https://github.com/trending?l=Jest-Snapshot"
1069 | },
1070 | "jetbrains mps": {
1071 | "color": "#21D789",
1072 | "url": "https://github.com/trending?l=JetBrains-MPS"
1073 | },
1074 | "jflex": {
1075 | "color": "#DBCA00",
1076 | "url": "https://github.com/trending?l=JFlex"
1077 | },
1078 | "jinja": {
1079 | "color": "#a52a22",
1080 | "url": "https://github.com/trending?l=Jinja"
1081 | },
1082 | "jison": {
1083 | "color": "#56b3cb",
1084 | "url": "https://github.com/trending?l=Jison"
1085 | },
1086 | "jison lex": {
1087 | "color": "#56b3cb",
1088 | "url": "https://github.com/trending?l=Jison-Lex"
1089 | },
1090 | "jolie": {
1091 | "color": "#843179",
1092 | "url": "https://github.com/trending?l=Jolie"
1093 | },
1094 | "jq": {
1095 | "color": "#c7254e",
1096 | "url": "https://github.com/trending?l=jq"
1097 | },
1098 | "json": {
1099 | "color": "#292929",
1100 | "url": "https://github.com/trending?l=JSON"
1101 | },
1102 | "json with comments": {
1103 | "color": "#292929",
1104 | "url": "https://github.com/trending?l=JSON-with-Comments"
1105 | },
1106 | "json5": {
1107 | "color": "#267CB9",
1108 | "url": "https://github.com/trending?l=JSON5"
1109 | },
1110 | "jsoniq": {
1111 | "color": "#40d47e",
1112 | "url": "https://github.com/trending?l=JSONiq"
1113 | },
1114 | "jsonld": {
1115 | "color": "#0c479c",
1116 | "url": "https://github.com/trending?l=JSONLD"
1117 | },
1118 | "jsonnet": {
1119 | "color": "#0064bd",
1120 | "url": "https://github.com/trending?l=Jsonnet"
1121 | },
1122 | "julia": {
1123 | "color": "#a270ba",
1124 | "url": "https://github.com/trending?l=Julia"
1125 | },
1126 | "jupyter notebook": {
1127 | "color": "#DA5B0B",
1128 | "url": "https://github.com/trending?l=Jupyter-Notebook"
1129 | },
1130 | "just": {
1131 | "color": "#384d54",
1132 | "url": "https://github.com/trending?l=Just"
1133 | },
1134 | "kaitai struct": {
1135 | "color": "#773b37",
1136 | "url": "https://github.com/trending?l=Kaitai-Struct"
1137 | },
1138 | "kakounescript": {
1139 | "color": "#6f8042",
1140 | "url": "https://github.com/trending?l=KakouneScript"
1141 | },
1142 | "kerboscript": {
1143 | "color": "#41adf0",
1144 | "url": "https://github.com/trending?l=KerboScript"
1145 | },
1146 | "kicad layout": {
1147 | "color": "#2f4aab",
1148 | "url": "https://github.com/trending?l=KiCad-Layout"
1149 | },
1150 | "kicad legacy layout": {
1151 | "color": "#2f4aab",
1152 | "url": "https://github.com/trending?l=KiCad-Legacy-Layout"
1153 | },
1154 | "kicad schematic": {
1155 | "color": "#2f4aab",
1156 | "url": "https://github.com/trending?l=KiCad-Schematic"
1157 | },
1158 | "kotlin": {
1159 | "color": "#A97BFF",
1160 | "url": "https://github.com/trending?l=Kotlin"
1161 | },
1162 | "krl": {
1163 | "color": "#28430A",
1164 | "url": "https://github.com/trending?l=KRL"
1165 | },
1166 | "kvlang": {
1167 | "color": "#1da6e0",
1168 | "url": "https://github.com/trending?l=kvlang"
1169 | },
1170 | "labview": {
1171 | "color": "#fede06",
1172 | "url": "https://github.com/trending?l=LabVIEW"
1173 | },
1174 | "lark": {
1175 | "color": "#2980B9",
1176 | "url": "https://github.com/trending?l=Lark"
1177 | },
1178 | "lasso": {
1179 | "color": "#999999",
1180 | "url": "https://github.com/trending?l=Lasso"
1181 | },
1182 | "latte": {
1183 | "color": "#f2a542",
1184 | "url": "https://github.com/trending?l=Latte"
1185 | },
1186 | "lean": {
1187 | "color": null,
1188 | "url": "https://github.com/trending?l=Lean"
1189 | },
1190 | "lean 4": {
1191 | "color": null,
1192 | "url": "https://github.com/trending?l=Lean-4"
1193 | },
1194 | "less": {
1195 | "color": "#1d365d",
1196 | "url": "https://github.com/trending?l=Less"
1197 | },
1198 | "lex": {
1199 | "color": "#DBCA00",
1200 | "url": "https://github.com/trending?l=Lex"
1201 | },
1202 | "lfe": {
1203 | "color": "#4C3023",
1204 | "url": "https://github.com/trending?l=LFE"
1205 | },
1206 | "ligolang": {
1207 | "color": "#0e74ff",
1208 | "url": "https://github.com/trending?l=LigoLANG"
1209 | },
1210 | "lilypond": {
1211 | "color": "#9ccc7c",
1212 | "url": "https://github.com/trending?l=LilyPond"
1213 | },
1214 | "limbo": {
1215 | "color": null,
1216 | "url": "https://github.com/trending?l=Limbo"
1217 | },
1218 | "liquid": {
1219 | "color": "#67b8de",
1220 | "url": "https://github.com/trending?l=Liquid"
1221 | },
1222 | "literate agda": {
1223 | "color": "#315665",
1224 | "url": "https://github.com/trending?l=Literate-Agda"
1225 | },
1226 | "literate coffeescript": {
1227 | "color": "#244776",
1228 | "url": "https://github.com/trending?l=Literate-CoffeeScript"
1229 | },
1230 | "literate haskell": {
1231 | "color": "#5e5086",
1232 | "url": "https://github.com/trending?l=Literate-Haskell"
1233 | },
1234 | "livescript": {
1235 | "color": "#499886",
1236 | "url": "https://github.com/trending?l=LiveScript"
1237 | },
1238 | "llvm": {
1239 | "color": "#185619",
1240 | "url": "https://github.com/trending?l=LLVM"
1241 | },
1242 | "logos": {
1243 | "color": null,
1244 | "url": "https://github.com/trending?l=Logos"
1245 | },
1246 | "logtalk": {
1247 | "color": "#295b9a",
1248 | "url": "https://github.com/trending?l=Logtalk"
1249 | },
1250 | "lolcode": {
1251 | "color": "#cc9900",
1252 | "url": "https://github.com/trending?l=LOLCODE"
1253 | },
1254 | "lookml": {
1255 | "color": "#652B81",
1256 | "url": "https://github.com/trending?l=LookML"
1257 | },
1258 | "loomscript": {
1259 | "color": null,
1260 | "url": "https://github.com/trending?l=LoomScript"
1261 | },
1262 | "lsl": {
1263 | "color": "#3d9970",
1264 | "url": "https://github.com/trending?l=LSL"
1265 | },
1266 | "lua": {
1267 | "color": "#000080",
1268 | "url": "https://github.com/trending?l=Lua"
1269 | },
1270 | "m": {
1271 | "color": null,
1272 | "url": "https://github.com/trending?l=M"
1273 | },
1274 | "m4": {
1275 | "color": null,
1276 | "url": "https://github.com/trending?l=M4"
1277 | },
1278 | "m4sugar": {
1279 | "color": null,
1280 | "url": "https://github.com/trending?l=M4Sugar"
1281 | },
1282 | "macaulay2": {
1283 | "color": "#d8ffff",
1284 | "url": "https://github.com/trending?l=Macaulay2"
1285 | },
1286 | "makefile": {
1287 | "color": "#427819",
1288 | "url": "https://github.com/trending?l=Makefile"
1289 | },
1290 | "mako": {
1291 | "color": "#7e858d",
1292 | "url": "https://github.com/trending?l=Mako"
1293 | },
1294 | "markdown": {
1295 | "color": "#083fa1",
1296 | "url": "https://github.com/trending?l=Markdown"
1297 | },
1298 | "marko": {
1299 | "color": "#42bff2",
1300 | "url": "https://github.com/trending?l=Marko"
1301 | },
1302 | "mask": {
1303 | "color": "#f97732",
1304 | "url": "https://github.com/trending?l=Mask"
1305 | },
1306 | "mathematica": {
1307 | "color": "#dd1100",
1308 | "url": "https://github.com/trending?l=Mathematica"
1309 | },
1310 | "matlab": {
1311 | "color": "#e16737",
1312 | "url": "https://github.com/trending?l=MATLAB"
1313 | },
1314 | "max": {
1315 | "color": "#c4a79c",
1316 | "url": "https://github.com/trending?l=Max"
1317 | },
1318 | "maxscript": {
1319 | "color": "#00a6a6",
1320 | "url": "https://github.com/trending?l=MAXScript"
1321 | },
1322 | "mcfunction": {
1323 | "color": "#E22837",
1324 | "url": "https://github.com/trending?l=mcfunction"
1325 | },
1326 | "mdx": {
1327 | "color": "#fcb32c",
1328 | "url": "https://github.com/trending?l=MDX"
1329 | },
1330 | "mercury": {
1331 | "color": "#ff2b2b",
1332 | "url": "https://github.com/trending?l=Mercury"
1333 | },
1334 | "mermaid": {
1335 | "color": "#ff3670",
1336 | "url": "https://github.com/trending?l=Mermaid"
1337 | },
1338 | "meson": {
1339 | "color": "#007800",
1340 | "url": "https://github.com/trending?l=Meson"
1341 | },
1342 | "metal": {
1343 | "color": "#8f14e9",
1344 | "url": "https://github.com/trending?l=Metal"
1345 | },
1346 | "minid": {
1347 | "color": null,
1348 | "url": "https://github.com/trending?l=MiniD"
1349 | },
1350 | "miniyaml": {
1351 | "color": "#ff1111",
1352 | "url": "https://github.com/trending?l=MiniYAML"
1353 | },
1354 | "mint": {
1355 | "color": "#02b046",
1356 | "url": "https://github.com/trending?l=Mint"
1357 | },
1358 | "mirah": {
1359 | "color": "#c7a938",
1360 | "url": "https://github.com/trending?l=Mirah"
1361 | },
1362 | "mirc script": {
1363 | "color": "#3d57c3",
1364 | "url": "https://github.com/trending?l=mIRC-Script"
1365 | },
1366 | "mlir": {
1367 | "color": "#5EC8DB",
1368 | "url": "https://github.com/trending?l=MLIR"
1369 | },
1370 | "modelica": {
1371 | "color": "#de1d31",
1372 | "url": "https://github.com/trending?l=Modelica"
1373 | },
1374 | "modula-2": {
1375 | "color": "#10253f",
1376 | "url": "https://github.com/trending?l=Modula-2"
1377 | },
1378 | "modula-3": {
1379 | "color": "#223388",
1380 | "url": "https://github.com/trending?l=Modula-3"
1381 | },
1382 | "module management system": {
1383 | "color": null,
1384 | "url": "https://github.com/trending?l=Module-Management-System"
1385 | },
1386 | "mojo": {
1387 | "color": "#ff4c1f",
1388 | "url": "https://github.com/trending?l=Mojo"
1389 | },
1390 | "monkey": {
1391 | "color": null,
1392 | "url": "https://github.com/trending?l=Monkey"
1393 | },
1394 | "monkey c": {
1395 | "color": "#8D6747",
1396 | "url": "https://github.com/trending?l=Monkey-C"
1397 | },
1398 | "moocode": {
1399 | "color": null,
1400 | "url": "https://github.com/trending?l=Moocode"
1401 | },
1402 | "moonscript": {
1403 | "color": "#ff4585",
1404 | "url": "https://github.com/trending?l=MoonScript"
1405 | },
1406 | "motoko": {
1407 | "color": "#fbb03b",
1408 | "url": "https://github.com/trending?l=Motoko"
1409 | },
1410 | "motorola 68k assembly": {
1411 | "color": "#005daa",
1412 | "url": "https://github.com/trending?l=Motorola-68K-Assembly"
1413 | },
1414 | "move": {
1415 | "color": "#4a137a",
1416 | "url": "https://github.com/trending?l=Move"
1417 | },
1418 | "mql4": {
1419 | "color": "#62A8D6",
1420 | "url": "https://github.com/trending?l=MQL4"
1421 | },
1422 | "mql5": {
1423 | "color": "#4A76B8",
1424 | "url": "https://github.com/trending?l=MQL5"
1425 | },
1426 | "mtml": {
1427 | "color": "#b7e1f4",
1428 | "url": "https://github.com/trending?l=MTML"
1429 | },
1430 | "muf": {
1431 | "color": null,
1432 | "url": "https://github.com/trending?l=MUF"
1433 | },
1434 | "mupad": {
1435 | "color": "#244963",
1436 | "url": "https://github.com/trending?l=mupad"
1437 | },
1438 | "mustache": {
1439 | "color": "#724b3b",
1440 | "url": "https://github.com/trending?l=Mustache"
1441 | },
1442 | "myghty": {
1443 | "color": null,
1444 | "url": "https://github.com/trending?l=Myghty"
1445 | },
1446 | "nanorc": {
1447 | "color": "#2d004d",
1448 | "url": "https://github.com/trending?l=nanorc"
1449 | },
1450 | "nasal": {
1451 | "color": "#1d2c4e",
1452 | "url": "https://github.com/trending?l=Nasal"
1453 | },
1454 | "nasl": {
1455 | "color": null,
1456 | "url": "https://github.com/trending?l=NASL"
1457 | },
1458 | "ncl": {
1459 | "color": "#28431f",
1460 | "url": "https://github.com/trending?l=NCL"
1461 | },
1462 | "nearley": {
1463 | "color": "#990000",
1464 | "url": "https://github.com/trending?l=Nearley"
1465 | },
1466 | "nemerle": {
1467 | "color": "#3d3c6e",
1468 | "url": "https://github.com/trending?l=Nemerle"
1469 | },
1470 | "nesc": {
1471 | "color": "#94B0C7",
1472 | "url": "https://github.com/trending?l=nesC"
1473 | },
1474 | "netlinx": {
1475 | "color": "#0aa0ff",
1476 | "url": "https://github.com/trending?l=NetLinx"
1477 | },
1478 | "netlinx+erb": {
1479 | "color": "#747faa",
1480 | "url": "https://github.com/trending?l=NetLinx+ERB"
1481 | },
1482 | "netlogo": {
1483 | "color": "#ff6375",
1484 | "url": "https://github.com/trending?l=NetLogo"
1485 | },
1486 | "newlisp": {
1487 | "color": "#87AED7",
1488 | "url": "https://github.com/trending?l=NewLisp"
1489 | },
1490 | "nextflow": {
1491 | "color": "#3ac486",
1492 | "url": "https://github.com/trending?l=Nextflow"
1493 | },
1494 | "nginx": {
1495 | "color": "#009639",
1496 | "url": "https://github.com/trending?l=Nginx"
1497 | },
1498 | "nim": {
1499 | "color": "#ffc200",
1500 | "url": "https://github.com/trending?l=Nim"
1501 | },
1502 | "nit": {
1503 | "color": "#009917",
1504 | "url": "https://github.com/trending?l=Nit"
1505 | },
1506 | "nix": {
1507 | "color": "#7e7eff",
1508 | "url": "https://github.com/trending?l=Nix"
1509 | },
1510 | "npm config": {
1511 | "color": "#cb3837",
1512 | "url": "https://github.com/trending?l=NPM-Config"
1513 | },
1514 | "nsis": {
1515 | "color": null,
1516 | "url": "https://github.com/trending?l=NSIS"
1517 | },
1518 | "nu": {
1519 | "color": "#c9df40",
1520 | "url": "https://github.com/trending?l=Nu"
1521 | },
1522 | "numpy": {
1523 | "color": "#9C8AF9",
1524 | "url": "https://github.com/trending?l=NumPy"
1525 | },
1526 | "nunjucks": {
1527 | "color": "#3d8137",
1528 | "url": "https://github.com/trending?l=Nunjucks"
1529 | },
1530 | "nushell": {
1531 | "color": "#4E9906",
1532 | "url": "https://github.com/trending?l=Nushell"
1533 | },
1534 | "nwscript": {
1535 | "color": "#111522",
1536 | "url": "https://github.com/trending?l=NWScript"
1537 | },
1538 | "oasv2-json": {
1539 | "color": "#85ea2d",
1540 | "url": "https://github.com/trending?l=OASv2-json"
1541 | },
1542 | "oasv2-yaml": {
1543 | "color": "#85ea2d",
1544 | "url": "https://github.com/trending?l=OASv2-yaml"
1545 | },
1546 | "oasv3-json": {
1547 | "color": "#85ea2d",
1548 | "url": "https://github.com/trending?l=OASv3-json"
1549 | },
1550 | "oasv3-yaml": {
1551 | "color": "#85ea2d",
1552 | "url": "https://github.com/trending?l=OASv3-yaml"
1553 | },
1554 | "oberon": {
1555 | "color": null,
1556 | "url": "https://github.com/trending?l=Oberon"
1557 | },
1558 | "objective-c": {
1559 | "color": "#438eff",
1560 | "url": "https://github.com/trending?l=Objective-C"
1561 | },
1562 | "objective-c++": {
1563 | "color": "#6866fb",
1564 | "url": "https://github.com/trending?l=Objective-C++"
1565 | },
1566 | "objective-j": {
1567 | "color": "#ff0c5a",
1568 | "url": "https://github.com/trending?l=Objective-J"
1569 | },
1570 | "objectscript": {
1571 | "color": "#424893",
1572 | "url": "https://github.com/trending?l=ObjectScript"
1573 | },
1574 | "ocaml": {
1575 | "color": "#ef7a08",
1576 | "url": "https://github.com/trending?l=OCaml"
1577 | },
1578 | "odin": {
1579 | "color": "#60AFFE",
1580 | "url": "https://github.com/trending?l=Odin"
1581 | },
1582 | "omgrofl": {
1583 | "color": "#cabbff",
1584 | "url": "https://github.com/trending?l=Omgrofl"
1585 | },
1586 | "ooc": {
1587 | "color": "#b0b77e",
1588 | "url": "https://github.com/trending?l=ooc"
1589 | },
1590 | "opa": {
1591 | "color": null,
1592 | "url": "https://github.com/trending?l=Opa"
1593 | },
1594 | "opal": {
1595 | "color": "#f7ede0",
1596 | "url": "https://github.com/trending?l=Opal"
1597 | },
1598 | "open policy agent": {
1599 | "color": "#7d9199",
1600 | "url": "https://github.com/trending?l=Open-Policy-Agent"
1601 | },
1602 | "openapi specification v2": {
1603 | "color": "#85ea2d",
1604 | "url": "https://github.com/trending?l=OpenAPI-Specification-v2"
1605 | },
1606 | "openapi specification v3": {
1607 | "color": "#85ea2d",
1608 | "url": "https://github.com/trending?l=OpenAPI-Specification-v3"
1609 | },
1610 | "opencl": {
1611 | "color": "#ed2e2d",
1612 | "url": "https://github.com/trending?l=OpenCL"
1613 | },
1614 | "openedge abl": {
1615 | "color": "#5ce600",
1616 | "url": "https://github.com/trending?l=OpenEdge-ABL"
1617 | },
1618 | "openqasm": {
1619 | "color": "#AA70FF",
1620 | "url": "https://github.com/trending?l=OpenQASM"
1621 | },
1622 | "openrc runscript": {
1623 | "color": null,
1624 | "url": "https://github.com/trending?l=OpenRC-runscript"
1625 | },
1626 | "openscad": {
1627 | "color": "#e5cd45",
1628 | "url": "https://github.com/trending?l=OpenSCAD"
1629 | },
1630 | "option list": {
1631 | "color": "#476732",
1632 | "url": "https://github.com/trending?l=Option-List"
1633 | },
1634 | "org": {
1635 | "color": "#77aa99",
1636 | "url": "https://github.com/trending?l=Org"
1637 | },
1638 | "ox": {
1639 | "color": null,
1640 | "url": "https://github.com/trending?l=Ox"
1641 | },
1642 | "oxygene": {
1643 | "color": "#cdd0e3",
1644 | "url": "https://github.com/trending?l=Oxygene"
1645 | },
1646 | "oz": {
1647 | "color": "#fab738",
1648 | "url": "https://github.com/trending?l=Oz"
1649 | },
1650 | "p4": {
1651 | "color": "#7055b5",
1652 | "url": "https://github.com/trending?l=P4"
1653 | },
1654 | "pact": {
1655 | "color": "#F7A8B8",
1656 | "url": "https://github.com/trending?l=Pact"
1657 | },
1658 | "pan": {
1659 | "color": "#cc0000",
1660 | "url": "https://github.com/trending?l=Pan"
1661 | },
1662 | "papyrus": {
1663 | "color": "#6600cc",
1664 | "url": "https://github.com/trending?l=Papyrus"
1665 | },
1666 | "parrot": {
1667 | "color": "#f3ca0a",
1668 | "url": "https://github.com/trending?l=Parrot"
1669 | },
1670 | "parrot assembly": {
1671 | "color": null,
1672 | "url": "https://github.com/trending?l=Parrot-Assembly"
1673 | },
1674 | "parrot internal representation": {
1675 | "color": null,
1676 | "url": "https://github.com/trending?l=Parrot-Internal-Representation"
1677 | },
1678 | "pascal": {
1679 | "color": "#E3F171",
1680 | "url": "https://github.com/trending?l=Pascal"
1681 | },
1682 | "pawn": {
1683 | "color": "#dbb284",
1684 | "url": "https://github.com/trending?l=Pawn"
1685 | },
1686 | "pddl": {
1687 | "color": "#0d00ff",
1688 | "url": "https://github.com/trending?l=PDDL"
1689 | },
1690 | "peg.js": {
1691 | "color": "#234d6b",
1692 | "url": "https://github.com/trending?l=PEG.js"
1693 | },
1694 | "pep8": {
1695 | "color": "#C76F5B",
1696 | "url": "https://github.com/trending?l=Pep8"
1697 | },
1698 | "perl": {
1699 | "color": "#0298c3",
1700 | "url": "https://github.com/trending?l=Perl"
1701 | },
1702 | "php": {
1703 | "color": "#4F5D95",
1704 | "url": "https://github.com/trending?l=PHP"
1705 | },
1706 | "picolisp": {
1707 | "color": "#6067af",
1708 | "url": "https://github.com/trending?l=PicoLisp"
1709 | },
1710 | "piglatin": {
1711 | "color": "#fcd7de",
1712 | "url": "https://github.com/trending?l=PigLatin"
1713 | },
1714 | "pike": {
1715 | "color": "#005390",
1716 | "url": "https://github.com/trending?l=Pike"
1717 | },
1718 | "pip requirements": {
1719 | "color": "#FFD343",
1720 | "url": "https://github.com/trending?l=Pip-Requirements"
1721 | },
1722 | "plantuml": {
1723 | "color": "#fbbd16",
1724 | "url": "https://github.com/trending?l=PlantUML"
1725 | },
1726 | "plpgsql": {
1727 | "color": "#336790",
1728 | "url": "https://github.com/trending?l=PLpgSQL"
1729 | },
1730 | "plsql": {
1731 | "color": "#dad8d8",
1732 | "url": "https://github.com/trending?l=PLSQL"
1733 | },
1734 | "pogoscript": {
1735 | "color": "#d80074",
1736 | "url": "https://github.com/trending?l=PogoScript"
1737 | },
1738 | "polar": {
1739 | "color": "#ae81ff",
1740 | "url": "https://github.com/trending?l=Polar"
1741 | },
1742 | "pony": {
1743 | "color": null,
1744 | "url": "https://github.com/trending?l=Pony"
1745 | },
1746 | "portugol": {
1747 | "color": "#f8bd00",
1748 | "url": "https://github.com/trending?l=Portugol"
1749 | },
1750 | "postcss": {
1751 | "color": "#dc3a0c",
1752 | "url": "https://github.com/trending?l=PostCSS"
1753 | },
1754 | "postscript": {
1755 | "color": "#da291c",
1756 | "url": "https://github.com/trending?l=PostScript"
1757 | },
1758 | "pov-ray sdl": {
1759 | "color": "#6bac65",
1760 | "url": "https://github.com/trending?l=POV-Ray-SDL"
1761 | },
1762 | "powerbuilder": {
1763 | "color": "#8f0f8d",
1764 | "url": "https://github.com/trending?l=PowerBuilder"
1765 | },
1766 | "powershell": {
1767 | "color": "#012456",
1768 | "url": "https://github.com/trending?l=PowerShell"
1769 | },
1770 | "praat": {
1771 | "color": "#c8506d",
1772 | "url": "https://github.com/trending?l=Praat"
1773 | },
1774 | "prisma": {
1775 | "color": "#0c344b",
1776 | "url": "https://github.com/trending?l=Prisma"
1777 | },
1778 | "processing": {
1779 | "color": "#0096D8",
1780 | "url": "https://github.com/trending?l=Processing"
1781 | },
1782 | "procfile": {
1783 | "color": "#3B2F63",
1784 | "url": "https://github.com/trending?l=Procfile"
1785 | },
1786 | "prolog": {
1787 | "color": "#74283c",
1788 | "url": "https://github.com/trending?l=Prolog"
1789 | },
1790 | "promela": {
1791 | "color": "#de0000",
1792 | "url": "https://github.com/trending?l=Promela"
1793 | },
1794 | "propeller spin": {
1795 | "color": "#7fa2a7",
1796 | "url": "https://github.com/trending?l=Propeller-Spin"
1797 | },
1798 | "pug": {
1799 | "color": "#a86454",
1800 | "url": "https://github.com/trending?l=Pug"
1801 | },
1802 | "puppet": {
1803 | "color": "#302B6D",
1804 | "url": "https://github.com/trending?l=Puppet"
1805 | },
1806 | "purebasic": {
1807 | "color": "#5a6986",
1808 | "url": "https://github.com/trending?l=PureBasic"
1809 | },
1810 | "purescript": {
1811 | "color": "#1D222D",
1812 | "url": "https://github.com/trending?l=PureScript"
1813 | },
1814 | "pyret": {
1815 | "color": "#ee1e10",
1816 | "url": "https://github.com/trending?l=Pyret"
1817 | },
1818 | "python": {
1819 | "color": "#3572A5",
1820 | "url": "https://github.com/trending?l=Python"
1821 | },
1822 | "python console": {
1823 | "color": "#3572A5",
1824 | "url": "https://github.com/trending?l=Python-console"
1825 | },
1826 | "python traceback": {
1827 | "color": "#3572A5",
1828 | "url": "https://github.com/trending?l=Python-traceback"
1829 | },
1830 | "q": {
1831 | "color": "#0040cd",
1832 | "url": "https://github.com/trending?l=q"
1833 | },
1834 | "q#": {
1835 | "color": "#fed659",
1836 | "url": "https://github.com/trending?l=Qsharp"
1837 | },
1838 | "qmake": {
1839 | "color": null,
1840 | "url": "https://github.com/trending?l=QMake"
1841 | },
1842 | "qml": {
1843 | "color": "#44a51c",
1844 | "url": "https://github.com/trending?l=QML"
1845 | },
1846 | "qt script": {
1847 | "color": "#00b841",
1848 | "url": "https://github.com/trending?l=Qt-Script"
1849 | },
1850 | "quake": {
1851 | "color": "#882233",
1852 | "url": "https://github.com/trending?l=Quake"
1853 | },
1854 | "r": {
1855 | "color": "#198CE7",
1856 | "url": "https://github.com/trending?l=R"
1857 | },
1858 | "racket": {
1859 | "color": "#3c5caa",
1860 | "url": "https://github.com/trending?l=Racket"
1861 | },
1862 | "ragel": {
1863 | "color": "#9d5200",
1864 | "url": "https://github.com/trending?l=Ragel"
1865 | },
1866 | "raku": {
1867 | "color": "#0000fb",
1868 | "url": "https://github.com/trending?l=Raku"
1869 | },
1870 | "raml": {
1871 | "color": "#77d9fb",
1872 | "url": "https://github.com/trending?l=RAML"
1873 | },
1874 | "rascal": {
1875 | "color": "#fffaa0",
1876 | "url": "https://github.com/trending?l=Rascal"
1877 | },
1878 | "rbs": {
1879 | "color": "#701516",
1880 | "url": "https://github.com/trending?l=RBS"
1881 | },
1882 | "rdoc": {
1883 | "color": "#701516",
1884 | "url": "https://github.com/trending?l=RDoc"
1885 | },
1886 | "realbasic": {
1887 | "color": null,
1888 | "url": "https://github.com/trending?l=REALbasic"
1889 | },
1890 | "reason": {
1891 | "color": "#ff5847",
1892 | "url": "https://github.com/trending?l=Reason"
1893 | },
1894 | "reasonligo": {
1895 | "color": "#ff5847",
1896 | "url": "https://github.com/trending?l=ReasonLIGO"
1897 | },
1898 | "rebol": {
1899 | "color": "#358a5b",
1900 | "url": "https://github.com/trending?l=Rebol"
1901 | },
1902 | "record jar": {
1903 | "color": "#0673ba",
1904 | "url": "https://github.com/trending?l=Record-Jar"
1905 | },
1906 | "red": {
1907 | "color": "#f50000",
1908 | "url": "https://github.com/trending?l=Red"
1909 | },
1910 | "redcode": {
1911 | "color": null,
1912 | "url": "https://github.com/trending?l=Redcode"
1913 | },
1914 | "regular expression": {
1915 | "color": "#009a00",
1916 | "url": "https://github.com/trending?l=Regular-Expression"
1917 | },
1918 | "ren'py": {
1919 | "color": "#ff7f7f",
1920 | "url": "https://github.com/trending?l=Ren'Py"
1921 | },
1922 | "renderscript": {
1923 | "color": null,
1924 | "url": "https://github.com/trending?l=RenderScript"
1925 | },
1926 | "rescript": {
1927 | "color": "#ed5051",
1928 | "url": "https://github.com/trending?l=ReScript"
1929 | },
1930 | "restructuredtext": {
1931 | "color": "#141414",
1932 | "url": "https://github.com/trending?l=reStructuredText"
1933 | },
1934 | "rexx": {
1935 | "color": "#d90e09",
1936 | "url": "https://github.com/trending?l=REXX"
1937 | },
1938 | "rez": {
1939 | "color": "#FFDAB3",
1940 | "url": "https://github.com/trending?l=Rez"
1941 | },
1942 | "ring": {
1943 | "color": "#2D54CB",
1944 | "url": "https://github.com/trending?l=Ring"
1945 | },
1946 | "riot": {
1947 | "color": "#A71E49",
1948 | "url": "https://github.com/trending?l=Riot"
1949 | },
1950 | "rmarkdown": {
1951 | "color": "#198ce7",
1952 | "url": "https://github.com/trending?l=RMarkdown"
1953 | },
1954 | "robotframework": {
1955 | "color": "#00c0b5",
1956 | "url": "https://github.com/trending?l=RobotFramework"
1957 | },
1958 | "roc": {
1959 | "color": "#7c38f5",
1960 | "url": "https://github.com/trending?l=Roc"
1961 | },
1962 | "roff": {
1963 | "color": "#ecdebe",
1964 | "url": "https://github.com/trending?l=Roff"
1965 | },
1966 | "roff manpage": {
1967 | "color": "#ecdebe",
1968 | "url": "https://github.com/trending?l=Roff-Manpage"
1969 | },
1970 | "rouge": {
1971 | "color": "#cc0088",
1972 | "url": "https://github.com/trending?l=Rouge"
1973 | },
1974 | "routeros script": {
1975 | "color": "#DE3941",
1976 | "url": "https://github.com/trending?l=RouterOS-Script"
1977 | },
1978 | "rpc": {
1979 | "color": null,
1980 | "url": "https://github.com/trending?l=RPC"
1981 | },
1982 | "rpgle": {
1983 | "color": "#2BDE21",
1984 | "url": "https://github.com/trending?l=RPGLE"
1985 | },
1986 | "ruby": {
1987 | "color": "#701516",
1988 | "url": "https://github.com/trending?l=Ruby"
1989 | },
1990 | "runoff": {
1991 | "color": "#665a4e",
1992 | "url": "https://github.com/trending?l=RUNOFF"
1993 | },
1994 | "rust": {
1995 | "color": "#dea584",
1996 | "url": "https://github.com/trending?l=Rust"
1997 | },
1998 | "sage": {
1999 | "color": null,
2000 | "url": "https://github.com/trending?l=Sage"
2001 | },
2002 | "saltstack": {
2003 | "color": "#646464",
2004 | "url": "https://github.com/trending?l=SaltStack"
2005 | },
2006 | "sas": {
2007 | "color": "#B34936",
2008 | "url": "https://github.com/trending?l=SAS"
2009 | },
2010 | "sass": {
2011 | "color": "#a53b70",
2012 | "url": "https://github.com/trending?l=Sass"
2013 | },
2014 | "scala": {
2015 | "color": "#c22d40",
2016 | "url": "https://github.com/trending?l=Scala"
2017 | },
2018 | "scaml": {
2019 | "color": "#bd181a",
2020 | "url": "https://github.com/trending?l=Scaml"
2021 | },
2022 | "scenic": {
2023 | "color": "#fdc700",
2024 | "url": "https://github.com/trending?l=Scenic"
2025 | },
2026 | "scheme": {
2027 | "color": "#1e4aec",
2028 | "url": "https://github.com/trending?l=Scheme"
2029 | },
2030 | "scilab": {
2031 | "color": "#ca0f21",
2032 | "url": "https://github.com/trending?l=Scilab"
2033 | },
2034 | "scss": {
2035 | "color": "#c6538c",
2036 | "url": "https://github.com/trending?l=SCSS"
2037 | },
2038 | "sed": {
2039 | "color": "#64b970",
2040 | "url": "https://github.com/trending?l=sed"
2041 | },
2042 | "self": {
2043 | "color": "#0579aa",
2044 | "url": "https://github.com/trending?l=Self"
2045 | },
2046 | "shaderlab": {
2047 | "color": "#222c37",
2048 | "url": "https://github.com/trending?l=ShaderLab"
2049 | },
2050 | "shell": {
2051 | "color": "#89e051",
2052 | "url": "https://github.com/trending?l=Shell"
2053 | },
2054 | "shellcheck config": {
2055 | "color": "#cecfcb",
2056 | "url": "https://github.com/trending?l=ShellCheck-Config"
2057 | },
2058 | "shellsession": {
2059 | "color": null,
2060 | "url": "https://github.com/trending?l=ShellSession"
2061 | },
2062 | "shen": {
2063 | "color": "#120F14",
2064 | "url": "https://github.com/trending?l=Shen"
2065 | },
2066 | "sieve": {
2067 | "color": null,
2068 | "url": "https://github.com/trending?l=Sieve"
2069 | },
2070 | "simple file verification": {
2071 | "color": "#C9BFED",
2072 | "url": "https://github.com/trending?l=Simple-File-Verification"
2073 | },
2074 | "singularity": {
2075 | "color": "#64E6AD",
2076 | "url": "https://github.com/trending?l=Singularity"
2077 | },
2078 | "slash": {
2079 | "color": "#007eff",
2080 | "url": "https://github.com/trending?l=Slash"
2081 | },
2082 | "slice": {
2083 | "color": "#003fa2",
2084 | "url": "https://github.com/trending?l=Slice"
2085 | },
2086 | "slim": {
2087 | "color": "#2b2b2b",
2088 | "url": "https://github.com/trending?l=Slim"
2089 | },
2090 | "slint": {
2091 | "color": "#2379F4",
2092 | "url": "https://github.com/trending?l=Slint"
2093 | },
2094 | "smali": {
2095 | "color": null,
2096 | "url": "https://github.com/trending?l=Smali"
2097 | },
2098 | "smalltalk": {
2099 | "color": "#596706",
2100 | "url": "https://github.com/trending?l=Smalltalk"
2101 | },
2102 | "smarty": {
2103 | "color": "#f0c040",
2104 | "url": "https://github.com/trending?l=Smarty"
2105 | },
2106 | "smithy": {
2107 | "color": "#c44536",
2108 | "url": "https://github.com/trending?l=Smithy"
2109 | },
2110 | "smpl": {
2111 | "color": "#c94949",
2112 | "url": "https://github.com/trending?l=SmPL"
2113 | },
2114 | "smt": {
2115 | "color": null,
2116 | "url": "https://github.com/trending?l=SMT"
2117 | },
2118 | "snakemake": {
2119 | "color": "#419179",
2120 | "url": "https://github.com/trending?l=Snakemake"
2121 | },
2122 | "solidity": {
2123 | "color": "#AA6746",
2124 | "url": "https://github.com/trending?l=Solidity"
2125 | },
2126 | "sourcepawn": {
2127 | "color": "#f69e1d",
2128 | "url": "https://github.com/trending?l=SourcePawn"
2129 | },
2130 | "sparql": {
2131 | "color": "#0C4597",
2132 | "url": "https://github.com/trending?l=SPARQL"
2133 | },
2134 | "sqf": {
2135 | "color": "#3F3F3F",
2136 | "url": "https://github.com/trending?l=SQF"
2137 | },
2138 | "sql": {
2139 | "color": "#e38c00",
2140 | "url": "https://github.com/trending?l=SQL"
2141 | },
2142 | "sqlpl": {
2143 | "color": "#e38c00",
2144 | "url": "https://github.com/trending?l=SQLPL"
2145 | },
2146 | "squirrel": {
2147 | "color": "#800000",
2148 | "url": "https://github.com/trending?l=Squirrel"
2149 | },
2150 | "srecode template": {
2151 | "color": "#348a34",
2152 | "url": "https://github.com/trending?l=SRecode-Template"
2153 | },
2154 | "stan": {
2155 | "color": "#b2011d",
2156 | "url": "https://github.com/trending?l=Stan"
2157 | },
2158 | "standard ml": {
2159 | "color": "#dc566d",
2160 | "url": "https://github.com/trending?l=Standard-ML"
2161 | },
2162 | "starlark": {
2163 | "color": "#76d275",
2164 | "url": "https://github.com/trending?l=Starlark"
2165 | },
2166 | "stata": {
2167 | "color": "#1a5f91",
2168 | "url": "https://github.com/trending?l=Stata"
2169 | },
2170 | "stl": {
2171 | "color": "#373b5e",
2172 | "url": "https://github.com/trending?l=STL"
2173 | },
2174 | "stringtemplate": {
2175 | "color": "#3fb34f",
2176 | "url": "https://github.com/trending?l=StringTemplate"
2177 | },
2178 | "stylus": {
2179 | "color": "#ff6347",
2180 | "url": "https://github.com/trending?l=Stylus"
2181 | },
2182 | "subrip text": {
2183 | "color": "#9e0101",
2184 | "url": "https://github.com/trending?l=SubRip-Text"
2185 | },
2186 | "sugarss": {
2187 | "color": "#2fcc9f",
2188 | "url": "https://github.com/trending?l=SugarSS"
2189 | },
2190 | "supercollider": {
2191 | "color": "#46390b",
2192 | "url": "https://github.com/trending?l=SuperCollider"
2193 | },
2194 | "svelte": {
2195 | "color": "#ff3e00",
2196 | "url": "https://github.com/trending?l=Svelte"
2197 | },
2198 | "svg": {
2199 | "color": "#ff9900",
2200 | "url": "https://github.com/trending?l=SVG"
2201 | },
2202 | "sway": {
2203 | "color": "#00F58C",
2204 | "url": "https://github.com/trending?l=Sway"
2205 | },
2206 | "sweave": {
2207 | "color": "#198ce7",
2208 | "url": "https://github.com/trending?l=Sweave"
2209 | },
2210 | "swift": {
2211 | "color": "#F05138",
2212 | "url": "https://github.com/trending?l=Swift"
2213 | },
2214 | "swig": {
2215 | "color": null,
2216 | "url": "https://github.com/trending?l=SWIG"
2217 | },
2218 | "systemverilog": {
2219 | "color": "#DAE1C2",
2220 | "url": "https://github.com/trending?l=SystemVerilog"
2221 | },
2222 | "talon": {
2223 | "color": "#333333",
2224 | "url": "https://github.com/trending?l=Talon"
2225 | },
2226 | "tcl": {
2227 | "color": "#e4cc98",
2228 | "url": "https://github.com/trending?l=Tcl"
2229 | },
2230 | "tcsh": {
2231 | "color": null,
2232 | "url": "https://github.com/trending?l=Tcsh"
2233 | },
2234 | "terra": {
2235 | "color": "#00004c",
2236 | "url": "https://github.com/trending?l=Terra"
2237 | },
2238 | "terraform template": {
2239 | "color": "#7b42bb",
2240 | "url": "https://github.com/trending?l=Terraform-Template"
2241 | },
2242 | "tex": {
2243 | "color": "#3D6117",
2244 | "url": "https://github.com/trending?l=TeX"
2245 | },
2246 | "textgrid": {
2247 | "color": "#c8506d",
2248 | "url": "https://github.com/trending?l=TextGrid"
2249 | },
2250 | "textile": {
2251 | "color": "#ffe7ac",
2252 | "url": "https://github.com/trending?l=Textile"
2253 | },
2254 | "textmate properties": {
2255 | "color": "#df66e4",
2256 | "url": "https://github.com/trending?l=TextMate-Properties"
2257 | },
2258 | "thrift": {
2259 | "color": "#D12127",
2260 | "url": "https://github.com/trending?l=Thrift"
2261 | },
2262 | "ti program": {
2263 | "color": "#A0AA87",
2264 | "url": "https://github.com/trending?l=TI-Program"
2265 | },
2266 | "tl-verilog": {
2267 | "color": "#C40023",
2268 | "url": "https://github.com/trending?l=TL-Verilog"
2269 | },
2270 | "tla": {
2271 | "color": "#4b0079",
2272 | "url": "https://github.com/trending?l=TLA"
2273 | },
2274 | "toit": {
2275 | "color": "#c2c9fb",
2276 | "url": "https://github.com/trending?l=Toit"
2277 | },
2278 | "toml": {
2279 | "color": "#9c4221",
2280 | "url": "https://github.com/trending?l=TOML"
2281 | },
2282 | "tsql": {
2283 | "color": "#e38c00",
2284 | "url": "https://github.com/trending?l=TSQL"
2285 | },
2286 | "tsv": {
2287 | "color": "#237346",
2288 | "url": "https://github.com/trending?l=TSV"
2289 | },
2290 | "tsx": {
2291 | "color": "#3178c6",
2292 | "url": "https://github.com/trending?l=TSX"
2293 | },
2294 | "turing": {
2295 | "color": "#cf142b",
2296 | "url": "https://github.com/trending?l=Turing"
2297 | },
2298 | "twig": {
2299 | "color": "#c1d026",
2300 | "url": "https://github.com/trending?l=Twig"
2301 | },
2302 | "txl": {
2303 | "color": "#0178b8",
2304 | "url": "https://github.com/trending?l=TXL"
2305 | },
2306 | "typescript": {
2307 | "color": "#3178c6",
2308 | "url": "https://github.com/trending?l=TypeScript"
2309 | },
2310 | "typst": {
2311 | "color": "#239dad",
2312 | "url": "https://github.com/trending?l=Typst"
2313 | },
2314 | "unified parallel c": {
2315 | "color": "#4e3617",
2316 | "url": "https://github.com/trending?l=Unified-Parallel-C"
2317 | },
2318 | "unity3d asset": {
2319 | "color": "#222c37",
2320 | "url": "https://github.com/trending?l=Unity3D-Asset"
2321 | },
2322 | "unix assembly": {
2323 | "color": null,
2324 | "url": "https://github.com/trending?l=Unix-Assembly"
2325 | },
2326 | "uno": {
2327 | "color": "#9933cc",
2328 | "url": "https://github.com/trending?l=Uno"
2329 | },
2330 | "unrealscript": {
2331 | "color": "#a54c4d",
2332 | "url": "https://github.com/trending?l=UnrealScript"
2333 | },
2334 | "urweb": {
2335 | "color": "#ccccee",
2336 | "url": "https://github.com/trending?l=UrWeb"
2337 | },
2338 | "v": {
2339 | "color": "#4f87c4",
2340 | "url": "https://github.com/trending?l=V"
2341 | },
2342 | "vala": {
2343 | "color": "#a56de2",
2344 | "url": "https://github.com/trending?l=Vala"
2345 | },
2346 | "valve data format": {
2347 | "color": "#f26025",
2348 | "url": "https://github.com/trending?l=Valve-Data-Format"
2349 | },
2350 | "vba": {
2351 | "color": "#867db1",
2352 | "url": "https://github.com/trending?l=VBA"
2353 | },
2354 | "vbscript": {
2355 | "color": "#15dcdc",
2356 | "url": "https://github.com/trending?l=VBScript"
2357 | },
2358 | "vcl": {
2359 | "color": "#148AA8",
2360 | "url": "https://github.com/trending?l=VCL"
2361 | },
2362 | "velocity template language": {
2363 | "color": "#507cff",
2364 | "url": "https://github.com/trending?l=Velocity-Template-Language"
2365 | },
2366 | "verilog": {
2367 | "color": "#b2b7f8",
2368 | "url": "https://github.com/trending?l=Verilog"
2369 | },
2370 | "vhdl": {
2371 | "color": "#adb2cb",
2372 | "url": "https://github.com/trending?l=VHDL"
2373 | },
2374 | "vim help file": {
2375 | "color": "#199f4b",
2376 | "url": "https://github.com/trending?l=Vim-Help-File"
2377 | },
2378 | "vim script": {
2379 | "color": "#199f4b",
2380 | "url": "https://github.com/trending?l=Vim-Script"
2381 | },
2382 | "vim snippet": {
2383 | "color": "#199f4b",
2384 | "url": "https://github.com/trending?l=Vim-Snippet"
2385 | },
2386 | "visual basic .net": {
2387 | "color": "#945db7",
2388 | "url": "https://github.com/trending?l=Visual-Basic-.NET"
2389 | },
2390 | "visual basic 6.0": {
2391 | "color": "#2c6353",
2392 | "url": "https://github.com/trending?l=Visual-Basic-6.0"
2393 | },
2394 | "volt": {
2395 | "color": "#1F1F1F",
2396 | "url": "https://github.com/trending?l=Volt"
2397 | },
2398 | "vue": {
2399 | "color": "#41b883",
2400 | "url": "https://github.com/trending?l=Vue"
2401 | },
2402 | "vyper": {
2403 | "color": "#2980b9",
2404 | "url": "https://github.com/trending?l=Vyper"
2405 | },
2406 | "wdl": {
2407 | "color": "#42f1f4",
2408 | "url": "https://github.com/trending?l=WDL"
2409 | },
2410 | "web ontology language": {
2411 | "color": "#5b70bd",
2412 | "url": "https://github.com/trending?l=Web-Ontology-Language"
2413 | },
2414 | "webassembly": {
2415 | "color": "#04133b",
2416 | "url": "https://github.com/trending?l=WebAssembly"
2417 | },
2418 | "webassembly interface type": {
2419 | "color": "#6250e7",
2420 | "url": "https://github.com/trending?l=WebAssembly-Interface-Type"
2421 | },
2422 | "webidl": {
2423 | "color": null,
2424 | "url": "https://github.com/trending?l=WebIDL"
2425 | },
2426 | "wgsl": {
2427 | "color": "#1a5e9a",
2428 | "url": "https://github.com/trending?l=WGSL"
2429 | },
2430 | "whiley": {
2431 | "color": "#d5c397",
2432 | "url": "https://github.com/trending?l=Whiley"
2433 | },
2434 | "wikitext": {
2435 | "color": "#fc5757",
2436 | "url": "https://github.com/trending?l=Wikitext"
2437 | },
2438 | "windows registry entries": {
2439 | "color": "#52d5ff",
2440 | "url": "https://github.com/trending?l=Windows-Registry-Entries"
2441 | },
2442 | "wisp": {
2443 | "color": "#7582D1",
2444 | "url": "https://github.com/trending?l=wisp"
2445 | },
2446 | "witcher script": {
2447 | "color": "#ff0000",
2448 | "url": "https://github.com/trending?l=Witcher-Script"
2449 | },
2450 | "wollok": {
2451 | "color": "#a23738",
2452 | "url": "https://github.com/trending?l=Wollok"
2453 | },
2454 | "world of warcraft addon data": {
2455 | "color": "#f7e43f",
2456 | "url": "https://github.com/trending?l=World-of-Warcraft-Addon-Data"
2457 | },
2458 | "wren": {
2459 | "color": "#383838",
2460 | "url": "https://github.com/trending?l=Wren"
2461 | },
2462 | "x10": {
2463 | "color": "#4B6BEF",
2464 | "url": "https://github.com/trending?l=X10"
2465 | },
2466 | "xbase": {
2467 | "color": "#403a40",
2468 | "url": "https://github.com/trending?l=xBase"
2469 | },
2470 | "xc": {
2471 | "color": "#99DA07",
2472 | "url": "https://github.com/trending?l=XC"
2473 | },
2474 | "xml": {
2475 | "color": "#0060ac",
2476 | "url": "https://github.com/trending?l=XML"
2477 | },
2478 | "xml property list": {
2479 | "color": "#0060ac",
2480 | "url": "https://github.com/trending?l=XML-Property-List"
2481 | },
2482 | "xojo": {
2483 | "color": "#81bd41",
2484 | "url": "https://github.com/trending?l=Xojo"
2485 | },
2486 | "xonsh": {
2487 | "color": "#285EEF",
2488 | "url": "https://github.com/trending?l=Xonsh"
2489 | },
2490 | "xproc": {
2491 | "color": null,
2492 | "url": "https://github.com/trending?l=XProc"
2493 | },
2494 | "xquery": {
2495 | "color": "#5232e7",
2496 | "url": "https://github.com/trending?l=XQuery"
2497 | },
2498 | "xs": {
2499 | "color": null,
2500 | "url": "https://github.com/trending?l=XS"
2501 | },
2502 | "xslt": {
2503 | "color": "#EB8CEB",
2504 | "url": "https://github.com/trending?l=XSLT"
2505 | },
2506 | "xtend": {
2507 | "color": "#24255d",
2508 | "url": "https://github.com/trending?l=Xtend"
2509 | },
2510 | "yacc": {
2511 | "color": "#4B6C4B",
2512 | "url": "https://github.com/trending?l=Yacc"
2513 | },
2514 | "yaml": {
2515 | "color": "#cb171e",
2516 | "url": "https://github.com/trending?l=YAML"
2517 | },
2518 | "yara": {
2519 | "color": "#220000",
2520 | "url": "https://github.com/trending?l=YARA"
2521 | },
2522 | "yasnippet": {
2523 | "color": "#32AB90",
2524 | "url": "https://github.com/trending?l=YASnippet"
2525 | },
2526 | "yul": {
2527 | "color": "#794932",
2528 | "url": "https://github.com/trending?l=Yul"
2529 | },
2530 | "zap": {
2531 | "color": "#0d665e",
2532 | "url": "https://github.com/trending?l=ZAP"
2533 | },
2534 | "zeek": {
2535 | "color": null,
2536 | "url": "https://github.com/trending?l=Zeek"
2537 | },
2538 | "zenscript": {
2539 | "color": "#00BCD1",
2540 | "url": "https://github.com/trending?l=ZenScript"
2541 | },
2542 | "zephir": {
2543 | "color": "#118f9e",
2544 | "url": "https://github.com/trending?l=Zephir"
2545 | },
2546 | "zig": {
2547 | "color": "#ec915c",
2548 | "url": "https://github.com/trending?l=Zig"
2549 | },
2550 | "zil": {
2551 | "color": "#dc75e5",
2552 | "url": "https://github.com/trending?l=ZIL"
2553 | },
2554 | "zimpl": {
2555 | "color": "#d67711",
2556 | "url": "https://github.com/trending?l=Zimpl"
2557 | }
2558 | }
2559 |
--------------------------------------------------------------------------------
/src/utils/github.ts:
--------------------------------------------------------------------------------
1 | import { Octokit } from "octokit";
2 | import { PilledLanguage, pillgorithm } from "./pillgorithm";
3 | import { unstable_cache } from "next/cache";
4 |
5 | export type GithubData = {
6 | username: string;
7 | pilledLanguages: PilledLanguage[];
8 | };
9 | export async function nonCachedGetUsersTopLanguages(
10 | rawUser: string,
11 | ): Promise {
12 | const queryUser = rawUser.toLowerCase();
13 |
14 | // TODO: we need a lot of tokens to cycle through
15 | try {
16 | const octokit = new Octokit({
17 | auth: process.env.GITHUB_PAT,
18 | });
19 |
20 | const userInfo = (await octokit.graphql.paginate(
21 | `query GetUsernameAndRepos($username: String!, $num: Int = 100, $cursor: String) {
22 | user(login: $username) {
23 | login,
24 | repositories(first: $num, after: $cursor, isFork: false) {
25 | nodes {
26 | url,
27 | updatedAt,
28 | createdAt,
29 | languages(first: 100) {
30 | edges {
31 | size,
32 | node {
33 | name
34 | }
35 | }
36 | }
37 | }
38 | pageInfo {
39 | hasNextPage
40 | endCursor
41 | }
42 | }
43 | }
44 | }`,
45 | {
46 | username: queryUser,
47 | },
48 | )) as {
49 | user: {
50 | login: string;
51 | repositories: {
52 | nodes: {
53 | name: string;
54 | url: string;
55 | createdAt: string;
56 | updatedAt: string;
57 | languages: {
58 | edges: {
59 | size: number;
60 | node: {
61 | name: string;
62 | };
63 | }[];
64 | };
65 | }[];
66 | };
67 | };
68 | };
69 | const username = userInfo?.user?.login;
70 |
71 | userInfo.user.repositories.nodes = userInfo.user.repositories.nodes.filter(
72 | (r) =>
73 | r.url
74 | ?.toLocaleLowerCase()
75 | .startsWith(`https://github.com/${username}`.toLocaleLowerCase()),
76 | );
77 |
78 | const { pilledLanguages } = pillgorithm(
79 | userInfo.user.repositories.nodes.map((repo) => ({
80 | ...repo,
81 | languages: repo.languages.edges.map((lang) => ({
82 | name: lang.node.name,
83 | size: lang.size,
84 | })),
85 | })),
86 | );
87 |
88 | return {
89 | username,
90 | pilledLanguages,
91 | };
92 | } catch (error: any) {
93 | console.error(error);
94 | return undefined;
95 | }
96 | }
97 |
98 | const cacheKey = "githubstats-v2";
99 | const getUsersTopLanguagesCached = unstable_cache(
100 | (user: string) => nonCachedGetUsersTopLanguages(user),
101 | [cacheKey],
102 | {
103 | revalidate: 3600,
104 | },
105 | );
106 |
107 | let getUsersTopLanguages: typeof nonCachedGetUsersTopLanguages;
108 | if (process.env.NODE_ENV !== "production") {
109 | getUsersTopLanguages = nonCachedGetUsersTopLanguages;
110 | } else {
111 | getUsersTopLanguages = getUsersTopLanguagesCached;
112 | }
113 |
114 | export { getUsersTopLanguages };
115 |
--------------------------------------------------------------------------------
/src/utils/methods.ts:
--------------------------------------------------------------------------------
1 | export function formatNumber(number: number) {
2 | if (number < 1e3) return number;
3 | if (number >= 1e3 && number < 1e6) return +(number / 1e3).toFixed(1) + "K";
4 | if (number >= 1e6 && number < 1e9) return +(number / 1e6).toFixed(1) + "M";
5 | if (number >= 1e9 && number < 1e12) return +(number / 1e9).toFixed(1) + "B";
6 | if (number >= 1e12) return +(number / 1e12).toFixed(1) + "T";
7 | }
8 |
--------------------------------------------------------------------------------
/src/utils/pillgorithm.ts:
--------------------------------------------------------------------------------
1 | export type PilledLanguage = {
2 | name: string;
3 | score: number;
4 | realPercentage: number;
5 | percentage: number;
6 | };
7 |
8 | export type PillgorithmReturn = {
9 | pilledLanguages: PilledLanguage[];
10 | maxScore: number;
11 | };
12 |
13 | export type PillgorithmRepositoryInfo = {
14 | languages: { name: string; size: number }[];
15 | };
16 |
17 | export function pillgorithm(
18 | repositories: T[]
19 | ): PillgorithmReturn {
20 | const reposWithPercentages = repositories.map((repo) => {
21 | const totalBytes = repo.languages.reduce((acc, { size }) => acc + size, 0);
22 |
23 | const repoLanguagePercentages = repo.languages.reduce(
24 | (acc, { size, name }) => {
25 | acc[name] = (size / totalBytes) * 100;
26 | return acc;
27 | },
28 | {} as {
29 | [langName: string]: number;
30 | }
31 | );
32 | return { ...repo, repoLanguagePercentages };
33 | });
34 |
35 | const numberOfRepos = repositories.length;
36 |
37 | const languageRankingPercentage = reposWithPercentages.reduce((acc, repo) => {
38 | const languages = Object.entries(repo.repoLanguagePercentages);
39 | languages.forEach(([lang, score]) => {
40 | if (acc[lang]) {
41 | acc[lang] += score / numberOfRepos;
42 | } else {
43 | acc[lang] = score / numberOfRepos;
44 | }
45 | });
46 | return acc;
47 | }, {} as { [langName: string]: number });
48 |
49 | const maxScore = Object.values(languageRankingPercentage).reduce(
50 | (acc, score) => Math.max(acc, score),
51 | 0
52 | );
53 |
54 | const pilledLanguages = Object.entries(languageRankingPercentage)
55 | .map(([lang, score]) => {
56 | const precentageVal = score / maxScore;
57 | const cappedPercentage = 0.25 + precentageVal * 0.75;
58 | const beautifiedPercentage = Math.round(cappedPercentage * 10000) / 100;
59 |
60 | return {
61 | name: lang,
62 | score,
63 | realPercentage: precentageVal,
64 | percentage: beautifiedPercentage,
65 | };
66 | })
67 | .sort((a, b) => b.percentage - a.percentage)
68 | .slice(0, 5);
69 |
70 | return { pilledLanguages, maxScore };
71 | }
72 |
--------------------------------------------------------------------------------
/src/utils/tailwind.ts:
--------------------------------------------------------------------------------
1 | import { type ClassValue, clsx } from "clsx";
2 | import { twMerge } from "tailwind-merge";
3 |
4 | export function cn(...inputs: ClassValue[]) {
5 | return twMerge(clsx(inputs));
6 | }
7 |
--------------------------------------------------------------------------------
/src/utils/types.ts:
--------------------------------------------------------------------------------
1 | import colors from "@/utils/colors.json";
2 |
3 | export type LanguageName = keyof typeof colors;
4 |
--------------------------------------------------------------------------------
/tailwind.config.ts:
--------------------------------------------------------------------------------
1 | import type { Config } from "tailwindcss";
2 |
3 | const config = {
4 | darkMode: ["class"],
5 | content: [
6 | "./pages/**/*.{ts,tsx}",
7 | "./components/**/*.{ts,tsx}",
8 | "./app/**/*.{ts,tsx}",
9 | "./src/**/*.{ts,tsx}",
10 | ],
11 | prefix: "",
12 | theme: {
13 | container: {
14 | center: true,
15 | padding: "2rem",
16 | screens: {
17 | "2xl": "1400px",
18 | },
19 | },
20 | extend: {
21 | colors: {
22 | border: "hsl(var(--border))",
23 | input: "hsl(var(--input))",
24 | ring: "hsl(var(--ring))",
25 | background: "hsl(var(--background))",
26 | foreground: "hsl(var(--foreground))",
27 | primary: {
28 | DEFAULT: "hsl(var(--primary))",
29 | foreground: "hsl(var(--primary-foreground))",
30 | },
31 | secondary: {
32 | DEFAULT: "hsl(var(--secondary))",
33 | foreground: "hsl(var(--secondary-foreground))",
34 | },
35 | destructive: {
36 | DEFAULT: "hsl(var(--destructive))",
37 | foreground: "hsl(var(--destructive-foreground))",
38 | },
39 | muted: {
40 | DEFAULT: "hsl(var(--muted))",
41 | foreground: "hsl(var(--muted-foreground))",
42 | },
43 | accent: {
44 | DEFAULT: "hsl(var(--accent))",
45 | foreground: "hsl(var(--accent-foreground))",
46 | },
47 | popover: {
48 | DEFAULT: "hsl(var(--popover))",
49 | foreground: "hsl(var(--popover-foreground))",
50 | },
51 | card: {
52 | DEFAULT: "hsl(var(--card))",
53 | foreground: "hsl(var(--card-foreground))",
54 | },
55 | },
56 | borderRadius: {
57 | lg: "var(--radius)",
58 | md: "calc(var(--radius) - 2px)",
59 | sm: "calc(var(--radius) - 4px)",
60 | },
61 | keyframes: {
62 | "accordion-down": {
63 | from: { height: "0" },
64 | to: { height: "var(--radix-accordion-content-height)" },
65 | },
66 | "accordion-up": {
67 | from: { height: "var(--radix-accordion-content-height)" },
68 | to: { height: "0" },
69 | },
70 | },
71 | animation: {
72 | "accordion-down": "accordion-down 0.2s ease-out",
73 | "accordion-up": "accordion-up 0.2s ease-out",
74 | },
75 | },
76 | },
77 | plugins: [require("tailwindcss-animate")],
78 | } satisfies Config;
79 |
80 | export default config;
81 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "lib": ["dom", "dom.iterable", "esnext"],
4 | "allowJs": true,
5 | "skipLibCheck": true,
6 | "strict": true,
7 | "noEmit": true,
8 | "esModuleInterop": true,
9 | "module": "esnext",
10 | "moduleResolution": "bundler",
11 | "resolveJsonModule": true,
12 | "isolatedModules": true,
13 | "jsx": "preserve",
14 | "incremental": true,
15 | "plugins": [
16 | {
17 | "name": "next"
18 | }
19 | ],
20 | "paths": {
21 | "@/*": ["./src/*"]
22 | }
23 | },
24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
25 | "exclude": ["node_modules"]
26 | }
27 |
--------------------------------------------------------------------------------