diff --git a/docs/en/src/SUMMARY.md b/docs/en/src/SUMMARY.md
index 5d467a1..6c7372b 100644
--- a/docs/en/src/SUMMARY.md
+++ b/docs/en/src/SUMMARY.md
@@ -1,5 +1,4 @@
-A hackable, minimal, fast TUI file explorer
-===========================================
+# A hackable, minimal, fast TUI file explorer
- [Introduction][1]
- [Quickstart][2]
@@ -28,30 +27,29 @@ A hackable, minimal, fast TUI file explorer
- [Community][24]
- [Contribute][25]
-
-[1]:introduction.md
-[2]:quickstart.md
-[3]:install.md
-[4]:post-install.md
-[5]:configuration.md
-[6]:general-config.md
-[7]:modes.md
-[8]:message.md
-[9]:layouts.md
-[10]:node_types.md
-[11]:style.md
-[12]:sorting.md
-[13]:filtering.md
-[14]:default-key-bindings.md
-[15]:plugin.md
-[16]:installing-plugins.md
-[17]:writing-plugins.md
-[18]:awesome-plugins.md
-[19]:integration.md
-[20]:awesome-integrations.md
-[21]:todo.md
-[22]:alternatives.md
-[23]:upgrade-guide.md
-[24]:community.md
-[25]:contribute.md
-[26]:column-renderer.md
+[1]: introduction.md
+[2]: quickstart.md
+[3]: install.md
+[4]: post-install.md
+[5]: configuration.md
+[6]: general-config.md
+[7]: modes.md
+[8]: message.md
+[9]: layouts.md
+[10]: node_types.md
+[11]: style.md
+[12]: sorting.md
+[13]: filtering.md
+[14]: default-key-bindings.md
+[15]: plugin.md
+[16]: installing-plugins.md
+[17]: writing-plugins.md
+[18]: awesome-plugins.md
+[19]: integration.md
+[20]: awesome-integrations.md
+[21]: todo.md
+[22]: alternatives.md
+[23]: upgrade-guide.md
+[24]: community.md
+[25]: contribute.md
+[26]: column-renderer.md
diff --git a/docs/en/src/alternatives.md b/docs/en/src/alternatives.md
index 1d54e39..b2acc90 100644
--- a/docs/en/src/alternatives.md
+++ b/docs/en/src/alternatives.md
@@ -1,5 +1,4 @@
-Alternatives
-============
+# Alternatives
These are the alternative TUI/CLI file managers/explorers you might want to check out (in no particular order).
@@ -18,17 +17,16 @@ These are the alternative TUI/CLI file managers/explorers you might want to chec
[add more][13]
-
-[1]:https://github.com/jarun/nnn/
-[2]:https://github.com/vifm/vifm
-[3]:https://github.com/ranger/ranger
-[4]:https://github.com/gokcehan/lf
-[5]:https://github.com/kamiyaa/joshuto
-[6]:https://github.com/dylanaraps/fff
-[7]:https://github.com/MidnightCommander/mc
-[8]:https://github.com/Canop/broot
-[9]:https://github.com/rabite0/hunter
-[10]:https://git.2f30.org/noice/
-[11]:https://github.com/pasqu4le/clifm
-[12]:https://github.com/leo-arch/clifm
-[13]:community.md
\ No newline at end of file
+[1]: https://github.com/jarun/nnn/
+[2]: https://github.com/vifm/vifm
+[3]: https://github.com/ranger/ranger
+[4]: https://github.com/gokcehan/lf
+[5]: https://github.com/kamiyaa/joshuto
+[6]: https://github.com/dylanaraps/fff
+[7]: https://github.com/MidnightCommander/mc
+[8]: https://github.com/Canop/broot
+[9]: https://github.com/rabite0/hunter
+[10]: https://git.2f30.org/noice/
+[11]: https://github.com/pasqu4le/clifm
+[12]: https://github.com/leo-arch/clifm
+[13]: community.md
diff --git a/docs/en/src/awesome-integrations.md b/docs/en/src/awesome-integrations.md
index 537d338..758ada0 100644
--- a/docs/en/src/awesome-integrations.md
+++ b/docs/en/src/awesome-integrations.md
@@ -1,46 +1,36 @@
-Awesome Integrations
-====================
+# Awesome Integrations
Here's a list of awesome xplr integrations that you might want to check out.
If none of the following integrations work for you, you can create your own and
[let us know][1].
-
-Categories
-----------
+## Categories
- [Editor][2]
- [Shell][3]
- [Security Tools][4]
-
-Editor
-------
+## Editor
- [**vim-floaterm**][6] xplr integrated in vim-floaterm (Neo)vim plugin.
- [**xplr.nvim**][9] Opens xplr inside nvim, and hosts a msgpack client inside xplr.
- [**xplr.vim**][5] Pick files in Vim using xplr.
-
-Shell
------
+## Shell
- [**powerlevel10k**][7] Powerlevel10k prompt for xplr shell.
-
-Security Tools
---------------
+## Security Tools
- [**gpg-tui**][8] Import GPG certificates using xplr.
-
-[1]:https://github.com/sayanarijit/xplr/discussions/categories/show-and-tell
-[2]:#editor
-[3]:#shell
-[4]:#security-tools
-[5]:https://github.com/sayanarijit/xplr.vim
-[6]:https://github.com/voldikss/vim-floaterm#xplr
-[7]:https://github.com/romkatv/powerlevel10k/blob/191d1b89e325ee3b6d2d75a394654aaf4f077a7c/internal/p10k.zsh#L4756-L4768
-[8]:https://github.com/orhun/gpg-tui#importreceive
-[9]:https://github.com/fhill2/xplr.nvim
+[1]: https://github.com/sayanarijit/xplr/discussions/categories/show-and-tell
+[2]: #editor
+[3]: #shell
+[4]: #security-tools
+[5]: https://github.com/sayanarijit/xplr.vim
+[6]: https://github.com/voldikss/vim-floaterm#xplr
+[7]: https://github.com/romkatv/powerlevel10k/blob/191d1b89e325ee3b6d2d75a394654aaf4f077a7c/internal/p10k.zsh#L4756-L4768
+[8]: https://github.com/orhun/gpg-tui#importreceive
+[9]: https://github.com/fhill2/xplr.nvim
diff --git a/docs/en/src/awesome-plugins.md b/docs/en/src/awesome-plugins.md
index aa5a202..6d37456 100644
--- a/docs/en/src/awesome-plugins.md
+++ b/docs/en/src/awesome-plugins.md
@@ -1,21 +1,16 @@
-Awesome Plugins
-===============
+# Awesome Plugins
Here's a list of awesome xplr plugins that you might want to check out. If none
of the following plugins work for you, it's very easy to
[write your own][1].
-
-Categories
-----------
+## Categories
- [Extension][32]
- [Integration][2]
- [Theme][3]
-
-Extension
----------
+## Extension
- [**comex.xplr**][21] One xplr plugin to compress and extract them all.
- [**command-mode.xplr**][37] The missing command mode for xplr.
@@ -23,9 +18,7 @@ Extension
- [**type-to-nav.xplr**][28] Inspired by [nnn's type-to-nav mode][29] for xplr,
with some tweaks.
-
-Integration
------------
+## Integration
- [**alacritty.xplr**][33] [Alacritty][34] integration for xplr.
- [**dragon.xplr**][4] Drag and drop files using [dragon][5].
@@ -46,51 +39,48 @@ Integration
- [**xclip.xplr**][15] Copy and paste with system clipboard using [xclip][16].
- [**zoxide.xplr**][17] Change directory using the [zoxide][18] database.
-
-Theme
------
+## Theme
- [**material-landscape.xplr**][19] Material Landscape
- [**material-landscape2.xplr**][20] Material Landscape 2
- [**zentable.xplr**][31] A clean, distraction free xplr table UI
- [**icons.xplr**][30] An icon theme for xplr.
-
-[1]:./writing-plugins.md
-[2]:#integration
-[3]:#theme
-[4]:https://github.com/sayanarijit/dragon.xplr
-[5]:https://github.com/mwh/dragon
-[6]:https://github.com/sayanarijit/dua-cli.xplr
-[7]:https://github.com/Byron/dua-cli
-[8]:https://github.com/sayanarijit/fzf.xplr
-[9]:https://github.com/junegunn/fzf
-[10]:https://github.com/sayanarijit/preview-tabbed.xplr
-[11]:https://tools.suckless.org/tabbed/
-[12]:https://github.com/jarun/nnn/blob/master/plugins/preview-tabbed
-[13]:https://github.com/sayanarijit/trash-cli.xplr
-[14]:https://github.com/andreafrancia/trash-cli
-[15]:https://github.com/sayanarijit/xclip.xplr
-[16]:https://github.com/astrand/xclip
-[17]:https://github.com/sayanarijit/zoxide.xplr
-[18]:https://github.com/ajeetdsouza/zoxide
-[19]:https://github.com/sayanarijit/material-landscape.xplr
-[20]:https://github.com/sayanarijit/material-landscape2.xplr
-[21]:https://github.com/sayanarijit/comex.xplr
-[22]:https://github.com/sayanarijit/xargs.xplr
-[23]:https://github.com/dtomvan/paste-rs.xplr
-[24]:https://paste.rs
-[25]:https://github.com/sayanarijit/completion.xplr
-[26]:https://github.com/sayanarijit/qrcp.xplr
-[27]:https://github.com/claudiodangelis/qrcp
-[28]:https://github.com/prncss-xyz/type-to-nav.xplr
-[29]:https://github.com/jarun/nnn/wiki/concepts#type-to-nav
-[30]:https://github.com/prncss-xyz/icons.xplr
-[31]:https://github.com/sayanarijit/zentable.xplr
-[32]:#extension
-[33]:https://github.com/sayanarijit/alacritty.xplr
-[34]:https://github.com/alacritty/alacritty
-[35]:https://github.com/sayanarijit/nvim-ctrl.xplr
-[36]:https://github.com/chmln/nvim-ctrl
-[37]:https://github.com/sayanarijit/command-mode.xplr
-[38]:https://github.com/sayanarijit/map.xplr
+[1]: ./writing-plugins.md
+[2]: #integration
+[3]: #theme
+[4]: https://github.com/sayanarijit/dragon.xplr
+[5]: https://github.com/mwh/dragon
+[6]: https://github.com/sayanarijit/dua-cli.xplr
+[7]: https://github.com/Byron/dua-cli
+[8]: https://github.com/sayanarijit/fzf.xplr
+[9]: https://github.com/junegunn/fzf
+[10]: https://github.com/sayanarijit/preview-tabbed.xplr
+[11]: https://tools.suckless.org/tabbed/
+[12]: https://github.com/jarun/nnn/blob/master/plugins/preview-tabbed
+[13]: https://github.com/sayanarijit/trash-cli.xplr
+[14]: https://github.com/andreafrancia/trash-cli
+[15]: https://github.com/sayanarijit/xclip.xplr
+[16]: https://github.com/astrand/xclip
+[17]: https://github.com/sayanarijit/zoxide.xplr
+[18]: https://github.com/ajeetdsouza/zoxide
+[19]: https://github.com/sayanarijit/material-landscape.xplr
+[20]: https://github.com/sayanarijit/material-landscape2.xplr
+[21]: https://github.com/sayanarijit/comex.xplr
+[22]: https://github.com/sayanarijit/xargs.xplr
+[23]: https://github.com/dtomvan/paste-rs.xplr
+[24]: https://paste.rs
+[25]: https://github.com/sayanarijit/completion.xplr
+[26]: https://github.com/sayanarijit/qrcp.xplr
+[27]: https://github.com/claudiodangelis/qrcp
+[28]: https://github.com/prncss-xyz/type-to-nav.xplr
+[29]: https://github.com/jarun/nnn/wiki/concepts#type-to-nav
+[30]: https://github.com/prncss-xyz/icons.xplr
+[31]: https://github.com/sayanarijit/zentable.xplr
+[32]: #extension
+[33]: https://github.com/sayanarijit/alacritty.xplr
+[34]: https://github.com/alacritty/alacritty
+[35]: https://github.com/sayanarijit/nvim-ctrl.xplr
+[36]: https://github.com/chmln/nvim-ctrl
+[37]: https://github.com/sayanarijit/command-mode.xplr
+[38]: https://github.com/sayanarijit/map.xplr
diff --git a/docs/en/src/column-renderer.md b/docs/en/src/column-renderer.md
index 129d207..3767ca4 100644
--- a/docs/en/src/column-renderer.md
+++ b/docs/en/src/column-renderer.md
@@ -1,5 +1,4 @@
-Column Renderer
-==============
+# Column Renderer
A column renderer is a Lua function that receives a [special argument][1] and
returns a string that will be displayed in each specific field of the
@@ -18,9 +17,7 @@ You can either overwrite these functions, or create new functions in
Terminal colors are supported.
-
-Table Renderer Argument
------------------------
+## Table Renderer Argument
The special argument contains the following fields
@@ -75,21 +72,18 @@ Type: string
The extension of the node.
-
### is_symlink
Type: boolean
`true` if the node is a symlink.
-
### is_broken
Type: boolean
`true` if the node is a broken symlink.
-
### is_dir
Type: boolean
@@ -108,7 +102,6 @@ Type: boolean
`true` if the node is real-only.
-
### mime_essence
Type: string
@@ -216,9 +209,7 @@ Type: mapping of string and string
The applicable [meta object][33] for the node.
-
-Permission
-----------
+## Permission
Permission contains the following fields:
@@ -237,9 +228,7 @@ Permission contains the following fields:
Each field holds a boolean value.
-
-Resolved Node Metadata
-----------------------
+## Resolved Node Metadata
It contains the following fields.
@@ -252,9 +241,7 @@ It contains the following fields.
- [size][13]
- [human_size][14]
-
-Example: Customizing Table Renderer
------------------------------------
+## Example: Customizing Table Renderer
```lua
xplr.fn.custom.fmt_simple_column = function(m)
@@ -277,37 +264,36 @@ xplr.config.general.table.col_widths = {
-- relative paths.
```
-
-[1]:#table-renderer-argument
-[2]:layouts.md#table
-[3]:#parent
-[4]:#relative_path
-[5]:#absolute_path
-[6]:#extension
-[7]:#is_symlink
-[8]:#is_broken
-[9]:#is_dir
-[10]:#is_file
-[11]:#is_readonly
-[12]:#mime_essence
-[13]:#size
-[14]:#human_size
-[15]:#permissions
-[16]:#canonical
-[17]:#symlink
-[18]:#index
-[19]:#relative_index
-[20]:#is_before_focus
-[21]:#is_after_focus
-[22]:#tree
-[23]:#prefix
-[24]:#suffix
-[25]:#is_selected
-[26]:#is_focused
-[27]:#total
-[28]:meta
-[29]:#size
-[30]:#permission
-[31]:#resolved-node-metadata
-[32]:general-config.md#tabletree
-[33]:node_types.md#meta
+[1]: #table-renderer-argument
+[2]: layouts.md#table
+[3]: #parent
+[4]: #relative_path
+[5]: #absolute_path
+[6]: #extension
+[7]: #is_symlink
+[8]: #is_broken
+[9]: #is_dir
+[10]: #is_file
+[11]: #is_readonly
+[12]: #mime_essence
+[13]: #size
+[14]: #human_size
+[15]: #permissions
+[16]: #canonical
+[17]: #symlink
+[18]: #index
+[19]: #relative_index
+[20]: #is_before_focus
+[21]: #is_after_focus
+[22]: #tree
+[23]: #prefix
+[24]: #suffix
+[25]: #is_selected
+[26]: #is_focused
+[27]: #total
+[28]: meta
+[29]: #size
+[30]: #permission
+[31]: #resolved-node-metadata
+[32]: general-config.md#tabletree
+[33]: node_types.md#meta
diff --git a/docs/en/src/community.md b/docs/en/src/community.md
index 2954d82..a280b7a 100644
--- a/docs/en/src/community.md
+++ b/docs/en/src/community.md
@@ -1,5 +1,4 @@
-Community
-=========
+# Community
Building an active community of awesome people and learning stuff together is
one of my reasons to publish this tool and maintain it. Hence, please feel free
@@ -8,7 +7,6 @@ to reach out via your preferred way.
- Real-time chat lovers can join our [**matrix room**][3] or [**discord channel**][1].
- Forum discussion veterans can [**start a new GitHub discussion**][2].
-
-[1]:https://discord.gg/JmasSPCcz3
-[2]:https://github.com/sayanarijit/xplr/discussions
-[3]:https://matrix.to/#/#xplr-pub:matrix.org
+[1]: https://discord.gg/JmasSPCcz3
+[2]: https://github.com/sayanarijit/xplr/discussions
+[3]: https://matrix.to/#/#xplr-pub:matrix.org
diff --git a/docs/en/src/configuration.md b/docs/en/src/configuration.md
index 7a8f69d..bb9ea52 100644
--- a/docs/en/src/configuration.md
+++ b/docs/en/src/configuration.md
@@ -1,5 +1,4 @@
-Configuration
-=============
+# Configuration
xplr can be configured using [Lua][1] via a special file
named `init.lua`
@@ -15,9 +14,7 @@ the command-line argument `-c` / `--config` to specify its path explicitely. In
that case, both `~/.config/xplr/init.lua` and `/etc/xplr/init.lua` will be
ignored.
-
-How Config Is Loaded
---------------------
+## How Config Is Loaded
When xplr loads, it first executes the built-in
[init.lua][2] to set
@@ -26,9 +23,7 @@ using the following lookup order:
**--config /path/to/init.lua** > **~/.config/xplr/init.lua** > **/etc/xplr/init.lua**
-
-config
-------
+## config
The xplr configuration, exposed as `xplr.config` Lua API contains the
following fields:
@@ -38,10 +33,9 @@ following fields:
- [layouts][5]
- [node_types][6]
-
-[1]:https://www.lua.org/
-[2]:https://github.com/sayanarijit/xplr/blob/main/src/init.lua
-[3]:general-config.md
-[4]:modes.md
-[5]:layouts.md
-[6]:node_types.md
\ No newline at end of file
+[1]: https://www.lua.org/
+[2]: https://github.com/sayanarijit/xplr/blob/main/src/init.lua
+[3]: general-config.md
+[4]: modes.md
+[5]: layouts.md
+[6]: node_types.md
diff --git a/docs/en/src/contribute.md b/docs/en/src/contribute.md
index ddeab8a..2b6cb96 100644
--- a/docs/en/src/contribute.md
+++ b/docs/en/src/contribute.md
@@ -3,12 +3,12 @@ If you like xplr, and want to contribute, that would be really awesome.
You can contribute to this project in the following ways
- Contribute your time and expertise (read [CONTRIBUTING.md][1] for instructions).
+
- **Developers:** You can help me improve my code, fix things, implement features etc.
- **Repository maintainers:** You can save the users from the pain of managing xplr in their system manually.
- **Code Reviewers:** Teach me your ways of code.
- **Designers:** You can make the logo even more awesome, donate stickers and blog post worthy pictures.
- - **Bloggers, YouTubers & broadcasters:** You can help spread the word.
-
+ - **Bloggers, YouTubers & broadcasters:** You can help spread the word.
- Contribute by donating.
- You can [fuel me with coins of encouragement][2] or [buy me a coffee][3].
@@ -16,10 +16,10 @@ You can contribute to this project in the following ways
For further queries or concern related to `xplr`, [just ask us][4].
### Backers
-
+
-[1]:https://github.com/sayanarijit/xplr/blob/main/CONTRIBUTING.md
-[2]:https://opencollective.com/xplr
-[3]:https://ko-fi.com/sayanarijit
-[4]:community.md
\ No newline at end of file
+[1]: https://github.com/sayanarijit/xplr/blob/main/CONTRIBUTING.md
+[2]: https://opencollective.com/xplr
+[3]: https://ko-fi.com/sayanarijit
+[4]: community.md
diff --git a/docs/en/src/default-key-bindings.md b/docs/en/src/default-key-bindings.md
index 8200abb..2ed005c 100644
--- a/docs/en/src/default-key-bindings.md
+++ b/docs/en/src/default-key-bindings.md
@@ -1,5 +1,4 @@
-Default Key Bindings
-====================
+# Default Key Bindings
The default key binding is inspired by [vim][1] and slightly
overlaps with [nnn][2], but it's supposed to be
@@ -8,257 +7,238 @@ customized as per user requirements.
When you press `?` in [default mode][3], you can see the complete list
of [modes][4] and the key mappings for each mode.
-
### default
- key | remaps | action
- --------------- | ------------------------- | ------
- . | | show hidden
- / | ctrl-f | search
- : | | action
- ? | | global help menu
- G | | go to bottom
- V | ctrl-a | select/unselect all
- ctrl-c | | terminate
- ctrl-i | tab | next visited path
- ctrl-o | | last visited path
- ctrl-r | | refresh screen
- ctrl-u | | clear selection
- ctrl-w | | switch layout
- d | | delete
- down | j | down
- enter | | quit with result
- f | | filter
- g | | go to
- h | left | back
- k | up | up
- l | right | enter
- q | | quit
- r | | rename
- s | | sort
- space | v | toggle selection
- ~ | | go home
- [0-9] | | input
-
+| key | remaps | action |
+| ------ | ------ | ------------------- |
+| . | | show hidden |
+| / | ctrl-f | search |
+| : | | action |
+| ? | | global help menu |
+| G | | go to bottom |
+| V | ctrl-a | select/unselect all |
+| ctrl-c | | terminate |
+| ctrl-i | tab | next visited path |
+| ctrl-o | | last visited path |
+| ctrl-r | | refresh screen |
+| ctrl-u | | clear selection |
+| ctrl-w | | switch layout |
+| d | | delete |
+| down | j | down |
+| enter | | quit with result |
+| f | | filter |
+| g | | go to |
+| h | left | back |
+| k | up | up |
+| l | right | enter |
+| q | | quit |
+| r | | rename |
+| s | | sort |
+| space | v | toggle selection |
+| ~ | | go home |
+| [0-9] | | input |
### recover
- key | remaps | action
- --------------- | ------------------------- | ------
- ctrl-c | | terminate
- esc | | escape
-
+| key | remaps | action |
+| ------ | ------ | --------- |
+| ctrl-c | | terminate |
+| esc | | escape |
### filter
- key | remaps | action
- --------------- | ------------------------- | ------
- R | | relative does not contain
- backspace | | remove last filter
- ctrl-c | | terminate
- ctrl-r | | reset filters
- ctrl-u | | clear filters
- enter | esc | done
- r | | relative does contain
-
+| key | remaps | action |
+| --------- | ------ | ------------------------- |
+| R | | relative does not contain |
+| backspace | | remove last filter |
+| ctrl-c | | terminate |
+| ctrl-r | | reset filters |
+| ctrl-u | | clear filters |
+| enter | esc | done |
+| r | | relative does contain |
### number
- key | remaps | action
- --------------- | ------------------------- | ------
- backspace | | remove last character
- ctrl-c | | terminate
- ctrl-u | | remove line
- ctrl-w | | remove last word
- down | j | to down
- enter | | to index
- esc | | cancel
- k | up | to up
- [0-9] | | input
-
+| key | remaps | action |
+| --------- | ------ | --------------------- |
+| backspace | | remove last character |
+| ctrl-c | | terminate |
+| ctrl-u | | remove line |
+| ctrl-w | | remove last word |
+| down | j | to down |
+| enter | | to index |
+| esc | | cancel |
+| k | up | to up |
+| [0-9] | | input |
### go to
- key | remaps | action
- --------------- | ------------------------- | ------
- ctrl-c | | terminate
- esc | | cancel
- f | | follow symlink
- g | | top
- x | | open in gui
-
+| key | remaps | action |
+| ------ | ------ | -------------- |
+| ctrl-c | | terminate |
+| esc | | cancel |
+| f | | follow symlink |
+| g | | top |
+| x | | open in gui |
### search
- key | remaps | action
- --------------- | ------------------------- | ------
- backspace | | remove last character
- ctrl-c | | terminate
- ctrl-n | down | down
- ctrl-p | up | up
- ctrl-u | | remove line
- ctrl-w | | remove last word
- enter | esc | focus
- left | | back
- right | | enter
- tab | | toggle selection
-
+| key | remaps | action |
+| --------- | ------ | --------------------- |
+| backspace | | remove last character |
+| ctrl-c | | terminate |
+| ctrl-n | down | down |
+| ctrl-p | up | up |
+| ctrl-u | | remove line |
+| ctrl-w | | remove last word |
+| enter | esc | focus |
+| left | | back |
+| right | | enter |
+| tab | | toggle selection |
### selection ops
- key | remaps | action
- --------------- | ------------------------- | ------
- c | | copy here
- ctrl-c | | terminate
- esc | | cancel
- m | | move here
- x | | open in gui
-
+| key | remaps | action |
+| ------ | ------ | ----------- |
+| c | | copy here |
+| ctrl-c | | terminate |
+| esc | | cancel |
+| m | | move here |
+| x | | open in gui |
### action to
- key | remaps | action
- --------------- | ------------------------- | ------
- ! | | shell
- c | | create
- ctrl-c | | terminate
- e | | open in editor
- esc | | cancel
- l | | logs
- m | | toggle mouse
- q | | quit options
- s | | selection operations
- [0-9] | | go to index
-
+| key | remaps | action |
+| ------ | ------ | -------------------- |
+| ! | | shell |
+| c | | create |
+| ctrl-c | | terminate |
+| e | | open in editor |
+| esc | | cancel |
+| l | | logs |
+| m | | toggle mouse |
+| q | | quit options |
+| s | | selection operations |
+| [0-9] | | go to index |
### create
- key | remaps | action
- --------------- | ------------------------- | ------
- ctrl-c | | terminate
- d | | create directory
- esc | | cancel
- f | | create file
-
+| key | remaps | action |
+| ------ | ------ | ---------------- |
+| ctrl-c | | terminate |
+| d | | create directory |
+| esc | | cancel |
+| f | | create file |
### create file
- key | remaps | action
- --------------- | ------------------------- | ------
- backspace | | remove last character
- ctrl-c | | terminate
- ctrl-u | | remove line
- ctrl-w | | remove last word
- enter | | create file
- esc | | cancel
-
+| key | remaps | action |
+| --------- | ------ | --------------------- |
+| backspace | | remove last character |
+| ctrl-c | | terminate |
+| ctrl-u | | remove line |
+| ctrl-w | | remove last word |
+| enter | | create file |
+| esc | | cancel |
### create directory
- key | remaps | action
- --------------- | ------------------------- | ------
- backspace | | remove last character
- ctrl-c | | terminate
- ctrl-u | | remove line
- ctrl-w | | remove last word
- enter | | create directory
- esc | | cancel
-
+| key | remaps | action |
+| --------- | ------ | --------------------- |
+| backspace | | remove last character |
+| ctrl-c | | terminate |
+| ctrl-u | | remove line |
+| ctrl-w | | remove last word |
+| enter | | create directory |
+| esc | | cancel |
### rename
- key | remaps | action
- --------------- | ------------------------- | ------
- backspace | | remove last character
- ctrl-c | | terminate
- ctrl-u | | remove line
- ctrl-w | | remove last word
- enter | | rename
- esc | | cancel
-
+| key | remaps | action |
+| --------- | ------ | --------------------- |
+| backspace | | remove last character |
+| ctrl-c | | terminate |
+| ctrl-u | | remove line |
+| ctrl-w | | remove last word |
+| enter | | rename |
+| esc | | cancel |
### delete
- key | remaps | action
- --------------- | ------------------------- | ------
- D | | force delete
- ctrl-c | | terminate
- d | | delete
- esc | | cancel
-
+| key | remaps | action |
+| ------ | ------ | ------------ |
+| D | | force delete |
+| ctrl-c | | terminate |
+| d | | delete |
+| esc | | cancel |
### sort
- key | remaps | action
- --------------- | ------------------------- | ------
- ! | | reverse sorters
- E | | by canonical extension reverse
- M | | by canonical mime essence reverse
- N | | by node type reverse
- R | | by relative path reverse
- S | | by size reverse
- backspace | | remove last sorter
- ctrl-c | | terminate
- ctrl-r | | reset sorters
- ctrl-u | | clear sorters
- e | | by canonical extension
- enter | esc | done
- m | | by canonical mime essence
- n | | by node type
- r | | by relative path
- s | | by size
-
+| key | remaps | action |
+| --------- | ------ | --------------------------------- |
+| ! | | reverse sorters |
+| E | | by canonical extension reverse |
+| M | | by canonical mime essence reverse |
+| N | | by node type reverse |
+| R | | by relative path reverse |
+| S | | by size reverse |
+| backspace | | remove last sorter |
+| ctrl-c | | terminate |
+| ctrl-r | | reset sorters |
+| ctrl-u | | clear sorters |
+| e | | by canonical extension |
+| enter | esc | done |
+| m | | by canonical mime essence |
+| n | | by node type |
+| r | | by relative path |
+| s | | by size |
### filter
- key | remaps | action
- --------------- | ------------------------- | ------
- R | | relative does not contain
- backspace | | remove last filter
- ctrl-c | | terminate
- ctrl-r | | reset filters
- ctrl-u | | clear filters
- enter | esc | done
- r | | relative does contain
-
+| key | remaps | action |
+| --------- | ------ | ------------------------- |
+| R | | relative does not contain |
+| backspace | | remove last filter |
+| ctrl-c | | terminate |
+| ctrl-r | | reset filters |
+| ctrl-u | | clear filters |
+| enter | esc | done |
+| r | | relative does contain |
### relative path does contain
- key | remaps | action
- --------------- | ------------------------- | ------
- backspace | | remove last character
- ctrl-c | | terminate
- ctrl-u | | remove line
- ctrl-w | | remove last word
- enter | | apply filter
- esc | | cancel
-
+| key | remaps | action |
+| --------- | ------ | --------------------- |
+| backspace | | remove last character |
+| ctrl-c | | terminate |
+| ctrl-u | | remove line |
+| ctrl-w | | remove last word |
+| enter | | apply filter |
+| esc | | cancel |
### relative path does not contain
- key | remaps | action
- --------------- | ------------------------- | ------
- backspace | | remove last character
- ctrl-c | | terminate
- ctrl-u | | remove line
- ctrl-w | | remove last word
- enter | | apply filter
- esc | | cancel
-
+| key | remaps | action |
+| --------- | ------ | --------------------- |
+| backspace | | remove last character |
+| ctrl-c | | terminate |
+| ctrl-u | | remove line |
+| ctrl-w | | remove last word |
+| enter | | apply filter |
+| esc | | cancel |
### switch layout
- key | remaps | action
- --------------- | ------------------------- | ------
- 1 | | default
- 2 | | no help menu
- 3 | | no selection panel
- 4 | | no help or selection
- ctrl-c | | terminate
- esc | | cancel
-
-
-[1]:https://www.vim.org/
-[2]:https://github.com/jarun/nnn/
-[3]:#default
-[4]:modes.md
\ No newline at end of file
+| key | remaps | action |
+| ------ | ------ | -------------------- |
+| 1 | | default |
+| 2 | | no help menu |
+| 3 | | no selection panel |
+| 4 | | no help or selection |
+| ctrl-c | | terminate |
+| esc | | cancel |
+
+[1]: https://www.vim.org/
+[2]: https://github.com/jarun/nnn/
+[3]: #default
+[4]: modes.md
diff --git a/docs/en/src/filtering.md b/docs/en/src/filtering.md
index bcfa804..ae6d1a9 100644
--- a/docs/en/src/filtering.md
+++ b/docs/en/src/filtering.md
@@ -1,5 +1,4 @@
-Filtering
-=========
+# Filtering
xplr supports filtering paths by different properties. The filtering mechanism
works like a pipeline, which in visible in the `Sort & filter` panel.
@@ -11,15 +10,13 @@ rel!^. › [i]abs=~abc › [i]rel!~xyz
```
This line means that the nodes visible on the table will first be filtered by
-the condition: *relative path does not start with `.`*, then by the condition:
-*absolute path contains `abc` (case insensitive)*, and finally by the
-condition: *relative path does not contain `xyz`* (case insensitive).
+the condition: _relative path does not start with `.`_, then by the condition:
+_absolute path contains `abc` (case insensitive)_, and finally by the
+condition: _relative path does not contain `xyz`_ (case insensitive).
Each part of this pipeline is called [Node Filter Applicable][1].
-
-Node Filter Applicable
-----------------------
+## Node Filter Applicable
It contains the following information:
@@ -63,7 +60,6 @@ A filter can be one of the following:
- "IAbsolutePathDoesEndWith"
- "IAbsolutePathDoesNotEndWith"
-
TODO: document each
### input
@@ -72,9 +68,7 @@ Type: string
The input for the condition.
-
-Example:
---------
+## Example:
```lua
ToggleNodeFilter = {
@@ -86,8 +80,7 @@ ToggleNodeFilter = {
Here, `ToggleNodeFilter` is a [message][4] that adds or removes
(toggles) the filter applied.
-
-[1]:#node-filter-applicable
-[2]:#filter
-[3]:#input
-[4]:message.md
\ No newline at end of file
+[1]: #node-filter-applicable
+[2]: #filter
+[3]: #input
+[4]: message.md
diff --git a/docs/en/src/general-config.md b/docs/en/src/general-config.md
index a635bc1..429c624 100644
--- a/docs/en/src/general-config.md
+++ b/docs/en/src/general-config.md
@@ -1,152 +1,117 @@
-General Config
-==============
+# General Config
This configuration is exposed via the `xplr.config.general` API. It contains
the following fields:
-
-enable_mouse
-------------
+## enable_mouse
Type: boolean
Set it to `true` enable scrolling using mouse.
-
-show_hidden
------------
+## show_hidden
Type: boolean
Set it to `true` to show hidden files.
-
-read_only
----------
+## read_only
Type: boolean
Set it to `true` to use only a subset of selected operations that forbids
executing commands or performing write operations on the file-system.
-
-enable_recover_mode
---------------------
+## enable_recover_mode
Type: boolean
Set it to `true` if you want to enable a safety feature that will save you from
yourself when you type recklessly.
-
-cursor.format
--------------
+## cursor.format
Type: nullable string
-This is the shape of the cursor visible when the input buffer contains some string.
+This is the shape of the cursor visible when the input buffer contains some
+string.
-
-cursor.style
-------------
+## cursor.style
Type: [Style][1]
Style of the cursor.
-
-initial_layout
---------------
+## initial_layout
Type: string
The name of one of the [layout][2] to use when xplr loads.
-
-initial_mode
-------------
+## initial_mode
Type: string
The name of one of the [mode][3] to use when xplr loads.
-
-initial_sorting
----------------
+## initial_sorting
Type: list of [Node Sorter Applicable][4]
Initial group if sorters applied to the nodes list in the table.
-
-table.style
------------
+## table.style
Type: [Style][1]
Default style of the table.
-
-table.col_spacing
------------------
+## table.col_spacing
Type: nullable integer
Default spacing of the columns in the table.
-
-table.col_widths
-----------------
+## table.col_widths
Type: nullable list of [Constraint][5]
Width of each column in the table.
-table.header.height
-----------------
+## table.header.height
Type: nullable integer
Height of the table header.
-
-table.header.style
----------------
+## table.header.style
Type: [Style][1]
Style of table header.
+## table.header.cols
-table.header.cols
------------------
-
-Type: List of column configuration
+Type: list of column configuration
Each column config contains `format` field (string) and `style` field
([Style][1]), that define the content and style of header.
-
-table.row.height
-----------------
+## table.row.height
Type: nullable integer
Height of each row in the table.
-
-table.row.style
----------------
+## table.row.style
Type: [Style][1]
Style of table rows.
+## table.row.cols
-table.row.cols
------------------
-
-Type: List of column configuration
+Type: list of column configuration
Each column config contains `format` field (string) and `style` field
([Style][1]).
@@ -154,11 +119,9 @@ Each column config contains `format` field (string) and `style` field
However, unlike [table.header.cols][6], the `format` field here
points to a [column renderer function][7].
+## table.tree
-table.tree
------------------
-
-Type: List of tree configuration
+Type: list of tree configuration
It expects a list of three items. The first component of the tree, then the
middle components, and finally the last component of the tree.
@@ -176,298 +139,238 @@ xplr.config.general.table.tree = {
}
```
-
-start_fifo
-----------
+## start_fifo
Type: nullable string
-[Description](https://docs.rs/xplr/0.15.0/xplr/config/struct.GeneralConfig.html#structfield.start_fifo)
+Start a FIFO file when xplr loads. It will track the absolute path of the file
+under focus.
-
-prompt.format
--------------
+## prompt.format
Type: string
This is the shape of the prompt for the input buffer.
-
-prompt.style
---------------------------
+## prompt.style
Type: [Style][1]
Style of the input prompt.
-
-logs.error.format
------------------
+## logs.error.format
Type: string
The string to indicate an error in logs.
-
-logs.error.style
-----------------
+## logs.error.style
Type: [Style][1]
Style for errors shown in logs.
-
-logs.info.format
-----------------
+## logs.info.format
Type: string
The string to indicate an information in logs.
-
-logs.info.style
----------------
+## logs.info.style
Type: [Style][1]
Style for infos shown in logs.
-
-logs.success.format
--------------------
+## logs.success.format
Type: string
The string to indicate a successful operation in logs.
-
-logs.success.style
-------------------
+## logs.success.style
Type: [Style][1]
Style for successful operations in logs.
+## logs.warning.format
-logs.warning.format
--------------------
Type: string
The string that indicates a warning in logs.
-
-logs.warning.style
-------------------
+## logs.warning.style
Type: [Style][1]
Style for warnings in logs.
-
-default_ui.prefix
------------------
+## default_ui.prefix
Type: nullable string
The content that is placed before the item name for each row.
-
-default_ui.suffix
------------------
+## default_ui.suffix
Type: nullable string
The content which is appended to each item name for each row.
-
-default_ui.style
-----------------
+## default_ui.style
Type: [Style][1]
Style for the default user interface.
-
-focus_ui.prefix
----------------
+## focus_ui.prefix
Type: nullable string
The string placed before the item name for a focused row.
-
-focus_ui.suffix
----------------
+## focus_ui.suffix
Type: nullable string
The string placed after the item name for a focused row.
-
-focus_ui.style
---------------
+## focus_ui.style
Type: [Style][1]
Style for focused elements.
-
-selection_ui.prefix
--------------------
+## selection_ui.prefix
Type: nullable string
The string that is placed before the item name for a selected row.
-
-selection_ui.suffix
--------------------
+## selection_ui.suffix
Type: nullable string
The string placed after the item name for a selected row.
-
-selection_ui.style
-------------------
+## selection_ui.style
Type: [Style][1]
Style for selected rows.
-
-focus_selection_ui.prefix
--------------------------
+## focus_selection_ui.prefix
Type: nullable string
The string placed before item name for a selected row that gets the focus.
-
-focus_selection_ui.suffix
--------------------------
+## focus_selection_ui.suffix
Type: nullable string
The string placed after the item name for a selected row that gets the focus.
-
-focus_selection_ui.style
-------------------------
+## focus_selection_ui.style
Type: [Style][1]
Style for a selected row that gets the focus.
-
-sort_and_filter_ui.separator.format
------------------------------------
+## sort_and_filter_ui.separator.format
Type: nullable string
The shape of the separator for the `Sort & filter` panel.
-
-sort_and_filter_ui.separator.style
-----------------------------------
+## sort_and_filter_ui.separator.style
Type: [Style][1]
-Style for `Sort & filter` panel separator.
-
+Style for `Sort & filter` panel separator.
-sort_and_filter_ui.default_identifier.format
---------------------------------------------
+## sort_and_filter_ui.default_identifier.format
Type: nullable string
The content of the default identifier in `Sort & filter` panel.
-sort_and_filter_ui.default_identifier.style
--------------------------------------------
+## sort_and_filter_ui.default_identifier.style
Type: [Style][1]
Style for the default identifier in `Sort & filter` panel.
-
-sort_and_filter_ui.filter_identifiers
--------------------------------------
+## sort_and_filter_ui.filter_identifiers
Type: Table with [filter name][8] as key
-The value contains format field (string) and style field (Style), that define the content and style for the given filter.
+The value contains format field (string) and style field (Style), that define
+the content and style for the given filter.
Example:
+
```lua
-xplr.config.general.sort_and_filter_ui.filter_identifiers = {
- AbsolutePathDoesContain = {
- format = "abs=~",
- style = { add_modifiers = { "Bold" }, bg = nil, fg = nil, sub_modifiers = nil },
- }
+xplr.config.general.sort_and_filter_ui.filter_identifiers.AbsolutePathDoesContain = {
+ format = "abs=~",
+ style = { add_modifiers = { "Bold" }, bg = nil, fg = nil, sub_modifiers = nil },
}
```
-
-sort_and_filter_ui.sort_direction_identifiers.forward.format
-------------------------------------------------------------
+## sort_and_filter_ui.sort_direction_identifiers.forward.format
Type: nullable string
-The shape of the forward direction indicator for sort identifiers in `Sort & filter` panel.
+The shape of the forward direction indicator for sort identifiers in
+`Sort & filter` panel.
-
-sort_and_filter_ui.sort_direction_identifiers.forward.style
-------------------------------------------------------------
+## sort_and_filter_ui.sort_direction_identifiers.forward.style
Type: [Style][1]
Style of forward direction indicator.
-
-sort_and_filter_ui.sort_direction_identifiers.reverse.format
-------------------------------------------------------------
+## sort_and_filter_ui.sort_direction_identifiers.reverse.format
Type: nullable string
-The shape of the reverse direction indicator for sort identifiers in `Sort & filter` panel.
+The shape of the reverse direction indicator for sort identifiers in
+`Sort & filter` panel.
-
-sort_and_filter_ui.sort_direction_identifiers.reverse.style
------------------------------------------------------------
+## sort_and_filter_ui.sort_direction_identifiers.reverse.style
Type: [Style][1]
Style of reverse direction indicator.
-
-sort_and_filter_ui.sorter_identifiers
--------------------------------------
+## sort_and_filter_ui.sorter_identifiers
Type: Table with [sorter name][9] as key
-The value contains format field (string) and style field (Style), that define the content and style for the given sorter.
+The value contains format field (string) and style field (Style), that define
+the content and style for the given sorter.
Example:
+
```lua
-sort_and_filter_ui.sorter_identifiers = {
- ByCanonicalAbsolutePath = {
- format = "[c]abs",
- style = { add_modifiers = nil, bg = nil, fg = "Yellow", sub_modifiers = nil },
- }
-}
+sort_and_filter_ui.sorter_identifiers.ByCanonicalAbsolutePath = {
+ format = "[c]abs",
+ style = { add_modifiers = nil, bg = nil, fg = "Yellow", sub_modifiers = nil },
+}
```
-panel_ui.default.borders
-------------------------
+## panel_ui.default.borders
-Type: nullable List of strings
+Type: nullable list of strings
Defines where to show borders for the panels.
-The possible values are any combination of: "Top", "Bottom", "Left" and "Right".
+The possible values are any combination of: "Top", "Bottom", "Left" and
+"Right".
Example:
+
```lua
-- Show Left and Right borders only
xplr.config.general.panel_ui.default.borders = {
@@ -476,172 +379,138 @@ xplr.config.general.panel_ui.default.borders = {
}
```
-
-panel_ui.default.style
-----------------------
+## panel_ui.default.style
Type: [Style][1]
Default style for panels.
-
-panel_ui.default.title.format
------------------------------
+## panel_ui.default.title.format
Type: nullable string
The content for panel title.
-
-panel_ui.default.title.style
-----------------------------
+## panel_ui.default.title.style
Type: [Style][1]
Style for panel title.
-panel_ui.help_menu.borders
---------------------------
+## panel_ui.help_menu.borders
-Type: nullable List of strings
+Type: nullable list of strings
Defines where to show borders for the `Help` panel.
-The possible values are any combination of: "Top", "Bottom", "Left" and "Right".
-
+The possible values are any combination of: "Top", "Bottom", "Left" and
+"Right".
-panel_ui.help_menu.style
-------------------------
+## panel_ui.help_menu.style
Type: [Style][1]
Style for `Help` panel.
-
-panel_ui.help_menu.title.format
--------------------------------
+## panel_ui.help_menu.title.format
Type: nullable string
The content for `Help` panel title.
-panel_ui.help_menu.title.style
--------------------------------
+## panel_ui.help_menu.title.style
Type: [Style][1]
Style for `Help` panel title.
+## panel_ui.input_and_logs.borders
-panel_ui.input_and_logs.borders
--------------------------------
-
-Type: nullable List of strings
+Type: nullable list of strings
Defines where to show borders for the `Input` & `Logs` panel.
-The possible values are any combination of: "Top", "Bottom", "Left" and "Right".
+The possible values are any combination of: "Top", "Bottom", "Left" and
+"Right".
-
-panel_ui.input_and_logs.style
------------------------------
+## panel_ui.input_and_logs.style
Type: [Style][1]
Style for `Input` & `Logs` panel.
-
-panel_ui.input_and_logs.title.format
-------------------------------------
+## panel_ui.input_and_logs.title.format
Type: nullable string
The content for the `Input` and `Logs` panel title.
-
-panel_ui.input_and_logs.title.style
------------------------------------
+## panel_ui.input_and_logs.title.style
Type: [Style][1]
Style for `Input` & `Logs` panel title.
+## panel_ui.selection.borders
-panel_ui.selection.borders
---------------------------
-
-Type: nullable List of strings
+Type: nullable list of strings
Defines where to show borders for the `Selection` panel.
-The possible values are any combination of: "Top", "Bottom", "Left" and "Right".
+The possible values are any combination of: "Top", "Bottom", "Left" and
+"Right".
-
-panel_ui.selection.style
-------------------------
+## panel_ui.selection.style
Type: [Style][1]
Style for `Selection` panel.
-
-
-panel_ui.selection.title.format
--------------------------------
+## panel_ui.selection.title.format
Type: nullable string
The content for `Selection` panel title.
-
-panel_ui.selection.title.style
-------------------------------
+## panel_ui.selection.title.style
Type: [Style][1]
Style for `Selection` panel title.
-
-panel_ui.sort_and_filter.borders
---------------------------------
+## panel_ui.sort_and_filter.borders
Type: nullable list of strings
Defines where to show borders for the `Sort & filter` panel.
-The possible values are any combination of: "Top", "Bottom", "Left" and "Right".
+The possible values are any combination of: "Top", "Bottom", "Left" and
+"Right".
-
-panel_ui.sort_and_filter.style
-------------------------------
+## panel_ui.sort_and_filter.style
Type: [Style][1]
Style for `Sort & filter` panel.
-panel_ui.sort_and_filter.title.format
--------------------------------------
+## panel_ui.sort_and_filter.title.format
Type: nullable string
The content for `Sort & filter` panel title.
-
-panel_ui.sort_and_filter.title.style
-------------------------------------
+## panel_ui.sort_and_filter.title.style
Type: [Style][1]
Style for `Sort & filter` panel title.
-
-
-[1]:style.md
-[2]:layouts.md
-[3]:modes.md
-[4]:sorting.md#node-sorter-applicable
-[5]:layouts.md#constraint
-[6]:#tableheadercols
-[7]:column-renderer.md
-[8]:filtering.md#filter
-[9]:sorting.md#sorter
+[1]: style.md
+[2]: layouts.md
+[3]: modes.md
+[4]: sorting.md#node-sorter-applicable
+[5]: layouts.md#constraint
+[6]: #tableheadercols
+[7]: column-renderer.md
+[8]: filtering.md#filter
+[9]: sorting.md#sorter
diff --git a/docs/en/src/install.md b/docs/en/src/install.md
index 44af76c..bebe658 100644
--- a/docs/en/src/install.md
+++ b/docs/en/src/install.md
@@ -1,5 +1,4 @@
-Try in Docker
-=============
+# Try in Docker
If you prefer to try it before installing, here's the snipper for your
convenience.
@@ -14,9 +13,7 @@ docker run -w / -it --rm ubuntu sh -uec '
'
```
-
-Install
-=======
+# Install
You can install xplr using one of the following ways. Each has their own
advantages and limitations.
@@ -30,16 +27,13 @@ available.
One way to keep an eye on the releases is to
[watch the repository][4].
-
-Community Maintained Repositories
----------------------------------
+## Community Maintained Repositories
xplr can be installed from one of the following community maintained
repositories:
[![packaging status][5]][6]
-
### Arch Linux
#### [Official Community Repo][7]
@@ -127,9 +121,7 @@ cd /usr/pkgsrc/sysutils/xplr
make install
```
-
-Direct Download
----------------
+## Direct Download
One can directly download the standalone binary from the
[releases][15].
@@ -154,9 +146,7 @@ tar xzvf xplr-$platform.tar.gz
sudo mv xplr /usr/local/bin/
```
-
-From [crates.io][18]
------------------------------------------------
+## From [crates.io][18]
Prerequisites:
@@ -170,9 +160,7 @@ Command-line instructions:
cargo install --locked --force xplr
```
-
-Build From Source
------------------
+## Build From Source
Prerequisites:
@@ -195,9 +183,7 @@ cargo build --locked --release --bin xplr
sudo cp target/release/xplr /usr/local/bin/
```
-
-Android
--------
+## Android
### [Termux][23]
@@ -238,29 +224,28 @@ Android
~/.cargo/bin/xplr
```
-
-[1]:#direct-download
-[2]:#from-a-hrefhttpscratesiocratesxplrcratesioa
-[3]:#build-from-source
-[4]:https://github.com/sayanarijit/xplr/watchers
-[5]:https://repology.org/badge/vertical-allrepos/xplr.svg
-[6]:https://repology.org/project/xplr/versions
-[7]:https://archlinux.org/packages/community/x86_64/xplr
-[8]:https://aur.archlinux.org/packages/?O=0&SeB=n&K=xplr&outdated=&SB=n&SO=a&PP=50&do_Search=Go
-[9]:https://github.com/shubham-cpp/void-pkg-templates
-[10]:https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/misc/xplr
-[11]:https://ports.macports.org/port/xplr
-[12]:https://formulae.brew.sh/formula/xplr
-[13]:https://cgit.freebsd.org/ports/plain/misc/xplr/
-[14]:https://pkgsrc.se/sysutils/xplr
-[15]:https://github.com/sayanarijit/xplr/releases
-[16]:https://github.com/sayanarijit/xplr/releases/latest/download/xplr-linux.tar.gz
-[17]:https://github.com/sayanarijit/xplr/releases/latest/download/xplr-macos.tar.gz
-[18]:https://crates.io/crates/xplr
-[19]:https://www.rust-lang.org/tools/install
-[20]:https://gcc.gnu.org/
-[21]:https://www.gnu.org/software/make/
-[22]:https://git-scm.com/
-[23]:https://termux.com/
-[24]:https://s3.gifyu.com/images/xplr-termuxfd3c398d3cf4bcbc.md.jpg
-[25]:https://gifyu.com/image/tF2D
+[1]: #direct-download
+[2]: #from-a-hrefhttpscratesiocratesxplrcratesioa
+[3]: #build-from-source
+[4]: https://github.com/sayanarijit/xplr/watchers
+[5]: https://repology.org/badge/vertical-allrepos/xplr.svg
+[6]: https://repology.org/project/xplr/versions
+[7]: https://archlinux.org/packages/community/x86_64/xplr
+[8]: https://aur.archlinux.org/packages/?O=0&SeB=n&K=xplr&outdated=&SB=n&SO=a&PP=50&do_Search=Go
+[9]: https://github.com/shubham-cpp/void-pkg-templates
+[10]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/misc/xplr
+[11]: https://ports.macports.org/port/xplr
+[12]: https://formulae.brew.sh/formula/xplr
+[13]: https://cgit.freebsd.org/ports/plain/misc/xplr/
+[14]: https://pkgsrc.se/sysutils/xplr
+[15]: https://github.com/sayanarijit/xplr/releases
+[16]: https://github.com/sayanarijit/xplr/releases/latest/download/xplr-linux.tar.gz
+[17]: https://github.com/sayanarijit/xplr/releases/latest/download/xplr-macos.tar.gz
+[18]: https://crates.io/crates/xplr
+[19]: https://www.rust-lang.org/tools/install
+[20]: https://gcc.gnu.org/
+[21]: https://www.gnu.org/software/make/
+[22]: https://git-scm.com/
+[23]: https://termux.com/
+[24]: https://s3.gifyu.com/images/xplr-termuxfd3c398d3cf4bcbc.md.jpg
+[25]: https://gifyu.com/image/tF2D
diff --git a/docs/en/src/installing-plugins.md b/docs/en/src/installing-plugins.md
index 45b05be..25359fa 100644
--- a/docs/en/src/installing-plugins.md
+++ b/docs/en/src/installing-plugins.md
@@ -1,5 +1,4 @@
-Installing Plugins
-==================
+# Installing Plugins
Until we get a cool plugin manager, let's install plugins manually using the
following procedure:
@@ -25,4 +24,4 @@ following procedure:
-- The setup arguments might differ for different plugins.
-- Visit the project README for setup instructions.
- ```
\ No newline at end of file
+ ```
diff --git a/docs/en/src/integration.md b/docs/en/src/integration.md
index 8b13d05..1cba8f8 100644
--- a/docs/en/src/integration.md
+++ b/docs/en/src/integration.md
@@ -1,10 +1,8 @@
-Integration
-===========
+# Integration
xplr is designed to integrate well with other tools and commands. It can be
used as a file picker or a pluggable file manager.
- [Awesome Integrations][1]
-
-[1]:awesome-integrations.md
\ No newline at end of file
+[1]: awesome-integrations.md
diff --git a/docs/en/src/introduction.md b/docs/en/src/introduction.md
index 5d9108d..4251f0c 100644
--- a/docs/en/src/introduction.md
+++ b/docs/en/src/introduction.md
@@ -1,5 +1,4 @@
-Introduction
-============
+# Introduction
xplr is a terminal UI based file explorer that aims to increase our terminal
productivity by being a flexible, interactive orchestrator for the ever growing
@@ -14,9 +13,7 @@ intuitive, scriptable, keyboard controlled, real-time visual interface, also
being an ideal candidate for further integration, enabling the users to achieve
insane terminal productivity.
-
-Features
---------
+## Features
### Hackable
@@ -29,7 +26,6 @@ A few things you can do with the xplr configuration
- [Hack the key bindings][2]
- [Extend with plugins][3]
-
## Fast
Although speed is not the primary concern, xplr is already fast enough so that
@@ -46,7 +42,6 @@ because I am waiting for someone to complain. I want to avoid optimizing things
I don't need to, because optimization often requires either complexity or
feature sacrifice or both.
-
## Minimalist
xplr prefers to stay minimal, both in terms of features and binary size, but
@@ -56,7 +51,6 @@ little more productive or allows xplr to be a little more configurable, it will
be considered. But of-course, the `bulk vs productivity gain per user` balance
will also be considered in the decision-making.
-
## Other features
- [Embedded LuaJIT][5] for
@@ -113,10 +107,9 @@ will also be considered in the decision-making.
(`:` `q` `s`).
- Quit with failure (`ctrl-c`).
-
-[1]:layouts.md
-[2]:modes.md
-[3]:awesome-plugins.md
-[4]:https://github.com/sayanarijit/xplr/tree/main/benches
-[5]:https://github.com/sayanarijit/xplr/discussions/183
-[6]:https://github.com/sayanarijit/xplr/pull/229
\ No newline at end of file
+[1]: layouts.md
+[2]: modes.md
+[3]: awesome-plugins.md
+[4]: https://github.com/sayanarijit/xplr/tree/main/benches
+[5]: https://github.com/sayanarijit/xplr/discussions/183
+[6]: https://github.com/sayanarijit/xplr/pull/229
diff --git a/docs/en/src/key-bindings.md b/docs/en/src/key-bindings.md
index 9bd82af..fc333e3 100644
--- a/docs/en/src/key-bindings.md
+++ b/docs/en/src/key-bindings.md
@@ -1 +1 @@
-# Key Bindings
\ No newline at end of file
+# Key Bindings
diff --git a/docs/en/src/modes.md b/docs/en/src/modes.md
index 3c4701e..03a1bdf 100644
--- a/docs/en/src/modes.md
+++ b/docs/en/src/modes.md
@@ -1,5 +1,4 @@
-Modes
-=====
+# Modes
xplr is a modal file explorer. That means the users switch between different
modes, each containing a different set of key bindings to avoid clashes. Users
@@ -12,9 +11,7 @@ It contains the following fields:
- [builtin][1]
- [custom][2]
-
-builtin
--------
+## builtin
Type: mapping of string and [Mode][3]
@@ -44,9 +41,7 @@ xplr by default provides the following builtin modes:
Visit the [Default Key Bindings][4] to see what each mode
does.
-
-custom
-------
+## custom
Type: mapping of string and [Mode][3]
@@ -78,9 +73,7 @@ xplr.config.general.initial_mode = "example"
-- pressing "enter" should take you to the "default" mode.
```
-
-Mode
-----
+## Mode
A mode contains the following information:
@@ -122,9 +115,7 @@ Type: nullable [Layout][30]
If specified, this layout will be used to render the UI.
-
-Key Bindings
-------------
+## Key Bindings
Key bindings define how each keyboard input will be handled in a specific mode.
@@ -173,9 +164,7 @@ Default action to perform in case of a keyboard input not mapped via any of the
[on_key][10], [on_alphabet][11], [on_number][12] or
[on_special_character][13] field.
-
-Key
----
+## Key
A key can be one of the following:
@@ -203,9 +192,7 @@ A key can be one of the following:
And finally, the special characters - including space (`" "`).
-
-Action
-------
+## Action
An action contains the following information:
@@ -225,9 +212,7 @@ Type: A list of [Message][18] to send.
The list of messages to send when a key is pressed.
-
-Tutorial: Adding a New Mode
----------------------------
+## Tutorial: Adding a New Mode
Assuming xplr is [installed][19] and [setup][20], let's
add our own mode to integrate xplr with [fzf][21].
@@ -296,38 +281,37 @@ Now let's try out the new `xplr`-`fzf` integration.
[![xplr-fzf.gif][25]][26]
------
+---
Visit [Awesome Plugins][27] for more [integration][28] options.
-
-[1]:#builtin
-[2]:#custom
-[3]:#mode
-[4]:default-key-bindings.md
-[5]:#name
-[6]:#help
-[7]:#extra_help
-[8]:#key_bindings
-[9]:#key-bindings
-[10]:#on_key
-[11]:#on_alphabet
-[12]:#on_number
-[13]:#on_special_character
-[14]:#default
-[15]:#key
-[16]:#action
-[17]:#messages
-[18]:message.md
-[19]:install.md
-[20]:post-install.md
-[21]:https://github.com/junegunn/fzf
-[22]:message.md#environment-variables
-[23]:message.md#input-pipe
-[24]:message.md#output-pipes
-[25]:https://s3.gifyu.com/images/xplr-fzf.gif
-[26]:https://gifyu.com/image/tW86
-[27]:awesome-plugins.md
-[28]:awesome-plugins.md#integration
-[29]:#layout
-[30]:layouts.md#Layout
+[1]: #builtin
+[2]: #custom
+[3]: #mode
+[4]: default-key-bindings.md
+[5]: #name
+[6]: #help
+[7]: #extra_help
+[8]: #key_bindings
+[9]: #key-bindings
+[10]: #on_key
+[11]: #on_alphabet
+[12]: #on_number
+[13]: #on_special_character
+[14]: #default
+[15]: #key
+[16]: #action
+[17]: #messages
+[18]: message.md
+[19]: install.md
+[20]: post-install.md
+[21]: https://github.com/junegunn/fzf
+[22]: message.md#environment-variables
+[23]: message.md#input-pipe
+[24]: message.md#output-pipes
+[25]: https://s3.gifyu.com/images/xplr-fzf.gif
+[26]: https://gifyu.com/image/tW86
+[27]: awesome-plugins.md
+[28]: awesome-plugins.md#integration
+[29]: #layout
+[30]: layouts.md#Layout
diff --git a/docs/en/src/node_types.md b/docs/en/src/node_types.md
index bf1ef6a..ee4753a 100644
--- a/docs/en/src/node_types.md
+++ b/docs/en/src/node_types.md
@@ -1,5 +1,4 @@
-Node Types
-==========
+# Node Types
This configuration defines how to deal with different kinds of nodes (files,
directories, symlinks etc.) in a directory.
@@ -23,7 +22,6 @@ The priority is:
**special** > **extension** > **mime_essence** > **symlink** > **file** > **directory**
-
### directory
Type: [NodeType Config][7]
@@ -39,7 +37,6 @@ xplr.config.node_types.directory.meta.icon = ""
xplr.config.node_types.directory.style.add_modifiers = { "Bold" }
```
-
### file
Type: [NodeType Config][7]
@@ -55,7 +52,6 @@ xplr.config.node_types.file.meta.icon = ""
xplr.config.node_types.file.style.fg = "White"
```
-
### symlink
Type: [NodeType Config][7]
@@ -69,7 +65,6 @@ xplr.config.node_types.symlink.meta.icon = ""
xplr.config.node_types.symlink.style.add_modifiers = { "Italic" }
```
-
### mime_essence
Type: mapping of mime-type and mapping of mime-subtype and [NodeType Config][7]
@@ -86,7 +81,7 @@ xplr.config.node_types.mime_essence = {
application = {
-- application/*
["*"] = { meta = { icon = "a" } }
-
+
-- application/pdf
pdf = { meta = { icon = "" } },
@@ -123,9 +118,7 @@ xplr.config.node_types.special["Cargo.toml"] = { meta = { icon = "" } }
xplr.config.node_types.special["Downloads"] = { meta = { icon = "" } }
```
-
-NodeType Config
----------------
+## NodeType Config
A node-type config contains the following fields:
@@ -151,13 +144,12 @@ xplr.config.node_types.file = {
}
```
-
-[1]:#directory
-[2]:#file
-[3]:#symlink
-[4]:#mime_essence
-[5]:#extension
-[6]:#special
-[7]:#nodetype-config
-[8]:#meta
-[9]:style.md
\ No newline at end of file
+[1]: #directory
+[2]: #file
+[3]: #symlink
+[4]: #mime_essence
+[5]: #extension
+[6]: #special
+[7]: #nodetype-config
+[8]: #meta
+[9]: style.md
diff --git a/docs/en/src/plugin.md b/docs/en/src/plugin.md
index 21ac2a1..3e6aa71 100644
--- a/docs/en/src/plugin.md
+++ b/docs/en/src/plugin.md
@@ -1,5 +1,4 @@
-Plugin
-======
+# Plugin
xplr supports pluggable Lua modules that can be used to easily configure or
extend xplr UI and functionalities.
@@ -8,7 +7,6 @@ extend xplr UI and functionalities.
- [Writing Plugins][2]
- [Awesome Plugins][3]
-
-[1]:installing-plugins.md
-[2]:writing-plugins.md
-[3]:awesome-plugins.md
\ No newline at end of file
+[1]: installing-plugins.md
+[2]: writing-plugins.md
+[3]: awesome-plugins.md
diff --git a/docs/en/src/post-install.md b/docs/en/src/post-install.md
index 7ab05e4..96da3c4 100644
--- a/docs/en/src/post-install.md
+++ b/docs/en/src/post-install.md
@@ -1,10 +1,8 @@
-Post Install
-============
+# Post Install
Once [installed][1], use the following steps to setup and run xplr.
-Create the customizable config file
------------------------------------
+## Create the customizable config file
```bash
mkdir -p ~/.config/xplr
@@ -28,15 +26,12 @@ and remove / comment out what you don't want to customize.
> Also, the default configuration is meant to be overwritten to suit your
> workflow.
-
-Run
----
+## Run
```
xplr
```
-
-[1]:install.md
-[2]:https://github.com/sayanarijit/xplr/blob/main/src/init.lua
-[3]:upgrade-guide.md
\ No newline at end of file
+[1]: install.md
+[2]: https://github.com/sayanarijit/xplr/blob/main/src/init.lua
+[3]: upgrade-guide.md
diff --git a/docs/en/src/quickstart.md b/docs/en/src/quickstart.md
index 3cab8dc..8384f30 100644
--- a/docs/en/src/quickstart.md
+++ b/docs/en/src/quickstart.md
@@ -1,5 +1,4 @@
-Quickstart
-==========
+# Quickstart
Nice to you have here! Let's quickly start our xplr journey with the
following steps:
@@ -7,6 +6,5 @@ following steps:
- [Install][1]
- [Post Install][2]
-
-[1]:install.md
-[2]:post-install.md
\ No newline at end of file
+[1]: install.md
+[2]: post-install.md
diff --git a/docs/en/src/sorting.md b/docs/en/src/sorting.md
index 21b2b23..348b82e 100644
--- a/docs/en/src/sorting.md
+++ b/docs/en/src/sorting.md
@@ -1,5 +1,4 @@
-Sorting
-=======
+# Sorting
xplr supports sorting paths by different properties. The sorting mechanism
works like a pipeline, which in visible in the `Sort & filter` panel.
@@ -19,16 +18,13 @@ The arrows denote the order.
Each part of this pipeline is called [Node Sorter Applicable][1].
-
-Node Sorter Applicable
-----------------------
+## Node Sorter Applicable
It contains the following information:
- [sorter][2]
- [reverse][3]
-
### sorter
A sorter can be one of the following:
@@ -62,16 +58,13 @@ A sorter can be one of the following:
TODO: document each
-
### reverse
Type: boolean
It defined the direction of the order.
-
-Example
--------
+## Example
```lua
xplr.config.general.initial_sorting = {
@@ -82,7 +75,6 @@ xplr.config.general.initial_sorting = {
This snippet defines the initial sorting logic to be applied when xplr loads.
-
-[1]:#node-sorter-applicable
-[2]:#sorter
-[3]:#reverse
\ No newline at end of file
+[1]: #node-sorter-applicable
+[2]: #sorter
+[3]: #reverse
diff --git a/docs/en/src/style.md b/docs/en/src/style.md
index 7910aa3..23ce1f8 100644
--- a/docs/en/src/style.md
+++ b/docs/en/src/style.md
@@ -1,5 +1,4 @@
-Style
-=====
+# Style
A style object contains the following information:
@@ -14,30 +13,25 @@ Type: nullable [Color][5]
The foreground color.
-
### bg
Type: nullable [Color][5]
The background color.
-
### add_modifiers
Type: nullable list of [Modifier][6]
Modifiers to add.
-
### sub_modifiers
Type: nullable list of [Modifier][6]
Modifiers to remove.
-
-Color
------
+## Color
Color can be one of the following:
@@ -61,9 +55,7 @@ Color can be one of the following:
- { Rgb = { int, int, int } }
- { Indexed = int }
-
-Modifier
---------
+## Modifier
Modifier can be one of the following:
@@ -77,9 +69,7 @@ Modifier can be one of the following:
- "Hidden"
- "CrossedOut"
-
-Example
--------
+## Example
```lua
xplr.config.general.cursor.style.fg = "Red"
@@ -88,10 +78,9 @@ xplr.config.general.cursor.style.add_modifiers = { "Bold", "Italic" }
xplr.config.general.cursor.style.sub_modifiers = { "Hidden" }
```
-
-[1]:#fg
-[2]:#bg
-[3]:#add_modifiers
-[4]:#sub_modifiers
-[5]:#color
-[6]:#modifier
\ No newline at end of file
+[1]: #fg
+[2]: #bg
+[3]: #add_modifiers
+[4]: #sub_modifiers
+[5]: #color
+[6]: #modifier
diff --git a/docs/en/src/todo.md b/docs/en/src/todo.md
index 68c2985..4c98d65 100644
--- a/docs/en/src/todo.md
+++ b/docs/en/src/todo.md
@@ -1,5 +1,4 @@
-TODO
-====
+# TODO
- [x] Saner key bindings.
- [x] Pipes.
@@ -27,10 +26,9 @@ TODO
Like this project so far? **[Please consider contributing][6].**
-
-[1]:https://github.com/sayanarijit/xplr/wiki/Hacks#spawn-multiple-sessions-in-different-windows
-[2]:https://github.com/sayanarijit/xplr/discussions/15
-[3]:https://github.com/sayanarijit/xplr/wiki/Hacks#bookmark
-[4]:https://github.com/sayanarijit/xplr.vim
-[5]:https://github.com/sayanarijit/xplr/discussions/2
-[6]:contribute.md
+[1]: https://github.com/sayanarijit/xplr/wiki/Hacks#spawn-multiple-sessions-in-different-windows
+[2]: https://github.com/sayanarijit/xplr/discussions/15
+[3]: https://github.com/sayanarijit/xplr/wiki/Hacks#bookmark
+[4]: https://github.com/sayanarijit/xplr.vim
+[5]: https://github.com/sayanarijit/xplr/discussions/2
+[6]: contribute.md
diff --git a/docs/en/src/writing-plugins.md b/docs/en/src/writing-plugins.md
index e13b810..cd348f6 100644
--- a/docs/en/src/writing-plugins.md
+++ b/docs/en/src/writing-plugins.md
@@ -1,20 +1,15 @@
-Writing Plugins
-===============
+# Writing Plugins
Anyone who can write [Lua][1] code, can write xplr plugins.
Just follow the instructions and best practices:
-
-Naming
-------
+## Naming
xplr plugins are named using hiphen (`-`) separated words that may also include
integers. They will be plugged using the `require()` function in Lua.
-
-Structure
----------
+## Structure
A minimal plugin should confirm to the following structure:
@@ -28,7 +23,6 @@ plugin-name
You can also use
[this template][2].
-
### README.md
This is where you document what the plugin does, how to use it, etc.
@@ -49,8 +43,7 @@ end
return { setup = setup }
```
-Publishing
-----------
+## Publishing
When publishing plugins on GitHub or other repositories, it's a best practice
to append `.xplr` to the name to make them distinguishable. Similar to the
@@ -59,15 +52,11 @@ to append `.xplr` to the name to make them distinguishable. Similar to the
Finally, after publishing, don't hesitate to
[let us know][4].
-
-Examples
---------
+## Examples
Visit [Awesome Plugins][5] for xplr plugin examples.
-
-Also See
---------
+## Also See
- [Tutorial: Adding a New Mode][6]
- [Example: Using Environment Variables and Pipes][7]
@@ -76,15 +65,14 @@ Also See
- [Example: Customizing Table Renderer][10]
- [Example: Render a custom dynamic table][11]
-
-[1]:https://www.lua.org
-[2]:https://github.com/sayanarijit/plugin-template1.xplr
-[3]:https://neovim.io
-[4]:https://github.com/sayanarijit/xplr/discussions/categories/show-and-tell
-[5]:awesome-plugins.md
-[6]:modes.md#tutorial-adding-a-new-mode
-[7]:message.md#example-using-environment-variables-and-pipes
-[8]:message.md#example-using-lua-function-calls
-[9]:layouts.md#example-defining-custom-layout
-[10]:column-renderer.md#example-customizing-table-renderer
-[11]:layouts.md#example-render-a-custom-dynamic-table
+[1]: https://www.lua.org
+[2]: https://github.com/sayanarijit/plugin-template1.xplr
+[3]: https://neovim.io
+[4]: https://github.com/sayanarijit/xplr/discussions/categories/show-and-tell
+[5]: awesome-plugins.md
+[6]: modes.md#tutorial-adding-a-new-mode
+[7]: message.md#example-using-environment-variables-and-pipes
+[8]: message.md#example-using-lua-function-calls
+[9]: layouts.md#example-defining-custom-layout
+[10]: column-renderer.md#example-customizing-table-renderer
+[11]: layouts.md#example-render-a-custom-dynamic-table