diff --git a/compiler/docgen.nim b/compiler/docgen.nim
index 2359223491772..3e61032d8530d 100644
--- a/compiler/docgen.nim
+++ b/compiler/docgen.nim
@@ -237,6 +237,7 @@ template declareClosures =
of meInvalidDirective: k = errRstInvalidDirectiveX
of meInvalidField: k = errRstInvalidField
of meFootnoteMismatch: k = errRstFootnoteMismatch
+ of meSandboxedDirective: k = errRstSandboxedDirective
of mwRedefinitionOfLabel: k = warnRstRedefinitionOfLabel
of mwUnknownSubstitution: k = warnRstUnknownSubstitutionX
of mwAmbiguousLink: k = warnRstAmbiguousLink
diff --git a/compiler/lineinfos.nim b/compiler/lineinfos.nim
index e13387be60417..575be61965896 100644
--- a/compiler/lineinfos.nim
+++ b/compiler/lineinfos.nim
@@ -39,6 +39,7 @@ type
errRstInvalidDirectiveX,
errRstInvalidField,
errRstFootnoteMismatch,
+ errRstSandboxedDirective,
errProveInit, # deadcode
errGenerated,
errUser,
@@ -110,6 +111,7 @@ const
errRstInvalidDirectiveX: "invalid directive: '$1'",
errRstInvalidField: "invalid field: $1",
errRstFootnoteMismatch: "number of footnotes and their references don't match: $1",
+ errRstSandboxedDirective: "disabled directive: '$1'",
errProveInit: "Cannot prove that '$1' is initialized.", # deadcode
errGenerated: "$1",
errUser: "$1",
diff --git a/tests/stdlib/trst.nim b/tests/stdlib/trst.nim
index 0a9eb80382274..771e024773504 100644
--- a/tests/stdlib/trst.nim
+++ b/tests/stdlib/trst.nim
@@ -23,7 +23,7 @@ import std/private/miscdollars
import os
proc toAst(input: string,
- rstOptions: RstParseOptions = {roPreferMarkdown, roSupportMarkdown, roNimFile},
+ rstOptions: RstParseOptions = {roPreferMarkdown, roSupportMarkdown, roNimFile, roSandboxDisabled},
error: ref string = nil,
warnings: ref seq[string] = nil): string =
## If `error` is nil then no errors should be generated.
@@ -866,7 +866,7 @@ suite "RST include directive":
test "Include whole":
"other.rst".writeFile("**test1**")
let input = ".. include:: other.rst"
- doAssert "test1" == rstTohtml(input, {}, defaultConfig())
+ doAssert "test1" == rstTohtml(input, {roSandboxDisabled}, defaultConfig())
removeFile("other.rst")
test "Include starting from":
@@ -880,7 +880,7 @@ OtherStart
.. include:: other.rst
:start-after: OtherStart
"""
- check "Visible" == rstTohtml(input, {}, defaultConfig())
+ check "Visible" == rstTohtml(input, {roSandboxDisabled}, defaultConfig())
removeFile("other.rst")
test "Include everything before":
@@ -894,7 +894,7 @@ And this should **NOT** be visible in `docs.html`
.. include:: other.rst
:end-before: OtherEnd
"""
- doAssert "Visible" == rstTohtml(input, {}, defaultConfig())
+ doAssert "Visible" == rstTohtml(input, {roSandboxDisabled}, defaultConfig())
removeFile("other.rst")
@@ -912,7 +912,7 @@ And this should **NOT** be visible in `docs.html`
:start-after: OtherStart
:end-before: OtherEnd
"""
- check "Visible" == rstTohtml(input, {}, defaultConfig())
+ check "Visible" == rstTohtml(input, {roSandboxDisabled}, defaultConfig())
removeFile("other.rst")
@@ -932,7 +932,7 @@ And this should **NOT** be visible in `docs.html`
:start-after: OtherStart
:end-before: OtherEnd
"""
- doAssert "Visible" == rstTohtml(input, {}, defaultConfig())
+ doAssert "Visible" == rstTohtml(input, {roSandboxDisabled}, defaultConfig())
removeFile("other.rst")
suite "RST escaping":