diff --git a/compiler/docgen.nim b/compiler/docgen.nim
index f9ebed1395..acbc8d6aa2 100644
--- a/compiler/docgen.nim
+++ b/compiler/docgen.nim
@@ -221,6 +221,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 mwBrokenLink: k = warnRstBrokenLink
diff --git a/compiler/lineinfos.nim b/compiler/lineinfos.nim
index 8bd5a08909..e62f552af4 100644
--- a/compiler/lineinfos.nim
+++ b/compiler/lineinfos.nim
@@ -39,6 +39,7 @@ type
errRstInvalidDirectiveX,
errRstInvalidField,
errRstFootnoteMismatch,
+ errRstSandboxedDirective,
errProveInit, # deadcode
errGenerated,
errUser,
@@ -109,6 +110,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 e9f67324cb..ca9986607e 100644
--- a/tests/stdlib/trst.nim
+++ b/tests/stdlib/trst.nim
@@ -25,7 +25,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.
@@ -408,7 +408,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":
@@ -422,7 +422,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":
@@ -436,7 +436,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")
@@ -454,7 +454,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")
@@ -474,7 +474,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":