Merge pull request #89 from beeme1mr/feat/sidebar

feat(sidebar): Add sidebar support
This commit is contained in:
Egor Kovetskiy 2021-06-30 13:13:59 +03:00 committed by GitHub
commit 76c60c33d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 5 deletions

View File

@ -54,6 +54,12 @@ Also, optional following headers are supported:
* (default) page: normal Confluence page - defaults to this if omitted
* blogpost: [Blog post](https://confluence.atlassian.com/doc/blog-posts-834222533.html) in `Space`. Cannot have `Parent`(s)
```markdown
<!-- Sidebar: <h2>Test</h2> -->
```
Setting the sidebar creates a column on the right side. You're able to add any valid HTML content. Adding this property sets the layout to `article`.
Mark supports Go templates, which can be included into article by using path
to the template relative to current working dir, e.g.:

10
main.go
View File

@ -299,11 +299,13 @@ func processFile(
&buffer,
"ac:layout",
struct {
Layout string
Body string
Layout string
Sidebar string
Body string
}{
Layout: meta.Layout,
Body: html,
Layout: meta.Layout,
Sidebar: meta.Sidebar,
Body: html,
},
)
if err != nil {

View File

@ -19,6 +19,7 @@ const (
HeaderAttachment = `Attachment`
HeaderLabel = `Label`
HeaderInclude = `Include`
HeaderSidebar = `Sidebar`
)
type Meta struct {
@ -27,6 +28,7 @@ type Meta struct {
Type string
Title string
Layout string
Sidebar string
Attachments map[string]string
Labels []string
}
@ -96,6 +98,10 @@ func ExtractMeta(data []byte) (*Meta, []byte, error) {
case HeaderLayout:
meta.Layout = strings.TrimSpace(value)
case HeaderSidebar:
meta.Layout = "article"
meta.Sidebar = strings.TrimSpace(value)
case HeaderAttachment:
meta.Attachments[value] = value

View File

@ -95,7 +95,7 @@ func templates(api *confluence.API) (*template.Template, error) {
/**/ `<ac:layout>`,
/**/ `<ac:layout-section ac:type="two_right_sidebar">`,
/**/ `<ac:layout-cell>{{ .Body }}</ac:layout-cell>`,
/**/ `<ac:layout-cell></ac:layout-cell>`,
/**/ `<ac:layout-cell>{{ .Sidebar }}</ac:layout-cell>`,
/**/ `</ac:layout-section>`,
/**/ `</ac:layout>`,
`{{ else }}`,