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
I created a new library (rather I pulled out a couple files from my big project), it manages an operating system PID file for the BEAM.
...
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
Yes, yet another parser combinator library!
Most of the parser combinators in the ecosystem are either compile-time, often using AST tra...
New
Hi, I wanted share a small library we at Revelry Labs made for rendering react components from the server side. There are instructions fo...
New
Leverage Open Api 3.0 (Swagger) to document, test, validate and explore your Plug and Phoenix APIs.
Generate and serve a JSON Open API ...
New
Introducing assertions, the library that helps you write really great test assertions!
GitHub: GitHub - devonestes/assertions: Helpful a...
New
Image is an image processing library for Elixir. It is based upon the fabulous vix library that provides a libvips wrapper for Elixir.
I...
New
Other popular topics
Hi guys, i’m new in the Elixir world, and i have to say, that i love it!
i’m having some problem to understand anonymous functions with ...
New
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set?
Thanks.
New
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
What learn first? Rust or Elixir
Hi Elixir community!
I’m here because i want learn a new language. I’m a junior developer and mainly i ...
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
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









