mirror of
https://github.com/gohugoio/hugo.git
synced 2025-03-23 09:43:32 +00:00
parent
6c0f705217
commit
5388211c11
2 changed files with 28 additions and 8 deletions
|
@ -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, "...")
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
Loading…
Reference in a new issue