{"id":20204620,"url":"https://github.com/tropy/tropy-plugin-example","last_synced_at":"2026-05-08T21:32:10.809Z","repository":{"id":39802253,"uuid":"493183993","full_name":"tropy/tropy-plugin-example","owner":"tropy","description":"A Tropy Plugin Boilerplate","archived":false,"fork":false,"pushed_at":"2024-12-16T16:06:34.000Z","size":84,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-03T09:32:00.410Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/tropy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2022-05-17T09:32:32.000Z","updated_at":"2025-02-12T23:56:18.000Z","dependencies_parsed_at":"2025-01-13T20:42:25.018Z","dependency_job_id":"b8498db7-c9a3-4e09-9a1e-d4588fe25a8c","html_url":"https://github.com/tropy/tropy-plugin-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/tropy/tropy-plugin-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tropy%2Ftropy-plugin-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tropy%2Ftropy-plugin-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tropy%2Ftropy-plugin-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tropy%2Ftropy-plugin-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tropy","download_url":"https://codeload.github.com/tropy/tropy-plugin-example/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tropy%2Ftropy-plugin-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32798288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-11-14T05:14:16.038Z","updated_at":"2026-05-08T21:32:10.789Z","avatar_url":"https://github.com/tropy.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"icon.svg\"\u003e\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003etropy-plugin-example\u003c/h1\u003e\n\nThis package is a sample plugin for [Tropy](https://tropy.org). It does not\nactively do anyting, but provides all the necessary scaffolding and build\nscripts to get you setup for your own plugin.\n\nTo get started, just clone or use this template repository on GitHub, find more\n[specifications](https://github.com/tropy/tropy/blob/master/res/plugins/README.md) in\nyour Tropy's plugin folder, look up [other\nplugins](https://docs.tropy.org/#plugins) in the user manual and join the\ndiscussion on the [forums](https://forums.tropy.org).\n\nHappy hacking!\n\n## Installation\n* Download the `.zip` file from the [latest\nrelease](https://github.com/tropy/tropy-plugin-example/releases/latest) on\nGitHub.\n* In Tropy, navigate to *Preferences… \u003e Plugins* and click *Install\nPlugin* to select the downloaded ZIP file.\n\n## Configuration\nTo configure the plugin, click its *Settings* button in *Preferences \u003e Plugins*:\n\nThe example plugin has two configuration options, to demonstrate a file\nselector and a boolean option.  They have no effect on the plugin\nfunctionality, but their values should be logged to the console when the plugin\nconstructor is called.\n\n## Usage\nThe example plugin implements the *import* and *export* hooks.  Both hooks just\nlog the arguments they are called with to the console.\n\nTo see the plugin in action, enable *Developer mode* in the preferences and\nthen, back in the project window toggle the developer tools from the developer\nmenu. When you reload the window, you will see the arguments logged by plugin's\nconstructor (for each plugin instance you configured). To trigger any of the\nhooks, just select the respective entries in the import and export sub-menus.\n\n## Developing and debugging\nFor development, we suggest to symlink your project into your\n`\u003cuserData\u003e/plugins/my-plugin` directory, specifically the `index.js` and\n`package.json` files from the root of your plugin repository.  Generate\n`index.js` using Rollup with the command `npm run watch` for live updates to\nthe file while you are developing.\n\nYou will be able to see the output of `console.log()` statements in DevTools,\nas well as access information from Tropy's state by typing `tropy.state()` at\nthe console.\n\nYou can also include `debugger` in your code, and execution will pause,\nallowing you to inspect the scope.\n\nAlternatively, you can use Tropy's logger, which is passed into your plugin via\nthe `context` parameter.  Use `this.context.logger('message')` to write to the\n*tropy.log* file in the Tropy logs folder.\n\n## Releasing and Distributing\nWhen you are ready to share the plugin with other users, create a tag in your\ngit repository and push it to GitHub, for example\n\n```sh\ngit tag v1.0.0\ngit push origin v1.0.0\n```\n\nThe `release.yml` workflow provided with this template will create a release in\nGitHub, consisting of a zip file with your plugin's name and version number,\nand source code archives. Users should download the named zip file, not the\nsource code archives - these are added to a release automatically for debugging\npurposes.\n\nWhen you have a release ready to distribute, you can edit the release in GitHub\nto write some release notes and remove the `pre-release` flag. The release will\nthen be shown to users as the \"latest\" release on the repository's homepage.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftropy%2Ftropy-plugin-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftropy%2Ftropy-plugin-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftropy%2Ftropy-plugin-example/lists"}