mirror of
https://github.com/mindoc-org/mindoc.git
synced 2025-04-05 20:17:53 +08:00
优化Markdown导入
This commit is contained in:
parent
f0ed6dd0d3
commit
74df816f38
@ -438,6 +438,7 @@ func (book *Book)ImportBook(zipPath string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
//处理图片
|
||||||
doc.Markdown = re.ReplaceAllStringFunc(string(markdown), func(image string) string {
|
doc.Markdown = re.ReplaceAllStringFunc(string(markdown), func(image string) string {
|
||||||
|
|
||||||
images := re.FindAllSubmatch([]byte(image), -1);
|
images := re.FindAllSubmatch([]byte(image), -1);
|
||||||
@ -487,6 +488,36 @@ func (book *Book)ImportBook(zipPath string) error {
|
|||||||
imageUrl = strings.Replace(strings.TrimSuffix(image, originalImageUrl+")")+imageUrl+")", "\\", "/", -1)
|
imageUrl = strings.Replace(strings.TrimSuffix(image, originalImageUrl+")")+imageUrl+")", "\\", "/", -1)
|
||||||
return imageUrl
|
return imageUrl
|
||||||
})
|
})
|
||||||
|
|
||||||
|
linkRegexp := regexp.MustCompile(`\[(.*?)\]\((.*?)\)`)
|
||||||
|
|
||||||
|
doc.Markdown = linkRegexp.ReplaceAllStringFunc(doc.Markdown, func(link string) string {
|
||||||
|
links := linkRegexp.FindAllStringSubmatch(link,-1)
|
||||||
|
originalLink := links[0][2];
|
||||||
|
|
||||||
|
linkPath,err := filepath.Abs(filepath.Join(filepath.Dir(path),originalLink))
|
||||||
|
if err == nil {
|
||||||
|
//如果本地存在该链接
|
||||||
|
if filetil.FileExists(linkPath) {
|
||||||
|
ext := filepath.Ext(linkPath)
|
||||||
|
//如果链接是Markdown文件,则生成文档标识,否则,将目标文件复制到项目目录
|
||||||
|
if strings.EqualFold(ext ,".md") || strings.EqualFold(ext , ".markdown" ) {
|
||||||
|
docIdentify := strings.Replace(strings.TrimPrefix(linkPath, tempPath+"/"), "/", "-", -1)
|
||||||
|
|
||||||
|
if ok, err := regexp.MatchString(`[a-z]+[a-zA-Z0-9_.\-]*$`, docIdentify); !ok || err != nil {
|
||||||
|
docIdentify = "import-" + docIdentify
|
||||||
|
}
|
||||||
|
link = strings.TrimSuffix(link,originalLink + ")") + conf.URLFor("DocumentController.Read",":key",book.Identify,":id",docIdentify) + ")"
|
||||||
|
}else{
|
||||||
|
//filetil.CopyFile(linkPath,)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return link
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
doc.Content = string(blackfriday.Run([]byte(doc.Markdown)))
|
doc.Content = string(blackfriday.Run([]byte(doc.Markdown)))
|
||||||
doc.Release = doc.Content
|
doc.Release = doc.Content
|
||||||
doc.Version = time.Now().Unix()
|
doc.Version = time.Now().Unix()
|
||||||
|
Loading…
Reference in New Issue
Block a user