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


      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.
    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"); }
      • 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 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 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.
    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 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???
      • 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()?
      • 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?
    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?
    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).
      • 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
      • WHAT???
    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.
    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.
      • 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.