forked from forgejo/forgejo
Server-side syntax highlighting for all code (#12047)
* Server-side syntax hilighting for all code This PR does a few things: * Remove all traces of highlight.js * Use chroma library to provide fast syntax hilighting directly on the server * Provide syntax hilighting for diffs * Re-style both unified and split diffs views * Add custom syntax hilighting styling for both regular and arc-green Fixes #7729 Fixes #10157 Fixes #11825 Fixes #7728 Fixes #3872 Fixes #3682 And perhaps gets closer to #9553 * fix line marker * fix repo search * Fix single line select * properly load settings * npm uninstall highlight.js * review suggestion * code review * forgot to call function * fix test * Apply suggestions from code review suggestions from @silverwind thanks Co-authored-by: silverwind <me@silverwind.io> * code review * copy/paste error * Use const for highlight size limit * Update web_src/less/_repository.less Co-authored-by: Lauris BH <lauris@nix.lv> * update size limit to 1MB and other styling tweaks * fix highlighting for certain diff sections * fix test * add worker back as suggested Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
parent
ce5f2b9845
commit
af7ffaa279
336 changed files with 37293 additions and 769 deletions
325
vendor/github.com/alecthomas/chroma/pygments-lexers.txt
generated
vendored
Normal file
325
vendor/github.com/alecthomas/chroma/pygments-lexers.txt
generated
vendored
Normal file
|
@ -0,0 +1,325 @@
|
|||
Generated with:
|
||||
|
||||
g 'class.*RegexLexer' | pawk --strict -F: '"pygments.lexers.%s.%s" % (f[0].split(".")[0], f[2].split()[1].split("(")[0])' > lexers.txt
|
||||
|
||||
perl6:
|
||||
Requires a bunch of helpers that I do not have the time to convert.
|
||||
|
||||
kotlin:
|
||||
invalid unicode escape sequences
|
||||
FIXED: Have to disable wide Unicode characters in unistring.py
|
||||
|
||||
pygments.lexers.ambient.AmbientTalkLexer
|
||||
pygments.lexers.ampl.AmplLexer
|
||||
pygments.lexers.actionscript.ActionScriptLexer
|
||||
pygments.lexers.actionscript.ActionScript3Lexer
|
||||
pygments.lexers.actionscript.MxmlLexer
|
||||
pygments.lexers.algebra.GAPLexer
|
||||
pygments.lexers.algebra.MathematicaLexer
|
||||
pygments.lexers.algebra.MuPADLexer
|
||||
pygments.lexers.algebra.BCLexer
|
||||
pygments.lexers.apl.APLLexer
|
||||
pygments.lexers.bibtex.BibTeXLexer
|
||||
pygments.lexers.bibtex.BSTLexer
|
||||
pygments.lexers.basic.BlitzMaxLexer
|
||||
pygments.lexers.basic.BlitzBasicLexer
|
||||
pygments.lexers.basic.MonkeyLexer
|
||||
pygments.lexers.basic.CbmBasicV2Lexer
|
||||
pygments.lexers.basic.QBasicLexer
|
||||
pygments.lexers.automation.AutohotkeyLexer
|
||||
pygments.lexers.automation.AutoItLexer
|
||||
pygments.lexers.archetype.AtomsLexer
|
||||
pygments.lexers.c_like.ClayLexer
|
||||
pygments.lexers.c_like.ValaLexer
|
||||
pygments.lexers.asm.GasLexer
|
||||
pygments.lexers.asm.ObjdumpLexer
|
||||
pygments.lexers.asm.HsailLexer
|
||||
pygments.lexers.asm.LlvmLexer
|
||||
pygments.lexers.asm.NasmLexer
|
||||
pygments.lexers.asm.TasmLexer
|
||||
pygments.lexers.asm.Ca65Lexer
|
||||
pygments.lexers.business.CobolLexer
|
||||
pygments.lexers.business.ABAPLexer
|
||||
pygments.lexers.business.OpenEdgeLexer
|
||||
pygments.lexers.business.GoodDataCLLexer
|
||||
pygments.lexers.business.MaqlLexer
|
||||
pygments.lexers.capnproto.CapnProtoLexer
|
||||
pygments.lexers.chapel.ChapelLexer
|
||||
pygments.lexers.clean.CleanLexer
|
||||
pygments.lexers.c_cpp.CFamilyLexer
|
||||
pygments.lexers.console.VCTreeStatusLexer
|
||||
pygments.lexers.console.PyPyLogLexer
|
||||
pygments.lexers.csound.CsoundLexer
|
||||
pygments.lexers.csound.CsoundDocumentLexer
|
||||
pygments.lexers.csound.CsoundDocumentLexer
|
||||
pygments.lexers.crystal.CrystalLexer
|
||||
pygments.lexers.dalvik.SmaliLexer
|
||||
pygments.lexers.css.CssLexer
|
||||
pygments.lexers.css.SassLexer
|
||||
pygments.lexers.css.ScssLexer
|
||||
pygments.lexers.configs.IniLexer
|
||||
pygments.lexers.configs.RegeditLexer
|
||||
pygments.lexers.configs.PropertiesLexer
|
||||
pygments.lexers.configs.KconfigLexer
|
||||
pygments.lexers.configs.Cfengine3Lexer
|
||||
pygments.lexers.configs.ApacheConfLexer
|
||||
pygments.lexers.configs.SquidConfLexer
|
||||
pygments.lexers.configs.NginxConfLexer
|
||||
pygments.lexers.configs.LighttpdConfLexer
|
||||
pygments.lexers.configs.DockerLexer
|
||||
pygments.lexers.configs.TerraformLexer
|
||||
pygments.lexers.configs.TermcapLexer
|
||||
pygments.lexers.configs.TerminfoLexer
|
||||
pygments.lexers.configs.PkgConfigLexer
|
||||
pygments.lexers.configs.PacmanConfLexer
|
||||
pygments.lexers.data.YamlLexer
|
||||
pygments.lexers.data.JsonLexer
|
||||
pygments.lexers.diff.DiffLexer
|
||||
pygments.lexers.diff.DarcsPatchLexer
|
||||
pygments.lexers.diff.WDiffLexer
|
||||
pygments.lexers.dotnet.CSharpLexer
|
||||
pygments.lexers.dotnet.NemerleLexer
|
||||
pygments.lexers.dotnet.BooLexer
|
||||
pygments.lexers.dotnet.VbNetLexer
|
||||
pygments.lexers.dotnet.GenericAspxLexer
|
||||
pygments.lexers.dotnet.FSharpLexer
|
||||
pygments.lexers.dylan.DylanLexer
|
||||
pygments.lexers.dylan.DylanLidLexer
|
||||
pygments.lexers.ecl.ECLLexer
|
||||
pygments.lexers.eiffel.EiffelLexer
|
||||
pygments.lexers.dsls.ProtoBufLexer
|
||||
pygments.lexers.dsls.ThriftLexer
|
||||
pygments.lexers.dsls.BroLexer
|
||||
pygments.lexers.dsls.PuppetLexer
|
||||
pygments.lexers.dsls.RslLexer
|
||||
pygments.lexers.dsls.MscgenLexer
|
||||
pygments.lexers.dsls.VGLLexer
|
||||
pygments.lexers.dsls.AlloyLexer
|
||||
pygments.lexers.dsls.PanLexer
|
||||
pygments.lexers.dsls.CrmshLexer
|
||||
pygments.lexers.dsls.FlatlineLexer
|
||||
pygments.lexers.dsls.SnowballLexer
|
||||
pygments.lexers.elm.ElmLexer
|
||||
pygments.lexers.erlang.ErlangLexer
|
||||
pygments.lexers.erlang.ElixirLexer
|
||||
pygments.lexers.ezhil.EzhilLexer
|
||||
pygments.lexers.esoteric.BrainfuckLexer
|
||||
pygments.lexers.esoteric.BefungeLexer
|
||||
pygments.lexers.esoteric.CAmkESLexer
|
||||
pygments.lexers.esoteric.CapDLLexer
|
||||
pygments.lexers.esoteric.RedcodeLexer
|
||||
pygments.lexers.esoteric.AheuiLexer
|
||||
pygments.lexers.factor.FactorLexer
|
||||
pygments.lexers.fantom.FantomLexer
|
||||
pygments.lexers.felix.FelixLexer
|
||||
pygments.lexers.forth.ForthLexer
|
||||
pygments.lexers.fortran.FortranLexer
|
||||
pygments.lexers.fortran.FortranFixedLexer
|
||||
pygments.lexers.go.GoLexer
|
||||
pygments.lexers.foxpro.FoxProLexer
|
||||
pygments.lexers.graph.CypherLexer
|
||||
pygments.lexers.grammar_notation.BnfLexer
|
||||
pygments.lexers.grammar_notation.AbnfLexer
|
||||
pygments.lexers.grammar_notation.JsgfLexer
|
||||
pygments.lexers.graphics.GLShaderLexer
|
||||
pygments.lexers.graphics.PostScriptLexer
|
||||
pygments.lexers.graphics.AsymptoteLexer
|
||||
pygments.lexers.graphics.GnuplotLexer
|
||||
pygments.lexers.graphics.PovrayLexer
|
||||
pygments.lexers.hexdump.HexdumpLexer
|
||||
pygments.lexers.haskell.HaskellLexer
|
||||
pygments.lexers.haskell.IdrisLexer
|
||||
pygments.lexers.haskell.AgdaLexer
|
||||
pygments.lexers.haskell.CryptolLexer
|
||||
pygments.lexers.haskell.KokaLexer
|
||||
pygments.lexers.haxe.HaxeLexer
|
||||
pygments.lexers.haxe.HxmlLexer
|
||||
pygments.lexers.hdl.VerilogLexer
|
||||
pygments.lexers.hdl.SystemVerilogLexer
|
||||
pygments.lexers.hdl.VhdlLexer
|
||||
pygments.lexers.idl.IDLLexer
|
||||
pygments.lexers.inferno.LimboLexer
|
||||
pygments.lexers.igor.IgorLexer
|
||||
pygments.lexers.html.HtmlLexer
|
||||
pygments.lexers.html.DtdLexer
|
||||
pygments.lexers.html.XmlLexer
|
||||
pygments.lexers.html.HamlLexer
|
||||
pygments.lexers.html.ScamlLexer
|
||||
pygments.lexers.html.PugLexer
|
||||
pygments.lexers.installers.NSISLexer
|
||||
pygments.lexers.installers.RPMSpecLexer
|
||||
pygments.lexers.installers.SourcesListLexer
|
||||
pygments.lexers.installers.DebianControlLexer
|
||||
pygments.lexers.iolang.IoLexer
|
||||
pygments.lexers.julia.JuliaLexer
|
||||
pygments.lexers.int_fiction.Inform6Lexer
|
||||
pygments.lexers.int_fiction.Inform7Lexer
|
||||
pygments.lexers.int_fiction.Tads3Lexer
|
||||
pygments.lexers.make.BaseMakefileLexer
|
||||
pygments.lexers.make.CMakeLexer
|
||||
pygments.lexers.javascript.JavascriptLexer
|
||||
pygments.lexers.javascript.KalLexer
|
||||
pygments.lexers.javascript.LiveScriptLexer
|
||||
pygments.lexers.javascript.DartLexer
|
||||
pygments.lexers.javascript.TypeScriptLexer
|
||||
pygments.lexers.javascript.LassoLexer
|
||||
pygments.lexers.javascript.ObjectiveJLexer
|
||||
pygments.lexers.javascript.CoffeeScriptLexer
|
||||
pygments.lexers.javascript.MaskLexer
|
||||
pygments.lexers.javascript.EarlGreyLexer
|
||||
pygments.lexers.javascript.JuttleLexer
|
||||
pygments.lexers.jvm.JavaLexer
|
||||
pygments.lexers.jvm.ScalaLexer
|
||||
pygments.lexers.jvm.GosuLexer
|
||||
pygments.lexers.jvm.GroovyLexer
|
||||
pygments.lexers.jvm.IokeLexer
|
||||
pygments.lexers.jvm.ClojureLexer
|
||||
pygments.lexers.jvm.TeaLangLexer
|
||||
pygments.lexers.jvm.CeylonLexer
|
||||
pygments.lexers.jvm.KotlinLexer
|
||||
pygments.lexers.jvm.XtendLexer
|
||||
pygments.lexers.jvm.PigLexer
|
||||
pygments.lexers.jvm.GoloLexer
|
||||
pygments.lexers.jvm.JasminLexer
|
||||
pygments.lexers.markup.BBCodeLexer
|
||||
pygments.lexers.markup.MoinWikiLexer
|
||||
pygments.lexers.markup.RstLexer
|
||||
pygments.lexers.markup.TexLexer
|
||||
pygments.lexers.markup.GroffLexer
|
||||
pygments.lexers.markup.MozPreprocHashLexer
|
||||
pygments.lexers.markup.MarkdownLexer
|
||||
pygments.lexers.ml.SMLLexer
|
||||
pygments.lexers.ml.OcamlLexer
|
||||
pygments.lexers.ml.OpaLexer
|
||||
pygments.lexers.modeling.ModelicaLexer
|
||||
pygments.lexers.modeling.BugsLexer
|
||||
pygments.lexers.modeling.JagsLexer
|
||||
pygments.lexers.modeling.StanLexer
|
||||
pygments.lexers.matlab.MatlabLexer
|
||||
pygments.lexers.matlab.OctaveLexer
|
||||
pygments.lexers.matlab.ScilabLexer
|
||||
pygments.lexers.monte.MonteLexer
|
||||
pygments.lexers.lisp.SchemeLexer
|
||||
pygments.lexers.lisp.CommonLispLexer
|
||||
pygments.lexers.lisp.HyLexer
|
||||
pygments.lexers.lisp.RacketLexer
|
||||
pygments.lexers.lisp.NewLispLexer
|
||||
pygments.lexers.lisp.EmacsLispLexer
|
||||
pygments.lexers.lisp.ShenLexer
|
||||
pygments.lexers.lisp.XtlangLexer
|
||||
pygments.lexers.modula2.Modula2Lexer
|
||||
pygments.lexers.ncl.NCLLexer
|
||||
pygments.lexers.nim.NimLexer
|
||||
pygments.lexers.nit.NitLexer
|
||||
pygments.lexers.nix.NixLexer
|
||||
pygments.lexers.oberon.ComponentPascalLexer
|
||||
pygments.lexers.ooc.OocLexer
|
||||
pygments.lexers.objective.SwiftLexer
|
||||
pygments.lexers.parasail.ParaSailLexer
|
||||
pygments.lexers.pawn.SourcePawnLexer
|
||||
pygments.lexers.pawn.PawnLexer
|
||||
pygments.lexers.pascal.AdaLexer
|
||||
pygments.lexers.parsers.RagelLexer
|
||||
pygments.lexers.parsers.RagelEmbeddedLexer
|
||||
pygments.lexers.parsers.AntlrLexer
|
||||
pygments.lexers.parsers.TreetopBaseLexer
|
||||
pygments.lexers.parsers.EbnfLexer
|
||||
pygments.lexers.php.ZephirLexer
|
||||
pygments.lexers.php.PhpLexer
|
||||
pygments.lexers.perl.PerlLexer
|
||||
pygments.lexers.perl.Perl6Lexer
|
||||
pygments.lexers.praat.PraatLexer
|
||||
pygments.lexers.prolog.PrologLexer
|
||||
pygments.lexers.prolog.LogtalkLexer
|
||||
pygments.lexers.qvt.QVToLexer
|
||||
pygments.lexers.rdf.SparqlLexer
|
||||
pygments.lexers.rdf.TurtleLexer
|
||||
pygments.lexers.python.PythonLexer
|
||||
pygments.lexers.python.Python3Lexer
|
||||
pygments.lexers.python.PythonTracebackLexer
|
||||
pygments.lexers.python.Python3TracebackLexer
|
||||
pygments.lexers.python.CythonLexer
|
||||
pygments.lexers.python.DgLexer
|
||||
pygments.lexers.rebol.RebolLexer
|
||||
pygments.lexers.rebol.RedLexer
|
||||
pygments.lexers.resource.ResourceLexer
|
||||
pygments.lexers.rnc.RNCCompactLexer
|
||||
pygments.lexers.roboconf.RoboconfGraphLexer
|
||||
pygments.lexers.roboconf.RoboconfInstancesLexer
|
||||
pygments.lexers.rust.RustLexer
|
||||
pygments.lexers.ruby.RubyLexer
|
||||
pygments.lexers.ruby.FancyLexer
|
||||
pygments.lexers.sas.SASLexer
|
||||
pygments.lexers.smalltalk.SmalltalkLexer
|
||||
pygments.lexers.smalltalk.NewspeakLexer
|
||||
pygments.lexers.smv.NuSMVLexer
|
||||
pygments.lexers.shell.BashLexer
|
||||
pygments.lexers.shell.BatchLexer
|
||||
pygments.lexers.shell.TcshLexer
|
||||
pygments.lexers.shell.PowerShellLexer
|
||||
pygments.lexers.shell.FishShellLexer
|
||||
pygments.lexers.snobol.SnobolLexer
|
||||
pygments.lexers.scripting.LuaLexer
|
||||
pygments.lexers.scripting.ChaiscriptLexer
|
||||
pygments.lexers.scripting.LSLLexer
|
||||
pygments.lexers.scripting.AppleScriptLexer
|
||||
pygments.lexers.scripting.RexxLexer
|
||||
pygments.lexers.scripting.MOOCodeLexer
|
||||
pygments.lexers.scripting.HybrisLexer
|
||||
pygments.lexers.scripting.EasytrieveLexer
|
||||
pygments.lexers.scripting.JclLexer
|
||||
pygments.lexers.supercollider.SuperColliderLexer
|
||||
pygments.lexers.stata.StataLexer
|
||||
pygments.lexers.tcl.TclLexer
|
||||
pygments.lexers.sql.PostgresLexer
|
||||
pygments.lexers.sql.PlPgsqlLexer
|
||||
pygments.lexers.sql.PsqlRegexLexer
|
||||
pygments.lexers.sql.SqlLexer
|
||||
pygments.lexers.sql.TransactSqlLexer
|
||||
pygments.lexers.sql.MySqlLexer
|
||||
pygments.lexers.sql.RqlLexer
|
||||
pygments.lexers.testing.GherkinLexer
|
||||
pygments.lexers.testing.TAPLexer
|
||||
pygments.lexers.textedit.AwkLexer
|
||||
pygments.lexers.textedit.VimLexer
|
||||
pygments.lexers.textfmts.IrcLogsLexer
|
||||
pygments.lexers.textfmts.GettextLexer
|
||||
pygments.lexers.textfmts.HttpLexer
|
||||
pygments.lexers.textfmts.TodotxtLexer
|
||||
pygments.lexers.trafficscript.RtsLexer
|
||||
pygments.lexers.theorem.CoqLexer
|
||||
pygments.lexers.theorem.IsabelleLexer
|
||||
pygments.lexers.theorem.LeanLexer
|
||||
pygments.lexers.templates.SmartyLexer
|
||||
pygments.lexers.templates.VelocityLexer
|
||||
pygments.lexers.templates.DjangoLexer
|
||||
pygments.lexers.templates.MyghtyLexer
|
||||
pygments.lexers.templates.MasonLexer
|
||||
pygments.lexers.templates.MakoLexer
|
||||
pygments.lexers.templates.CheetahLexer
|
||||
pygments.lexers.templates.GenshiTextLexer
|
||||
pygments.lexers.templates.GenshiMarkupLexer
|
||||
pygments.lexers.templates.JspRootLexer
|
||||
pygments.lexers.templates.EvoqueLexer
|
||||
pygments.lexers.templates.ColdfusionLexer
|
||||
pygments.lexers.templates.ColdfusionMarkupLexer
|
||||
pygments.lexers.templates.TeaTemplateRootLexer
|
||||
pygments.lexers.templates.HandlebarsLexer
|
||||
pygments.lexers.templates.LiquidLexer
|
||||
pygments.lexers.templates.TwigLexer
|
||||
pygments.lexers.templates.Angular2Lexer
|
||||
pygments.lexers.urbi.UrbiscriptLexer
|
||||
pygments.lexers.typoscript.TypoScriptCssDataLexer
|
||||
pygments.lexers.typoscript.TypoScriptHtmlDataLexer
|
||||
pygments.lexers.typoscript.TypoScriptLexer
|
||||
pygments.lexers.varnish.VCLLexer
|
||||
pygments.lexers.verification.BoogieLexer
|
||||
pygments.lexers.verification.SilverLexer
|
||||
pygments.lexers.x10.X10Lexer
|
||||
pygments.lexers.whiley.WhileyLexer
|
||||
pygments.lexers.xorg.XorgLexer
|
||||
pygments.lexers.webmisc.DuelLexer
|
||||
pygments.lexers.webmisc.XQueryLexer
|
||||
pygments.lexers.webmisc.QmlLexer
|
||||
pygments.lexers.webmisc.CirruLexer
|
||||
pygments.lexers.webmisc.SlimLexer
|
Loading…
Add table
Add a link
Reference in a new issue