8个版本 (4个重大更新)
0.7.26 | 2024年7月26日 |
---|---|
0.7.9 | 2024年7月9日 |
0.6.25 | 2024年6月25日 |
0.3.0 | 2024年6月17日 |
0.1.2 | 2024年6月16日 |
92 在 文本处理 中排名
每月下载 135次
35KB
705 行
GLU - 将Markdown文件分解到目录中
有时你会在网上遇到一篇包含大量有用示例的文章,或者你正在尝试 编写 这样一篇文章,而且不希望它充满错误,那么让这篇文章成为可以从中构建整个文件目录的“上游真相源”将会非常不错。
这正是GLU的作用所在。你给它一个Markdown文件,它就会根据Markdown文件构建一个临时目录。当GLU进程退出时,这个目录会被清理。在此期间,你可以检查一切是否正常,运行任何你想要的命令等。
它是如何工作的?
GLU会查找代码块,就像这样
// hello.js
console.log("Hello, world!");
你会注意到我指定了代码块的语言(使用GitHub语法)和在代码块内注释中指定的文件名。不同的语言有不同的注释语法,这就是为什么提供语言和文件名注释都很重要的原因。给出了这两者,GLU就能确定你的文件应该解压到哪个位置。
如果GLU足够智能,无法确定正确的文件名,它当前默认为 filename.txt
,如果多个代码块都与 filename.txt
关联,则该文件将被反复覆盖。
最后,GLU会对你的代码块进行一些清理,以删除文件名注释、空尾行和首行以及过多的空白。其中一些功能最终可能可配置。但对于那个 hello.js
示例,你会找到一个只包含 console.log
行的文件。
我该如何运行这个?
# examples.sh
# Install glu via cargo, if you don't have it
# You can find a Rust+Cargo installer at https://rustup.rs/
cargo install glu
# Unpack files to a temp directory and open a bash shell.
# Files will be deleted when shell is closed.
glu path/to/markdown/file.md
# Bash is just the default, the command to run is an optional second arg.
glu README.md 'node hello.js'
# You can also download Markdown files from the internet easily.
glu https://maddiem4.cc/software/practice/calling_asm_from_c
支持哪些语言检测文件名?
目前,非常少。您可以帮忙!我对于v1.0.0版本的发布标准是要与PrismJS的语言支持列表保持一致,原因是Obsidian使用它,而且我大部分时间都在Obsidian中编写Markdown文档。
- 汇编
- Bash
- C
- CSS
- JavaScript
- Rust
贡献
克隆目录,尝试修改,提交一个Pull Request。如果您之前使用过Rust和Cargo,这应该不会很难或令人惊讶。如果确实如此,可能是因为我难以预料的原因。
请注意,src/filetype.rs
可能是大多数人希望贡献以改进语言支持的地方。我会非常感激地接受这些Pull Request,但前提是它们包含相关的测试!有一些可以用来作为起点的例子,所以这并不像听起来那么困难。
如您通过LICENSE
文件所看到的,GLU是在GPLv3许可下。
依赖项
~12–26MB
~412K SLoC