From 4653873db90f9e23b74774e4c84075af40b4c468 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Wed, 9 Feb 2022 13:23:52 +1000 Subject: [PATCH] add file layout visualization from aracelix https://github.com/ankitects/anki/issues/1010#issuecomment-1032248683 --- docs/architecture.md | 8 ++++++-- docs/contributing.md | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/architecture.md b/docs/architecture.md index f0e255217..e0d13c081 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -6,7 +6,11 @@ Very brief notes for now. At the highest level, Anki is logically separated into two parts. -### Library +A neat visualization +of the file layout is available here: + + +### Library (rslib & pylib) The Python library (pylib) exports "backend" methods - opening collections, fetching and answering cards, and so on. It is used by Anki’s GUI, and can also @@ -19,7 +23,7 @@ These days, the majority of backend logic lives in a Rust library (rslib, locate pylib contains a private Python module called rsbridge (`pylib/rsbridge/`) that wraps the Rust code, making it accessible in Python. -### GUI +### GUI (aqt & ts) Anki's _GUI_ is a mix of Qt (via the PyQt Python bindings for Qt), and TypeScript/HTML/CSS. The Qt code lives in `qt/aqt/`, and is importable in Python diff --git a/docs/contributing.md b/docs/contributing.md index 3dd659b33..910fbf2a9 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -3,7 +3,7 @@ For info on contributing things other than code, such as translations, decks and add-ons, please see https://docs.ankiweb.net/contrib -With most users now on 2.1, the past year has been focused on paying down some +With most users now on 2.1, the past 2 years have been focused on paying down some of the technical debt that Anki's codebase has built up over the years, and making changes that will make future maintenance and refactoring easier. A lot of Anki's "business logic" has been migrated to Rust, which AnkiMobile and AnkiDroid @@ -13,7 +13,7 @@ Considerable effort has also been put into improving the Python side of things, with type hints added to the majority of the codebase, automatic linting/formatting, and refactoring of parts of the code. -The scheduling code and import/export code remains to be done, and this will likely +The import/export code remains to be done, and this will likely take a number of months to work through. Until that is complete, new features will not be the top priority, unless they are easy wins as part of the refactoring process.