{"id":17028252,"url":"https://github.com/northword/zotero-format-metadata","last_synced_at":"2026-05-30T03:02:27.183Z","repository":{"id":145980773,"uuid":"616949450","full_name":"northword/zotero-format-metadata","owner":"northword","description":"Linter for Zotero. A plugin for Zotero to format item metadata. Shortcut to set title rich text; set journal abbreviations, university places, and item languages, etc; detect duplicate items.","archived":false,"fork":false,"pushed_at":"2026-05-01T07:38:09.000Z","size":19870,"stargazers_count":908,"open_issues_count":18,"forks_count":19,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-05-01T09:28:40.683Z","etag":null,"topics":["abbreviation","journal","linter","metadata","zotero","zotero-addon","zotero-plugin"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/northword.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-03-21T12:08:30.000Z","updated_at":"2026-05-01T07:38:12.000Z","dependencies_parsed_at":"2025-11-28T16:07:42.749Z","dependency_job_id":null,"html_url":"https://github.com/northword/zotero-format-metadata","commit_stats":null,"previous_names":[],"tags_count":204,"template":false,"template_full_name":"windingwind/zotero-plugin-template","purl":"pkg:github/northword/zotero-format-metadata","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/northword%2Fzotero-format-metadata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/northword%2Fzotero-format-metadata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/northword%2Fzotero-format-metadata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/northword%2Fzotero-format-metadata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/northword","download_url":"https://codeload.github.com/northword/zotero-format-metadata/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/northword%2Fzotero-format-metadata/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33678271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abbreviation","journal","linter","metadata","zotero","zotero-addon","zotero-plugin"],"created_at":"2024-10-14T07:53:13.052Z","updated_at":"2026-05-30T03:02:27.150Z","avatar_url":"https://github.com/northword.png","language":"TypeScript","funding_links":[],"categories":["Extensions"],"sub_categories":["Customization"],"readme":"\u003cdiv align=\"center\"\u003e\n\n![Linter for Zotero](./docs/assets/slogan-for-readme.jpg)\n\n[![zotero target version](https://img.shields.io/badge/Zotero-^8_||_^9-green?\u0026logo=zotero\u0026logoColor=CC2936)](https://www.zotero.org)\n[![version](https://img.shields.io/github/package-json/v/northword/zotero-format-metadata)](https://github.com/northword/zotero-format-metadata/releases/)\n[![download number](https://img.shields.io/github/downloads/northword/zotero-format-metadata/latest/total)](https://github.com/northword/zotero-format-metadata/releases/)\n[![license](https://img.shields.io/github/license/northword/zotero-format-metadata)](#licence)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/b851796e53724d7aa7c00923955e0f56)](https://app.codacy.com/gh/northword/zotero-format-metadata/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade)\n[![Using Zotero Plugin Template](https://img.shields.io/badge/Using-Zotero%20Plugin%20Template-blue?\u0026logo=github)](https://github.com/windingwind/zotero-plugin-template)\n\nThis README is also available in: [:cn: 简体中文](./docs/README-zh.md) | [:fr: French](https://docs.zotero-fr.org/kbfr/kbfr_linter)\n\nAn addon for [Zotero](https://www.zotero.org/) to format item metadata.\n\nKeep your Zotero library clean and consistent with automatic validation, corrections, and metadata updates.\n\n\u003c/div\u003e\n\n## Features\n\n- 🎨 Rich text editing for titles (superscript, subscript, italics, bold, etc.)\n- 🔍 Automatic duplicate detection on import\n- 🧾 Smarter item type validation with import failure warnings\n- ✨ Field optimization: language detection, sentence case titles, journal abbreviations, university locations, normalized dates/DOIs/pages/volumes\n- 📥 One-click metadata updates via DOI, ArXiv ID, and more\n\nFor more details, see [features](./docs/features.md).\n\n## Install\n\n1. Go to the [release page](https://github.com/northword/zotero-format-metadata/releases/) or [Zotero Chinese](https://zotero-chinese.com/plugins/#search=linter) to download [the latest `.xpi` file](https://github.com/northword/zotero-format-metadata/releases/latest/download/zotero-format-metadata.xpi).\n2. Then, in Zotero, click `Tools` -\u003e `Plugin` and drag the `.xpi` onto the Plugins Manager window. See [how to install a Zotero addon](https://zotero-chinese.com/user-guide/plugins/about-plugin.html).\n\n## Todo\n\nSee [Project #1](https://github.com/users/northword/projects/1) .\n\n## Contribution\n\nSee [CONTRIBUTING.md](./docs/CONTRIBUTING.md).\n\n## Licence\n\nGNU Affero General Public License v3.0\n\nPermissions of this strongest copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. When a modified version is used to provide a service over a network, the complete source code of the modified version must be made available.\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fnorthword%2Fzotero-format-metadata.svg?type=large\u0026issueType=license)](https://app.fossa.com/projects/git%2Bgithub.com%2Fnorthword%2Fzotero-format-metadata?ref=badge_large\u0026issueType=license)\n\n## Acknowledgements\n\nWe would like to express our sincere gratitude to the following:\n\n- This project is built upon the [Zotero Plugin Template](https://github.com/windingwind/zotero-plugin-template) and makes extensive use of outstanding open-source libraries. For a complete list, please refer to the [dependency graph](https://github.com/northword/zotero-format-metadata/network/dependencies).\n- We thank the providers of the following data resources:\n  - [ISO 639-3](https://github.com/wooorm/iso-639-3) and its associated [mapping table](https://github.com/amitbend/iso-639-3-to-1/blob/master/6393-6391.json)\n  - [JabRef journal abbreviation list](https://github.com/JabRef/abbrv.jabref.org)\n  - [List of National Higher Education Institutions](http://www.moe.gov.cn/jyb_xxgk/s5743/s5744/A03/202110/t20211025_574874.html), published by the Ministry of Education of the People’s Republic of China\n- We gratefully acknowledge the data support provided by the following API services:\n  - [CrossRef API](https://api.crossref.org/): for retrieving DOI metadata and bibliographic metadata\n  - [Semantic Scholar API](https://api.semanticscholar.org/): for retrieving bibliographic metadata\n  - [shortdoi.org](https://shortdoi.org/): for generating short DOIs\n  - [doi.org](https://www.doi.org/): for resolving DOIs\n  - [abbreviso](https://github.com/marcocorvi/abbreviso): for inferring journal abbreviations\n- We are indebted to the [DOI Manager](https://github.com/bwiernik/zotero-shortdoi) (MPL-2.0 License) for inspiring the implementation of the `require-doi`, `correct-doi-long`, and `tool-get-short-doi` rules.\n- Special thanks to @zepinglee for curating the [Zotero Field Specification](https://github.com/l0o0/translators_CN/issues/257).\n- We would also like to thank the Zotero French translation team for providing a French user guide for this plugin.\n- We also acknowledge the valuable coding assistance provided by ChatGPT and DeepSeek during development.\n- Finally, thanks to all project contributors:\n\n[![contributors](https://contrib.rocks/image?repo=northword/zotero-format-metadata)](https://github.com/northword/zotero-format-metadata/graphs/contributors)\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=northword/zotero-format-metadata\u0026type=Date)](https://star-history.com/#northword/zotero-format-metadata\u0026Date)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorthword%2Fzotero-format-metadata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnorthword%2Fzotero-format-metadata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorthword%2Fzotero-format-metadata/lists"}