mirror of
				https://github.com/kovetskiy/mark.git
				synced 2025-10-31 19:57:36 +08:00 
			
		
		
		
	*: Reorganize code
This commit is contained in:
		
							parent
							
								
									2c71b50438
								
							
						
					
					
						commit
						dc8842106b
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,6 +1,5 @@ | |||||||
| /mark | /mark | ||||||
| /docker | /docker | ||||||
| /testdata |  | ||||||
| .idea/ | .idea/ | ||||||
| /mark.test | /mark.test | ||||||
| /profile.cov | /profile.cov | ||||||
|  | |||||||
| @ -11,8 +11,8 @@ import ( | |||||||
| 	"sort" | 	"sort" | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/kovetskiy/mark/pkg/confluence" | 	"github.com/kovetskiy/mark/confluence" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/vfs" | 	"github.com/kovetskiy/mark/vfs" | ||||||
| 	"github.com/reconquest/karma-go" | 	"github.com/reconquest/karma-go" | ||||||
| 	"github.com/reconquest/pkg/log" | 	"github.com/reconquest/pkg/log" | ||||||
| ) | ) | ||||||
| @ -7,7 +7,7 @@ import ( | |||||||
| 	"strings" | 	"strings" | ||||||
| 	"text/template" | 	"text/template" | ||||||
| 
 | 
 | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/includes" | 	"github.com/kovetskiy/mark/includes" | ||||||
| 	"github.com/reconquest/karma-go" | 	"github.com/reconquest/karma-go" | ||||||
| 	"github.com/reconquest/pkg/log" | 	"github.com/reconquest/pkg/log" | ||||||
| 	"github.com/reconquest/regexputil-go" | 	"github.com/reconquest/regexputil-go" | ||||||
							
								
								
									
										32
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								main.go
									
									
									
									
									
								
							| @ -11,13 +11,15 @@ import ( | |||||||
| 
 | 
 | ||||||
| 	"github.com/bmatcuk/doublestar/v4" | 	"github.com/bmatcuk/doublestar/v4" | ||||||
| 	"github.com/kovetskiy/lorg" | 	"github.com/kovetskiy/lorg" | ||||||
| 	"github.com/kovetskiy/mark/pkg/confluence" | 	"github.com/kovetskiy/mark/attachment" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark" | 	"github.com/kovetskiy/mark/confluence" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/attachment" | 	"github.com/kovetskiy/mark/includes" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/includes" | 	"github.com/kovetskiy/mark/macro" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/macro" | 	mark "github.com/kovetskiy/mark/markdown" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/stdlib" | 	"github.com/kovetskiy/mark/metadata" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/vfs" | 	"github.com/kovetskiy/mark/page" | ||||||
|  | 	"github.com/kovetskiy/mark/stdlib" | ||||||
|  | 	"github.com/kovetskiy/mark/vfs" | ||||||
| 	"github.com/reconquest/karma-go" | 	"github.com/reconquest/karma-go" | ||||||
| 	"github.com/reconquest/pkg/log" | 	"github.com/reconquest/pkg/log" | ||||||
| 	"github.com/urfave/cli/v2" | 	"github.com/urfave/cli/v2" | ||||||
| @ -307,7 +309,7 @@ func processFile( | |||||||
| 
 | 
 | ||||||
| 	parents := strings.Split(cCtx.String("parents"), cCtx.String("parents-delimiter")) | 	parents := strings.Split(cCtx.String("parents"), cCtx.String("parents-delimiter")) | ||||||
| 
 | 
 | ||||||
| 	meta, markdown, err := mark.ExtractMeta(markdown, cCtx.String("space"), cCtx.Bool("title-from-h1"), parents) | 	meta, markdown, err := metadata.ExtractMeta(markdown, cCtx.String("space"), cCtx.Bool("title-from-h1"), parents) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		log.Fatal(err) | 		log.Fatal(err) | ||||||
| 	} | 	} | ||||||
| @ -386,15 +388,15 @@ func processFile( | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	links, err := mark.ResolveRelativeLinks(api, meta, markdown, filepath.Dir(file), cCtx.String("space"), cCtx.Bool("title-from-h1"), parents) | 	links, err := page.ResolveRelativeLinks(api, meta, markdown, filepath.Dir(file), cCtx.String("space"), cCtx.Bool("title-from-h1"), parents) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		log.Fatalf(err, "unable to resolve relative links") | 		log.Fatalf(err, "unable to resolve relative links") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	markdown = mark.SubstituteLinks(markdown, links) | 	markdown = page.SubstituteLinks(markdown, links) | ||||||
| 
 | 
 | ||||||
| 	if cCtx.Bool("dry-run") { | 	if cCtx.Bool("dry-run") { | ||||||
| 		_, _, err := mark.ResolvePage(cCtx.Bool("dry-run"), api, meta) | 		_, _, err := page.ResolvePage(cCtx.Bool("dry-run"), api, meta) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Fatalf(err, "unable to resolve page location") | 			log.Fatalf(err, "unable to resolve page location") | ||||||
| 		} | 		} | ||||||
| @ -415,7 +417,7 @@ func processFile( | |||||||
| 	var target *confluence.PageInfo | 	var target *confluence.PageInfo | ||||||
| 
 | 
 | ||||||
| 	if meta != nil { | 	if meta != nil { | ||||||
| 		parent, page, err := mark.ResolvePage(cCtx.Bool("dry-run"), api, meta) | 		parent, page, err := page.ResolvePage(cCtx.Bool("dry-run"), api, meta) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Fatalf( | 			log.Fatalf( | ||||||
| 				karma.Describe("title", meta.Title).Reason(err), | 				karma.Describe("title", meta.Title).Reason(err), | ||||||
| @ -542,7 +544,7 @@ func processFile( | |||||||
| 	return target | 	return target | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func updateLabels(api *confluence.API, target *confluence.PageInfo, meta *mark.Meta) { | func updateLabels(api *confluence.API, target *confluence.PageInfo, meta *metadata.Meta) { | ||||||
| 
 | 
 | ||||||
| 	labelInfo, err := api.GetPageLabels(target, "global") | 	labelInfo, err := api.GetPageLabels(target, "global") | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| @ -579,7 +581,7 @@ func updateLabels(api *confluence.API, target *confluence.PageInfo, meta *mark.M | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Page has label but label not in Metadata | // Page has label but label not in Metadata | ||||||
| func determineLabelsToRemove(labelInfo *confluence.LabelInfo, meta *mark.Meta) []string { | func determineLabelsToRemove(labelInfo *confluence.LabelInfo, meta *metadata.Meta) []string { | ||||||
| 	var labels []string | 	var labels []string | ||||||
| 	for _, label := range labelInfo.Labels { | 	for _, label := range labelInfo.Labels { | ||||||
| 		if !slices.ContainsFunc(meta.Labels, func(metaLabel string) bool { | 		if !slices.ContainsFunc(meta.Labels, func(metaLabel string) bool { | ||||||
| @ -592,7 +594,7 @@ func determineLabelsToRemove(labelInfo *confluence.LabelInfo, meta *mark.Meta) [ | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Metadata has label but Page does not have it | // Metadata has label but Page does not have it | ||||||
| func determineLabelsToAdd(meta *mark.Meta, labelInfo *confluence.LabelInfo) []string { | func determineLabelsToAdd(meta *metadata.Meta, labelInfo *confluence.LabelInfo) []string { | ||||||
| 	var labels []string | 	var labels []string | ||||||
| 	for _, metaLabel := range meta.Labels { | 	for _, metaLabel := range meta.Labels { | ||||||
| 		if !slices.ContainsFunc(labelInfo.Labels, func(label confluence.Label) bool { | 		if !slices.ContainsFunc(labelInfo.Labels, func(label confluence.Label) bool { | ||||||
|  | |||||||
| @ -2,12 +2,11 @@ package mark | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"bytes" | 	"bytes" | ||||||
| 	"regexp" |  | ||||||
| 
 | 
 | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/attachment" | 	"github.com/kovetskiy/mark/attachment" | ||||||
| 	cparser "github.com/kovetskiy/mark/pkg/mark/parser" | 	cparser "github.com/kovetskiy/mark/parser" | ||||||
| 	crenderer "github.com/kovetskiy/mark/pkg/mark/renderer" | 	crenderer "github.com/kovetskiy/mark/renderer" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/stdlib" | 	"github.com/kovetskiy/mark/stdlib" | ||||||
| 	"github.com/reconquest/pkg/log" | 	"github.com/reconquest/pkg/log" | ||||||
| 	"github.com/yuin/goldmark" | 	"github.com/yuin/goldmark" | ||||||
| 
 | 
 | ||||||
| @ -104,16 +103,4 @@ func CompileMarkdown(markdown []byte, stdlib *stdlib.Lib, path string, mermaidPr | |||||||
| 	log.Tracef(nil, "rendered markdown to html:\n%s", string(html)) | 	log.Tracef(nil, "rendered markdown to html:\n%s", string(html)) | ||||||
| 
 | 
 | ||||||
| 	return string(html), confluenceExtension.Attachments | 	return string(html), confluenceExtension.Attachments | ||||||
| 
 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // ExtractDocumentLeadingH1 will extract leading H1 heading |  | ||||||
| func ExtractDocumentLeadingH1(markdown []byte) string { |  | ||||||
| 	h1 := regexp.MustCompile(`#[^#]\s*(.*)\s*\n`) |  | ||||||
| 	groups := h1.FindSubmatch(markdown) |  | ||||||
| 	if groups == nil { |  | ||||||
| 		return "" |  | ||||||
| 	} else { |  | ||||||
| 		return string(groups[1]) |  | ||||||
| 	} |  | ||||||
| } | } | ||||||
| @ -2,11 +2,13 @@ package mark | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"os" | 	"os" | ||||||
|  | 	"path" | ||||||
| 	"path/filepath" | 	"path/filepath" | ||||||
|  | 	"runtime" | ||||||
| 	"strings" | 	"strings" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/stdlib" | 	"github.com/kovetskiy/mark/stdlib" | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| @ -29,6 +31,13 @@ func loadData(t *testing.T, filename, variant string) ([]byte, string, []byte) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestCompileMarkdown(t *testing.T) { | func TestCompileMarkdown(t *testing.T) { | ||||||
|  | 	_, filename, _, _ := runtime.Caller(0) | ||||||
|  | 	dir := path.Join(path.Dir(filename), "..") | ||||||
|  | 	err := os.Chdir(dir) | ||||||
|  | 	if err != nil { | ||||||
|  | 		panic(err) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	test := assert.New(t) | 	test := assert.New(t) | ||||||
| 
 | 
 | ||||||
| 	testcases, err := filepath.Glob("testdata/*.md") | 	testcases, err := filepath.Glob("testdata/*.md") | ||||||
| @ -48,6 +57,13 @@ func TestCompileMarkdown(t *testing.T) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestCompileMarkdownDropH1(t *testing.T) { | func TestCompileMarkdownDropH1(t *testing.T) { | ||||||
|  | 	_, filename, _, _ := runtime.Caller(0) | ||||||
|  | 	dir := path.Join(path.Dir(filename), "..") | ||||||
|  | 	err := os.Chdir(dir) | ||||||
|  | 	if err != nil { | ||||||
|  | 		panic(err) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	test := assert.New(t) | 	test := assert.New(t) | ||||||
| 
 | 
 | ||||||
| 	testcases, err := filepath.Glob("testdata/*.md") | 	testcases, err := filepath.Glob("testdata/*.md") | ||||||
| @ -67,6 +83,13 @@ func TestCompileMarkdownDropH1(t *testing.T) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestCompileMarkdownStripNewlines(t *testing.T) { | func TestCompileMarkdownStripNewlines(t *testing.T) { | ||||||
|  | 	_, filename, _, _ := runtime.Caller(0) | ||||||
|  | 	dir := path.Join(path.Dir(filename), "..") | ||||||
|  | 	err := os.Chdir(dir) | ||||||
|  | 	if err != nil { | ||||||
|  | 		panic(err) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	test := assert.New(t) | 	test := assert.New(t) | ||||||
| 
 | 
 | ||||||
| 	testcases, err := filepath.Glob("testdata/*.md") | 	testcases, err := filepath.Glob("testdata/*.md") | ||||||
| @ -84,16 +107,3 @@ func TestCompileMarkdownStripNewlines(t *testing.T) { | |||||||
| 		test.EqualValues(string(html), actual, filename+" vs "+htmlname) | 		test.EqualValues(string(html), actual, filename+" vs "+htmlname) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 |  | ||||||
| func TestExtractDocumentLeadingH1(t *testing.T) { |  | ||||||
| 	filename := "testdata/header.md" |  | ||||||
| 
 |  | ||||||
| 	markdown, err := os.ReadFile(filename) |  | ||||||
| 	if err != nil { |  | ||||||
| 		panic(err) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	actual := ExtractDocumentLeadingH1(markdown) |  | ||||||
| 
 |  | ||||||
| 	assert.Equal(t, "a", actual) |  | ||||||
| } |  | ||||||
| @ -7,7 +7,7 @@ import ( | |||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	mermaid "github.com/dreampuf/mermaid.go" | 	mermaid "github.com/dreampuf/mermaid.go" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/attachment" | 	"github.com/kovetskiy/mark/attachment" | ||||||
| 	"github.com/reconquest/pkg/log" | 	"github.com/reconquest/pkg/log" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| @ -4,7 +4,7 @@ import ( | |||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/attachment" | 	"github.com/kovetskiy/mark/attachment" | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package mark | package metadata | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"bufio" | 	"bufio" | ||||||
| @ -166,3 +166,14 @@ func ExtractMeta(data []byte, spaceFromCli string, titleFromH1 bool, parents []s | |||||||
| 
 | 
 | ||||||
| 	return meta, data[offset:], nil | 	return meta, data[offset:], nil | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // ExtractDocumentLeadingH1 will extract leading H1 heading | ||||||
|  | func ExtractDocumentLeadingH1(markdown []byte) string { | ||||||
|  | 	h1 := regexp.MustCompile(`#[^#]\s*(.*)\s*\n`) | ||||||
|  | 	groups := h1.FindSubmatch(markdown) | ||||||
|  | 	if groups == nil { | ||||||
|  | 		return "" | ||||||
|  | 	} else { | ||||||
|  | 		return string(groups[1]) | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										30
									
								
								metadata/metadata_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								metadata/metadata_test.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | |||||||
|  | package metadata | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"os" | ||||||
|  | 	"path" | ||||||
|  | 	"runtime" | ||||||
|  | 	"testing" | ||||||
|  | 
 | ||||||
|  | 	"github.com/stretchr/testify/assert" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func TestExtractDocumentLeadingH1(t *testing.T) { | ||||||
|  | 	_, filename, _, _ := runtime.Caller(0) | ||||||
|  | 	dir := path.Join(path.Dir(filename), "..") | ||||||
|  | 	err := os.Chdir(dir) | ||||||
|  | 	if err != nil { | ||||||
|  | 		panic(err) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	filename = "testdata/header.md" | ||||||
|  | 
 | ||||||
|  | 	markdown, err := os.ReadFile(filename) | ||||||
|  | 	if err != nil { | ||||||
|  | 		panic(err) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	actual := ExtractDocumentLeadingH1(markdown) | ||||||
|  | 
 | ||||||
|  | 	assert.Equal(t, "a", actual) | ||||||
|  | } | ||||||
| @ -1,10 +1,10 @@ | |||||||
| package mark | package page | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/kovetskiy/mark/pkg/confluence" | 	"github.com/kovetskiy/mark/confluence" | ||||||
| 	"github.com/reconquest/karma-go" | 	"github.com/reconquest/karma-go" | ||||||
| 	"github.com/reconquest/pkg/log" | 	"github.com/reconquest/pkg/log" | ||||||
| ) | ) | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package mark | package page | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"bytes" | 	"bytes" | ||||||
| @ -8,7 +8,8 @@ import ( | |||||||
| 	"path/filepath" | 	"path/filepath" | ||||||
| 	"regexp" | 	"regexp" | ||||||
| 
 | 
 | ||||||
| 	"github.com/kovetskiy/mark/pkg/confluence" | 	"github.com/kovetskiy/mark/confluence" | ||||||
|  | 	"github.com/kovetskiy/mark/metadata" | ||||||
| 	"github.com/reconquest/karma-go" | 	"github.com/reconquest/karma-go" | ||||||
| 	"github.com/reconquest/pkg/log" | 	"github.com/reconquest/pkg/log" | ||||||
| 	"golang.org/x/tools/godoc/util" | 	"golang.org/x/tools/godoc/util" | ||||||
| @ -27,7 +28,7 @@ type markdownLink struct { | |||||||
| 
 | 
 | ||||||
| func ResolveRelativeLinks( | func ResolveRelativeLinks( | ||||||
| 	api *confluence.API, | 	api *confluence.API, | ||||||
| 	meta *Meta, | 	meta *metadata.Meta, | ||||||
| 	markdown []byte, | 	markdown []byte, | ||||||
| 	base string, | 	base string, | ||||||
| 	spaceFromCli string, | 	spaceFromCli string, | ||||||
| @ -104,7 +105,7 @@ 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 | ||||||
| 		linkMeta, _, err := ExtractMeta(linkContents, spaceFromCli, titleFromH1, parents) | 		linkMeta, _, err := metadata.ExtractMeta(linkContents, spaceFromCli, titleFromH1, parents) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Errorf( | 			log.Errorf( | ||||||
| 				err, | 				err, | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package mark | package page | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| @ -1,9 +1,10 @@ | |||||||
| package mark | package page | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/kovetskiy/mark/pkg/confluence" | 	"github.com/kovetskiy/mark/confluence" | ||||||
|  | 	"github.com/kovetskiy/mark/metadata" | ||||||
| 	"github.com/reconquest/karma-go" | 	"github.com/reconquest/karma-go" | ||||||
| 	"github.com/reconquest/pkg/log" | 	"github.com/reconquest/pkg/log" | ||||||
| ) | ) | ||||||
| @ -11,7 +12,7 @@ import ( | |||||||
| func ResolvePage( | func ResolvePage( | ||||||
| 	dryRun bool, | 	dryRun bool, | ||||||
| 	api *confluence.API, | 	api *confluence.API, | ||||||
| 	meta *Meta, | 	meta *metadata.Meta, | ||||||
| ) (*confluence.PageInfo, *confluence.PageInfo, error) { | ) (*confluence.PageInfo, *confluence.PageInfo, error) { | ||||||
| 	page, err := api.FindPage(meta.Space, meta.Title, meta.Type) | 	page, err := api.FindPage(meta.Space, meta.Title, meta.Type) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| @ -3,7 +3,7 @@ package renderer | |||||||
| import ( | import ( | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/stdlib" | 	"github.com/kovetskiy/mark/stdlib" | ||||||
| 
 | 
 | ||||||
| 	"github.com/yuin/goldmark/ast" | 	"github.com/yuin/goldmark/ast" | ||||||
| 	"github.com/yuin/goldmark/renderer" | 	"github.com/yuin/goldmark/renderer" | ||||||
| @ -5,9 +5,9 @@ import ( | |||||||
| 	"regexp" | 	"regexp" | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/attachment" | 	"github.com/kovetskiy/mark/attachment" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/mermaid" | 	"github.com/kovetskiy/mark/mermaid" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/stdlib" | 	"github.com/kovetskiy/mark/stdlib" | ||||||
| 	"github.com/reconquest/pkg/log" | 	"github.com/reconquest/pkg/log" | ||||||
| 
 | 
 | ||||||
| 	"github.com/yuin/goldmark/ast" | 	"github.com/yuin/goldmark/ast" | ||||||
| @ -3,7 +3,7 @@ package renderer | |||||||
| import ( | import ( | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/stdlib" | 	"github.com/kovetskiy/mark/stdlib" | ||||||
| 
 | 
 | ||||||
| 	"github.com/yuin/goldmark/ast" | 	"github.com/yuin/goldmark/ast" | ||||||
| 	"github.com/yuin/goldmark/renderer" | 	"github.com/yuin/goldmark/renderer" | ||||||
| @ -5,9 +5,9 @@ import ( | |||||||
| 	"path/filepath" | 	"path/filepath" | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/attachment" | 	"github.com/kovetskiy/mark/attachment" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/stdlib" | 	"github.com/kovetskiy/mark/stdlib" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/vfs" | 	"github.com/kovetskiy/mark/vfs" | ||||||
| 
 | 
 | ||||||
| 	"github.com/yuin/goldmark/ast" | 	"github.com/yuin/goldmark/ast" | ||||||
| 	"github.com/yuin/goldmark/renderer" | 	"github.com/yuin/goldmark/renderer" | ||||||
| @ -4,8 +4,8 @@ import ( | |||||||
| 	"strings" | 	"strings" | ||||||
| 	"text/template" | 	"text/template" | ||||||
| 
 | 
 | ||||||
| 	"github.com/kovetskiy/mark/pkg/confluence" | 	"github.com/kovetskiy/mark/confluence" | ||||||
| 	"github.com/kovetskiy/mark/pkg/mark/macro" | 	"github.com/kovetskiy/mark/macro" | ||||||
| 	"github.com/reconquest/pkg/log" | 	"github.com/reconquest/pkg/log" | ||||||
| 
 | 
 | ||||||
| 	"github.com/reconquest/karma-go" | 	"github.com/reconquest/karma-go" | ||||||
| Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB | 
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Manuel Rüger
						Manuel Rüger