jaywcjlove / linux-command

Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux

Home Page:https://jaywcjlove.github.io/linux-command

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Markdown 文档能否通过元数据的方式存放更多的信息?

conglinyizhi opened this issue · comments

在 Markdown 文档中,可以使用元数据的方式存储一些自定义的数据,就像这样:

---
title: "介绍 bash 指令"
author: "John Doe"
date: "2023-05-24"
source: "https://www.gnu.org/software/bash/"
install: "sudo apt-get install bash"
supported_linux_systems:
  - Ubuntu
  - Debian
  - Fedora
  - CentOS
---

这种被三个减号包裹的 yaml 格式的数据可以存储更多信息,也更方便接口的第三方开发者开发更多的功能,比如过滤只支持某个 Linux 发行版的指令

但是由于目前的文档数量较多,如果应用这种更改可能会导致其他接口的不兼容,所以我想询问一下,我可以这么做吗?

// 命令名称
json["n"] = title;
// 命令路径
json["p"] = `/${path.basename(mdPath, '.md').replace(/\\/g, '/')}`;
// 命令描述
let des = str.match(/\n==={1,}([\s\S]*?)##/i);

有一些规则,你可以直接用

  • 命令名称,就是文件名,也可以文档中匹配出来
  • 命令描述,也可以从文档中匹配出来

```markdown
CommandName
===
作为代码规范文档进行展示
## 补充说明
**CommandName命令** 是用于演示的文档

@conglinyizhi 更多的元信息,我建议如下方法添加到 .md 文本的最底部,这种方式,将在 GitHub 中忽略展示,不会影响现在所有内容

<!--
date: "2023-05-24"
source: "https://www.gnu.org/software/bash/"
install: "sudo apt-get install bash"
supported_linux_systems:
  - Ubuntu
  - Debian
  - Fedora
  - CentOS
-->

开发使用

可以通过 npm 安装 linux-command 包,包含所有命令的 markdown 文本,和一个索引文件

npm install linux-command
var comm = require("linux-command");
console.log("---->", comm.ls);

var alias = require("linux-command/command/alias.md");
console.log("---->", alias); // markdown string

你也可以通过 CDN 来访问索引数据,和对应的命令详细内容,我将更新内容定期发布版本,提供大家使用,UNPKG 带上版本号,将锁定版本访问,删除版本号请求数据,将会自动重定向最新版本。

# 命令索引 JSON 数据
https://unpkg.com/linux-command/dist/data.json
# 对应命令详情(Markdown)数据
https://unpkg.com/linux-command/command/<命令名称>.md

你也可以通过 Github 的 Raw 来,获取最新的内容

# 命令索引 JSON 数据
https://raw.githubusercontent.com/jaywcjlove/linux-command/master/dist/data.json
# 对应命令详情(Markdown)数据
https://raw.githubusercontent.com/jaywcjlove/linux-command/master/command/<命令名称>.md 

好吧,我本来是希望元数据代替三个等号作为命令描述的,看起来您似乎不愿意实现这些

顺带一提,如果希望做国际化的话,我找到了一个翻译网站,可以用来托管需要翻译的项目 https://hosted.weblate.org/hosting/ 不过我建议提前对国际化进行准备

image

@conglinyizhi 目前这种方式迎合 GitHub 的自带预览功能,所以添加**“元数据”**尽量使用 注释语法添加

对国际化目前没有想法,因为英文版本(#21)有更多更好的工具,例如:https://github.com/tldr-pages/tldr