Skip to content

Commit

Permalink
Merge pull request #828 from jrblevin/issue-827
Browse files Browse the repository at this point in the history
Update language list and fix the regexp in download script
  • Loading branch information
syohex committed Mar 18, 2024
2 parents b7f7da9 + 7f7d9c8 commit fd6c550
Show file tree
Hide file tree
Showing 3 changed files with 129 additions and 84 deletions.
2 changes: 2 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
* Bug fixes:
- Don't highlight superscript/subscript in math inline/block [GH-802][]
- Fix table alignment when a column has a seperator in code block [GH-817][]
- Fix the regexp in the download languages script [GH-827][]

* Improvements:
- Apply url-unescape against URL in an inline link [GH-805][]
Expand All @@ -26,6 +27,7 @@
[gh-804]: https://github.com/jrblevin/markdown-mode/issues/804
[gh-805]: https://github.com/jrblevin/markdown-mode/issues/805
[gh-817]: https://github.com/jrblevin/markdown-mode/issues/817
[gh-827]: https://github.com/jrblevin/markdown-mode/issues/827

# Markdown Mode 2.6

Expand Down
204 changes: 124 additions & 80 deletions markdown-mode.el
Original file line number Diff line number Diff line change
Expand Up @@ -4432,87 +4432,131 @@ if three backquotes inserted at the beginning of line."
;; scripts/get-recognized-gfm-languages.el. that produces a single long sexp,
;; but with appropriate use of a keyboard macro, indenting and filling it
;; properly is pretty fast.
'("1C-Enterprise" "4D" "ABAP" "ABNF" "AGS-Script" "AMPL" "ANTLR"
"API-Blueprint" "APL" "ASN.1" "ASP" "ATS" "ActionScript" "Ada"
'("1C-Enterprise" "2-Dimensional-Array" "4D" "ABAP" "ABAP-CDS" "ABNF"
"AGS-Script" "AIDL" "AL" "AMPL" "ANTLR" "API-Blueprint" "APL" "ASL"
"ASN.1" "ASP.NET" "ATS" "ActionScript" "Ada" "Adblock-Filter-List"
"Adobe-Font-Metrics" "Agda" "Alloy" "Alpine-Abuild" "Altium-Designer"
"AngelScript" "Ant-Build-System" "ApacheConf" "Apex"
"Apollo-Guidance-Computer" "AppleScript" "Arc" "AsciiDoc" "AspectJ" "Assembly"
"Asymptote" "Augeas" "AutoHotkey" "AutoIt" "Awk" "Ballerina" "Batchfile"
"Befunge" "BibTeX" "Bison" "BitBake" "Blade" "BlitzBasic" "BlitzMax"
"Bluespec" "Boo" "Brainfuck" "Brightscript" "C#" "C++" "C-ObjDump"
"C2hs-Haskell" "CLIPS" "CMake" "COBOL" "COLLADA" "CSON" "CSS" "CSV" "CWeb"
"Cabal-Config" "Cap'n-Proto" "CartoCSS" "Ceylon" "Chapel" "Charity" "ChucK"
"Cirru" "Clarion" "Clean" "Click" "Clojure" "Closure-Templates"
"Cloud-Firestore-Security-Rules" "CoNLL-U" "CodeQL" "CoffeeScript"
"ColdFusion" "ColdFusion-CFC" "Common-Lisp" "Common-Workflow-Language"
"Component-Pascal" "Cool" "Coq" "Cpp-ObjDump" "Creole" "Crystal" "Csound"
"Csound-Document" "Csound-Score" "Cuda" "Cycript" "Cython" "D-ObjDump"
"DIGITAL-Command-Language" "DM" "DNS-Zone" "DTrace" "Dafny" "Darcs-Patch"
"Dart" "DataWeave" "Dhall" "Diff" "DirectX-3D-File" "Dockerfile" "Dogescript"
"Dylan" "EBNF" "ECL" "ECLiPSe" "EJS" "EML" "EQ" "Eagle" "Easybuild"
"Ecere-Projects" "EditorConfig" "Edje-Data-Collection" "Eiffel" "Elixir" "Elm"
"Emacs-Lisp" "EmberScript" "Erlang" "F#" "F*" "FIGlet-Font" "FLUX" "Factor"
"Fancy" "Fantom" "Faust" "Filebench-WML" "Filterscript" "Formatted" "Forth"
"Fortran" "Fortran-Free-Form" "FreeMarker" "Frege" "G-code" "GAML" "GAMS"
"GAP" "GCC-Machine-Description" "GDB" "GDScript" "GEDCOM" "GLSL" "GN"
"Game-Maker-Language" "Genie" "Genshi" "Gentoo-Ebuild" "Gentoo-Eclass"
"Gerber-Image" "Gettext-Catalog" "Gherkin" "Git-Attributes" "Git-Config"
"Glyph" "Glyph-Bitmap-Distribution-Format" "Gnuplot" "Go" "Golo" "Gosu"
"Grace" "Gradle" "Grammatical-Framework" "Graph-Modeling-Language" "GraphQL"
"Graphviz-(DOT)" "Groovy" "Groovy-Server-Pages" "HAProxy" "HCL" "HLSL" "HTML"
"HTML+Django" "HTML+ECR" "HTML+EEX" "HTML+ERB" "HTML+PHP" "HTML+Razor" "HTTP"
"HXML" "Hack" "Haml" "Handlebars" "Harbour" "Haskell" "Haxe" "HiveQL" "HolyC"
"Hy" "HyPhy" "IDL" "IGOR-Pro" "INI" "IRC-log" "Idris" "Ignore-List" "Inform-7"
"Inno-Setup" "Io" "Ioke" "Isabelle" "Isabelle-ROOT" "JFlex" "JSON"
"JSON-with-Comments" "JSON5" "JSONLD" "JSONiq" "JSX" "Jasmin" "Java"
"Java-Properties" "Java-Server-Pages" "JavaScript" "JavaScript+ERB" "Jison"
"Jison-Lex" "Jolie" "Jsonnet" "Julia" "Jupyter-Notebook" "KRL" "KiCad-Layout"
"KiCad-Legacy-Layout" "KiCad-Schematic" "Kit" "Kotlin" "LFE" "LLVM" "LOLCODE"
"LSL" "LTspice-Symbol" "LabVIEW" "Lasso" "Latte" "Lean" "Less" "Lex"
"LilyPond" "Limbo" "Linker-Script" "Linux-Kernel-Module" "Liquid"
"Literate-Agda" "Literate-CoffeeScript" "Literate-Haskell" "LiveScript"
"Logos" "Logtalk" "LookML" "LoomScript" "Lua" "M4" "M4Sugar" "MATLAB"
"MAXScript" "MLIR" "MQL4" "MQL5" "MTML" "MUF" "Macaulay2" "Makefile" "Mako"
"Markdown" "Marko" "Mask" "Mathematica" "Maven-POM" "Max" "MediaWiki"
"Mercury" "Meson" "Metal" "Microsoft-Developer-Studio-Project" "MiniD" "Mirah"
"Modelica" "Modula-2" "Modula-3" "Module-Management-System" "Monkey" "Moocode"
"MoonScript" "Motorola-68K-Assembly" "Muse" "Myghty" "NASL" "NCL" "NEON" "NL"
"NPM-Config" "NSIS" "Nearley" "Nemerle" "NetLinx" "NetLinx+ERB" "NetLogo"
"NewLisp" "Nextflow" "Nginx" "Nim" "Ninja" "Nit" "Nix" "Nu" "NumPy" "OCaml"
"ObjDump" "Object-Data-Instance-Notation" "ObjectScript" "Objective-C"
"Objective-C++" "Objective-J" "Odin" "Omgrofl" "Opa" "Opal"
"Open-Policy-Agent" "OpenCL" "OpenEdge-ABL" "OpenQASM" "OpenRC-runscript"
"OpenSCAD" "OpenStep-Property-List" "OpenType-Feature-File" "Org" "Ox"
"Oxygene" "Oz" "P4" "PHP" "PLSQL" "PLpgSQL" "POV-Ray-SDL" "Pan" "Papyrus"
"Parrot" "Parrot-Assembly" "Parrot-Internal-Representation" "Pascal" "Pawn"
"Pep8" "Perl" "Pic" "Pickle" "PicoLisp" "PigLatin" "Pike" "PlantUML" "Pod"
"Pod-6" "PogoScript" "Pony" "PostCSS" "PostScript" "PowerBuilder" "PowerShell"
"Prisma" "Processing" "Proguard" "Prolog" "Propeller-Spin" "Protocol-Buffer"
"Public-Key" "Pug" "Puppet" "Pure-Data" "PureBasic" "PureScript" "Python"
"Python-console" "Python-traceback" "QML" "QMake" "Quake" "RAML" "RDoc"
"REALbasic" "REXX" "RHTML" "RMarkdown" "RPC" "RPM-Spec" "RUNOFF" "Racket"
"Ragel" "Raku" "Rascal" "Raw-token-data" "Readline-Config" "Reason" "Rebol"
"Red" "Redcode" "Regular-Expression" "Ren'Py" "RenderScript"
"Rich-Text-Format" "Ring" "Riot" "RobotFramework" "Roff" "Roff-Manpage"
"Rouge" "Ruby" "Rust" "SAS" "SCSS" "SMT" "SPARQL" "SQF" "SQL" "SQLPL"
"SRecode-Template" "SSH-Config" "STON" "SVG" "SWIG" "Sage" "SaltStack" "Sass"
"Scala" "Scaml" "Scheme" "Scilab" "Self" "ShaderLab" "Shell" "ShellSession"
"Shen" "Slash" "Slice" "Slim" "SmPL" "Smali" "Smalltalk" "Smarty" "Solidity"
"SourcePawn" "Spline-Font-Database" "Squirrel" "Stan" "Standard-ML" "Starlark"
"Stata" "Stylus" "SubRip-Text" "SugarSS" "SuperCollider" "Svelte" "Swift"
"SystemVerilog" "TI-Program" "TLA" "TOML" "TSQL" "TSX" "TXL" "Tcl" "Tcsh"
"TeX" "Tea" "Terra" "Texinfo" "Text" "Textile" "Thrift" "Turing" "Turtle"
"Twig" "Type-Language" "TypeScript" "Unified-Parallel-C" "Unity3D-Asset"
"Unix-Assembly" "Uno" "UnrealScript" "UrWeb" "VBA" "VBScript" "VCL" "VHDL"
"Vala" "Verilog" "Vim-Snippet" "Vim-script" "Visual-Basic-.NET" "Volt" "Vue"
"Wavefront-Material" "Wavefront-Object" "Web-Ontology-Language" "WebAssembly"
"WebIDL" "WebVTT" "Wget-Config" "Windows-Registry-Entries" "Wollok"
"World-of-Warcraft-Addon-Data" "X-BitMap" "X-Font-Directory-Index" "X-PixMap"
"X10" "XC" "XCompose" "XML" "XML-Property-List" "XPages" "XProc" "XQuery" "XS"
"XSLT" "Xojo" "Xtend" "YAML" "YANG" "YARA" "YASnippet" "Yacc" "ZAP" "ZIL"
"Zeek" "ZenScript" "Zephir" "Zig" "Zimpl" "cURL-Config" "desktop" "dircolors"
"eC" "edn" "fish" "mIRC-Script" "mcfunction" "mupad" "nanorc" "nesC" "ooc"
"reStructuredText" "sed" "wdl" "wisp" "xBase")
"AngelScript" "Ant-Build-System" "Antlers" "ApacheConf" "Apex"
"Apollo-Guidance-Computer" "AppleScript" "Arc" "AsciiDoc" "AspectJ"
"Assembly" "Astro" "Asymptote" "Augeas" "AutoHotkey" "AutoIt"
"Avro-IDL" "Awk" "BASIC" "Ballerina" "Batchfile" "Beef" "Befunge"
"Berry" "BibTeX" "Bicep" "Bikeshed" "Bison" "BitBake" "Blade"
"BlitzBasic" "BlitzMax" "Bluespec" "Bluespec-BH" "Boo" "Boogie"
"Brainfuck" "BrighterScript" "Brightscript" "Browserslist" "C" "C#"
"C++" "C-ObjDump" "C2hs-Haskell" "CAP-CDS" "CIL" "CLIPS" "CMake"
"COBOL" "CODEOWNERS" "COLLADA" "CSON" "CSS" "CSV" "CUE" "CWeb"
"Cabal-Config" "Cadence" "Cairo" "CameLIGO" "Cap'n-Proto" "CartoCSS"
"Ceylon" "Chapel" "Charity" "Checksums" "ChucK" "Circom" "Cirru"
"Clarion" "Clarity" "Classic-ASP" "Clean" "Click" "Clojure"
"Closure-Templates" "Cloud-Firestore-Security-Rules" "CoNLL-U"
"CodeQL" "CoffeeScript" "ColdFusion" "ColdFusion-CFC" "Common-Lisp"
"Common-Workflow-Language" "Component-Pascal" "Cool" "Coq"
"Cpp-ObjDump" "Creole" "Crystal" "Csound" "Csound-Document"
"Csound-Score" "Cuda" "Cue-Sheet" "Curry" "Cycript" "Cypher" "Cython"
"D" "D-ObjDump" "D2" "DIGITAL-Command-Language" "DM" "DNS-Zone"
"DTrace" "Dafny" "Darcs-Patch" "Dart" "DataWeave"
"Debian-Package-Control-File" "DenizenScript" "Dhall" "Diff"
"DirectX-3D-File" "Dockerfile" "Dogescript" "Dotenv" "Dylan" "E"
"E-mail" "EBNF" "ECL" "ECLiPSe" "EJS" "EQ" "Eagle" "Earthly"
"Easybuild" "Ecere-Projects" "Ecmarkup" "Edge" "EdgeQL"
"EditorConfig" "Edje-Data-Collection" "Eiffel" "Elixir" "Elm"
"Elvish" "Elvish-Transcript" "Emacs-Lisp" "EmberScript" "Erlang"
"Euphoria" "F#" "F*" "FIGlet-Font" "FLUX" "Factor" "Fancy" "Fantom"
"Faust" "Fennel" "Filebench-WML" "Filterscript" "Fluent" "Formatted"
"Forth" "Fortran" "Fortran-Free-Form" "FreeBasic" "FreeMarker"
"Frege" "Futhark" "G-code" "GAML" "GAMS" "GAP"
"GCC-Machine-Description" "GDB" "GDScript" "GEDCOM" "GLSL" "GN" "GSC"
"Game-Maker-Language" "Gemfile.lock" "Gemini" "Genero-4gl"
"Genero-per" "Genie" "Genshi" "Gentoo-Ebuild" "Gentoo-Eclass"
"Gerber-Image" "Gettext-Catalog" "Gherkin" "Git-Attributes"
"Git-Config" "Git-Revision-List" "Gleam" "Glimmer-JS" "Glimmer-TS"
"Glyph" "Glyph-Bitmap-Distribution-Format" "Gnuplot" "Go"
"Go-Checksums" "Go-Module" "Go-Workspace" "Godot-Resource" "Golo"
"Gosu" "Grace" "Gradle" "Gradle-Kotlin-DSL" "Grammatical-Framework"
"Graph-Modeling-Language" "GraphQL" "Graphviz-(DOT)" "Groovy"
"Groovy-Server-Pages" "HAProxy" "HCL" "HLSL" "HOCON" "HTML"
"HTML+ECR" "HTML+EEX" "HTML+ERB" "HTML+PHP" "HTML+Razor" "HTTP"
"HXML" "Hack" "Haml" "Handlebars" "Harbour" "Haskell" "Haxe" "HiveQL"
"HolyC" "Hosts-File" "Hy" "HyPhy" "IDL" "IGOR-Pro" "INI" "IRC-log"
"Idris" "Ignore-List" "ImageJ-Macro" "Imba" "Inform-7" "Ink"
"Inno-Setup" "Io" "Ioke" "Isabelle" "Isabelle-ROOT" "J"
"JAR-Manifest" "JCL" "JFlex" "JSON" "JSON-with-Comments" "JSON5"
"JSONLD" "JSONiq" "Janet" "Jasmin" "Java" "Java-Properties"
"Java-Server-Pages" "JavaScript" "JavaScript+ERB" "Jest-Snapshot"
"JetBrains-MPS" "Jinja" "Jison" "Jison-Lex" "Jolie" "Jsonnet" "Julia"
"Jupyter-Notebook" "Just" "KRL" "Kaitai-Struct" "KakouneScript"
"KerboScript" "KiCad-Layout" "KiCad-Legacy-Layout" "KiCad-Schematic"
"Kickstart" "Kit" "Kotlin" "Kusto" "LFE" "LLVM" "LOLCODE" "LSL"
"LTspice-Symbol" "LabVIEW" "Lark" "Lasso" "Latte" "Lean" "Lean-4"
"Less" "Lex" "LigoLANG" "LilyPond" "Limbo" "Linker-Script"
"Linux-Kernel-Module" "Liquid" "Literate-Agda"
"Literate-CoffeeScript" "Literate-Haskell" "LiveScript" "Logos"
"Logtalk" "LookML" "LoomScript" "Lua" "M" "M4" "M4Sugar" "MATLAB"
"MAXScript" "MDX" "MLIR" "MQL4" "MQL5" "MTML" "MUF" "Macaulay2"
"Makefile" "Mako" "Markdown" "Marko" "Mask" "Mathematica" "Maven-POM"
"Max" "Mercury" "Mermaid" "Meson" "Metal"
"Microsoft-Developer-Studio-Project"
"Microsoft-Visual-Studio-Solution" "MiniD" "MiniYAML" "Mint" "Mirah"
"Modelica" "Modula-2" "Modula-3" "Module-Management-System" "Mojo"
"Monkey" "Monkey-C" "Moocode" "MoonScript" "Motoko"
"Motorola-68K-Assembly" "Move" "Muse" "Mustache" "Myghty" "NASL"
"NCL" "NEON" "NL" "NPM-Config" "NSIS" "NWScript" "Nasal" "Nearley"
"Nemerle" "NetLinx" "NetLinx+ERB" "NetLogo" "NewLisp" "Nextflow"
"Nginx" "Nim" "Ninja" "Nit" "Nix" "Nu" "NumPy" "Nunjucks" "Nushell"
"OASv2-json" "OASv2-yaml" "OASv3-json" "OASv3-yaml" "OCaml" "Oberon"
"ObjDump" "Object-Data-Instance-Notation" "ObjectScript"
"Objective-C" "Objective-C++" "Objective-J" "Odin" "Omgrofl" "Opa"
"Opal" "Open-Policy-Agent" "OpenAPI-Specification-v2"
"OpenAPI-Specification-v3" "OpenCL" "OpenEdge-ABL" "OpenQASM"
"OpenRC-runscript" "OpenSCAD" "OpenStep-Property-List"
"OpenType-Feature-File" "Option-List" "Org" "Ox" "Oxygene" "Oz" "P4"
"PDDL" "PEG.js" "PHP" "PLSQL" "PLpgSQL" "POV-Ray-SDL" "Pact" "Pan"
"Papyrus" "Parrot" "Parrot-Assembly" "Parrot-Internal-Representation"
"Pascal" "Pawn" "Pep8" "Perl" "Pic" "Pickle" "PicoLisp" "PigLatin"
"Pike" "Pip-Requirements" "PlantUML" "Pod" "Pod-6" "PogoScript"
"Polar" "Pony" "Portugol" "PostCSS" "PostScript" "PowerBuilder"
"PowerShell" "Praat" "Prisma" "Processing" "Procfile" "Proguard"
"Prolog" "Promela" "Propeller-Spin" "Protocol-Buffer"
"Protocol-Buffer-Text-Format" "Public-Key" "Pug" "Puppet" "Pure-Data"
"PureBasic" "PureScript" "Pyret" "Python" "Python-console"
"Python-traceback" "Q#" "QML" "QMake" "Qt-Script" "Quake" "R" "RAML"
"RBS" "RDoc" "REALbasic" "REXX" "RMarkdown" "RPC" "RPGLE" "RPM-Spec"
"RUNOFF" "Racket" "Ragel" "Raku" "Rascal" "Raw-token-data" "ReScript"
"Readline-Config" "Reason" "ReasonLIGO" "Rebol" "Record-Jar" "Red"
"Redcode" "Redirect-Rules" "Regular-Expression" "Ren'Py"
"RenderScript" "Rez" "Rich-Text-Format" "Ring" "Riot"
"RobotFramework" "Roc" "Roff" "Roff-Manpage" "Rouge"
"RouterOS-Script" "Ruby" "Rust" "SAS" "SCSS" "SELinux-Policy" "SMT"
"SPARQL" "SQF" "SQL" "SQLPL" "SRecode-Template" "SSH-Config" "STAR"
"STL" "STON" "SVG" "SWIG" "Sage" "SaltStack" "Sass" "Scala" "Scaml"
"Scenic" "Scheme" "Scilab" "Self" "ShaderLab" "Shell"
"ShellCheck-Config" "ShellSession" "Shen" "Sieve"
"Simple-File-Verification" "Singularity" "Slash" "Slice" "Slim"
"Slint" "SmPL" "Smali" "Smalltalk" "Smarty" "Smithy" "Snakemake"
"Solidity" "Soong" "SourcePawn" "Spline-Font-Database" "Squirrel"
"Stan" "Standard-ML" "Starlark" "Stata" "StringTemplate" "Stylus"
"SubRip-Text" "SugarSS" "SuperCollider" "Svelte" "Sway" "Sweave"
"Swift" "SystemVerilog" "TI-Program" "TL-Verilog" "TLA" "TOML" "TSQL"
"TSV" "TSX" "TXL" "Talon" "Tcl" "Tcsh" "TeX" "Tea" "Terra"
"Terraform-Template" "Texinfo" "Text" "TextGrid"
"TextMate-Properties" "Textile" "Thrift" "Toit" "Turing" "Turtle"
"Twig" "Type-Language" "TypeScript" "Typst" "Unified-Parallel-C"
"Unity3D-Asset" "Unix-Assembly" "Uno" "UnrealScript" "UrWeb" "V"
"VBA" "VBScript" "VCL" "VHDL" "Vala" "Valve-Data-Format"
"Velocity-Template-Language" "Verilog" "Vim-Help-File" "Vim-Script"
"Vim-Snippet" "Visual-Basic-.NET" "Visual-Basic-6.0" "Volt" "Vue"
"Vyper" "WDL" "WGSL" "Wavefront-Material" "Wavefront-Object"
"Web-Ontology-Language" "WebAssembly" "WebAssembly-Interface-Type"
"WebIDL" "WebVTT" "Wget-Config" "Whiley" "Wikitext"
"Win32-Message-File" "Windows-Registry-Entries" "Witcher-Script"
"Wollok" "World-of-Warcraft-Addon-Data" "Wren" "X-BitMap"
"X-Font-Directory-Index" "X-PixMap" "X10" "XC" "XCompose" "XML"
"XML-Property-List" "XPages" "XProc" "XQuery" "XS" "XSLT" "Xojo"
"Xonsh" "Xtend" "YAML" "YANG" "YARA" "YASnippet" "Yacc" "Yul" "ZAP"
"ZIL" "Zeek" "ZenScript" "Zephir" "Zig" "Zimpl" "cURL-Config"
"desktop" "dircolors" "eC" "edn" "fish" "hoon" "jq" "kvlang"
"mIRC-Script" "mcfunction" "mupad" "nanorc" "nesC" "ooc" "q"
"reStructuredText" "robots.txt" "sed" "wisp" "xBase")
"Language specifiers recognized by GitHub's syntax highlighting features.")

(defvar-local markdown-gfm-used-languages nil
Expand Down
7 changes: 3 additions & 4 deletions scripts/get-recognized-gfm-languages.el
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
;; -*- lexical-binding: t; -*-

(require 'cl-lib)
(require 'url)

(let ((urlbuf
(url-retrieve-synchronously
"https://raw.githubusercontent.com/github/linguist/master/lib/linguist/languages.yml"
t)))
(prog1 (with-current-buffer urlbuf
(goto-char (point-min))
;; get past http headers
(re-search-forward "^$")
(cl-loop while (re-search-forward "^\\([^#[:space:]][^:]+\\):" nil t)
(goto-char url-http-end-of-headers)
(cl-loop while (re-search-forward "^\\([^#[:space:]][^:\n]*\\):" nil t)
for lang = (match-string-no-properties 1)
collect (replace-regexp-in-string " " "-" lang)))
(kill-buffer urlbuf)))

0 comments on commit fd6c550

Please sign in to comment.