feat: add blu-site static site generator and fix language issues

Build a complete static site generator in Lux that faithfully clones
blu.cx (elmstatic). Generates 14 post pages, section indexes, tag pages,
and a home page with snippets grid from markdown content.

ISSUES.md documents 15 Lux language limitations found during the project.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-17 15:43:05 -05:00
commit 0b0cf2f8a2
95 changed files with 5112 additions and 0 deletions

View File

@@ -0,0 +1,228 @@
# Introducing Lyceum: The Richest Interface for Reading Ancient Greek Texts
<https://lyceum.quest>
I built a tool with the goal of making Ancient Greek authors more accessible in their own words. I started trying to learn Ancient Greek a few months ago with the goal of reading the Greek pantheon that shaped history like works by Homer, Plato, Aristotle, the New Testament, Marcus Aurelius' Meditations, etc. without the meaning being filtered through a translation. I started by using the available online resources and books such as _Athenaze_ and _Reading Greek_ (and still am!), but became bogged down by trying to memorize endless nuanced rules of grammar and decipher stories made up by the authors, which made the learning experience boring and tedious, and full glossaries often weren't given (so many of the morphological forms required inference). I don't care about some random made up Athenian named Δικαιοπολις and the silly hijinks of his small family farm, I want to read the _Iliad!_. And more importantly, despite after knowing more about Greek grammar than English after a few chapters, I still couldn't read a word of it! I became skeptical of this method, and began looking for ways to just learn it by _reading what I wanted to read_. There are a couple readers online which have the Ancient Greek texts in the original language, the best of which seems to be [Scaife Reader](https://scaife.perseus.org), but even that is buggy, difficult to use, and was missing features I wanted. So my goal was to combine the freely available datasets for lemmas, morphologies, and original texts and (some) of their translations into one unified reader that had all of the features I wanted for my own personal study. This way, I can hopefully learn Greek closer to the way the man who discovered Troy, [Heinrich Schliemann](https://en.wikipedia.org/wiki/Heinrich_Schliemann), learned it:
> "In order to acquire quickly the Greek vocabulary," Schliemann writes, "I procured a modern Greek translation of _Paul at Virginie_, and read it through, comparing every word with its equivalent in the French original. When I had finished this task I knew at least one half the Greek words the book contained; and after repeating the operation I knew them all, or nearly so, without having lost a single minute by being obliged to use a dictionary....Of the Greek grammar I learned only the declensions and the verbs, and never lost my precious time in studying its rules; for as I saw that boys, after being troubled and tormented for eight years and more in school with the tedious rules of grammar, can nevertheless none of them write a letter in ancient Greek without making hundreds of atrocious blunders, I thought the method pursued by the schoolmasters must be altogether wrong....I learned ancient Greek as I would have learned a living language."
## Current Features
So far, the reader includes:
- A browseable catalog of 373 ancient authors and 1,837 works in Ancient Greek
![Browseable catalog of ancient Greek texts](/images/articles/introducing-lyceum/browse.png)
- Multi-language translations when available from the data
![Multi-language translations side by side](/images/articles/introducing-lyceum/translations.png)
- Word-level definitions and morphology lookups from Perseus and LSJ. Click on any word to see its definition and other info!
![Word popup with definition and morphology](/images/articles/introducing-lyceum/popup.png)
- Anki-style vocab card import from texts. Learn the words of the texts you are trying to read as you read them with spaced repetition!
![Spaced repetition flashcard](/images/articles/introducing-lyceum/srs-card-1.png)
- Dashboard to track progress
![Progress dashboard](/images/articles/introducing-lyceum/dashboard.png)
- (For select texts): Word-level interlinear contextual AI definitions (show what each word means in its context)
- (For select texts): Word-level AI generated Latin transliteration (for pronunciation clarity)
(side-note on the use of AI: I know that it is discouraged in the rules on this subreddit, but please read my case for it in the [full article]()).
And there are many features and cleanup items on my TODO list, like:
- Add missing translations for popular texts (e.g. Meditations)
- Add more transliterations and contextual glosses (e.g. interlinear)
- Make texts downloadable in nice readable formats. A fun thing might even be to allow PDF generation in whatever display format options you've selected for offline reading.
- Fix any missing or incorrect dictionary definitions, with a user-driven feedback mechanism.
- Audio for pronunciation
- A mobile app
I would love any feedback on this. Try it and let me know what you think!
With side-by-side English (and other language) translations when available in the data. There is a sidebar which allows for viewing selected grammatical information for each word as you read, which includes color-coding for parts of speech (e.g. noun/article/verb etc.), color coding of inflected form endings, and grammar badges above each word. In the Greek originals, you can click on any word to see a popup of its definition from the [Perseus Digital Library]() or the [Liddel, Scott Jones Ancient Greek Lexicon (LSJ)](https://en.wikipedia.org/wiki/A_Greek%E2%80%93English_Lexicon). Since many Greek words have many potential definitions in different contexts, the Pro version provides Contextual AI generated meanings for select texts (with many more in the works) so that you can see the definition of a Greek word _in the context it was written in_, instead of having to guess which of the definitions is being used in that particular instance.
There is a reader view to show just the text (or translations if you like beside it) for distraction-free reading.
![Reader view for distraction-free reading](/images/articles/introducing-lyceum/reader-view.png)
Finally, one of my personal favorite features is the Anki-like spaced-repetition cards, where you can add cards as you read them (or by section, or in bulk) to your deck for review.
## Why Build This?
### Love of History
Living in Boston, my fascination with history has grown immensely over the past few years. The natural starting point was American Revolutionary history, and the epic adventures of founders Jefferson (Jon Meacham), Washington (Ron Chernow), Franklin (Walter Isaacson), Hamilton (Chernow), and especially John Adams (David McCullough, the _John Adams_ TV series) ignited a passion that resulted in _their_ historical heroes becoming mine also. Cicero and Rome became my fascinations as they were Adams'. And recently, Greece became my passion as it was Cicero's. And this was cemented with Will Durant's excellent books _Caesar and Christ_ and _The Life of Greece_.
### For Most of History, Greek was An Essential Aspect of Education
One interesting thing to note was
### How Best to Learn?
I attempted several methods, and in each I felt something was lacking. At first, I researched on Grok and Reddit and discovered books that came highly recommended and bought them: _Athenaze_ and _Reading Greek_. After being "troubled and tormented with the tedious rules of grammar" as Schliemann wrote, I had an understanding of the foundational grammar and some of the most common words. But with full-time work commitments, family responsibilities, and other hobbies, this was unsustainable and a painful way to learn, and after all this tedium I discovered that I knew a lot about made-up Athenian farmer Δικαιοπολις and couldn't read _any_ _Iliad_. I became demotivated and burnt-out.
I did some searching, and found the book _Complete Ancient Greek_ by Gavin Betts and Alan Henry, which agreed with my sentiment that Greek should be learned with the material the student _wants to read_ top of mind. Even so, the vocabularies given were often incomplete (a surprisingly common problem in these Greek textbooks!) which made deciphering even the basic exercises unnecessarily painful, and the choice phrases from works like _Odyssey_ were modified and simplified, which still gave me a sense of inauthenticity (although I felt much closer), and an unnecessary roundabout-ness to the learning process. So the search to learn by getting closer to the source continued.
I figured I'd start with the beginning of Western literature, the _Iliad_, and I searched for an interlinear/Hamiltonian translation (where each word is translated according to its contextual definition). I thought I'd be able to do this for any of the major texts I wanted to read, but these sorts of translations are surprisingly sparse! I found one on [archive.org](https://archive.org/details/iliadhomerwitha00clargoog/page/n12/mode/2up), and began making an [Anki]() deck for each word and memorizing it. There were still a couple problems. Although this was probably good enough to learn from, it was still difficult for me to completely understand what was happening, and I wanted to pull up a couple other translations side-by-side for comparison. This way I could simultaneously compare multiple editions of natural English to Hamilton's interlinear version to get a comprehensive sense of the meaning where it wasn't clear from the interlinear. Also, adding Anki cards manually for each word became a very time-consuming process.
Here the idea for the website began to take shape. What if I could combine all the features I was looking for (interlinear texts, side-by-side translations, and the ability to import words into an Anki-like system for spaced-repetition word learning from whatever text you were reading) into one web interface?
### Finding Texts in the Original Greek, in the Format You Want, is Very Difficult
If you go on eBay or Amazon and search for the Odyssey in Ancient Greek, you'll probably be presented with the Loeb Library edition. As far as I can tell these are the best in-class
One of the key features I needed for this was an interlinear translation. Going on eBay and finding your book of choice in _only Greek_ is very difficult. Finding it in
### Alternative Solutions Are Insufficient
The best viewer I've found online for reading Ancient Greek texts is the [Scaife](https://scaife.perseus.org) viewer from Perseus, and it has many problems. It is old and outdated, and the web deserves something better. You can start by taking a look at its [Google Lighthouse](https://developer.chrome.com/docs/lighthouse) score:
![Scaife Lighthouse score](/images/articles/introducing-lyceum/scaife-lighthouse-score.png)
### There is No Substitute for the Original
When I started looking into ancient Rome and Greece, my desire to forego translations kept rising. More and more, I began to realize that translations are often not what they say they are. They are often more like movies based on books -- which is to say that they deviate frequently and often significantly from the source material, and even in translations which attempt to be faithful the author's voice inevitably intrudes.
I actually learned this most plainly while building this website. While building the contextual glosses for Aesop's Fables, I noticed a word I recognized in Book 1, _ἀλώπεκος_, which means "fox", didn't appear at all in the famous [Townsend](https://en.wikipedia.org/wiki/George_Fyler_Townsend) translation, which is considered a standard translation. Here is the original Greek:
> Λέαινα ὀνειδιζομένη ὑπὸ ἀλώπεκος ἐπὶ τῷ διὰ παντὸς ἕνα τίκτειν·" Ἕνα, ἔφη, ἀλλὰ λέοντα." Ὅτι τὸ καλὸν οὐκ ἐν πλήθει δεῖ μετρεῖν, ἀλλὰ πρὸς ἀρετὴν ἀφορᾶν.
Here is the [Townsend translation](https://demo.lyceum.quest/read/tlg0096.tlg002.perry-grc1?ref=257&trans=tlg0096.tlg002.perry-eng1):
> The Lioness
>
> A CONTROVERSY prevailed among the beasts of the field as to which of the animals deserved the most credit for producing the greatest number of whelps at a birth. They rushed clamorously into the presence of the Lioness and demanded of her the settlement of the dispute. 'And you,' they said, 'how many sons have you at a birth?' The Lioness laughed at them, and said: 'Why! I have only one; but that one is altogether a thoroughbred Lion.' The value is in the worth, not in the number.
You can see at a glance that there are a lot more words in the Townsend translation than the original Greek, which arose my suspicion, which was further aroused by looking at the contextual meanings I had generated for it:
![Contextual meaning comparison](/images/articles/introducing-lyceum/read.png)
The AI-generated contextual meaning claims that this is the genitive form of "fox", i.e. "of fox". Is it wrong? Well, the nice thing about our tool is that we can immediately cross-reference with the LSJ dictionary, or, better yet for our purposes, Perseus for the various morphological forms of a word. We can click the word to open up the popup, as below, to compare:
![Popup showing morphological validation](/images/articles/introducing-lyceum/popup.png)
And we see that this does indeed mean "fox". So there is an entire character in the original Greek fable that is missing in a widely-respected translation! Cross referencing multiple AI responses and combining that with a by-hand interlinear-ization using Perseus data, we can see that the original fable translates to something more like:
> The lioness was being reproached by the fox because she always gave birth to only one.
> “One,” she replied, “but a lion.”
> For the noble is not to be measured by quantity, but one should have regard for virtue.
This problem pervades all translations. This sentiment is better expressed in the introduction to the book _Complete Ancient Greek_ by Gavin Betts and Alan Henry than I could give myself:
> A modern translation of an ancient classic such as Homers Iliad often puzzles readers with
> the difference between the works overall conception and the flatness of the English. The
> works true merit may flicker dimly through the translations mundane prose or clumsy verse
> but any subtlety is missing. Instead of a literary masterpiece we are often left with a
> hotchpotch of banal words and awkward expressions. Take this version of the first lines of the
> Iliad: _The Wrath of Achilles is my theme, that fatal wrath which, in fulfilment of the will of
> Zeus, brought the Achaeans so much suffering and sent the gallant souls of many
> noblemen to Hades, leaving their bodies as carrion for the dogs and passing birds. Let us
> begin, goddess of song, with the angry parting that took place between Agamemnon King of
> Men and the great Achilles son of Peleus. Which of the gods was it that made them quarrel?_
> (translated E.V. Rieu, Penguin Books 1950) Can this really represent the work of a poet who
> has been universally admired for millennia? Or is it a TV announcer introducing a guest
> singer, whom he flatters with the trite phrase goddess of song?
> Compare the eighteenth-century translation of Alexander Pope:
> _Achilles wrath, to Greece
> the direful spring
> Of woes unnumberd, heavenly goddess, sing!
> That wrath which hurld to Plutos gloomy reign
> The souls of mighty chiefs untimely slain;
> Whose limbs unburied on the naked shore,
> Devouring dogs and hungry vultures tore:
> Since great Achilles and Atrides strove,
> Such was the sovereign doom, and such the will of Jove!
> Declare, O Muse! in what ill-fated hour
> Sprung the fierce strife, from what offended power?_
> Here we have genuine poetry. Only when the translator himself is a real poet can the result
> give some idea of the original but even then its true spirit is lost and, as here, the translators
> own style and personality inevitably intrudes. There is no substitute for getting back to the
> authors actual words. To understand and appreciate the masterpieces of ancient Greek
> literature we must go back to the original Greek.
There is no substitute for the original. The only solution is to learn the languages.
### Building with Claude: AI is Surprisingly Good at This
With all the noise being made about how great AI is lately, I wondered if I could use it to create something that satisfies my requirements. Could I use it to speed up the process of collecting and organizing various data sources for word definitions, morphologies (the various forms of each word _lemma_ and how that changes its meaning), source and translation texts? And since interlinear versions of most texts do not exist (and even less in a machine-readable format), could I use an LLM to create a pipeline to generate them? Could I get it anywhere near the quality of Hamilton's system?
The questions, in essence, became:
1. Could I create a system that achieves parity with the best available tools for making original Greek sources and their translations accessible?
2. Could I improve upon them with new features and ways to engage with the texts?
3. Could AI reliably create interlinear versions of the texts with enough accuracy to be more helpful than harmful?
I believe the free features already surpass the top competing sites (Perseus, Scaife, etc.) and combine their best features into a much more accessible view. The Pro features add even more helpful features of Anki-like spaced repetition, Hamiltonian-style interlinears with contextual meanings, and progress charts. This is the
The r/AncientGreek subreddit rules state the following:
"Machine translators and AI are not reliable.
ChatGPT, Google Translate, and the like will confidently give you wrong answers about translations and Latin grammar. And if you only have a beginner's proficiency in Ancient Greek, there will be enough correct information to trick you. Generally, posts about machine translators and AI will be removed."
I sympathize with this sentiment, especially about AI's tendency to hallucinate. But I think it is a) a partially outdated opinion (AI tools have gotten better and better under the right supervisor), and b) it underestimates the value AI can bring from doing "grunt-work" which can later be validated.
Interestingly, there is a relatively recent [discussion]() on the same subreddit where several users talk about how AI has come in handy for their personal study of Ancient Greek. I wonder if these rules had been set in the earlier days of AI, when the false positive rate was high enough to render it more harmful than helpful. But I think two points need to be made here about AI:
1. Humans can (and do) make mistakes or simply make things up to suit their retelling (as in Townsend's translations above -- or really any of the mainstream Aesop translations that I've found).
2. The possibility of errors do not inherently mean something is more of a hindrance to learning than helpful. Rather, the question is is the error rate high enough that it is doing more harm than good.
3. Since learning Ancient Greek is a far more niche activity than it used to be, quality resources for learning it are becoming rarer and rarer based on the earlier discussion of the Townsend translations, we can see it's often the case that the current state
4. AI can do the initial grunt work no or few humans are willing to do, and thus make the problem one of _validation_ (which can be done either by careful reviews of experts)
To be clear, AI _does_ hallucinate, and it does so frequently, but many of the current models are quite good at doing proper interpretations,
### Data Sources
#### Texts
- [Perseus Digital Library](https://github.com/PerseusDL/canonical-greekLit) Greek texts and English translations from canonical-greekLit repository. 50+ authors, 631 works, from Homer through the Church Fathers.
- [Diorisis Ancient Greek Corpus](https://figshare.com/articles/dataset/The_Diorisis_Ancient_Greek_Corpus/6187256): 820 pre-lemmatized XML texts with word-level morphology, POS tagging, and sentence boundaries. Used to aid in generating contextual meanings.
- [First1K Greek Project](https://github.com/OpenGreekAndLatin/First1KGreek): Additional Greek texts from the Open Greek and Latin project at the University of Leipzig.
- [Chambry Aesopica](http://www.mythfolklore.net/aesopica/): Chambry's critical edition of Aesop's Fables with Perry numbering, multiple recensions, and scholarly apparatus.
- [Townsend Aesop Translation](https://www.gutenberg.org/ebooks/21): George Fyler Townsend's 1867 English translation of Aesop's Fables, used for parallel reading.
#### Morphology & Glosses
- [Perseus Ancient Greek Dependency Treebank](https://github.com/PerseusDL/treebank_data) Syntactic annotations (dependency trees) and glosses for select texts including Aesop, Homer, and Attic prose. Used for word-level alignment with translations.
- [Diogenes](https://github.com/pjheslin/diogenes): Morphological analyses for 400K+ Greek word forms. Each entry maps an inflected form to its lemma, part of speech, and full grammatical analysis (case, number, gender, tense, voice, mood, person).
#### Definitions
- [LSJ](https://lsj.gr/): 116,000+ dictionary entries from the definitive Ancient Greek lexicon (9th edition, 1940). Full scholarly definitions with citations, etymology, and usage notes. The "gold standard" comprehensive Greek definitions.
#### Claude AI
- **Content**: AI-generated contextual glosses that analyze word meaning within specific passages. Used to disambiguate words with multiple meanings (e.g., "λόγος" as "word" vs "argument" vs "reason" depending on context).
### Building the Tool I Wish Existed
Ultimately I'm building this because I want it to exist. I now use the spaced-repetition feature every day and am learning the words from the _Iliad_ and Aesop's _Fables_ using it. I will continue to add features I (and others) think are useful, I'm sure there are plenty of mistakes to correct and improvements to be made that I'm missing, please join our Discord or send an email to <support@lyceum.quest>.
### Gratitude for Previous Work
Ross Scaife, Herculaneum project, Loeb Library, Athenaze, Latinium
History dies under two conditions, I think:
1. A failure to _preserve_ the present. This is the job of the people who were alive during the events.
2. The failure to _breathe new life_ into it, to unearth the bones and tombs and scrolls of the past. That is the job of posterity.
We can't do anything about (1), but I believe it is our duty to pursue (2). The majority of the debates we have about X or Y social or political or philosophical issues are not new -- they were, for the most part, already debated in Ancient Greece, and with a few exceptions, it's debatable to what extent we improved on the groundwork they laid for any given topic.
Emerson said history must be rediscovered