spaCy/website/UNIVERSE.md
2021-12-27 13:46:04 +01:00

4.8 KiB
Raw Blame History

spaCy Universe

The spaCy Universe collects the many great resources developed with or for spaCy. It includes standalone packages, plugins, extensions, educational materials, operational utilities and bindings for other languages.

If you have a project that you want the spaCy community to make use of, you can suggest it by submitting a pull request to this repository. The Universe database is open-source and collected in a simple JSON file.

Looking for inspiration for your own spaCy plugin or extension? Check out the project ideas discussion forum.

Checklist

Projects

Libraries and packages should be open-source (with a user-friendly license) and at least somewhat documented (e.g. a simple README with usage instructions).

We're happy to include work in progress and prereleases, but we'd like to keep the emphasis on projects that should be useful to the community right away.

Demos and visualizers should be available via a public URL.

Educational Materials

Books should be available for purchase or download (not just pre-order). Ebooks and self-published books are fine, too, if they include enough substantial content.

The "url" of book entries should either point to the publisher's website or a reseller of your choice (ideally one that ships worldwide or as close as possible).

If an online course is only available behind a paywall, it should at least have a free excerpt or chapter available, so users know what to expect.

JSON format

To add a project, fork this repository, edit the universe.json and add an object of the following format to the list of "resources". Before you submit your pull request, make sure to use a linter to verify that your markup is correct.

{
    "id": "unique-project-id",
    "title": "Project title",
    "slogan": "A short summary",
    "description": "A longer description  *Markdown allowed!*",
    "github": "user/repo",
    "pip": "package-name",
    "code_example": [
        "import spacy",
        "import package_name",
        "",
        "nlp = spacy.load('en')",
        "nlp.add_pipe(package_name)"
    ],
    "code_language": "python",
    "url": "https://example.com",
    "thumb": "https://example.com/thumb.jpg",
    "image": "https://example.com/image.jpg",
    "author": "Your Name",
    "author_links": {
        "twitter": "username",
        "github": "username",
        "website": "https://example.com"
    },
    "category": ["pipeline", "standalone"],
    "tags": ["some-tag", "etc"]
}
Field Type Description
id string Unique ID of the project.
title string Project title. If not set, the id will be used as the display title.
slogan string A short description of the project. Displayed in the overview and under the title.
description string A longer description of the project. Markdown is allowed, but should be limited to basic formatting like bold, italics, code or links.
github string Associated GitHub repo in the format user/repo. Will be displayed as a link and used for release, license and star badges.
pip string Package name on pip. If available, the installation command will be displayed.
cran string For R packages: package name on CRAN. If available, the installation command will be displayed.
code_example array Short example that shows how to use the project. Formatted as an array with one string per line.
code_language string Defaults to 'python'. Optional code language used for syntax highlighting with Prism.
url string Optional project link to display as button.
thumb string Optional URL to project thumbnail to display in overview and project header. Recommended size is 100x100px.
image string Optional URL to project image to display with description.
author string Name(s) of project author(s).
author_links object Usernames and links to display as icons to author info. Currently supports twitter and github usernames, as well as website link.
category list One or more categories to assign to project. Must be one of the available options.
tags list Still experimental and not used for filtering: one or more tags to assign to project.

To separate them from the projects, educational materials also specify "type": "education. Books can also set a "cover" field containing a URL to a cover image. If available, it's used in the overview and displayed on the individual book page.