emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bring up a screen giving option to open a series of orgmode files


From: Jean Louis
Subject: Re: Bring up a screen giving option to open a series of orgmode files
Date: Fri, 27 Nov 2020 15:04:03 +0300
User-agent: Mutt/2.0 (3d08634) (2020-11-07)

Hello Allan,

Thank you for references, I am collecting it.

* Alan Schmitt <alan.schmitt@polytechnique.org> [2020-11-27 11:15]:
> For that I recommend pdf-tools (great pdf viewer for emacs, supporting
> annotations and synctex, https://github.com/politza/pdf-tools ) and
> org-pdftools (provides org links for it,

That is nice and I have take note for later inspection. The current
doc-view functions are already pretty nice and allow to access PDF
files by its page number and I also think searching words would
work. Maybe I already made it and forgot it.

For the built-in doc-view by using function (doc-view-current-page)
one can obtain the page number and that allows for creation of a
function to create quickly Org link to specific PDF number to be
viewed with the built-in doc-view:

(defun org-capture-doc-view-page-by-number ()
  (interactive)
  (let* ((page (doc-view-current-page))
         (file (buffer-file-name))
         (name (read-from-minibuffer "Hyperlink name: "))
         (hyperlink (format "[[elisp:(doc-view-open-file \"%s\" %s)][%s]]" file 
page name)))
    (kill-new hyperlink)))

Function allows to search by page number, query and match:
`(doc-view-open-file FILE &optional PAGE-NUMBER QUERY MATCH)'

When making such hyperlinks for Org, I rather like using generic
functions to open such files, such as:

Instead of:

[[elisp:(doc-view-open-file
"/home/data1/protected/Downloads/Download.PDF" 1)][Transaction
History]]

[[elisp:(generic-pdf-open-file "/home/data1/protected/Downloads/Download.PDF" 
1)][Transaction History]]

Then the generic function could be replaced by user's
customization. If somebody would like to open PDF file by pdf-tools,
evince, or doc-view, then welcome, customize and go!

More than that I like using even more generic links that do not hard
code the file path as such are indexed in the database, then it would
look like this:

Instead of:

[[elisp:(generic-pdf-open-file "/home/data1/protected/Downloads/Download.PDF" 
1)][Transaction History]]

[[elisp:(hyperscope 123)][Transaction History]]

As that brings the possibility that I change the file path or rename
the file but the unique ID 123 never changes, and again may decide how
to open file, by which viewer. In addition it could decide:

- to open file and show annotations

- while opening file to play some music to read with music together

- or I could add any other function to the very generic high level
  hyperlink

I would prefer if authors of pdf-tools would contribute their generic
functions if useful to doc-view. It is nice to have such external
tools, even nicer is when core Emacs get enhanced.

> https://github.com/fuxialexander/org-pdftools). There is also the
> org-noter option (https://github.com/weirdNox/org-noter) to link
> external annotations to pdfs.

Annotations are long time envisioned feature that is very poorly
implemented in any hyperdocument systems. Hypothes.is implement it for
WWW but WWW could be better designed to allow easier
annotations. Browsers are missing it all over.

Hypothes.is Annotate the web, with anyone, anywhere.
https://web.hypothes.is/

org-noter is great package and peculiar to me I would keep notes
related to anything and make it built-in feature in Emacs. Files can
be annotated, images can be annotated, videos, email messages.

It referenced to interleave, I have not used it but I see it would
show PDF on one side and Org file on the other side, Then user can
quickly annotate a page and press key and note is stored in Org, that
is such good example of what I call integration or combining into one
whole. Such functions could become part of Org mode as they are
useful.

Personally I am using similar divided window functionality where I can
quickly insert hyperlinks from other buffer and capture hyperlinks
from other buffers straight into the database.

How I see that org-noter does it from the video is that when user
opens heading the page will automatically appear on the other
window. That is useful feature.

I just see it is so much hard coding and it reinforced demand for
structured meta data. Packages interleave and org-note are good
examples where authors try to hard code relations.

> > We have browsers that each of them think for themselves. Each can
> > store bookmarks but hardly provide such to external programs.
> 
> For that org-protocol was mentioned. There is eww as well to browse
> within emacs (and thus have links).

Browsers vary in their implementations, if they allow Javascript this
may be possible. Without Javascript it requires different
hacks. Generally there is no adopted standard on annotations. Mosaic
browser had general public annotations as a built-in feature. Netscape
did not follow with it and Firefox today still does not have proper
annotations. It has bookmark annotation. But it does not have
something like page ID, match, query or paragraph annotation, or
heading annotation. Then every browser does what they want. We would
have more useful computing would developers agree on common useful
features. 

> > File managers do not provide `file-manager-store-link' but they should
> > as it would be very useful to have programs integrate with each other
> > that hyperdocument systems can be built.
> 
> dired is a nice file manager. I agree having something at the level of
> the OS would be great, but emacs is a pretty good OS ;)

Yes. I use Dired all the time. But I use files in groups and group
members cannot all easily do what is required. Files are managed by
different file managers.

If there would be central database on computer that is integrated or
supported by various file managers. As long as file manager support
options such as "Open with" or "Send to" and those are customizable
then integration becomes possible. 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]