Revert "change page title"

This reverts commit 623dc5219b19916f010bffdcb4efbc1fa900d5ef.
This commit is contained in:
Egor Kovetskiy 2019-04-08 22:04:30 +03:00
parent e32dc2caaf
commit 9d91b6cb7a
2 changed files with 18 additions and 53 deletions

View File

@ -30,16 +30,15 @@ Confluence instance and update it accordingly.
File in extended format should follow specification File in extended format should follow specification
```markdown ```markdown
[]:# (Space: <space key>) []:# (X-Space: <space key>)
[]:# (Parent: <parent 1>) []:# (X-Parent: <parent 1>)
[]:# (Parent: <parent 2>) []:# (X-Parent: <parent 2>)
[]:# (Title: <rename title>) []:# (X-Title: <title>)
[]:# (Title: <title>)
<page contents> <page contents>
``` ```
There can be any number of 'Parent' headers, if mark can't find specified There can be any number of 'X-Parent' headers, if mark can't find specified
parent by title, it will be created. parent by title, it will be created.
## Usage: ## Usage:

60
main.go
View File

@ -5,7 +5,7 @@ import (
"bytes" "bytes"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
netURL "net/url" "net/url"
"os" "os"
"path/filepath" "path/filepath"
"regexp" "regexp"
@ -120,7 +120,7 @@ const (
type Meta struct { type Meta struct {
Parents []string Parents []string
Space string Space string
Title []string Title string
Layout string Layout string
} }
@ -240,7 +240,7 @@ func main() {
} }
} }
url, err := netURL.Parse(targetURL) url, err := url.Parse(targetURL)
if err != nil { if err != nil {
logger.Fatal(err) logger.Fatal(err)
} }
@ -290,43 +290,9 @@ func main() {
) )
} }
var ( var target *PageInfo
target *PageInfo
rename *PageInfo
)
if len(meta.Title) > 1 { if meta != nil {
page, _ := api.findPage(meta.Space, meta.Title[0])
if page == nil {
for i := len(meta.Title) - 1; i >= 0; i-- {
page, _ := api.findPage(meta.Space, meta.Title[i])
if page != nil {
rename = page
break
}
}
}
}
if rename != nil && meta.Title[0] != "" {
logger.Tracef(
"renaming page '%s' to '%s'", rename.Title,
meta.Title[0],
)
page, err := api.getPageByID(rename.ID)
if err != nil {
logger.Fatal(err)
}
page.Links.Full = strings.Replace(
page.Links.Full,
netURL.QueryEscape(page.Title),
netURL.QueryEscape(meta.Title[0]), 1,
)
page.Title = meta.Title[0]
target = page
} else if meta != nil {
page, err := resolvePage(api, meta) page, err := resolvePage(api, meta)
if err != nil { if err != nil {
logger.Fatal(err) logger.Fatal(err)
@ -422,12 +388,12 @@ func compileMarkdown(markdown []byte) []byte {
} }
func resolvePage(api *API, meta *Meta) (*PageInfo, error) { func resolvePage(api *API, meta *Meta) (*PageInfo, error) {
page, err := api.findPage(meta.Space, meta.Title[0]) page, err := api.findPage(meta.Space, meta.Title)
if err != nil { if err != nil {
return nil, ser.Errorf( return nil, ser.Errorf(
err, err,
"error during finding page '%s': %s", "error during finding page '%s': %s",
meta.Title[0], meta.Title,
) )
} }
@ -454,7 +420,7 @@ func resolvePage(api *API, meta *Meta) (*PageInfo, error) {
} }
path := meta.Parents path := meta.Parents
path = append(path, meta.Title[0]) path = append(path, meta.Title)
logger.Debugf( logger.Debugf(
"resolving page path: ??? > %s", "resolving page path: ??? > %s",
@ -485,16 +451,16 @@ func resolvePage(api *API, meta *Meta) (*PageInfo, error) {
logger.Infof( logger.Infof(
"page will be stored under path: %s > %s", "page will be stored under path: %s > %s",
strings.Join(titles, ` > `), strings.Join(titles, ` > `),
meta.Title[0], meta.Title,
) )
if page == nil { if page == nil {
page, err := api.createPage(meta.Space, parent, meta.Title[0], ``) page, err := api.createPage(meta.Space, parent, meta.Title, ``)
if err != nil { if err != nil {
return nil, ser.Errorf( return nil, ser.Errorf(
err, err,
"can't create page '%s': %s", "can't create page '%s': %s",
meta.Title[0], meta.Title,
) )
} }
@ -664,7 +630,7 @@ func extractMeta(data []byte) (*Meta, error) {
meta.Space = strings.ToUpper(matches[2]) meta.Space = strings.ToUpper(matches[2])
case HeaderTitle: case HeaderTitle:
meta.Title = append(meta.Title, matches[2]) meta.Title = strings.TrimSpace(matches[2])
case HeaderLayout: case HeaderLayout:
meta.Layout = strings.TrimSpace(matches[2]) meta.Layout = strings.TrimSpace(matches[2])
@ -691,7 +657,7 @@ func extractMeta(data []byte) (*Meta, error) {
) )
} }
if meta.Title[0] == "" { if meta.Title == "" {
return nil, fmt.Errorf( return nil, fmt.Errorf(
"page title is not set (%s header is not set)", "page title is not set (%s header is not set)",
HeaderTitle, HeaderTitle,