diff options
author | zeripath <art27@cantab.net> | 2020-05-24 09:14:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-24 09:14:26 +0100 |
commit | 814ca9ffea229f55f1f69b34d9a7f84054115669 (patch) | |
tree | 1d6fcfaaa7035a42d6d489c1c57987a645e20615 /routers | |
parent | 3761bdb640f1aeb9c68b3b491640eb9b0f9f9b0e (diff) | |
download | gitea-814ca9ffea229f55f1f69b34d9a7f84054115669.tar.gz gitea-814ca9ffea229f55f1f69b34d9a7f84054115669.zip |
Allow different HardBreaks settings for documents and comments (#11515)
GH has different HardBreaks behaviour for markdown comments and documents.
Comments have hard breaks and documents have soft breaks - therefore Gitea's rendering will always be different from GH's if we only provide one setting.
Here we split the setting in to two - one for documents and one for comments and other things.
Signed-off-by: Andrew Thornton art27@cantab.net
Changes to index.js as per @silverwind
Co-authored-by: silverwind <me@silverwind.io>
Changes to docs as per @guillep2k
Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com>
Diffstat (limited to 'routers')
-rw-r--r-- | routers/api/v1/misc/markdown.go | 14 | ||||
-rw-r--r-- | routers/api/v1/misc/markdown_test.go | 2 | ||||
-rw-r--r-- | routers/repo/view.go | 6 | ||||
-rw-r--r-- | routers/repo/wiki.go | 2 |
4 files changed, 17 insertions, 7 deletions
diff --git a/routers/api/v1/misc/markdown.go b/routers/api/v1/misc/markdown.go index 5a44db5e8b..a10c288df4 100644 --- a/routers/api/v1/misc/markdown.go +++ b/routers/api/v1/misc/markdown.go @@ -48,10 +48,12 @@ func Markdown(ctx *context.APIContext, form api.MarkdownOption) { } switch form.Mode { + case "comment": + fallthrough case "gfm": md := []byte(form.Text) urlPrefix := form.Context - var meta map[string]string + meta := map[string]string{} if !strings.HasPrefix(setting.AppSubURL+"/", urlPrefix) { // check if urlPrefix is already set to a URL linkRegex, _ := xurls.StrictMatchingScheme("https?://") @@ -61,7 +63,15 @@ func Markdown(ctx *context.APIContext, form api.MarkdownOption) { } } if ctx.Repo != nil && ctx.Repo.Repository != nil { - meta = ctx.Repo.Repository.ComposeMetas() + // "gfm" = Github Flavored Markdown - set this to render as a document + if form.Mode == "gfm" { + meta = ctx.Repo.Repository.ComposeDocumentMetas() + } else { + meta = ctx.Repo.Repository.ComposeMetas() + } + } + if form.Mode == "gfm" { + meta["mode"] = "document" } if form.Wiki { _, err := ctx.Write([]byte(markdown.RenderWiki(md, urlPrefix, meta))) diff --git a/routers/api/v1/misc/markdown_test.go b/routers/api/v1/misc/markdown_test.go index 264a6010f9..6c81ec8eb4 100644 --- a/routers/api/v1/misc/markdown_test.go +++ b/routers/api/v1/misc/markdown_test.go @@ -94,7 +94,7 @@ Here are some links to the most important topics. You can find the full list of <p><strong>Wine Staging</strong> on website <a href="http://wine-staging.com" rel="nofollow">wine-staging.com</a>.</p> <h2 id="user-content-quick-links">Quick Links</h2> <p>Here are some links to the most important topics. You can find the full list of pages at the sidebar.</p> -<p><a href="` + AppSubURL + `wiki/Configuration" rel="nofollow">Configuration</a><br/> +<p><a href="` + AppSubURL + `wiki/Configuration" rel="nofollow">Configuration</a> <a href="` + AppSubURL + `wiki/raw/images/icon-bug.png" rel="nofollow"><img src="` + AppSubURL + `wiki/raw/images/icon-bug.png" title="icon-bug.png" alt="images/icon-bug.png"/></a></p> `, // Guard wiki sidebar: special syntax diff --git a/routers/repo/view.go b/routers/repo/view.go index 9c9cdc06bf..0f4e2d838c 100644 --- a/routers/repo/view.go +++ b/routers/repo/view.go @@ -319,7 +319,7 @@ func renderDirectory(ctx *context.Context, treeLink string) { if markupType := markup.Type(readmeFile.name); markupType != "" { ctx.Data["IsMarkup"] = true ctx.Data["MarkupType"] = string(markupType) - ctx.Data["FileContent"] = string(markup.Render(readmeFile.name, buf, readmeTreelink, ctx.Repo.Repository.ComposeMetas())) + ctx.Data["FileContent"] = string(markup.Render(readmeFile.name, buf, readmeTreelink, ctx.Repo.Repository.ComposeDocumentMetas())) } else { ctx.Data["IsRenderedHTML"] = true ctx.Data["FileContent"] = strings.Replace( @@ -459,7 +459,7 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st if markupType := markup.Type(blob.Name()); markupType != "" { ctx.Data["IsMarkup"] = true ctx.Data["MarkupType"] = markupType - ctx.Data["FileContent"] = string(markup.Render(blob.Name(), buf, path.Dir(treeLink), ctx.Repo.Repository.ComposeMetas())) + ctx.Data["FileContent"] = string(markup.Render(blob.Name(), buf, path.Dir(treeLink), ctx.Repo.Repository.ComposeDocumentMetas())) } else if readmeExist { ctx.Data["IsRenderedHTML"] = true ctx.Data["FileContent"] = strings.Replace( @@ -538,7 +538,7 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st buf = append(buf, d...) ctx.Data["IsMarkup"] = true ctx.Data["MarkupType"] = markupType - ctx.Data["FileContent"] = string(markup.Render(blob.Name(), buf, path.Dir(treeLink), ctx.Repo.Repository.ComposeMetas())) + ctx.Data["FileContent"] = string(markup.Render(blob.Name(), buf, path.Dir(treeLink), ctx.Repo.Repository.ComposeDocumentMetas())) } } diff --git a/routers/repo/wiki.go b/routers/repo/wiki.go index cc60b4388d..ac650d3fc4 100644 --- a/routers/repo/wiki.go +++ b/routers/repo/wiki.go @@ -209,7 +209,7 @@ func renderViewPage(ctx *context.Context) (*git.Repository, *git.TreeEntry) { return nil, nil } - metas := ctx.Repo.Repository.ComposeMetas() + metas := ctx.Repo.Repository.ComposeDocumentMetas() ctx.Data["content"] = markdown.RenderWiki(data, ctx.Repo.RepoLink, metas) ctx.Data["sidebarPresent"] = sidebarContent != nil ctx.Data["sidebarContent"] = markdown.RenderWiki(sidebarContent, ctx.Repo.RepoLink, metas) |