From 220ee6ae4296a9271a6d9b1825b00ed6f3d66659 Mon Sep 17 00:00:00 2001 From: Nicolas Lenz Date: Tue, 30 Oct 2018 15:34:12 +0100 Subject: [PATCH] Pass link prefixes to external markup parsers (#5201) * Pass environment variables for URL prefixes to external markup parser Signed-off-by: Nicolas Lenz * Document external markup link prefix environment variables Signed-off-by: Nicolas Lenz * Run format on link prefix changes Signed-off-by: Nicolas Lenz --- docs/content/doc/advanced/config-cheat-sheet.en-us.md | 4 ++++ modules/markup/external/external.go | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/docs/content/doc/advanced/config-cheat-sheet.en-us.md b/docs/content/doc/advanced/config-cheat-sheet.en-us.md index 4dbc4c0d7..1c327f607 100644 --- a/docs/content/doc/advanced/config-cheat-sheet.en-us.md +++ b/docs/content/doc/advanced/config-cheat-sheet.en-us.md @@ -359,6 +359,10 @@ IS_INPUT_FILE = false - RENDER\_COMMAND: External command to render all matching extensions. - IS\_INPUT\_FILE: **false** Input is not a standard input but a file param followed `RENDER_COMMAND`. +Two special environment variables are passed to the render command: +- `GITEA_PREFIX_SRC`, which contains the current URL prefix in the `src` path tree. To be used as prefix for links. +- `GITEA_PREFIX_RAW`, which contains the current URL prefix in the `raw` path tree. To be used as prefix for image paths. + ## Other (`other`) - `SHOW_FOOTER_BRANDING`: **false**: Show Gitea branding in the footer. diff --git a/modules/markup/external/external.go b/modules/markup/external/external.go index 676ec4b4c..73bf7a327 100644 --- a/modules/markup/external/external.go +++ b/modules/markup/external/external.go @@ -76,6 +76,11 @@ func (p *Parser) Render(rawBytes []byte, urlPrefix string, metas map[string]stri } cmd := exec.Command(commands[0], args...) + cmd.Env = append( + os.Environ(), + "GITEA_PREFIX_SRC="+urlPrefix, + "GITEA_PREFIX_RAW="+strings.Replace(urlPrefix, "/src/", "/raw/", 1), + ) if !p.IsInputFile { cmd.Stdin = rd }