29 个版本 (7 个重大变更)

0.8.4 2024 年 8 月 9 日
0.8.3 2024 年 7 月 22 日
0.8.2 2024 年 6 月 17 日
0.4.2 2024 年 3 月 24 日

#892 in 命令行实用工具

Download history 281/week @ 2024-04-29 239/week @ 2024-05-13 383/week @ 2024-05-20 192/week @ 2024-05-27 39/week @ 2024-06-03 21/week @ 2024-06-10 169/week @ 2024-06-17 9/week @ 2024-06-24 8/week @ 2024-07-01 3/week @ 2024-07-08 151/week @ 2024-07-22 249/week @ 2024-07-29 120/week @ 2024-08-05 29/week @ 2024-08-12

每月 549 次下载

AGPL-3.0 或更高版本

195KB
5K SLoC

MD-TUI

MD-TUI 是一个 TUI 应用程序,可以直接在终端中查看 markdown 文件。我创建它是因为我对其他替代方案中处理链接的方式不满意。虽然完整的 markdown 规范尚未支持,但它会逐渐实现。这是一个快速查看您的 markdown 笔记或从某人的 README 中打开外部链接的好解决方案。如果您的终端支持图片,它们将显示。

安装

使用 cargo: cargo install md-tui --locked

在 Arch Linux 上: pacman -S md-tui

对于 Nix 用户,还有 Nix flake。

在发布页面可以找到带有安装脚本的预构建二进制文件。

要求

  1. 终端
  2. Nerd 字体

使用方法

启动程序,运行 mdt <file.md> 或只需 mdt。后者将从调用位置递归搜索任何 markdown 文件并在 文件树 中显示。

快捷键

这些是默认设置。有关配置选项,请参阅 键盘配置

操作
j<Down> 向下滚动
k<Up> 向上滚动
h 向下滚动半页
l 向上滚动半页
d<Left> 向下滚动一页
u<Right> 向上滚动一页
f/ 搜索
nN 跳转到下一个或上一个搜索结果
sS 进入选择链接模式。不同的选择策略。
K 悬停。预览链接去向而不真正跳转
<进入> 选择。根据模式不同:打开文件、选择链接、搜索
Esc 回到 正常 模式
t 回到文件
b 回到上一个文件(如果没有上一个文件则为文件树)
g 跳到文件顶部
G 跳到文件底部
e $EDITOR 中编辑文件
o 对文件树中的文件进行排序
q 退出应用程序

语法高亮

MD-TUI 支持以下语言的代码块语法高亮

  • Bash/sh
  • C/C++
  • Css
  • Elixir
  • Go
  • Html
  • Java
  • JavaScript
  • Json
  • Lua
  • Luau
  • Ocaml
  • PHP
  • Python
  • Rust
  • Scala
  • Typescript
  • Yaml

配置

程序在启动时检查文件 ~/.config/mdt/config.toml。以下参数及其默认值如下。

键盘操作

某些关键操作不可配置。例如以下

  • 进入
  • 箭头键
  • Esc
  • 问号用于帮助菜单
  • 使用 'q' 退出应用程序
  • 使用 '/' 进行搜索

如果您覆盖了另一个默认键,如果该键未被重新分配,则行为未定义。

操作只能分配给单个字符。空格、功能键、Ctrl+键、退格键等将不起作用,将使用默认设置。

# Keyboard actions
up = 'k'
down = 'j'
page_up = 'u'
page_down = 'd'
half_page_down = 'l'
half_page_up = 'h'
top = 'g'
bottom = 'G'
search = 'f'
search_next = 'n'
search_previous = 'N'
# This will search downwards until it finds one or select the last link in document.
select_link = 's'
# Finds the link 2/3 up the page. It will search then for closest in both direction.
select_link_alt = 'S'
edit = 'e'
hover = 'K'
back = 'b'
file_tree = 't'
sort = 'o'

颜色和其他

将颜色设置为 "" 不会移除它,而是将其保留为其默认值。要移除颜色,将其设置为 reset

# General settings
width = 100
gitignore = false
alignment = "left" # "center" | "right"

# Inline styling
bold_color = "reset"
bold_italic_color = "reset"
code_bg_color = "#2A2A2A"
code_fg_color = "red"
italic_color = "reset"
link_color = "blue"
link_selected_bg_color = "darkgrey"
link_selected_fg_color = "green"
strikethrough_color = "reset"

# Block styling
code_block_bg_color = "#2A2A2A"
quote_bg_color = "reset"
table_header_bg_color = "reset"
table_header_fg_color = "yellow"

# File tree
file_tree_name_color = "blue"
file_tree_page_count_color = "lightgreen"
file_tree_path_color = "gray"
file_tree_selected_fg_color = "lightgreen"

# Quote bar
quote_caution = "lightmagenta"
quote_default = "white"
quote_important = "lightred"
quote_note = "lightblue"
quote_tip = "lightgreen"
quote_warning = "lightYellow"

# Heading
h_bg_color = "blue"
h_fg_color = "black"
h2_fg_color = "green"
h3_fg_color = "magenta"
h4_fg_color = "cyan"
h5_fg_color = "yellow"
h6_fg_color = "lightred"

MD-TUI 目前支持 [text](url)[[link]][[link|Some title]] 类型的链接。

Neovim 插件

此应用程序还作为 Neovim 的插件存在,称为 Preview

[!注意]

此版本不支持图像,无论您的终端功能如何。

贡献

欢迎提交 PR 和 issues!

依赖关系

~217MB
~6.5M SLoC