From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?ISO-8859-1?Q?Jan_B=F6cker?= Subject: RFC: Syntax for page numbers in file: links? Date: Sun, 03 Jan 2010 01:42:43 +0100 Message-ID: <4B3FE803.6090400@jboecker.de> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NREYk-0003F9-Nc for emacs-orgmode@gnu.org; Sat, 02 Jan 2010 19:43:06 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NREYg-0003ET-6D for emacs-orgmode@gnu.org; Sat, 02 Jan 2010 19:43:06 -0500 Received: from [199.232.76.173] (port=53911 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NREYf-0003EP-VT for emacs-orgmode@gnu.org; Sat, 02 Jan 2010 19:43:02 -0500 Received: from mail7.worldserver.net ([217.13.200.27]:48806) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NREYf-00004s-8w for emacs-orgmode@gnu.org; Sat, 02 Jan 2010 19:43:01 -0500 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: Org Mode Hello List, During the discussion in the "protocol for PDFs?" thread, I realized that docview: links are an almost exact copy of file: links, the only single difference being that file: takes a line number and docview: links take a page number. Up until now, (docview:) links to PDF files have been the only link type known to me which took a page number. With the upcoming integration of Xournal and Org that Daniel M. German is working on, there will already be two of those. Daniel also wants to add org-store-link functionality to evince, so he needs a link type with page numbers for PDFs, too. I could (and have in a proof-of-concept version) modify org-docview.el to open PDFs with an external viewer, but I think what really should happen is the following: - We need a syntax to specify an (optional) page number for file: links, and make the line number optional as well. This might look something like this: - file:[:page][::line] - file:~/some-file.txt::23 some-file.txt, line 23 - file:~/document.pdf:4 document.pdf, page 4 - file:~/document.odf:3::5 document.odf, page 3, line 5 This is only what comes to my mind immediately about one possibility of encoding this. - org-docview-store-link should return links in the new syntax (e.g. file:~/some-doc.pdf:5 instead of docview:~/some-doc.pdf::5) - the same syntax could also be used to integrate evince and Xournal - org-file-apps should allow to specify how to pass a page number to an external program. Unlike the file name, this is an optional argument, as a link may not specify a page number at all. I do not know how to do this in an elegant way, maybe let the user specify multiple entries - one for links with a page number, one for links without. - the same should apply to line numbers - maybe someone will integrate Org with Open Office or some heretic wants to open all text files in zile, who knows? - if a link with a page number is opened, org-file-apps specifies "Visit with Emacs", and emacs decides to open it in doc-view-mode, doc-view-goto-page should be called with the page number. (I imagine this would be possible using the right hooks?) - Line number and page number also seem somewhat arbitrary as the only pieces of data available to point to a specific location inside a document. There are HTML fragment identifiers, which AFAIK work in http: links but do not in file: links. One might also imagine specifying a precise position in a PDF using a line number and a percentage to indicate how far the page should be scrolled down. So if it is feasible at all, we might want an even more general syntax to specify a "target location", maybe attributes such as [[file:/path/to/file][page=5,line=3][Description]] [[file:notes.txt][search="The quick brown fox"][Description]] This may obviously create more problems with backward compatibility. Luckily, there has been no release featuring docview: links yet, so there still is a chance to correct this mistake without breaking too much. If there will be no special syntax for page numbers, we could also interpret the line number as a page number for PDF and Xournal files, but that number would still need to be passed to an external application and cause doc-view-goto-page to be called when visiting a PDF in emacs. I really do not want to create another file: link type with org-docview.el, which is why I ask y'all to comment! - Jan