org-devel.org 25 KB

#+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-9f4e4e729074 :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-8c422fee2d1e][Lookup links on page load]] and [[id:d73476f3-6c09-479c-abea-f33d3e0e074a][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-f6a6f58eded8 :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_": : * [[][