- Types موضوع، صنف، بحر، شخصیت، مقام، دور and free ٹیگ; a work's tag may be on one couplet (شعر n, from 1). - Tagging is a revision (tags-category / tags-work) through the L2 -> L1 -> admin pipeline with the new 'tags' permission; publishing writes divan-data/divan/<url>.tags, commits it and updates the site; the import reloads them. - Pages show tag chips (couplet tags under the couplet); /tag/<type>/<name> lists what carries a tag; /tags lists all. - Search: tag:عشق / ٹیگ:"حب الوطنی" filters works (tagged work, couplet or book), matching tags shown as a group. - Tag editor rows with suggestions, Urdu keyboard and Roman typing. - Tests run one file at a time (they share Ghalib's ghazals); the library test picks a ghazal with three couplets. - Mod buttons sit in a div (a form closes a p, which broke the row). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
21 lines
464 B
JSON
21 lines
464 B
JSON
{
|
|
"name": "divan-api",
|
|
"private": true,
|
|
"type": "module",
|
|
"description": "Divan API: Node.js + PostgreSQL",
|
|
"engines": {
|
|
"node": ">=24"
|
|
},
|
|
"scripts": {
|
|
"start": "node src/server.ts",
|
|
"import": "node src/import.ts",
|
|
"test": "node --test --test-concurrency=1 src/*.test.ts",
|
|
"dict-sync": "node src/dict-sync.ts",
|
|
"make-admin": "node src/admin-cli.ts"
|
|
},
|
|
"dependencies": {
|
|
"fastify": "^5.12.5",
|
|
"pg": "^8.23.1"
|
|
}
|
|
}
|