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

Some plain appear after a certain line of content, after I use lint-md -f #4

Closed
quanqinle opened this issue May 19, 2021 · 5 comments
Closed

Comments

@quanqinle
Copy link

Parts of my .md file like this:

categories:
    - Code
tags:
    - Java
    - IDEA
    - Spring Boot
---

# 环境

After I run lint-md -f demo.md, I get:

categories:
    - Code
tags:
    - Java
    - IDEA
    - Spring Bootplainplainplainplainplainplainplainplainplainplainplainplainplainplainplainplainplainplainplain
---

# 环境
@yuzhanglong
Copy link
Member

底层依赖问题,当前项目的 markdown 解析依赖 remark 版本较低,您的案例发生了解析错误(parser 的 bug)
迁移至新版本改动较大,近期有空会去重构主项目。
lint-md/lint-md#66

@Trojan0523
Copy link

0.1.2 版本还是有目前的问题,想问下可以提供一个用户自行解决问题的临时性方案吗,谢谢您

@yuzhanglong
Copy link
Member

yuzhanglong commented Apr 11, 2022

0.1.2 版本还是有目前的问题,想问下可以提供一个用户自行解决问题的临时性方案吗,谢谢您

怎么说呢,这种头上带有 yaml 配置非标准 markdown 太多了,我举几个例子:

categories:
    - Code
tags:
    - Java
    - IDEA
    - Spring Boot
---
我的 Markdown 文本我的 Markdown 文本我的 Markdown 文本

这是你和上面的同学提到的 case。

另外还有我们比较熟悉的 vuepress:

---
categories:
    - Code
tags:
    - Java
    - IDEA
    - Spring Boot
---
我的 Markdown 文本我的 Markdown 文本我的 Markdown 文本

和上面的不同,vuepress 的结构是由两个 --- 符号框选 Markdown 文本,你们给的案例就一个。

综上所述,我有一个好的提议,那就是在 lint-md 的配置文件中指定一个回调函数,每一次解析 Markdown 文本时会去执行该回调,拿到他的返回值作为最终 Markdown 文本,例如:

module.exports = {
   preParse:(markdown) => {
     return removeHeadYaml(markdown)
   }
}

其中上面的 removeHeadYaml(需要你根据你的md文件自行实现) 会将原文本移除头部的 yaml 块,保留最终的 Markdown 文本。

你看怎么样?

另外值得注意的是一旦文本被改变,其行列数据也改变了,会导致最终 lint 的结果有偏差,这也是一个问题,也许可以用空字符串来填充。

@yuzhanglong
Copy link
Member

0.1.2 版本还是有目前的问题,想问下可以提供一个用户自行解决问题的临时性方案吗,谢谢您

我看目前业界流行的都是 front matter 语法,即两个 --- 包裹,放在头部。那这个问题也可以 lint-md 内部处理,不使用回调函数了。

@yuzhanglong
Copy link
Member

已修复这个问题,请重新安装最新版~lint-md/lint-md#76

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

No branches or pull requests

3 participants