Add replace_title
write rule to adjust entry titles
This commit is contained in:
parent
a0ae5a6868
commit
69738bce84
2 changed files with 23 additions and 0 deletions
|
@ -91,6 +91,13 @@ func applyRule(entryURL string, entry *model.Entry, rule rule) {
|
||||||
} else {
|
} else {
|
||||||
logger.Debug("[Rewrite] Cannot find search and replace terms for replace rule %s", rule)
|
logger.Debug("[Rewrite] Cannot find search and replace terms for replace rule %s", rule)
|
||||||
}
|
}
|
||||||
|
case "replace_title":
|
||||||
|
// Format: replace_title("search-term"|"replace-term")
|
||||||
|
if len(rule.args) >= 2 {
|
||||||
|
entry.Title = replaceCustom(entry.Title, rule.args[0], rule.args[1])
|
||||||
|
} else {
|
||||||
|
logger.Debug("[Rewrite] Cannot find search and replace terms for replace rule %s", rule)
|
||||||
|
}
|
||||||
case "remove":
|
case "remove":
|
||||||
// Format: remove("#selector > .element, .another")
|
// Format: remove("#selector > .element, .another")
|
||||||
if len(rule.args) >= 1 {
|
if len(rule.args) >= 1 {
|
||||||
|
|
|
@ -450,6 +450,22 @@ func TestRewriteReplaceCustom(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRewriteReplaceTitleCustom(t *testing.T) {
|
||||||
|
controlEntry := &model.Entry{
|
||||||
|
Title: `Ouch, a thistle`,
|
||||||
|
Content: `The replace_title rewrite rule should not modify the content.`,
|
||||||
|
}
|
||||||
|
testEntry := &model.Entry{
|
||||||
|
Title: `A title`,
|
||||||
|
Content: `The replace_title rewrite rule should not modify the content.`,
|
||||||
|
}
|
||||||
|
Rewriter("https://example.org/article", testEntry, `replace_title("(?i)^a\\s*ti"|"Ouch, a this")`)
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(testEntry, controlEntry) {
|
||||||
|
t.Errorf(`Not expected output: got "%+v" instead of "%+v"`, testEntry, controlEntry)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestRewriteRemoveCustom(t *testing.T) {
|
func TestRewriteRemoveCustom(t *testing.T) {
|
||||||
controlEntry := &model.Entry{
|
controlEntry := &model.Entry{
|
||||||
Title: `A title`,
|
Title: `A title`,
|
||||||
|
|
Loading…
Reference in a new issue