aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2023-10-13 13:14:06 -0700
committerKaz Kylheku <kaz@kylheku.com>2023-10-13 13:14:06 -0700
commit74f1b72891965cd4803e0d372c72d1a56ecb8de8 (patch)
tree470dc399d8e966984160c8ca70cb98eb841c2219
parentcad433e0d63913b9a151cb21189c803153a857dc (diff)
downloadmnpgr-74f1b72891965cd4803e0d372c72d1a56ecb8de8.tar.gz
mnpgr-74f1b72891965cd4803e0d372c72d1a56ecb8de8.tar.bz2
mnpgr-74f1b72891965cd4803e0d372c72d1a56ecb8de8.zip
First version.
-rwxr-xr-xmnpgr.tl27
1 files changed, 27 insertions, 0 deletions
diff --git a/mnpgr.tl b/mnpgr.tl
new file mode 100755
index 0000000..af3541b
--- /dev/null
+++ b/mnpgr.tl
@@ -0,0 +1,27 @@
+#!/usr/bin/env txr
+
+(defvarl home-dir (getenv "HOME"))
+
+(defvarl mnpgr-dir (path-cat home-dir ".mnpgr-dir"))
+
+(defvarl vim-commands
+ (join-with "|"
+ '("hi def link CtrlHUnderline Special"
+ "hi def link CtrlHBold Keyword"
+ "set syntax=ctrlh"
+ "syntax match CtrlHHide /.\\b/ contained conceal"
+ "set conceallevel=2"
+ "set concealcursor=nc"
+ "map q :q!\r")))
+
+(ensure-dir mnpgr-dir)
+
+(match @(or `@page(@section)` ;; for "man whatever"
+ `@page\\.@section`) ;; for "man -l file.1"
+ (getenv "MAN_PN")
+ (with-resources ((rendered-file (path-cat mnpgr-dir `@page.@section`)
+ (remove-path rendered-file)))
+ (with-stream (s (open-file rendered-file "w"))
+ (whilet ((line (get-line)))
+ (put-line line s)))
+ (sh `vim +'@{vim-commands}' '@{rendered-file}' < /dev/tty`)))