关于 Dhamma.Gift — Pāli Canon
Dhamma.Gift 的 Node.js 后端,用于搜索和阅读巴利经典,面向需要查阅原文及俄语、英语译文的读者。它采用 SQLite/FTS5 索引,并支持分段链接和离线镜像数据。
主要功能
- 01使用 SQLite/FTS5 搜索经典
- 02提供经典文本阅读路由
- 03支持分段链接与滚动定位
- 04兼容离线镜像数据
- 05保留旧版 PHP/Apache 兼容层
适用场景
- 01按词语检索巴利经典
- 02打开经典全文或指定段落
- 03使用离线镜像部署文本数据
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.dhamma.gift/mcpclaude mcp add --transport http gift-dhamma-pali-canon https://api.dhamma.gift/mcp{"mcpServers":{"gift-dhamma-pali-canon":{"type":"http","url":"https://api.dhamma.gift/mcp"}}}在 Cursor 中打开{"servers":{"gift-dhamma-pali-canon":{"type":"http","url":"https://api.dhamma.gift/mcp"}}}在 VS Code 中打开{"mcpServers":{"gift-dhamma-pali-canon":{"type":"http","url":"https://api.dhamma.gift/mcp"}}}{"mcpServers":{"gift-dhamma-pali-canon":{"serverUrl":"https://api.dhamma.gift/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
dg-node
用于搜索和阅读巴利圣典文本的 Node.js 后端,使用 SuttaCentral Bilara 和 DhammaGift 译文。
本项目为旧版 Dhamma.Gift 技术栈提供搜索索引、阅读器端点、静态资源和兼容层。生产服务器使用 Fastify;较旧的 Express 实现仅为兼容旧版而保留。
架构和开发规则:CLAUDE.md
功能
- 使用 SQLite/FTS5 搜索巴利圣典
- 阅读器路由支持
/dn22和/dn22:12.1等简洁 URL - 支持按段落生成链接和滚动定位
- 支持离线镜像数据和基于环境的路径解析
- 兼容较旧的 PHP/Apache 前端
快速开始
git pull
npm install
npm run build-search-db # build dg.db (SQLite/FTS5) from fresh Bilara data
npm start # run the production server (dg-fastify.js), port 3000
每当源文本或译文在磁盘上发生变化时,都应重新运行 build-search-db。服务器直接从磁盘读取数据,并按需重建搜索索引。
SC_BILARA、DG_OFFLINE 和离线镜像等数据路径会根据运行环境(Termux、Windows 开发环境、本地服务器等)自动解析。
unused/dg-light.js 和 unused/dblight.js(npm run start:express)是旧版 Express + grep 服务,生产环境不会使用。详情请参阅 CLAUDE.md。
部署检查
curl "http://localhost:3000/search?q=kacchapa&scope=dhamma&langs=ru,en"
curl -I "http://localhost:3000/assets/js/datatables/datatables.min.js" # 200 from public/overrides/js/datatables, not from the legacy repo
curl -I "http://localhost:3000/dn22" # reader via clean URL
curl -I "http://localhost:3000/dn22:10.5" # segment link (scroll to 10.5)
手动浏览器检查:
/nodejs/res/?q=kacchapa&scope=dhamma— 搜索、DataTables、导出/dn22— 全文阅读器- 巴利语 / 俄语切换(三种模式:巴利语 + 译文 → 仅巴利语 → 仅译文)——应能正确隐藏/显示内容
/?q=dn22#12.1(旧版格式)——应与/dn22:12.1一样继续正常工作
Apache/PHP 部署说明
如果公开的 Dhamma.Gift 网站目前由 Apache/PHP 托管,而 Node 作为独立后端运行,且仅代理 /search,请注意以下事项:
- 搜索请求可能会路由到 Node 后端
- 静态文件和阅读器路由仍可能由 Apache/PHP 提供
- 根域名路由可能与本地开发环境不同
dg-fastify是现代后端,而旧版 PHP 页面仍并行保留以确保兼容性
项目结构
dg-fastify.js — production server (Fastify + SQLite/FTS5, dg.db): /search, /api/text/:suttaId,
static files (search/, reader/, siteroot/assets/), offline mirrors,
clean URLs (/dn22, /dn22:12.1)
unused/dg-light.js — legacy Express + grep server, not used in production (see CLAUDE.md)
unused/dblight.js — build script for dg-light.js → dg_db_light.json (legacy, not needed with dg.db)
search/ — search page (DataTables); legacy URL remains /nodejs/res/... (see CLAUDE.md)
reader/ — reader frontend (reader-template.html + megareader.js)
configs/ — project JSON configs (openapi, reader/*, search/*), see CLAUDE.md
docs/ — project documentation and compatibility notes (SPA plans, backward compatibility)
siteroot/ — root-site publication: assets/ (legacy assets), 4nt/config/login/,
memo/read (legacy tools), see CLAUDE.md
许可证
请参阅仓库许可证及项目根目录中的项目专属说明。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。