abreujp
ExDocAnki - generate Anki flashcards from Elixir project documentation using ExDoc
Hi everyone,
I built a small Elixir library called ex_doc_anki to generate Anki flashcards from any Elixir project’s documentation using ExDoc.
The main goal is to help you study Elixir APIs through spaced repetition, turning documentation into practice.
How it works:
- uses ExDoc under the hood to extract documentation
- for each function, type, and callback, generates a card
- Front: Module.function/arity (e.g., Enum.map/2)
- Back: documentation, type spec, and code examples
- outputs a CSV file you can import directly into Anki
Typical usage inside a project:
{:ex_doc_anki, “~> 0.1.1”, only: :dev, runtime: false}
Then:
Generate cards for your project
mix doc_anki
Generate cards for a dependency
mix doc_anki ecto
mix doc_anki phoenix ecto ecto_sql
The CSV is saved at doc/anki_cards.csv. To import into Anki:
- File → Import, select the CSV
- Set separator to Semicolon
- Map column 1 to Front, column 2 to Back
A few notes:
- it works as a Mix task added to your project, not as a standalone CLI
- you can generate cards for any dependency, even transitive ones
- if you already have ex_doc as a dependency, you may need to adjust the :only option (the docs explain why)
It has already been useful in my own workflow, especially for memorizing common Elixir patterns and function signatures.
Feedback is very welcome, especially around: - card formatting and content quality
- edge cases in documentation parsing
- ideas for improving the Anki import experience
Links: - Hex.pm: ex_doc_anki | Hex
- GitHub:
https://github.com/abreujp/ex_doc_anki
Thanks!
Popular in Announcing
PhoenixWS - Websockets over Phoenix Channels
Source code on Github here: GitHub - tmbb/phoenix_ws: Websockets implemented over Phoenix Ch...
New
Presenting Aviacommerce, open source e-commerce platform in Elixir
Aviacommerce is an open source e-commerce platform in Elixir. We at...
New
The repo is at GitHub - cyberchitta/openai_ex: Community maintained Elixir library for OpenAI API · GitHub.
Docs are at OpenaiEx User Gu...
New
Hey everyone
i’ve developed a library for Jalaali calendar for elixir which supports converting Gregorian dates to Jalaali and vice vers...
New
Hi!
I wanted to introduce my latest project LiveSvelte. It allows you to render Svelte inside LiveView with end-to-end reactivity. It’s ...
New
I’ve been working on two packages (not on hex.pm yet) to build admin interfaces for phoenix apps:
bureaucrat - which contains a bunch ...
New
Earmark is a pure-Elixir Markdown converter.
It is intended to be used as a library (just call Earmark.as_html), but can also be used as...
New
Another small library today.
PersistentEts
Hex: persistent_ets | Hex
GitHub: GitHub - michalmuskala/persistent_ets · GitHub
Ets table ...
New
Hello everybody.
I have just released Jason - a new JSON library.
You might be wondering, why do we need a new library? The primary foc...
New
Ash Framework
What is Ash?
Ash Framework is a declarative, resource-oriented application development framework for Elixir. A resource can...
New
Other popular topics
Hello all!
I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
Hello everybody,
usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
Credo is smart enough to check for (something like) this:
assert length(the_list) == 0
with this response:
Checking if an enum is empt...
New
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!)
This post collects co...
New
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something…
Haskell reminds me of Java, and e...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








