{"id":51166816,"url":"https://github.com/xr843/buddhist-text-collation","last_synced_at":"2026-06-26T20:02:08.501Z","repository":{"id":355152516,"uuid":"1226909959","full_name":"xr843/Buddhist-Text-Collation","owner":"xr843","description":"Open-source workbench for collating Buddhist canonical texts: punctuation diff, multi-edition collation, version lineage. CBETA/DILA integrated.","archived":false,"fork":false,"pushed_at":"2026-06-18T12:10:09.000Z","size":11507,"stargazers_count":1,"open_issues_count":10,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-18T12:28:35.662Z","etag":null,"topics":["buddhist-studies","buddhist-text","cbeta","chinese-buddhism","collation","digital-humanities","dila","fastapi","philology","punctuation","python","react","text-collation","textual-criticism","tipitaka","typescript"],"latest_commit_sha":null,"homepage":"https://github.com/xr843/Buddhist-Text-Collation#readme","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xr843.png","metadata":{"files":{"readme":"README.en.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.en.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-02T00:55:47.000Z","updated_at":"2026-06-18T12:10:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/xr843/Buddhist-Text-Collation","commit_stats":null,"previous_names":["xr843/buddhist-text-collation"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/xr843/Buddhist-Text-Collation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xr843%2FBuddhist-Text-Collation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xr843%2FBuddhist-Text-Collation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xr843%2FBuddhist-Text-Collation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xr843%2FBuddhist-Text-Collation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xr843","download_url":"https://codeload.github.com/xr843/Buddhist-Text-Collation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xr843%2FBuddhist-Text-Collation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34831250,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-26T02:00:06.560Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["buddhist-studies","buddhist-text","cbeta","chinese-buddhism","collation","digital-humanities","dila","fastapi","philology","punctuation","python","react","text-collation","textual-criticism","tipitaka","typescript"],"created_at":"2026-06-26T20:02:03.434Z","updated_at":"2026-06-26T20:02:08.496Z","avatar_url":"https://github.com/xr843.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Buddhist Text Collation Platform\n\n[中文 README](README.md) · **English**\n\n[![CI](https://github.com/xr843/Buddhist-Text-Collation/actions/workflows/ci.yml/badge.svg)](https://github.com/xr843/Buddhist-Text-Collation/actions/workflows/ci.yml)\n[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](LICENSE)\n[![Python](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/)\n[![React](https://img.shields.io/badge/react-18+-61dafb.svg)](https://react.dev/)\n[![FastAPI](https://img.shields.io/badge/FastAPI-0.117+-009688.svg)](https://fastapi.tiangolo.com/)\n\n\u003e **One-line** · A unified research workbench for **punctuation diff,\n\u003e multi-edition collation, commentary cross-reading, and version-lineage\n\u003e analysis** of Buddhist canonical texts.\n\n🛡️ [Security](SECURITY.md) · 🤝 [Contributing](CONTRIBUTING.md) · 🗺️ [Roadmap](ROADMAP.en.md) · 📝 [Changelog](CHANGELOG.md)\n\n---\n\n## Screenshots\n\n| Module | Preview |\n|---|---|\n| Commentary Parallel Reading | sutra text + multiple commentaries side-by-side, sentence-aligned |\n| Multi-edition Collation | one base edition vs. up to 30 witnesses in one workspace |\n| Punctuation Diff | upload two punctuated editions for visual diff + analysis |\n| Punctuation Transfer | map punctuation from a polished edition to an unpunctuated one |\n\nSee [`docs/screenshots/`](docs/screenshots/) — high-fidelity captures\nwith real data are tracked in [#26](../../issues/26).\n\n## What is this?\n\nA research workbench that unifies the textual-criticism workflow for\nBuddhist canonical texts: punctuation diff, multi-edition collation,\ncommentary cross-reading, and version-lineage analysis. It integrates\nopen scholarly resources (CBETA, DILA) and ships with a focused reading\nUI suited to long collation sessions.\n\n## Key Features\n\n| Module | Capability |\n|---|---|\n| Punctuation Diff | per-file multi-edition diff, sentence-level adjudication |\n| Two-Edition Collation | line/char diff, variant-character recognition, decision tracking |\n| Multi-Edition Collation | up to 31 editions in one workspace, auto-generated collation notes |\n| Commentary Reading | sutra + commentaries side-by-side, cross-text citations |\n| Version Lineage | variant clustering, lineage-graph generation |\n| Collaboration | projects, members, roles, annotations, edit locks |\n| Export | TXT / DOCX / collation-note CSV / full alignment table |\n\n## Tech Stack\n\n- **Backend**: Python 3.11 · FastAPI · SQLAlchemy (async) · PostgreSQL · Redis\n- **Frontend**: React 18 · TypeScript · Vite · Zustand · Ant Design\n- **Infra**: Docker Compose · nginx · Umami (optional analytics)\n\nArchitecture: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) ·\nAuth: [docs/AUTH.md](docs/AUTH.md) ·\nCollaboration: [docs/COLLAB.md](docs/COLLAB.md) ·\nAdmin: [docs/ADMIN.md](docs/ADMIN.md)\n\n## 3-minute Try\n\nDon't want to set up the stack first? Browse [`examples/`](examples/) for\npublic-domain samples. A single `diff` shows the kind of textual\nvariation this platform highlights and writes into a collation note.\n\n```bash\ndiff examples/classical-chinese-sample/punctuated.txt \\\n     examples/classical-chinese-sample/variant.txt\n```\n\nOnce the platform is running, upload the two sample files to\n**Two-Edition Collation** or **Punctuation Transfer** to walk the full\npath locally.\n\n## Quick Start\n\n### Prerequisites\n\n- Python 3.11+\n- Node.js 20+\n- PostgreSQL 14+ and Redis 7+ (Docker is fine for development)\n\n### Clone \u0026 configure\n\n```bash\ngit clone https://github.com/xr843/Buddhist-Text-Collation.git\ncd Buddhist-Text-Collation\n\ncp .env.example .env\ncp backend/.env.example backend/.env\n\n# Generate SECRET_KEY\npython3 -c \"import secrets; print(secrets.token_urlsafe(48))\"\n# paste into backend/.env as SECRET_KEY\n```\n\n### Install\n\n```bash\n# Backend\ncd backend\npython -m venv venv \u0026\u0026 source venv/bin/activate\npip install -r requirements.txt\n\n# Frontend\ncd ../frontend\nnpm install\n```\n\n### Run\n\n```bash\n./start_backend.sh    # http://localhost:8001\n./start_frontend.sh   # http://localhost:5173\n```\n\n### Docker\n\n```bash\ndocker-compose up -d --build\n```\n\nSee [docs/DEPLOYMENT_CHECKLIST.md](docs/DEPLOYMENT_CHECKLIST.md) and\n[docs/WSL_SETUP.md](docs/WSL_SETUP.md) for production guidance.\n\n## Data Resources\n\nThis repo does **not** redistribute copyrighted modern punctuated\neditions. Public sources you can wire up:\n\n- [CBETA](https://www.cbeta.org/) — cite per their terms of use\n- [DILA](https://www.dila.edu.tw/) — CC-BY-NC-SA and similar licenses\n- Your own collation work\n\nLarge derived datasets (variant indices, alignment caches) are\ndistributed via GitHub Releases, not committed to the repo.\n\n## Security\n\nRead the **Deployment Requirements** in [SECURITY.md](SECURITY.md) before\nexposing the platform publicly. Report vulnerabilities privately via\nGitHub Security Advisories — please do **not** open a public issue.\n\n## Acknowledgements\n\nThis project stands on the shoulders of:\n\n- [CBETA — Chinese Buddhist Electronic Text Association](https://www.cbeta.org/)\n- [DILA — Dharma Drum Institute of Liberal Arts Digital Archives](https://www.dila.edu.tw/)\n- [Variant Character Dictionary / Unihan / IDS](https://www.unicode.org/charts/unihan.html)\n- Every researcher and volunteer who has quietly contributed to the\n  digitization of canonical Buddhist texts.\n\n## License\n\n[GNU Affero General Public License v3.0](LICENSE).\n\nAGPL was chosen so that derivative works — including network-deployed\nservices — remain open, in keeping with the open-knowledge ethos of\nBuddhist textual scholarship.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxr843%2Fbuddhist-text-collation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxr843%2Fbuddhist-text-collation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxr843%2Fbuddhist-text-collation/lists"}