From 71ccfdd0e6216356ec6cac90bc627fe02dbfdeb1 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Tue, 28 Apr 2026 13:56:06 -0500 Subject: chore: scaffold gloss package Five layered files per the design at docs/design/gloss.org. gloss-core for the data layer, gloss-fetch for the network layer, gloss-display for the UI, gloss-drill for the spaced-repetition export, and gloss.el as the entry point. All five are skeletons. Implementation comes next. The Makefile delegates to ert with the usual unit, integration, and per-file targets. It also runs paren and lint passes. The package is licensed GPL-3.0-or-later. README is a placeholder pointing at the design doc. --- gloss-core.el | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 gloss-core.el (limited to 'gloss-core.el') diff --git a/gloss-core.el b/gloss-core.el new file mode 100644 index 0000000..2e054c4 --- /dev/null +++ b/gloss-core.el @@ -0,0 +1,32 @@ +;;; gloss-core.el --- Data layer for gloss -*- lexical-binding: t -*- + +;; Copyright (C) 2026 Craig Jennings +;; Author: Craig Jennings +;; SPDX-License-Identifier: GPL-3.0-or-later + +;;; Commentary: + +;; Storage and lookup primitives for `gloss'. Owns the in-memory +;; cache (a hash table keyed by term) and the org file I/O. +;; +;; Public API: +;; `gloss-core-lookup' TERM -> entry plist or nil +;; `gloss-core-save' TERM BODY SOURCE -> entry plist (saved) +;; `gloss-core-list' -> (TERM ...) +;; `gloss-core-find-buffer-position' TERM -> marker +;; +;; Entry plist shape: +;; (:term "anaphora" +;; :body "Reference to..." +;; :source wiktionary +;; :added "2026-04-28" +;; :marker #) +;; +;; See `docs/design/gloss.org' for the full design. + +;;; Code: + +;; Implementation pending. Track via todo.org. + +(provide 'gloss-core) +;;; gloss-core.el ends here -- cgit v1.2.3