[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/luwak 9341d7ac6b 01/28: initial commit
From: |
ELPA Syncer |
Subject: |
[elpa] externals/luwak 9341d7ac6b 01/28: initial commit |
Date: |
Tue, 25 Oct 2022 15:57:53 -0400 (EDT) |
branch: externals/luwak
commit 9341d7ac6b29bb599209297534ed65e1e4fc091b
Author: Yuchen Pei <hi@ypei.me>
Commit: Yuchen Pei <hi@ypei.me>
initial commit
---
luwak.el | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/luwak.el b/luwak.el
new file mode 100644
index 0000000000..4fd69d5af5
--- /dev/null
+++ b/luwak.el
@@ -0,0 +1,50 @@
+;; -*- lexical-binding: t; -*-
+(defvar luwak-buffer "*luwak*")
+(defun luwak-lynx-buffer (url) (format "*luwak-lynx %s*" url))
+
+(defun luwak-open (url)
+ (interactive "sUrl to open: ")
+ (setq url (eww--dwim-expand-url url))
+ (set-process-sentinel
+ (start-process-with-torsocks
+ current-prefix-arg
+ "luwak-lynx" (luwak-lynx-buffer url)
+ "lynx" "-dump" "--display_charset" "utf-8" url)
+ (lambda (process _)
+ (with-current-buffer (get-buffer-create luwak-buffer)
+ (erase-buffer)
+ (insert-buffer-substring (process-buffer process))
+ (kill-buffer (process-buffer process))
+ (goto-char (point-min))
+ (luwak-render-links (luwak-get-links)))
+ (display-buffer luwak-buffer))))
+
+(defun luwak-follow-link (marker)
+ (luwak-open
+ (get-text-property marker 'url)))
+
+(defun luwak-render-links (urls)
+ (with-current-buffer luwak-buffer
+ (save-excursion
+ (goto-char (point-min))
+ (let ((i 1))
+ (dolist (url urls)
+ (when (re-search-forward (format "\\[%d\\]" i) nil t)
+ (replace-match "")
+ (make-text-button (point) (1+ (point))
+ 'url url
+ 'action 'luwak-follow-link
+ 'face 'button))
+ (setq i (1+ i)))))))
+
+(defun luwak-get-links ()
+ (with-current-buffer luwak-buffer
+ (save-excursion
+ (goto-char (point-min))
+ (re-search-forward "^References\n\n\\(\\ *Visible links:\n\\)?")
+ (let ((results))
+ (while (re-search-forward "^\\ *\\([0-9]+\\)\\.\\ *\\(.*\\)$" nil t)
+ (push (match-string 2) results))
+ (reverse results)))))
+
+(provide 'luwak)
- [elpa] externals/luwak 3af6104fe5 13/28: make link render a user option and add dump to a file, (continued)
- [elpa] externals/luwak 3af6104fe5 13/28: make link render a user option and add dump to a file, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak e0408b2cb6 15/28: org store and capture, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak 05f5fef4bf 17/28: history and follow numbered link, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak 0c1b6e97ab 11/28: docstring minor, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak 8373015f75 21/28: Prepare for ELPA submission, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak 2d11ff50d6 25/28: toggle default tor switch., ELPA Syncer, 2022/10/25
- [elpa] externals/luwak aa846e8484 20/28: fixing some compiling error, as well as bugs, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak b86519f50b 06/28: updating docs about torsocks, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak 179461ba0e 14/28: adding link rendering toggle, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak 12692b1207 05/28: adding gitignore, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak 9341d7ac6b 01/28: initial commit,
ELPA Syncer <=
- [elpa] externals/luwak 39ac2162c5 02/28: adding luwak-mode, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak 4b0acd3441 09/28: moving luwak-mode-map definition to be above the mode definition, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak f08e3189eb 12/28: Caching dump for history nav, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak f12c63b8a5 16/28: render a dump buffer, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak 08855c83c4 24/28: minor wording, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak 96fec3bce0 23/28: minor rewording, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak 91764c44b9 22/28: updated readme, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak 9c95bcb74f 27/28: adding an example url rewrite function, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak ec97058718 28/28: minor docstring, ELPA Syncer, 2022/10/25
- [elpa] externals/luwak 544187e3e7 26/28: fixed a bug when no title could be guessed., ELPA Syncer, 2022/10/25