400 Matching Annotations
  1. Jan 2024
    1. Set your own, fixed citation keys By default, BBT generates the citation key from the item information, and this key may change when you edit the item. Such keys are called dynamic keys. In contrast, fixed keys are marked with a pushpin in the item list view and in the item details to distinguish them from dynamic keys. You can fix the citation key (called pinning in BBT) for an item by adding the text Citation Key: <your citekey> anywhere in the extra field of the item on a line of its own. You can generate a pinned citation key by selecting one or more items, right-clicking, and selecting Generate BibTeX key, which will add the current citation key to the extra field, thereby pinning it.

      Citation Key: <your citekey>

  2. Nov 2023
    1. How do you title your literature notes?

      reply to u/tenebrasocculta at https://www.reddit.com/r/Zettelkasten/comments/17vejto/how_do_you_title_your_literature_notes/

      Like many, I prefer to call these reference notes. For ease of use and brevity I use the standard citekey from Zotero, which I also use to quickly generate bibliographies. Like others have mentioned this is typically the author's sir name and publication date, so something like Gessner1548, or for your particular example Weeks2015. I can then use these quickly as well on cards with quotes or notes relating to sources that get excerpted from them for linking back to them.

      Generally I'd caution that if its a topic you're really interested in that you don't do too much note taking from tertiary sources but instead delve into more primary sourcing like the book mentioned in the article by Amy Reading. You'll get a lot further a lot faster, and generally find more useful insight.

    1. An interesting looking Obsidian/Zotero plugin

      Ton Zijlstra (@ton@m.tzyl.eu) on Nov 01, 2023, 04:15

      @richardcarter @geffrey I 2nd Richard here, prefer to keep them separate. I currently use https://zotlit.aidenlx.top/ as a plugin in both Zotero and Obsidian to handle the copying of annotations into Obsidian, rather than copy/pasting by hand. Outside of Zotero I also use hypothes.is for annotations that I grab into Obsidian through the h. API.

  3. Oct 2023
    1. I was able to put the “medium” command in the extra field and also insert italics commands around the title so it was italicized. It looked like this:Medium: Review of the book Beyond the DSM: Toward a process-based alternative for diagnosis and mental health treatment by S. C. Hayes & S. Hofmann, Eds.
    2. You can also specify the item is a book review in Extra by:Type: review-book
    3. Reviewed title: Title of the work being reviewed
  4. Jun 2023
  5. May 2023
    1. adamsmith April 18, 2023 This works -- make sure it says "CERN Document Server" when you hover over the save icon. If it doesn't, your translator just hasn't updated -- should happen within 24hs or you can force it from the Advanced Tab of the Zotero preference and the connector preferences. Xuefeng Ding April 18, 2023 Looks good. Now it works on CDS! Thanks.
      • NEW translator
    2. roberto.franceschini September 17, 2021 I think I disagree on Inspires not having unique IDs. As a matter of fact I have python scripts (for BibDesk) that import from Inspires and CDS.Here is the doc https://github.com/inspirehep/rest-api-docand one example of document retrieval in JSONhttps://inspirehep.net/api/literature/451647CDS as well has an APIhttps://cds.cern.ch/help/hacking/search-engine-apiand one example of XML outputhttps://cds.cern.ch/record/2743741/export/xm?ln=en
      • see
    1. adomasven January 18, 2017 Oh, I was not aware of this, but certainly needs to be looked into. I've created an issue to track progress. adomasven July 20, 2017 This is now supported in the connectors. Find the config editor under [ext_url]/preferences/config.html. You can generally obtain the [ext_url] by navigating to the connector preferences.
      • HOW call Zotero.Prefs from translators???
    2. adamsmith January 11, 2017 so (from memory, but I think this is right) the connectors load up the translators into memory from Standalone, but they don't store the info for preference values anywhere. They then don't interact with Standalone while they execute the scraping code and only send the whole "package" (data and attachments) to Standalone, which is why the value for the preferences (which are in Standalone) come back as undefined. Or in other words, the translator.getHiddenPref function doesn't work in the connectors currently. There have been significant improvements for the next version of connectors made by Adomas, who I ping above, so I was hoping he'd know whether they handle this better.
      • doesnt work!!!
    3. None of the 'Z.getHiddenPref("ACS.highResPDF")' actually return a value, rather 'Undefined' even though these properties are clearly present in about:config of Zotero Standalone.
      • !!!
  6. Apr 2023
    1. Is Zotero a reliable software to transcribe physical notes to? .t3_12u8gbv._2FCtq-QzlfuN-SwVMUZMM3 { --postTitle-VisitedLinkColor: #9b9b9b; --postTitleLink-VisitedLinkColor: #9b9b9b; --postBodyLink-VisitedLinkColor: #989898; }

      reply to u/noobinPython at https://www.reddit.com/r/Zettelkasten/comments/12u8gbv/is_zotero_a_reliable_software_to_transcribe/

      Zotero is incredibly powerful and you could use it as a full end-to-end solution if you wanted to. It's particularly good if you're also using .pdf or other digital documents as it has the ability to pull in notes you've made digitally in a variety of .pdf annotation tools including Adobe's Acrobat (free version) which includes highlighting and notes you've made. It does have its own .pdf viewer now which also allows one to read, highlight, annotate, and tag individual pieces of text and then aggregate them into a single file. In addition to pulling in all the annotations into a single note file, one could break them into smaller individual notes per document if desired and these have addressable locations within the system.

      Because Zotero is so powerful and can be dovetailed with a variety of other plugins specific to it as well as with other note taking tools like Obsidian, Logseq, etc. I'd highly recommend you try using it with a single document and take some notes to see if it'll work for you. There are surely some tutorials for using it as well as other useful plugins like Zotfile, MDnotes, etc. for your note taking workflows. It's open source and been in heavy use by many academics for over a decade and is actively developed, so it's one of the more robust systems out there. There are ways to do almost anything you'd want to with it from a note taking, reading, and citation management perspective, so searching and learning a bit about its features and functionality will get you a long way. Out of the box, it's reasonably intuitive, but there are lots of advanced features internally and even more features using a variety of plugins. Just the ability to have a browser extension and a keyboard shortcut to save all the bibliographic metadata of a source in a second or less and the ability to spit out full references for sharing with others has made it a godsend for me even if it did nothing else. Searching around will provide you with a huge amount of video tutorials and ways of using it either by itself, in conjunction with Zotfile, or dovetailing it with dozens of other tools.

      Personally I use it in combination with a variety of other tools including Hypothes.is and Obsidian for a comprehensive workflow, but it could do incredibly well as a note taking tool just by itself.

  7. Mar 2023
    1. how did you teach yourself zettelkasten? .t3_11ay28d._2FCtq-QzlfuN-SwVMUZMM3 { --postTitle-VisitedLinkColor: #9b9b9b; --postTitleLink-VisitedLinkColor: #9b9b9b; --postBodyLink-VisitedLinkColor: #989898; }

      reply to u/laystitcher at https://www.reddit.com/r/Zettelkasten/comments/11ay28d/how_did_you_teach_yourself_zettelkasten/

      Roughly in order: - Sixth grade social studies class assignment that used a "traditional" index card-based note taking system. - Years of annotating books - Years of blogging - Havens, Earle. Commonplace Books: A History of Manuscripts and Printed Books from Antiquity to the Twentieth Century. New Haven, CT: Beinecke Rare Book and Manuscript Library, 2001. - Locke, John, 1632-1704. A New Method of Making Common-Place-Books. 1685. Reprint, London, 1706. https://archive.org/details/gu_newmethodmaki00lock/mode/2up. - Erasmus, Desiderius. Literary and Educational Writings, 1 and 2. Edited by Craig R. Thompson. Vol. 23 & 24. Collected Works of Erasmus. Toronto, Buffalo, London: University of Toronto Press, 1978. https://utorontopress.com/9781487520731/collected-works-of-erasmus. - Kuehn, Manfred. Taking Note, A blog on the nature of note-taking. December 2007 - December 2018. https://web.archive.org/web/20181224085859/http://takingnotenow.blogspot.com/ - Ahrens, Sönke. How to Take Smart Notes: One Simple Technique to Boost Writing, Learning and Thinking – for Students, Academics and Nonfiction Book Writers. Create Space, 2017. - Sertillanges, Antonin Gilbert, and Mary Ryan. The Intellectual Life: Its Spirit, Conditions, Methods. First English Edition, Fifth printing. 1921. Reprint, Westminster, MD: The Newman Press, 1960. http://archive.org/details/a.d.sertillangestheintellectuallife. - Webb, Beatrice Potter. Appendix C of My Apprenticeship. First Edition. New York: Longmans, Green & Co., 1926. - Schmidt, Johannes F. K. “Niklas Luhmann’s Card Index: The Fabrication of Serendipity.” Sociologica 12, no. 1 (July 26, 2018): 53–60. https://doi.org/10.6092/issn.1971-8853/8350. - Hollier, Denis. “Notes (On the Index Card).” October 112, no. Spring (2005): 35–44. - Wilken, Rowan. “The Card Index as Creativity Machine.” Culture Machine 11 (2010): 7–30. - Blair, Ann M. Too Much to Know: Managing Scholarly Information before the Modern Age. Yale University Press, 2010. https://yalebooks.yale.edu/book/9780300165395/too-much-know. - Krajewski, Markus. Paper Machines: About Cards & Catalogs, 1548-1929. Translated by Peter Krapp. History and Foundations of Information Science. MIT Press, 2011. https://mitpress.mit.edu/books/paper-machines. - Goutor, Jacques. The Card-File System of Note-Taking. Approaching Ontario’s Past 3. Toronto: Ontario Historical Society, 1980. http://archive.org/details/cardfilesystemof0000gout.

      And many, many others as I'm a student of intellectual history.... If you want to go spelunking on some of my public notes, perhaps this is an interesting place to start: https://hypothes.is/users/chrisaldrich?q=tag%3A%22note+taking%22 I also keep a reasonable public bibliography on this and related areas: https://www.zotero.org/groups/4676190/tools_for_thought

  8. Feb 2023
    1. Zotero hacks: unlimited synced storage and its smooth use with rmarkdown Reading time

      zotero with onedrive

  9. Jan 2023
    1. https://github.com/rlaker/Obsidian-for-Academia/issues/1

      Perhaps I can circle back around to add in more of the specifics, both for the documentation and so people better understand what's going on and how things are dovetailed. Until then, the following two articles about setting up and using Obsidian with Zotero are fairly useful templates/walk throughs: - https://www.marianamontes.me/post/obsidian-and-zotero/ - https://nataliekraneiss.com/your-academic-reading-list-in-obsidian/

    1. Cite these as Book/Book Section as appropriate. If you need to specify that it is an ebook (most citation styles don’t require this—there isn’t a real difference from a physical book), specify that in Extra like this:Medium: Kindle ebook

      https://forums.zotero.org/discussion/77941/the-best-way-to-cite-ebooks-currently

      To sub-specify an ebook as opposed to a physical book in Zotero, in the Extra section, add a note like Medium: Kindle .mobi.

    1. Anybody using this approach to manage contacts? How?

      reply to IvanFerrero at https://forum.zettelkasten.de/discussion/1740/anybody-using-this-approach-to-manage-contacts-how#latest

      Many of the digital note taking tools that run off of text allow you to add metadata to your basic text files (as YAML headers, inline with a key:: value pair, or via #tags). Many of them have search functionality or use other programmatic means like query blocks, DataView, DataViewJS, etc. for doing queries on your files to get back lists, tables, charts, etc. of the data you're looking for.

      The DataView repository has some good examples of how this works with something like Obsidian. Fortunately if you're using simple text files you can usually put them into one or more platforms to get the data and affordances you want out of them individually.

      As an example, I have a script block in my daily note in Obsidian for birthdays in my notes that fall on today's date:

      ```dataview LIST birthday FROM "Lists/People" WHERE birthday.day = date(2023-01-18).day ```

      If I put the text birthday:: 1927-12-08 into a note about Niklas Luhmann, his name and birthday would appear in my daily note on his birthday. One can use similar functionality to create tables of books they read with titles, authors, ratings, dates read, etc. or a variety of other data input which parses through your plaintext files. Services like Obsidian, Logseq, et al. are getting better about allowing these types of programmatic searches for users without backgrounds in programming and various communities usually provide help for pre-made little snippets like the one above that one can cut and paste into their notes to get the outputs that they need. Another Obsidian based example that uses text files for tracking academic journal articles can be found at https://nataliekraneiss.com/your-academic-reading-list-in-obsidian/; I'm sure there are similar versions for other text-based platforms.

      In pre-digital times, for a manual version of a rolodex like this in paper, one could use different color cards as pseudo-tags (doctors are on yellow cards, family members on blue cards, friends on green cards, etc.) or adding edge notches or even tabs to represent different types of metadata. See for example the edge colored cards in Hawkexpress' Pile of Index Cards: https://www.flickr.com/photos/hawkexpress/albums/72157594200490122

    1. https://nataliekraneiss.com/your-academic-reading-list-in-obsidian/

      This is excellent! I was going to spend some time this week to write some custom code with Dataview to do this, but apparently there's a reasonably flexible plugin that will get me 95% of what I'm sure to want without any work!

  10. Dec 2022
    1. To Zotero or not to Zotero?

      reply to: https://www.reddit.com/r/PersonalKnowledgeMgmt/comments/zgvbg4/to_zotero_or_not_to_zotero/

      I don't often add in web pages, but for books and journal articles I love Zotero for quickly bookmarking, tagging, and saving material I want to read. It's worth it's weight in gold just for this functionality even if you're not using it for writing citations in publications.

      Beyond this, because of it's openness and ubiquity it's got additional useful plugins for various functions you may want to play around with and a relatively large number of tools are able to dovetail with it to provide additional functionality. As an example, the ability to dump groups of material from Zotero into ResearchRabbit to discover other literature I ought to consider is a fantastically useful feature one is unlikely to find elsewhere (yet).

  11. Nov 2022
  12. Oct 2022
  13. Sep 2022
    1. https://mleddy.blogspot.com/2005/05/tools-for-serious-readers.html

      Interesting (now discontinued) reading list product from Levenger that in previous generations may have been covered by a commonplace book but was quickly replaced by digital social products (bookmark applications or things like Goodreads.com or LibraryThing.com).

      Presently I keep a lot of this sort of data digitally myself using either/both: Calibre or Zotero.

    1. dstillman May 27, 2020 You don't need to use callbacks if you're doing this programmatically. translate() returns a promise with the items, so you'll have an empty array when it didn't import anything.
      • ok
    1. you can get the XPath for any element by finding it in the browser's Inspector tool, right-clicking on the element, and choosing Copy → XPath.
      • OK
      • CHROME: Inspect, r-c, Copy->XPath
      • Paste in notepad: expression XPath to get that value
    2. Many older web translators rely on XPath to extract information from HTML or XML
      • see
    3. Web translators generally use querySelector and querySelectorAll to extract content from web pages. Your browser likely provides an inspector tool to help you understand pages' structure. You can access it by right-clicking and selecting Inspect (Firefox) or Inspect Element (Chrome).
      • SEE
    4. lastUpdated The date and time when the translator was last modified (format “YYYY-MM-DD HH:MM:SS”). For the metadata to be read correctly, this line must be the last line in the JSON block.
      • IMPORTANT: modificar en cada cambio para que Zotero DETECTE el cambio
    1. Zotero can automatically create COinS from items in your library. Select the items in Zotero, right click, and choose “Export Items…”. Then choose COinS from the dropdown menu. Open the exported file to see the COinS metadata. Copy and paste this code into your web page editor. You can also set Zotero to use COinS as your default “Quick Copy” export format. Open the Export pane of Zotero preferences and select “COinS” as the Default Format. Then, you can drag and drop items from your library to your web page editor to insert COinS code. You can also copy COinS to your clipboad by pressing Ctrl/Cmd-Shift-C.
      • INTERESTING
    1. Zotero Web Translators Exposing bibliographic metadata through an open standard is very powerful (and also benefits non-Zotero users!). However, if you have little control over the way your website is built, you may have to create a Zotero web translator for Zotero-compatibility. Translators have some downsides: apart from the fact that they are a Zotero-specific solution, translators can break easily if the structure of the targeted website changes.
      • ok
    2. Alternatively, Zotero can be used to create COinS from references in your library, and these can dragged-and-dropped into your website or blog;
      • SEE
    3. Zotero users will be eternally grateful if you expose bibliographic metadata on your website.
      • ok
    1. /** * Get a promise for a HTTP request * * @param {String} method The method of the request ("GET", "POST", "HEAD", or "OPTIONS") * @param {String} url URL to request * @param {Object} [options] Options for HTTP request:<ul> * <li>body - The body of a POST request</li> * <li>headers - Object of HTTP headers to send with the request</li> * <li>debug - Log response text and status code</li> * <li>logBodyLength - Length of request body to log</li> * <li>timeout - Request timeout specified in milliseconds [default 15000]</li> * <li>responseType - The response type of the request from the XHR spec</li> * <li>responseCharset - The charset the response should be interpreted as</li> * <li>successCodes - HTTP status codes that are considered successful, or FALSE to allow all</li> * </ul> * @return {Promise<XMLHttpRequest>} A promise resolved with the XMLHttpRequest object if the * request succeeds, or rejected if the browser is offline or a non-2XX status response * code is received (or a code not in options.successCodes if provided). */ this.request = async function(method, url, options = {}) { // Default options options = Object.assign({ body: null, headers: {}, debug: false, logBodyLength: 1024, timeout: 15000, responseType: '', responseCharset: null, successCodes: null }, options); throw new Error(`Zotero.HTTP.request(): not implemented`); }; /** * Send an HTTP GET request via XMLHTTPRequest * * @deprecated Use {@link Zotero.HTTP.request} * @param {String} url URL to request * @param {Function} onDone Callback to be executed upon request completion * @param {String} responseCharset * @param {N/A} cookieSandbox Not used in Connector * @param {Object} headers HTTP headers to include with the request * @return {Boolean} True if the request was sent, or false if the browser is offline */ this.doGet = function(url, onDone, responseCharset, cookieSandbox, headers) { Zotero.debug('Zotero.HTTP.doGet is deprecated. Use Zotero.HTTP.request'); this.request('GET', url, {responseCharset, headers}) .then(onDone, function(e) { onDone({status: e.status, responseText: e.responseText}); throw (e); }); return true; }; /** * Send an HTTP POST request via XMLHTTPRequest * * @deprecated Use {@link Zotero.HTTP.request} * @param {String} url URL to request * @param {String|Object[]} body Request body * @param {Function} onDone Callback to be executed upon request completion * @param {String} headers Request HTTP headers * @param {String} responseCharset * @return {Boolean} True if the request was sent, or false if the browser is offline */ this.doPost = function(url, body, onDone, headers, responseCharset) { Zotero.debug('Zotero.HTTP.doPost is deprecated. Use Zotero.HTTP.request'); this.request('POST', url, {body, responseCharset, headers}) .then(onDone, function(e) { onDone({status: e.status, responseText: e.responseText}); throw (e); }); return true; };
      • doGET no es async
      • llama a request() sin await
  14. Aug 2022
  15. Jul 2022
    1. dstillman January 23, 2017 Just to note, it's better not to store the Zotero data directory in the Documents folder, which might be synced to the cloud (now or in the future), resulting in database corruption. Zotero 5.0 will use a "Zotero" directory at the root of your home directory, so that's what I'd recommend.
      • ok
    2. a combination of "Reset Translators" from the Advanced tab of the Zotero preferences followed by update now.
      • RESET translators
      • 1-Reset=included with installer
      • 2-Update now=last versiones
    1. Thanks for all the fantastic literature tips! Added to the list 😊

      If these are the types of things that are interesting, you might also try a shared bibliography that a handful of readers/researchers share and contribute to: https://www.zotero.org/groups/4676190/tools_for_thought

  16. Jun 2022
    1. Recommended preliminary reading  Antonini A., Benatti F., Blackburn-Daniels S. ‘On Links To Be: Exercises in Style #2’, 31st ACM Conference on Hypertext and Social Media (July 2020): 13–15. https://dl.acm.org/doi/10.1145/3372923.3404785   Grafton, Anthony. Worlds Made by Words : Scholarship and Community in the Modern West (Harvard UP, 2011).  Jackson, H. J. Marginalia: Readers Writing in Books (Yale UP, 2001).  –––. Romantic Readers: The Evidence of Marginalia (Yale UP, 2005).  Ohge, Christopher and Steven Olsen-Smith. ‘Computation and Digital Text Analysis at Melville’s Marginalia Online’, Leviathan: A Journal of Melville Studies 20.2 (June 2018): 1–16.  O’Neill, Helen, Anne Welsh, David A. Smith, Glenn Roe, Melissa Terras, ‘Text mining Mill: Computationally detecting influence in the writings of John Stuart Mill from library records’, Digital Scholarship in the Humanities 36.4 (December 2021): 1013–1029, https://doi.org/10.1093/llc/fqab010  Sherman, William. Used Books: Marking Readers in Renaissance England (U of Pennsylvania P, 2008).  Spedding, Patrick and Paul Tankard. Marginal Notes: Social Reading and the Literal Margins (Palgrave Macmillan, 2021). 

      An interesting list of readings on annotation.

      I'm curious if anyone has an open Zotero bibliography for this area? https://www.zotero.org/search/?p=2&q=annotation&type=group

      of which the following look interesting: - https://www.zotero.org/groups/2586310/annotation - https://www.zotero.org/groups/2423071/annotated - https://www.zotero.org/groups/2898045/social_annotation

      This reminds me to revisit Zocurelia as well: https://zocurelia.com

  17. May 2022
    1. adamsmith October 8, 2021 How are you renaming? Don't use Manage Attachments --> Rename (that's the Zotfile one). Instead use "Rename using parent metadata" which is the Zotero native option. That works for me.For the other question, no other wildcards like %j aren't currently available andyes, '{%y_}{%c_}{%t{50}}' would remove spaces and use underscores
      • ZOTERO rename
    1. bwiernik March 25, 2019 If you leave the location field empty in Zotfile Preferences, the files should rename without moving. elenahe March 25, 2019 edited March 25, 2019 Thank you for the tip! I got it halfway working but I'm still doing something wrong. When I click on "Manage attachement" - "Rename attachment" then it renames the linked file in zotero but not in my actual folder where the file is stored.
      • ZOTFILE: rename WITHOUT move
  18. Apr 2022
    1. seeingtheforest March 14, 2020 edited March 14, 2020 Is there any way to have a library full of items, collections, tags, etc... but have the linked file be online somewhere? The reason I ask is I'm putting together a library that I would like to share widely, but dont expect most people to want or be able to download all of it (will likely be 20+GB and targeted to people in the developing world). It would be great if they could just download a copy of the database, be able to browse and search it (especially using tags) and then download files as needed. I have come across the plugin for creating a website based on a Zotero library, which I suppose could be hosted and used for searching and downloading, but I really would love to have an "offline catalog" .I suppose it would be something akin to Microsoft OneDrive's functionality of Files On-Demand - you can see "shadow" versions of the files in your OneDrive folder, but have to download them in order to use them. Is there something like this that is compatible with Zotero?
      • GOOD IDEA
    2. - Devs have indicated that they're hoping to release a docker container that would make deploying Zotero server locally much easier.
      • ok
    1. // Hidden browser, which requires a browser window, needed for charset detection // (until we figure out a better way) win = await loadBrowserWindow(); fooItem = await importFileAttachment("search/foo.html"); foobarItem = await importFileAttachment("search/foobar.html"); bazItem = await importFileAttachment("search/baz.pdf"); userLibraryID = fooItem.libraryID; let group = await getGroup(); fooItemGroup = await importFileAttachment("search/foo.html", { libraryID: group.libraryID }); foobarItemGroup = await importFileAttachment("search/foobar.html", { libraryID: group.libraryID }); bazItemGroup = await importFileAttachment("search/baz.pdf", { libraryID: group.libraryID }); }); after(function* () { if (win) { win.close(); }
      • IDEA
      • abrir browser para cookie?
      • antes de importfrom url
    1. /** * @param {Object} options * @param {Integer} options.libraryID * @param {String} options.url * @param {Integer} [options.parentItemID] * @param {Integer[]} [options.collections] * @param {String} [options.title] * @param {String} [options.fileBaseName] * @param {Boolean} [options.renameIfAllowedType=false] * @param {String} [options.contentType] * @param {String} [options.referrer] * @param {CookieSandbox} [options.cookieSandbox] * @param {Object} [options.saveOptions] - Options to pass to Zotero.Item::save() * @return {Promise<Zotero.Item>} - A promise for the created attachment item */ this.importFromURL = Zotero.Promise.coroutine(function* (options) { var libraryID = options.libraryID; var url = options.url; var parentItemID = options.parentItemID; var collections = options.collections; var title = options.title; var fileBaseName = options.fileBaseName; var renameIfAllowedType = options.renameIfAllowedType; var contentType = options.contentType; var referrer = options.referrer; var cookieSandbox = options.cookieSandbox; var saveOptions = options.saveOptions; Zotero.debug('Importing attachment from URL ' + url); if (parentItemID && collections) { throw new Error("parentItemID and collections cannot both be provided"); }
      • IMPORTANT
      • an attachment can NOT be 1-inside a Item AND 2-outside, in a Collection.
      • its XOR
    1. dstillman October 10, 2017 Linked files have never been available in group libraries, and won't at least until there's support for a per-library base directory setting. (It's a bug that the dialog recommends that function in group libraries, but it's not a new problem — file: URIs have been rejected with that message since 4.0.25.1 in January 2015. I've created an issue to remove that line in that case.) SiGi October 11, 2017 @dstillman: "Linked files have never been available in groups" is not correct. In my group lib I have added an Link to URI using the file:// protocol on Oct 2016. And it works fine for our local group. (Perhaps it was possible with the firefox-version of Zotero4.x at that time, and is now missing in the stand alone version of Zotero5). dstillman October 11, 2017 "Linked files have never been available in groups" is not correct. It is. "Attach Link to URI" creates a linked URL attachment, not a linked file attachment.The code that should block file: linked URL attachments via "Attach Link to URI" existed in 4.0.29.15 in January 2015, but it's possible it was/is accidentally allowed via some other method (e.g., bibliographic file import). It's not meant to be supported, both for the same reasons that linked files aren't supported in groups and because file: URLs are much more awkward and limited than linked files.
      • SEE
    1. dstillman March 7, 2021 edited March 7, 2021 getFilePath() only returns cached paths. Use await item.getFilePathAsync() in general.
      • EXAMPLE
    1. Open prefs.js in the Zotero profile directory in a text editor and delete the lines containing extensions.lastAppBuildId and extensions.lastAppVersion. Save the file and restart Zotero. This will force Zotero to read the 'extensions' directory and install your plugin from source, after which you should see it listed in Tools → Add-ons. This is only necessary once.
      • DOESNT WORK
    1. doesn't actually address finding the right pdf for the right item, which really is the main task here.
      • OK
    1. dstillman May 11, 2020 You can see JavaScript API, but there's not much documentation currently.Not tested, but running this from Tools → Developer → Run JavaScript will probably work:var items = await Zotero.Items.getAll(Zotero.Libraries.userLibraryID, true);for (let item of items) { if (!item.isRegularItem()) continue; let ids = item.getAttachments(); for (let id of ids) { let attachment = await Zotero.Items.getAsync(id); let tags = attachment.getTags(); for (let tag of tags) { item.addTag(tag.tag); } attachment.setTags([]); await item.saveTx({ skipDateModifiedUpdate: true }); await attachment.saveTx({ skipDateModifiedUpdate: true }); }}
      • EXAMPLE
    1. johnmy April 27, 2021 I tried this Zotero.Items.trashTx(id), however, after the zotero trash was empty, the attachment file still remains in the linked folder.
      • TRASH(id) instead ERASE
    1. dstillman November 30, 2017 I'm flux meaning "don't bother for a while"? I'm fine with that. Yeah, not sure when I'll get to it, but I'm planning to update some of the existing import translators to use async/await, so those should be able to serve as examples (and possibly prompt additional modernization of the translator architecture).
      • ASYNC
    1. zuphilip February 2, 2020 I already provide a MARC21XML export translator at https://github.com/UB-Mannheim/zotkat and happy to collaborate on that, if that suits your use case. For yes/no decisions I used some uncommon displayOptions.You can also use the (hidden) Zotero preferences and create some customized fields there, or it should be possible to read a JSON file which can be placed besides the translator file.It is also possible to look up data within Zotero, e.g. for author data from a authority file, and append this information to the entries. However, at some point I guess that making a Zotero cataloguing plugin would be the way to go.
      • SEE
    1. If you're able to load that URL but the Zotero Connector shows Zotero as unavailable, try these steps until the problem is resolved: Uninstall and reinstall the Zotero Connector. Temporarily disable any browser extensions that may block network requests, such as AdBlock, uBlock Origin, NoScript, EFF Privacy Badger, or Request Policy. If the Connector stops saying that Zotero is offline, reenable each extension one at a time and, if the problem recurs, whitelist 127.0.0.1 port 23119 in the extension's settings. Temporarily disable any other installed extension. Try in another browser. Create a new profile in your original browser. If this fixes the problem, something is wrong with your original profile, and you'll need to either identify the problem or transfer your bookmarks, history and other data to the new profile.
      • PROBLEMS
    1. Always assume original resource — instructs Zotero Robust Links to ignore whether or not the URL in the URL field of an item comes from a web archive and always create a new memento from the URL — do not modify this setting unless you fully understand its implications
      • DEFAULT???
      • RECOMMENDED??
      • TEST
    1. Paste item type (‘Paste-type’): Paste the item type of the source item to the target items. This will not change item field values. However, changing the type of a Zotero item modifies the list of its valid fields. It's important to realize that data in invalid fields will be lost!
      • INDEPNEDENT FUNCTION: change itemType!
      • WARNING: could lose data
    2. Paste all item fields (‘Paste-all’): Paste all item fields from source, even if they are empty. To edit specific item fields, select a source item and use "Copy item fields". Paste to a text editor, edit the JSON text, then copy the modified text back to the clipboard. Finally, select the target items and use "Paste all item fields". The itemType name/value pair needs to be kept in the JSON text because Zutilo uses its presence to decide whether to use the paste JSON commands in the context menu; its value is irrelevant for this function. You can, e.g., clear the URL field in multiple items by pasting {"itemType": "book", "url": ""}, which will not change any item types.
      • GOOD IDEA:
      • REQUIRED; field "itemType", but doesnt replace it!
    3. Paste into empty item fields: (‘Paste-into-empty’) paste where source has value and target has none/empty. Authors from the source are merged in even if the target already has authors.
      • WARNING: exception= authors, are merged
    4. Copy child items: Copy the child items of a selected item to an internal Zutilo clipboard (not the desktop clipboard). This function is meant to be used in conjunction with the "Relocate child items" function. Relocate child items: Move all items stored in Zutilo's internal clipboard (put there by the "Copy child items" function) to the currently selected item.
      • TEST
      • IMPORTANT: IT MOVES items!
    5. Item menu functions
      • DOC MENU
    1. Copy + edit + Paste-all: Clearing certain item fields in a large number of records You are creating a public library B from a library A. In this process, you want to clear some fields from a set of items in library B. For example, you may wish to remove a set of archive locations, or extras, or similar. Create a blank item (of the same type), copy it. Edit the JSON on the clipboard to keep only fields to be cleared. Then use Paste-all to clear those fields in a number of source items.
      • GOOD IDEA
    1. retorquere commented on Sep 27, 2017 Can you walk me through what the async importers do, conceptually? I'm looking at the Zotero CSL-JSON translator as that seems the simplest translator that does async import, but I'm not fully grokking what is going on. I think that if async is set to true in the config options, item.complete will return a promise. Is that correct? Is Promise.coroutine available in the translators? Would I be mostly set by just wrapping doImport with Promise.coroutine and yielding on item.complete()?
      • WITHOUT ANSWER!
      • SEE CSL-JSON translator
    2. dstillman commented on Jul 5, 2017 • edited Import and search translators in 5.0 should account for the possibility of an item.complete() that returns a promise. This allows for items to be saved to disk individually using the asynchronous database access in 5.0. These translators should also return a promise from doImport(). Translators can indicate that they support asynchronous saving with an "async": true property in the configOptions. For translators that haven't been updated, items will be added to a queue and saved together at the end of the import process, which for large imports can hang the UI for an extended period. The native Promise object is available in all modern browsers, but native promises aren't currently available in child sandboxes or in some older browsers (e.g., Safari under 10.8), so translators should use typeof Promise == 'undefined' to determine whether doImport can return a promise. (I don't think we can use a polyfill because setTimeout() also isn't available in the sandbox.) For now, this won't affect web translators, including web translators that call import translators. Those will still queue items and save them at the end. I'll post a PR shortly with an updated BibTeX translator as an example.
      • SEE
    1. for (const lib of Zotero.Libraries.getAll()) { for (const item of await Zotero.Items.getAll(lib.id)) { if (!item.isRegularItem()) continue await item.loadAllData() await Zotero.BetterBibTeX.KeyManager.pin(item.id) } }
      • ALL items
    1. Rintze December 5, 2011 With regard to broken translators, do the Zotero clients phone home any details on save failures? (there is a preference checkbox "Report broken site translators" which suggests they do)I don't mind fixing up a few more translators, but it would be nice to know which translators fail most often. ajlyon December 5, 2011 It does phone home, but I'm afraid those reports are going into a black hole for now; I've noticed the requests in various logs, but I've never been notified of a failing translator by the Zotero team. It'd be great if the translator list / status page integrated explicit tests and such error reports. adamsmith December 5, 2011 there is, of course, also a good number of translators who don't trigger any errors, because they don't detect. Rintze December 5, 2011 Yes, but I would argue that non-detecting translators are less frustrating to users. dstillman December 7, 2011 Here's a start:https://repo.zotero.org/errorsThe actual error reports aren't public for privacy reasons (and we're not displaying absolute numbers), but we can provide example error strings and URLs on request. We also might be able to have this automatically display error strings that show up across many reports (e.g., "TypeError: scisig is null" for Google Scholar), since short of major site breakages it will probably be hard to debug many of these without examples.Note that the Google Scholar results are greatly skewed by Retrieve Metadata attempts, and DOI is also showing mostly "could not find DOI" errors. I'm hoping detection can be tightened on those (e.g., to remove the folder icon on a Google Scholar search with no results), which would allow this to better show actual error frequency. ajlyon December 7, 2011 I'll try to work on detection. Automatic display of common error strings would be very useful, as well as some general idea of how many errors we're talking about-- for something like ScienceDirect, are we talking about 10 errors? 100? 1000?Also, does this filter out data from clients with out-of-date translators or Zotero versions?Thanks for putting this up! It's sure to be useful in the coming weeks and years. Rintze December 7, 2011 Like ajlyon, I think some indication of the number of errors per translator would be very useful. And could the list be expanded to show more than the top 10 translators (say the top 50)?Also, would it be possible to create somewhat comprehensive reports with, say, 10 error strings and URLs for each translator to send to ajlyon, adamsmith and me, so we don't have to submit individual requests per translator? I'd hope we have established ourselves as at least somewhat trustworthy (and I assume all three of us would be more than willing to sign any privacy agreement). ajlyon December 8, 2011 Thanks for upping the number visible.What's going on with the outdated translators? There are people out there with three different ScienceDirects, two DOIs... Is that just people with updating off? Or something else? dstillman December 8, 2011 OK, updated again with absolute numbers and per-error breakdowns. Hover over each segment for error details. I don't think any page data will make it into the errors, but to be safe I'm displaying only errors coming from at least three addresses that don't include the string "http" in them—the rest get lumped together at the end in blue. If you notice anything that shouldn't be in there, let me know.We might be able to display URLs that show up across enough addresses, though there may not be enough of those. What's going on with the outdated translators? Those are all <2.1.9. Not much we can do for those folks.
      • ABOUT property "Report broken translators"
    2. adamsmith October 19, 2011 great! the spreadsheet can be edited by anyone - I don't expect vandalism (although you never know what Thompson/Reuter is up to after sunset).
      • HAHAHA!!!
    1. let items = await this.Zotero.Items.getAsync(results);The Javascript API page (https://www.zotero.org/support/dev/client_coding/javascript_api) tells me to use 'await', like in the example above. However I get a JS SyntaxError: await is only valid in async functions and async generators.If I look at the source code (https://github.com/zotero/zotero/blob/master/chrome/content/zotero/xpcom/data/search.js)I get the following SyntaxError: yield is a reserved identifier.What am I missing? bm_nomis December 19, 2020 I just found the answer myself. The calling function had not been defined as async.
      • IMPORTANT: await needs function defined with async
    1. adamsmith April 9, 2014 I don't think so. You're aware Zotero can do this, though?
      • BUT I WANT ZOTFILE RULES TO RENAME!
    2. shivams April 9, 2014 Using Zotfile, whenever you rename an attachment, it is also moved by default. If the "Location of Files" in Zotfile preferences is set to "Attach stored copy of files", it will move the attachment from its original location and save it as a copy in Zotero. If the option is set to a "Custom Location", it will move the file to the given custom location. What I want is that while renaming an attachment, it should not be moved. Is their any way to do this? Is their any setting that I can change to do this?
      • I WANT THE SAME
    1. emilianoeheyns September 23, 2018 I think ZotFile does what you want. 01baftb September 24, 2018 @emilianoeheyns You're correct, I must configure the "Linked Attachments Base Directory" before zotero-link-local-files plugin can silently make imports as a "Link to file".
      • link ONLY if location inside Base dir
    2. emilianoeheyns September 23, 2018 I can't comment on what should or should not be part of baseline Zotero. I haven't worked on that plugin in a long while but I think it only links files that live in the folder selected in "Linked Attachments Base Directory". No idea how that came about, but that's how it is. I think.
      • WHAT FOR?
      • dstillman says that Zotero saves relative paths in sqllite DB if location inside Base Dir
    1. adamsmith July 30, 2013 ZotFile can convert attachments stored in Zotero to linked attachments in a target folder. It can do so in batch.That would effectively mean moving files in and out of Zotero, though, rather than just linking to existing ones.
      • OK, but ALSO moves links to external locations
      • I DONT WANT to move these
      • I WANT to move ONLY internal files
    1. dstillman June 6, 2020 It's a misunderstanding.The Linked Attachment Base Directory setting doesn't affect where files get stored — it just affects how the paths for linked files are saved in the database (absolute vs. relative). Read the documentation for an explanation.If you want to use linked files, the ZotFile plugin can help convert stored files to linked files in a location of your choosing (which you'd generally want to be the same as the Linked Attachment Base Directory so that the files could be accessible on other computers even if the path was different).
      • VERY LIMITED
      • I have got PDFs in different locations!
      • I WANT to link to the absolute location at import
    2. but files are still imported under the data directory (storage folder)
      • ITS A BUG!
      • Zotero 6: menu Import, option Link to original location

      • Example: export with files:

      • If path is relative: creates link to original

      • Example: export without files:

      • BUT if path is absolute: copy into storage!!!
    1. Discovered via Nate

      I was a bit surprised to see how many entries there were for #DoOO in the collaborative Opening Knowledge Practices bibliography. You could probably do worse than to start with the first two entries, A brief history parts 1&2 by Jess Reingold et al: https://t.co/CkhgaHgb0E

      — Nate Angell (@xolotl) March 8, 2022
    1. Groups allow structuring of bibliographic libraries in a tree-like way that is similar to organizing files on disk in directories and sub-directories. The two main differences are:While a file is always located in exactly one directory, an entry may be contained in more than one group.Groups may use certain criteria to dynamically define their content. New entries that match these criteria are automatically added to these groups. This feature is not available in common file systems, but in several Email clients (e.g. Thunderbird and Opera).
      • GROUP jabref -- similar-- COLLECTION zotero
    1. // Connect to (and create, if necessary) helloworld.sqlite in the Zotero directory this.DB = new Zotero.DBConnection('helloworld');   if (!this.DB.tableExists('changes')) { this.DB.query("CREATE TABLE changes (num INT)"); this.DB.query("INSERT INTO changes VALUES (0)"); }
      • IDEA: create DB sqlite with relations data
    1. You can install this plugin via the Obsidian "Third-party plugin interface." It requires Obsidian 0.9.20 or higher. Once the plugin is installed, you must provide it with a bibliography file: If you use Zotero with Better BibTeX: Select a collection in Zotero's left sidebar that you want to export. Click File -> Export library .... Select Better BibLaTeX or Better CSL JSON as the format. (We recommend using the BibLaTeX export unless you experience performance issues. The BibLaTeX format includes more information that you can reference from Obsidian, such as associated PDF attachments, but loads more slowly than the JSON export.) You can optionally choose "Keep updated" to automatically re-export the collection -- this is recommended!
      • BBT: export + keep updated
    1. https://forums.zotero.org/discussion/8014/no-doi-field-for-books/p2 Someone wanted to use DOI from the extra field for books where they provide it explicitly, I thought we did this but if not, should be easy enough...
      • ZOTERO
      • DOI for book
    1. Really need that option of a DOI field in books as it is essential to being able to properly use the Scite plug-in as well. It requires a DOI to update the citations and provide a report. Without an actual DOI field for it to read, it just won't work. I have tried adding a DIO to extra and URL and Scite just won't read it, unfortunately.
      • ZOTERO
      • DOI for Book
  19. Mar 2022
    1. https://github.com/stefanopagliari/bibnotes

      This plugin generates literaure notes from the source stored in your Zotero library, including both the metadata and the annotations that are stored within Zotero (extracted using the native PDF Reader or the Zotfile plugin). The settings of the plugin provide different tools to customize the format of the literature notes, as well as to perform different transformations to the text of the annotations.

      See also: https://forum.obsidian.md/t/bibnotes-formatter-new-plugin-to-export-and-format-annotations-from-zotero-into-obsidian/29920

    1. https://www.zotero.org/blog/zotero-6/

      Starting in version 6, Zotero will allow you to view annotations previously made in Adobe software. It will also let one extract all the annotations from within a text and save them into a note in Zotero and then export them as markdown into Obsidian or other tools.

    1. I already have several highlights made by external pdf applications like ocular. These annotations are being detected by the pdf viewer used by this plugin. I wanted a way to add the existing annotations to markdown instead of having to repeat the process. As you can see, the highlights' metadata is being detected upon clicking the highlights. What can be done is add 2 options - Either import all existing annotations and highlights Import the selected annotation/highlight I would love to see this feature being added

      The work to add this particular feature to the plugin may be quite a lot, but for those who want it in the erstwhile and for the developers as an example, one might try looking at https://forum.obsidian.md/t/zotero-zotfile-mdnotes-obsidian-dataview-workflow/15536.

    1. Publicaciones
      • chequear información de las publicaciones. Hay algunos NA
      • Tuve problemas con :La educación ciudadana escolar de Chile "en acto". Prácticas docentes y expectativas de participación política de estudiantes (no está en el sitio)
      • Chequear las publicaciones "uncategorized" y revisar si están bien en Zotero, corregir si es necesario.
    1. Does mdnotes work with the Zotero beta? Short answer: No. The old workarounds might have stopped working with some of the latest upstream changes
      • PLUGIN MDNOTES
      • WHAT???
      • STOPPED WORKING
    2. others have mentioned categorization, but I found no way to do that
      • WHY?
    3. individual tagging of the annotations, I however couldn't get Zotero to show my annotations by filtering tags
      • BUG?
    4. The extracted annotations when saved as a note don't have the zotero:// link to the page. They have added something similar that works within Zotero, but that makes it useless right now if you want to export/copy-paste that note somewhere else.
      • OK
      • USELESS
    1. Features Lost And there’s unfortunately a feature lost in notes: the new note system does not allow for HTML editing, nor does it currently have the old highlighting. Looking at the comments in the Zotero forum, HTML editing is not coming back, since the notes won’t use HTML.
      • BAD!
    2. But there’s more – the pasted material has a citation at the end, allowing me an option to “Go To Page.” Clicking on that citation does what it says – it jumps to the page of the PDF. In addition, I tested this feature without a PDF open: clicking on it opens the PDF associated with the note in a new tab and jumps to the page. That’s a fantastic feature.
      • NOTES WITH REFERENCE
    3. This feature is great, and it makes me want more: could I eventually open search folders in a new tab? Group libraries? If so – managing my library will get so much easier.
      • REQUESTED MANY YEARS AGO!
      • SEE FORUM
    1. The note editor is built on ProseMirror, a powerful open-source framework for building rich-text editors (used in Zotero's sibling project, Tropy) that enables us to enhance notes with all sorts of Zotero-specific functionality. You can quickly jump back from annotations and citations in a note to the original location in the PDF or to the item in your library. You can edit a citation in a note using the same citation dialog used for the word processor plugins.
      • ZOTERO 6
      • NOTE EDITOR changed
    1. 3/8/2021: Zotero 6 will be coming out some time in 2022, and it makes some major changes. You will now be able to view and annotate PDFs inside of Zotero,and have multiple tabs of PDFs open. This is *amazing* - its more integrated than Zotfile (although Zotfile pdf annotation still has its uses) - and you can read more here and install the beta if you want to (I'm using it now). It makes one major change that will require some adjustment however - the Notes menu will look completely different, and offer some cool new functionality (i.e., embed citation in a note). However, it's going to move from its current tool menu to something different, and to do things beyond basic things like bullets or numbered lists or block quotes you will need to use a markup system called Markdown. It's actually not that complicated and some of it is built into Zotero Notes directly (i.e., control-I turns on italics) but other functionality is a bit hidden and more will take Markdown syntax. Markdown Cheatsheet example - here's another one (A side note - learning MarkDown will also open some additional opportunities to you in terms of note-taking software, etc. I'm going to be experimenting with this over the summer and will be offering workshops in late summer/early fall).  a review (not from me yet) - note, Zotfile would have solved some of his pre-Zotero problems!
      • ZOTERO 6
  20. Feb 2022
    1. https://www.zotero.org/save?type=

      URL for adding URL, ISBN, DOI, PMID, or arXiv IDs to one's Zotero account.

      I've created a mobile shortcut using the URL Forwarder app to accomplish this with a share functionality after highlighting an ISBN.

      Might also try using https://play.google.com/store/apps/details?id=com.srowen.bs.android&hl=en with the added custom search query custom search URL https://www.zotero.org/save?q=%s to see if that might work as well. This should allow using a scanner to get ISBN barcodes into the system as well. Useful for browsing at the bookstore.

      I should also create a javascript bookmarklet for this pattern as well.

      See also: - https://forums.zotero.org/discussion/77178/barcode-scanner - https://forums.zotero.org/discussion/76471/scanning-isbn-barcode-to-input-books-to-zotero-library

      Alternate URL paths for this: - https://www.zotero.org/save?type=isbn - https://www.zotero.org/save?q=

    1. A third introduced me to an app that allowed us to upload bibliographic data to our personal databases just by scanning a book’s ISBN number with a phone camera.

      I'm pretty sure I can wire up something simple to do this to dovetail with Zotero.

  21. Jan 2022
    1. I've not seen any doing sessions on Obsidian or Research Rabbit yet, but many (college/university) libraries have group sessions, usually at the outset of quarters/semesters, that walk through the functions in citation managers like Zotero, etc. This might be a useful way of offloading some of the teaching of the technology as well as helping to make it more commonplace across institutions.

    2. https://danallosso.substack.com/p/three-basic-elements-of-taking-notes

      Allosso outlines a bit about how he dovetails Research Rabbit (discovery), Obsidian (writing, linking), and Zotero (citations, reading).

    1. adamsmith October 15, 2018 Add Item by Identifier will work for any DOI registered in Crossref or a half-dozen other DOI registrars Really? I thought we currently "just" covered CrossRef, DataCite, and Airiti? - which does still mean it almost always works; that's probably 95%+ of active DOIs, but if there's code already that covers others, that'd be good to know as I was just going to put some work towards that. dstillman October 15, 2018 We also have DOI translators for EIDR and mEDRA.
      • DOI agencies
      • Zotero probes them, when search for a DOI
    1. HughP commented on Sep 26, 2018 • edited I feel a bit foolish, but yes there is a Preference Pane. I found it now. Note that Zotfile puts menu item in the Tools menu for the preference. This was where I was looking, and therefore didn't see it.
      • TOOLS MENU: doesnt appear
      • PLUGINS: dosnt exist Preferences button!!!
    1. Work{institution#/definitions/WorkInstitutionWorkInstitution{...}indexed*#/definitions/DateDate{...}posted#/definitions/DatePartsDateParts{...}publisher-locationstringupdate-to[...]standards-body[...]edition-numberstringgroup-title[...]reference-count*integer($int64)publisher*stringissuestringisbn-type[...]license[...]funder[...]content-domain*#/definitions/WorkDomainWorkDomain{...}chair[...]short-container-titlestringaccepted#/definitions/DatePartsDateParts{...}content-updated#/definitions/DatePartsDateParts{...}published-print#/definitions/DatePartsDateParts{...}abstractstringDOI*stringThe DOI identifier associated with the work type*stringcreated*#/definitions/DateDate{...}approved#/definitions/DatePartsDateParts{...}pagestringupdate-policystringsource*stringis-referenced-by-count*integer($int64)title*[...]prefix*stringvolumestringclinical-trial-number[...]author*[...]member*stringcontent-created#/definitions/DatePartsDateParts{...}published-online#/definitions/DatePartsDateParts{...}reference#/definitions/ReferenceReference{...}container-title[...]review#/definitions/WorkReviewWorkReview{...}original-title[...]languagestringlink[...]deposited*#/definitions/DateDate{...}score*integer($int64)degreestringsubtitle[...]translator[...]free-to-read#/definitions/WorkFreeToReadWorkFreeToRead{...}editor[...]component-numberstringshort-title[...]issued*#/definitions/DatePartsDateParts{...}ISBN[...]references-count*integer($int64)part-numberstringjournal-issue#/definitions/WorkJournalIssueWorkJournalIssue{...}alternative-id[...]URL*stringarchive[...]relation#/definitions/WorkRelationWorkRelation{...}ISSN[...]issn-type[...]subject[...]published-other#/definitions/DatePartsDateParts{...}published#/definitions/DatePartsDateParts{...}assertion[...]subtypestringarticle-numberstring}
      • SEE: FIELDS
      • COMPARE: with Zotero fields
    1. Tip 8 You can click the DOI and URL field labels to open the field link:
      • OK: click on Label
    2. Tip 5 You can convert the contents of the "Title" and "Publisher" fields to either sentence or title case by right-clicking the field and using the Transform Text menu.
      • CASE: Title or Sentence
    3. Tip 3 To see the number of items in the selected library or collection, click an item in the middle column and use the Select All shortcut:  Command + A on Mac OS X or Control + A on Windows and Linux  A count will appear in the right column:
      • SELECT ALL: "CTRL" + "a"
    4. "Control" key on Windows
      • WHICH COLLECTION?
    5. Tip 2 Press "Shift" and “+” (plus) on the keyboard within a collections list or items list to expand all attachments, and “-” (minus) to collapse them.
      • ME: ONLY with "+"/"-" keys, WITHOUT "Shift"
    1. Questions Still have questions? Check the following FAQ entries, or, if these don’t answer your question, use the Zotero forums: Can I use Zotero in one language and create bibliographies in another? DOI format in APA style Does Zotero support label/authorship trigraph styles, like [ddb98]? How can subsequent occurences of the same author replaced by a fixed term/symbol? How do I prevent title casing of non-English titles in bibliographies? How do I use rich text formatting, like italics and sub/superscript, in titles? How do you cite a secondary source in Zotero? How does Zotero parse things in the name fields? I need to use Chicago style. Which of the three versions that come with Zotero should I use? I'm the publisher/editor of a journal. What can I do to have Zotero support our style? Journal Abbreviations Missing Italics (or Italics-Only) in Word Bibliographies References appear in the wrong font in Word/LibreOffice Standard Citation Styles What are these DOIs doing in my bibliography? What is the official Harvard style? Why do some citations include first names or initials, and how can I prevent this from happening? Why don't titles show up in sentence case in bibliographies? Why isn't the first letter of a subtitle in uppercase in bibliographies?
      • LINKS to Zotero doc!
      • GOOD!
    2. You can also install CSL styles (with a “.csl” extension) from local files on your computer (e.g., styles that you edit yourself or that you download from another website). In the Zotero Style Manager, click the '+' button, then find the style file on your computer.
      • CSL styles
    1. Zotero currently uses the title, DOI, and ISBN fields to determine duplicates. If these fields match (or have no information entered), Zotero will also compare the years of publication and author/creator lists (if at least one author last name plus first initial matches) to determine duplicates.
      • DUPLICATED ITEMS
      • Merge them
    1. Debug Output Logging: To help diagnose a problem, the Zotero developers may ask you to submit a Debug Log ID. This is different from an Error Report ID above. To submit a debug log, check “Enable Logging”, then complete the sequence of steps neeeded to produce your error. Then, click “Submit Debug Report” and post the Debug ID number to the Zotero forums. Try to avoid performing unrelated actions when making a debug log.
      • DEBUG ID in Forums
    2. Automatic File Importing: By default, the Zotero Connector will offer to import RIS, BibTeX, and Refer/BibIX bibliographic files when you open them in your browswer. You can disable this feature or manage the sites from which data is imported here.
      • ???
    3. Save to Zotero.org: When the Zotero desktop client is closed, the Zotero Connector will save directly to the zotero.org servers. These settings let you reauthorize your broswer to save to your zotero.org account or clear your account credentials. You can also control whether PDF attachments and web page snapshots are automatically saved when importing to zotero.org.
      • ZOTERO LIB
    1. the-solipsist commented on Mar 9, 2019 • edited Unfortunately, %g adds a ,, which doesn't work in those cases where there is not first name / surname (for instance, institutional authors). In those cases, %g ends up adding a comma in the end of the name. Additionally, %g provides a "Surname, Firstname" format, and there is no expression for "Firstname Surname", which some would prefer.
      • PROBLEM
    2. QingQYang commented on Aug 11, 2015 I have solved this problem by adding wildcard %g for author's full name as the style of Zotero's two fields display. Please check the pull request #193, thanks.
      • %g works!
    1. target
      • TARGET: for Search translators???
      • no sense
    2. Search translators: can look up and retrieve item metadata when supplied with a standard identifier, like a PubMed ID (PMID) or DOI.
      • OK, IMPORTANT:
      • "official" arXiv translator: espera campo { arXiv: }
    1. open a specific profile from the command line with the -p flag (e.g., -p Work),

      -OK: shortcut

    2. To create an additional profile, start Zotero from the command line and pass the -P flag to open the Profile Manager:
      • OK, as in Firefox
      • zotero.exe -P
    1. acortinois April 16, 2021 Well, it looks like we all need multiple windows but this forum has been active for four years and nothing seems to have changed... :)
      • OK
    1. Old papers in archives where the archive name matches the primary subject classification (e.g. hep-th) do not have the square brackets with primary subject classification
      • OK, exception in zotero translator
    1. adamsmith 20 days ago DOI: in extra works for citations. We'll get a preprint item type and DOI added to all item types, but in the meantime that'll just work
      • WAINTING for this PREPRINT type
    2. dmilton 20 days ago The problem with using "Report" type for preprints is that it does not keep the doi -- only if it is imported as a journal article does the doi get saved. Please add doi to the "Report" fields -- I find myself having to change to type "Journal Article" to perserve the doi.
      • HERE!
      • THIS IS "THE" REASON to type=journal fro arxiv
      • Workaround: DOI: in Extra
    1. When I said "migrated automatically", I was referring to the item becoming Zotero Preprint items when that type is added in the future.
      • OK, UNERSTOOD AT FIRST!
    2. bwiernik June 18, 2021 Zotero will get a Preprint type in an upcoming version. For now, the appropriate way to enter them is as a Report with this at the top of Extra:Type: articleThat will be migrated automatically to Preprint when the type is added.
      • HERE!
      • upcoming??? WHEN???
    3. stared June 18, 2021 This function is useful for numerous reasons. Primarily for listing preprints (e.g. arXiv, biorXiv) and PubMed codes.See "eprint" as officially listed in an arXiv instruction (https://arxiv.org/help/hypertex/bibstyles) and Getting DOI / arXiv links with BibTeX (https://www.math.cmu.edu/~gautam/sj/blog/20171114-bibtex-doi.html), as well as some older approaches e.g. mine for giving link to arXiv for Mendeley exports https://gist.github.com/stared/5473014.Yes, it is a pity that proprietary Mendeley owned by Elsevier provides better support for open archives.
      • SEE
    4. emilianoeheyns September 27, 2020 Since Better BibLaTeX is already omitting Zotero's Publication field for arXiv preprints, it should probably export as '@misc' or '@online', not '@article'. That is a good point. Could you open an issue for it on BBTs github tracker? Therefore, a BBT postscript should better not depend on Publication being empty or on the presence of an arXiv ID If BBT detected an arXiv entry in any way you, in the postscript item will have an attribute item.arXiv which looks like { id: <arXiv ID>, category: <arXiv category, if found> }
      • BBT
      • If BBT detected an arXiv entry in any way you, in the postscript item will have an attribute item.arXiv which looks like { id: <arXiv ID>, category: <arXiv category, if found> }
    5. adamsmith September 23, 2020 Here's the history on why we're importing arXiv preprints as journal articles:https://github.com/zotero/translators/issues/616If things has changed (e.g. if sites like ADS and INSPIRE are handling this differently now) we can change this on the import end of things, too, but it's really not so clear cut as to say it's wrong.
      • SEE
    6. emilianoeheyns September 23, 2020 The bibtex entry recommended by arXiv for example, asks for preprint items to be @misc Where do they ask this? If this is how arXiv items should appear generally, I could adjust BBT to change the entry type. Right now, BBT will add the eprint fields if you either: Set the Library Catalog to arXiv or arXiv.org and the Journal name to the arXiv ID Add arXiv: <arXiv ID> to the extra field on a line of its own
      • BBT:
      • example: journaltitle = {{arXiv}}, shortjournal = {{arXiv}-2005.14432v1 [quant-ph]}, eprinttype = {arxiv}, eprint = {2005.14432v1 [quant-ph]},
    7. adamsmith September 23, 2020 There will almost certainly be a Zotero preprint item type added the next time any item types are added. No ETA, but the hope is that this isn't too far off (i.e. months not years)
      • now: 2022-01: no field
    1. tdegeus November 2, 2021 +100 on this. It would be great though to simply have a field arxivid (that could be potentially activated on request). This would catch the case that the same article is on multiple preprint servers (which could happen I guess). dougwyu November 27, 2021 yes please add a preprint category. biologists use BioRXiv a lot!, and i have to hand-edit every downloaded article.
      • many request, but no response!
    1. dstillman October 11, 2018 edited October 11, 2018 I've added support for the former in the latest beta.zotero://select/library/collections/:collectionKeyzotero://select/groups/:groupID/collections/collectionKey
      • HOWTO use?
    1. emilianoeheyns
      • emilianoeheyns
      • BBT author
    2. adamsmith May 8, 2018 I don't think that's possible for technical reasons at this time because the citekey is generated & stored by the BetterBibTeX extension and not Zotero itself. It's likely going to be possible in the future. bwiernik May 8, 2018 Yes, the BBT developer had to disable citekey searching because it was interfering with other parts of Zotero. You can show the citekey as a column in the center pane and sort on that.
      • In 2018, and now? [2022-01]
    1. the collections pane supports find-as-you-type, so if you want to switch to a given library or collection you can press Cmd-Shift-L/Ctrl-Shift-L to highlight the collections pane and then start typing the name of the library or collection to select it. (If a library was collapsed and you wanted to get to a collection, you'd need to type the name of the library and then press right-arrow or + to expand collections (depending on how nested the one you were looking for was) and then type the collection name.)
      • CRTL + SHIFT + L
      • selects as typing

      • REQUEST: Filter PANE! (like Calibre or Qiqqa)

        • Filter for: author, Pub, year, tags, etc
    1. identifiers (one on each line). Once you've typed all the identifiers, press Shift+Enter/Return to import all the items at once. You can also paste a list of multiple identifiers (each on a separate line), then press Shift+Enter/Return to finish. Zotero uses the following databases for looking up item metadata: Library of Congress and WorldCat for ISBNs, CrossRef for DOIs, NCBI PubMed for PubMed IDs, and arXiv.org for arXiv IDs.
      • ZOTERO: add item (magic icon)
      • use Search-type translators?
        • YES!: Search translators MUST detect fields ID: {ISBN, DOI, arXiv, etc}
    1. doGet()/doPost() return raw text, which is useful for anything retrieving BibTeX/RIS/etc. It would be nice to be able to just do var ris = await request(url);.
      • ok
      • INTERESTING
      • ZOTERO translators
    1. Try something like this (untested): var s=document.createElement('script'); s.type = "text/javascript"; s.src = "test.js"; document.body.appendChild(s); ShareShare a link to this answer Copy linkCC BY-SA 2.5 Follow Follow this answer to receive notifications answered Jul 5 '10 at 5:59 Dagg NabbitDagg Nabbit 70.9k1818 gold badges104104 silver badges139139 bronze badges 1 I modified it a bit: var s = w.document.createElement("script"); s.type = "text/javascript"; s.src = "test.js"; w.document.getElementsByTagName("HEAD")[0].appendChild(s); And it does appear to work properly in IE8 on Windows 7 (as well as other browsers). I still think IE has a bug that my original code doesn't work, but this should work as a work-around. – Jennifer Grucza Jul 6 '10 at 22:15
      • IT WORKED!
      • var w = window; var s = w.document.createElement("script"); s.type = "text/javascript"; s.src = "./file_to_include.js"; w.document.getElementsByTagName("HEAD")[0].appendChild(s);
    1. minosniu on Jan 28, 2019 | parent | prev | next [–] Second this. I use zotfile to relocate all my PDFs into a single folder, which is Dropbox-synced. This works like a breeze for 2000+ and mounting papers.
      • SEE
    2. dstillman on Jan 23, 2019 | root | parent | prev | next [–] > The lack of developers and thus slow pace of improvement [...] we are reliant on one or two volunteers to improve the productI'm not sure why you have that impression. Zotero has amazing, invaluable volunteers, but there's a paid, full-time dev team working on Zotero every day. In the last year, we've added:- Google Docs integration [1]- Unpaywall integration [2]- A new, greatly improved PDF recognition system [3]- Faster citing in large documents [3]- A much more powerful saving interface [4]- Mendeley import...- ZoteroBib, a free web service for generating bibliographies [5]- A barcode scanner for iOS [6]- Regular updates and bug fixes [7][1] https://www.zotero.org/blog/google-docs-integration/[2] https://www.zotero.org/blog/improved-pdf-retrieval-with-unpa...[3] https://www.zotero.org/blog/zotero-5-0-36/[4] https://twitter.com/zotero/status/991052142717886464[5] https://www.zotero.org/blog/introducing-zoterobib/[6] https://www.zotero.org/blog/scan-books-into-zotero-from-your...[7] https://www.zotero.org/support/changelog(Disclosure: Zotero developer)

      @dstillman

    1. 1 Zotero comparison is with Zotero 2.1
      • cuidado!
      • vs Zotero 5 (?)
    1. I would be more than happy to add an importer into Qiqqa from Zotero. I guess the simplest route could be to augment the zotero bibtex output format to include any attached files (much like Mendeley does in the file={} field).
      • I'll do a custom export translator
      • SEE
    1. Automatic export To export a library, group or collection, right-click on it in the left Zotero pane and choose “Export Library…” or “Export Collection…”. With BBT’s export translators (e.g., “Better BibTeX”), checking the Keep updated option will register the export for automation. After you’ve completed the current export, any changes to the collection or library will trigger an automatic re-export to update the file. You can review/remove exports from the BBT preferences. While I’ve gone to some lengths to make sure performance is OK, don’t go overboard with the number of auto-exports you have going. Also, exporting only targeted selections over your whole library will get you better performance. You can set up separate exports for separate papers for example if you have set up a collection for each. Managing auto-exports After you’ve set up an auto-export using an Keep updated export, you can manage your auto-exports in the BBT preferences under the Automatic exports tab. There, you can remove auto-export, change settings on them, or remove them. You cannot add new auto-exports from here, that can only be done by initiating an export.
      • TIP: use with Qiqqa, keep qiqqa.bib updated from zotero
    1. dstillman April 22, 2020 Yes, CSL-JSON is specifically for citations and doesn't know anything about attachments. emilianoeheyns April 23, 2020 BBT JSON does know about attachments. It's mostly just a dump of the items as they're handed to translators with cleanup. I use it in my test framework, but when BBT is installed it's available as any other import/export format.
      • SEE
    1. jwright8 August 19, 2018 adamsmith, I added Zutilo to Zotero stand alone (I am not using Firefox). I was able to find the location of my attachments by right clicking on items > Zutilo > Show Attachment Paths. Now I need to do the batch change or follow dstillman's instructions: "set up a Linked Attachment Base Directory in the Advanced → Files and Folders pane of the Zotero preferences, move the directory, and then update the base directory."
      • TEST
    2. Have a look at the Zutilo add-on, which can show you the current path Zotero is looking and also batch-change those paths.https://github.com/willsALMANJ/Zutilo
      • SEE: Zutilo
    1. adamsmith May 19, 2013 So, the argument for the status quo is that the working paper on arxiv is a separate publication from the journal article it ends up published as. That's why it should be saved and - where it applies - cited differently. In other words, taking bibliographic data seriously, the DOI does _not_ apply to the arxiv paper and should not be saved with it. That's in line with what we do with other working paper repositories such as SSRN.
      • I THINK SO
      • DIFFERENT zotero items for
      • arxiv
        • different item for each version!!!
      • doi publisher
      • Each item with its PDF!!!
      • DIFFERENT Citations!!!
    2. aurimas May 19, 2013 Looks like that was an intentional decision to put arXiv identifier in the publication field
      • BAD IDEA!
      • I have changed "my" arxiv translator:
      • Publication: arXiv (generic, for order by Pub)
      • Abbrv: arXiv-id [class]

      • using Zotfile to rename PDF, using Abbrv

    1. karnesky commented on Sep 1, 2013 A few things to note here: arXiv does have preprints, but a lot of these are linked to journal articles & some people use it as a reprint server. If an arXiv record has a DOI, I would suggest (strongly) that it should be typed as a journal article. We may even just use the ADS link, which seems to have a great BibTeX-formatted record for most eprints (though I'm torn on doing that). NASA ADS and most others classify arXiv eprints as journal articles anyway. Zotero will import any of those as journal articles, so there might be a case to import all arXiv eprints as if they were journal articles
      • ok
    1. If/when we have a proper field for arXiv IDs in Zotero (which I believe has a very good chance of happening), we can handle this a lot more elegantly, of course, both on import and on export.
      • NOW: 2022-01-02, and counting...
    2. adamsmith November 17, 2013 The problem is that Zotero isn't just a bib(la)tex front-end and those field mappings don't make a huge amount of sense in Zotero - Archive and Loc. in Archive are at least somewhat plausible (Call number makes no sense),
      • ?
    3. However these fields are not filled automatically by zotero when importing from arxiv, instead a Report is created with all three fields (Archive, Loc. in Archive, Call number) empty
      • OK: doesnt work, because:
      • arxiv.js import doesnt fill these fields
      • ADS.js import, doesnt
    4. Further, by trial and error I found that setting the Journal article fields as follows: Archive: arxiv Loc. in Archive: 1234.1231 Call number: hep-ph results in zotero exporting a biblatex file containing: eprinttype = {arxiv}, eprint = {1234.1231}, eprintclass = {hep-ph},
      • TIP: SEE BibLATex.js translator:
      • if (item.archive == "arXiv" || item.archive == "arxiv") {
        writeField("eprinttype", "arxiv");
        writeField("eprint", item.archiveLocation);
        if (item.callNumber) { // assume call number is used for arxiv class
            writeField("eprintclass", item.callNumber);
        }
        
        }
    5. I don't see how we can support the bibtex extension fields (archivePrefix and primaryClass)
      • ZOTERO Devs: dont add custom fields
    6. I see that the field "Loc. in Arxive" is already exported as "eprint" when using BibLatex
      • IMPORTANT: BibLateX
      • In Zotero, only exists EXPORT translator, not import!
      • use BibTex translator: type=3=import+export
    1. Zotero.configure() and Zotero.displayOptions() replaced by configOptions and displayOptions Zotero.configure() and Zotero.displayOptions() no longer exist. Instead, translators should specify config and display options in the metadata block at the top of the translator, e.g. { "translatorID":"32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7", [...] "configOptions":{"dataMode":"rdf/xml"}, "displayOptions":{"exportNotes":true}, "lastUpdated":"2011-01-11 04:31:00" } "dataMode":"block" and "dataMode":"line" are deprecated It is no longer necessary to specify “dataMode”:“block” or “dataMode”:“line”. If Zotero.read() is passed a numeric value, it reads a specified number of bytes; otherwise, it reads a full line.
      • IMPORTANT: If Zotero.read() is passed a numeric value, it reads a specified number of bytes; otherwise, it reads a full line.
      • read() == una linea
    1. translator.setSearch(item) For search translators. Sets the skeleton item object the translator will use for its search. translator.setString(string) For import translators. Sets the string that the translator will import from. translator.setDocument(document) For web translators. Sets the document that the translator will use.
      • SEE
      • funciones para asignar PARAMETROS al tipo de translator reutilizado
    2. record.leader = "leader goes here"; record.addField(code, indicator, content);
      • DONT UNDERSTAND
    3. Calling a translator using ''getTranslators'' This code, based on the “COinS.js” code, calls getTranslators() to identify which search translators can make a complete item out of the basic template information already present. Note that translate() is called from within the event handler. Analogous logic could be used to get the right import translator for incoming metadata in an unknown format. var search = Zotero.loadTranslator("search"); search.setHandler("translators", function(obj, translators) { search.setTranslator(translators); search.translate(); }); search.setSearch(item); // look for translators for given item search.getTranslators();
      • general, depends on 'detectSearch'
      • BUT: if SEVERAL translators detected, WHICH translate?
    4. Calling a translator by UUID This is the most common way to use another translator– simply specify the translator type and the UUID of the desired translator. In this case, the RIS translator is being called. var translator = Zotero.loadTranslator("import"); translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); translator.setString(text); translator.translate();
      • especific, by UUID
    5. Calling other translators Web translators can call other translators to parse metadata provided in a standard format with the help of existing import translators, or to augment incomplete data with the help of search translators. There are several ways of invoking other translators.
      • VERY IMPORTANT
    6. Batch Saving You will often need to make additional requests to fetch all the metadata needed, either to make multiple items, or to get additional information on a single item. The most common and reliable way to make such requests is with the utility functions Zotero.Utilities.doGet, Zotero.Utilities.doPost, and Zotero.Utilities.processDocuments. Zotero.Utilities.doGet(url, callback, onDone, charset) sends a GET request to the specified URL or to each in an array of URLs, and then calls function callback with three arguments: response string, response object, and the URL. This function is frequently used to fetch standard representations of items in formats like RIS and BibTeX. The function onDone is called when the input URLs have all been processed. The optional charset argument forces the response to be interpreted in the specified character set. Zotero.Utilities.doPost(url, postdata, callback, headers, charset) sends a POST request to the specified URL (not an array), with the POST string defined in postdata and headers set as defined in headers associative array (optional), and then calls function callback with two arguments: response string, and the response object. The optional charset argument forces the response to be interpreted in the specified character set. Zotero.Utilities.processDocuments(url, callback, onDone, charset) sends a GET request to the specified URL or to each in an array of URLs, and then calls the function callback with a single argument, the DOM document object. Note: The response objects passed to the callbacks above are described in detail in the MDC Documentation. Zotero.Utilities.processAsync(sets, callbacks, onDone) can be used from translators to make it easier to correctly chain sets of asynchronous callbacks, since many translators that require multiple callbacks do it incorrectly [text from commit message, r4262]
      • SEE: call "chain"
      • doGet() and processDocuments() admit [urls]
      • doPost() only admits "url"

      • processAsync(): NOT DOCUMENTED!

    1. scrape[edit] The scrape function is called to save a single item. It is the most interesting function to code in a translator. We first create a new item as returned by detectWeb and then store the metadata in the relevant fields of that item. Along with the metadata, attachments can be saved for an item. These attachments become available even when one is offline. In the function shown below, we make use of another translator called Embedded Metadata. We load this translator and it scrapes information from the meta tags of the web page, filling fields and reducing our work. We can always insert and update information of fields on top of what Embedded Metadata provided.function scrape(doc, url) { var translator = Zotero.loadTranslator('web'); // Embedded Metadata translator.setTranslator('951c027d-74ac-47d4-a107-9c3069ab7b48'); translator.setDocument(doc); translator.setHandler('itemDone', function (obj, item) { // Add data for fields that are not covered by Embedded Metadata item.section = "News"; // Add custom fields if required trans.addCustomFields({ 'twitter:description': 'abstractNote' }); item.complete(); }); translator.getTranslatorObject(function(trans) { // Adjust for multiple item types trans.itemType = "newspaperArticle"; trans.doWeb(doc, url); }); }
      • SEE: DONT UNDERSTAND!
    2. Zotero.selectItems(getSearchResults(doc, false), function (items) { if (!items) { return true; } var articles = []; for (var i in items) { articles.push(i); } ZU.processDocuments(articles, scrape);
      • COMPARE with zotero.doc: link-annotation
      • code: annotation
      • evita paso intermedio, pasando las keys (DEBEN ser URLs): ZU.processDocuments(Object.keys(items), scrape);