Update readme
This commit is contained in:
parent
d2d8922f66
commit
9c824d6faa
175
README.md
175
README.md
@ -7,22 +7,23 @@ This is a plugin template for [Zotero](https://www.zotero.org/).
|
|||||||
|
|
||||||
Plugins created with this template:
|
Plugins created with this template:
|
||||||
|
|
||||||

|
[](https://github.com/windingwind/zotero-better-notes)
|
||||||

|
[](https://github.com/windingwind/zotero-pdf-preview)
|
||||||

|
[](https://github.com/windingwind/zotero-pdf-translate)
|
||||||

|
[](https://github.com/windingwind/zotero-tag)
|
||||||

|
[](https://github.com/iShareStuff/ZoteroTheme)
|
||||||

|
[](https://github.com/MuiseDestiny/zotero-reference)
|
||||||

|
[](https://github.com/MuiseDestiny/zotero-citation)
|
||||||

|
[](https://github.com/MuiseDestiny/ZoteroStyle)
|
||||||

|
[](https://github.com/volatile-static/Chartero)
|
||||||

|
[](https://github.com/l0o0/tara)
|
||||||

|
[](https://github.com/redleafnew/delitemwithatt)
|
||||||

|
[](https://github.com/redleafnew/zotero-updateifsE)
|
||||||

|
[](https://github.com/northword/zotero-format-metadata)
|
||||||

|
[](https://github.com/inciteful-xyz/inciteful-zotero-plugin)
|
||||||

|
[](https://github.com/MuiseDestiny/zotero-gpt)
|
||||||

|
[](https://github.com/zoushucai/zotero-journalabbr)
|
||||||
|
[](https://github.com/MuiseDestiny/zotero-figure)
|
||||||
|
|
||||||
📖[Plugin Development Documentation](https://zotero.yuque.com/books/share/8d230829-6004-4934-b4c6-685a7001bfa0/vec88d)(Chinese, provides English translation)
|
📖[Plugin Development Documentation](https://zotero.yuque.com/books/share/8d230829-6004-4934-b4c6-685a7001bfa0/vec88d)(Chinese, provides English translation)
|
||||||
|
|
||||||
@ -141,8 +142,8 @@ This is also how your plugin will be released and used by others.
|
|||||||
- Enter the repo folder;
|
- Enter the repo folder;
|
||||||
- Modify the settings in `./package.json`, including:
|
- Modify the settings in `./package.json`, including:
|
||||||
|
|
||||||
```json5
|
```json5
|
||||||
{
|
{
|
||||||
version,
|
version,
|
||||||
author,
|
author,
|
||||||
description,
|
description,
|
||||||
@ -155,18 +156,18 @@ This is also how your plugin will be released and used by others.
|
|||||||
addonRef, // e.g. Element ID prefix
|
addonRef, // e.g. Element ID prefix
|
||||||
addonInstance // the plugin's root instance: Zotero.${addonInstance}
|
addonInstance // the plugin's root instance: Zotero.${addonInstance}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
> Be careful to set the addonID and addonRef to avoid confliction.
|
> Be careful to set the addonID and addonRef to avoid confliction.
|
||||||
|
|
||||||
- Run `npm install` to set up the plugin and install dependencies. If you don't have NodeJS installed, please download it [here](https://nodejs.org/en/);
|
- Run `npm install` to set up the plugin and install dependencies. If you don't have NodeJS installed, please download it [here](https://nodejs.org/en/);
|
||||||
- Run `npm run build` to build the plugin in production mode. Run `npm run build-dev` to build the plugin in development mode. The xpi for installation and the built code is under `builds` folder.
|
- Run `npm run build` to build the plugin in production mode. Run `npm run build-dev` to build the plugin in development mode. The xpi for installation and the built code is under `builds` folder.
|
||||||
|
|
||||||
> What the difference between dev & prod?
|
> What the difference between dev & prod?
|
||||||
>
|
>
|
||||||
> - This environment variable is stored in `Zotero.${addonInstance}.data.env`. The outputs to console is disabled in prod mode.
|
> - This environment variable is stored in `Zotero.${addonInstance}.data.env`. The outputs to console is disabled in prod mode.
|
||||||
> - You can decide what users cannot see/use based on this variable.
|
> - You can decide what users cannot see/use based on this variable.
|
||||||
|
|
||||||
### Release
|
### Release
|
||||||
|
|
||||||
@ -181,19 +182,19 @@ npm run release
|
|||||||
|
|
||||||
### Setup Development Environment
|
### Setup Development Environment
|
||||||
|
|
||||||
1. Install a beta version of Zotero: https://www.zotero.org/support/beta_builds (Zotero 7 beta: https://www.zotero.org/support/dev/zotero_7_for_developers)
|
1. Install a beta version of Zotero: <https://www.zotero.org/support/beta_builds> (Zotero 7 beta: <https://www.zotero.org/support/dev/zotero_7_for_developers>)
|
||||||
|
|
||||||
2. Install Firefox 102(for Zotero 7)
|
2. Install Firefox 102(for Zotero 7)
|
||||||
|
|
||||||
3. Copy zotero command line config file. Modify the commands that starts your installation of the beta Zotero.
|
3. Copy zotero command line config file. Modify the commands that starts your installation of the beta Zotero.
|
||||||
|
|
||||||
> (Optional) Do this only once: Start the beta Zotero with `/path/to/zotero -p`. Create a new profile and use it as your development profile.
|
> (Optional) Do this only once: Start the beta Zotero with `/path/to/zotero -p`. Create a new profile and use it as your development profile.
|
||||||
> Use `/path/to/zotero -p {profile_name}` to specify which profile to run with.
|
> Use `/path/to/zotero -p {profile_name}` to specify which profile to run with.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cp ./scripts/zotero-cmd-default.json ./scripts/zotero-cmd.json
|
cp ./scripts/zotero-cmd-default.json ./scripts/zotero-cmd.json
|
||||||
vim ./scripts/zotero-cmd.json
|
vim ./scripts/zotero-cmd.json
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Setup plugin development environment following this [link](https://www.zotero.org/support/dev/client_coding/plugin_development#setting_up_a_plugin_development_environment).
|
4. Setup plugin development environment following this [link](https://www.zotero.org/support/dev/client_coding/plugin_development#setting_up_a_plugin_development_environment).
|
||||||
|
|
||||||
@ -203,7 +204,7 @@ vim ./scripts/zotero-cmd.json
|
|||||||
|
|
||||||
7. In Firefox, go to devtools, go to settings, click "enable remote debugging" and the one next to it that's also about debugging
|
7. In Firefox, go to devtools, go to settings, click "enable remote debugging" and the one next to it that's also about debugging
|
||||||
|
|
||||||
> Enter `about:debugging#/setup` in FF 102.
|
> Enter `about:debugging#/setup` in FF 102.
|
||||||
|
|
||||||
8. In Zotero, go to setting, advanced, config editor, look up "debugging" and click on "allow remote debugging".
|
8. In Zotero, go to setting, advanced, config editor, look up "debugging" and click on "allow remote debugging".
|
||||||
|
|
||||||
@ -239,7 +240,7 @@ You can also:
|
|||||||
- Test code snipastes in Tools->Developer->Run Javascript;
|
- Test code snipastes in Tools->Developer->Run Javascript;
|
||||||
- Debug output with `Zotero.debug()`. Find the outputs in Help->Debug Output Logging->View Output;
|
- Debug output with `Zotero.debug()`. Find the outputs in Help->Debug Output Logging->View Output;
|
||||||
- Debug UI. Zotero is built on the Firefox XUL framework. Debug XUL UI with software like [XUL Explorer](https://udn.realityripple.com/docs/Archive/Mozilla/XUL_Explorer).
|
- Debug UI. Zotero is built on the Firefox XUL framework. Debug XUL UI with software like [XUL Explorer](https://udn.realityripple.com/docs/Archive/Mozilla/XUL_Explorer).
|
||||||
> XUL Documentation: http://www.devdoc.net/web/developer.mozilla.org/en-US/docs/XUL.html
|
> XUL Documentation: <http://www.devdoc.net/web/developer.mozilla.org/en-US/docs/XUL.html>
|
||||||
|
|
||||||
## Details
|
## Details
|
||||||
|
|
||||||
@ -298,7 +299,7 @@ Steps in `scripts/build.js`:
|
|||||||
|
|
||||||
### About Zotero API
|
### About Zotero API
|
||||||
|
|
||||||
Zotero docs are outdated and incomplete. Clone https://github.com/zotero/zotero and search the keyword globally.
|
Zotero docs are outdated and incomplete. Clone <https://github.com/zotero/zotero> and search the keyword globally.
|
||||||
|
|
||||||
> ⭐The [zotero-types](https://github.com/windingwind/zotero-types) provides most frequently used Zotero APIs. It's included in this template by default. Your IDE would provide hint for most of the APIs.
|
> ⭐The [zotero-types](https://github.com/windingwind/zotero-types) provides most frequently used Zotero APIs. It's included in this template by default. Your IDE would provide hint for most of the APIs.
|
||||||
|
|
||||||
@ -319,56 +320,66 @@ This section shows the directory structure of a template.
|
|||||||
> Don't break the lines in the `defaults.js`
|
> Don't break the lines in the `defaults.js`
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
│ .gitignore
|
.
|
||||||
│ .release-it.json # release-it conf
|
|-- .eslintrc.json # eslint conf
|
||||||
| tsconfig.json # https://code.visualstudio.com/docs/languages/jsconfig#
|
|-- .gitattributes # git conf
|
||||||
│ build.js # esbuild
|
|-- .github/ # github conf
|
||||||
│ LICENSE
|
|-- .gitignore # git conf
|
||||||
│ package.json # npm conf
|
|-- .prettierrc # prettier conf
|
||||||
│ README.md # readme
|
|-- .release-it.json # release-it conf
|
||||||
│ update.rdf # addon update
|
|-- .vscode # vs code conf
|
||||||
│
|
| |-- extensions.json
|
||||||
├─.github # github conf
|
| |-- launch.json
|
||||||
│
|
| |-- setting.json
|
||||||
├─addon # addon dir
|
| `-- toolkit.code-snippets
|
||||||
│ │ manifest.json # addon config
|
|-- package-lock.json # npm conf
|
||||||
│ │ bootstrap.js # addon load/unload script, like a main.c
|
|-- package.json # npm conf
|
||||||
│ │
|
|-- LICENSE
|
||||||
│ └─chrome
|
|-- README.md
|
||||||
│ ├─content # UI
|
|-- addon
|
||||||
│ │ │ preferences.xhtml
|
| |-- bootstrap.js # addon load/unload script, like a main.c
|
||||||
│ │ │
|
| |-- chrome
|
||||||
│ │ ├─icons
|
| | `-- content
|
||||||
│ │ │ favicon.png
|
| | |-- icons/
|
||||||
│ │ │ favicon@0.5x.png
|
| | |-- preferences.xhtml # preference panel
|
||||||
│ │ │
|
| | `-- zoteroPane.css
|
||||||
│ │ └─scripts
|
| |-- locale # locale
|
||||||
│ └─locale # locale
|
| | |-- en-US
|
||||||
│ ├─en-US
|
| | | |-- addon.ftl
|
||||||
│ │ overlay.dtd
|
| | | `-- preferences.ftl
|
||||||
│ │ addon.properties
|
| | `-- zh-CN
|
||||||
│ │
|
| | |-- addon.ftl
|
||||||
│ ├─zh-CN
|
| | `-- preferences.ftl
|
||||||
│ | overlay.dtd
|
| |-- manifest.json # addon config
|
||||||
│ └─ addon.properties
|
| `-- prefs.js
|
||||||
│
|
|-- builds/ # build dir
|
||||||
├─builds # build dir
|
|-- scripts # scripts for dev
|
||||||
│ └─.xpi
|
| |-- build.mjs # esbuild and replace
|
||||||
│
|
| |-- reload.mjs
|
||||||
└─src # source code
|
| |-- start.mjs
|
||||||
│ index.ts # main entry
|
| |-- stop.mjs
|
||||||
│ addon.ts # base class
|
| `-- zotero-cmd-default.json
|
||||||
│ hooks.ts # lifecycle hooks
|
|-- src # source code
|
||||||
|
|
| |-- addon.ts # base class
|
||||||
└─modules # sub modules
|
| |-- hooks.ts # lifecycle hooks
|
||||||
│ examples.ts # examples factory
|
| |-- index.ts # main entry
|
||||||
│ locale.ts # locale .properties
|
| |-- modules # sub modules
|
||||||
│ preferenceScript.ts # script runs in preferences.xhtml
|
| | |-- examples.ts
|
||||||
└─ progressWindow.ts # progressWindow tool
|
| | `-- preferenceScript.ts
|
||||||
|
| `-- utils # utilities
|
||||||
|
| |-- locale.ts
|
||||||
|
| |-- prefs.ts
|
||||||
|
| |-- wait.ts
|
||||||
|
| `-- window.ts
|
||||||
|
|-- tsconfig.json # https://code.visualstudio.com/docs/languages/jsconfig
|
||||||
|
|-- typings # ts typings
|
||||||
|
| `-- global.d.ts
|
||||||
|
|-- update-template.json # template of `update.json`
|
||||||
|
`-- update.json
|
||||||
```
|
```
|
||||||
|
|
||||||
## Disclaimer
|
## Disclaimer
|
||||||
|
|
||||||
Use this code under AGPL. No warranties are provided. Keep the laws of your locality in mind!
|
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 wyzlshx@foxmail.com
|
If you want to change the license, please contact me at <wyzlshx@foxmail.com>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user