{"id":16952767,"url":"https://github.com/jasonwilliams/anki","last_synced_at":"2025-04-09T06:12:03.616Z","repository":{"id":40513765,"uuid":"281232266","full_name":"jasonwilliams/anki","owner":"jasonwilliams","description":"Anki VSCode Plugin","archived":false,"fork":false,"pushed_at":"2024-09-17T22:19:55.000Z","size":9365,"stargazers_count":286,"open_issues_count":41,"forks_count":31,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-12-06T21:19:13.859Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jasonwilliams.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","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":"2020-07-20T21:46:48.000Z","updated_at":"2024-12-06T18:21:05.000Z","dependencies_parsed_at":"2024-08-02T10:44:49.714Z","dependency_job_id":"fcc2139c-2ef9-41fd-9f2e-78a72ff0c38c","html_url":"https://github.com/jasonwilliams/anki","commit_stats":{"total_commits":126,"total_committers":13,"mean_commits":9.692307692307692,"dds":"0.39682539682539686","last_synced_commit":"8f4039dc9d66b2884a37d6dc9c33d7fdd919a474"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonwilliams%2Fanki","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonwilliams%2Fanki/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonwilliams%2Fanki/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonwilliams%2Fanki/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jasonwilliams","download_url":"https://codeload.github.com/jasonwilliams/anki/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247987285,"owners_count":21028895,"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":["hacktoberfest"],"created_at":"2024-10-13T22:04:23.712Z","updated_at":"2025-04-09T06:12:03.591Z","avatar_url":"https://github.com/jasonwilliams.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Anki for VSCode\n\nThis is a VSCode extension for interacting and sending cards to Anki.\nIt uses AnkiConnect for communication so you will need this extension installed and running before installing the VSCode extension.\n\n## Requirements\n\n- Anki \u003e= 2.1.21\n- [Anki Connect](https://ankiweb.net/shared/info/2055492159) \u003e= 2020-07-13\n- VSCode \u003e= 1.66\n\n## Contributing\n\nSee [Contributing](./CONTRIBUTING.md)\n\n## Features\n\n### Send to deck\n\nIf you're writing up Markdown files and want to send some Q \u0026 As to a deck you can do that quite easily with the `Anki: Send To Deck` command.\nIt will send to this extension's default deck named \"notes\" but you can change this in the settings.\nThis is useful if you want a \"Daily\" deck where you can put daily notes into.\nThis extension will also add a tag to each card based on the title, so you can still organise cards within a deck.\n\nHere's an example\n\n![image](./docs/img/sendToAnki.gif)\n\n### Send to own deck\n\nVery similar to the above but will send to a new deck that will have the same name that you marked with `#` as the title of the current document.\nIn this example we realise that we want to send this content to its own deck, that's no problem, use `Anki: Send To Own Deck`\n\nHere's an example\n\n![image](./docs/img/sendToAnkiOwnDeck.gif)\n\n### Send to dirname deck\n\nSimilar to the above but will use the current directory structure as deck name. For example, you write a file named `/path/to/workspace/deck/subdeck/note.md`, it will be send to deck `deck::subdeck`.\n\nAlso, if `useDirStructure` is selected in the configuration option `saveStrategy`, the command `Anki: Send To Deck` will use the file path as the deck name so you don't need to keep calling the `Anki: Send to DirName Deck` manually.\n\nHere's an example\n\n![image](./docs/img/sendToAnkiAsDirStru.gif)\n\n### Update cards (Beta)\n\nYou can update a card that you've already sent to a deck. To do this make sure you enable by setting `anki.md.updateCards` to `true` as well as `anki.md.insertNewCardID` to `true`.\nThis feature is currently opt-in but we may turn it on by default in the future.\n\nThis feature relies on the NoteID being embedded in the card and searches the Anki Database for that same noteID then updates, this means, if you're using `Send to dirname deck` it [may not](https://github.com/jasonwilliams/anki/pull/106#issuecomment-1483743818) go to the place you were expecting.\n\n### Explorer\n\nNavigate through cards and template CSS.\nCurrently this is in a readonly state but future releases should enable editing.\n\n![image](./docs/img/ankiExplorer3.gif)\n\n## Cards\n\nBy default, Anki for VSCode splits cards by `##` headline. For example, below markdown will generate 2 cards where headlines will be on the front side and its description - on the back.\n\n```\n## What's the Markdown?\n\nMarkdown is a lightweight markup language with plain-text-formatting syntax.\nIts design allows it to be converted to many output formats,\nbut the original tool by the same name only supports HTML.\n\n## Who created Markdown?\n\nJohn Gruber created the Markdown language in 2004 in collaboration with\nAaron Swartz on the syntax.\n\n```\n\nIf you want to have multiple lines on the card's front side - use `%` symbol for splitting front and back sides:\n\n```\n## YAGNI\n\nDescribe this acronym and why it's so important.\n\n%\n\n\"You aren't gonna need it\" (YAGNI) is a principle of extreme programming\n(XP) that states a programmer should not add functionality until deemed\nnecessary.\n\n```\n\nWhen parsing only one markdown file, the title of the deck could be generated based on the top-level headline (`#`).\n\n### Cloze\n\nYou can make Cloze deletions in the card title `## A bit like {{c1::this}}`.\nAny body attached to a Cloze title won't be used. This is because by default, Cloze card's only have 1 side.\n\nCloze cards won't work when using `%` also, this is due to the way Cloze cards work (We can't enforce any styling).\n\n### Images\n\nYou can add images to Anki by adding them to your markdown file:\n\n```\n![image](../path/to/image.png)\n```\n\n## Tags\n\nCards can have tags in their markdown sources. For adding tags to cards it should follow some rules:\n\n- tags start from a new line\n- only one line with tags per card\n- a tag should be written in the link format\n- tag (link text) should start from `#` symbol\n\nuses `'^\\\\[#(.*)\\\\]'` pattern for searching tags. This pattern could be overwritten by specifying custom settings. The source file in the tag link is optional.\n\nThe below example will generate a card with 3 tags: _algorithms_, _OOP_, and _binary_tree_.\n\n```\n## Binary tree\n\nIn computer science, a binary tree is a tree data structure in which each node has at most two children, which are referred to as the left child and the right child.\n\n[#algorithms](./algorityms.md) [#OOP]() [#binary tree]()\n```\n\n## Code and syntax highlighting\n\nSyntax highlighting should work out the box.\nCode blocks can be written with and without specifying a language name:\n\n\u003cpre\u003e\n```java\npublic static void main(String[] args) {\n  System.out.println(\"Hello, World!\");\n}\n```\n\u003c/pre\u003e\n\u003cpre\u003e\n```\necho \"Hello, World!\"\n```\n\u003c/pre\u003e\n\n## Extension Commands\n\n- `Anki: Sync Anki`: This will run Sync on your Anki Instance\n- `Anki: Anki: Send To Deck`: This will attempt to send your (markdown) card into Anki - More info above\n- `Anki: Anki: Send To Own Deck`: Sends to a new deck using the Markdown's title (# example) as a deck name\n- `Anki: Anki: Send To DirName Deck`: Sends to a new deck using the directory structure as a deck name\n- `Anki: Force Re-install`: This will attempt to re-setup the extension on Anki (Anki needs to be running). You shouldn't need this unless there's an issue.\n\n## Extension Settings\n\n- `anki.defaultDeck`: Default deck to send notes to. | _notes_\n- `anki.md.createTagForTitle`: Send tag with cards? (when using default deck). | _true_\n- `anki.api.hostname`: API Hostname. | _127.0.0.1_\n- `anki.api.port`: API Port. | _8765_\n- `anki.api.schema`: Schema. | _http_\n- `anki.saveStrategy`: the behavior of the command `Anki: Send To Deck` | _default_\n- `anki.template`: Which template to use? Normal or reverse? | _BasicWithHighlightVSCode_\n\nI don't recommend messing with the following settings\n\n- `anki.md.card.separator`: Regex used for separating cards\n- `anki.md.card.frontBackSeparator`: Regex used for separating front / back\n- `anki.md.card.tagPattern`: Regex used to scrape tags\n- `anki.md.deck.titleSeparator`: Regex to remove the top title from cards\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasonwilliams%2Fanki","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjasonwilliams%2Fanki","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasonwilliams%2Fanki/lists"}