Re: [Orgmode] RFC: Syntax for page numbers in file: links?

2010-01-06 Thread Jan Böcker
On 06.01.2010 10:05, Carsten Dominik wrote:

 Would you like to work on a patch that allows interpreting page numbers
 for external applications?

I'll definitely take a stab at it and see how far I get while learning
more about elisp along the way. I will post to the mailing list if I
make significant progress or give up.

- Jan


___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] RFC: Syntax for page numbers in file: links?

2010-01-06 Thread Carsten Dominik


On Jan 6, 2010, at 12:07 PM, Jan Böcker wrote:


On 06.01.2010 10:05, Carsten Dominik wrote:

Would you like to work on a patch that allows interpreting page  
numbers

for external applications?


I'll definitely take a stab at it and see how far I get while learning
more about elisp along the way. I will post to the mailing list if I
make significant progress or give up.


Thanks!

- Carsten





___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] RFC: Syntax for page numbers in file: links?

2010-01-06 Thread Torsten Wagner
Hi,

during following this thread I noticed one problem with the page and line-
number concept

   - file:~/some-file.txt::23some-file.txt, line 23

A txt-file may have no clear page boarders. Thus only a line number might make 
sens

   - file:~/document.pdf:4   document.pdf, page 4

A PDF may have only pages and maybe (I do not know at the moment) there is a 
way to address bookmarks and toc entries and even line numbers

   - file:~/document.odf:3::5document.odf, page 3, line 5

A odf can have both line numbers and page numbers as well as chapters-, 
paragraphs- etc. markers.

Thus, it depends heavily on the kind of document and on the ability of the 
external reader. 
I would suggest to make sure, if no page number but a line number is given, 
this line number should be dealt as absolute value (starting from the very 
first line). If a page number and a line number is given, the line number is 
relative to the given page. Furthermore, there should be something to deal 
with wrong inputs. E.g. given page number for file-types which does not have 
defined pages (like txt, source code, etc.). 

Nice would be the possibility to refer to TOC, paragraphs and other markers 
since they would keep valid even if later versions of the file change the 
position and make page and line number invalid.

Just my thoughts

Torsten




 
 ___
 Emacs-orgmode mailing list
 Please use `Reply All' to send replies to the list.
 Emacs-orgmode@gnu.org
 http://lists.gnu.org/mailman/listinfo/emacs-orgmode
 


___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] RFC: Syntax for page numbers in file: links?

2010-01-05 Thread Jan Böcker
 I am not sure if it makes sense to handle more that a page number, really.

I have thought about this again and concluded that the approach in my
first post is, indeed, over-engineered. I also believe the approach
proposed in this post to be flexible enough to handle some extensions.

On 05.01.2010 13:32, Carsten Dominik wrote:

 
 I have yesterday implemented modifies for file link:
 
 file+sys: now forces opening a file with the system's open command
 file+emacs: forces opening in Emacs.
 I guess it would make sense to make more of these, so that
 one could select a specific viewer for selected files, what
 do you think?

The method of opening a file should not be specified in the link itself,
unless it makes sense to change it for an individual link. Imagine two
users exchanging org files, where one likes to open PDFs with evince and
the other prefers doc-view-mode.

However, this would be useful for links to file types which org-mode
does not know anything about; the user would not have to tell org-mode
about them by modifying org-file-apps first.
Maybe this should not force the opening method, but provide the default
if org-file-apps has nothing to say?



 - 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.
 
 This is not easy at all, but I am sure it can be done.
 

org-file-apps already allows matching regular expressions against the
file name.
I propose the following changes:
- match the regular expressions against the whole link
- if the matching regex used grouping, in addition to replacing %s with
the file name in a command string, replace %1 with the first match, %2
with the second, etc.
- if the org-file-apps entry specifies a lisp form to be evaluated, make
the group matches available to the lisp form being evaluated.

- org-docview.el would only handle org-store-link functionality and
generate links such as file:path::page.

With these changes, the following sample entries in org-file-apps could
then specify the method of how to open links to PDF files with and
without page number specifications.

Open PDFs in evince:

regex:  \.pdf\'
command:evince %s

regex:  \.pdf::\(\d+\)\'
command:evince %s -p %1

Open PDFs in doc-view-mode:

regex:  \.pdf\'
visit in emacs

regex:  \.pdf::\(\d+\)\'
lisp form:  (progn (org-open-file file 1)
   (docview-goto-page (match-string 1 link)))

The lisp form in the last entry could go into org-docview.el as a
convenience function. We would also need a way for org-docview.el to
supply default entries for org-file-apps, maybe a variable
org-file-apps-defaults-alist or something.

AFAIK, this approach would be backwards-compatible with current
org-file-apps entries, which typically match an extension at the end of
the string and specify a command to open the file with, which gets
passed the file name via %s. If the link specifies arguments, the
current entries would no longer match, but they cannot handle arguments
anyway.


___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] RFC: Syntax for page numbers in file: links?

2010-01-03 Thread Samuel Wales
If you need the syntax to be more general, take a look at extensible
syntax on this list.

-- 
Q: How many CDC scientists does it take to change a lightbulb?
A: You only think it's dark. [CDC has denied ME/CFS for 25 years]
=
Retrovirus: http://www.wpinstitute.org/xmrv/xmrv_qa.html


___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode