Skip to main content

Anki Add-on Builder

Project description

Anki Add-on Builder

An opinionated build tool for Anki add-ons. Used in most of my major Anki projects.

Disclaimer

Project State

This is still very much a work-in-progress. Neither the API, nor the implementation are set in stone. At this point the project's main purpose lies in replacing the variety of different build scripts I am employing across all of my add-ons, making the build chain more standardized and maintainable.

Platform Support

aab has only been tested on Linux so far, but it might also work on other POSIX-compliant environments like macOS.

Installation

Requirements

aab needs to be run in an Anki development environment to work correctly. Please refer to Anki's documentation for information on how to set this up.

Installing the latest release

pip install aab

Installing from the master branch

pip install --upgrade git+https://github.com/glutanimate/anki-addon-builder.git

Usage

You can get an overview of all supported actions by accessing the built-in help:

$ aab -h
usage: aab [-h] [-v] [-s] {build,ui,clean} ...

positional arguments:
    {build,ui,clean}
    build           Build and package add-on for distribution
    ui              Compile add-on user interface files
    clean           Clean leftover build files

optional arguments:
    -h, --help        show this help message and exit
    -v, --verbose     Enable verbose output

Each subcommand also comes with its own help screen, e.g.:

$ aab build -h
usage: aab build [-h] [-t {anki21,anki20,all}] [-d {local,ankiweb,all}]
                 [version]

positional arguments:
  version               Version to build as a git reference (e.g. 'v1.2.0' or
                        'd338f6405'). Special keywords: 'current' – latest
                        commit, 'release' – latest tag. Leave empty to build
                        latest tag.

optional arguments:
  -h, --help            show this help message and exit
  -t {anki21,anki20,all}, --target {anki21,anki20,all}
                        Anki version to build for
  -d {local,ankiweb,all}, --dist {local,ankiweb,all}
                        Distribution channel to build for

Examples

Build latest tagged add-on release

aab build -d local -t anki21 release

or simply

aab build

Compile Qt UI forms and resources for Anki 2.1

aab ui -t anki21

Specifications

Project Structure

In order for aab to work correctly, your project should generally follow the directory structure below:

project root
├── src [required] (contains add-on package and Anki 2.0 entry-point)
│   ├── {module_name} [required] (add-on package)
|   └── {display_name}.py [optional] (Anki 2.0 entry-point)
└── addon.json [required] (contains add-on meta information read by aab)

For a more detailed look at the entire directory tree please feel free to take a look at some of the add-ons I've published recently.

addon.json

All of the metadata needed by aab to work correctly is stored in an addon.json file at the root of the project tree. For more information on its fields and their specifications please refer to the schema file.

License and Credits

Anki Add-on Builder is Copyright © 2019 Aristotelis P. (Glutanimate)

Anki Add-on Builder is free and open-source software. Its source-code is released under the GNU AGPLv3 license, extended by a number of additional terms. For more information please see the license file that accompanies this program.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. Please see the license file for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aab-0.1.4.tar.gz (25.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page