345 Matching Annotations
  1. Last 7 days
  2. 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
  3. 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
  4. 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
  5. 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.

  6. 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: }
    3. dataMode For import translators, this sets the form in which the input data is presented to the translator. If set to “rdf/xml”, Zotero will parse the input as XML and expose the data through the Zotero.RDF object. If “xml/dom”, Zotero will expose the data through the function Zotero.getXML().
      • IMPORTANT to import target: xml
    4. browserSupport A string containing one or more of the letters g, c, s, i, representing the connectors that the translator can be run in – Gecko (Firefox), Chrome, Safari, Internet Explorer, respectively. b indicates support for the Bookmarklet (zotero-dev thread) and v indicates support for the translation-server. For more information, see Connectors. Warning: Compatible with Zotero 2.1.9 and later only.
      • browserSupport : [2021-12] it seems obsolete (?)
    5. translatorType An integer specifying to which type(s) the translator belongs. The value is the sum of the values assigned to each type: import (1), export (2), web (4) and search (8). E.g. the value of translatorType is 2 for an export translator, and 13 for a search/web/import translator, because 13=8+4+1.
      • import + export = 1+2=3
      • MUST READ
      • metadata tags
      • functions
    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!

    7. for each item, an item ID and label should be stored in the object as a property/value pair.
      • EXAMPLE (arXiv):
      • items[row.id] = row.title;
      • where row: {
            title: title,
            id: id
          }
        
    8. Passing the object to the Zotero.selectItems function will trigger the selection window, and the function passed as the second argument will receive an object with the selected items, as in this example: Zotero.selectItems(getSearchResults(doc, false), function (items) { if (!items) return; ZU.processDocuments(Object.keys(items), scrape); }); Here, Zotero.selectItems(..) is called with an anonymous function as the callback. As in many translators, the selected items are simply loaded into an array and passed off to a processing function that makes requests for each of them.
      • SEE TO UNDERSTAND
    9. Saving Multiple Items Some webpages, such as those showing search results or the index of a journal issue, list multiple items. For these pages, web translators can be written to a) allow the user to select one or more items and b) batch save the selected items to the user's Zotero library. Item Selection To present the user with a selection window that shows all the items that have been found on the webpage, a JavaScript object should be created. Then, for each item, an item ID and label should be stored in the object as a property/value pair. The item ID is used internally by the translator, and can be a URL, DOI, or any other identifier, whereas the label is shown to the user (this will usually be the item's title). Passing the object to the Zotero.selectItems function will trigger the selection window, and the function passed as the second argument will receive an object with the selected items, as in this example: Zotero.selectItems(getSearchResults(doc, false), function (items) { if (!items) return; ZU.processDocuments(Object.keys(items), scrape); }); Here, Zotero.selectItems(..) is called with an anonymous function as the callback. As in many translators, the selected items are simply loaded into an array and passed off to a processing function that makes requests for each of them. 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]
      • Item selection:
        • each item: only ID+Title; no permite mas: eg: "tipo"
    10. Notes Notes are saved similarly to attachments. The content of the note, which should consist of a string, should be stored in the note property of the item's notes property. E.g.: let bbCite = "Bluebook citation: " + bbCite + "."; newItem.notes.push({ note: bbCite });
      • WARNING: notes are stored as HTML code
      • use ZU.text2html
      • use
         + text + 
        , to avoid \n missing
    11. Zotero will automatically use proxied versions of attachment URLs returned from translators when the original page was proxied, which allows translators to construct and return attachment URLs without needing to know whether proxying is in use. However, some sites expect unproxied PDF URLs at all times, causing PDF downloads to potentially fail if requested via a proxy. If a PDF URL is extracted directly from the page, it's already a functioning link that's proxied or not as appropriate, and a translator should include proxy: false in the attachment metadata to indicate that further proxying should not be performed:
      • SEE
    12. In the very common case of saving the current page as an attachment, set document to the current document, so that Zotero doesn't have to make an additional request: newItem.attachments.push({ title: "Snapshot", document: doc });
      • TIP: Snapshots, save without call URL again
    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!
https://hypothes.is/search?q=tag%3A%23zotero
hypothes.is
crawl=CC-MAIN-2022-21
1049491
application/http; msgtype=response
sha1:TO6NR5LVT6MPW7SG2BTQ3LAYEV4VL4ZO
<urn:uuid:9de95802-f7e0-493b-b13f-0458249f9f7c>
2022-05-16T16:35:10Z
104.22.54.159
text/html
sha1:BPAEJ5SQHF76JBT2NO2JBFBZBSN4FYU4
<urn:uuid:ee345488-ca54-4560-9102-24732d501843>
https://hypothes.is/search?q=tag%3A%23zotero
length
response
<urn:uuid:0a25daa1-ab0b-423a-b74d-b9fea242d572>
isPartOf: CC-MAIN-2022-21
publisher: Common Crawl
description: Wide crawl of the web for May 2022
operator: Common Crawl Admin (info@commoncrawl.org)
hostname: ip-10-67-67-209
software: Apache Nutch 1.18 (modified, https://github.com/commoncrawl/nutch/)
robots: checked via crawler-commons 1.3-SNAPSHOT (https://github.com/crawler-commons/crawler-commons)
format: WARC File Format 1.1
conformsTo: https://iipc.github.io/warc-specifications/specifications/warc-format/warc-1.1/