From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris McMahan Subject: Re: w3m integration for yanking w3m buffers into org Date: Fri, 10 Oct 2008 08:45:05 -0400 Message-ID: <18671.20049.293000.100499@gargle.gargle.HOWL> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KoHMT-00017J-RH for emacs-orgmode@gnu.org; Fri, 10 Oct 2008 08:44:53 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KoHMT-00016i-5F for emacs-orgmode@gnu.org; Fri, 10 Oct 2008 08:44:53 -0400 Received: from [199.232.76.173] (port=38133 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KoHMT-00016e-0a for emacs-orgmode@gnu.org; Fri, 10 Oct 2008 08:44:53 -0400 Received: from mail2.panix.com ([166.84.1.73]:53560) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KoHMS-0005fY-Dn for emacs-orgmode@gnu.org; Fri, 10 Oct 2008 08:44:52 -0400 In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Richard Riley Cc: org-mode Speaking of email and org, has anyone else experienced problems with linking to VM mail messages through remember? I have yet to get the proper email to show up when following the links. - Chris Richard Riley writes: > >I'm not fully aware of the steps needed to integrate new stuff but for >those using gnus and w3m to read html emails or newsletters then the >following code might interest you for saving portions into org >tasks/items. Let me know if there are any issues - it works well for me! > >I have the first code saved as manatee.el and "require" it in. > >r. > >,---- >| ;; Code to integrate the w3m article buffer in gnus with org-mode. >| ;; Kudos to Andy Stewart (ManateeLazyCat on #emacs IRC) for provding >| ;; the code following a request. Can now paste w3m regions showing html >| ;; emails and newsletters directly into org-mode buffers with the URLs >| ;; transformed into org links. There is a default M-w key binding included. >| ;; >| ;; manatee.el for now prior to any integration. >| ;; >| ;; Oct 2008, rgr. >| >| (defun w3m-get-buffer-with-org-style () >| "Get current buffer content with `org-mode' style. >| This function will encode `link-title' and `link-location' with `org-make-link-string'. >| And move buffer content to lastest of kill ring. >| So you can yank in `org-mode' buffer to get `org-mode' style content." >| (interactive) >| (let (transform-start >| transform-end >| return-content >| link-location >| link-title) >| (if mark-active >| (progn >| (setq transform-start (region-beginning)) >| (setq transform-end (region-end)) >| (deactivate-mark)) >| (progn >| (setq transform-start (point-min)) >| (setq transform-end (point-max)))) >| (message "Start transform link to `org-mode' style, please wait...") >| (save-excursion >| (goto-char transform-start) >| ;; (goto-char (point-min)) >| (while (and (< (point) transform-end) >| (not (w3m-no-next-link-p))) ;if have next link in current buffer >| (if (not (w3m-anchor (point))) ;don't move when current point have a valid url >| ;; get content between two links. >| (setq return-content (concat return-content (buffer-substring (point) (w3m-get-next-link-start))))) >| ;; get link location at current point. >| (setq link-location (w3m-anchor (point))) >| ;; get link title at current point. >| (setq link-title (buffer-substring (point) (w3m-get-anchor-end))) >| ;; concat `org-mode' style url to `return-content'. >| (setq return-content (concat return-content (org-make-link-string link-location link-title)))) >| ;; concat rest context of current buffer >| (setq return-content (concat return-content (buffer-substring (point) transform-end))) >| (kill-new return-content) >| (message "Transform link completed. You can get it from lastest kill ring.")))) >| >| (defun w3m-get-anchor-start () >| "Move and return `point' for thst start of the current anchor." >| (interactive) >| (goto-char (or (previous-single-property-change (point) 'w3m-anchor-sequence) ;get start position of anchor >| (point))) ;or current point >| (point)) >| >| (defun w3m-get-anchor-end () >| "Move and return `point' after the end of current anchor." >| (interactive) >| (goto-char (or (next-single-property-change (point) 'w3m-anchor-sequence) ;get end position of anchor >| (point))) ;or current point >| (point)) >| >| (defun w3m-get-next-link-start () >| "Move and return `point' for that start of the current link." >| (interactive) >| (catch 'reach >| (while (next-single-property-change (point) 'w3m-anchor-sequence) ;jump to next anchor >| (goto-char (next-single-property-change (point) 'w3m-anchor-sequence)) >| (when (w3m-anchor (point)) ;return point when current is valid link >| (throw 'reach nil)))) >| (point)) >| >| (defun w3m-get-prev-link-start () >| "Move and return `point' for that end of the current link." >| (interactive) >| (catch 'reach >| (while (previous-single-property-change (point) 'w3m-anchor-sequence) ;jump to previous anchor >| (goto-char (previous-single-property-change (point) 'w3m-anchor-sequence)) >| (when (w3m-anchor (point)) ;return point when current is valid link >| (throw 'reach nil)))) >| (point)) >| >| >| (defun w3m-no-next-link-p () >| "Return t if no next link after cursor. >| Otherwise, return nil." >| (save-excursion >| (equal (point) (w3m-get-next-link-start)))) >| >| (defun w3m-no-prev-link-p () >| "Return t if no prevoius link after cursor. >| Otherwise, return nil." >| (save-excursion >| (equal (point) (w3m-get-prev-link-start)))) >| >| (define-key w3m-minor-mode-map (kbd "M-w") 'w3m-get-buffer-with-org-style) >| >| (provide 'manatee) >`---- > > >-- >It has become appallingly obvious that our technology has exceeded our humanity. ~Albert Einstein > > >_______________________________________________ >Emacs-orgmode mailing list >Remember: use `Reply All' to send replies to the list. >Emacs-orgmode@gnu.org >http://lists.gnu.org/mailman/listinfo/emacs-orgmode -- ================================ Chris McMahan | cmcmahan@one.net ================================