Add Asciidoc shortcode test

Fixes #2249
This commit is contained in:
Bjørn Erik Pedersen 2016-07-04 00:33:08 +02:00
parent 6c0f705217
commit 5388211c11
2 changed files with 28 additions and 8 deletions

View file

@ -458,19 +458,31 @@ func TruncateWordsToWholeSentence(words []string, max int) (string, bool) {
return strings.Join(words[:max], " "), true return strings.Join(words[:max], " "), true
} }
func getAsciidocExecPath() string {
path, err := exec.LookPath("asciidoctor")
if err != nil {
path, err = exec.LookPath("asciidoc")
if err != nil {
return ""
}
}
return path
}
func HasAsciidoc() bool {
return getAsciidocExecPath() != ""
}
// getAsciidocContent calls asciidoctor or asciidoc as an external helper // getAsciidocContent calls asciidoctor or asciidoc as an external helper
// to convert AsciiDoc content to HTML. // to convert AsciiDoc content to HTML.
func getAsciidocContent(content []byte) string { func getAsciidocContent(content []byte) string {
cleanContent := bytes.Replace(content, SummaryDivider, []byte(""), 1) cleanContent := bytes.Replace(content, SummaryDivider, []byte(""), 1)
path, err := exec.LookPath("asciidoctor") path := getAsciidocExecPath()
if err != nil { if path == "" {
path, err = exec.LookPath("asciidoc") jww.ERROR.Println("asciidoctor / asciidoc not found in $PATH: Please install.\n",
if err != nil { " Leaving AsciiDoc content unrendered.")
jww.ERROR.Println("asciidoctor / asciidoc not found in $PATH: Please install.\n", return (string(content))
" Leaving AsciiDoc content unrendered.")
return (string(content))
}
} }
jww.INFO.Println("Rendering with", path, "...") jww.INFO.Println("Rendering with", path, "...")

View file

@ -466,6 +466,10 @@ e`,
{"sect/doc6.md", "\n```bash\n{{< b >}}\n{{% c %}}\n```\n", {"sect/doc6.md", "\n```bash\n{{< b >}}\n{{% c %}}\n```\n",
filepath.FromSlash("sect/doc6/index.html"), filepath.FromSlash("sect/doc6/index.html"),
"<pre><code class=\"language-bash\">b\nc\n</code></pre>\n"}, "<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)) sources := make([]source.ByteSource, len(tests))
@ -494,6 +498,10 @@ e`,
createAndRenderPages(t, s) createAndRenderPages(t, s)
for _, test := range tests { 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) file, err := hugofs.Destination().Open(test.outFile)
if err != nil { if err != nil {