- Python 92.8%
- Emacs Lisp 4.9%
- Makefile 2%
- Shell 0.3%
|
Some checks are pending
Repository structure / structure (push) Waiting to run
Record the two UI requirements the reader settled: navigation uses the shared SVG icon set with uniform metrics, and an active state is carried by colour, surface, weight and icon colour, never by a prefix glyph whose width change shifts the row on every switch. The vertical-budget rule now allows a scaled reading font only together with a recomputed row budget and canvas line count, which is what the reader does. Validation: documentation only; the reader's make check passes (41 acceptance scenarios). |
||
|---|---|---|
| .githooks | ||
| .github/workflows | ||
| docs | ||
| scripts | ||
| tests/tools | ||
| .editorconfig | ||
| .gitignore | ||
| AGENTS.md | ||
| Makefile | ||
| README.md | ||
| workspace.json | ||
ETAF applications
Applications built on the ETAF text-application framework. Each application is an independent Emacs Lisp repository with its own history, public interface and checks; this root owns their integration checkpoint, shared tooling and the conventions they follow.
| Application | Responsibility | Framework dependencies |
|---|---|---|
| etaf-ncm | NetEase Cloud Music player: library browsing, playback control, lyrics and queue | etaf, etaf-ui, ebox |
| etaf-weread | WeChat Reading client: shelf, notebook, highlights, store search, statistics and a local SQLite highlight index | etaf, etaf-ui, etaf-db, ebox |
Requirements
- Emacs 29.1 or newer, with the framework packages available on
load-path. - Python 3.10+ and Git for the repository policy checks.
- The runtime dependencies of the application you run; see its README.
The framework repositories are the dependency providers (etaf, etaf-ui, ebox,
ecss). Clone them as siblings of this directory, keeping those directory names; each
application's scripts/api-workspace.json records the providers it is checked against
and can fetch them for a standalone checkout.
Setup
git clone -o laycat git@gitea.gklazycat.heiyu.space:geekinney/etaf-apps.git
cd etaf-apps
git clone -o laycat git@gitea.gklazycat.heiyu.space:geekinney/etaf-ncm.git
make setup-hooks
Each application README documents its own installation and usage. This root adds the collective checks:
make check # policy, compilation, public API and acceptance for every application
make check EMACS=/path/to/emacs
make api-check # public entry bindings and signatures of every application
(cd etaf-ncm && python3 scripts/check-api.py --root . --fetch-providers --providers-dir ../..)
# fetch the providers the applications are checked against
The recorded revisions in workspace.json identify the application commits verified
together; they are an integration checkpoint, not a release certification.
Documentation
- Application and integration contract
- Development instructions for this workspace
- Per-application manuals and architecture notes in each application repository.
Contributing
Commit in the owning repository, keep the application's make check green, then
refresh the recorded revision in workspace.json. Message and structure gates run
from .githooks after make setup-hooks.