mirror of
https://github.com/apricote/releaser-pleaser.git
synced 2026-02-07 10:17:02 +00:00
feat: format markdown in changelog entry (#41)
This commit is contained in:
parent
4cb22eae10
commit
0750bd6b46
6 changed files with 72 additions and 8 deletions
31
internal/markdown/prettier.go
Normal file
31
internal/markdown/prettier.go
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
package markdown
|
||||
|
||||
import (
|
||||
"github.com/yuin/goldmark/ast"
|
||||
"github.com/yuin/goldmark/parser"
|
||||
"github.com/yuin/goldmark/text"
|
||||
)
|
||||
|
||||
type newLineTransformer struct{}
|
||||
|
||||
var _ parser.ASTTransformer = (*newLineTransformer)(nil) // interface compliance
|
||||
|
||||
func (t *newLineTransformer) Transform(doc *ast.Document, _ text.Reader, _ parser.Context) {
|
||||
// No error can happen as they can only come from the walker function
|
||||
_ = ast.Walk(doc, func(node ast.Node, entering bool) (ast.WalkStatus, error) {
|
||||
if !entering || node.Type() != ast.TypeBlock {
|
||||
return ast.WalkContinue, nil
|
||||
}
|
||||
|
||||
switch node.Kind() {
|
||||
case ast.KindListItem:
|
||||
// Do not add empty lines between every list item
|
||||
break
|
||||
default:
|
||||
// Add empty lines between every other block
|
||||
node.SetBlankPreviousLines(true)
|
||||
}
|
||||
|
||||
return ast.WalkContinue, nil
|
||||
})
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue