From 04a2595a886476182fd0b40dd76370eaec38312f Mon Sep 17 00:00:00 2001 From: Mikko Ahlroth Date: Fri, 3 Sep 2021 21:43:37 +0300 Subject: [PATCH] Initial commit --- .formatter.exs | 4 + .gitignore | 26 + .tool-versions | 2 + README.md | 19 + config/config.exs | 7 + config/test.exs | 12 + lib/colour.ex | 6 + lib/database.ex | 20 + lib/ets_database.ex | 143 ++ lib/language_colours.ex | 177 ++ lib/mix/tasks/language.colours.dl.data.ex | 36 + mix.exs | 38 + mix.lock | 10 + test/colours-without-ada.json | 2106 ++++++++++++++++++++ test/colours.json | 2110 +++++++++++++++++++++ test/language_colours_test.exs | 67 + test/test_helper.exs | 1 + 17 files changed, 4784 insertions(+) create mode 100644 .formatter.exs create mode 100644 .gitignore create mode 100644 .tool-versions create mode 100644 README.md create mode 100644 config/config.exs create mode 100644 config/test.exs create mode 100644 lib/colour.ex create mode 100644 lib/database.ex create mode 100644 lib/ets_database.ex create mode 100644 lib/language_colours.ex create mode 100644 lib/mix/tasks/language.colours.dl.data.ex create mode 100644 mix.exs create mode 100644 mix.lock create mode 100644 test/colours-without-ada.json create mode 100644 test/colours.json create mode 100644 test/language_colours_test.exs create mode 100644 test/test_helper.exs diff --git a/.formatter.exs b/.formatter.exs new file mode 100644 index 0000000..d2cda26 --- /dev/null +++ b/.formatter.exs @@ -0,0 +1,4 @@ +# Used by "mix format" +[ + inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] +] diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..89484cb --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# The directory Mix will write compiled artifacts to. +/_build/ + +# If you run "mix test --cover", coverage assets end up here. +/cover/ + +# The directory Mix downloads your dependencies sources to. +/deps/ + +# Where third-party dependencies like ExDoc output generated docs. +/doc/ + +# Ignore .fetch files in case you like to edit your project deps locally. +/.fetch + +# If the VM crashes, it generates a dump, let's ignore it too. +erl_crash.dump + +# Also ignore archive artifacts (built via "mix archive.build"). +*.ez + +# Ignore package tarball (built via "mix hex.build"). +language_colours-*.tar + +# Temporary files, for example, from tests. +/tmp/ diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..5905b2d --- /dev/null +++ b/.tool-versions @@ -0,0 +1,2 @@ +elixir 1.12.1-otp-24 +erlang 24.0.3 diff --git a/README.md b/README.md new file mode 100644 index 0000000..3489c65 --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# LanguageColours + +## Installation + +If [available in Hex](https://hex.pm/docs/publish), the package can be installed +by adding `language_colours` to your list of dependencies in `mix.exs`: + +```elixir +def deps do + [ + {:language_colours, "~> 1.0.0"} + ] +end +``` + +Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc) +and published on [HexDocs](https://hexdocs.pm). Once published, the docs can +be found at [https://hexdocs.pm/language_colours](https://hexdocs.pm/language_colours). + diff --git a/config/config.exs b/config/config.exs new file mode 100644 index 0000000..ab9d887 --- /dev/null +++ b/config/config.exs @@ -0,0 +1,7 @@ +import Config + +config :language_colours, json_parser: Jason + +if Config.config_env() == "test" do + import_config("test.exs") +end diff --git a/config/test.exs b/config/test.exs new file mode 100644 index 0000000..739df68 --- /dev/null +++ b/config/test.exs @@ -0,0 +1,12 @@ +import Config + +config :language_colours, + databases: %{ + test_db: %{ + db: LanguageColours.ETSDatabase, + ets_table: :lc_ets_test, + file: "test/colours.json", + server_name: TestETSDatabase, + fallback: true + } + } diff --git a/lib/colour.ex b/lib/colour.ex new file mode 100644 index 0000000..65016e3 --- /dev/null +++ b/lib/colour.ex @@ -0,0 +1,6 @@ +defmodule LanguageColours.Colour do + @typedoc """ + A colour returned by the API, a hex colour of six characters with a hash prepended. + """ + @type t :: String.t() +end diff --git a/lib/database.ex b/lib/database.ex new file mode 100644 index 0000000..3bea8ea --- /dev/null +++ b/lib/database.ex @@ -0,0 +1,20 @@ +defmodule LanguageColours.Database do + @moduledoc """ + Behaviour that must be implemented by a database. + + Each function gets a database configuration as argument. This configuration should be used to + talk to the correct database instance. + + It is not necessary to deal with the fallback as the main module handles that. + """ + + @doc """ + Get a colour for the given language, or `nil`. + """ + @callback get(language :: String.t(), db_config :: map()) :: LanguageColours.Colour.t() | nil + + @doc """ + Update the language dataset using the configuration. + """ + @callback update(db_config :: map()) :: :ok +end diff --git a/lib/ets_database.ex b/lib/ets_database.ex new file mode 100644 index 0000000..6a7c92e --- /dev/null +++ b/lib/ets_database.ex @@ -0,0 +1,143 @@ +defmodule LanguageColours.ETSDatabase do + @moduledoc """ + Database that stores the language colours in an ETS table. Get operations will directly read + from the database, update operations will be serialized through the database process. + + Please see [the main module documentation](LanguageColours.html#module-configuration) for the + available configuration options and how to set up the database. + """ + + use GenServer + + require Logger + + @behaviour LanguageColours.Database + + @table :language_colours_etsdatabase + + defmodule Options do + @enforce_keys [:file] + defstruct [:file, server_opts: [], ets_table: :language_colours_etsdatabase] + + @typedoc """ + Options to give to the `LanguageColours.ETSDatabase.start_link/1` function. + + * `:server_opts`: Any options to give to `GenServer.start_link/3`. + * `:file`: The file to read JSON data from. + * `:ets_table`: Name of the ETS table to store the data in. + """ + @type t :: %__MODULE__{ + server_opts: GenServer.options(), + file: Path.t(), + ets_table: atom() + } + end + + defmodule State do + @moduledoc false + + @enforce_keys [:ets_table, :init_file] + defstruct [:ets_table, :init_file] + + @type t :: %__MODULE__{ + ets_table: :ets.tid() | atom(), + init_file: Path.t() + } + end + + @spec start_link(Options.t()) :: GenServer.on_start() + def start_link(%Options{} = opts) do + opts = update_in(opts.server_opts[:name], &(&1 || __MODULE__)) + + GenServer.start_link(__MODULE__, opts, opts.server_opts) + end + + @impl true + @spec init(Options.t()) :: {:ok, State.t()} + def init(%Options{} = opts) do + tid = + :ets.new(opts.ets_table, [ + :named_table, + :set, + :protected, + read_concurrency: true + ]) + + load_file(tid, opts.file) + + {:ok, %State{ets_table: tid, init_file: opts.file}} + end + + @impl true + def handle_call(msg, from, state) + + def handle_call({:update, file}, _from, %State{} = state) do + file = file || state.init_file + + load_file(state.ets_table, file) + {:reply, :ok, state} + end + + @impl true + def get(language, db_config) do + table = Map.get(db_config, :ets_table, @table) + + case :ets.lookup(table, String.downcase(language)) do + [] -> nil + [{_, colour}] -> colour + end + end + + @impl true + def update(db_config) do + server = Map.get(db_config, :server_name, __MODULE__) + file = Map.get(db_config, :file) + + GenServer.call(server, {:update, file}) + end + + @doc """ + Get an `t:LanguageColours.ETSDatabase.Options.t/0` struct corresponding to the given database + configuration. + + This is a helper for forming the options struct for starting the database in a supervisor. + + NOTE: When using this function, the `:file` option is required. + """ + @spec startup_options(map()) :: Options.t() + def startup_options(db_config) do + %Options{ + file: Map.fetch!(db_config, :file), + ets_table: Map.get(db_config, :ets_table, @table), + server_opts: [name: Map.get(db_config, :server_name)] + } + end + + @spec load_file(:ets.tid() | atom(), Path.t()) :: :ok + defp load_file(tid, file) do + json_parser = Application.get_env(:language_colours, :json_parser, Jason) + + with {:read, {:ok, data}} <- {:read, File.read(file)}, + {:json, {:ok, parsed}} <- {:json, json_parser.decode(data)} do + data = + Enum.map(parsed, fn {key, value} -> + {String.downcase(key), Map.get(value, "color")} + end) + + :ets.insert(tid, data) + + # Delete any languages that were not in updated data + new_languages = parsed |> Map.keys() |> MapSet.new(&String.downcase/1) + all_languages = tid |> :ets.tab2list() |> Enum.map(&elem(&1, 0)) |> MapSet.new() + old_languages = MapSet.difference(all_languages, new_languages) + Enum.each(old_languages, &:ets.delete(tid, &1)) + + Logger.debug( + "Read #{Enum.count(data)} languages from JSON and deleted #{Enum.count(old_languages)} stale." + ) + else + {:read, _} -> raise "Could not read file #{file}" + {:json, err} -> raise "Could not parse file #{file}: #{inspect(err)}" + end + end +end diff --git a/lib/language_colours.ex b/lib/language_colours.ex new file mode 100644 index 0000000..ca581b3 --- /dev/null +++ b/lib/language_colours.ex @@ -0,0 +1,177 @@ +defmodule LanguageColours do + @moduledoc """ + LanguageColours offers an API for retrieving colours for programming languages based on GitHub + colour data (or some other dataset). + + ```iex + iex> LanguageColours.get("Ada", :my_db) + "#02f88c" + ``` + + To install, add LanguageColours as a dependency of your Mix project: + + ```elixir + defp deps do + [ + {:language_colours, "~> 1.0.0"}, + ... + ] + end + ``` + + ## Databases + + LanguageColours can be served by different databases. Databases must conform to the + `LanguageColours.Database` behaviour. There is one database included, the + `LanguageColours.ETSDatabase`, that uses ETS to store the language colour data. As a source, it + uses a JSON file in the format found in the https://github.com/ozh/github-colors/ repo. This + file can be downloaded in a development environment with `mix language.colours.dl.data`. + + ## Fallback colours + + If a language is not found in the database, `nil` will be returned by default. Optionally, the + [Rainbow](https://hex.pm/packages/rainbow) package can be used to generate a random colour based + on the language name as fallback. To use the fallback, set the database configuration option + `:fallback` to `true`, and install Rainbow as a dependency: + + ```elixir + defp deps do + [ + {:rainbow, "~> 0.1.0"}, + ... + ] + end + ``` + + ## Configuration + + To configure a database, you can give the configuration directly in the function call: + + ```elixir + config = %{...} + LanguageColours.get("C++", config) + ``` + + Or you can configure database aliases in your favourite config file (`runtime.exs` is + recommended so you don't need to recompile the app on config changes): + + ```elixir + # Config file + config :language_colours, + databases: %{ + foo_db: %{ + ... + } + } + ``` + + Then you can use this name in the function call: + + ```elixir + LanguageColours.get("COBOL", :foo_db) + ``` + + The supported configuration options are: + + * `:json_parser`: Module name of the JSON parser to use. Default is + [Jason](https://hex.pm/packages/jason). + * `:databases`: An atom-keyed map of database specific configurations, which can be maps + themselves or keyword lists. + + The database specific configuration options are: + + * `:db`: The database module to use. This option is required. + * `:fallback`: Boolean specifying whether to get a fallback colour from Rainbow or not, if + language was not found in database. Default `false`. + + Additionally, the ETSDatabase has its own database specific options: + + * `:file`: Path to the file to read the JSON data from. + * `:server_name`: The name to use for the database process. Must conform to + `t:GenServer.name/0`. By default the module name is used. + * `:ets_table`: Name of the ETS table to use. + + ## Setting up using ETSDatabase + + First configure your database. Then start the database in your supervisor using the + `LanguageColours.ETSDatabase.startup_options/1` function like this: + + ```elixir + config = LanguageColours.config!(:foo_db) + children = [ + ..., + {LanguageColours.ETSDatabase, LanguageColours.ETSDatabase.startup_options(config)}, + ... + ] + ``` + + Alternatively you can directly give the `t:LanguageColours.ETSDatabase.Options.t/0` struct as + the argument. + """ + + @doc """ + Get the colour corresponding to the given language. + + The database specified in the second argument (as configuration or preconfigured database name) + is used to fetch the language. If the language is not found and fallback is not configured, + `nil` is returned. + """ + @spec get(String.t(), atom() | keyword() | map()) :: LanguageColours.Colour.t() | nil + def get(language, db_or_config) + + def get(language, db) when is_atom(db) do + config = config!(db) + + get(language, config) + end + + def get(language, config) when is_list(config) do + get(language, Map.new(config)) + end + + def get(language, config) when is_map(config) do + colour = config.db.get(language, config) + + if is_nil(colour) && Map.get(config, :fallback) do + Rainbow.colorize(language, format: "hexcolor") + else + colour + end + end + + @doc """ + Update the database specified in the argument. + + The argument may be a preconfigured database name or a configuration map/kwlist. + """ + @spec update(atom() | keyword() | map()) :: :ok + def update(db_or_config) + + def update(db) when is_atom(db) do + config = config!(db) + + update(config) + end + + def update(config) when is_list(config) do + update(Map.new(config)) + end + + def update(config) when is_map(config) do + config.db.update(config) + end + + @doc """ + Retrieve the configuration for the given database name. + + If the database is not configured, an error will be raised. + """ + @spec config!(atom()) :: map() + def config!(db) do + conf = + Application.get_env(:language_colours, :databases) || + raise "LanguageColours databases not configured!" + + Map.get(conf, db) || raise "Configuration for #{inspect(db)} colour database not found!" + end +end diff --git a/lib/mix/tasks/language.colours.dl.data.ex b/lib/mix/tasks/language.colours.dl.data.ex new file mode 100644 index 0000000..2378e98 --- /dev/null +++ b/lib/mix/tasks/language.colours.dl.data.ex @@ -0,0 +1,36 @@ +defmodule Mix.Tasks.Language.Colours.Dl.Data do + use Mix.Task + + @moduledoc """ + Download the GitHub colours JSON dataset (or any other specified dataset). + + **NOTE**: This function does not check the HTTPS certificate! Check the file after downloading + and only use this task as a helper during development. + + You can specify the download URL and file path to put the download to with flags: + + ```bash + mix language.colours.dl.data --url 'https://raw.githubusercontent.com/ozh/github-colors/master/colors.json' --path 'priv/language_colours/data.json' + ``` + + The directories leading to the output file will be created if necessary. + """ + + @default_url "https://raw.githubusercontent.com/ozh/github-colors/master/colors.json" + + @doc false + @impl true + def run(argv) do + {opts, _, _} = OptionParser.parse(argv, strict: [url: :string, path: :string]) + + url = opts |> Keyword.get(:url, @default_url) |> String.to_charlist() + path = Keyword.get(opts, :path, Path.join(File.cwd!(), "colours.json")) + + Application.ensure_all_started(:inets) + Application.ensure_all_started(:ssl) + + {:ok, {_, _, data}} = :httpc.request(:get, {url, []}, [], []) + path |> Path.dirname() |> File.mkdir_p!() + File.write!(path, data) + end +end diff --git a/mix.exs b/mix.exs new file mode 100644 index 0000000..618d592 --- /dev/null +++ b/mix.exs @@ -0,0 +1,38 @@ +defmodule LanguageColours.MixProject do + use Mix.Project + + def project do + [ + app: :language_colours, + version: "1.0.0", + elixir: "~> 1.12", + start_permanent: Mix.env() == :prod, + deps: deps(), + + # Docs + name: "LanguageColours", + source_url: "https://gitlab.com/Nicd/language_colours", + homepage_url: "https://gitlab.com/Nicd/language_colours", + docs: [ + # The main page in the docs + main: "LanguageColours" + ] + ] + end + + # Run "mix help compile.app" to learn about applications. + def application do + [ + extra_applications: [:logger] + ] + end + + # Run "mix help deps" to learn about dependencies. + defp deps do + [ + {:ex_doc, "~> 0.24", only: :dev, runtime: false}, + {:rainbow, "~> 0.1.0", optional: true}, + {:jason, "~> 1.2.2", optional: true} + ] + end +end diff --git a/mix.lock b/mix.lock new file mode 100644 index 0000000..26a887b --- /dev/null +++ b/mix.lock @@ -0,0 +1,10 @@ +%{ + "earmark_parser": {:hex, :earmark_parser, "1.4.15", "b29e8e729f4aa4a00436580dcc2c9c5c51890613457c193cc8525c388ccb2f06", [:mix], [], "hexpm", "044523d6438ea19c1b8ec877ec221b008661d3c27e3b848f4c879f500421ca5c"}, + "ex_doc": {:hex, :ex_doc, "0.25.2", "4f1cae793c4d132e06674b282f1d9ea3bf409bcca027ddb2fe177c4eed6a253f", [:mix], [{:earmark_parser, "~> 1.4.0", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "5b0c172e87ac27f14dfd152d52a145238ec71a95efbf29849550278c58a393d6"}, + "jason": {:hex, :jason, "1.2.2", "ba43e3f2709fd1aa1dce90aaabfd039d000469c05c56f0b8e31978e03fa39052", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "18a228f5f0058ee183f29f9eae0805c6e59d61c3b006760668d8d18ff0d12179"}, + "makeup": {:hex, :makeup, "1.0.5", "d5a830bc42c9800ce07dd97fa94669dfb93d3bf5fcf6ea7a0c67b2e0e4a7f26c", [:mix], [{:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cfa158c02d3f5c0c665d0af11512fed3fba0144cf1aadee0f2ce17747fba2ca9"}, + "makeup_elixir": {:hex, :makeup_elixir, "0.15.1", "b5888c880d17d1cc3e598f05cdb5b5a91b7b17ac4eaf5f297cb697663a1094dd", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.1", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "db68c173234b07ab2a07f645a5acdc117b9f99d69ebf521821d89690ae6c6ec8"}, + "makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"}, + "nimble_parsec": {:hex, :nimble_parsec, "1.1.0", "3a6fca1550363552e54c216debb6a9e95bd8d32348938e13de5eda962c0d7f89", [:mix], [], "hexpm", "08eb32d66b706e913ff748f11694b17981c0b04a33ef470e33e11b3d3ac8f54b"}, + "rainbow": {:hex, :rainbow, "0.1.0", "8d7da09f978997bd45c99315cc01319704516edd40d3c20d11cf4abd0e4f3d80", [:mix], [], "hexpm", "301a771cbbd2898bebddfddbfa5ae2bef27fe1edb8cd9574e6452239eb8eb80b"}, +} diff --git a/test/colours-without-ada.json b/test/colours-without-ada.json new file mode 100644 index 0000000..47cbed3 --- /dev/null +++ b/test/colours-without-ada.json @@ -0,0 +1,2106 @@ +{ + "1C Enterprise": { + "color": "#ABCDEF", + "url": "https://github.com/trending?l=1C-Enterprise" + }, + "4D": { + "color": "#004289", + "url": "https://github.com/trending?l=4D" + }, + "ABAP": { + "color": "#E8274B", + "url": "https://github.com/trending?l=ABAP" + }, + "ABAP CDS": { + "color": "#555e25", + "url": "https://github.com/trending?l=ABAP-CDS" + }, + "ActionScript": { + "color": "#882B0F", + "url": "https://github.com/trending?l=ActionScript" + }, + "Adobe Font Metrics": { + "color": "#fa0f00", + "url": "https://github.com/trending?l=Adobe-Font-Metrics" + }, + "Agda": { + "color": "#315665", + "url": "https://github.com/trending?l=Agda" + }, + "AGS Script": { + "color": "#B9D9FF", + "url": "https://github.com/trending?l=AGS-Script" + }, + "AIDL": { + "color": "#34EB6B", + "url": "https://github.com/trending?l=AIDL" + }, + "AL": { + "color": "#3AA2B5", + "url": "https://github.com/trending?l=AL" + }, + "Alloy": { + "color": "#64C800", + "url": "https://github.com/trending?l=Alloy" + }, + "Alpine Abuild": { + "color": "#0D597F", + "url": "https://github.com/trending?l=Alpine-Abuild" + }, + "Altium Designer": { + "color": "#A89663", + "url": "https://github.com/trending?l=Altium-Designer" + }, + "AMPL": { + "color": "#E6EFBB", + "url": "https://github.com/trending?l=AMPL" + }, + "AngelScript": { + "color": "#C7D7DC", + "url": "https://github.com/trending?l=AngelScript" + }, + "Ant Build System": { + "color": "#A9157E", + "url": "https://github.com/trending?l=Ant-Build-System" + }, + "ANTLR": { + "color": "#9DC3FF", + "url": "https://github.com/trending?l=ANTLR" + }, + "ApacheConf": { + "color": "#d12127", + "url": "https://github.com/trending?l=ApacheConf" + }, + "Apex": { + "color": "#1797c0", + "url": "https://github.com/trending?l=Apex" + }, + "API Blueprint": { + "color": "#2ACCA8", + "url": "https://github.com/trending?l=API-Blueprint" + }, + "APL": { + "color": "#5A8164", + "url": "https://github.com/trending?l=APL" + }, + "Apollo Guidance Computer": { + "color": "#0B3D91", + "url": "https://github.com/trending?l=Apollo-Guidance-Computer" + }, + "AppleScript": { + "color": "#101F1F", + "url": "https://github.com/trending?l=AppleScript" + }, + "Arc": { + "color": "#aa2afe", + "url": "https://github.com/trending?l=Arc" + }, + "AsciiDoc": { + "color": "#73a0c5", + "url": "https://github.com/trending?l=AsciiDoc" + }, + "ASL": { + "color": null, + "url": "https://github.com/trending?l=ASL" + }, + "ASP.NET": { + "color": "#9400ff", + "url": "https://github.com/trending?l=ASP.NET" + }, + "AspectJ": { + "color": "#a957b0", + "url": "https://github.com/trending?l=AspectJ" + }, + "Assembly": { + "color": "#6E4C13", + "url": "https://github.com/trending?l=Assembly" + }, + "Astro": { + "color": "#ff5a03", + "url": "https://github.com/trending?l=Astro" + }, + "Asymptote": { + "color": "#ff0000", + "url": "https://github.com/trending?l=Asymptote" + }, + "ATS": { + "color": "#1ac620", + "url": "https://github.com/trending?l=ATS" + }, + "Augeas": { + "color": "#9CC134", + "url": "https://github.com/trending?l=Augeas" + }, + "AutoHotkey": { + "color": "#6594b9", + "url": "https://github.com/trending?l=AutoHotkey" + }, + "AutoIt": { + "color": "#1C3552", + "url": "https://github.com/trending?l=AutoIt" + }, + "Avro IDL": { + "color": "#0040FF", + "url": "https://github.com/trending?l=Avro-IDL" + }, + "Awk": { + "color": "#c30e9b", + "url": "https://github.com/trending?l=Awk" + }, + "Ballerina": { + "color": "#FF5000", + "url": "https://github.com/trending?l=Ballerina" + }, + "BASIC": { + "color": "#ff0000", + "url": "https://github.com/trending?l=BASIC" + }, + "Batchfile": { + "color": "#C1F12E", + "url": "https://github.com/trending?l=Batchfile" + }, + "Beef": { + "color": "#a52f4e", + "url": "https://github.com/trending?l=Beef" + }, + "Befunge": { + "color": null, + "url": "https://github.com/trending?l=Befunge" + }, + "BibTeX": { + "color": "#778899", + "url": "https://github.com/trending?l=BibTeX" + }, + "Bicep": { + "color": "#519aba", + "url": "https://github.com/trending?l=Bicep" + }, + "Bison": { + "color": "#6A463F", + "url": "https://github.com/trending?l=Bison" + }, + "BitBake": { + "color": "#00bce4", + "url": "https://github.com/trending?l=BitBake" + }, + "Blade": { + "color": "#f7523f", + "url": "https://github.com/trending?l=Blade" + }, + "BlitzBasic": { + "color": "#00FFAE", + "url": "https://github.com/trending?l=BlitzBasic" + }, + "BlitzMax": { + "color": "#cd6400", + "url": "https://github.com/trending?l=BlitzMax" + }, + "Bluespec": { + "color": "#12223c", + "url": "https://github.com/trending?l=Bluespec" + }, + "Boo": { + "color": "#d4bec1", + "url": "https://github.com/trending?l=Boo" + }, + "Boogie": { + "color": "#c80fa0", + "url": "https://github.com/trending?l=Boogie" + }, + "Brainfuck": { + "color": "#2F2530", + "url": "https://github.com/trending?l=Brainfuck" + }, + "Brightscript": { + "color": "#662D91", + "url": "https://github.com/trending?l=Brightscript" + }, + "Browserslist": { + "color": "#ffd539", + "url": "https://github.com/trending?l=Browserslist" + }, + "C": { + "color": "#555555", + "url": "https://github.com/trending?l=C" + }, + "C#": { + "color": "#178600", + "url": "https://github.com/trending?l=Csharp" + }, + "C++": { + "color": "#f34b7d", + "url": "https://github.com/trending?l=C++" + }, + "C2hs Haskell": { + "color": null, + "url": "https://github.com/trending?l=C2hs-Haskell" + }, + "Cabal Config": { + "color": "#483465", + "url": "https://github.com/trending?l=Cabal-Config" + }, + "Cap'n Proto": { + "color": "#c42727", + "url": "https://github.com/trending?l=Cap'n-Proto" + }, + "CartoCSS": { + "color": null, + "url": "https://github.com/trending?l=CartoCSS" + }, + "Ceylon": { + "color": "#dfa535", + "url": "https://github.com/trending?l=Ceylon" + }, + "Chapel": { + "color": "#8dc63f", + "url": "https://github.com/trending?l=Chapel" + }, + "Charity": { + "color": null, + "url": "https://github.com/trending?l=Charity" + }, + "ChucK": { + "color": "#3f8000", + "url": "https://github.com/trending?l=ChucK" + }, + "Cirru": { + "color": "#ccccff", + "url": "https://github.com/trending?l=Cirru" + }, + "Clarion": { + "color": "#db901e", + "url": "https://github.com/trending?l=Clarion" + }, + "Classic ASP": { + "color": "#6a40fd", + "url": "https://github.com/trending?l=Classic-ASP" + }, + "Clean": { + "color": "#3F85AF", + "url": "https://github.com/trending?l=Clean" + }, + "Click": { + "color": "#E4E6F3", + "url": "https://github.com/trending?l=Click" + }, + "CLIPS": { + "color": "#00A300", + "url": "https://github.com/trending?l=CLIPS" + }, + "Clojure": { + "color": "#db5855", + "url": "https://github.com/trending?l=Clojure" + }, + "Closure Templates": { + "color": "#0d948f", + "url": "https://github.com/trending?l=Closure-Templates" + }, + "Cloud Firestore Security Rules": { + "color": "#FFA000", + "url": "https://github.com/trending?l=Cloud-Firestore-Security-Rules" + }, + "CMake": { + "color": "#DA3434", + "url": "https://github.com/trending?l=CMake" + }, + "COBOL": { + "color": null, + "url": "https://github.com/trending?l=COBOL" + }, + "CodeQL": { + "color": "#140f46", + "url": "https://github.com/trending?l=CodeQL" + }, + "CoffeeScript": { + "color": "#244776", + "url": "https://github.com/trending?l=CoffeeScript" + }, + "ColdFusion": { + "color": "#ed2cd6", + "url": "https://github.com/trending?l=ColdFusion" + }, + "ColdFusion CFC": { + "color": "#ed2cd6", + "url": "https://github.com/trending?l=ColdFusion-CFC" + }, + "COLLADA": { + "color": "#F1A42B", + "url": "https://github.com/trending?l=COLLADA" + }, + "Common Lisp": { + "color": "#3fb68b", + "url": "https://github.com/trending?l=Common-Lisp" + }, + "Common Workflow Language": { + "color": "#B5314C", + "url": "https://github.com/trending?l=Common-Workflow-Language" + }, + "Component Pascal": { + "color": "#B0CE4E", + "url": "https://github.com/trending?l=Component-Pascal" + }, + "Cool": { + "color": null, + "url": "https://github.com/trending?l=Cool" + }, + "Coq": { + "color": "#d0b68c", + "url": "https://github.com/trending?l=Coq" + }, + "Crystal": { + "color": "#000100", + "url": "https://github.com/trending?l=Crystal" + }, + "CSON": { + "color": "#244776", + "url": "https://github.com/trending?l=CSON" + }, + "Csound": { + "color": "#1a1a1a", + "url": "https://github.com/trending?l=Csound" + }, + "Csound Document": { + "color": "#1a1a1a", + "url": "https://github.com/trending?l=Csound-Document" + }, + "Csound Score": { + "color": "#1a1a1a", + "url": "https://github.com/trending?l=Csound-Score" + }, + "CSS": { + "color": "#563d7c", + "url": "https://github.com/trending?l=CSS" + }, + "CSV": { + "color": "#237346", + "url": "https://github.com/trending?l=CSV" + }, + "Cuda": { + "color": "#3A4E3A", + "url": "https://github.com/trending?l=Cuda" + }, + "CUE": { + "color": "#5886E1", + "url": "https://github.com/trending?l=CUE" + }, + "CWeb": { + "color": "#00007a", + "url": "https://github.com/trending?l=CWeb" + }, + "Cycript": { + "color": null, + "url": "https://github.com/trending?l=Cycript" + }, + "Cython": { + "color": "#fedf5b", + "url": "https://github.com/trending?l=Cython" + }, + "D": { + "color": "#ba595e", + "url": "https://github.com/trending?l=D" + }, + "Dafny": { + "color": "#FFEC25", + "url": "https://github.com/trending?l=Dafny" + }, + "Darcs Patch": { + "color": "#8eff23", + "url": "https://github.com/trending?l=Darcs-Patch" + }, + "Dart": { + "color": "#00B4AB", + "url": "https://github.com/trending?l=Dart" + }, + "DataWeave": { + "color": "#003a52", + "url": "https://github.com/trending?l=DataWeave" + }, + "Dhall": { + "color": "#dfafff", + "url": "https://github.com/trending?l=Dhall" + }, + "DIGITAL Command Language": { + "color": null, + "url": "https://github.com/trending?l=DIGITAL-Command-Language" + }, + "DirectX 3D File": { + "color": "#aace60", + "url": "https://github.com/trending?l=DirectX-3D-File" + }, + "DM": { + "color": "#447265", + "url": "https://github.com/trending?l=DM" + }, + "Dockerfile": { + "color": "#384d54", + "url": "https://github.com/trending?l=Dockerfile" + }, + "Dogescript": { + "color": "#cca760", + "url": "https://github.com/trending?l=Dogescript" + }, + "DTrace": { + "color": null, + "url": "https://github.com/trending?l=DTrace" + }, + "Dylan": { + "color": "#6c616e", + "url": "https://github.com/trending?l=Dylan" + }, + "E": { + "color": "#ccce35", + "url": "https://github.com/trending?l=E" + }, + "Easybuild": { + "color": "#069406", + "url": "https://github.com/trending?l=Easybuild" + }, + "eC": { + "color": "#913960", + "url": "https://github.com/trending?l=eC" + }, + "Ecere Projects": { + "color": "#913960", + "url": "https://github.com/trending?l=Ecere-Projects" + }, + "ECL": { + "color": "#8a1267", + "url": "https://github.com/trending?l=ECL" + }, + "ECLiPSe": { + "color": "#001d9d", + "url": "https://github.com/trending?l=ECLiPSe" + }, + "EditorConfig": { + "color": "#fff1f2", + "url": "https://github.com/trending?l=EditorConfig" + }, + "Eiffel": { + "color": "#4d6977", + "url": "https://github.com/trending?l=Eiffel" + }, + "EJS": { + "color": "#a91e50", + "url": "https://github.com/trending?l=EJS" + }, + "Elixir": { + "color": "#6e4a7e", + "url": "https://github.com/trending?l=Elixir" + }, + "Elm": { + "color": "#60B5CC", + "url": "https://github.com/trending?l=Elm" + }, + "Emacs Lisp": { + "color": "#c065db", + "url": "https://github.com/trending?l=Emacs-Lisp" + }, + "EmberScript": { + "color": "#FFF4F3", + "url": "https://github.com/trending?l=EmberScript" + }, + "EQ": { + "color": "#a78649", + "url": "https://github.com/trending?l=EQ" + }, + "Erlang": { + "color": "#B83998", + "url": "https://github.com/trending?l=Erlang" + }, + "F#": { + "color": "#b845fc", + "url": "https://github.com/trending?l=Fsharp" + }, + "F*": { + "color": "#572e30", + "url": "https://github.com/trending?l=F*" + }, + "Factor": { + "color": "#636746", + "url": "https://github.com/trending?l=Factor" + }, + "Fancy": { + "color": "#7b9db4", + "url": "https://github.com/trending?l=Fancy" + }, + "Fantom": { + "color": "#14253c", + "url": "https://github.com/trending?l=Fantom" + }, + "Faust": { + "color": "#c37240", + "url": "https://github.com/trending?l=Faust" + }, + "Fennel": { + "color": "#fff3d7", + "url": "https://github.com/trending?l=Fennel" + }, + "FIGlet Font": { + "color": "#FFDDBB", + "url": "https://github.com/trending?l=FIGlet-Font" + }, + "Filebench WML": { + "color": "#F6B900", + "url": "https://github.com/trending?l=Filebench-WML" + }, + "Filterscript": { + "color": null, + "url": "https://github.com/trending?l=Filterscript" + }, + "fish": { + "color": "#4aae47", + "url": "https://github.com/trending?l=fish" + }, + "Fluent": { + "color": "#ffcc33", + "url": "https://github.com/trending?l=Fluent" + }, + "FLUX": { + "color": "#88ccff", + "url": "https://github.com/trending?l=FLUX" + }, + "Forth": { + "color": "#341708", + "url": "https://github.com/trending?l=Forth" + }, + "Fortran": { + "color": "#4d41b1", + "url": "https://github.com/trending?l=Fortran" + }, + "Fortran Free Form": { + "color": "#4d41b1", + "url": "https://github.com/trending?l=Fortran-Free-Form" + }, + "FreeBasic": { + "color": "#867db1", + "url": "https://github.com/trending?l=FreeBasic" + }, + "FreeMarker": { + "color": "#0050b2", + "url": "https://github.com/trending?l=FreeMarker" + }, + "Frege": { + "color": "#00cafe", + "url": "https://github.com/trending?l=Frege" + }, + "Futhark": { + "color": "#5f021f", + "url": "https://github.com/trending?l=Futhark" + }, + "G-code": { + "color": "#D08CF2", + "url": "https://github.com/trending?l=G-code" + }, + "Game Maker Language": { + "color": "#71b417", + "url": "https://github.com/trending?l=Game-Maker-Language" + }, + "GAML": { + "color": "#FFC766", + "url": "https://github.com/trending?l=GAML" + }, + "GAMS": { + "color": "#f49a22", + "url": "https://github.com/trending?l=GAMS" + }, + "GAP": { + "color": "#0000cc", + "url": "https://github.com/trending?l=GAP" + }, + "GCC Machine Description": { + "color": "#FFCFAB", + "url": "https://github.com/trending?l=GCC-Machine-Description" + }, + "GDB": { + "color": null, + "url": "https://github.com/trending?l=GDB" + }, + "GDScript": { + "color": "#355570", + "url": "https://github.com/trending?l=GDScript" + }, + "GEDCOM": { + "color": "#003058", + "url": "https://github.com/trending?l=GEDCOM" + }, + "Gemfile.lock": { + "color": "#701516", + "url": "https://github.com/trending?l=Gemfile.lock" + }, + "Genie": { + "color": "#fb855d", + "url": "https://github.com/trending?l=Genie" + }, + "Genshi": { + "color": "#951531", + "url": "https://github.com/trending?l=Genshi" + }, + "Gentoo Ebuild": { + "color": "#9400ff", + "url": "https://github.com/trending?l=Gentoo-Ebuild" + }, + "Gentoo Eclass": { + "color": "#9400ff", + "url": "https://github.com/trending?l=Gentoo-Eclass" + }, + "Gerber Image": { + "color": "#d20b00", + "url": "https://github.com/trending?l=Gerber-Image" + }, + "Gherkin": { + "color": "#5B2063", + "url": "https://github.com/trending?l=Gherkin" + }, + "Git Attributes": { + "color": "#F44D27", + "url": "https://github.com/trending?l=Git-Attributes" + }, + "Git Config": { + "color": "#F44D27", + "url": "https://github.com/trending?l=Git-Config" + }, + "GLSL": { + "color": "#5686a5", + "url": "https://github.com/trending?l=GLSL" + }, + "Glyph": { + "color": "#c1ac7f", + "url": "https://github.com/trending?l=Glyph" + }, + "Gnuplot": { + "color": "#f0a9f0", + "url": "https://github.com/trending?l=Gnuplot" + }, + "Go": { + "color": "#00ADD8", + "url": "https://github.com/trending?l=Go" + }, + "Golo": { + "color": "#88562A", + "url": "https://github.com/trending?l=Golo" + }, + "Gosu": { + "color": "#82937f", + "url": "https://github.com/trending?l=Gosu" + }, + "Grace": { + "color": "#615f8b", + "url": "https://github.com/trending?l=Grace" + }, + "Gradle": { + "color": "#02303a", + "url": "https://github.com/trending?l=Gradle" + }, + "Grammatical Framework": { + "color": "#ff0000", + "url": "https://github.com/trending?l=Grammatical-Framework" + }, + "GraphQL": { + "color": "#e10098", + "url": "https://github.com/trending?l=GraphQL" + }, + "Graphviz (DOT)": { + "color": "#2596be", + "url": "https://github.com/trending?l=Graphviz-(DOT)" + }, + "Groovy": { + "color": "#4298b8", + "url": "https://github.com/trending?l=Groovy" + }, + "Groovy Server Pages": { + "color": "#4298b8", + "url": "https://github.com/trending?l=Groovy-Server-Pages" + }, + "Hack": { + "color": "#878787", + "url": "https://github.com/trending?l=Hack" + }, + "Haml": { + "color": "#ece2a9", + "url": "https://github.com/trending?l=Haml" + }, + "Handlebars": { + "color": "#f7931e", + "url": "https://github.com/trending?l=Handlebars" + }, + "HAProxy": { + "color": "#106da9", + "url": "https://github.com/trending?l=HAProxy" + }, + "Harbour": { + "color": "#0e60e3", + "url": "https://github.com/trending?l=Harbour" + }, + "Haskell": { + "color": "#5e5086", + "url": "https://github.com/trending?l=Haskell" + }, + "Haxe": { + "color": "#df7900", + "url": "https://github.com/trending?l=Haxe" + }, + "HCL": { + "color": null, + "url": "https://github.com/trending?l=HCL" + }, + "HiveQL": { + "color": "#dce200", + "url": "https://github.com/trending?l=HiveQL" + }, + "HLSL": { + "color": "#aace60", + "url": "https://github.com/trending?l=HLSL" + }, + "HolyC": { + "color": "#ffefaf", + "url": "https://github.com/trending?l=HolyC" + }, + "HTML": { + "color": "#e34c26", + "url": "https://github.com/trending?l=HTML" + }, + "HTML+ECR": { + "color": "#2e1052", + "url": "https://github.com/trending?l=HTML+ECR" + }, + "HTML+EEX": { + "color": "#6e4a7e", + "url": "https://github.com/trending?l=HTML+EEX" + }, + "HTML+ERB": { + "color": "#701516", + "url": "https://github.com/trending?l=HTML+ERB" + }, + "HTML+PHP": { + "color": "#4f5d95", + "url": "https://github.com/trending?l=HTML+PHP" + }, + "HTML+Razor": { + "color": "#512be4", + "url": "https://github.com/trending?l=HTML+Razor" + }, + "HTTP": { + "color": "#005C9C", + "url": "https://github.com/trending?l=HTTP" + }, + "HXML": { + "color": "#f68712", + "url": "https://github.com/trending?l=HXML" + }, + "Hy": { + "color": "#7790B2", + "url": "https://github.com/trending?l=Hy" + }, + "HyPhy": { + "color": null, + "url": "https://github.com/trending?l=HyPhy" + }, + "IDL": { + "color": "#a3522f", + "url": "https://github.com/trending?l=IDL" + }, + "Idris": { + "color": "#b30000", + "url": "https://github.com/trending?l=Idris" + }, + "Ignore List": { + "color": "#000000", + "url": "https://github.com/trending?l=Ignore-List" + }, + "IGOR Pro": { + "color": "#0000cc", + "url": "https://github.com/trending?l=IGOR-Pro" + }, + "ImageJ Macro": { + "color": "#99AAFF", + "url": "https://github.com/trending?l=ImageJ-Macro" + }, + "Inform 7": { + "color": null, + "url": "https://github.com/trending?l=Inform-7" + }, + "INI": { + "color": "#d1dbe0", + "url": "https://github.com/trending?l=INI" + }, + "Inno Setup": { + "color": "#264b99", + "url": "https://github.com/trending?l=Inno-Setup" + }, + "Io": { + "color": "#a9188d", + "url": "https://github.com/trending?l=Io" + }, + "Ioke": { + "color": "#078193", + "url": "https://github.com/trending?l=Ioke" + }, + "Isabelle": { + "color": "#FEFE00", + "url": "https://github.com/trending?l=Isabelle" + }, + "Isabelle ROOT": { + "color": "#FEFE00", + "url": "https://github.com/trending?l=Isabelle-ROOT" + }, + "J": { + "color": "#9EEDFF", + "url": "https://github.com/trending?l=J" + }, + "Jasmin": { + "color": "#d03600", + "url": "https://github.com/trending?l=Jasmin" + }, + "Java": { + "color": "#b07219", + "url": "https://github.com/trending?l=Java" + }, + "Java Properties": { + "color": "#2A6277", + "url": "https://github.com/trending?l=Java-Properties" + }, + "Java Server Pages": { + "color": "#2A6277", + "url": "https://github.com/trending?l=Java-Server-Pages" + }, + "JavaScript": { + "color": "#f1e05a", + "url": "https://github.com/trending?l=JavaScript" + }, + "JavaScript+ERB": { + "color": "#f1e05a", + "url": "https://github.com/trending?l=JavaScript+ERB" + }, + "JFlex": { + "color": "#DBCA00", + "url": "https://github.com/trending?l=JFlex" + }, + "Jinja": { + "color": "#a52a22", + "url": "https://github.com/trending?l=Jinja" + }, + "Jison": { + "color": "#56b3cb", + "url": "https://github.com/trending?l=Jison" + }, + "Jison Lex": { + "color": "#56b3cb", + "url": "https://github.com/trending?l=Jison-Lex" + }, + "Jolie": { + "color": "#843179", + "url": "https://github.com/trending?l=Jolie" + }, + "jq": { + "color": "#c7254e", + "url": "https://github.com/trending?l=jq" + }, + "JSON": { + "color": "#292929", + "url": "https://github.com/trending?l=JSON" + }, + "JSON with Comments": { + "color": "#292929", + "url": "https://github.com/trending?l=JSON-with-Comments" + }, + "JSON5": { + "color": "#267CB9", + "url": "https://github.com/trending?l=JSON5" + }, + "JSONiq": { + "color": "#40d47e", + "url": "https://github.com/trending?l=JSONiq" + }, + "JSONLD": { + "color": "#0c479c", + "url": "https://github.com/trending?l=JSONLD" + }, + "Jsonnet": { + "color": "#0064bd", + "url": "https://github.com/trending?l=Jsonnet" + }, + "Julia": { + "color": "#a270ba", + "url": "https://github.com/trending?l=Julia" + }, + "Jupyter Notebook": { + "color": "#DA5B0B", + "url": "https://github.com/trending?l=Jupyter-Notebook" + }, + "Kaitai Struct": { + "color": "#773b37", + "url": "https://github.com/trending?l=Kaitai-Struct" + }, + "KakouneScript": { + "color": "#6f8042", + "url": "https://github.com/trending?l=KakouneScript" + }, + "KiCad Layout": { + "color": "#2f4aab", + "url": "https://github.com/trending?l=KiCad-Layout" + }, + "KiCad Legacy Layout": { + "color": "#2f4aab", + "url": "https://github.com/trending?l=KiCad-Legacy-Layout" + }, + "KiCad Schematic": { + "color": "#2f4aab", + "url": "https://github.com/trending?l=KiCad-Schematic" + }, + "Kotlin": { + "color": "#A97BFF", + "url": "https://github.com/trending?l=Kotlin" + }, + "KRL": { + "color": "#28430A", + "url": "https://github.com/trending?l=KRL" + }, + "LabVIEW": { + "color": "#fede06", + "url": "https://github.com/trending?l=LabVIEW" + }, + "Lark": { + "color": "#2980B9", + "url": "https://github.com/trending?l=Lark" + }, + "Lasso": { + "color": "#999999", + "url": "https://github.com/trending?l=Lasso" + }, + "Latte": { + "color": "#f2a542", + "url": "https://github.com/trending?l=Latte" + }, + "Lean": { + "color": null, + "url": "https://github.com/trending?l=Lean" + }, + "Less": { + "color": "#1d365d", + "url": "https://github.com/trending?l=Less" + }, + "Lex": { + "color": "#DBCA00", + "url": "https://github.com/trending?l=Lex" + }, + "LFE": { + "color": "#4C3023", + "url": "https://github.com/trending?l=LFE" + }, + "LilyPond": { + "color": "#9ccc7c", + "url": "https://github.com/trending?l=LilyPond" + }, + "Limbo": { + "color": null, + "url": "https://github.com/trending?l=Limbo" + }, + "Liquid": { + "color": "#67b8de", + "url": "https://github.com/trending?l=Liquid" + }, + "Literate Agda": { + "color": "#315665", + "url": "https://github.com/trending?l=Literate-Agda" + }, + "Literate CoffeeScript": { + "color": "#244776", + "url": "https://github.com/trending?l=Literate-CoffeeScript" + }, + "Literate Haskell": { + "color": "#5e5086", + "url": "https://github.com/trending?l=Literate-Haskell" + }, + "LiveScript": { + "color": "#499886", + "url": "https://github.com/trending?l=LiveScript" + }, + "LLVM": { + "color": "#185619", + "url": "https://github.com/trending?l=LLVM" + }, + "Logos": { + "color": null, + "url": "https://github.com/trending?l=Logos" + }, + "Logtalk": { + "color": "#295b9a", + "url": "https://github.com/trending?l=Logtalk" + }, + "LOLCODE": { + "color": "#cc9900", + "url": "https://github.com/trending?l=LOLCODE" + }, + "LookML": { + "color": "#652B81", + "url": "https://github.com/trending?l=LookML" + }, + "LoomScript": { + "color": null, + "url": "https://github.com/trending?l=LoomScript" + }, + "LSL": { + "color": "#3d9970", + "url": "https://github.com/trending?l=LSL" + }, + "Lua": { + "color": "#000080", + "url": "https://github.com/trending?l=Lua" + }, + "M": { + "color": null, + "url": "https://github.com/trending?l=M" + }, + "M4": { + "color": null, + "url": "https://github.com/trending?l=M4" + }, + "M4Sugar": { + "color": null, + "url": "https://github.com/trending?l=M4Sugar" + }, + "Macaulay2": { + "color": "#d8ffff", + "url": "https://github.com/trending?l=Macaulay2" + }, + "Makefile": { + "color": "#427819", + "url": "https://github.com/trending?l=Makefile" + }, + "Mako": { + "color": "#7e858d", + "url": "https://github.com/trending?l=Mako" + }, + "Markdown": { + "color": "#083fa1", + "url": "https://github.com/trending?l=Markdown" + }, + "Marko": { + "color": "#42bff2", + "url": "https://github.com/trending?l=Marko" + }, + "Mask": { + "color": "#f97732", + "url": "https://github.com/trending?l=Mask" + }, + "Mathematica": { + "color": "#dd1100", + "url": "https://github.com/trending?l=Mathematica" + }, + "MATLAB": { + "color": "#e16737", + "url": "https://github.com/trending?l=MATLAB" + }, + "Max": { + "color": "#c4a79c", + "url": "https://github.com/trending?l=Max" + }, + "MAXScript": { + "color": "#00a6a6", + "url": "https://github.com/trending?l=MAXScript" + }, + "mcfunction": { + "color": "#E22837", + "url": "https://github.com/trending?l=mcfunction" + }, + "Mercury": { + "color": "#ff2b2b", + "url": "https://github.com/trending?l=Mercury" + }, + "Meson": { + "color": "#007800", + "url": "https://github.com/trending?l=Meson" + }, + "Metal": { + "color": "#8f14e9", + "url": "https://github.com/trending?l=Metal" + }, + "MiniD": { + "color": null, + "url": "https://github.com/trending?l=MiniD" + }, + "Mirah": { + "color": "#c7a938", + "url": "https://github.com/trending?l=Mirah" + }, + "mIRC Script": { + "color": "#3d57c3", + "url": "https://github.com/trending?l=mIRC-Script" + }, + "MLIR": { + "color": "#5EC8DB", + "url": "https://github.com/trending?l=MLIR" + }, + "Modelica": { + "color": "#de1d31", + "url": "https://github.com/trending?l=Modelica" + }, + "Modula-2": { + "color": "#10253f", + "url": "https://github.com/trending?l=Modula-2" + }, + "Modula-3": { + "color": "#223388", + "url": "https://github.com/trending?l=Modula-3" + }, + "Module Management System": { + "color": null, + "url": "https://github.com/trending?l=Module-Management-System" + }, + "Monkey": { + "color": null, + "url": "https://github.com/trending?l=Monkey" + }, + "Moocode": { + "color": null, + "url": "https://github.com/trending?l=Moocode" + }, + "MoonScript": { + "color": "#ff4585", + "url": "https://github.com/trending?l=MoonScript" + }, + "Motorola 68K Assembly": { + "color": "#005daa", + "url": "https://github.com/trending?l=Motorola-68K-Assembly" + }, + "MQL4": { + "color": "#62A8D6", + "url": "https://github.com/trending?l=MQL4" + }, + "MQL5": { + "color": "#4A76B8", + "url": "https://github.com/trending?l=MQL5" + }, + "MTML": { + "color": "#b7e1f4", + "url": "https://github.com/trending?l=MTML" + }, + "MUF": { + "color": null, + "url": "https://github.com/trending?l=MUF" + }, + "mupad": { + "color": "#244963", + "url": "https://github.com/trending?l=mupad" + }, + "Mustache": { + "color": "#724b3b", + "url": "https://github.com/trending?l=Mustache" + }, + "Myghty": { + "color": null, + "url": "https://github.com/trending?l=Myghty" + }, + "nanorc": { + "color": "#2d004d", + "url": "https://github.com/trending?l=nanorc" + }, + "NASL": { + "color": null, + "url": "https://github.com/trending?l=NASL" + }, + "NCL": { + "color": "#28431f", + "url": "https://github.com/trending?l=NCL" + }, + "Nearley": { + "color": "#990000", + "url": "https://github.com/trending?l=Nearley" + }, + "Nemerle": { + "color": "#3d3c6e", + "url": "https://github.com/trending?l=Nemerle" + }, + "nesC": { + "color": "#94B0C7", + "url": "https://github.com/trending?l=nesC" + }, + "NetLinx": { + "color": "#0aa0ff", + "url": "https://github.com/trending?l=NetLinx" + }, + "NetLinx+ERB": { + "color": "#747faa", + "url": "https://github.com/trending?l=NetLinx+ERB" + }, + "NetLogo": { + "color": "#ff6375", + "url": "https://github.com/trending?l=NetLogo" + }, + "NewLisp": { + "color": "#87AED7", + "url": "https://github.com/trending?l=NewLisp" + }, + "Nextflow": { + "color": "#3ac486", + "url": "https://github.com/trending?l=Nextflow" + }, + "Nginx": { + "color": "#009639", + "url": "https://github.com/trending?l=Nginx" + }, + "Nim": { + "color": "#ffc200", + "url": "https://github.com/trending?l=Nim" + }, + "Nit": { + "color": "#009917", + "url": "https://github.com/trending?l=Nit" + }, + "Nix": { + "color": "#7e7eff", + "url": "https://github.com/trending?l=Nix" + }, + "NPM Config": { + "color": "#cb3837", + "url": "https://github.com/trending?l=NPM-Config" + }, + "NSIS": { + "color": null, + "url": "https://github.com/trending?l=NSIS" + }, + "Nu": { + "color": "#c9df40", + "url": "https://github.com/trending?l=Nu" + }, + "NumPy": { + "color": "#9C8AF9", + "url": "https://github.com/trending?l=NumPy" + }, + "Nunjucks": { + "color": "#3d8137", + "url": "https://github.com/trending?l=Nunjucks" + }, + "NWScript": { + "color": "#111522", + "url": "https://github.com/trending?l=NWScript" + }, + "Objective-C": { + "color": "#438eff", + "url": "https://github.com/trending?l=Objective-C" + }, + "Objective-C++": { + "color": "#6866fb", + "url": "https://github.com/trending?l=Objective-C++" + }, + "Objective-J": { + "color": "#ff0c5a", + "url": "https://github.com/trending?l=Objective-J" + }, + "ObjectScript": { + "color": "#424893", + "url": "https://github.com/trending?l=ObjectScript" + }, + "OCaml": { + "color": "#3be133", + "url": "https://github.com/trending?l=OCaml" + }, + "Odin": { + "color": "#60AFFE", + "url": "https://github.com/trending?l=Odin" + }, + "Omgrofl": { + "color": "#cabbff", + "url": "https://github.com/trending?l=Omgrofl" + }, + "ooc": { + "color": "#b0b77e", + "url": "https://github.com/trending?l=ooc" + }, + "Opa": { + "color": null, + "url": "https://github.com/trending?l=Opa" + }, + "Opal": { + "color": "#f7ede0", + "url": "https://github.com/trending?l=Opal" + }, + "Open Policy Agent": { + "color": "#7d9199", + "url": "https://github.com/trending?l=Open-Policy-Agent" + }, + "OpenCL": { + "color": "#ed2e2d", + "url": "https://github.com/trending?l=OpenCL" + }, + "OpenEdge ABL": { + "color": "#5ce600", + "url": "https://github.com/trending?l=OpenEdge-ABL" + }, + "OpenQASM": { + "color": "#AA70FF", + "url": "https://github.com/trending?l=OpenQASM" + }, + "OpenRC runscript": { + "color": null, + "url": "https://github.com/trending?l=OpenRC-runscript" + }, + "OpenSCAD": { + "color": "#e5cd45", + "url": "https://github.com/trending?l=OpenSCAD" + }, + "Org": { + "color": "#77aa99", + "url": "https://github.com/trending?l=Org" + }, + "Ox": { + "color": null, + "url": "https://github.com/trending?l=Ox" + }, + "Oxygene": { + "color": "#cdd0e3", + "url": "https://github.com/trending?l=Oxygene" + }, + "Oz": { + "color": "#fab738", + "url": "https://github.com/trending?l=Oz" + }, + "P4": { + "color": "#7055b5", + "url": "https://github.com/trending?l=P4" + }, + "Pan": { + "color": "#cc0000", + "url": "https://github.com/trending?l=Pan" + }, + "Papyrus": { + "color": "#6600cc", + "url": "https://github.com/trending?l=Papyrus" + }, + "Parrot": { + "color": "#f3ca0a", + "url": "https://github.com/trending?l=Parrot" + }, + "Parrot Assembly": { + "color": null, + "url": "https://github.com/trending?l=Parrot-Assembly" + }, + "Parrot Internal Representation": { + "color": null, + "url": "https://github.com/trending?l=Parrot-Internal-Representation" + }, + "Pascal": { + "color": "#E3F171", + "url": "https://github.com/trending?l=Pascal" + }, + "Pawn": { + "color": "#dbb284", + "url": "https://github.com/trending?l=Pawn" + }, + "PEG.js": { + "color": "#234d6b", + "url": "https://github.com/trending?l=PEG.js" + }, + "Pep8": { + "color": "#C76F5B", + "url": "https://github.com/trending?l=Pep8" + }, + "Perl": { + "color": "#0298c3", + "url": "https://github.com/trending?l=Perl" + }, + "PHP": { + "color": "#4F5D95", + "url": "https://github.com/trending?l=PHP" + }, + "PicoLisp": { + "color": "#6067af", + "url": "https://github.com/trending?l=PicoLisp" + }, + "PigLatin": { + "color": "#fcd7de", + "url": "https://github.com/trending?l=PigLatin" + }, + "Pike": { + "color": "#005390", + "url": "https://github.com/trending?l=Pike" + }, + "PLpgSQL": { + "color": "#336790", + "url": "https://github.com/trending?l=PLpgSQL" + }, + "PLSQL": { + "color": "#dad8d8", + "url": "https://github.com/trending?l=PLSQL" + }, + "PogoScript": { + "color": "#d80074", + "url": "https://github.com/trending?l=PogoScript" + }, + "Pony": { + "color": null, + "url": "https://github.com/trending?l=Pony" + }, + "PostCSS": { + "color": "#dc3a0c", + "url": "https://github.com/trending?l=PostCSS" + }, + "PostScript": { + "color": "#da291c", + "url": "https://github.com/trending?l=PostScript" + }, + "POV-Ray SDL": { + "color": "#6bac65", + "url": "https://github.com/trending?l=POV-Ray-SDL" + }, + "PowerBuilder": { + "color": "#8f0f8d", + "url": "https://github.com/trending?l=PowerBuilder" + }, + "PowerShell": { + "color": "#012456", + "url": "https://github.com/trending?l=PowerShell" + }, + "Prisma": { + "color": "#0c344b", + "url": "https://github.com/trending?l=Prisma" + }, + "Processing": { + "color": "#0096D8", + "url": "https://github.com/trending?l=Processing" + }, + "Prolog": { + "color": "#74283c", + "url": "https://github.com/trending?l=Prolog" + }, + "Propeller Spin": { + "color": "#7fa2a7", + "url": "https://github.com/trending?l=Propeller-Spin" + }, + "Pug": { + "color": "#a86454", + "url": "https://github.com/trending?l=Pug" + }, + "Puppet": { + "color": "#302B6D", + "url": "https://github.com/trending?l=Puppet" + }, + "PureBasic": { + "color": "#5a6986", + "url": "https://github.com/trending?l=PureBasic" + }, + "PureScript": { + "color": "#1D222D", + "url": "https://github.com/trending?l=PureScript" + }, + "Python": { + "color": "#3572A5", + "url": "https://github.com/trending?l=Python" + }, + "Python console": { + "color": "#3572A5", + "url": "https://github.com/trending?l=Python-console" + }, + "Python traceback": { + "color": "#3572A5", + "url": "https://github.com/trending?l=Python-traceback" + }, + "q": { + "color": "#0040cd", + "url": "https://github.com/trending?l=q" + }, + "Q#": { + "color": "#fed659", + "url": "https://github.com/trending?l=Qsharp" + }, + "QMake": { + "color": null, + "url": "https://github.com/trending?l=QMake" + }, + "QML": { + "color": "#44a51c", + "url": "https://github.com/trending?l=QML" + }, + "Qt Script": { + "color": "#00b841", + "url": "https://github.com/trending?l=Qt-Script" + }, + "Quake": { + "color": "#882233", + "url": "https://github.com/trending?l=Quake" + }, + "R": { + "color": "#198CE7", + "url": "https://github.com/trending?l=R" + }, + "Racket": { + "color": "#3c5caa", + "url": "https://github.com/trending?l=Racket" + }, + "Ragel": { + "color": "#9d5200", + "url": "https://github.com/trending?l=Ragel" + }, + "Raku": { + "color": "#0000fb", + "url": "https://github.com/trending?l=Raku" + }, + "RAML": { + "color": "#77d9fb", + "url": "https://github.com/trending?l=RAML" + }, + "Rascal": { + "color": "#fffaa0", + "url": "https://github.com/trending?l=Rascal" + }, + "RDoc": { + "color": "#701516", + "url": "https://github.com/trending?l=RDoc" + }, + "REALbasic": { + "color": null, + "url": "https://github.com/trending?l=REALbasic" + }, + "Reason": { + "color": "#ff5847", + "url": "https://github.com/trending?l=Reason" + }, + "Rebol": { + "color": "#358a5b", + "url": "https://github.com/trending?l=Rebol" + }, + "Record Jar": { + "color": "#0673ba", + "url": "https://github.com/trending?l=Record-Jar" + }, + "Red": { + "color": "#f50000", + "url": "https://github.com/trending?l=Red" + }, + "Redcode": { + "color": null, + "url": "https://github.com/trending?l=Redcode" + }, + "Regular Expression": { + "color": "#009a00", + "url": "https://github.com/trending?l=Regular-Expression" + }, + "Ren'Py": { + "color": "#ff7f7f", + "url": "https://github.com/trending?l=Ren'Py" + }, + "RenderScript": { + "color": null, + "url": "https://github.com/trending?l=RenderScript" + }, + "ReScript": { + "color": "#ed5051", + "url": "https://github.com/trending?l=ReScript" + }, + "reStructuredText": { + "color": "#141414", + "url": "https://github.com/trending?l=reStructuredText" + }, + "REXX": { + "color": "#d90e09", + "url": "https://github.com/trending?l=REXX" + }, + "Ring": { + "color": "#2D54CB", + "url": "https://github.com/trending?l=Ring" + }, + "Riot": { + "color": "#A71E49", + "url": "https://github.com/trending?l=Riot" + }, + "RMarkdown": { + "color": "#198ce7", + "url": "https://github.com/trending?l=RMarkdown" + }, + "RobotFramework": { + "color": "#00c0b5", + "url": "https://github.com/trending?l=RobotFramework" + }, + "Roff": { + "color": "#ecdebe", + "url": "https://github.com/trending?l=Roff" + }, + "Roff Manpage": { + "color": "#ecdebe", + "url": "https://github.com/trending?l=Roff-Manpage" + }, + "Rouge": { + "color": "#cc0088", + "url": "https://github.com/trending?l=Rouge" + }, + "RPC": { + "color": null, + "url": "https://github.com/trending?l=RPC" + }, + "Ruby": { + "color": "#701516", + "url": "https://github.com/trending?l=Ruby" + }, + "RUNOFF": { + "color": "#665a4e", + "url": "https://github.com/trending?l=RUNOFF" + }, + "Rust": { + "color": "#dea584", + "url": "https://github.com/trending?l=Rust" + }, + "Sage": { + "color": null, + "url": "https://github.com/trending?l=Sage" + }, + "SaltStack": { + "color": "#646464", + "url": "https://github.com/trending?l=SaltStack" + }, + "SAS": { + "color": "#B34936", + "url": "https://github.com/trending?l=SAS" + }, + "Sass": { + "color": "#a53b70", + "url": "https://github.com/trending?l=Sass" + }, + "Scala": { + "color": "#c22d40", + "url": "https://github.com/trending?l=Scala" + }, + "Scaml": { + "color": "#bd181a", + "url": "https://github.com/trending?l=Scaml" + }, + "Scheme": { + "color": "#1e4aec", + "url": "https://github.com/trending?l=Scheme" + }, + "Scilab": { + "color": "#ca0f21", + "url": "https://github.com/trending?l=Scilab" + }, + "SCSS": { + "color": "#c6538c", + "url": "https://github.com/trending?l=SCSS" + }, + "sed": { + "color": "#64b970", + "url": "https://github.com/trending?l=sed" + }, + "Self": { + "color": "#0579aa", + "url": "https://github.com/trending?l=Self" + }, + "ShaderLab": { + "color": "#222c37", + "url": "https://github.com/trending?l=ShaderLab" + }, + "Shell": { + "color": "#89e051", + "url": "https://github.com/trending?l=Shell" + }, + "ShellSession": { + "color": null, + "url": "https://github.com/trending?l=ShellSession" + }, + "Shen": { + "color": "#120F14", + "url": "https://github.com/trending?l=Shen" + }, + "Sieve": { + "color": null, + "url": "https://github.com/trending?l=Sieve" + }, + "Singularity": { + "color": "#64E6AD", + "url": "https://github.com/trending?l=Singularity" + }, + "Slash": { + "color": "#007eff", + "url": "https://github.com/trending?l=Slash" + }, + "Slice": { + "color": "#003fa2", + "url": "https://github.com/trending?l=Slice" + }, + "Slim": { + "color": "#2b2b2b", + "url": "https://github.com/trending?l=Slim" + }, + "Smali": { + "color": null, + "url": "https://github.com/trending?l=Smali" + }, + "Smalltalk": { + "color": "#596706", + "url": "https://github.com/trending?l=Smalltalk" + }, + "Smarty": { + "color": "#f0c040", + "url": "https://github.com/trending?l=Smarty" + }, + "SmPL": { + "color": "#c94949", + "url": "https://github.com/trending?l=SmPL" + }, + "SMT": { + "color": null, + "url": "https://github.com/trending?l=SMT" + }, + "Solidity": { + "color": "#AA6746", + "url": "https://github.com/trending?l=Solidity" + }, + "SourcePawn": { + "color": "#f69e1d", + "url": "https://github.com/trending?l=SourcePawn" + }, + "SPARQL": { + "color": "#0C4597", + "url": "https://github.com/trending?l=SPARQL" + }, + "SQF": { + "color": "#3F3F3F", + "url": "https://github.com/trending?l=SQF" + }, + "SQL": { + "color": "#e38c00", + "url": "https://github.com/trending?l=SQL" + }, + "SQLPL": { + "color": "#e38c00", + "url": "https://github.com/trending?l=SQLPL" + }, + "Squirrel": { + "color": "#800000", + "url": "https://github.com/trending?l=Squirrel" + }, + "SRecode Template": { + "color": "#348a34", + "url": "https://github.com/trending?l=SRecode-Template" + }, + "Stan": { + "color": "#b2011d", + "url": "https://github.com/trending?l=Stan" + }, + "Standard ML": { + "color": "#dc566d", + "url": "https://github.com/trending?l=Standard-ML" + }, + "Starlark": { + "color": "#76d275", + "url": "https://github.com/trending?l=Starlark" + }, + "Stata": { + "color": "#1a5f91", + "url": "https://github.com/trending?l=Stata" + }, + "StringTemplate": { + "color": "#3fb34f", + "url": "https://github.com/trending?l=StringTemplate" + }, + "Stylus": { + "color": "#ff6347", + "url": "https://github.com/trending?l=Stylus" + }, + "SubRip Text": { + "color": "#9e0101", + "url": "https://github.com/trending?l=SubRip-Text" + }, + "SugarSS": { + "color": "#2fcc9f", + "url": "https://github.com/trending?l=SugarSS" + }, + "SuperCollider": { + "color": "#46390b", + "url": "https://github.com/trending?l=SuperCollider" + }, + "Svelte": { + "color": "#ff3e00", + "url": "https://github.com/trending?l=Svelte" + }, + "SVG": { + "color": "#ff9900", + "url": "https://github.com/trending?l=SVG" + }, + "Swift": { + "color": "#F05138", + "url": "https://github.com/trending?l=Swift" + }, + "SWIG": { + "color": null, + "url": "https://github.com/trending?l=SWIG" + }, + "SystemVerilog": { + "color": "#DAE1C2", + "url": "https://github.com/trending?l=SystemVerilog" + }, + "Tcl": { + "color": "#e4cc98", + "url": "https://github.com/trending?l=Tcl" + }, + "Tcsh": { + "color": null, + "url": "https://github.com/trending?l=Tcsh" + }, + "Terra": { + "color": "#00004c", + "url": "https://github.com/trending?l=Terra" + }, + "TeX": { + "color": "#3D6117", + "url": "https://github.com/trending?l=TeX" + }, + "Textile": { + "color": "#ffe7ac", + "url": "https://github.com/trending?l=Textile" + }, + "TextMate Properties": { + "color": "#df66e4", + "url": "https://github.com/trending?l=TextMate-Properties" + }, + "Thrift": { + "color": "#D12127", + "url": "https://github.com/trending?l=Thrift" + }, + "TI Program": { + "color": "#A0AA87", + "url": "https://github.com/trending?l=TI-Program" + }, + "TLA": { + "color": "#4b0079", + "url": "https://github.com/trending?l=TLA" + }, + "TOML": { + "color": "#9c4221", + "url": "https://github.com/trending?l=TOML" + }, + "TSQL": { + "color": "#e38c00", + "url": "https://github.com/trending?l=TSQL" + }, + "TSV": { + "color": "#237346", + "url": "https://github.com/trending?l=TSV" + }, + "TSX": { + "color": "#2b7489", + "url": "https://github.com/trending?l=TSX" + }, + "Turing": { + "color": "#cf142b", + "url": "https://github.com/trending?l=Turing" + }, + "Twig": { + "color": "#c1d026", + "url": "https://github.com/trending?l=Twig" + }, + "TXL": { + "color": "#0178b8", + "url": "https://github.com/trending?l=TXL" + }, + "TypeScript": { + "color": "#2b7489", + "url": "https://github.com/trending?l=TypeScript" + }, + "Unified Parallel C": { + "color": "#4e3617", + "url": "https://github.com/trending?l=Unified-Parallel-C" + }, + "Unity3D Asset": { + "color": "#222c37", + "url": "https://github.com/trending?l=Unity3D-Asset" + }, + "Unix Assembly": { + "color": null, + "url": "https://github.com/trending?l=Unix-Assembly" + }, + "Uno": { + "color": "#9933cc", + "url": "https://github.com/trending?l=Uno" + }, + "UnrealScript": { + "color": "#a54c4d", + "url": "https://github.com/trending?l=UnrealScript" + }, + "UrWeb": { + "color": "#ccccee", + "url": "https://github.com/trending?l=UrWeb" + }, + "V": { + "color": "#4f87c4", + "url": "https://github.com/trending?l=V" + }, + "Vala": { + "color": "#fbe5cd", + "url": "https://github.com/trending?l=Vala" + }, + "Valve Data Format": { + "color": "#f26025", + "url": "https://github.com/trending?l=Valve-Data-Format" + }, + "VBA": { + "color": "#867db1", + "url": "https://github.com/trending?l=VBA" + }, + "VBScript": { + "color": "#15dcdc", + "url": "https://github.com/trending?l=VBScript" + }, + "VCL": { + "color": "#148AA8", + "url": "https://github.com/trending?l=VCL" + }, + "Verilog": { + "color": "#b2b7f8", + "url": "https://github.com/trending?l=Verilog" + }, + "VHDL": { + "color": "#adb2cb", + "url": "https://github.com/trending?l=VHDL" + }, + "Vim Help File": { + "color": "#199f4b", + "url": "https://github.com/trending?l=Vim-Help-File" + }, + "Vim script": { + "color": "#199f4b", + "url": "https://github.com/trending?l=Vim-script" + }, + "Vim Snippet": { + "color": "#199f4b", + "url": "https://github.com/trending?l=Vim-Snippet" + }, + "Visual Basic .NET": { + "color": "#945db7", + "url": "https://github.com/trending?l=Visual-Basic-.NET" + }, + "Volt": { + "color": "#1F1F1F", + "url": "https://github.com/trending?l=Volt" + }, + "Vue": { + "color": "#41b883", + "url": "https://github.com/trending?l=Vue" + }, + "wdl": { + "color": "#42f1f4", + "url": "https://github.com/trending?l=wdl" + }, + "Web Ontology Language": { + "color": "#5b70bd", + "url": "https://github.com/trending?l=Web-Ontology-Language" + }, + "WebAssembly": { + "color": "#04133b", + "url": "https://github.com/trending?l=WebAssembly" + }, + "WebIDL": { + "color": null, + "url": "https://github.com/trending?l=WebIDL" + }, + "Wikitext": { + "color": "#fc5757", + "url": "https://github.com/trending?l=Wikitext" + }, + "Windows Registry Entries": { + "color": "#52d5ff", + "url": "https://github.com/trending?l=Windows-Registry-Entries" + }, + "wisp": { + "color": "#7582D1", + "url": "https://github.com/trending?l=wisp" + }, + "Wollok": { + "color": "#a23738", + "url": "https://github.com/trending?l=Wollok" + }, + "World of Warcraft Addon Data": { + "color": "#f7e43f", + "url": "https://github.com/trending?l=World-of-Warcraft-Addon-Data" + }, + "X10": { + "color": "#4B6BEF", + "url": "https://github.com/trending?l=X10" + }, + "xBase": { + "color": "#403a40", + "url": "https://github.com/trending?l=xBase" + }, + "XC": { + "color": "#99DA07", + "url": "https://github.com/trending?l=XC" + }, + "XML": { + "color": "#0060ac", + "url": "https://github.com/trending?l=XML" + }, + "XML Property List": { + "color": "#0060ac", + "url": "https://github.com/trending?l=XML-Property-List" + }, + "Xojo": { + "color": "#81bd41", + "url": "https://github.com/trending?l=Xojo" + }, + "Xonsh": { + "color": "#285EEF", + "url": "https://github.com/trending?l=Xonsh" + }, + "XProc": { + "color": null, + "url": "https://github.com/trending?l=XProc" + }, + "XQuery": { + "color": "#5232e7", + "url": "https://github.com/trending?l=XQuery" + }, + "XS": { + "color": null, + "url": "https://github.com/trending?l=XS" + }, + "XSLT": { + "color": "#EB8CEB", + "url": "https://github.com/trending?l=XSLT" + }, + "Xtend": { + "color": "#24255d", + "url": "https://github.com/trending?l=Xtend" + }, + "Yacc": { + "color": "#4B6C4B", + "url": "https://github.com/trending?l=Yacc" + }, + "YAML": { + "color": "#cb171e", + "url": "https://github.com/trending?l=YAML" + }, + "YARA": { + "color": "#220000", + "url": "https://github.com/trending?l=YARA" + }, + "YASnippet": { + "color": "#32AB90", + "url": "https://github.com/trending?l=YASnippet" + }, + "ZAP": { + "color": "#0d665e", + "url": "https://github.com/trending?l=ZAP" + }, + "Zeek": { + "color": null, + "url": "https://github.com/trending?l=Zeek" + }, + "ZenScript": { + "color": "#00BCD1", + "url": "https://github.com/trending?l=ZenScript" + }, + "Zephir": { + "color": "#118f9e", + "url": "https://github.com/trending?l=Zephir" + }, + "Zig": { + "color": "#ec915c", + "url": "https://github.com/trending?l=Zig" + }, + "ZIL": { + "color": "#dc75e5", + "url": "https://github.com/trending?l=ZIL" + }, + "Zimpl": { + "color": "#d67711", + "url": "https://github.com/trending?l=Zimpl" + } +} diff --git a/test/colours.json b/test/colours.json new file mode 100644 index 0000000..9294182 --- /dev/null +++ b/test/colours.json @@ -0,0 +1,2110 @@ +{ + "1C Enterprise": { + "color": "#814CCC", + "url": "https://github.com/trending?l=1C-Enterprise" + }, + "4D": { + "color": "#004289", + "url": "https://github.com/trending?l=4D" + }, + "ABAP": { + "color": "#E8274B", + "url": "https://github.com/trending?l=ABAP" + }, + "ABAP CDS": { + "color": "#555e25", + "url": "https://github.com/trending?l=ABAP-CDS" + }, + "ActionScript": { + "color": "#882B0F", + "url": "https://github.com/trending?l=ActionScript" + }, + "Ada": { + "color": "#02f88c", + "url": "https://github.com/trending?l=Ada" + }, + "Adobe Font Metrics": { + "color": "#fa0f00", + "url": "https://github.com/trending?l=Adobe-Font-Metrics" + }, + "Agda": { + "color": "#315665", + "url": "https://github.com/trending?l=Agda" + }, + "AGS Script": { + "color": "#B9D9FF", + "url": "https://github.com/trending?l=AGS-Script" + }, + "AIDL": { + "color": "#34EB6B", + "url": "https://github.com/trending?l=AIDL" + }, + "AL": { + "color": "#3AA2B5", + "url": "https://github.com/trending?l=AL" + }, + "Alloy": { + "color": "#64C800", + "url": "https://github.com/trending?l=Alloy" + }, + "Alpine Abuild": { + "color": "#0D597F", + "url": "https://github.com/trending?l=Alpine-Abuild" + }, + "Altium Designer": { + "color": "#A89663", + "url": "https://github.com/trending?l=Altium-Designer" + }, + "AMPL": { + "color": "#E6EFBB", + "url": "https://github.com/trending?l=AMPL" + }, + "AngelScript": { + "color": "#C7D7DC", + "url": "https://github.com/trending?l=AngelScript" + }, + "Ant Build System": { + "color": "#A9157E", + "url": "https://github.com/trending?l=Ant-Build-System" + }, + "ANTLR": { + "color": "#9DC3FF", + "url": "https://github.com/trending?l=ANTLR" + }, + "ApacheConf": { + "color": "#d12127", + "url": "https://github.com/trending?l=ApacheConf" + }, + "Apex": { + "color": "#1797c0", + "url": "https://github.com/trending?l=Apex" + }, + "API Blueprint": { + "color": "#2ACCA8", + "url": "https://github.com/trending?l=API-Blueprint" + }, + "APL": { + "color": "#5A8164", + "url": "https://github.com/trending?l=APL" + }, + "Apollo Guidance Computer": { + "color": "#0B3D91", + "url": "https://github.com/trending?l=Apollo-Guidance-Computer" + }, + "AppleScript": { + "color": "#101F1F", + "url": "https://github.com/trending?l=AppleScript" + }, + "Arc": { + "color": "#aa2afe", + "url": "https://github.com/trending?l=Arc" + }, + "AsciiDoc": { + "color": "#73a0c5", + "url": "https://github.com/trending?l=AsciiDoc" + }, + "ASL": { + "color": null, + "url": "https://github.com/trending?l=ASL" + }, + "ASP.NET": { + "color": "#9400ff", + "url": "https://github.com/trending?l=ASP.NET" + }, + "AspectJ": { + "color": "#a957b0", + "url": "https://github.com/trending?l=AspectJ" + }, + "Assembly": { + "color": "#6E4C13", + "url": "https://github.com/trending?l=Assembly" + }, + "Astro": { + "color": "#ff5a03", + "url": "https://github.com/trending?l=Astro" + }, + "Asymptote": { + "color": "#ff0000", + "url": "https://github.com/trending?l=Asymptote" + }, + "ATS": { + "color": "#1ac620", + "url": "https://github.com/trending?l=ATS" + }, + "Augeas": { + "color": "#9CC134", + "url": "https://github.com/trending?l=Augeas" + }, + "AutoHotkey": { + "color": "#6594b9", + "url": "https://github.com/trending?l=AutoHotkey" + }, + "AutoIt": { + "color": "#1C3552", + "url": "https://github.com/trending?l=AutoIt" + }, + "Avro IDL": { + "color": "#0040FF", + "url": "https://github.com/trending?l=Avro-IDL" + }, + "Awk": { + "color": "#c30e9b", + "url": "https://github.com/trending?l=Awk" + }, + "Ballerina": { + "color": "#FF5000", + "url": "https://github.com/trending?l=Ballerina" + }, + "BASIC": { + "color": "#ff0000", + "url": "https://github.com/trending?l=BASIC" + }, + "Batchfile": { + "color": "#C1F12E", + "url": "https://github.com/trending?l=Batchfile" + }, + "Beef": { + "color": "#a52f4e", + "url": "https://github.com/trending?l=Beef" + }, + "Befunge": { + "color": null, + "url": "https://github.com/trending?l=Befunge" + }, + "BibTeX": { + "color": "#778899", + "url": "https://github.com/trending?l=BibTeX" + }, + "Bicep": { + "color": "#519aba", + "url": "https://github.com/trending?l=Bicep" + }, + "Bison": { + "color": "#6A463F", + "url": "https://github.com/trending?l=Bison" + }, + "BitBake": { + "color": "#00bce4", + "url": "https://github.com/trending?l=BitBake" + }, + "Blade": { + "color": "#f7523f", + "url": "https://github.com/trending?l=Blade" + }, + "BlitzBasic": { + "color": "#00FFAE", + "url": "https://github.com/trending?l=BlitzBasic" + }, + "BlitzMax": { + "color": "#cd6400", + "url": "https://github.com/trending?l=BlitzMax" + }, + "Bluespec": { + "color": "#12223c", + "url": "https://github.com/trending?l=Bluespec" + }, + "Boo": { + "color": "#d4bec1", + "url": "https://github.com/trending?l=Boo" + }, + "Boogie": { + "color": "#c80fa0", + "url": "https://github.com/trending?l=Boogie" + }, + "Brainfuck": { + "color": "#2F2530", + "url": "https://github.com/trending?l=Brainfuck" + }, + "Brightscript": { + "color": "#662D91", + "url": "https://github.com/trending?l=Brightscript" + }, + "Browserslist": { + "color": "#ffd539", + "url": "https://github.com/trending?l=Browserslist" + }, + "C": { + "color": "#555555", + "url": "https://github.com/trending?l=C" + }, + "C#": { + "color": "#178600", + "url": "https://github.com/trending?l=Csharp" + }, + "C++": { + "color": "#f34b7d", + "url": "https://github.com/trending?l=C++" + }, + "C2hs Haskell": { + "color": null, + "url": "https://github.com/trending?l=C2hs-Haskell" + }, + "Cabal Config": { + "color": "#483465", + "url": "https://github.com/trending?l=Cabal-Config" + }, + "Cap'n Proto": { + "color": "#c42727", + "url": "https://github.com/trending?l=Cap'n-Proto" + }, + "CartoCSS": { + "color": null, + "url": "https://github.com/trending?l=CartoCSS" + }, + "Ceylon": { + "color": "#dfa535", + "url": "https://github.com/trending?l=Ceylon" + }, + "Chapel": { + "color": "#8dc63f", + "url": "https://github.com/trending?l=Chapel" + }, + "Charity": { + "color": null, + "url": "https://github.com/trending?l=Charity" + }, + "ChucK": { + "color": "#3f8000", + "url": "https://github.com/trending?l=ChucK" + }, + "Cirru": { + "color": "#ccccff", + "url": "https://github.com/trending?l=Cirru" + }, + "Clarion": { + "color": "#db901e", + "url": "https://github.com/trending?l=Clarion" + }, + "Classic ASP": { + "color": "#6a40fd", + "url": "https://github.com/trending?l=Classic-ASP" + }, + "Clean": { + "color": "#3F85AF", + "url": "https://github.com/trending?l=Clean" + }, + "Click": { + "color": "#E4E6F3", + "url": "https://github.com/trending?l=Click" + }, + "CLIPS": { + "color": "#00A300", + "url": "https://github.com/trending?l=CLIPS" + }, + "Clojure": { + "color": "#db5855", + "url": "https://github.com/trending?l=Clojure" + }, + "Closure Templates": { + "color": "#0d948f", + "url": "https://github.com/trending?l=Closure-Templates" + }, + "Cloud Firestore Security Rules": { + "color": "#FFA000", + "url": "https://github.com/trending?l=Cloud-Firestore-Security-Rules" + }, + "CMake": { + "color": "#DA3434", + "url": "https://github.com/trending?l=CMake" + }, + "COBOL": { + "color": null, + "url": "https://github.com/trending?l=COBOL" + }, + "CodeQL": { + "color": "#140f46", + "url": "https://github.com/trending?l=CodeQL" + }, + "CoffeeScript": { + "color": "#244776", + "url": "https://github.com/trending?l=CoffeeScript" + }, + "ColdFusion": { + "color": "#ed2cd6", + "url": "https://github.com/trending?l=ColdFusion" + }, + "ColdFusion CFC": { + "color": "#ed2cd6", + "url": "https://github.com/trending?l=ColdFusion-CFC" + }, + "COLLADA": { + "color": "#F1A42B", + "url": "https://github.com/trending?l=COLLADA" + }, + "Common Lisp": { + "color": "#3fb68b", + "url": "https://github.com/trending?l=Common-Lisp" + }, + "Common Workflow Language": { + "color": "#B5314C", + "url": "https://github.com/trending?l=Common-Workflow-Language" + }, + "Component Pascal": { + "color": "#B0CE4E", + "url": "https://github.com/trending?l=Component-Pascal" + }, + "Cool": { + "color": null, + "url": "https://github.com/trending?l=Cool" + }, + "Coq": { + "color": "#d0b68c", + "url": "https://github.com/trending?l=Coq" + }, + "Crystal": { + "color": "#000100", + "url": "https://github.com/trending?l=Crystal" + }, + "CSON": { + "color": "#244776", + "url": "https://github.com/trending?l=CSON" + }, + "Csound": { + "color": "#1a1a1a", + "url": "https://github.com/trending?l=Csound" + }, + "Csound Document": { + "color": "#1a1a1a", + "url": "https://github.com/trending?l=Csound-Document" + }, + "Csound Score": { + "color": "#1a1a1a", + "url": "https://github.com/trending?l=Csound-Score" + }, + "CSS": { + "color": "#563d7c", + "url": "https://github.com/trending?l=CSS" + }, + "CSV": { + "color": "#237346", + "url": "https://github.com/trending?l=CSV" + }, + "Cuda": { + "color": "#3A4E3A", + "url": "https://github.com/trending?l=Cuda" + }, + "CUE": { + "color": "#5886E1", + "url": "https://github.com/trending?l=CUE" + }, + "CWeb": { + "color": "#00007a", + "url": "https://github.com/trending?l=CWeb" + }, + "Cycript": { + "color": null, + "url": "https://github.com/trending?l=Cycript" + }, + "Cython": { + "color": "#fedf5b", + "url": "https://github.com/trending?l=Cython" + }, + "D": { + "color": "#ba595e", + "url": "https://github.com/trending?l=D" + }, + "Dafny": { + "color": "#FFEC25", + "url": "https://github.com/trending?l=Dafny" + }, + "Darcs Patch": { + "color": "#8eff23", + "url": "https://github.com/trending?l=Darcs-Patch" + }, + "Dart": { + "color": "#00B4AB", + "url": "https://github.com/trending?l=Dart" + }, + "DataWeave": { + "color": "#003a52", + "url": "https://github.com/trending?l=DataWeave" + }, + "Dhall": { + "color": "#dfafff", + "url": "https://github.com/trending?l=Dhall" + }, + "DIGITAL Command Language": { + "color": null, + "url": "https://github.com/trending?l=DIGITAL-Command-Language" + }, + "DirectX 3D File": { + "color": "#aace60", + "url": "https://github.com/trending?l=DirectX-3D-File" + }, + "DM": { + "color": "#447265", + "url": "https://github.com/trending?l=DM" + }, + "Dockerfile": { + "color": "#384d54", + "url": "https://github.com/trending?l=Dockerfile" + }, + "Dogescript": { + "color": "#cca760", + "url": "https://github.com/trending?l=Dogescript" + }, + "DTrace": { + "color": null, + "url": "https://github.com/trending?l=DTrace" + }, + "Dylan": { + "color": "#6c616e", + "url": "https://github.com/trending?l=Dylan" + }, + "E": { + "color": "#ccce35", + "url": "https://github.com/trending?l=E" + }, + "Easybuild": { + "color": "#069406", + "url": "https://github.com/trending?l=Easybuild" + }, + "eC": { + "color": "#913960", + "url": "https://github.com/trending?l=eC" + }, + "Ecere Projects": { + "color": "#913960", + "url": "https://github.com/trending?l=Ecere-Projects" + }, + "ECL": { + "color": "#8a1267", + "url": "https://github.com/trending?l=ECL" + }, + "ECLiPSe": { + "color": "#001d9d", + "url": "https://github.com/trending?l=ECLiPSe" + }, + "EditorConfig": { + "color": "#fff1f2", + "url": "https://github.com/trending?l=EditorConfig" + }, + "Eiffel": { + "color": "#4d6977", + "url": "https://github.com/trending?l=Eiffel" + }, + "EJS": { + "color": "#a91e50", + "url": "https://github.com/trending?l=EJS" + }, + "Elixir": { + "color": "#6e4a7e", + "url": "https://github.com/trending?l=Elixir" + }, + "Elm": { + "color": "#60B5CC", + "url": "https://github.com/trending?l=Elm" + }, + "Emacs Lisp": { + "color": "#c065db", + "url": "https://github.com/trending?l=Emacs-Lisp" + }, + "EmberScript": { + "color": "#FFF4F3", + "url": "https://github.com/trending?l=EmberScript" + }, + "EQ": { + "color": "#a78649", + "url": "https://github.com/trending?l=EQ" + }, + "Erlang": { + "color": "#B83998", + "url": "https://github.com/trending?l=Erlang" + }, + "F#": { + "color": "#b845fc", + "url": "https://github.com/trending?l=Fsharp" + }, + "F*": { + "color": "#572e30", + "url": "https://github.com/trending?l=F*" + }, + "Factor": { + "color": "#636746", + "url": "https://github.com/trending?l=Factor" + }, + "Fancy": { + "color": "#7b9db4", + "url": "https://github.com/trending?l=Fancy" + }, + "Fantom": { + "color": "#14253c", + "url": "https://github.com/trending?l=Fantom" + }, + "Faust": { + "color": "#c37240", + "url": "https://github.com/trending?l=Faust" + }, + "Fennel": { + "color": "#fff3d7", + "url": "https://github.com/trending?l=Fennel" + }, + "FIGlet Font": { + "color": "#FFDDBB", + "url": "https://github.com/trending?l=FIGlet-Font" + }, + "Filebench WML": { + "color": "#F6B900", + "url": "https://github.com/trending?l=Filebench-WML" + }, + "Filterscript": { + "color": null, + "url": "https://github.com/trending?l=Filterscript" + }, + "fish": { + "color": "#4aae47", + "url": "https://github.com/trending?l=fish" + }, + "Fluent": { + "color": "#ffcc33", + "url": "https://github.com/trending?l=Fluent" + }, + "FLUX": { + "color": "#88ccff", + "url": "https://github.com/trending?l=FLUX" + }, + "Forth": { + "color": "#341708", + "url": "https://github.com/trending?l=Forth" + }, + "Fortran": { + "color": "#4d41b1", + "url": "https://github.com/trending?l=Fortran" + }, + "Fortran Free Form": { + "color": "#4d41b1", + "url": "https://github.com/trending?l=Fortran-Free-Form" + }, + "FreeBasic": { + "color": "#867db1", + "url": "https://github.com/trending?l=FreeBasic" + }, + "FreeMarker": { + "color": "#0050b2", + "url": "https://github.com/trending?l=FreeMarker" + }, + "Frege": { + "color": "#00cafe", + "url": "https://github.com/trending?l=Frege" + }, + "Futhark": { + "color": "#5f021f", + "url": "https://github.com/trending?l=Futhark" + }, + "G-code": { + "color": "#D08CF2", + "url": "https://github.com/trending?l=G-code" + }, + "Game Maker Language": { + "color": "#71b417", + "url": "https://github.com/trending?l=Game-Maker-Language" + }, + "GAML": { + "color": "#FFC766", + "url": "https://github.com/trending?l=GAML" + }, + "GAMS": { + "color": "#f49a22", + "url": "https://github.com/trending?l=GAMS" + }, + "GAP": { + "color": "#0000cc", + "url": "https://github.com/trending?l=GAP" + }, + "GCC Machine Description": { + "color": "#FFCFAB", + "url": "https://github.com/trending?l=GCC-Machine-Description" + }, + "GDB": { + "color": null, + "url": "https://github.com/trending?l=GDB" + }, + "GDScript": { + "color": "#355570", + "url": "https://github.com/trending?l=GDScript" + }, + "GEDCOM": { + "color": "#003058", + "url": "https://github.com/trending?l=GEDCOM" + }, + "Gemfile.lock": { + "color": "#701516", + "url": "https://github.com/trending?l=Gemfile.lock" + }, + "Genie": { + "color": "#fb855d", + "url": "https://github.com/trending?l=Genie" + }, + "Genshi": { + "color": "#951531", + "url": "https://github.com/trending?l=Genshi" + }, + "Gentoo Ebuild": { + "color": "#9400ff", + "url": "https://github.com/trending?l=Gentoo-Ebuild" + }, + "Gentoo Eclass": { + "color": "#9400ff", + "url": "https://github.com/trending?l=Gentoo-Eclass" + }, + "Gerber Image": { + "color": "#d20b00", + "url": "https://github.com/trending?l=Gerber-Image" + }, + "Gherkin": { + "color": "#5B2063", + "url": "https://github.com/trending?l=Gherkin" + }, + "Git Attributes": { + "color": "#F44D27", + "url": "https://github.com/trending?l=Git-Attributes" + }, + "Git Config": { + "color": "#F44D27", + "url": "https://github.com/trending?l=Git-Config" + }, + "GLSL": { + "color": "#5686a5", + "url": "https://github.com/trending?l=GLSL" + }, + "Glyph": { + "color": "#c1ac7f", + "url": "https://github.com/trending?l=Glyph" + }, + "Gnuplot": { + "color": "#f0a9f0", + "url": "https://github.com/trending?l=Gnuplot" + }, + "Go": { + "color": "#00ADD8", + "url": "https://github.com/trending?l=Go" + }, + "Golo": { + "color": "#88562A", + "url": "https://github.com/trending?l=Golo" + }, + "Gosu": { + "color": "#82937f", + "url": "https://github.com/trending?l=Gosu" + }, + "Grace": { + "color": "#615f8b", + "url": "https://github.com/trending?l=Grace" + }, + "Gradle": { + "color": "#02303a", + "url": "https://github.com/trending?l=Gradle" + }, + "Grammatical Framework": { + "color": "#ff0000", + "url": "https://github.com/trending?l=Grammatical-Framework" + }, + "GraphQL": { + "color": "#e10098", + "url": "https://github.com/trending?l=GraphQL" + }, + "Graphviz (DOT)": { + "color": "#2596be", + "url": "https://github.com/trending?l=Graphviz-(DOT)" + }, + "Groovy": { + "color": "#4298b8", + "url": "https://github.com/trending?l=Groovy" + }, + "Groovy Server Pages": { + "color": "#4298b8", + "url": "https://github.com/trending?l=Groovy-Server-Pages" + }, + "Hack": { + "color": "#878787", + "url": "https://github.com/trending?l=Hack" + }, + "Haml": { + "color": "#ece2a9", + "url": "https://github.com/trending?l=Haml" + }, + "Handlebars": { + "color": "#f7931e", + "url": "https://github.com/trending?l=Handlebars" + }, + "HAProxy": { + "color": "#106da9", + "url": "https://github.com/trending?l=HAProxy" + }, + "Harbour": { + "color": "#0e60e3", + "url": "https://github.com/trending?l=Harbour" + }, + "Haskell": { + "color": "#5e5086", + "url": "https://github.com/trending?l=Haskell" + }, + "Haxe": { + "color": "#df7900", + "url": "https://github.com/trending?l=Haxe" + }, + "HCL": { + "color": null, + "url": "https://github.com/trending?l=HCL" + }, + "HiveQL": { + "color": "#dce200", + "url": "https://github.com/trending?l=HiveQL" + }, + "HLSL": { + "color": "#aace60", + "url": "https://github.com/trending?l=HLSL" + }, + "HolyC": { + "color": "#ffefaf", + "url": "https://github.com/trending?l=HolyC" + }, + "HTML": { + "color": "#e34c26", + "url": "https://github.com/trending?l=HTML" + }, + "HTML+ECR": { + "color": "#2e1052", + "url": "https://github.com/trending?l=HTML+ECR" + }, + "HTML+EEX": { + "color": "#6e4a7e", + "url": "https://github.com/trending?l=HTML+EEX" + }, + "HTML+ERB": { + "color": "#701516", + "url": "https://github.com/trending?l=HTML+ERB" + }, + "HTML+PHP": { + "color": "#4f5d95", + "url": "https://github.com/trending?l=HTML+PHP" + }, + "HTML+Razor": { + "color": "#512be4", + "url": "https://github.com/trending?l=HTML+Razor" + }, + "HTTP": { + "color": "#005C9C", + "url": "https://github.com/trending?l=HTTP" + }, + "HXML": { + "color": "#f68712", + "url": "https://github.com/trending?l=HXML" + }, + "Hy": { + "color": "#7790B2", + "url": "https://github.com/trending?l=Hy" + }, + "HyPhy": { + "color": null, + "url": "https://github.com/trending?l=HyPhy" + }, + "IDL": { + "color": "#a3522f", + "url": "https://github.com/trending?l=IDL" + }, + "Idris": { + "color": "#b30000", + "url": "https://github.com/trending?l=Idris" + }, + "Ignore List": { + "color": "#000000", + "url": "https://github.com/trending?l=Ignore-List" + }, + "IGOR Pro": { + "color": "#0000cc", + "url": "https://github.com/trending?l=IGOR-Pro" + }, + "ImageJ Macro": { + "color": "#99AAFF", + "url": "https://github.com/trending?l=ImageJ-Macro" + }, + "Inform 7": { + "color": null, + "url": "https://github.com/trending?l=Inform-7" + }, + "INI": { + "color": "#d1dbe0", + "url": "https://github.com/trending?l=INI" + }, + "Inno Setup": { + "color": "#264b99", + "url": "https://github.com/trending?l=Inno-Setup" + }, + "Io": { + "color": "#a9188d", + "url": "https://github.com/trending?l=Io" + }, + "Ioke": { + "color": "#078193", + "url": "https://github.com/trending?l=Ioke" + }, + "Isabelle": { + "color": "#FEFE00", + "url": "https://github.com/trending?l=Isabelle" + }, + "Isabelle ROOT": { + "color": "#FEFE00", + "url": "https://github.com/trending?l=Isabelle-ROOT" + }, + "J": { + "color": "#9EEDFF", + "url": "https://github.com/trending?l=J" + }, + "Jasmin": { + "color": "#d03600", + "url": "https://github.com/trending?l=Jasmin" + }, + "Java": { + "color": "#b07219", + "url": "https://github.com/trending?l=Java" + }, + "Java Properties": { + "color": "#2A6277", + "url": "https://github.com/trending?l=Java-Properties" + }, + "Java Server Pages": { + "color": "#2A6277", + "url": "https://github.com/trending?l=Java-Server-Pages" + }, + "JavaScript": { + "color": "#f1e05a", + "url": "https://github.com/trending?l=JavaScript" + }, + "JavaScript+ERB": { + "color": "#f1e05a", + "url": "https://github.com/trending?l=JavaScript+ERB" + }, + "JFlex": { + "color": "#DBCA00", + "url": "https://github.com/trending?l=JFlex" + }, + "Jinja": { + "color": "#a52a22", + "url": "https://github.com/trending?l=Jinja" + }, + "Jison": { + "color": "#56b3cb", + "url": "https://github.com/trending?l=Jison" + }, + "Jison Lex": { + "color": "#56b3cb", + "url": "https://github.com/trending?l=Jison-Lex" + }, + "Jolie": { + "color": "#843179", + "url": "https://github.com/trending?l=Jolie" + }, + "jq": { + "color": "#c7254e", + "url": "https://github.com/trending?l=jq" + }, + "JSON": { + "color": "#292929", + "url": "https://github.com/trending?l=JSON" + }, + "JSON with Comments": { + "color": "#292929", + "url": "https://github.com/trending?l=JSON-with-Comments" + }, + "JSON5": { + "color": "#267CB9", + "url": "https://github.com/trending?l=JSON5" + }, + "JSONiq": { + "color": "#40d47e", + "url": "https://github.com/trending?l=JSONiq" + }, + "JSONLD": { + "color": "#0c479c", + "url": "https://github.com/trending?l=JSONLD" + }, + "Jsonnet": { + "color": "#0064bd", + "url": "https://github.com/trending?l=Jsonnet" + }, + "Julia": { + "color": "#a270ba", + "url": "https://github.com/trending?l=Julia" + }, + "Jupyter Notebook": { + "color": "#DA5B0B", + "url": "https://github.com/trending?l=Jupyter-Notebook" + }, + "Kaitai Struct": { + "color": "#773b37", + "url": "https://github.com/trending?l=Kaitai-Struct" + }, + "KakouneScript": { + "color": "#6f8042", + "url": "https://github.com/trending?l=KakouneScript" + }, + "KiCad Layout": { + "color": "#2f4aab", + "url": "https://github.com/trending?l=KiCad-Layout" + }, + "KiCad Legacy Layout": { + "color": "#2f4aab", + "url": "https://github.com/trending?l=KiCad-Legacy-Layout" + }, + "KiCad Schematic": { + "color": "#2f4aab", + "url": "https://github.com/trending?l=KiCad-Schematic" + }, + "Kotlin": { + "color": "#A97BFF", + "url": "https://github.com/trending?l=Kotlin" + }, + "KRL": { + "color": "#28430A", + "url": "https://github.com/trending?l=KRL" + }, + "LabVIEW": { + "color": "#fede06", + "url": "https://github.com/trending?l=LabVIEW" + }, + "Lark": { + "color": "#2980B9", + "url": "https://github.com/trending?l=Lark" + }, + "Lasso": { + "color": "#999999", + "url": "https://github.com/trending?l=Lasso" + }, + "Latte": { + "color": "#f2a542", + "url": "https://github.com/trending?l=Latte" + }, + "Lean": { + "color": null, + "url": "https://github.com/trending?l=Lean" + }, + "Less": { + "color": "#1d365d", + "url": "https://github.com/trending?l=Less" + }, + "Lex": { + "color": "#DBCA00", + "url": "https://github.com/trending?l=Lex" + }, + "LFE": { + "color": "#4C3023", + "url": "https://github.com/trending?l=LFE" + }, + "LilyPond": { + "color": "#9ccc7c", + "url": "https://github.com/trending?l=LilyPond" + }, + "Limbo": { + "color": null, + "url": "https://github.com/trending?l=Limbo" + }, + "Liquid": { + "color": "#67b8de", + "url": "https://github.com/trending?l=Liquid" + }, + "Literate Agda": { + "color": "#315665", + "url": "https://github.com/trending?l=Literate-Agda" + }, + "Literate CoffeeScript": { + "color": "#244776", + "url": "https://github.com/trending?l=Literate-CoffeeScript" + }, + "Literate Haskell": { + "color": "#5e5086", + "url": "https://github.com/trending?l=Literate-Haskell" + }, + "LiveScript": { + "color": "#499886", + "url": "https://github.com/trending?l=LiveScript" + }, + "LLVM": { + "color": "#185619", + "url": "https://github.com/trending?l=LLVM" + }, + "Logos": { + "color": null, + "url": "https://github.com/trending?l=Logos" + }, + "Logtalk": { + "color": "#295b9a", + "url": "https://github.com/trending?l=Logtalk" + }, + "LOLCODE": { + "color": "#cc9900", + "url": "https://github.com/trending?l=LOLCODE" + }, + "LookML": { + "color": "#652B81", + "url": "https://github.com/trending?l=LookML" + }, + "LoomScript": { + "color": null, + "url": "https://github.com/trending?l=LoomScript" + }, + "LSL": { + "color": "#3d9970", + "url": "https://github.com/trending?l=LSL" + }, + "Lua": { + "color": "#000080", + "url": "https://github.com/trending?l=Lua" + }, + "M": { + "color": null, + "url": "https://github.com/trending?l=M" + }, + "M4": { + "color": null, + "url": "https://github.com/trending?l=M4" + }, + "M4Sugar": { + "color": null, + "url": "https://github.com/trending?l=M4Sugar" + }, + "Macaulay2": { + "color": "#d8ffff", + "url": "https://github.com/trending?l=Macaulay2" + }, + "Makefile": { + "color": "#427819", + "url": "https://github.com/trending?l=Makefile" + }, + "Mako": { + "color": "#7e858d", + "url": "https://github.com/trending?l=Mako" + }, + "Markdown": { + "color": "#083fa1", + "url": "https://github.com/trending?l=Markdown" + }, + "Marko": { + "color": "#42bff2", + "url": "https://github.com/trending?l=Marko" + }, + "Mask": { + "color": "#f97732", + "url": "https://github.com/trending?l=Mask" + }, + "Mathematica": { + "color": "#dd1100", + "url": "https://github.com/trending?l=Mathematica" + }, + "MATLAB": { + "color": "#e16737", + "url": "https://github.com/trending?l=MATLAB" + }, + "Max": { + "color": "#c4a79c", + "url": "https://github.com/trending?l=Max" + }, + "MAXScript": { + "color": "#00a6a6", + "url": "https://github.com/trending?l=MAXScript" + }, + "mcfunction": { + "color": "#E22837", + "url": "https://github.com/trending?l=mcfunction" + }, + "Mercury": { + "color": "#ff2b2b", + "url": "https://github.com/trending?l=Mercury" + }, + "Meson": { + "color": "#007800", + "url": "https://github.com/trending?l=Meson" + }, + "Metal": { + "color": "#8f14e9", + "url": "https://github.com/trending?l=Metal" + }, + "MiniD": { + "color": null, + "url": "https://github.com/trending?l=MiniD" + }, + "Mirah": { + "color": "#c7a938", + "url": "https://github.com/trending?l=Mirah" + }, + "mIRC Script": { + "color": "#3d57c3", + "url": "https://github.com/trending?l=mIRC-Script" + }, + "MLIR": { + "color": "#5EC8DB", + "url": "https://github.com/trending?l=MLIR" + }, + "Modelica": { + "color": "#de1d31", + "url": "https://github.com/trending?l=Modelica" + }, + "Modula-2": { + "color": "#10253f", + "url": "https://github.com/trending?l=Modula-2" + }, + "Modula-3": { + "color": "#223388", + "url": "https://github.com/trending?l=Modula-3" + }, + "Module Management System": { + "color": null, + "url": "https://github.com/trending?l=Module-Management-System" + }, + "Monkey": { + "color": null, + "url": "https://github.com/trending?l=Monkey" + }, + "Moocode": { + "color": null, + "url": "https://github.com/trending?l=Moocode" + }, + "MoonScript": { + "color": "#ff4585", + "url": "https://github.com/trending?l=MoonScript" + }, + "Motorola 68K Assembly": { + "color": "#005daa", + "url": "https://github.com/trending?l=Motorola-68K-Assembly" + }, + "MQL4": { + "color": "#62A8D6", + "url": "https://github.com/trending?l=MQL4" + }, + "MQL5": { + "color": "#4A76B8", + "url": "https://github.com/trending?l=MQL5" + }, + "MTML": { + "color": "#b7e1f4", + "url": "https://github.com/trending?l=MTML" + }, + "MUF": { + "color": null, + "url": "https://github.com/trending?l=MUF" + }, + "mupad": { + "color": "#244963", + "url": "https://github.com/trending?l=mupad" + }, + "Mustache": { + "color": "#724b3b", + "url": "https://github.com/trending?l=Mustache" + }, + "Myghty": { + "color": null, + "url": "https://github.com/trending?l=Myghty" + }, + "nanorc": { + "color": "#2d004d", + "url": "https://github.com/trending?l=nanorc" + }, + "NASL": { + "color": null, + "url": "https://github.com/trending?l=NASL" + }, + "NCL": { + "color": "#28431f", + "url": "https://github.com/trending?l=NCL" + }, + "Nearley": { + "color": "#990000", + "url": "https://github.com/trending?l=Nearley" + }, + "Nemerle": { + "color": "#3d3c6e", + "url": "https://github.com/trending?l=Nemerle" + }, + "nesC": { + "color": "#94B0C7", + "url": "https://github.com/trending?l=nesC" + }, + "NetLinx": { + "color": "#0aa0ff", + "url": "https://github.com/trending?l=NetLinx" + }, + "NetLinx+ERB": { + "color": "#747faa", + "url": "https://github.com/trending?l=NetLinx+ERB" + }, + "NetLogo": { + "color": "#ff6375", + "url": "https://github.com/trending?l=NetLogo" + }, + "NewLisp": { + "color": "#87AED7", + "url": "https://github.com/trending?l=NewLisp" + }, + "Nextflow": { + "color": "#3ac486", + "url": "https://github.com/trending?l=Nextflow" + }, + "Nginx": { + "color": "#009639", + "url": "https://github.com/trending?l=Nginx" + }, + "Nim": { + "color": "#ffc200", + "url": "https://github.com/trending?l=Nim" + }, + "Nit": { + "color": "#009917", + "url": "https://github.com/trending?l=Nit" + }, + "Nix": { + "color": "#7e7eff", + "url": "https://github.com/trending?l=Nix" + }, + "NPM Config": { + "color": "#cb3837", + "url": "https://github.com/trending?l=NPM-Config" + }, + "NSIS": { + "color": null, + "url": "https://github.com/trending?l=NSIS" + }, + "Nu": { + "color": "#c9df40", + "url": "https://github.com/trending?l=Nu" + }, + "NumPy": { + "color": "#9C8AF9", + "url": "https://github.com/trending?l=NumPy" + }, + "Nunjucks": { + "color": "#3d8137", + "url": "https://github.com/trending?l=Nunjucks" + }, + "NWScript": { + "color": "#111522", + "url": "https://github.com/trending?l=NWScript" + }, + "Objective-C": { + "color": "#438eff", + "url": "https://github.com/trending?l=Objective-C" + }, + "Objective-C++": { + "color": "#6866fb", + "url": "https://github.com/trending?l=Objective-C++" + }, + "Objective-J": { + "color": "#ff0c5a", + "url": "https://github.com/trending?l=Objective-J" + }, + "ObjectScript": { + "color": "#424893", + "url": "https://github.com/trending?l=ObjectScript" + }, + "OCaml": { + "color": "#3be133", + "url": "https://github.com/trending?l=OCaml" + }, + "Odin": { + "color": "#60AFFE", + "url": "https://github.com/trending?l=Odin" + }, + "Omgrofl": { + "color": "#cabbff", + "url": "https://github.com/trending?l=Omgrofl" + }, + "ooc": { + "color": "#b0b77e", + "url": "https://github.com/trending?l=ooc" + }, + "Opa": { + "color": null, + "url": "https://github.com/trending?l=Opa" + }, + "Opal": { + "color": "#f7ede0", + "url": "https://github.com/trending?l=Opal" + }, + "Open Policy Agent": { + "color": "#7d9199", + "url": "https://github.com/trending?l=Open-Policy-Agent" + }, + "OpenCL": { + "color": "#ed2e2d", + "url": "https://github.com/trending?l=OpenCL" + }, + "OpenEdge ABL": { + "color": "#5ce600", + "url": "https://github.com/trending?l=OpenEdge-ABL" + }, + "OpenQASM": { + "color": "#AA70FF", + "url": "https://github.com/trending?l=OpenQASM" + }, + "OpenRC runscript": { + "color": null, + "url": "https://github.com/trending?l=OpenRC-runscript" + }, + "OpenSCAD": { + "color": "#e5cd45", + "url": "https://github.com/trending?l=OpenSCAD" + }, + "Org": { + "color": "#77aa99", + "url": "https://github.com/trending?l=Org" + }, + "Ox": { + "color": null, + "url": "https://github.com/trending?l=Ox" + }, + "Oxygene": { + "color": "#cdd0e3", + "url": "https://github.com/trending?l=Oxygene" + }, + "Oz": { + "color": "#fab738", + "url": "https://github.com/trending?l=Oz" + }, + "P4": { + "color": "#7055b5", + "url": "https://github.com/trending?l=P4" + }, + "Pan": { + "color": "#cc0000", + "url": "https://github.com/trending?l=Pan" + }, + "Papyrus": { + "color": "#6600cc", + "url": "https://github.com/trending?l=Papyrus" + }, + "Parrot": { + "color": "#f3ca0a", + "url": "https://github.com/trending?l=Parrot" + }, + "Parrot Assembly": { + "color": null, + "url": "https://github.com/trending?l=Parrot-Assembly" + }, + "Parrot Internal Representation": { + "color": null, + "url": "https://github.com/trending?l=Parrot-Internal-Representation" + }, + "Pascal": { + "color": "#E3F171", + "url": "https://github.com/trending?l=Pascal" + }, + "Pawn": { + "color": "#dbb284", + "url": "https://github.com/trending?l=Pawn" + }, + "PEG.js": { + "color": "#234d6b", + "url": "https://github.com/trending?l=PEG.js" + }, + "Pep8": { + "color": "#C76F5B", + "url": "https://github.com/trending?l=Pep8" + }, + "Perl": { + "color": "#0298c3", + "url": "https://github.com/trending?l=Perl" + }, + "PHP": { + "color": "#4F5D95", + "url": "https://github.com/trending?l=PHP" + }, + "PicoLisp": { + "color": "#6067af", + "url": "https://github.com/trending?l=PicoLisp" + }, + "PigLatin": { + "color": "#fcd7de", + "url": "https://github.com/trending?l=PigLatin" + }, + "Pike": { + "color": "#005390", + "url": "https://github.com/trending?l=Pike" + }, + "PLpgSQL": { + "color": "#336790", + "url": "https://github.com/trending?l=PLpgSQL" + }, + "PLSQL": { + "color": "#dad8d8", + "url": "https://github.com/trending?l=PLSQL" + }, + "PogoScript": { + "color": "#d80074", + "url": "https://github.com/trending?l=PogoScript" + }, + "Pony": { + "color": null, + "url": "https://github.com/trending?l=Pony" + }, + "PostCSS": { + "color": "#dc3a0c", + "url": "https://github.com/trending?l=PostCSS" + }, + "PostScript": { + "color": "#da291c", + "url": "https://github.com/trending?l=PostScript" + }, + "POV-Ray SDL": { + "color": "#6bac65", + "url": "https://github.com/trending?l=POV-Ray-SDL" + }, + "PowerBuilder": { + "color": "#8f0f8d", + "url": "https://github.com/trending?l=PowerBuilder" + }, + "PowerShell": { + "color": "#012456", + "url": "https://github.com/trending?l=PowerShell" + }, + "Prisma": { + "color": "#0c344b", + "url": "https://github.com/trending?l=Prisma" + }, + "Processing": { + "color": "#0096D8", + "url": "https://github.com/trending?l=Processing" + }, + "Prolog": { + "color": "#74283c", + "url": "https://github.com/trending?l=Prolog" + }, + "Propeller Spin": { + "color": "#7fa2a7", + "url": "https://github.com/trending?l=Propeller-Spin" + }, + "Pug": { + "color": "#a86454", + "url": "https://github.com/trending?l=Pug" + }, + "Puppet": { + "color": "#302B6D", + "url": "https://github.com/trending?l=Puppet" + }, + "PureBasic": { + "color": "#5a6986", + "url": "https://github.com/trending?l=PureBasic" + }, + "PureScript": { + "color": "#1D222D", + "url": "https://github.com/trending?l=PureScript" + }, + "Python": { + "color": "#3572A5", + "url": "https://github.com/trending?l=Python" + }, + "Python console": { + "color": "#3572A5", + "url": "https://github.com/trending?l=Python-console" + }, + "Python traceback": { + "color": "#3572A5", + "url": "https://github.com/trending?l=Python-traceback" + }, + "q": { + "color": "#0040cd", + "url": "https://github.com/trending?l=q" + }, + "Q#": { + "color": "#fed659", + "url": "https://github.com/trending?l=Qsharp" + }, + "QMake": { + "color": null, + "url": "https://github.com/trending?l=QMake" + }, + "QML": { + "color": "#44a51c", + "url": "https://github.com/trending?l=QML" + }, + "Qt Script": { + "color": "#00b841", + "url": "https://github.com/trending?l=Qt-Script" + }, + "Quake": { + "color": "#882233", + "url": "https://github.com/trending?l=Quake" + }, + "R": { + "color": "#198CE7", + "url": "https://github.com/trending?l=R" + }, + "Racket": { + "color": "#3c5caa", + "url": "https://github.com/trending?l=Racket" + }, + "Ragel": { + "color": "#9d5200", + "url": "https://github.com/trending?l=Ragel" + }, + "Raku": { + "color": "#0000fb", + "url": "https://github.com/trending?l=Raku" + }, + "RAML": { + "color": "#77d9fb", + "url": "https://github.com/trending?l=RAML" + }, + "Rascal": { + "color": "#fffaa0", + "url": "https://github.com/trending?l=Rascal" + }, + "RDoc": { + "color": "#701516", + "url": "https://github.com/trending?l=RDoc" + }, + "REALbasic": { + "color": null, + "url": "https://github.com/trending?l=REALbasic" + }, + "Reason": { + "color": "#ff5847", + "url": "https://github.com/trending?l=Reason" + }, + "Rebol": { + "color": "#358a5b", + "url": "https://github.com/trending?l=Rebol" + }, + "Record Jar": { + "color": "#0673ba", + "url": "https://github.com/trending?l=Record-Jar" + }, + "Red": { + "color": "#f50000", + "url": "https://github.com/trending?l=Red" + }, + "Redcode": { + "color": null, + "url": "https://github.com/trending?l=Redcode" + }, + "Regular Expression": { + "color": "#009a00", + "url": "https://github.com/trending?l=Regular-Expression" + }, + "Ren'Py": { + "color": "#ff7f7f", + "url": "https://github.com/trending?l=Ren'Py" + }, + "RenderScript": { + "color": null, + "url": "https://github.com/trending?l=RenderScript" + }, + "ReScript": { + "color": "#ed5051", + "url": "https://github.com/trending?l=ReScript" + }, + "reStructuredText": { + "color": "#141414", + "url": "https://github.com/trending?l=reStructuredText" + }, + "REXX": { + "color": "#d90e09", + "url": "https://github.com/trending?l=REXX" + }, + "Ring": { + "color": "#2D54CB", + "url": "https://github.com/trending?l=Ring" + }, + "Riot": { + "color": "#A71E49", + "url": "https://github.com/trending?l=Riot" + }, + "RMarkdown": { + "color": "#198ce7", + "url": "https://github.com/trending?l=RMarkdown" + }, + "RobotFramework": { + "color": "#00c0b5", + "url": "https://github.com/trending?l=RobotFramework" + }, + "Roff": { + "color": "#ecdebe", + "url": "https://github.com/trending?l=Roff" + }, + "Roff Manpage": { + "color": "#ecdebe", + "url": "https://github.com/trending?l=Roff-Manpage" + }, + "Rouge": { + "color": "#cc0088", + "url": "https://github.com/trending?l=Rouge" + }, + "RPC": { + "color": null, + "url": "https://github.com/trending?l=RPC" + }, + "Ruby": { + "color": "#701516", + "url": "https://github.com/trending?l=Ruby" + }, + "RUNOFF": { + "color": "#665a4e", + "url": "https://github.com/trending?l=RUNOFF" + }, + "Rust": { + "color": "#dea584", + "url": "https://github.com/trending?l=Rust" + }, + "Sage": { + "color": null, + "url": "https://github.com/trending?l=Sage" + }, + "SaltStack": { + "color": "#646464", + "url": "https://github.com/trending?l=SaltStack" + }, + "SAS": { + "color": "#B34936", + "url": "https://github.com/trending?l=SAS" + }, + "Sass": { + "color": "#a53b70", + "url": "https://github.com/trending?l=Sass" + }, + "Scala": { + "color": "#c22d40", + "url": "https://github.com/trending?l=Scala" + }, + "Scaml": { + "color": "#bd181a", + "url": "https://github.com/trending?l=Scaml" + }, + "Scheme": { + "color": "#1e4aec", + "url": "https://github.com/trending?l=Scheme" + }, + "Scilab": { + "color": "#ca0f21", + "url": "https://github.com/trending?l=Scilab" + }, + "SCSS": { + "color": "#c6538c", + "url": "https://github.com/trending?l=SCSS" + }, + "sed": { + "color": "#64b970", + "url": "https://github.com/trending?l=sed" + }, + "Self": { + "color": "#0579aa", + "url": "https://github.com/trending?l=Self" + }, + "ShaderLab": { + "color": "#222c37", + "url": "https://github.com/trending?l=ShaderLab" + }, + "Shell": { + "color": "#89e051", + "url": "https://github.com/trending?l=Shell" + }, + "ShellSession": { + "color": null, + "url": "https://github.com/trending?l=ShellSession" + }, + "Shen": { + "color": "#120F14", + "url": "https://github.com/trending?l=Shen" + }, + "Sieve": { + "color": null, + "url": "https://github.com/trending?l=Sieve" + }, + "Singularity": { + "color": "#64E6AD", + "url": "https://github.com/trending?l=Singularity" + }, + "Slash": { + "color": "#007eff", + "url": "https://github.com/trending?l=Slash" + }, + "Slice": { + "color": "#003fa2", + "url": "https://github.com/trending?l=Slice" + }, + "Slim": { + "color": "#2b2b2b", + "url": "https://github.com/trending?l=Slim" + }, + "Smali": { + "color": null, + "url": "https://github.com/trending?l=Smali" + }, + "Smalltalk": { + "color": "#596706", + "url": "https://github.com/trending?l=Smalltalk" + }, + "Smarty": { + "color": "#f0c040", + "url": "https://github.com/trending?l=Smarty" + }, + "SmPL": { + "color": "#c94949", + "url": "https://github.com/trending?l=SmPL" + }, + "SMT": { + "color": null, + "url": "https://github.com/trending?l=SMT" + }, + "Solidity": { + "color": "#AA6746", + "url": "https://github.com/trending?l=Solidity" + }, + "SourcePawn": { + "color": "#f69e1d", + "url": "https://github.com/trending?l=SourcePawn" + }, + "SPARQL": { + "color": "#0C4597", + "url": "https://github.com/trending?l=SPARQL" + }, + "SQF": { + "color": "#3F3F3F", + "url": "https://github.com/trending?l=SQF" + }, + "SQL": { + "color": "#e38c00", + "url": "https://github.com/trending?l=SQL" + }, + "SQLPL": { + "color": "#e38c00", + "url": "https://github.com/trending?l=SQLPL" + }, + "Squirrel": { + "color": "#800000", + "url": "https://github.com/trending?l=Squirrel" + }, + "SRecode Template": { + "color": "#348a34", + "url": "https://github.com/trending?l=SRecode-Template" + }, + "Stan": { + "color": "#b2011d", + "url": "https://github.com/trending?l=Stan" + }, + "Standard ML": { + "color": "#dc566d", + "url": "https://github.com/trending?l=Standard-ML" + }, + "Starlark": { + "color": "#76d275", + "url": "https://github.com/trending?l=Starlark" + }, + "Stata": { + "color": "#1a5f91", + "url": "https://github.com/trending?l=Stata" + }, + "StringTemplate": { + "color": "#3fb34f", + "url": "https://github.com/trending?l=StringTemplate" + }, + "Stylus": { + "color": "#ff6347", + "url": "https://github.com/trending?l=Stylus" + }, + "SubRip Text": { + "color": "#9e0101", + "url": "https://github.com/trending?l=SubRip-Text" + }, + "SugarSS": { + "color": "#2fcc9f", + "url": "https://github.com/trending?l=SugarSS" + }, + "SuperCollider": { + "color": "#46390b", + "url": "https://github.com/trending?l=SuperCollider" + }, + "Svelte": { + "color": "#ff3e00", + "url": "https://github.com/trending?l=Svelte" + }, + "SVG": { + "color": "#ff9900", + "url": "https://github.com/trending?l=SVG" + }, + "Swift": { + "color": "#F05138", + "url": "https://github.com/trending?l=Swift" + }, + "SWIG": { + "color": null, + "url": "https://github.com/trending?l=SWIG" + }, + "SystemVerilog": { + "color": "#DAE1C2", + "url": "https://github.com/trending?l=SystemVerilog" + }, + "Tcl": { + "color": "#e4cc98", + "url": "https://github.com/trending?l=Tcl" + }, + "Tcsh": { + "color": null, + "url": "https://github.com/trending?l=Tcsh" + }, + "Terra": { + "color": "#00004c", + "url": "https://github.com/trending?l=Terra" + }, + "TeX": { + "color": "#3D6117", + "url": "https://github.com/trending?l=TeX" + }, + "Textile": { + "color": "#ffe7ac", + "url": "https://github.com/trending?l=Textile" + }, + "TextMate Properties": { + "color": "#df66e4", + "url": "https://github.com/trending?l=TextMate-Properties" + }, + "Thrift": { + "color": "#D12127", + "url": "https://github.com/trending?l=Thrift" + }, + "TI Program": { + "color": "#A0AA87", + "url": "https://github.com/trending?l=TI-Program" + }, + "TLA": { + "color": "#4b0079", + "url": "https://github.com/trending?l=TLA" + }, + "TOML": { + "color": "#9c4221", + "url": "https://github.com/trending?l=TOML" + }, + "TSQL": { + "color": "#e38c00", + "url": "https://github.com/trending?l=TSQL" + }, + "TSV": { + "color": "#237346", + "url": "https://github.com/trending?l=TSV" + }, + "TSX": { + "color": "#2b7489", + "url": "https://github.com/trending?l=TSX" + }, + "Turing": { + "color": "#cf142b", + "url": "https://github.com/trending?l=Turing" + }, + "Twig": { + "color": "#c1d026", + "url": "https://github.com/trending?l=Twig" + }, + "TXL": { + "color": "#0178b8", + "url": "https://github.com/trending?l=TXL" + }, + "TypeScript": { + "color": "#2b7489", + "url": "https://github.com/trending?l=TypeScript" + }, + "Unified Parallel C": { + "color": "#4e3617", + "url": "https://github.com/trending?l=Unified-Parallel-C" + }, + "Unity3D Asset": { + "color": "#222c37", + "url": "https://github.com/trending?l=Unity3D-Asset" + }, + "Unix Assembly": { + "color": null, + "url": "https://github.com/trending?l=Unix-Assembly" + }, + "Uno": { + "color": "#9933cc", + "url": "https://github.com/trending?l=Uno" + }, + "UnrealScript": { + "color": "#a54c4d", + "url": "https://github.com/trending?l=UnrealScript" + }, + "UrWeb": { + "color": "#ccccee", + "url": "https://github.com/trending?l=UrWeb" + }, + "V": { + "color": "#4f87c4", + "url": "https://github.com/trending?l=V" + }, + "Vala": { + "color": "#fbe5cd", + "url": "https://github.com/trending?l=Vala" + }, + "Valve Data Format": { + "color": "#f26025", + "url": "https://github.com/trending?l=Valve-Data-Format" + }, + "VBA": { + "color": "#867db1", + "url": "https://github.com/trending?l=VBA" + }, + "VBScript": { + "color": "#15dcdc", + "url": "https://github.com/trending?l=VBScript" + }, + "VCL": { + "color": "#148AA8", + "url": "https://github.com/trending?l=VCL" + }, + "Verilog": { + "color": "#b2b7f8", + "url": "https://github.com/trending?l=Verilog" + }, + "VHDL": { + "color": "#adb2cb", + "url": "https://github.com/trending?l=VHDL" + }, + "Vim Help File": { + "color": "#199f4b", + "url": "https://github.com/trending?l=Vim-Help-File" + }, + "Vim script": { + "color": "#199f4b", + "url": "https://github.com/trending?l=Vim-script" + }, + "Vim Snippet": { + "color": "#199f4b", + "url": "https://github.com/trending?l=Vim-Snippet" + }, + "Visual Basic .NET": { + "color": "#945db7", + "url": "https://github.com/trending?l=Visual-Basic-.NET" + }, + "Volt": { + "color": "#1F1F1F", + "url": "https://github.com/trending?l=Volt" + }, + "Vue": { + "color": "#41b883", + "url": "https://github.com/trending?l=Vue" + }, + "wdl": { + "color": "#42f1f4", + "url": "https://github.com/trending?l=wdl" + }, + "Web Ontology Language": { + "color": "#5b70bd", + "url": "https://github.com/trending?l=Web-Ontology-Language" + }, + "WebAssembly": { + "color": "#04133b", + "url": "https://github.com/trending?l=WebAssembly" + }, + "WebIDL": { + "color": null, + "url": "https://github.com/trending?l=WebIDL" + }, + "Wikitext": { + "color": "#fc5757", + "url": "https://github.com/trending?l=Wikitext" + }, + "Windows Registry Entries": { + "color": "#52d5ff", + "url": "https://github.com/trending?l=Windows-Registry-Entries" + }, + "wisp": { + "color": "#7582D1", + "url": "https://github.com/trending?l=wisp" + }, + "Wollok": { + "color": "#a23738", + "url": "https://github.com/trending?l=Wollok" + }, + "World of Warcraft Addon Data": { + "color": "#f7e43f", + "url": "https://github.com/trending?l=World-of-Warcraft-Addon-Data" + }, + "X10": { + "color": "#4B6BEF", + "url": "https://github.com/trending?l=X10" + }, + "xBase": { + "color": "#403a40", + "url": "https://github.com/trending?l=xBase" + }, + "XC": { + "color": "#99DA07", + "url": "https://github.com/trending?l=XC" + }, + "XML": { + "color": "#0060ac", + "url": "https://github.com/trending?l=XML" + }, + "XML Property List": { + "color": "#0060ac", + "url": "https://github.com/trending?l=XML-Property-List" + }, + "Xojo": { + "color": "#81bd41", + "url": "https://github.com/trending?l=Xojo" + }, + "Xonsh": { + "color": "#285EEF", + "url": "https://github.com/trending?l=Xonsh" + }, + "XProc": { + "color": null, + "url": "https://github.com/trending?l=XProc" + }, + "XQuery": { + "color": "#5232e7", + "url": "https://github.com/trending?l=XQuery" + }, + "XS": { + "color": null, + "url": "https://github.com/trending?l=XS" + }, + "XSLT": { + "color": "#EB8CEB", + "url": "https://github.com/trending?l=XSLT" + }, + "Xtend": { + "color": "#24255d", + "url": "https://github.com/trending?l=Xtend" + }, + "Yacc": { + "color": "#4B6C4B", + "url": "https://github.com/trending?l=Yacc" + }, + "YAML": { + "color": "#cb171e", + "url": "https://github.com/trending?l=YAML" + }, + "YARA": { + "color": "#220000", + "url": "https://github.com/trending?l=YARA" + }, + "YASnippet": { + "color": "#32AB90", + "url": "https://github.com/trending?l=YASnippet" + }, + "ZAP": { + "color": "#0d665e", + "url": "https://github.com/trending?l=ZAP" + }, + "Zeek": { + "color": null, + "url": "https://github.com/trending?l=Zeek" + }, + "ZenScript": { + "color": "#00BCD1", + "url": "https://github.com/trending?l=ZenScript" + }, + "Zephir": { + "color": "#118f9e", + "url": "https://github.com/trending?l=Zephir" + }, + "Zig": { + "color": "#ec915c", + "url": "https://github.com/trending?l=Zig" + }, + "ZIL": { + "color": "#dc75e5", + "url": "https://github.com/trending?l=ZIL" + }, + "Zimpl": { + "color": "#d67711", + "url": "https://github.com/trending?l=Zimpl" + } +} diff --git a/test/language_colours_test.exs b/test/language_colours_test.exs new file mode 100644 index 0000000..2a4474e --- /dev/null +++ b/test/language_colours_test.exs @@ -0,0 +1,67 @@ +defmodule LanguageColoursTest do + use ExUnit.Case + + setup_all do + start_supervised!( + {LanguageColours.ETSDatabase, + LanguageColours.ETSDatabase.startup_options( + Application.get_env(:language_colours, :databases).test_db + )} + ) + + :ok + end + + test "gets the correct colour" do + assert LanguageColours.get("Ada", :test_db) == "#02f88c" + end + + test "gets fallback if colour doesn't exist" do + assert "#" <> <<_rest::binary-size(6)>> = LanguageColours.get("Aaaaaaadaaaaaaa", :test_db) + end + + test "is case insensitive" do + assert LanguageColours.get("AdA", :test_db) == "#02f88c" + end + + test "returns nil if there is no fallback and language wasn't found" do + config = + Application.get_env(:language_colours, :databases).test_db + |> Map.put(:fallback, false) + |> Map.put(:server_name, :test_db_2) + |> Map.put(:ets_table, :best_table) + + start_supervised!( + {LanguageColours.ETSDatabase, LanguageColours.ETSDatabase.startup_options(config)} + ) + + assert is_nil(LanguageColours.get("Aaaaaaadaaaaaaa", config)) + end + + test "language is deleted if no longer in updated dataset" do + config = + Application.get_env(:language_colours, :databases).test_db + |> Map.put(:file, "test/colours-without-ada.json") + + assert LanguageColours.update(config) == :ok + assert LanguageColours.get("Ada", config) != "#02f88c" + + # Teardown + config = Application.get_env(:language_colours, :databases).test_db + assert LanguageColours.update(config) == :ok + end + + test "languages are updated correctly" do + config = + Application.get_env(:language_colours, :databases).test_db + |> Map.put(:file, "test/colours-without-ada.json") + + assert LanguageColours.get("1C Enterprise", config) == "#814CCC" + assert LanguageColours.update(config) == :ok + assert LanguageColours.get("Ada", config) != "#ABCDEF" + + # Teardown + config = Application.get_env(:language_colours, :databases).test_db + assert LanguageColours.update(config) == :ok + end +end diff --git a/test/test_helper.exs b/test/test_helper.exs new file mode 100644 index 0000000..869559e --- /dev/null +++ b/test/test_helper.exs @@ -0,0 +1 @@ +ExUnit.start()