abreujp

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:

  1. File → Import, select the CSV
  2. Set separator to Semicolon
  3. 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!

Where Next?

Popular in Announcing Top

OvermindDL1
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
michalmuskala
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
josevalim
Yes, yet another parser combinator library! Most of the parser combinators in the ecosystem are either compile-time, often using AST tra...
159 19951 141
New
bryanjos
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
mbuhot
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
devonestes
Introducing assertions, the library that helps you write really great test assertions! GitHub: GitHub - devonestes/assertions: Helpful a...
New
kip
Image is an image processing library for Elixir. It is based upon the fabulous vix library that provides a libvips wrapper for Elixir. I...
622 19610 194
New

Other popular topics Top

baxterw3b
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
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
vonH
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
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
ashish173
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
AngeloChecked
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

We're in Beta

About us Mission Statement