Matt,

Thanks for sharing this.  I'm afraid that I'm very new at reading Emacs Lisp at this point.  But I appreciate the explanation of your aims and how you've tried to meet them.  I'll try to contribute as I can along the way. 

Best regards,

Will

On 1/26/15 2:40 PM, Matt Price wrote:
Hi will,

I haven't gotten very far with this yet, but adding a couple of lines to the definition of org-add-link-type in org-zotxt.el (around line 150, https://bitbucket.org/egh/zotxt-emacs/src/74702e2b2f2aa0427f099eb4fe69dce8709f67fc/org-zotxt.el?at=master) at least allows for unformatted, plain-text reproduction of citations:

------------------
(org-add-link-type "zotero"
                   (lambda (rest)
                     (zotxt-select-key (substring rest 15)))
                   (lambda (path desc format)
                     (if (and (eq format 'latex)
                              (string-match "^@\\(.*\\)$" desc))
                         (format "\\cite{%s}" (match-string 1 desc))
                       nil)
                     (if ( eq format 'html)
                         (format "%s" desc)

                       nil)))
-------------------

A better option would be to somehow acquire the html that the Zotero extension "zotxt" generates when zotxt.el requests the formatted citation from it.  I'm not quite sure how to do this, but I htink the action happens zotxt-choose-deferred, which starts on line 125 of zotxt.el (https://bitbucket.org/egh/zotxt-emacs/src/74702e2b2f2aa0427f099eb4fe69dce8709f67fc/zotxt.el?at=master):

---------------------
(defun zotxt-choose-deferred (&optional method search-string)
  "Prompt a user for a search string, then ask the user to select an item from the citation.

If METHOD is supplied, it should be one of :title-creator-year, :fields, or :everything.
If SEARCH-STRING is supplied, it should be the search string."
  (if (null method)
      (let ((method-name 
             (zotxt-completing-read
              "Zotero search method (nothing for title, creator, year): "
              zotxt-quicksearch-method-names
              nil t nil nil "title, creator, year")))
        (setq method (cdr (assoc method-name zotxt-quicksearch-method-names)))))
  (if (null search-string)
      (setq search-string
            (read-string (format "Zotero quicksearch (%s) query: " (cdr (assq method zotxt-quicksearch-method-to-names))))))
  (lexical-let ((d (deferred:new)))
    (request
     (format "%s/search" zotxt-url-base)
     :params `(("q" . ,search-string)
               ("method" . ,(cdr (assq method zotxt-quicksearch-method-params)))
               ("format" . "bibliography"))
     :parser 'json-read
     :success (function*
               (lambda (&key data &allow-other-keys)
                 (let* ((results (mapcar (lambda (e) 
                                           (cons (cdr (assq 'text e)) 
                                                 (cdr (assq 'key e))))
                                         data))
                        (count (length results))
                        (citation (if (= 0 count)
                                      nil
                                    (if (= 1 count)
                                        (car (car results))
                                      (zotxt-completing-read "Select item: " results))))
                        (key (cdr (assoc-string citation results))))
                   (deferred:callback-post
                     d (if (null citation) nil
                         `((:key ,key :citation ,citation))))))))
    d))

-------------
My lisp isn't good enough to read this function properly, but apparently the 
:citation property of the result item plist is set to the 'text' object of each item.  
If one could  also add the 'html' object which the zotxt Zotero plugin returns
(the nomenclature is a little misleading, I know), then that information could be made available to emacs/org 
for use on export.  See line 307-309 of the zotxt extension, here: 
 https://bitbucket.org/egh/zotxt/src/a12d538ae9245b142fdb55550b2d241e43b82221/extension/bootstrap.js?at=master  

Not sure if this helps much?  It's the best I have so far!  Thanks,
Matt


On Mon, Jan 26, 2015 at 12:49 PM, Monroe, Will <will.monroe@law.lsu.edu> wrote:
Matt,

I don't have much to contribute at this stage but as someone who uses org heavily for outlining and writing, zotero for citation management, and who is obliged to provide copies as Word documents (I'm an instructional designer at at law school), I appreciate the question. 

I also appreciate the point to zotxt!  Didn't know about that.

I hope you get some good replies.

Will

-----------------------------
Will Monroe, Ph.D.
Head of Instructional Technology
Paul M. Hebert Law Center
225.578.7838
will.monroe@law.lsu.edu

On 1/26/15 10:29 AM, Matt Price wrote:
Hi eveyrone,

I've just looked back through my email archives and from what I can tell, almost everyone who uses Org to write papers uses LaTex for the final product. 

I have never learned to use Latex, mostly because, as a humanist, almost none of my colleagues can use LaTex files, and the same goes for journals I interact with, which generally prefer Word submission(!).  Because of this, I am still trying to figure out a way to use org-mode for scholarly writing. At present, I write my first, very rough drafts in Org, then export to ODT and add citations from Zotero (we don't really use Bibtex either); after this step, I can't really go back to Org, which is of course very frustrating. 


I would prefer to write exclusively in Org, then export to ODT when I have a high-quality draft that I want to share with colleagues; in some cases, I would also like to export directly to HTML for posting on a blog or course website. In fact, one use case that would really help me is a very simple one: when writing course syllabi, I would really like to just get the full references to course readings to show up in HTML exports. 

My question: does anyone yet have a workflow that lets them export directly to HTML or ODT? 

I've just tried using zotxt again (https://bitbucket.org/egh/zotxt-emacs/overview -- first time in a while); it is remarkably easy to use in Org itself.  By default, though, the links simply aren't handled in the HTML and ODT exports, and so the cites will be completely absent.

Here is the text inserted by zotxt for a single citation:

----------------

[[zotero://select/items/0_TI27HJ5I][Suchman, Lucy. “Subject Objects.” Feminist Theory 12, no. 2 (August 1, 2011): 119–45. http://resolver.scholarsportal.info/resolve/14647001/v12i0002/119_so.xml.]]
---------------

In HTML, I would like to replace this with something like this:

(<a href="#BibSuchman2011">Suchman 2011</a>)

and then have Org generate a bibligraphy somewhere, a bit like org-ref seems to do, It would be nice if I could steal the styles from somehwere, the way org-ref seems to do.

For ODT< it seems a little more complicated. Here is the rather lengthy equivalent that Zotero itself produces for my default style (Chicago) in Libreoffice:
---------------
<text:note text:id="ftn0" text:note-class="footnote"><text:note-citation>1</text:note-citation><text:note-body><text:p text:style-name="Footnote"><text:reference-mark-start text:name="ZOTERO_ITEM CSL_CITATION {&quot;citationID&quot;:&quot;5xzXuF2I&quot;,&quot;properties&quot;:{&quot;formattedCitation&quot;:&quot;{\\rtf Lucy Suchman, \\uc0\\u8220{}Subject Objects,\\uc0\\u8221{} \\i Feminist Theory\\i0{} 12, no. 2 (August 1, 2011): 119\\uc0\\u8211{}45, http://resolver.scholarsportal.info/resolve/14647001/v12i0002/119_so.xml.}&quot;,&quot;plainCitation&quot;:&quot;Lucy Suchman, “Subject Objects,” Feminist Theory 12, no. 2 (August 1, 2011): 119–45, http://resolver.scholarsportal.info/resolve/14647001/v12i0002/119_so.xml.&quot;},&quot;citationItems&quot;:[{&quot;id&quot;:149,&quot;uris&quot;:[&quot;http://zotero.org/users/20/items/TI27HJ5I&quot;],&quot;uri&quot;:[&quot;http://zotero.org/users/20/items/TI27HJ5I&quot;],&quot;itemData&quot;:{&quot;id&quot;:149,&quot;type&quot;:&quot;article-journal&quot;,&quot;title&quot;:&quot;Subject objects&quot;,&quot;container-title&quot;:&quot;Feminist Theory&quot;,&quot;page&quot;:&quot;119-145&quot;,&quot;volume&quot;:&quot;12&quot;,&quot;issue&quot;:&quot;2&quot;,&quot;URL&quot;:&quot;http://resolver.scholarsportal.info/resolve/14647001/v12i0002/119_so.xml&quot;,&quot;ISSN&quot;:&quot;14647001&quot;,&quot;author&quot;:[{&quot;family&quot;:&quot;Suchman&quot;,&quot;given&quot;:&quot;Lucy&quot;}],&quot;issued&quot;:{&quot;date-parts&quot;:[[&quot;2011&quot;,8,1]]}}}],&quot;schema&quot;:&quot;https://github.com/citation-style-language/schema/raw/master/csl-citation.json&quot;} RNDuhNYYpC1hN"/><text:span text:style-name="T3">Lucy Suchman, “Subject Objects,” </text:span><text:span text:style-name="T4">Feminist Theory</text:span><text:span text:style-name="T5"> 12, no. 2 (August 1, 2011): 119–45, http://resolver.scholarsportal.info/resolve/14647001/v12i0002/119_so.xml.</text:span><text:reference-mark-end text:name="ZOTERO_ITEM CSL_CITATION {&quot;citationID&quot;:&quot;5xzXuF2I&quot;,&quot;properties&quot;:{&quot;formattedCitation&quot;:&quot;{\\rtf Lucy Suchman, \\uc0\\u8220{}Subject Objects,\\uc0\\u8221{} \\i Feminist Theory\\i0{} 12, no. 2 (August 1, 2011): 119\\uc0\\u8211{}45, http://resolver.scholarsportal.info/resolve/14647001/v12i0002/119_so.xml.}&quot;,&quot;plainCitation&quot;:&quot;Lucy Suchman, “Subject Objects,” Feminist Theory 12, no. 2 (August 1, 2011): 119–45, http://resolver.scholarsportal.info/resolve/14647001/v12i0002/119_so.xml.&quot;},&quot;citationItems&quot;:[{&quot;id&quot;:149,&quot;uris&quot;:[&quot;http://zotero.org/users/20/items/TI27HJ5I&quot;],&quot;uri&quot;:[&quot;http://zotero.org/users/20/items/TI27HJ5I&quot;],&quot;itemData&quot;:{&quot;id&quot;:149,&quot;type&quot;:&quot;article-journal&quot;,&quot;title&quot;:&quot;Subject objects&quot;,&quot;container-title&quot;:&quot;Feminist Theory&quot;,&quot;page&quot;:&quot;119-145&quot;,&quot;volume&quot;:&quot;12&quot;,&quot;issue&quot;:&quot;2&quot;,&quot;URL&quot;:&quot;http://resolver.scholarsportal.info/resolve/14647001/v12i0002/119_so.xml&quot;,&quot;ISSN&quot;:&quot;14647001&quot;,&quot;author&quot;:[{&quot;family&quot;:&quot;Suchman&quot;,&quot;given&quot;:&quot;Lucy&quot;}],&quot;issued&quot;:{&quot;date-parts&quot;:[[&quot;2011&quot;,8,1]]}}}],&quot;schema&quot;:&quot;https://github.com/citation-style-language/schema/raw/master/csl-citation.json&quot;} RNDuhNYYpC1hN"/></text:p></text:note-body></text:note>
------------------------------

I'm not sure what the best way to do this is; it may be that zotxt could be extended to get zotero to do the heavy lifting here. 

I know Erik H reads this list, so if you have any suggestions, Erik, I would love to hear them.  But maybe other people also have suggestions about modifying export filters - -that would also be really helpful for me.  Thanks as always,

Matt