UNPKG

react-code-blocks

Version:

Modified Atlaskit's Code Block to support more languages (i.e graphql, reasonml, etc) and theme (i.e railscast, dracula, monokai, etc) code snippets!

386 lines (384 loc) 6.39 kB
export const SUPPORTED_LANGUAGE_ALIASES = Object.freeze([ { name: 'PHP', alias: ['php', 'php3', 'php4', 'php5'], value: 'php', }, { name: 'Java', alias: ['java'], value: 'java', }, { name: 'CSharp', alias: ['csharp', 'c#', 'cs'], value: 'csharp', }, { name: 'Python', alias: ['python', 'py'], value: 'python', }, { name: 'JavaScript', alias: ['javascript', 'js'], value: 'javascript', }, { name: 'XML', alias: ['xml'], value: 'xml', }, { name: 'HTML', alias: ['html', 'htm'], value: 'markup', }, { name: 'C++', alias: ['c++', 'cpp', 'clike'], value: 'cpp', }, { name: 'Ruby', alias: ['ruby', 'rb', 'duby'], value: 'ruby', }, { name: 'Objective-C', alias: ['objective-c', 'objectivec', 'obj-c', 'objc'], value: 'objectivec', }, { name: 'C', alias: ['c'], value: 'cpp', }, { name: 'Swift', alias: ['swift'], value: 'swift', }, { name: 'TeX', alias: ['tex', 'latex'], value: 'tex', }, { name: 'Shell', alias: ['shell', 'sh', 'ksh', 'zsh'], value: 'bash', }, { name: 'Scala', alias: ['scala'], value: 'scala', }, { name: 'Go', alias: ['go'], value: 'go', }, { name: 'ActionScript', alias: ['actionscript', 'actionscript3', 'as'], value: 'actionscript', }, { name: 'ColdFusion', alias: ['coldfusion'], value: 'xml', }, { name: 'JavaFX', alias: ['javafx', 'jfx'], value: 'java', }, { name: 'VbNet', alias: ['vbnet', 'vb.net'], value: 'vbnet', }, { name: 'JSON', alias: ['json'], value: 'json', }, { name: 'MATLAB', alias: ['matlab'], value: 'matlab', }, { name: 'Groovy', alias: ['groovy'], value: 'groovy', }, { name: 'SQL', alias: [ 'sql', 'postgresql', 'postgres', 'plpgsql', 'psql', 'postgresql-console', 'postgres-console', 'tsql', 't-sql', 'mysql', 'sqlite', ], value: 'sql', }, { name: 'R', alias: ['r'], value: 'r', }, { name: 'Perl', alias: ['perl', 'pl'], value: 'perl', }, { name: 'Lua', alias: ['lua'], value: 'lua', }, { name: 'Delphi', alias: ['delphi', 'pas', 'pascal', 'objectpascal'], value: 'delphi', }, { name: 'XML', alias: ['xml'], value: 'xml', }, { name: 'TypeScript', alias: ['typescript', 'ts', 'tsx'], value: 'typescript', }, { name: 'CoffeeScript', alias: ['coffeescript', 'coffee-script', 'coffee'], value: 'coffeescript', }, { name: 'Haskell', alias: ['haskell', 'hs'], value: 'haskell', }, { name: 'Puppet', alias: ['puppet'], value: 'puppet', }, { name: 'Arduino', alias: ['arduino'], value: 'arduino', }, { name: 'Fortran', alias: ['fortran'], value: 'fortran', }, { name: 'Erlang', alias: ['erlang', 'erl'], value: 'erlang', }, { name: 'PowerShell', alias: ['powershell', 'posh', 'ps1', 'psm1'], value: 'powershell', }, { name: 'Haxe', alias: ['haxe', 'hx', 'hxsl'], value: 'haxe', }, { name: 'Elixir', alias: ['elixir', 'ex', 'exs'], value: 'elixir', }, { name: 'Verilog', alias: ['verilog', 'v'], value: 'verilog', }, { name: 'Rust', alias: ['rust'], value: 'rust', }, { name: 'VHDL', alias: ['vhdl'], value: 'vhdl', }, { name: 'Sass', alias: ['sass'], value: 'less', }, { name: 'OCaml', alias: ['ocaml'], value: 'ocaml', }, { name: 'Dart', alias: ['dart'], value: 'dart', }, { name: 'CSS', alias: ['css'], value: 'css', }, { name: 'reStructuredText', alias: ['restructuredtext', 'rst', 'rest'], value: 'rest', }, { name: 'ObjectPascal', alias: ['objectpascal'], value: 'delphi', }, { name: 'Kotlin', alias: ['kotlin'], value: 'kotlin', }, { name: 'D', alias: ['d'], value: 'd', }, { name: 'Octave', alias: ['octave'], value: 'matlab', }, { name: 'QML', alias: ['qbs', 'qml'], value: 'qml', }, { name: 'Prolog', alias: ['prolog'], value: 'prolog', }, { name: 'FoxPro', alias: ['foxpro', 'vfp', 'clipper', 'xbase'], value: 'vbnet', }, { name: 'Scheme', alias: ['scheme', 'scm'], value: 'scheme', }, { name: 'CUDA', alias: ['cuda', 'cu'], value: 'cpp', }, { name: 'Julia', alias: ['julia', 'jl'], value: 'julia', }, { name: 'Racket', alias: ['racket', 'rkt'], value: 'lisp', }, { name: 'Ada', alias: ['ada', 'ada95', 'ada2005'], value: 'ada', }, { name: 'Tcl', alias: ['tcl'], value: 'tcl', }, { name: 'Mathematica', alias: ['mathematica', 'mma', 'nb'], value: 'mathematica', }, { name: 'Autoit', alias: ['autoit'], value: 'autoit', }, { name: 'StandardML', alias: ['standardmL', 'sml', 'standardml'], value: 'sml', }, { name: 'Objective-J', alias: ['objective-j', 'objectivej', 'obj-j', 'objj'], value: 'objectivec', }, { name: 'Smalltalk', alias: ['smalltalk', 'squeak', 'st'], value: 'smalltalk', }, { name: 'Vala', alias: ['vala', 'vapi'], value: 'vala', }, { name: 'ABAP', alias: ['abap'], value: 'sql', }, { name: 'LiveScript', alias: ['livescript', 'live-script'], value: 'livescript', }, { name: 'XQuery', alias: ['xquery', 'xqy', 'xq', 'xql', 'xqm'], value: 'xquery', }, { name: 'PlainText', alias: ['text', 'plaintext'], value: 'text', }, { name: 'Yaml', alias: ['yaml', 'yml'], value: 'yaml', }, { name: 'GraphQL', alias: ['graphql', 'gql'], value: 'graphql', }, ]); export const normalizeLanguage = (language?: string): string => { if (!language) { return ''; } const match = SUPPORTED_LANGUAGE_ALIASES.find(val => { return val.name === language || val.alias.includes(language); }); // Fallback to plain monospaced text if language passed but not supported return match ? match.value : language || 'text'; };