Define parent pages from CLI

This commit is contained in:
Manuel Rüger
2023-08-09 13:06:31 +02:00
parent 8b72bc8e20
commit b426d5c6b1
6 changed files with 38 additions and 16 deletions

View File

@@ -32,6 +32,7 @@ func ResolveRelativeLinks(
base string,
spaceFromCli string,
titleFromH1 bool,
parents []string,
) ([]LinkSubstitution, error) {
matches := parseLinks(string(markdown))
@@ -44,7 +45,7 @@ func ResolveRelativeLinks(
match.filename,
match.hash,
)
resolved, err := resolveLink(api, base, match, spaceFromCli, titleFromH1)
resolved, err := resolveLink(api, base, match, spaceFromCli, titleFromH1, parents)
if err != nil {
return nil, karma.Format(err, "resolve link: %q", match.full)
}
@@ -68,6 +69,7 @@ func resolveLink(
link markdownLink,
spaceFromCli string,
titleFromH1 bool,
parents []string,
) (string, error) {
var result string
@@ -102,7 +104,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, spaceFromCli, titleFromH1)
linkMeta, _, err := ExtractMeta(linkContents, spaceFromCli, titleFromH1, parents)
if err != nil {
log.Errorf(
err,

View File

@@ -46,7 +46,7 @@ var (
reHeaderPatternMacro = regexp.MustCompile(`<!-- Macro: .*`)
)
func ExtractMeta(data []byte, spaceFromCli string, titleFromH1 bool) (*Meta, []byte, error) {
func ExtractMeta(data []byte, spaceFromCli string, titleFromH1 bool, parents []string) (*Meta, []byte, error) {
var (
meta *Meta
offset int
@@ -171,5 +171,10 @@ func ExtractMeta(data []byte, spaceFromCli string, titleFromH1 bool) (*Meta, []b
return nil, data, nil
}
// Prepend parent pages that are defined via the cli flag
if len(parents) > 0 && parents[0] != "" {
meta.Parents = append(parents, meta.Parents...)
}
return meta, data[offset:], nil
}