diff --git a/main.go b/main.go index 7323b50..c6a0786 100644 --- a/main.go +++ b/main.go @@ -181,7 +181,7 @@ func processFile( markdown = bytes.ReplaceAll(markdown, []byte("\r\n"), []byte("\n")) - meta, markdown, err := mark.ExtractMeta(markdown) + meta, markdown, err := mark.ExtractMeta(markdown, flags.TitleFromH1) if err != nil { log.Fatal(err) } @@ -270,7 +270,7 @@ func processFile( } } - links, err := mark.ResolveRelativeLinks(api, meta, markdown, ".") + links, err := mark.ResolveRelativeLinks(api, meta, markdown, filepath.Dir(file), flags.TitleFromH1) if err != nil { log.Fatalf(err, "unable to resolve relative links") } diff --git a/pkg/mark/link.go b/pkg/mark/link.go index b38baed..62b8e26 100644 --- a/pkg/mark/link.go +++ b/pkg/mark/link.go @@ -29,6 +29,7 @@ func ResolveRelativeLinks( meta *Meta, markdown []byte, base string, + titleFromH1 bool, ) ([]LinkSubstitution, error) { matches := parseLinks(string(markdown)) @@ -42,7 +43,7 @@ func ResolveRelativeLinks( match.hash, ) - resolved, err := resolveLink(api, base, match) + resolved, err := resolveLink(api, base, match, titleFromH1) if err != nil { return nil, karma.Format(err, "resolve link: %q", match.full) } @@ -64,12 +65,14 @@ func resolveLink( api *confluence.API, base string, link markdownLink, + titleFromH1 bool, ) (string, error) { var result string if len(link.filename) > 0 { filepath := filepath.Join(base, link.filename) + log.Tracef(nil, "filepath: %s", filepath) stat, err := os.Stat(filepath) if err != nil { return "", nil @@ -92,7 +95,7 @@ func resolveLink( // This helps to determine if found link points to file that's // not markdown or have mark required metadata - linkMeta, _, err := ExtractMeta(linkContents) + linkMeta, _, err := ExtractMeta(linkContents, titleFromH1) if err != nil { log.Errorf( err, @@ -107,6 +110,13 @@ func resolveLink( return "", nil } + log.Tracef( + nil, + "extracted metadata: space=%s title=%s", + linkMeta.Space, + linkMeta.Title, + ) + result, err = getConfluenceLink(api, linkMeta.Space, linkMeta.Title) if err != nil { return "", karma.Format( diff --git a/pkg/mark/meta.go b/pkg/mark/meta.go index 4f4dec3..99bee85 100644 --- a/pkg/mark/meta.go +++ b/pkg/mark/meta.go @@ -46,7 +46,7 @@ var ( reHeaderPatternMacro = regexp.MustCompile(`