fix regression after #60

This commit is contained in:
Egor Kovetskiy 2021-02-04 12:18:28 +03:00
parent 931d9f706a
commit c17a3d02d0
5 changed files with 34 additions and 59 deletions

View File

@ -647,7 +647,7 @@ func newErrorStatusNotOK(request *gopencils.Resource) error {
return fmt.Errorf(
"Confluence API returned unexpected status: %v, "+
"output: %s",
"output: %q",
request.Raw.Status, output,
)
}

View File

@ -3,7 +3,6 @@ package mark
import (
"io"
"regexp"
"strconv"
"strings"
"github.com/kovetskiy/mark/pkg/mark/stdlib"
@ -55,19 +54,20 @@ func (renderer ConfluenceRenderer) RenderNode(
) bf.WalkStatus {
if node.Type == bf.CodeBlock {
lang := string(node.Info)
renderer.Stdlib.Templates.ExecuteTemplate(
writer,
"ac:code",
struct {
Language string
Collapse string
Collapse bool
Title string
Text string
}{
ParseLanguage(lang),
strconv.FormatBool(strings.Contains(lang, "collapse")),
strings.Contains(lang, "collapse"),
ParseTitle(lang),
string(node.Literal),
strings.TrimSuffix(string(node.Literal), "\n"),
},
)

View File

@ -105,17 +105,19 @@ func templates(api *confluence.API) (*template.Template, error) {
// This template is used for rendering code in ```
`ac:code`: text(
`<ac:structured-macro ac:name="expand">{{printf "\n"}}`,
`<ac:parameter ac:name="title">{{ .Title }}</ac:parameter>{{printf "\n"}}`,
`<ac:rich-text-body>{{printf "\n"}}`,
`{{ if .Collapse }}<ac:structured-macro ac:name="expand">{{printf "\n"}}`,
`{{ if .Title }}<ac:parameter ac:name="title">{{ .Title }}</ac:parameter>{{printf "\n"}}{{ end }}`,
`<ac:rich-text-body>{{printf "\n"}}{{ end }}`,
`<ac:structured-macro ac:name="code">{{printf "\n"}}`,
`<ac:parameter ac:name="language">{{ .Language }}</ac:parameter>{{printf "\n"}}`,
`<ac:parameter ac:name="collapse">{{ .Collapse }}</ac:parameter>{{printf "\n"}}`,
`<ac:parameter ac:name="title">{{ .Title }}</ac:parameter>{{printf "\n"}}`,
`<ac:plain-text-body><![CDATA[{{ .Text | cdata }}]]></ac:plain-text-body>{{printf "\n"}}`,
`</ac:structured-macro>{{printf "\n"}}`,
`</ac:rich-text-body>{{printf "\n"}}`,
/**/ `<ac:parameter ac:name="language">{{ .Language }}</ac:parameter>{{printf "\n"}}`,
/**/ `<ac:parameter ac:name="collapse">{{ .Collapse }}</ac:parameter>{{printf "\n"}}`,
/**/ `{{ if .Title }}<ac:parameter ac:name="title">{{ .Title }}</ac:parameter>{{printf "\n"}}{{ end }}`,
/**/ `<ac:plain-text-body><![CDATA[{{ .Text | cdata }}]]></ac:plain-text-body>{{printf "\n"}}`,
`</ac:structured-macro>{{printf "\n"}}`,
`{{ if .Collapse }}</ac:rich-text-body>{{printf "\n"}}`,
`</ac:structured-macro>{{printf "\n"}}{{ end }}`,
),
`ac:status`: text(

View File

@ -1,66 +1,38 @@
<p><code>inline</code></p>
<ac:structured-macro ac:name="expand">
<ac:parameter ac:name="title"></ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:name="code">
<ac:parameter ac:name="language"></ac:parameter>
<ac:parameter ac:name="collapse">false</ac:parameter>
<ac:parameter ac:name="title"></ac:parameter>
<ac:plain-text-body><![CDATA[some code
]]></ac:plain-text-body>
<ac:plain-text-body><![CDATA[some code]]></ac:plain-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:name="expand">
<ac:parameter ac:name="title"></ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:name="code">
<ac:parameter ac:name="language">bash</ac:parameter>
<ac:parameter ac:name="collapse">false</ac:parameter>
<ac:parameter ac:name="title"></ac:parameter>
<ac:plain-text-body><![CDATA[code bash
<ac:plain-text-body><![CDATA[code bash]]></ac:plain-text-body>
</ac:structured-macro>
<ac:structured-macro ac:name="code">
<ac:parameter ac:name="language">bash</ac:parameter>
<ac:parameter ac:name="collapse">false</ac:parameter>
<ac:plain-text-body><![CDATA[with a newline
]]></ac:plain-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:name="expand">
<ac:parameter ac:name="title"></ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:name="code">
<ac:parameter ac:name="language">unknown</ac:parameter>
<ac:parameter ac:name="collapse">false</ac:parameter>
<ac:parameter ac:name="title"></ac:parameter>
<ac:plain-text-body><![CDATA[unknown code
]]></ac:plain-text-body>
</ac:structured-macro>
</ac:rich-text-body>
<ac:plain-text-body><![CDATA[unknown code]]></ac:plain-text-body>
</ac:structured-macro>
<p>text
text 2</p>
<ac:structured-macro ac:name="expand">
<ac:parameter ac:name="title"></ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:name="code">
<ac:parameter ac:name="language">unknown</ac:parameter>
<ac:parameter ac:name="collapse">false</ac:parameter>
<ac:parameter ac:name="title"></ac:parameter>
<ac:plain-text-body><![CDATA[unknown code 2
]]></ac:plain-text-body>
<ac:plain-text-body><![CDATA[unknown code 2]]></ac:plain-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:name="expand">
<ac:parameter ac:name="title">A b c</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:name="code">
<ac:parameter ac:name="language">sh</ac:parameter>
<ac:parameter ac:name="collapse">false</ac:parameter>
<ac:parameter ac:name="title">A b c</ac:parameter>
<ac:plain-text-body><![CDATA[no-collapse-title
]]></ac:plain-text-body>
</ac:structured-macro>
</ac:rich-text-body>
<ac:plain-text-body><![CDATA[no-collapse-title]]></ac:plain-text-body>
</ac:structured-macro>
<ac:structured-macro ac:name="expand">
<ac:parameter ac:name="title">A b c</ac:parameter>
@ -69,20 +41,16 @@ text 2</p>
<ac:parameter ac:name="language">bash</ac:parameter>
<ac:parameter ac:name="collapse">true</ac:parameter>
<ac:parameter ac:name="title">A b c</ac:parameter>
<ac:plain-text-body><![CDATA[collapse-and-title
]]></ac:plain-text-body>
<ac:plain-text-body><![CDATA[collapse-and-title]]></ac:plain-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:name="expand">
<ac:parameter ac:name="title"></ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:name="code">
<ac:parameter ac:name="language">c</ac:parameter>
<ac:parameter ac:name="collapse">true</ac:parameter>
<ac:parameter ac:name="title"></ac:parameter>
<ac:plain-text-body><![CDATA[collapse-no-title
]]></ac:plain-text-body>
<ac:plain-text-body><![CDATA[collapse-no-title]]></ac:plain-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>

View File

@ -7,6 +7,11 @@ some code
code bash
```
```bash
with a newline
```
```unknown
unknown code
```