#+OPTIONS: H:3 num:nil toc:t \n:nil ::t |:t ^:nil -:t f:t *:t tex:t d:(HIDE) tags:not-in-toc ':t
#+STARTUP: align fold nodlcheck hidestars oddeven lognotestate
#+SEQ_TODO: TODO(t) INPROGRESS(i) WAITING(w@) | DONE(d) CANCELED(c@)
#+TAGS: Write(w) Update(u) Fix(f) Check(c)
#+TITLE: Ongoing Development of Org Additions?
#+AUTHOR: Worg people
#+EMAIL: mdl AT imapmail DOT org
#+LANGUAGE: en
#+PRIORITIES: A C B
#+CATEGORY: worg
#+LINK: fireforgrepofile http://repo.or.cz/w/org-fireforg.git?a=blob_plain;f=%s;hb=HEAD
# This file is the default header for new Org files in Worg. Feel free
# to tailor it to your needs.
[[file:index.org][{Back to Worg's index}]]
Some org-mode related project currently being developed in worg.
* Org Collector
#+index: Collector
Located in the =contrib/lisp/= directory of org-mode.
A utility for collecting properties from the headers in an org file,
running the properties through arbitrary elisp functions, and
presenting the results in a table.
The functionality of this tool is similar to the functionality of
[[info:org:Capturing%20column%20view][info:org:Capturing column view]], but this has support for processing
prior to the generation of the table.
Here is a simple example application of this utility.
#+begin_comment ems better example
it might be better to put an exercise example here if someone has one.
#+end_comment
#+BEGIN: propview :id "data" :cols (ITEM f d list (apply '* list) (+ f d))
#+END:
*** Example Data
:PROPERTIES:
:ID: data
:END:
****** run1
:PROPERTIES:
:d: 33
:f: 2
:list: '(9 2 3 4 5 6 7)
:END:
****** run2
:PROPERTIES:
:d: 34
:f: 4
:END:
****** run3
:PROPERTIES:
:d: 35
:f: 4
:END:
****** run4
:PROPERTIES:
:d: 36
:f: 2
:END:
* Fireforg, a Firefox extension for org interaction (EXPERIMENTAL)
#+index: Fireforg
Fireforg is a Firefox extension, that interacts with Emacs Org-mode.
For the displayed URL it shows the associated tags in the status bar
and allows to show a list of annotations that can be instantly visited
in Emacs.
Additionally, in every website it marks all links that occur in the agenda files.
For every link in the agenda files the previous heading and its tags
are associated with it.
For *scientific use*, it is possible to *send BibTeX entries* for
sites supported by the Zotero plugin to Emacs. [[*Import%20BibTeX%20using%20Zotero][Additional steps]] are
necessary for this to work.
** Caveats
:PROPERTIES:
:ID:
13179b21
-d70a-4255-a8f1-
9f4e4e7290
:END:
The following notes should be taken into consideration before using Fireforg:
- On the Emacs side a registry of all links in the agenda files will
be generated and saved in plain text onto the harddrive.
- The generation can take very a long time depending on the size of
the agenda files and the number of links in them.
- The generated file can become quite large.
- When files are *encrypted* having some information from them in
plain text on the harddrive might not be what you want.
- Firefox will read and look through the registry file for the
currently viewed site. Depending on the size of the registry file
and on the options [[id:
e77f15a8
-c358-44fd-a207-
8c422fee2d
][Lookup links on page load]] and [[id:
d73476f3
-6c09-479c-abea-
f33d3e0e07
][Prefetch links to extract DOI]]
this might slow down the browsing experience.
** Installation
- Install org-protocol according to its [[file:org-contrib/org-protocol.org][manual]] and *please verify
that it's working* using either the bookmarks or by invoking it directly in the shell:
: emacsclient 'org-protocol://remember://w/http%3A%2F%2Forgmode.org%2F/Org-Mode%3A%20Your%20Life%20in%20Plain%20Text%20-%20Mozilla%20Firefox/'
- Get org-fireforg.el from [[fireforgrepofile:lisp/org-fireforg.el][here]] and put the following into your
=.emacs= *after* the section that initializes org-protocol:
: (add-to-list 'load-path "~/path/to/org/fireforg/")
: (require 'org-fireforg)
: (org-fireforg-registry-insinuate)
and as the last line of the file:
: (org-fireforg-registry-initialize t)
Note that creating the registry can take a long time depending on
the size of the agenda files and the number of links in them.
- Visit [[fireforgrepofile:build/fireforg.xpi][this link]] with Firefox, confirm installation of the extension and restart.
(Windows users will have to adjust: org-fireforg-registry-file-xml in Emacs
and "registry-file" in Fireforgs preferences to be the same file.)
*** Installation from a git clone
It is also possible to clone the git repository first, using:
: git clone http://repo.or.cz/r/org-fireforg.git
, install lisp/org-fireforg.el according to the instructions above
and add a file named =fireforg@burtzlaff.de= containing the path
to the "fireforg" subdirectory into =~/.mozilla/firefox//extensions/=.
In my setup for example there is a file
=~/.mozilla/firefox/4xyx9l73.default/extensions/fireforg@burtzlaff.de=
containing
: /home/andy/projects/org-fireforg/fireforg
A restart of Firefox is required for this to work.
** Basic usage
*** The status bar entry
If the currently viewed url is found in your agenda files, the number
of occurrences together with all associated tags will be shown in the
status bar. A left click on the status bar entry will show a list of
all headings associated with the currently viewed url. Selecting one
of them lets Emacs visit that heading.
For example, this heading in one of your agenda files:
: * Greatest tool in the world [[https://orgmode.org/][Org mode]] :Org:
will yield the following when visiting https://orgmode.org/ and left clicking:
[[file:images/screenshots/org-fireforg-screenshot.png]]
*** Triggering store-link and remember
Right clicking on the status bar entry shows a menu that let's you
trigger org-protocol's "store-link" and "remember".
There is an entry for every remember template listed in the [[*List%20of%20characters%20specifying%20available%20remember%20templates][preferences]].
The entries in the submenu "All tabs" will call remember for every tab
in the current window. This option only makes sense if a remember
template is used, that stores the note automatically ("%!" in the template string), e.g.:
: * %:description \n %:link %!
*** Mark links that occur in the agenda files in websites
Whenever a site is loaded, Fireforg will alter the style of all links
in it, that occur in the agenda files. The tooltip of those links is
set to contain the annotations.
This feature can be turned off using an [[*Lookup%20links%20on%20page%20load][option]] in the [[*Preferences][preferences
dialog]]. [[*CSS%20style%20string%20for%20links%20with%20annotations][The CSS-style]] used for marking the link and [[*Overwrite%20tooltip%20for%20links%20with%20annotations][whether or
not the tooltip is set]] is also customizable.
*** Context menu for links
The context menu (accessible by right clicking on a link) has a
submenu "Fireforg", where all annotations for that link are listed:
[[file:images/screenshots/org-fireforg-screenshot-context-menu.png]]
** Import BibTeX using Zotero
:PROPERTIES:
:ID:
e6fc94c6
-7fef-4348-b998-
f6a6f58ede
:END:
Fireforg is able to retrieve BibTex entries for the all sites
supported by [[http://www.zotero.org/][Zotero]]. To achieve this the following additional steps
are necessary:
- Install Zotero 1.0.10 from the [[http://www.zotero.org/][Zotero Website]]
- Set "Inject Zotero" in Fireforg's preference dialog
[fn:ffprefdiag: Fireforg's preference dialogue is accessible in
Firefox's menu under Tools->Add-ons->Fireforg->Preferences].
*Warning: On restart a small function is injected into Zotero to
catch imported entries. The change to the code is minimal and
non-permanent. In a worst case scenario Zotero's database might
get corrupted, though that hasn't happened yet.*
- Restart Firefox
Whenever a single entry (*not* a collection) is imported into Zotero -
e.g. by clicking the white "document" symbol that appears to the right
in the url bar if Zotero supports importing the current site - it is
automatically exported to BibTeX and sent to org mode using
org-protocol. In Emacs it is put into the kill ring in a format
depending on the variable =org-fireforg-received-bibtex-format=:
- =nil=: The BibTeX entry is passed directly into the kill ring.
- =heading= (Default): A heading is generated with the BibTeX
fields as properties with prefix "BIB_":
: * [[][