Skip to content

solaranamnesis/solaranamnesis.pub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,071 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dedication to the Greek Muses

An IPFS library of PDFs made with LaTeX with minimal grammatical errors.

In the spirit of inspiration, we pay homage to the nine Muses of Greek mythology, who guide our creativity and knowledge. Their whispers fuel our passion for the arts and sciences, reminding us of the beauty of expression and the pursuit of wisdom.

"Sing, O Muse, of the wonders of the past, of the Library of Alexandria, where knowledge flowed like the Nile, and the light of learning shone bright."

About This Repository

This repository powers solaranamnesis.pub, a multilingual digital library of public-domain texts typeset in LaTeX and distributed as PDFs via IPFS. The site presents books in over 30 languages, each with its own localized sub-directory and a corresponding {lang}/books.json data file that drives the book catalogue.

Key files and directories:

File / Directory Description
books.json Master English book catalogue (source of truth)
translations.json Dictionary of all field translations and year-calendar offsets, keyed by BCP-47 language code
generate_books.py Python script that reads books.json + translations.json and regenerates all {lang}/books.json files
index.html English front-end page (root)
script.js English JavaScript that fetches books.json and renders the book list
timeline.html English interactive D3.js timeline viewer (publication years 1600–2022)
shelf-data/ English shelf and markdown-viewer templates
{lang}/ Per-language sub-directory (e.g. fr/, zh/, ar/)
{lang}/index.html Language-specific front-end page
{lang}/script.js Per-language JavaScript that fetches {lang}/books.json and renders the book list
{lang}/books.json Auto-generated per-language catalogue
{lang}/links.html Per-language links page
{lang}/timeline.html Per-language interactive D3.js timeline viewer (publication years 1600–2022)
{lang}/shelf-data/ Per-language shelf and markdown-viewer templates
index-{lang}.html Redirect stub → {lang}/index.html (backwards compatibility)
links-{lang}.html Redirect stub → {lang}/links.html (backwards compatibility)
md-viewer-{lang}.html Redirect stub → {lang}/shelf-data/md-viewer.html (backwards compatibility)

generate_books.py

generate_books.py is the script used to regenerate every localized {lang}/books.json catalogue from the single master books.json and the translations.json dictionary.

What it translates

For each book entry the script translates (or converts) the following fields:

Field How it is handled
languages Comma-separated language names — each term is looked up in translations["languages"]
subjects Comma-separated subject keywords — each term is looked up in translations["subjects"]
collections Semicolon-separated collection names — each term is looked up in translations["collections"]
thumbs[].label PDF-variant labels — custom design names are looked up in translations["labels"]
footer[].text Footer link labels — looked up in translations["footer"]
footer[].link Links to md-viewer.html are rewritten to {lang}/shelf-data/md-viewer.html
year Leading integer is offset using translations["year_conversion"] (keys: offset, prefix, suffix) to convert CE years to native calendars (e.g. Buddhist Era, Hebrew calendar)
author Translated via the translations["authors"] mapping when present

All other fields (id, title, image, shelfFile, thumbs[].class, thumbs[].pdfUrl, footer[].link for non-viewer links) are copied unchanged from books.json.

Requirements

Python 3.6+ — no third-party packages required.

Usage

python3 generate_books.py [options]

Options

Option Default Description
--base FILE books.json Base English JSON file to read
--translations FILE translations.json Translations dictionary file
--output-dir DIR . (current directory) Root directory; each language writes to {DIR}/{lang}/books.json
--languages LANG … (all in translations.json) Generate only the specified language codes
--no-english (off) Skip writing the English books.json output

Examples

Regenerate all languages (typical workflow):

python3 generate_books.py

Regenerate only a subset of languages:

python3 generate_books.py --languages zh ar fr de

Use custom input files and write output to a different directory:

python3 generate_books.py --base books.json --translations translations.json --output-dir ./output

Regenerate translated files only, skipping the English copy:

python3 generate_books.py --no-english

Regenerate a single language for quick testing:

python3 generate_books.py --languages ja

Timeline Viewer

Each language edition includes a timeline.html page that renders an interactive D3.js timeline of the book catalogue. Books span publication years 1600–2022.

  • The root timeline.html is the English version; each {lang}/timeline.html is a localized copy with translated UI strings.
  • The D3.js script is embedded inline; no separate build step is required.
  • To update the year range across all timeline files at once:
find . -name "timeline.html" -exec sed -i 's/OLD_YEAR/NEW_YEAR/g' {} \;

Language Editions

Solar Anamnesis Publishing --- English
Spanish
German
French
Japanese (日本語)
Italian
Russian (Русский)
Chinese (中文)
Hebrew (עברית)
Thai (ไทย)
Vietnamese (Tiếng Việt)
Arabic (العربية)
Hindi (हिन्दी)
Greek (Ελληνικά)
Korean (한국어)
Portuguese
Bengali (বাংলা)
Punjabi (ਪੰਜਾਬੀ)
Persian (فارسی)
Kiswahili
Bahasa Indonesia
Język Polski
Nederlands
Svenska
Turkish (Türkçe)
Magyar
Nepal Bhasa (𑐣𑐾𑐥𑐵𑐮 𑐨𑐵𑐲𑐵)
Lhasa Tibetan (ལྷ་སའི་སྐད་)
Sinhala (සිංහල)
Tamil (தமிழ்)
Odia (ଓଡ଼ିଆ)
Armenian (Հայերեն)
Tagalog
Amharic (አማርኛ)
Gujarati (ગુજરાતી)
Hausa
Javanese (Basa Jawa)
Georgian (ქართული)
Kannada (ಕನ್ನಡ)
Marathi (मराठी)
Telugu (తెలుగు)
Urdu (اردو)
Yoruba (Yorùbá)
Latina Euskara
Suomi (Finnish)
Mongol (Mongolian)
Татарча (Tatar) Қазақша
Кыргызча
Česky
Українська (Ukrainian)
Română Kurdî (Kurmancî) മലയാളം Српски (Serbian) Bosanski Hrvatski پښتو (Pashto) Igbo Afrikaans Català
Български မြန်မာ
Af Soomaali isiZulu Kreyòl ayisyen
Dansk Norsk (Bokmål)
Azərbaycan dili
Malagasy
Runa Simi
Lëtzebuergesch | Gaeilge | Cymraeg
Esperanto | Interlingua

IPFS Mirror:

IPNS hash k51qzi5uqu5dhxjrhpv3w4j0vpwai82jxdgel8kefwf0jzm1l14ow991qo5aga