https://github.com/szktkfm/mdtt
🗓️ Markdown Table Editor TUI
https://github.com/szktkfm/mdtt
bubbletea cli command-line go golang markdown shell terminal terminal-based tui tui-app
Last synced: 5 months ago
JSON representation
🗓️ Markdown Table Editor TUI
- Host: GitHub
- URL: https://github.com/szktkfm/mdtt
- Owner: szktkfm
- License: mit
- Created: 2024-02-17T11:23:09.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-20T12:51:23.000Z (11 months ago)
- Last Synced: 2024-11-20T13:50:25.579Z (11 months ago)
- Topics: bubbletea, cli, command-line, go, golang, markdown, shell, terminal, terminal-based, tui, tui-app
- Language: Go
- Homepage:
- Size: 6.39 MB
- Stars: 107
- Watchers: 3
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- charm-in-the-wild - mdtt - A TUI for editing markdown tables. (_built with Bubble Tea_) (Applications / Development Tools)
README
# 🗓️ mdtt: Markdown Table Editor TUI
Editing markdown tables can be a drag. `mdtt` makes it easier with a slick TUI for terminal use and vim-style keybindings. It supports output to stdout and in-place file editing.
## 📦 Installation
To install `mdtt` using Go, run:
```sh
go install github.com/szktkfm/mdtt/cmd/mdtt@latest
```Or, download it:
[GitHub Releases](https://github.com/szktkfm/mdtt/releases)
## 🎬 Usage
To start editing your markdown table, simply run:
```sh
mdtt filename.md
```Upon launching, `mdtt` will display the tables from your markdown file in a TUI.
While editing, you can utilize the following vim-like keybindings to navigate and modify your tables efficiently:
- Navigation: Use `hjkl` for left, down, up, and right movements.
- Editing: Press `i` to switch to insert mode and edit cell content, exit insert mode with `esc` or `ctrl+c`.
- Row and Column Manipulation:
- Add a new row or colymn with `o`, `vo`.
- Delete the current row or column with `dd`, `vd`.
- Copy the current row or column with `yy`, `vy`.
- Paste a copied row or column with `p`.
For direct editing and saving changes to the same file, use:
```sh
mdtt -i filename.md
```
You can use piping with `mdtt` as shown below:
```sh
pbpaste | mdtt | pbcopy
```
To create a new table without an existing file, run `mdtt` without any arguments:
```sh
mdtt
```
When multiple tables are present, you will be prompted to select the table you wish to edit.
Press `I` to open the cell in the text editor set as your `$EDITOR`, allowing you to edit the cell directly within your chosen editor.
## ⌨️ Key Bindings
| Key | Action |
| -------------- | ----------------- |
| `↑`/`k` | Move up |
| `↓`/`j` | Move down |
| `←`/`h` | Move left |
| `→`/`l` | Move right |
| `b`/`pgup` | Page up |
| `f`/`pgdn` | Page down |
| `ctrl+u` | Half page up |
| `ctrl+d` | Half page down |
| `g`/`home` | Go to start |
| `G`/`end` | Go to end |
| `i` | Insert mode |
| `I` | Open `$EDITOR` |
| `esc`/`ctrl+c` | Normal mode |
| `o`/`vo` | Add row/column |
| `dd`/`vd` | Delete row/column |
| `yy`/`vy` | Copy row/column |
| `p` | Paste |
| `q` | Quit |
| `?` | Toggle help |## 📝 Features
- [x] **Vim-like Keybindings**: Navigate and edit tables using familiar vim commands.
- [x] **Inplace Editing**: Directly modify your original markdown files with the -i option.
- [x] **Piping Support**
- [x] **Multi-Table Selection**
- [x] **External Editor Integration**: Delegate cell editing to an external editor specified by your $EDITOR environment variable.
- [ ] **HTML in Cells**: Enable rich content formatting by using HTML directly within table cells.## 🙏 Acknowledgments
This project, `mdtt`, was inspired by [mdvtbl](https://github.com/karino2/mdvtbl), a tool that reads markdown from stdin, allows for table editing in a web view, and outputs to stdout.
## License
[MIT](./LICENSE)