{"id":15017266,"url":"https://github.com/repeat-space/anki-apkg-export","last_synced_at":"2026-01-12T02:27:24.888Z","repository":{"id":6221541,"uuid":"55118467","full_name":"repeat-space/anki-apkg-export","owner":"repeat-space","description":":book: Generate decks for Anki (spaced repetition software)","archived":false,"fork":false,"pushed_at":"2023-02-11T06:54:29.000Z","size":931,"stargazers_count":164,"open_issues_count":17,"forks_count":41,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-24T05:02:00.736Z","etag":null,"topics":["anki","spaced-repetition","srs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/repeat-space.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2016-03-31T03:47:50.000Z","updated_at":"2025-04-22T18:23:48.000Z","dependencies_parsed_at":"2024-06-18T18:14:09.820Z","dependency_job_id":"eb761784-e0f7-45d3-a8e7-3a0e477a3d8f","html_url":"https://github.com/repeat-space/anki-apkg-export","commit_stats":{"total_commits":89,"total_committers":10,"mean_commits":8.9,"dds":0.4606741573033708,"last_synced_commit":"8ad8d7efab5fca72a24d63c69fd91ab5eb2e369f"},"previous_names":["ewnd9/anki-apkg-export"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/repeat-space%2Fanki-apkg-export","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/repeat-space%2Fanki-apkg-export/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/repeat-space%2Fanki-apkg-export/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/repeat-space%2Fanki-apkg-export/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/repeat-space","download_url":"https://codeload.github.com/repeat-space/anki-apkg-export/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252429932,"owners_count":21746571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["anki","spaced-repetition","srs"],"created_at":"2024-09-24T19:50:14.181Z","updated_at":"2026-01-12T02:27:24.881Z","avatar_url":"https://github.com/repeat-space.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# anki-apkg-export\n\n[![Build Status](https://travis-ci.org/repeat-space/anki-apkg-export.svg?branch=master)](https://travis-ci.org/repeat-space/anki-apkg-export)\n\nUniversal module for generating decks for Anki.\n\nPort of the Ruby gem https://github.com/albertzak/anki2\n\n## Install\n\n```\n$ npm install anki-apkg-export --save\n```\n\n## Usage\n\n### server\n\n```js\nconst fs = require('fs');\nconst AnkiExport = require('anki-apkg-export').default;\n\nconst apkg = new AnkiExport('deck-name');\n\napkg.addMedia('anki.png', fs.readFileSync('anki.png'));\n\napkg.addCard('card #1 front', 'card #1 back');\napkg.addCard('card #2 front', 'card #2 back', { tags: ['nice', 'better card'] });\napkg.addCard('card #3 with image \u003cimg src=\"anki.png\" /\u003e', 'card #3 back');\n\napkg\n  .save()\n  .then(zip =\u003e {\n    fs.writeFileSync('./output.apkg', zip, 'binary');\n    console.log(`Package has been generated: output.pkg`);\n  })\n  .catch(err =\u003e console.log(err.stack || err));\n```\n\n### browser\n\nIntended to be used with [`webpack`](https://github.com/webpack/webpack)\n\n```js\nconst webpack = require('webpack');\n\nmodule.exports = {\n  entry: './index.js',\n  module: {\n    loaders: [\n      {\n        test: /\\.js$/,\n        exclude: /node_modules/,\n        loader: 'babel'\n      },\n    ]\n  },\n  plugins: [\n    new webpack.DefinePlugin({\n      'process.env': {\n        NODE_ENV: JSON.stringify(process.env.NODE_ENV || 'development')\n      },\n    })\n  ],\n  output: {\n    path: __dirname,\n    filename: 'bundle.js'\n  }\n};\n```\n\nRequired loaders:\n\n- [`script-loader`](https://github.com/webpack/script-loader)\n\n```js\nimport { saveAs } from 'file-saver';\nimport AnkiExport from 'anki-apkg-export';\n\nconst apkg = new AnkiExport('deck-name');\n\n// could be a File from \u003cinput /\u003e or a Blob from fetch\n// take a look at the example folder for a complete overview\napkg.addMedia('anki.png', file);\n\napkg.addCard('card #1 front', 'card #1 back');\napkg.addCard('card #2 front', 'card #2 back', { tags: ['nice', 'better card'] });\napkg.addCard('card #3 with image \u003cimg src=\"anki.png\" /\u003e', 'card #3 back');\n\napkg\n  .save()\n  .then(zip =\u003e {\n    saveAs(zip, 'output.apkg');\n  })\n  .catch(err =\u003e console.log(err.stack || err));\n```\n\n## Examples\n\n- [server from above](examples/server)\n- [browser from above](examples/browser)\n- [browser usage with media attachments via ajax](examples/browser-media-ajax)\n- [browser usage with media attachments via \u003cform /\u003e](examples/browser-media-file-input)\n\n## Changelog\n\n- `v4.0.0` - expose template variables (frontside, backside and css)\n- `v3.1.0` - make setting APP_ENV optional\n- `v3.0.0` - add tags, ES6 refactor (breaking)\n- `v2.0.0` - add media support, update jszip dependency (breaking)\n- `v1.0.0` - initial rewrite\n\n## Tips\n\n- [issue#25](https://github.com/ewnd9/anki-apkg-export/issues/25) - Dealing with `sql.js` memory limits\n\n## Related\n\n- [apkg format documentation](http://decks.wikia.com/wiki/Anki_APKG_format_documentation)\n- [anki-apkg-export-cli](https://github.com/ewnd9/anki-apkg-export-cli) - CLI for this module\n- [anki-apkg-export-app](https://github.com/ewnd9/anki-apkg-export-app) - Simple web app to generate cards online\n\n## License\n\nMIT © [ewnd9](http://ewnd9.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frepeat-space%2Fanki-apkg-export","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frepeat-space%2Fanki-apkg-export","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frepeat-space%2Fanki-apkg-export/lists"}