From mboxrd@z Thu Jan 1 00:00:00 1970 From: stardiviner Subject: Re: How to get parsed output of org-eww-copy-for-org-mode ? Date: Fri, 27 Dec 2019 09:35:30 +0800 Message-ID: <87pngaa6u5.fsf@gmail.com> References: <87lfr259jq.fsf@gmail.com> Reply-To: numbchild@gmail.com Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:41112) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ikeXQ-00007y-BI for emacs-orgmode@gnu.org; Thu, 26 Dec 2019 20:35:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ikeXP-0002cC-2v for emacs-orgmode@gnu.org; Thu, 26 Dec 2019 20:35:36 -0500 Received: from [183.246.146.61] (port=2190 helo=dark.localdomain) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ikeXN-0002ZV-3q for emacs-orgmode@gnu.org; Thu, 26 Dec 2019 20:35:34 -0500 In-reply-to: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Bob Newell Cc: Org Mode This is very interesting, thanks. I will reference your code. Bob Newell writes: > I don't seem to have any trouble with org-eww-copy-for-org-mode. I > capture with a capture template. The code below may be longer or more > than you want, but it works for me. > > My capture template is this: > > ("w" "Website" plain > (function org-website-clipper) > "* %a\n%T\n" :immediate-finish t) > > And it depends on the following code. > > (require 'ol-eww) > (require 'ol-w3m) > > ;;; Change this to suit: > (defvar org-website-page-archive-file "~/organize/website/websites.org") > (defun org-website-clipper () > "When capturing a website page, go to the right place in capture file, > but do sneaky things. Because it's a w3m or eww page, we go > ahead and insert the fixed-up page content, as I don't see a > good way to do that from an org-capture template alone. Requires > Emacs 25+ and the 2017-02-12 or later patched version of org-eww.el." > (interactive) > > ;;; Address the plague of trailing whitespace in some web buffers. > > (let ((buffer-read-only nil)) > (delete-trailing-whitespace)) > > ;;; Check for acceptable major mode (w3m or eww) and set up a couple of > ;;; browser specific values. Error if unknown mode. > > (cond > ((eq major-mode 'w3m-mode) > (org-w3m-copy-for-org-mode)) > ((eq major-mode 'eww-mode) > (org-eww-copy-for-org-mode)) > (t > (error "Not valid -- must be in w3m or eww mode"))) > > ;;; Check if we have a full path to the archive file. > ;;; Create any missing directories. > > (unless (file-exists-p org-website-page-archive-file) > (let ((dir (file-name-directory org-website-page-archive-file))) > (unless (file-exists-p dir) > (make-directory dir)))) > > ;; Open the archive file and yank in the content. > ;; Headers are fixed up later by org-capture. > > (find-file org-website-page-archive-file) > (goto-char (point-max)) > ;; Leave a blank line for org-capture to fill in > ;; with a timestamp, URL, etc. > (insert "\n\n") > ;; Insert the web content but keep our place. > (save-excursion (yank)) > ;; Don't keep the page info on the kill ring. > ;; Also fix the yank pointer. > (setq kill-ring (cdr kill-ring)) > (setq kill-ring-yank-pointer kill-ring) > ;; Final repositioning. > (forward-line -1) > ) -- [ stardiviner ] I try to make every word tell the meaning what I want to express. Blog: https://stardiviner.github.io/ IRC(freenode): stardiviner, Matrix: stardiviner GPG: F09F650D7D674819892591401B5DF1C95AE89AC3