Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

修复导入markdown时多级分类无法正确识别的问题 #1380

Merged
merged 2 commits into from
Jun 1, 2021

Conversation

linshenkx
Copy link
Contributor

hexo支持多级分类目录,如下,代表文章分类为 大数据、HBASE、运维,其中 HBASE 是 大数据 的子分类

categories: 
   - [大数据,HBASE]
   - [运维]

目前会把 “大数据,HBASE”识别为一个分类,此pull请求对该问题进行修复

@JohnNiang
Copy link
Member

首先,谢谢你的 PR!但请添加相应的测试以保证你的代码可正常处理该逻辑。

2.添加导入markdown时对单引号的正确识别和处理
3.添加导入hexo的markdown的分类列表、标签列表无缩进的支持
4.完善导入markdown文档的测试用例
@linshenkx
Copy link
Contributor Author

你好,我看了一下你原来的测试用例,发现其他的问题,也进行了处理,这里说明一下,你看看有没有什么问题。

  1. PostServiceImplTest的markdownImportTest测试方法只是单纯地执行importMarkdown,并没有对import后的post进行断言校验,而事实上对于nonStandardMdContent导入成post的tag存在明显问题:将“'spring', 'jpa', 'database', 'concept'”视为单个tag。
    为此,我对tag添加了和categories类似的切割处理,且一并添加了对字符串两边单引号的移除操作
  2. hexo的front-matter是支持如下写法的(参考:https://hexo.io/zh-cn/docs/front-matter.html):
categories:
- Diary
tags:
- PS3
- Games

即短横杠前没有缩进,虽然这样不是很规范,但是hexo和一些在线yaml格式化工具都是可以正确识别的。而MarkdownUtils中使用的AbstractYamlFrontMatterVisitor则会对无缩进的内容丢弃,我翻了翻flexmark-java的Extensions文档,没有找到比较好的处理方法。所以强制对以"- "开头的每一行强制添加缩进处理。

@JohnNiang
Copy link
Member

关于 yaml 解析的问题参考一下:vsch/flexmark-java#293

@linshenkx
Copy link
Contributor Author

关于 yaml 解析的问题参考一下:vsch/flexmark-java#293

这个的issue似乎是 按规范缩进的markdown解析后还原成markdown时丢失了list的缩进,是很基础性的bug,也很早就修复了,参考价值不大。
至于我的需求是:在front-matter场景下使用更为宽松的list-item缩进认定标准,即支持无缩进,因为hexo和hugo的官方示例都是这么写的。如下,参考https://gohugo.io/content-management/front-matter/

categories:
- Development
- VIM
date: "2012-04-06"
description: spf13-vim is a cross platform distribution of vim plugins and resources
  for Vim.
slug: spf13-vim-3-0-release-and-new-website
tags:
- .vimrc
- plugins
- spf13-vim
- vim
title: spf13-vim 3.0 release and new website

@ruibaby ruibaby requested review from ruibaby and JohnNiang May 26, 2021 06:50
@JohnNiang
Copy link
Member

关于 yaml 解析的问题参考一下:vsch/flexmark-java#293

这个的issue似乎是 按规范缩进的markdown解析后还原成markdown时丢失了list的缩进,是很基础性的bug,也很早就修复了,参考价值不大。
至于我的需求是:在front-matter场景下使用更为宽松的list-item缩进认定标准,即支持无缩进,因为hexo和hugo的官方示例都是这么写的。如下,参考https://gohugo.io/content-management/front-matter/

categories:
- Development
- VIM
date: "2012-04-06"
description: spf13-vim is a cross platform distribution of vim plugins and resources
  for Vim.
slug: spf13-vim-3-0-release-and-new-website
tags:
- .vimrc
- plugins
- spf13-vim
- vim
title: spf13-vim 3.0 release and new website

那是否有办法自定义 formatter 或者 parser 呢?

@JohnNiang
Copy link
Member

Thanks for your contribution. I'm going to merge this PR later.

@JohnNiang JohnNiang merged commit 9de40a0 into halo-dev:master Jun 1, 2021
ruibaby pushed a commit to ruibaby/halo that referenced this pull request Jun 11, 2021
…alo-dev#1380)

* 修复导入markdown时多级分类无法正确识别的问题

* 1.修复导入markdown对单行多tag的支持
2.添加导入markdown时对单引号的正确识别和处理
3.添加导入hexo的markdown的分类列表、标签列表无缩进的支持
4.完善导入markdown文档的测试用例
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants