return strings.Join(words[:max], " "), true
}
-// getAsciidocContent calls asciidoctor or asciidoc as an external helper
-// to convert AsciiDoc content to HTML.
-func getAsciidocContent(content []byte) string {
- cleanContent := bytes.Replace(content, SummaryDivider, []byte(""), 1)
-
+func getAsciidocExecPath() string {
path, err := exec.LookPath("asciidoctor")
if err != nil {
path, err = exec.LookPath("asciidoc")
if err != nil {
- jww.ERROR.Println("asciidoctor / asciidoc not found in $PATH: Please install.\n",
- " Leaving AsciiDoc content unrendered.")
- return (string(content))
+ return ""
}
}
+ return path
+}
+
+func HasAsciidoc() bool {
+ return getAsciidocExecPath() != ""
+}
+
+// getAsciidocContent calls asciidoctor or asciidoc as an external helper
+// to convert AsciiDoc content to HTML.
+func getAsciidocContent(content []byte) string {
+ cleanContent := bytes.Replace(content, SummaryDivider, []byte(""), 1)
+
+ path := getAsciidocExecPath()
+ if path == "" {
+ jww.ERROR.Println("asciidoctor / asciidoc not found in $PATH: Please install.\n",
+ " Leaving AsciiDoc content unrendered.")
+ return (string(content))
+ }
jww.INFO.Println("Rendering with", path, "...")
cmd := exec.Command(path, "--no-header-footer", "--safe", "-")
{"sect/doc6.md", "\n```bash\n{{< b >}}\n{{% c %}}\n```\n",
filepath.FromSlash("sect/doc6/index.html"),
"<pre><code class=\"language-bash\">b\nc\n</code></pre>\n"},
+ // #2249
+ {"sect/doc7.ad", `_Shortcodes:_ *b: {{< b >}} c: {{% c %}}*`,
+ filepath.FromSlash("sect/doc7/index.html"),
+ "<div class=\"paragraph\">\n<p><em>Shortcodes:</em> <strong>b: b c: c</strong></p>\n</div>\n"},
}
sources := make([]source.ByteSource, len(tests))
createAndRenderPages(t, s)
for _, test := range tests {
+ if strings.HasSuffix(test.contentPath, ".ad") && !helpers.HasAsciidoc() {
+ fmt.Println("Skip Asciidoc test case as no Asciidoc present.")
+ continue
+ }
file, err := hugofs.Destination().Open(test.outFile)
if err != nil {