diff options
author | mrsdizzie <info@mrsdizzie.com> | 2020-06-30 17:34:03 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-01 00:34:03 +0300 |
commit | af7ffaa2798148e2a1b249da2330200bc032d7b1 (patch) | |
tree | 4f1f41767fa620dff4142ac7ebcd74b0abd61033 /modules/indexer/code/search.go | |
parent | ce5f2b9845659efaca0b81998dca6cf03882b134 (diff) | |
download | gitea-af7ffaa2798148e2a1b249da2330200bc032d7b1.tar.gz gitea-af7ffaa2798148e2a1b249da2330200bc032d7b1.zip |
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>
Diffstat (limited to 'modules/indexer/code/search.go')
-rw-r--r-- | modules/indexer/code/search.go | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/modules/indexer/code/search.go b/modules/indexer/code/search.go index ca57b3ff88..29ed416541 100644 --- a/modules/indexer/code/search.go +++ b/modules/indexer/code/search.go @@ -6,8 +6,6 @@ package code import ( "bytes" - "html" - gotemplate "html/template" "strings" "code.gitea.io/gitea/modules/highlight" @@ -23,9 +21,8 @@ type Result struct { UpdatedUnix timeutil.TimeStamp Language string Color string - HighlightClass string LineNumbers []int - FormattedLines gotemplate.HTML + FormattedLines string } func indices(content string, selectionStartIndex, selectionEndIndex int) (int, int) { @@ -80,19 +77,13 @@ func searchResult(result *SearchResult, startIndex, endIndex int) (*Result, erro openActiveIndex := util.Max(result.StartIndex-index, 0) closeActiveIndex := util.Min(result.EndIndex-index, len(line)) err = writeStrings(&formattedLinesBuffer, - `<li>`, - html.EscapeString(line[:openActiveIndex]), - `<span class='active'>`, - html.EscapeString(line[openActiveIndex:closeActiveIndex]), - `</span>`, - html.EscapeString(line[closeActiveIndex:]), - `</li>`, + line[:openActiveIndex], + line[openActiveIndex:closeActiveIndex], + line[closeActiveIndex:], ) } else { err = writeStrings(&formattedLinesBuffer, - `<li>`, - html.EscapeString(line), - `</li>`, + line, ) } if err != nil { @@ -109,9 +100,8 @@ func searchResult(result *SearchResult, startIndex, endIndex int) (*Result, erro UpdatedUnix: result.UpdatedUnix, Language: result.Language, Color: result.Color, - HighlightClass: highlight.FileNameToHighlightClass(result.Filename), LineNumbers: lineNumbers, - FormattedLines: gotemplate.HTML(formattedLinesBuffer.String()), + FormattedLines: highlight.Code(result.Filename, formattedLinesBuffer.String()), }, nil } |