Halkyon Learn – a sovereignty-respecting spaced-repetition learning tool.
  • Dart 89%
  • JavaScript 10.5%
  • C++ 0.2%
  • CMake 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tizian 「ティツィアーン」 15d8168834 feat(editor): highlight Protocol Buffers in code blocks (#841)
The gRPC deck is 336 cards about a contract-first protocol, and the
contract is always a `.proto` file. Thirteen of its code blocks hold one,
and every chapter's explanation hangs off the service or message
definition beside it — but `protobuf` was in neither `_grammars` nor
`kCodeBlockLanguages`, so those blocks rendered as unstyled monospace and
the block language menu offered no way to tag them as anything but
`text`. A field number is easy to lose in grey when it is the whole point
of the line.

The grammar already ships in `highlight`, so this is one import, one map
entry, and one row in each of the two menu lists — the same three
touchpoints as #840, in the same relative position: beside `sql`, ahead
of the data formats, since a `.proto` file is a schema rather than a
general-purpose language.

It is also the cheapest grammar added so far. `protobuf.dart` is 978
bytes of rule set, against the 31 KB the four Apple-platform and
build-file grammars cost in #840 — the language has a dozen keywords and
no expression syntax to speak of.

`code_highlighting_test.dart` gains the round-trip check the group
already applies to every other newly registered grammar: the coloured
runs must rejoin to the source character for character, and at least one
must carry a colour, so a silent fallback to plain text fails rather than
passing as "rendered". The fixture is a service with a unary and a
server-streaming method plus a message with numbered and `repeated`
fields, which is the shape most of the deck's blocks take.

The notebook's own registry in `code_editor_config.dart` stays untouched,
as with the last batch: those languages are the ones Judge0 can execute,
and there is nothing to execute in an IDL.

Reviewed-on: https://codeberg.org/project-halkyon/halkyon-learn/pulls/841
2026-08-25 07:33:03 +02:00
.env test(library): find the edit sheet's title field by key, not label text (#759) 2026-07-13 10:34:37 +02:00
.vscode chore: pin Flutter to 3.41.9 via FVM (#336) 2026-06-04 01:23:23 +02:00
android Android/F-Droid release tooling + widget-test harness repair (#706) 2026-07-01 00:20:40 +02:00
assets feat(geo_map): world map at 50m (all sovereign states) + searchable region picker (#740) 2026-07-09 17:01:56 +02:00
docs feat(editor): inline-math shortcut, /math immediate entry + save chords, taller answer faces (#729) 2026-07-06 23:39:52 +02:00
ios Name the native app "Halkyon Learn" (#252) 2026-05-27 21:54:50 +02:00
lib feat(editor): highlight Protocol Buffers in code blocks (#841) 2026-08-25 07:33:03 +02:00
linux feat(desktop): build the app for Linux and Windows under its own name (#824) 2026-08-06 19:50:17 +02:00
scripts Android/F-Droid release tooling + widget-test harness repair (#706) 2026-07-01 00:20:40 +02:00
test feat(editor): highlight Protocol Buffers in code blocks (#841) 2026-08-25 07:33:03 +02:00
tool build(android): release keystore signing, gradle migrator flags, image-audit tool (#696) 2026-06-26 16:26:22 +02:00
web Round the web favicon / tab icons to match the rail logo (#243) 2026-05-27 12:14:43 +02:00
windows feat(desktop): build the app for Linux and Windows under its own name (#824) 2026-08-06 19:50:17 +02:00
.fvmrc chore: pin Flutter to 3.41.9 via FVM (#336) 2026-06-04 01:23:23 +02:00
.gitignore build(android): release keystore signing, gradle migrator flags, image-audit tool (#696) 2026-06-26 16:26:22 +02:00
.metadata feat(desktop): build the app for Linux and Windows under its own name (#824) 2026-08-06 19:50:17 +02:00
analysis_options.yaml Scaffold Halkyon Learn with theme, DI, routing, and error reporting (#2) 2026-04-27 19:32:31 +02:00
CONTRIBUTING.md Add SECURITY.md and CONTRIBUTING.md 2026-04-24 23:34:34 +03:00
l10n.yaml feat(i18n): German localization foundation + locale-aware date picker (#704) 2026-06-30 23:16:23 +02:00
LICENSE Initial commit 2026-04-23 13:12:11 +02:00
pubspec.lock feat(anki): robust zstd decode via a retry-doubling buffer (#765) 2026-07-14 12:35:36 +02:00
pubspec.yaml feat(desktop): build the app for Linux and Windows under its own name (#824) 2026-08-06 19:50:17 +02:00
README.md docs(architecture): comprehensive architecture record (#692) 2026-06-26 02:27:37 +02:00
SECURITY.md Add SECURITY.md and CONTRIBUTING.md 2026-04-24 23:34:34 +03:00

halkyon-learn

Halkyon Learn a sovereignty-respecting spaced-repetition learning tool.

📐 Architecture: docs/architecture/ explains how the app (and the wider four-repo system) is built and why — offline-first sync, the account-keyed dependency graph, persistence, routing, the editor, security, and a set of decision records (ADRs). Start at docs/architecture/README.md.