fix: extract metadata fails for file types which are not .md

This commit is contained in:
Lucas Oskorep 2023-03-22 15:11:49 -04:00
parent d00d94afa3
commit 67c9b248dd

View File

@ -7,6 +7,7 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"regexp" "regexp"
"strings"
"github.com/kovetskiy/mark/pkg/confluence" "github.com/kovetskiy/mark/pkg/confluence"
"github.com/reconquest/karma-go" "github.com/reconquest/karma-go"
@ -72,10 +73,10 @@ func resolveLink(
var result string var result string
if len(link.filename) > 0 { if len(link.filename) > 0 {
filepath := filepath.Join(base, link.filename) filePath := filepath.Join(base, link.filename)
log.Tracef(nil, "filepath: %s", filepath) log.Tracef(nil, "filePath: %s", filePath)
stat, err := os.Stat(filepath) stat, err := os.Stat(filePath)
if err != nil { if err != nil {
return "", nil return "", nil
} }
@ -84,9 +85,9 @@ func resolveLink(
return "", nil return "", nil
} }
linkContents, err := os.ReadFile(filepath) linkContents, err := os.ReadFile(filePath)
if err != nil { if err != nil {
return "", karma.Format(err, "read file: %s", filepath) return "", karma.Format(err, "read file: %s", filePath)
} }
linkContents = bytes.ReplaceAll( linkContents = bytes.ReplaceAll(
@ -97,12 +98,15 @@ func resolveLink(
// This helps to determine if found link points to file that's // This helps to determine if found link points to file that's
// not markdown or have mark required metadata // not markdown or have mark required metadata
if !IsMarkdownFile(filepath.Ext(filePath)) {
return "", nil
}
linkMeta, _, err := ExtractMeta(linkContents, spaceFromCli, titleFromH1) linkMeta, _, err := ExtractMeta(linkContents, spaceFromCli, titleFromH1)
if err != nil { if err != nil {
log.Errorf( log.Errorf(
err, err,
"unable to extract metadata from %q; ignoring the relative link", "unable to extract metadata from %q; ignoring the relative link",
filepath, filePath,
) )
return "", nil return "", nil
@ -124,7 +128,7 @@ func resolveLink(
return "", karma.Format( return "", karma.Format(
err, err,
"find confluence page: %s / %s / %s", "find confluence page: %s / %s / %s",
filepath, filePath,
linkMeta.Space, linkMeta.Space,
linkMeta.Title, linkMeta.Title,
) )
@ -202,3 +206,12 @@ func getConfluenceLink(
return link, nil return link, nil
} }
func IsMarkdownFile(extension string) bool {
switch strings.ToLower(extension) {
case
"md":
return true
}
return false
}