emacs-orgmode
[Top][All Lists]
Advanced

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

[O] capture with iceweasel/firefox -- nothing works


From: Samuel Wales
Subject: [O] capture with iceweasel/firefox -- nothing works
Date: Fri, 3 Jun 2016 18:23:09 -0700

over many years, i have been trying to get org-protocol (or
anything similar) to work, and it is not working reliably.

intermittently, it says there is a greedy protocol.  the
success rate of capturing is around 50% maybe.  when it is not
working, it never works.  i have
noticed no correlation with anything that could cause this.

sometimes it captures bogus text when i just want the link,
but i don't care about that.  at least it copied the link.

i've tried:

  1) org-capture firefox extension
  2) a bookmark like this
     - 
javascript:location.href%20=%20'org-protocol://capture-html://w/'%20+%20encodeURIComponent(location.href)%20+%20'/'%20+%20encodeURIComponent(document.title)%20+%20'/'%20+%20encodeURIComponent(function%20()%20{var%20html%20=%20"";%20if%20(typeof%20document.getSelection%20!=%20"undefined")%20{var%20sel%20=%20document.getSelection();%20if%20(sel.rangeCount)%20{var%20container%20=%20document.createElement("div");%20for%20(var%20i%20=%200,%20len%20=%20sel.rangeCount;%20i%20<%20len;%20++i)%20{container.appendChild(sel.getRangeAt(i).cloneContents());}%20html%20=%20container.innerHTML;}}%20else%20if%20(typeof%20document.selection%20!=%20"undefined")%20{if%20(document.selection.type%20==%20"Text")%20{html%20=%20document.selection.createRange().htmlText;}}%20var%20relToAbs%20=%20function%20(href)%20{var%20a%20=%20document.createElement("a");%20a.href%20=%20href;%20var%20abs%20=%20a.protocol%20+%20"//"%20+%20a.host%20+%20a.pathname%20+%20a.search%20+%20a.hash;%20a.remove();%20return%20abs;};%20var%20elementTypes%20=%20[['a',%20'href'],%20['img',%20'src']];%20var%20div%20=%20document.createElement('div');%20div.innerHTML%20=%20html;%20elementTypes.map(function(elementType)%20{var%20elements%20=%20div.getElementsByTagName(elementType[0]);%20for%20(var%20i%20=%200;%20i%20<%20elements.length;%20i++)%20{elements[i].setAttribute(elementType[1],%20relToAbs(elements[i].getAttribute(elementType[1])));}});%20return%20div.innerHTML;}());
  3) a bookmark like this
     - 
javascript:location.href='org-protocol://capture://L/'+encodeURIComponent(location.href)+'/'+encodeURIComponent(document.title)+'/'+encodeURIComponent(window.getSelection())
  4) i know there's a new one that is supposed to capture
     format better (so you don't end up with a single
     paragraph when there were several paragraphs).  that
     sounds wonderful!  however, i am limited in computer
     use (4 minutes at a time), so i don't know if it is
     worth my trying or not.  i have to use those 4 minutes responsibly.
  5) i followed various instructions

i currently using iceweasel 38.8.0 (debian jessie) and
emacs-version "24.4.1".

i understand elisp and org.

however, i don't understand javascript or org-protocol's
internal concepts.  i am limited in concentration ability,
so this could be a problem.  i am also hazy on how to set up
a bookmark, but i somehow managed to do it twice.

===

i am very often physically unable to use a keyboard.  during
these times i am often able to use a pointing device (2
mouses, one for clicking and one for moving).

i am often using firefox (iceweasel) and want to capture
things to org using only the mouse.

that's why i want this feature to work so much.

===

i want to use org-capture extension or similar so that i can
copy snippets of text like this:

  * [[link][descr]]
  text that i selected
  ---

(the --- indicates that it came from iceweasel, and is not something i wrote.)

or just the plain link like this if nothing is selected:

  * [[link][descr]]

i have this working.  it is just unreliable, failing randomly at random times.

(note: i don't want emacs to pop up and there should be no keyboard
interaction.  useful if emacs switches to the buffer it is saved to,
however.  i have all that stuff taken care of in my elisp.  that part
i understand and can fix by myself.)

===

i am stuck on this.

after all that long-windedness, my question is this:

  *what is the most reliable set of instructions or code to
  get iceweasel to work with org?*

i'd be grateful for any useful hints.

thanks.


samuel

===

here are just 2 of the many elisp-side things i tried over
the years to get this to work.  elisp i can handle.

  (setq org-capture-templates
        (append
         org-capture-templates
         `(
           ("p" "Protocol" entry (file+headline ,(concat org-directory
"notes.org") "Inbox")
            "* %^{Title}\nSource: %u, %c\n
#+BEGIN_QUOTE\n%i\n#+END_QUOTE\n\n\n%?")
           ("L" "Protocol Link" entry (file+headline ,(concat
org-directory "notes.org") "Inbox")
            "* %? [[%:link][%:description]] \nCaptured On: %U")
           )))
  ;; --- https://github.com/sprig/org-capture-extension#set-up-handlers-in-emacs

  (cl-loop for key in '("L" "p")
           do
           (add-to-list
            'org-capture-templates
            `(,key
              ,(format "Protocol %s" key)
              entry
              (file+headline
               ,org-default-notes-file
               ;; (concat org-directory "/executive--a.org")
               "xyzzy-remember")
              ;; \nkill %c\nselect %x
              ;; %:initial is like %i in org-protocol
              ;;   if text, do --
              ;; fixme i can perhaps remove my cleverness for whether
              ;; there is or is not selected text as in the
              ;; example above with begin quote.
              ;;
https://github.com/sprig/org-capture-extension#set-up-handlers-in-emacs
              ;;
              ;; a future security fix might break this cleverness
              "%(alpha-org-protocol-string \"%:link\" \"%:description\" \"%i\")"
              ;; "*
[[%:link][%:description]]\n%(alpha-org-protocol-region \"%i\")"
              :prepend t
              ;; fixme set this to nil if you want to debug ka
              :immediate-finish t
              ;; ensure it worked
              ;; just remember to go to prev buffer for where you were
              :jump-to-captured t)))
  nil)
(defun alpha-org-protocol-string (link description region)
  (format "* %s\n%s\n"
          (org-make-link-string link description)
          (alpha-org-protocol-region region)))
(defun alpha-org-protocol-region (string)
  "If there is text, append dash to indicate quote."
  (if (= 0 (length string))
      ""
    (concat string "\n---")))


-- 
The Kafka Pandemic: http://thekafkapandemic.blogspot.com

The disease DOES progress.  MANY people have died from it.  And
ANYBODY can get it.

Denmark: free Karina Hansen NOW.



reply via email to

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