1
0
Fork 0
forked from forgejo/forgejo

Add Tabular Diff for CSV files (#14661)

Implements request #14320 The rendering of CSV files does match the diff style.

* Moved CSV logic into base package.

* Added method to create a tabular diff.

* Added CSV compare context.

* Added CSV diff template.

* Use new table style in CSV markup.

* Added file size limit for CSV rendering.

* Display CSV parser errors in diff.

* Lazy read single file.

* Lazy read rows for full diff.

* Added unit tests for various CSV changes.
This commit is contained in:
KN4CK3R 2021-03-29 22:44:28 +02:00 committed by GitHub
parent d3b8127ad3
commit 0c6137617f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 937 additions and 118 deletions

View file

@ -13,14 +13,10 @@ import (
func TestRenderCSV(t *testing.T) {
var parser Parser
var kases = map[string]string{
"a": "<table class=\"table\"><tr><td>a</td></tr></table>",
"1,2": "<table class=\"table\"><tr><td>1</td><td>2</td></tr></table>",
"1;2": "<table class=\"table\"><tr><td>1</td><td>2</td></tr></table>",
"1\t2": "<table class=\"table\"><tr><td>1</td><td>2</td></tr></table>",
"1|2": "<table class=\"table\"><tr><td>1</td><td>2</td></tr></table>",
"1,2,3;4,5,6;7,8,9\na;b;c": "<table class=\"table\"><tr><td>1,2,3</td><td>4,5,6</td><td>7,8,9</td></tr><tr><td>a</td><td>b</td><td>c</td></tr></table>",
"\"1,2,3,4\";\"a\nb\"\nc;d": "<table class=\"table\"><tr><td>1,2,3,4</td><td>a\nb</td></tr><tr><td>c</td><td>d</td></tr></table>",
"<br/>": "<table class=\"table\"><tr><td>&lt;br/&gt;</td></tr></table>",
"a": "<table class=\"data-table\"><tr><th class=\"line-num\">1</th><th>a</th></tr></table>",
"1,2": "<table class=\"data-table\"><tr><th class=\"line-num\">1</th><th>1</th><th>2</th></tr></table>",
"1;2\n3;4": "<table class=\"data-table\"><tr><th class=\"line-num\">1</th><th>1</th><th>2</th></tr><tr><td class=\"line-num\">2</td><td>3</td><td>4</td></tr></table>",
"<br/>": "<table class=\"data-table\"><tr><th class=\"line-num\">1</th><th>&lt;br/&gt;</th></tr></table>",
}
for k, v := range kases {