Commit Diff


commit - fab167acde0147cec826f1339ec1f356e2cec198
commit + 288b39c6d4a64e4c60d443fe43f2aa5f86a9c2c5
blob - 2456af85cc4252cb8a6e4e16239ac702f8fb86bc
blob + 381c9b9c23233ba3d3139b340781c4d63edbced6
--- wrd/tui.go
+++ wrd/tui.go
@@ -119,7 +119,7 @@ func (a *app) handle(b []byte) bool {
 		case c == 13 || c == 10: // enter
 			a.open()
 		case c == 15: // ctrl-o
-			a.openURL()
+			a.openDillo()
 		case c == 25: // ctrl-y
 			a.yank()
 		case c == 14: // ctrl-n
@@ -271,11 +271,26 @@ func (a *app) open() {
 	})
 }
 
-func (a *app) openURL() {
-	if m, ok := a.cur(); ok {
-		u := url(m.d.rel)
-		a.withExternal(func() { runTTY(exec.Command("cha", u)) })
+func (a *app) openDillo() {
+	m, ok := a.cur()
+	if !ok {
+		return
 	}
+	src := m.d.src
+	a.withExternal(func() {
+		if strings.HasSuffix(strings.ToLower(src), ".md") {
+			tmp, err := os.CreateTemp("", "wrd-*.html")
+			if err != nil {
+				return
+			}
+			defer func() { _ = os.Remove(tmp.Name()) }()
+			out, _ := exec.Command("lowdown", src).Output()
+			_, _ = tmp.Write(out)
+			_ = tmp.Close()
+			src = tmp.Name()
+		}
+		runTTY(exec.Command("dillo", src))
+	})
 }
 
 func (a *app) yank() {