mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
fix: unsupported lang handler in client
This commit is contained in:
parent
9d71b58345
commit
09659be002
2 changed files with 323 additions and 3 deletions
|
|
@ -1,16 +1,18 @@
|
||||||
import React, { useState, useEffect } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import hljs from 'highlight.js';
|
import hljs from 'highlight.js';
|
||||||
|
import languages from '~/utils/languages';
|
||||||
|
|
||||||
export default function Highlight({language, code}) {
|
export default function Highlight({language, code}) {
|
||||||
const [highlightedCode, setHighlightedCode] = useState(code);
|
const [highlightedCode, setHighlightedCode] = useState(code);
|
||||||
|
const lang = languages.has(language) ? language : 'shell';
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setHighlightedCode(hljs.highlight(code, { language }).value);
|
setHighlightedCode(hljs.highlight(code, { language: lang }).value);
|
||||||
}, [code, language]);
|
}, [code, lang]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<pre>
|
<pre>
|
||||||
<code className={`language-${language}`} dangerouslySetInnerHTML={{__html: highlightedCode}}/>
|
<code className={`language-${lang}`} dangerouslySetInnerHTML={{__html: highlightedCode}}/>
|
||||||
</pre>
|
</pre>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
318
client/src/utils/languages.js
Normal file
318
client/src/utils/languages.js
Normal file
|
|
@ -0,0 +1,318 @@
|
||||||
|
const languages = new Set([
|
||||||
|
'adoc',
|
||||||
|
'apacheconf',
|
||||||
|
'arm',
|
||||||
|
'as',
|
||||||
|
'asc',
|
||||||
|
'atom',
|
||||||
|
'bat',
|
||||||
|
'bf',
|
||||||
|
'bind',
|
||||||
|
'c++',
|
||||||
|
'capnp',
|
||||||
|
'cc',
|
||||||
|
'clj',
|
||||||
|
'cls',
|
||||||
|
'cmake.in',
|
||||||
|
'cmd',
|
||||||
|
'coffee',
|
||||||
|
'console',
|
||||||
|
'cr',
|
||||||
|
'craftcms',
|
||||||
|
'crm',
|
||||||
|
'cs',
|
||||||
|
'cson',
|
||||||
|
'cts',
|
||||||
|
'cxx',
|
||||||
|
'dfm',
|
||||||
|
'docker',
|
||||||
|
'dst',
|
||||||
|
'erl',
|
||||||
|
'f90',
|
||||||
|
'f95',
|
||||||
|
'fs',
|
||||||
|
'gawk',
|
||||||
|
'gemspec',
|
||||||
|
'gms',
|
||||||
|
'golang',
|
||||||
|
'gololang',
|
||||||
|
'gss',
|
||||||
|
'gyp',
|
||||||
|
'h',
|
||||||
|
'h++',
|
||||||
|
'hbs',
|
||||||
|
'hh',
|
||||||
|
'hpp',
|
||||||
|
'hs',
|
||||||
|
'html',
|
||||||
|
'html.handlebars',
|
||||||
|
'html.hbs',
|
||||||
|
'https',
|
||||||
|
'hx',
|
||||||
|
'hxx',
|
||||||
|
'hylang',
|
||||||
|
'i7',
|
||||||
|
'iced',
|
||||||
|
'ino',
|
||||||
|
'instances',
|
||||||
|
'irb',
|
||||||
|
'jinja',
|
||||||
|
'js',
|
||||||
|
'jsp',
|
||||||
|
'jsx',
|
||||||
|
'julia-repl',
|
||||||
|
'kdb',
|
||||||
|
'kt',
|
||||||
|
'lassoscript',
|
||||||
|
'ls',
|
||||||
|
'ls',
|
||||||
|
'mak',
|
||||||
|
'make',
|
||||||
|
'mawk',
|
||||||
|
'md',
|
||||||
|
'mipsasm',
|
||||||
|
'mk',
|
||||||
|
'mkd',
|
||||||
|
'mkdown',
|
||||||
|
'ml',
|
||||||
|
'ml',
|
||||||
|
'mm',
|
||||||
|
'mma',
|
||||||
|
'moon',
|
||||||
|
'mts',
|
||||||
|
'nawk',
|
||||||
|
'nc',
|
||||||
|
'nginxconf',
|
||||||
|
'nimrod',
|
||||||
|
'objc',
|
||||||
|
'obj-c',
|
||||||
|
'obj-c++',
|
||||||
|
'objective-c++',
|
||||||
|
'osascript',
|
||||||
|
'pas',
|
||||||
|
'pascal',
|
||||||
|
'patch',
|
||||||
|
'pcmk',
|
||||||
|
'pf.conf',
|
||||||
|
'pl',
|
||||||
|
'plist',
|
||||||
|
'pm',
|
||||||
|
'podspec',
|
||||||
|
'postgres',
|
||||||
|
'postgresql',
|
||||||
|
'pp',
|
||||||
|
'ps',
|
||||||
|
'ps1',
|
||||||
|
'py',
|
||||||
|
'pycon',
|
||||||
|
'rb',
|
||||||
|
're',
|
||||||
|
'rs',
|
||||||
|
'rss',
|
||||||
|
'sas',
|
||||||
|
'scad',
|
||||||
|
'sci',
|
||||||
|
'sh',
|
||||||
|
'st',
|
||||||
|
'stanfuncs',
|
||||||
|
'step',
|
||||||
|
'stp',
|
||||||
|
'styl',
|
||||||
|
'svg',
|
||||||
|
'tao',
|
||||||
|
'text',
|
||||||
|
'thor',
|
||||||
|
'tk',
|
||||||
|
'toml',
|
||||||
|
'ts',
|
||||||
|
'tsx',
|
||||||
|
'txt',
|
||||||
|
'v',
|
||||||
|
'vb',
|
||||||
|
'vbs',
|
||||||
|
'wl',
|
||||||
|
'x++',
|
||||||
|
'xhtml',
|
||||||
|
'xjb',
|
||||||
|
'xls',
|
||||||
|
'xlsx',
|
||||||
|
'xpath',
|
||||||
|
'xq',
|
||||||
|
'xsd',
|
||||||
|
'xsl',
|
||||||
|
'yaml',
|
||||||
|
'zep',
|
||||||
|
'zone',
|
||||||
|
'zsh',
|
||||||
|
'1c',
|
||||||
|
'abnf',
|
||||||
|
'accesslog',
|
||||||
|
'actionscript',
|
||||||
|
'ada',
|
||||||
|
'angelscript',
|
||||||
|
'apache',
|
||||||
|
'applescript',
|
||||||
|
'arcade',
|
||||||
|
'arduino',
|
||||||
|
'armasm',
|
||||||
|
'asciidoc',
|
||||||
|
'aspectj',
|
||||||
|
'autohotkey',
|
||||||
|
'autoit',
|
||||||
|
'avrasm',
|
||||||
|
'awk',
|
||||||
|
'axapta',
|
||||||
|
'bash',
|
||||||
|
'basic',
|
||||||
|
'bnf',
|
||||||
|
'brainfuck',
|
||||||
|
'c',
|
||||||
|
'cal',
|
||||||
|
'capnproto',
|
||||||
|
'clojure',
|
||||||
|
'cmake',
|
||||||
|
'coffeescript',
|
||||||
|
'coq',
|
||||||
|
'cos',
|
||||||
|
'cpp',
|
||||||
|
'crmsh',
|
||||||
|
'crystal',
|
||||||
|
'csharp',
|
||||||
|
'csp',
|
||||||
|
'css',
|
||||||
|
'd',
|
||||||
|
'dart',
|
||||||
|
'diff',
|
||||||
|
'django',
|
||||||
|
'dns',
|
||||||
|
'dockerfile',
|
||||||
|
'dos',
|
||||||
|
'dpr',
|
||||||
|
'dsconfig',
|
||||||
|
'dts',
|
||||||
|
'dust',
|
||||||
|
'ebnf',
|
||||||
|
'elixir',
|
||||||
|
'elm',
|
||||||
|
'erlang',
|
||||||
|
'excel',
|
||||||
|
'fix',
|
||||||
|
'fortran',
|
||||||
|
'fsharp',
|
||||||
|
'gams',
|
||||||
|
'gauss',
|
||||||
|
'gcode',
|
||||||
|
'gherkin',
|
||||||
|
'glsl',
|
||||||
|
'go',
|
||||||
|
'golo',
|
||||||
|
'gradle',
|
||||||
|
'graph',
|
||||||
|
'graphql',
|
||||||
|
'groovy',
|
||||||
|
'haml',
|
||||||
|
'handlebars',
|
||||||
|
'haskell',
|
||||||
|
'haxe',
|
||||||
|
'http',
|
||||||
|
'hy',
|
||||||
|
'inform7',
|
||||||
|
'ini',
|
||||||
|
'irpf90',
|
||||||
|
'java',
|
||||||
|
'javascript',
|
||||||
|
'json',
|
||||||
|
'julia',
|
||||||
|
'k',
|
||||||
|
'kotlin',
|
||||||
|
'lasso',
|
||||||
|
'ldif',
|
||||||
|
'leaf',
|
||||||
|
'less',
|
||||||
|
'lisp',
|
||||||
|
'livecodeserver',
|
||||||
|
'livescript',
|
||||||
|
'lua',
|
||||||
|
'makefile',
|
||||||
|
'markdown',
|
||||||
|
'mathematica',
|
||||||
|
'matlab',
|
||||||
|
'maxima',
|
||||||
|
'mel',
|
||||||
|
'mercury',
|
||||||
|
'mips',
|
||||||
|
'mizar',
|
||||||
|
'mojolicious',
|
||||||
|
'monkey',
|
||||||
|
'moonscript',
|
||||||
|
'n1ql',
|
||||||
|
'nginx',
|
||||||
|
'nim',
|
||||||
|
'nix',
|
||||||
|
'nsis',
|
||||||
|
'objectivec',
|
||||||
|
'ocaml',
|
||||||
|
'openscad',
|
||||||
|
'oxygene',
|
||||||
|
'p21',
|
||||||
|
'parser3',
|
||||||
|
'perl',
|
||||||
|
'pf',
|
||||||
|
'pgsql',
|
||||||
|
'php',
|
||||||
|
'plaintext',
|
||||||
|
'pony',
|
||||||
|
'powershell',
|
||||||
|
'processing',
|
||||||
|
'profile',
|
||||||
|
'prolog',
|
||||||
|
'properties',
|
||||||
|
'protobuf',
|
||||||
|
'puppet',
|
||||||
|
'python',
|
||||||
|
'python-repl',
|
||||||
|
'qml',
|
||||||
|
'r',
|
||||||
|
'reasonml',
|
||||||
|
'rib',
|
||||||
|
'rsl',
|
||||||
|
'ruby',
|
||||||
|
'ruleslanguage',
|
||||||
|
'rust',
|
||||||
|
'SAS',
|
||||||
|
'scala' ,
|
||||||
|
'scheme',
|
||||||
|
'scilab',
|
||||||
|
'scss',
|
||||||
|
'shell',
|
||||||
|
'smali',
|
||||||
|
'smalltalk',
|
||||||
|
'sml',
|
||||||
|
'sql',
|
||||||
|
'stan',
|
||||||
|
'stata',
|
||||||
|
'stylus',
|
||||||
|
'subunit',
|
||||||
|
'swift',
|
||||||
|
'tap',
|
||||||
|
'tcl',
|
||||||
|
'tex',
|
||||||
|
'thrift',
|
||||||
|
'tp',
|
||||||
|
'twig',
|
||||||
|
'typescript',
|
||||||
|
'vala',
|
||||||
|
'vbnet',
|
||||||
|
'vbscript',
|
||||||
|
'verilog',
|
||||||
|
'vhdl',
|
||||||
|
'vim',
|
||||||
|
'x86asm',
|
||||||
|
'xl',
|
||||||
|
'xml',
|
||||||
|
'xquery',
|
||||||
|
'yml',
|
||||||
|
'zephir',
|
||||||
|
]);
|
||||||
|
|
||||||
|
module.exports = languages;
|
||||||
Loading…
Add table
Add a link
Reference in a new issue