An addon/plugin template for Zotero.

Overview

Zotero Addon Template

This is an addon/plugin template for Zotero.

Documentation(Chinese, provides English translation)

👍 You are currently in bootstrap extension mode. To use overlay mode, plsase switch to overlay branch in git.

⚠️ overlay mode will no longer be supported in the coming Zotero 7. Please use the bootstrap extension mode instead. See discussion here: https://groups.google.com/g/zotero-dev/c/TT_rcLVpQwg

Features

  • TypeScript support;
  • Build addon settings and versions automatically;
  • Build and reload code in Zotero automatically;
  • Release to GitHub automatically(using release-it);
  • Extensive skeleton;
  • Some sample code of UI and lifecycle.

Quick Start Guide

  • Fork this repo;
  • Git clone the forked repo;
  • Enter the repo folder;
  • Modify the settings in ./package.json, including:
  author,
  description,
  homepage,
  releasepage,
  updaterdf,
  addonName,
  addonID,
  addonRef

Be careful to set the addonID and addonRef to avoid confliction.

  • Run npm install to setup the plugin and install dependencies. If you don't have NodeJS installed, please download it here;
  • Run npm run build to build the plugin. The xpi for installation and the built code is under builds folder.

Directory Structure

This section shows the directory structure of a template.

  • All .js/.ts code files are in ./src;
  • Addon config files: ./addon/chrome.manifest, ./addon/install.rdf;
  • UI files: ./addon/chrome/content/*.xul. The overlay.xul also defines the main entrance;
  • Locale files: ./addon/chrome/locale/*.dtd;
  • Resource files: ./addon/chrome/skin/default/__addonRef__/*.dtd;
  • Preferences file: ./addon/chrome/defaults/preferences/defaults.js;

    Don't break the lines in the defaults.js

│  .gitignore
│  .release-it.json # release-it conf
|  tsconfig.json    # https://code.visualstudio.com/docs/languages/jsconfig#
│  build.js         # esbuild
│  LICENSE
│  package.json     # npm conf
│  README.md        # readme
│  update.rdf       # addon update
│
├─.github           # github conf
│
├─addon             # addon dir
│  │  chrome.manifest  #addon conf
│  │  install.rdf   # addon install conf
│  │  bootstrap.js  # addon load/unload script, like a main.c
│  │
│  └─chrome
│      ├─content    # UI
│      │  │  preferences.xul
│      │  │
│      │  └─scripts
│      ├─locale     # locale
│      │  ├─en-US
│      │  │      overlay.dtd
│      │  │
│      │  └─zh-CN
│      │         overlay.dtd
│      │
│      └─skin       # style
│          └─default
│              └─addonname
│                      favicon.png
│                      [email protected]
│
├─builds            # build dir
│  └─.xpi
│
└─src               # source code
    │  index.ts     # main entry
    │  module.ts    # module class
    │  addon.ts     # base class
    │  events.ts    # events class
    │  views.ts     # UI class
    └─ prefs.ts     # preferences class

Build

# A release-it command: version increase, npm run build, git push, and GitHub release
# You need to set the environment variable GITHUB_TOKEN https://github.com/settings/tokens
# release-it: https://github.com/release-it/release-it
npm run release

Alternatively, build it directly using build.js: npm run build

Build Steps

  1. Clean ./builds
  2. Copy ./addon to ./builds
  3. Esbuild to ./builds/addon/chrome/content/scripts
  4. Replace __buildVersion__ and __buildTime__ in ./builds/addon
  5. Zip the ./builds/addon to ./builds/*.xpi

Debug

  1. Copy zotero command line config file. Modify the commands.
cp zotero-cmd-default.json zotero-cmd.json
  1. Setup addon development environment following this link.

  2. Build addon and restart Zotero with this npm command.

  3. Launch Firefox 60

  4. In Firefox, go to devtools, go to settings, click "enable remote debugging" and the one next to it that's also about debugging(or press shift+F8).

  5. In Zotero, go to setting, advanced, config editor, look up "debugging" and click on "allow remote debugging"

  6. In Firefox, click the hamburger menu in the top right -> web developer -> Connect...

  7. Enter localhost:6100

  8. Connect

  9. Click "Inspect Main Process"

npm run restart

You can also debug code in these ways:

Development

Search for a Zotero API
Zotero docs are outdated or incomplete. Searching the source code of Zotero is unavoidable.
Clone https://github.com/zotero/zotero and search the keyword globally. You can search the UI text in .xul/.dtd files, and then search the keys of the text value in .js/.xul files.

The zotero-types provides most frequently used Zotero APIs. It's included in this template by default.

Disclaimer

Use this code under AGPL. No warranties are provided. Keep the laws of your locality in mind!

If you want to change the license, please contact me at [email protected]

Part of the code of this repo refers to other open-source projects within the allowed scope.

  • zotero-better-bibtex(d.ts)

Zotero Addons Build with the Template

Comments
  • Does preferences.xul create a preference pane?

    Does preferences.xul create a preference pane?

    Testing out this repository from scratch:

    1. clone repository (bootstrap branch)
    2. npm install
    3. npm run build
    4. manually install the xpi into Zotero

    Everything works smoothly. After installation, right-clicking on an entry shows the Zotero Template menu item; clicking the menu item shows an alert box with "Hello World". Is this the full extent of the example?

    I trying to see if I can add a preferences pane into the main Preferences window (Edit -> Preferences). I realize this is an XUL method and may be phased out in Zotero 7, but I don't see another way to do it, and your repository does add it to the XPI bundle.

    Reading the XUL file seems to imply that it should show up, but it doesn't. Can you clarify this for me?

    Also, in the current xul file https://github.com/windingwind/zotero-addon-template/blob/bootstrap/addon/chrome/content/preferences.xul#L9 there are many attributes with spaces in them. I don't know if this affects functionality at all; FWIW, I removed all extra spaces and nothing changed.

    Thank you

    opened by whacked 4
  • Initial clone + build fails on module resolution for `zotero-types`

    Initial clone + build fails on module resolution for `zotero-types`

    Hi, I'm following the template instructions step-by-step. Pardon my basic questions; I am not familiar with esbuild.

    I have:

    1. cloned the respository
    2. modified package.json
    3. run npm install
    4. run npm run build

    at which point, the build fails with these errors:

    [Build] BUILD_DIR=builds, VERSION=0.0.0, BUILD_TIME=2022-08-31 10:26:14
    ✘ [ERROR] Could not resolve "zotero-types"
    
        src/index.ts:1:23:
          1 │ import { Zotero } from "zotero-types";
            ╵                        ~~~~~~~~~~~~~~
    
      You can mark the path "zotero-types" as external to exclude it from the bundle, which will remove
      this error.
    
    ✘ [ERROR] Could not resolve "zotero-types"
    
        src/views.ts:1:28:
          1 │ import { XUL, Zotero } from "zotero-types";
            ╵                             ~~~~~~~~~~~~~~
    
      You can mark the path "zotero-types" as external to exclude it from the bundle, which will remove
      this error.
    
    ✘ [ERROR] Could not resolve "zotero-types"
    
        src/events.ts:1:23:
          1 │ import { Zotero } from "zotero-types";
            ╵                        ~~~~~~~~~~~~~~
    
      You can mark the path "zotero-types" as external to exclude it from the bundle, which will remove
      this error.
    

    Additional information:

    • zotero-types exists in node_modules, among 348 total folders in node_modules following npm install. zotero-types contains README.md, package.json, and index.d.ts
    • following the error message, I modify build.js this way:
    await esbuild
      .build({
        entryPoints: ["src/index.ts"],
        external: ["zotero-types"],       // <--- add this line
        bundle: true,
        // Entry should be the same as add ...
        outfile: path.join(buildDir, "addo ...
        // minify: true,                  
      })
      .catch(() => process.exit(1));      
    

    and it appears to build ok. Is this the correct fix?

    system information

    [nix-shell:/tmp/zotero-addon-template]$ echo $NODE_PATH
    /tmp/zotero-addon-template/node_modules
    
    [nix-shell:/tmp/zotero-addon-template]$ node --version
    v18.7.0
    
    [nix-shell:/tmp/zotero-addon-template]$ npm --version
    8.15.0
    

    thank you for your work

    opened by whacked 3
  • build(deps): bump zotero-plugin-toolkit from 0.0.3 to 0.0.6

    build(deps): bump zotero-plugin-toolkit from 0.0.3 to 0.0.6

    Bumps zotero-plugin-toolkit from 0.0.3 to 0.0.6.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps-dev): bump zotero-types from 0.0.8 to 0.1.0

    build(deps-dev): bump zotero-types from 0.0.8 to 0.1.0

    Bumps zotero-types from 0.0.8 to 0.1.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps-dev): bump release-it from 14.14.3 to 15.5.1

    build(deps-dev): bump release-it from 14.14.3 to 15.5.1

    Bumps release-it from 14.14.3 to 15.5.1.

    Release notes

    Sourced from release-it's releases.

    Release 15.5.1

    • Update dependencies (aa89cbd)
    • Prompt for npm OTP in --only-version (fixes #948) (ff626d1)
    • Remove unused export/function (331b0de)
    • Add knip + config (ee99f63)

    Release 15.5.0

    • Update dependencies (5d035be)
    • Add npm.versionArgs option (5efc57f)

    Release 15.4.3

    • Update dependencies (67da5d9)
    • Update got to 12.5.1 (#943) (a9c8c34)

    Release 15.4.2

    • Update dependencies (97095d5)
    • Defer dry run bail out in asset globbing (to include the warning in dry runs) (bf6ccc8)
    • Housekeeping for Actions (feff2eb)

    Release 15.4.1

    • Handle file paths and dots in git urls (055a4ff)
    • Update dependencies (including git-url-parse) (1851650)

    Release 15.4.0

    • Add npm.name to config.context and extend context for tagName (closes #933) (627763f)

    Release 15.3.0

    • Add new features to docs (e2101ed)
    • Add tests for branchName in tag name (a6f6eff)
    • Update dependencies (ae9ccb9)
    • add branchName for template (#897) (9aa9a5d)
    • add new --changelog option (#912) (5798a7a)

    Release 15.2.0

    • Update dependencies (b78eb1e)
    • Add package.json to exports (acc66f7)
    • Fixes loading scoped plugins to ensure name is preserved (#926) (145fc71)
    • Add workaround for Windows by removing drive letter from git url (#924) (ce3a726)
    • Enable manual triggers and disable tag triggers in test pipeline (b830876)
    • Fix plugin links (b7cd505)

    Release 15.1.4

    • Migrate to git-url-parse v12 (41aad00)
    • Updates README with new plugin package names (#922) (322ef9a)

    Release 15.1.3

    • Update dependencies (00566e0)
    • fix: Fixes exports to correctly export test utils (#921) (a5abf60)

    Release 15.1.2

    ... (truncated)

    Changelog

    Sourced from release-it's changelog.

    Changelog

    This document lists breaking changes for each major release.

    See the GitHub Releases page for detailed changelogs: https://github.com/release-it/release-it/releases

    v15 (2022-04-30)

    • Removed support for Node.js v10 and v12.
    • Removed support for GitLab v12.4 and lower.
    • Removed anonymous metrics (and the option to disable it).
    • Programmatic usage and plugins only through ES Module syntax (import)

    Use release-it v14 in legacy environments.

    v14 (2020-09-03)

    • Removed global property from plugins. Use this.config[key] instead.
    • Removed deprecated npm.access option. Set this in package.json instead.

    v13 (2020-03-07)

    • Dropped support for Node v8
    • Dropped support for GitLab v11.6 and lower.
    • Deprecated scripts are removed (in favor of hooks).
    • Removed deprecated --non-interactive (-n) argument. Use --ci instead.
    • Removed old %s and [REV_RANGE] syntax in command substitutions. Use ${version} and ${latestTag} instead.

    v12 (2019-05-03)

    • The --follow-tags argument for git push has been moved to the default configuration. This is only a breaking change if git.pushArgs was not empty (it was empty by default).

    v11

    • The custom conventional-changelog increment (e.g. "increment": "conventional:angular") with additional script configuration is replaced with a plugin. Please see conventional changelog how to use this plugin.
    • The pkgFiles option has been removed. If there's a need to bump other files than what npm version bumps, it should be (part of) a plugin.
    • By default, the latest version was derived from the latest Git tag. From v11, if the repo has a package.json then that version is used instead. The use option has been removed. Also see latest version.
    • scripts.changelog has been moved to git.changelog

    v10

    • Dropped support for Node v6

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump esbuild from 0.15.18 to 0.16.9

    build(deps): bump esbuild from 0.15.18 to 0.16.9

    Bumps esbuild from 0.15.18 to 0.16.9.

    Release notes

    Sourced from esbuild's releases.

    v0.16.9

    • Update to Unicode 15.0.0

      The character tables that determine which characters form valid JavaScript identifiers have been updated from Unicode version 14.0.0 to the newly-released Unicode version 15.0.0. I'm not putting an example in the release notes because all of the new characters will likely just show up as little squares since fonts haven't been updated yet. But you can read https://www.unicode.org/versions/Unicode15.0.0/#Summary for more information about the changes.

    • Disallow duplicate lexically-declared names in nested blocks and in strict mode

      In strict mode or in a nested block, it's supposed to be a syntax error to declare two symbols with the same name unless all duplicate entries are either function declarations or all var declarations. However, esbuild was overly permissive and allowed this when duplicate entries were either function declarations or var declarations (even if they were mixed). This check has now been made more restrictive to match the JavaScript specification:

      // JavaScript allows this
      var a
      function a() {}
      {
        var b
        var b
        function c() {}
        function c() {}
      }
      

      // JavaScript doesn't allow this { var d function d() {} }

    • Add a type declaration for the new empty loader (#2755)

      I forgot to add this in the previous release. It has now been added.

      This fix was contributed by @​fz6m.

    • Add support for the v flag in regular expression literals

      People are currently working on adding a v flag to JavaScript regular expresions. You can read more about this flag here: https://v8.dev/features/regexp-v-flag. This release adds support for parsing this flag, so esbuild will now no longer consider regular expression literals with this flag to be a syntax error. If the target is set to something other than esnext, esbuild will transform regular expression literals containing this flag into a new RegExp() constructor call so the resulting code doesn't have a syntax error. This enables you to provide a polyfill for RegExp that implements the v flag to get your code to work at run-time. While esbuild doesn't typically adopt proposals until they're already shipping in a real JavaScript run-time, I'm adding it now because a) esbuild's implementation doesn't need to change as the proposal evolves, b) this isn't really new syntax since regular expression literals already have flags, and c) esbuild's implementation is a trivial pass-through anyway.

    • Avoid keeping the name of classes with static name properties

      The --keep-names property attempts to preserve the original value of the name property for functions and classes even when identifiers are renamed by the minifier or to avoid a name collision. This is currently done by generating code to assign a string to the name property on the function or class object. However, this should not be done for classes with a static name property since in that case the explicitly-defined name property overwrites the automatically-generated class name. With this release, esbuild will now no longer attempt to preserve the name property for classes with a static name property.

    v0.16.8

    • Allow plugins to resolve injected files (#2754)

      Previously paths passed to the inject feature were always interpreted as file system paths. This meant that onResolve plugins would not be run for them and esbuild's default path resolver would always be used. This meant that the inject feature couldn't be used in the browser since the browser doesn't have access to a file system. This release runs paths passed to inject through esbuild's full path resolution pipeline so plugins now have a chance to handle them using onResolve callbacks. This makes it possible to write a plugin that makes esbuild's inject work in the browser.

    • Add the empty loader (#1541, #2753)

      The new empty loader tells esbuild to pretend that a file is empty. So for example --loader:.css=empty effectively skips all imports of .css files in JavaScript so that they aren't included in the bundle, since import "./some-empty-file" in JavaScript doesn't bundle anything. You can also use the empty loader to remove asset references in CSS files. For example --loader:.png=empty causes esbuild to replace asset references such as url(image.png) with url() so that they are no longer included in the resulting style sheet.

    ... (truncated)

    Changelog

    Sourced from esbuild's changelog.

    0.16.9

    • Update to Unicode 15.0.0

      The character tables that determine which characters form valid JavaScript identifiers have been updated from Unicode version 14.0.0 to the newly-released Unicode version 15.0.0. I'm not putting an example in the release notes because all of the new characters will likely just show up as little squares since fonts haven't been updated yet. But you can read https://www.unicode.org/versions/Unicode15.0.0/#Summary for more information about the changes.

    • Disallow duplicate lexically-declared names in nested blocks and in strict mode

      In strict mode or in a nested block, it's supposed to be a syntax error to declare two symbols with the same name unless all duplicate entries are either function declarations or all var declarations. However, esbuild was overly permissive and allowed this when duplicate entries were either function declarations or var declarations (even if they were mixed). This check has now been made more restrictive to match the JavaScript specification:

      // JavaScript allows this
      var a
      function a() {}
      {
        var b
        var b
        function c() {}
        function c() {}
      }
      

      // JavaScript doesn't allow this { var d function d() {} }

    • Add a type declaration for the new empty loader (#2755)

      I forgot to add this in the previous release. It has now been added.

      This fix was contributed by @​fz6m.

    • Add support for the v flag in regular expression literals

      People are currently working on adding a v flag to JavaScript regular expresions. You can read more about this flag here: https://v8.dev/features/regexp-v-flag. This release adds support for parsing this flag, so esbuild will now no longer consider regular expression literals with this flag to be a syntax error. If the target is set to something other than esnext, esbuild will transform regular expression literals containing this flag into a new RegExp() constructor call so the resulting code doesn't have a syntax error. This enables you to provide a polyfill for RegExp that implements the v flag to get your code to work at run-time. While esbuild doesn't typically adopt proposals until they're already shipping in a real JavaScript run-time, I'm adding it now because a) esbuild's implementation doesn't need to change as the proposal evolves, b) this isn't really new syntax since regular expression literals already have flags, and c) esbuild's implementation is a trivial pass-through anyway.

    • Avoid keeping the name of classes with static name properties

      The --keep-names property attempts to preserve the original value of the name property for functions and classes even when identifiers are renamed by the minifier or to avoid a name collision. This is currently done by generating code to assign a string to the name property on the function or class object. However, this should not be done for classes with a static name property since in that case the explicitly-defined name property overwrites the automatically-generated class name. With this release, esbuild will now no longer attempt to preserve the name property for classes with a static name property.

    0.16.8

    • Allow plugins to resolve injected files (#2754)

      Previously paths passed to the inject feature were always interpreted as file system paths. This meant that onResolve plugins would not be run for them and esbuild's default path resolver would always be used. This meant that the inject feature couldn't be used in the browser since the browser doesn't have access to a file system. This release runs paths passed to inject through esbuild's full path resolution pipeline so plugins now have a chance to handle them using onResolve callbacks. This makes it possible to write a plugin that makes esbuild's inject work in the browser.

    • Add the empty loader (#1541, #2753)

    ... (truncated)

    Commits
    • 29ae56a publish 0.16.9 to npm
    • d2aa4eb fix lexically-declared names in strict mode
    • 0c15c1e implement test262 json module loading
    • 55e2738 fix js tests for node v19+
    • 88ef1de update source-map library for node v19
    • 7c249a9 avoid keep names of class static name properties
    • ff1681e more test262 adjustments
    • 5ee1dbf attempt to run test262 tests in a harness
    • 94fcbf6 rewrite the test262 script
    • b5ec405 support the v regular expression literal flag
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps-dev): bump zotero-types from 0.0.8 to 0.0.9

    build(deps-dev): bump zotero-types from 0.0.8 to 0.0.9

    Bumps zotero-types from 0.0.8 to 0.0.9.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump esbuild from 0.15.18 to 0.16.7

    build(deps): bump esbuild from 0.15.18 to 0.16.7

    Bumps esbuild from 0.15.18 to 0.16.7.

    Release notes

    Sourced from esbuild's releases.

    v0.16.7

    • Include file loader strings in metafile imports (#2731)

      Bundling a file with the file loader copies that file to the output directory and imports a module with the path to the copied file in the default export. Previously when bundling with the file loader, there was no reference in the metafile from the JavaScript file containing the path string to the copied file. With this release, there will now be a reference in the metafile in the imports array with the kind file-loader:

       {
         ...
         "outputs": {
           "out/image-55CCFTCE.svg": {
             ...
           },
           "out/entry.js": {
             "imports": [
      +        {
      +          "path": "out/image-55CCFTCE.svg",
      +          "kind": "file-loader"
      +        }
             ],
             ...
           }
         }
       }
      
    • Fix byte counts in metafile regarding references to other output files (#2071)

      Previously files that contained references to other output files had slightly incorrect metadata for the byte counts of input files which contributed to that output file. So for example if app.js imports image.png using the file loader and esbuild generates out.js and image-LSAMBFUD.png, the metadata for how many bytes of out.js are from app.js was slightly off (the metadata for the byte count of out.js was still correct). The reason is because esbuild substitutes the final paths for references between output files toward the end of the build to handle cyclic references, and the byte counts needed to be adjusted as well during the path substitution. This release fixes these byte counts (specifically the bytesInOutput values).

    • The alias feature now strips a trailing slash (#2730)

      People sometimes add a trailing slash to the name of one of node's built-in modules to force node to import from the file system instead of importing the built-in module. For example, importing util imports node's built-in module called util but importing util/ tries to find a package called util on the file system. Previously attempting to use esbuild's package alias feature to replace imports to util with a specific file would fail because the file path would also gain a trailing slash (e.g. mapping util to ./file.js turned util/ into ./file.js/). With this release, esbuild will now omit the path suffix if it's a single trailing slash, which should now allow you to successfully apply aliases to these import paths.

    v0.16.6

    • Do not mark subpath imports as external with --packages=external (#2741)

      Node has a feature called subpath imports where special import paths that start with # are resolved using the imports field in the package.json file of the enclosing package. The intent of the newly-added --packages=external setting is to exclude a package's dependencies from the bundle. Since a package's subpath imports are only accessible within that package, it's wrong for them to be affected by --packages=external. This release changes esbuild so that --packages=external no longer affects subpath imports.

    • Forbid invalid numbers in JSON files

      Previously esbuild parsed numbers in JSON files using the same syntax as JavaScript. But starting from this release, esbuild will now parse them with JSON syntax instead. This means the following numbers are no longer allowed by esbuild in JSON files:

      • Legacy octal literals (non-zero integers starting with 0)
      • The 0b, 0o, and 0x numeric prefixes
      • Numbers containing _ such as 1_000
      • Leading and trailing . such as 0. and .0
      • Numbers with a space after the - such as - 1
    • Add external imports to metafile (#905, #1768, #1933, #1939)

    ... (truncated)

    Changelog

    Sourced from esbuild's changelog.

    0.16.7

    • Include file loader strings in metafile imports (#2731)

      Bundling a file with the file loader copies that file to the output directory and imports a module with the path to the copied file in the default export. Previously when bundling with the file loader, there was no reference in the metafile from the JavaScript file containing the path string to the copied file. With this release, there will now be a reference in the metafile in the imports array with the kind file-loader:

       {
         ...
         "outputs": {
           "out/image-55CCFTCE.svg": {
             ...
           },
           "out/entry.js": {
             "imports": [
      +        {
      +          "path": "out/image-55CCFTCE.svg",
      +          "kind": "file-loader"
      +        }
             ],
             ...
           }
         }
       }
      
    • Fix byte counts in metafile regarding references to other output files (#2071)

      Previously files that contained references to other output files had slightly incorrect metadata for the byte counts of input files which contributed to that output file. So for example if app.js imports image.png using the file loader and esbuild generates out.js and image-LSAMBFUD.png, the metadata for how many bytes of out.js are from app.js was slightly off (the metadata for the byte count of out.js was still correct). The reason is because esbuild substitutes the final paths for references between output files toward the end of the build to handle cyclic references, and the byte counts needed to be adjusted as well during the path substitution. This release fixes these byte counts (specifically the bytesInOutput values).

    • The alias feature now strips a trailing slash (#2730)

      People sometimes add a trailing slash to the name of one of node's built-in modules to force node to import from the file system instead of importing the built-in module. For example, importing util imports node's built-in module called util but importing util/ tries to find a package called util on the file system. Previously attempting to use esbuild's package alias feature to replace imports to util with a specific file would fail because the file path would also gain a trailing slash (e.g. mapping util to ./file.js turned util/ into ./file.js/). With this release, esbuild will now omit the path suffix if it's a single trailing slash, which should now allow you to successfully apply aliases to these import paths.

    0.16.6

    • Do not mark subpath imports as external with --packages=external (#2741)

      Node has a feature called subpath imports where special import paths that start with # are resolved using the imports field in the package.json file of the enclosing package. The intent of the newly-added --packages=external setting is to exclude a package's dependencies from the bundle. Since a package's subpath imports are only accessible within that package, it's wrong for them to be affected by --packages=external. This release changes esbuild so that --packages=external no longer affects subpath imports.

    • Forbid invalid numbers in JSON files

      Previously esbuild parsed numbers in JSON files using the same syntax as JavaScript. But starting from this release, esbuild will now parse them with JSON syntax instead. This means the following numbers are no longer allowed by esbuild in JSON files:

      • Legacy octal literals (non-zero integers starting with 0)
      • The 0b, 0o, and 0x numeric prefixes
      • Numbers containing _ such as 1_000
      • Leading and trailing . such as 0. and .0
      • Numbers with a space after the - such as - 1

    ... (truncated)

    Commits
    • be16d81 publish 0.16.7 to npm
    • 0c872cd additional linker comments
    • a375b37 fix #2071: remap bytesInOutput for substitutions
    • 0e12657 fix bugs due to lack of file-private vars in go
    • cd3fdcc move chunks array onto linker
    • eb0e118 metafile coverage for paths between output files
    • 7bf440d fix #2730: alias now strips a trailing slash
    • b0a82d3 fix #2731: put file loader strings in metafile
    • 70c5729 a small js minification improvement
    • ee8e0dd publish 0.16.6 to npm
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump esbuild from 0.15.18 to 0.16.4

    build(deps): bump esbuild from 0.15.18 to 0.16.4

    Bumps esbuild from 0.15.18 to 0.16.4.

    Release notes

    Sourced from esbuild's releases.

    v0.16.4

    • Fix binary downloads from the @esbuild/ scope for Deno (#2729)

      Version 0.16.0 of esbuild moved esbuild's binary executables into npm packages under the @esbuild/ scope, which accidentally broke the binary downloader script for Deno. This release fixes this script so it should now be possible to use esbuild version 0.16.4+ with Deno.

    v0.16.3

    • Fix a hang with the JS API in certain cases (#2727)

      A change that was made in version 0.15.13 accidentally introduced a case when using esbuild's JS API could cause the node process to fail to exit. The change broke esbuild's watchdog timer, which detects if the parent process no longer exists and then automatically exits esbuild. This hang happened when you ran node as a child process with the stderr stream set to pipe instead of inherit, in the child process you call esbuild's JS API and pass incremental: true but do not call dispose() on the returned rebuild object, and then call process.exit(). In that case the parent node process was still waiting for the esbuild process that was created by the child node process to exit. The change made in version 0.15.13 was trying to avoid using Go's sync.WaitGroup API incorrectly because the API is not thread-safe. Instead of doing this, I have now reverted that change and implemented a thread-safe version of the sync.WaitGroup API for esbuild to use instead.

    v0.16.2

    • Fix process.env.NODE_ENV substitution when transforming (#2718)

      Version 0.16.0 introduced an unintentional regression that caused process.env.NODE_ENV to be automatically substituted with either "development" or "production" when using esbuild's transform API. This substitution is a necessary feature of esbuild's build API because the React framework crashes when you bundle it without doing this. But the transform API is typically used as part of a larger build pipeline so the benefit of esbuild doing this automatically is not as clear, and esbuild previously didn't do this.

      However, version 0.16.0 switched the default value of the platform setting for the transform API from neutral to browser, both to align it with esbuild's documentation (which says browser is the default value) and because escaping the </script> character sequence is now tied to the browser platform (see the release notes for version 0.16.0 for details). That accidentally enabled automatic substitution of process.env.NODE_ENV because esbuild always did that for code meant for the browser. To fix this regression, esbuild will now only automatically substitute process.env.NODE_ENV when using the build API.

    • Prevent define from substituting constants into assignment position (#2719)

      The define feature lets you replace certain expressions with constants. For example, you could use it to replace references to the global property reference window.DEBUG with false at compile time, which can then potentially help esbuild remove unused code from your bundle. It's similar to DefinePlugin in Webpack.

      However, if you write code such as window.DEBUG = true and then defined window.DEBUG to false, esbuild previously generated the output false = true which is a syntax error in JavaScript. This behavior is not typically a problem because it doesn't make sense to substitute window.DEBUG with a constant if its value changes at run-time (Webpack's DefinePlugin also generates false = true in this case). But it can be alarming to have esbuild generate code with a syntax error.

      So with this release, esbuild will no longer substitute define constants into assignment position to avoid generating code with a syntax error. Instead esbuild will generate a warning, which currently looks like this:

      ▲ [WARNING] Suspicious assignment to defined constant "window.DEBUG" [assign-to-define]
      
      example.js:1:0:
        1 │ window.DEBUG = true
          ╵ ~~~~~~~~~~~~
      

      The expression "window.DEBUG" has been configured to be replaced with a constant using the "define" feature. If this expression is supposed to be a compile-time constant, then it doesn't make sense to assign to it here. Or if this expression is supposed to change at run-time, this "define" substitution should be removed.

    • Fix a regression with npm install --no-optional (#2720)

      Normally when you install esbuild with npm install, npm itself is the tool that downloads the correct binary executable for the current platform. This happens because of how esbuild's primary package uses npm's optionalDependencies feature. However, if you deliberately disable this with npm install --no-optional then esbuild's install script will attempt to repair the installation by manually downloading and extracting the binary executable from the package that was supposed to be installed.

      The change in version 0.16.0 to move esbuild's nested packages into the @esbuild/ scope unintentionally broke this logic because of how npm's URL structure is different for scoped packages vs. normal packages. It was actually already broken for a few platforms earlier because esbuild already had packages for some platforms in the @esbuild/ scope, but I didn't discover this then because esbuild's integration tests aren't run on all platforms. Anyway, this release contains some changes to the install script that should hopefully get this scenario working again.

    v0.16.1

    This is a hotfix for the previous release.

    • Re-allow importing JSON with the copy loader using an import assertion

      The previous release made it so when assert { type: 'json' } is present on an import statement, esbuild validated that the json loader was used. This is what an import assertion is supposed to do. However, I forgot about the relatively new copy loader, which sort of behaves as if the import path was marked as external (and thus not loaded at all) except that the file is copied to the output directory and the import path is rewritten to point to the copy. In this case whatever JavaScript runtime ends up running the code is the one to evaluate the import assertion. So esbuild should really allow this case as well. With this release, esbuild now allows both the json and copy loaders when an assert { type: 'json' } import assertion is present.

    ... (truncated)

    Changelog

    Sourced from esbuild's changelog.

    0.16.4

    • Fix binary downloads from the @esbuild/ scope for Deno (#2729)

      Version 0.16.0 of esbuild moved esbuild's binary executables into npm packages under the @esbuild/ scope, which accidentally broke the binary downloader script for Deno. This release fixes this script so it should now be possible to use esbuild version 0.16.4+ with Deno.

    0.16.3

    • Fix a hang with the JS API in certain cases (#2727)

      A change that was made in version 0.15.13 accidentally introduced a case when using esbuild's JS API could cause the node process to fail to exit. The change broke esbuild's watchdog timer, which detects if the parent process no longer exists and then automatically exits esbuild. This hang happened when you ran node as a child process with the stderr stream set to pipe instead of inherit, in the child process you call esbuild's JS API and pass incremental: true but do not call dispose() on the returned rebuild object, and then call process.exit(). In that case the parent node process was still waiting for the esbuild process that was created by the child node process to exit. The change made in version 0.15.13 was trying to avoid using Go's sync.WaitGroup API incorrectly because the API is not thread-safe. Instead of doing this, I have now reverted that change and implemented a thread-safe version of the sync.WaitGroup API for esbuild to use instead.

    0.16.2

    • Fix process.env.NODE_ENV substitution when transforming (#2718)

      Version 0.16.0 introduced an unintentional regression that caused process.env.NODE_ENV to be automatically substituted with either "development" or "production" when using esbuild's transform API. This substitution is a necessary feature of esbuild's build API because the React framework crashes when you bundle it without doing this. But the transform API is typically used as part of a larger build pipeline so the benefit of esbuild doing this automatically is not as clear, and esbuild previously didn't do this.

      However, version 0.16.0 switched the default value of the platform setting for the transform API from neutral to browser, both to align it with esbuild's documentation (which says browser is the default value) and because escaping the </script> character sequence is now tied to the browser platform (see the release notes for version 0.16.0 for details). That accidentally enabled automatic substitution of process.env.NODE_ENV because esbuild always did that for code meant for the browser. To fix this regression, esbuild will now only automatically substitute process.env.NODE_ENV when using the build API.

    • Prevent define from substituting constants into assignment position (#2719)

      The define feature lets you replace certain expressions with constants. For example, you could use it to replace references to the global property reference window.DEBUG with false at compile time, which can then potentially help esbuild remove unused code from your bundle. It's similar to DefinePlugin in Webpack.

      However, if you write code such as window.DEBUG = true and then defined window.DEBUG to false, esbuild previously generated the output false = true which is a syntax error in JavaScript. This behavior is not typically a problem because it doesn't make sense to substitute window.DEBUG with a constant if its value changes at run-time (Webpack's DefinePlugin also generates false = true in this case). But it can be alarming to have esbuild generate code with a syntax error.

      So with this release, esbuild will no longer substitute define constants into assignment position to avoid generating code with a syntax error. Instead esbuild will generate a warning, which currently looks like this:

      ▲ [WARNING] Suspicious assignment to defined constant "window.DEBUG" [assign-to-define]
      
      example.js:1:0:
        1 │ window.DEBUG = true
          ╵ ~~~~~~~~~~~~
      

      The expression "window.DEBUG" has been configured to be replaced with a constant using the "define" feature. If this expression is supposed to be a compile-time constant, then it doesn't make sense to assign to it here. Or if this expression is supposed to change at run-time, this "define" substitution should be removed.

    • Fix a regression with npm install --no-optional (#2720)

      Normally when you install esbuild with npm install, npm itself is the tool that downloads the correct binary executable for the current platform. This happens because of how esbuild's primary package uses npm's optionalDependencies feature. However, if you deliberately disable this with npm install --no-optional then esbuild's install script will attempt to repair the installation by manually downloading and extracting the binary executable from the package that was supposed to be installed.

      The change in version 0.16.0 to move esbuild's nested packages into the @esbuild/ scope unintentionally broke this logic because of how npm's URL structure is different for scoped packages vs. normal packages. It was actually already broken for a few platforms earlier because esbuild already had packages for some platforms in the @esbuild/ scope, but I didn't discover this then because esbuild's integration tests aren't run on all platforms. Anyway, this release contains some changes to the install script that should hopefully get this scenario working again.

    0.16.1

    This is a hotfix for the previous release.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps-dev): bump zotero-types from 0.0.6 to 0.0.8

    build(deps-dev): bump zotero-types from 0.0.6 to 0.0.8

    Bumps zotero-types from 0.0.6 to 0.0.8.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • [Announcement] Change to Bootstraped Extension

    [Announcement] Change to Bootstraped Extension

    I plan to add a new branch bootstrap to this template and make it a bootstraped extension, which will be set the main branch after finish, for the overlay extension will no longer be supported in the coming Zotero 7.

    See discussion here: https://groups.google.com/g/zotero-dev/c/TT_rcLVpQwg/m/qGgqzCfvAQAJ

    If you are using the overlay mode, don't worry. Won't be too hard to migrate to bootstrap mode.

    Also plan to wrap some important overlay functions, like right-click menu, pref-window, etc. as a new npm package

    opened by windingwind 1
  • Fix errors in install.rdf and binding preference window

    Fix errors in install.rdf and binding preference window

    1. RDF:resource="rdf:#$x61SL3" will throw an invalid message in Zotero console
    2. prefOptions key pluginID should be id, id is used in toolkit's code. Maybe you can update this key in toolkit. pluginID is like an email address and contains invalid characters @|. for CSS selector, these characters will be replaced by -

    https://github.com/windingwind/zotero-plugin-toolkit/blob/b31dc51efb9904618372fbe12752dd27d252c496/src/compat.ts#L336

    opened by l0o0 1
  • build(deps-dev): bump release-it from 14.14.3 to 15.6.0

    build(deps-dev): bump release-it from 14.14.3 to 15.6.0

    Bumps release-it from 14.14.3 to 15.6.0.

    Release notes

    Sourced from release-it's releases.

    Release 15.6.0

    • Fix specs for #966 (39a318b)
    • Move space (quickfix) (cfae247)
    • fix: use spec formdata (#958) (c21e6b6)
    • Fix npm.isCollaborator() on npm v9 (#966) (3bd405a)
    • feat(git): added option to use --exclude option on git describe (#963) (2b484bf)

    Release 15.5.1

    • Update dependencies (aa89cbd)
    • Prompt for npm OTP in --only-version (fixes #948) (ff626d1)
    • Remove unused export/function (331b0de)
    • Add knip + config (ee99f63)

    Release 15.5.0

    • Update dependencies (5d035be)
    • Add npm.versionArgs option (5efc57f)

    Release 15.4.3

    • Update dependencies (67da5d9)
    • Update got to 12.5.1 (#943) (a9c8c34)

    Release 15.4.2

    • Update dependencies (97095d5)
    • Defer dry run bail out in asset globbing (to include the warning in dry runs) (bf6ccc8)
    • Housekeeping for Actions (feff2eb)

    Release 15.4.1

    • Handle file paths and dots in git urls (055a4ff)
    • Update dependencies (including git-url-parse) (1851650)

    Release 15.4.0

    • Add npm.name to config.context and extend context for tagName (closes #933) (627763f)

    Release 15.3.0

    • Add new features to docs (e2101ed)
    • Add tests for branchName in tag name (a6f6eff)
    • Update dependencies (ae9ccb9)
    • add branchName for template (#897) (9aa9a5d)
    • add new --changelog option (#912) (5798a7a)

    Release 15.2.0

    • Update dependencies (b78eb1e)
    • Add package.json to exports (acc66f7)
    • Fixes loading scoped plugins to ensure name is preserved (#926) (145fc71)
    • Add workaround for Windows by removing drive letter from git url (#924) (ce3a726)
    • Enable manual triggers and disable tag triggers in test pipeline (b830876)
    • Fix plugin links (b7cd505)

    Release 15.1.4

    • Migrate to git-url-parse v12 (41aad00)

    ... (truncated)

    Changelog

    Sourced from release-it's changelog.

    Changelog

    This document lists breaking changes for each major release.

    See the GitHub Releases page for detailed changelogs: https://github.com/release-it/release-it/releases

    v15 (2022-04-30)

    • Removed support for Node.js v10 and v12.
    • Removed support for GitLab v12.4 and lower.
    • Removed anonymous metrics (and the option to disable it).
    • Programmatic usage and plugins only through ES Module syntax (import)

    Use release-it v14 in legacy environments.

    v14 (2020-09-03)

    • Removed global property from plugins. Use this.config[key] instead.
    • Removed deprecated npm.access option. Set this in package.json instead.

    v13 (2020-03-07)

    • Dropped support for Node v8
    • Dropped support for GitLab v11.6 and lower.
    • Deprecated scripts are removed (in favor of hooks).
    • Removed deprecated --non-interactive (-n) argument. Use --ci instead.
    • Removed old %s and [REV_RANGE] syntax in command substitutions. Use ${version} and ${latestTag} instead.

    v12 (2019-05-03)

    • The --follow-tags argument for git push has been moved to the default configuration. This is only a breaking change if git.pushArgs was not empty (it was empty by default).

    v11

    • The custom conventional-changelog increment (e.g. "increment": "conventional:angular") with additional script configuration is replaced with a plugin. Please see conventional changelog how to use this plugin.
    • The pkgFiles option has been removed. If there's a need to bump other files than what npm version bumps, it should be (part of) a plugin.
    • By default, the latest version was derived from the latest Git tag. From v11, if the repo has a package.json then that version is used instead. The use option has been removed. Also see latest version.
    • scripts.changelog has been moved to git.changelog

    v10

    • Dropped support for Node v6

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(0.0.6)
  • 0.0.6(Dec 29, 2022)

    • Merge branch 'bootstrap' of https://github.com/windingwind/zotero-plugin-template into bootstrap (af6dc3b)
    • update: plugin-toolkit 0.0.9 (8c372fe)
    • Merge pull request #14 from windingwind/dependabot/npm_and_yarn/esbuild-0.16.10 (c55548d)
    • Merge pull request #16 from l0o0/bootstrap (7e92f91)
    • doc: Update readme for locale section (d4af09b)
    • add: AddonLocal class for properities file. Update local label string in addontemplate (2307380)
    • build(deps-dev): bump esbuild from 0.15.18 to 0.16.10 (177fa37)
    • update: zotero-types v0.1.2 (2d19e55)
    Source code(tar.gz)
    Source code(zip)
    zotero-addon-template.xpi(15.67 KB)
  • 0.0.5(Dec 23, 2022)

    • update: zotero-types 0.1.1 (2e74972)
    • Merge branch 'bootstrap' of https://github.com/windingwind/zotero-plugin-template into bootstrap (36bb38f)
    • Update README.md (9996551)
    • add: example for extra column (f8a6b7a)
    • change: package.json config (67fb288)
    • change: use zotero-plugin-toolkit (969a527)
    Source code(tar.gz)
    Source code(zip)
    zotero-addon-template.xpi(14.66 KB)
  • 0.0.4(Dec 18, 2022)

  • 0.0.3(Dec 16, 2022)

  • 0.0.2(Dec 16, 2022)

  • 0.0.1(Dec 16, 2022)

    • Merge branch 'bootstrap-zo7' into bootstrap (2cd31e4)
    • add: preference compatibility for Zotero 6 & 7 (1ab8af4)
    • fix: pref window (583fbf1)
    • change: update.ref -> update.json (0b34640)
    • add: remove addon elements (06bc324)
    • add: views example for menu (c8b92a8)
    • fix: bootstrap.js bug (8db7a75)
    • add: utils (6f752cd)
    • fix: update files (7de5e38)
    • update: bootstrap for zotero 7 (56ac4d5)
    • Merge pull request #6 from windingwind/dependabot/npm_and_yarn/release-it-15.5.0 (021aee1)
    • build(deps-dev): bump release-it from 14.14.3 to 15.5.0 (5b38816)
    • Merge pull request #5 from windingwind/dependabot/npm_and_yarn/zotero-types-0.0.6 (eca06ce)
    • Merge pull request #4 from windingwind/dependabot/npm_and_yarn/esbuild-0.15.16 (01ec395)
    • build(deps-dev): bump zotero-types from 0.0.4 to 0.0.6 (cf43b10)
    • build(deps): bump esbuild from 0.14.54 to 0.15.16 (833a9cc)
    • Create dependabot.yml (b118c63)
    • fix: update.rdf (51bbc58)
    • init: bootstrap extension mode (cfd3014)
    • Merge branch 'master' of https://github.com/windingwind/zotero-plugin-template (9976511)
    • fix: typing bug (7c9a355)
    • Update README.md (3f291fe)
    • update: use zotero-types (cef9153)
    • Fix: build async bug (8bad0cf)
    • Update: data.d.ts (fdbf369)
    • Update: TypeScript Definitions (eaffc80)
    • first commit (165add9)
    Source code(tar.gz)
    Source code(zip)
    zotero-addon-template.xpi(12.05 KB)
Owner
null
Obsidian.md plugin to integrate with Zotero, create literature notes and insert citations from a Zotero library.

Obsidian Zotero Plugin Obsidian.md plugin to integrate with Zotero, create literature notes and insert citations from a Zotero library. Intro How to u

null 156 Jan 6, 2023
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
A plugin that will automatically download PDFs of zotero items from sci-hub

Zotero Scihub This is an add-on for Zotero and Juris-M that enables automatic download of PDFs for items with a DOI. Quick Start Guide Install Downloa

Ethan Willis 1.9k Jan 8, 2023
Zotero translator 优化

1. Zotero translators 中文维护小组-开智分组 2. 背景 响应阳老师剥削机器而非剥削人,为国内优质信息源新增translator,利用好工具提高效率 3. 安装 3.1. zotero安装 参考:Zotero(1):文献管理软件Zotero基础及进阶示范 - 阳志平的网志 3.

氦客船长 56 Dec 24, 2022
PDF translation add-on for Zotero 6

Zotero PDF Translate This is an add-on for Zotero 6. It provides PDF translation for Zotero's built-in PDF reader. Quick Start Guide Install Download

null 2.1k Jan 8, 2023
A note enhancement & full knowledge management workflow for Zotero.

Knowledge for Zotero A full knowledge management workflow in Zotero. User Guide(EN) | 用户指引(中文) Review.Writing.Best.Practice.mp4 Features Note as you g

null 1.3k Jan 9, 2023
Everything about note management. All in Zotero.

Zotero Better Notes Everything about note management. All in Zotero. User Guide(EN) | 用户指引(中文) All in Zotero: Best Note Practice Review.Writing.Best.P

null 1.3k Jan 9, 2023
⚡ Archive of all Zotero Translators co-created by participants of the Information Analysis course in 2018 to date.

awesome-translators 1. awesome-translators 维护小组 1.1 Translators 更新流程 1.2 Zotero 安装流程 1.3 Zotero 进阶资料 2. Translators 2.1 Translators 总览表 2.2 Translator

开智学堂 99 Dec 30, 2022
PDF Preview for Zotero.

Zotero PDF Preview Preview PDF attachments in the library view. Fast & easy. Do not require any third-party softwares. Quick Start Guide Install Downl

null 352 Jan 4, 2023
A good-looking Zotero add-on.

Chartero 简介 记录Zotero内置阅读器的浏览历史并通过各种图形呈现出来,方便读者对过去一段时间内学习过程的复盘与回顾。 使用说明 首选项参数 扫描周期:阅读时记录页码的时间间隔,推荐1秒 保存周期:保存历史数据的时间间隔,过小会导致卡顿 仪表盘 选择文献条目后,右侧边栏将出现“仪表盘”选

PasCal++ 104 Dec 20, 2022
Image addon for xterm.js

xterm-addon-image Image output in xterm.js. ⚠️ This is an experimental addon, that is still under construction. ⚠️ Install from npm (not yet released)

null 28 Dec 11, 2022
Simple & Quick Access Addon For Home Assistant

Home Assistant - Firefox Addon Quick Access Home Assistant - Firefox Addon Usage Create a Custom Dashboard With Quick Access Entity In Home Assistant

Varun Sridharan 7 Dec 25, 2022
Simple & Quick Access Addon For Homer Dashboard

Homer Dashboard - Firefox Addon Quick Access Homer Dashboard - Firefox Addon Usage Install Addon [ Firefox ] Configure The Addon Add The Quick Access

Varun Sridharan 7 Jan 22, 2022
L'addon qui sauveras les prochaines années

GachaCleaner Une Extension Firefox pour purifier la lecture Download Changer "iel" ?? en : Permet de changer l'inexistant terme en quelque chose qui e

null 7 Jul 4, 2022
Jump to github urls (browser addon)

Currently a Firefox addon. Find GitHub locations quickly using your browser's history. Usage Use your mouse or keyboard. Use the filter to search for

madprops 4 Nov 28, 2022
This is a dependency-free easy-to-use vanilla JavaScript addon allowing you to create HTML currency inputs with various different currencies and formattings.

intl-currency-input This is a dependency-free easy-to-use vanilla JavaScript addon allowing you to create HTML currency inputs with various different

null 6 Jan 4, 2023
p5.grain is a p5.js addon for conveniently adding grain and texture overlays to artworks.

?? p5.grain p5.grain is a p5.js addon for conveniently adding grain and texture overlays to artworks. p5.grain was also created with fxhash projects i

meezwhite 39 Dec 24, 2022