Content moderation: Divan's own copy over Wikisource and Wiktionary #20

Open
opened 2026-10-08 18:30:30 +00:00 by anas · 3 comments
Owner

Divan keeps its own copy of the content; moderators' work takes precedence over the Wikisource/Wiktionary sources (owner direction, 2026-10-08). Replaces the earlier Ganjoor-style editorial scope.

  • Moderators work within the permissions granted in the admin panel (#27): scope (all poets, chosen poets, chosen books/works), content type (poets, books, works, dictionary) and action (create, edit, delete, arrange).
  • Edit, add, delete and reorder poets, books/categories and works (titles, text, verse layout, radif/matla/maqta, intros, years); upload new content not on Wikisource; fix and add dictionary entries.
  • Approval pipeline (owner direction): every change is a draft until published.
    draft (L2 moderator) → submitted to an L1 moderator of that scope → L1 approves (or returns it with comments) → admin receives the publish request → published (or rejected with comments). L1 work goes straight to the admin step. Readers see only published versions.
  • Precedence: anything published from Divan is never overwritten by the daily Wikisource/Wiktionary sync; upstream changes to such records are listed for moderators to accept or ignore (through the same pipeline).
  • History: every version kept with author, reviewer, publisher and time; revert (also through the pipeline).
  • Later: readers' edit suggestions enter the pipeline at the L2 step.
Divan keeps its own copy of the content; moderators' work takes precedence over the Wikisource/Wiktionary sources (owner direction, 2026-10-08). Replaces the earlier Ganjoor-style editorial scope. - Moderators work within the permissions granted in the admin panel (#27): scope (all poets, chosen poets, chosen books/works), content type (poets, books, works, dictionary) and action (create, edit, delete, arrange). - Edit, add, delete and reorder poets, books/categories and works (titles, text, verse layout, radif/matla/maqta, intros, years); upload new content not on Wikisource; fix and add dictionary entries. - **Approval pipeline** (owner direction): every change is a draft until published. draft (L2 moderator) → submitted to an L1 moderator of that scope → L1 approves (or returns it with comments) → admin receives the publish request → published (or rejected with comments). L1 work goes straight to the admin step. Readers see only published versions. - Precedence: anything published from Divan is never overwritten by the daily Wikisource/Wiktionary sync; upstream changes to such records are listed for moderators to accept or ignore (through the same pipeline). - History: every version kept with author, reviewer, publisher and time; revert (also through the pipeline). - Later: readers' edit suggestions enter the pipeline at the L2 step.
anas added this to the Phase 5: Community milestone 2026-10-08 18:30:30 +00:00
anas added the
area/site
area/api
v2
labels 2026-10-08 18:30:30 +00:00
anas changed title from 6.4 Editorial to Content moderation: Divan's own copy over Wikisource and Wiktionary 2026-10-08 20:41:21 +00:00
Author
Owner

Git as the public record of published content (owner direction, 2026-10-08)

  • Drafts, reviews and comments stay inside the moderation app (the pipeline above).
  • When an admin publishes, the final version is committed to the open-source divan-data repo: one commit per published change, the moderator as author, the L1 reviewer and the publishing admin in commit trailers (Reviewed-by:, Approved-by:), the change summary as the message. The public git history is the version history, and every change is a git diff anyone can read.
  • divan-data becomes the source of truth for Divan-owned content: published records are marked as Divan's, and the Wikisource export (export_divan.py) and the dictionary sync leave them alone; upstream changes to them go to moderators instead.
  • Dictionary fixes and new entries are committed too (a Divan dictionary folder in divan-data).
  • Each page shows when its content was last updated and by which moderator, linking to the commit diff.
  • Reverts are commits as well (through the pipeline).

Open question: commits go to Gitea divan-data at publish time; whether GitHub receives them on every publish or at releases.

**Git as the public record of published content** (owner direction, 2026-10-08) - Drafts, reviews and comments stay inside the moderation app (the pipeline above). - When an admin publishes, the final version is committed to the open-source **divan-data** repo: one commit per published change, the moderator as author, the L1 reviewer and the publishing admin in commit trailers (`Reviewed-by:`, `Approved-by:`), the change summary as the message. The public git history is the version history, and every change is a git diff anyone can read. - divan-data becomes the source of truth for Divan-owned content: published records are marked as Divan's, and the Wikisource export (`export_divan.py`) and the dictionary sync leave them alone; upstream changes to them go to moderators instead. - Dictionary fixes and new entries are committed too (a Divan dictionary folder in divan-data). - Each page shows when its content was last updated and by which moderator, linking to the commit diff. - Reverts are commits as well (through the pipeline). Open question: commits go to Gitea divan-data at publish time; whether GitHub receives them on every publish or at releases.
anas modified the milestone from Phase 5: Community to Phase 4: Content moderation (Divan's own copy) 2026-10-08 20:49:43 +00:00
Author
Owner

Content model decided (docs/content-model.md, "Content management model"): the pipeline works on per-entity revisions (version history issue) and covers tags (tags issue), poet intros, books, chapters and sub-chapters as well as works.

Content model decided (docs/content-model.md, "Content management model"): the pipeline works on per-entity revisions (version history issue) and covers tags (tags issue), poet intros, books, chapters and sub-chapters as well as works.
Author
Owner

Status: the moderation core is done:

  • content model, Divan-owned content and the L2 → L1 → admin pipeline;
  • git publishing to divan-data;
  • the Urdu editor;
  • arranging (#41), tags (#52), e-books;
  • version history, compare and revert (#51);
  • poet and book editors (#32).

Left: document import (#33), dictionary editor (#35), upstream changes queue (#36). This stays open as the umbrella until those are done.

Status: the moderation core is done: - content model, Divan-owned content and the L2 → L1 → admin pipeline; - git publishing to divan-data; - the Urdu editor; - arranging (#41), tags (#52), e-books; - version history, compare and revert (#51); - poet and book editors (#32). Left: document import (#33), dictionary editor (#35), upstream changes queue (#36). This stays open as the umbrella until those are done.
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: anas/divan#20
No description provided.