• v3.11 e16e47f634

    Ghost released this 2026-03-24 05:17:28 +01:00 | 471 commits to main since this release

    Backend (src/routes/learningAI.js):

    • POST /api/admin/learning/ai-generate
      • Accepts: topic text, uploaded file (PDF/TXT/MD/HTML), or Nextcloud WebDAV path
      • Extracts text from PDFs via pdf-parse; plain text read directly
      • Fetches WebDAV files using stored Nextcloud credentials
      • Prompts AI to return structured JSON: title, subject, body (HTML), questions[]
      • Strips code fences, falls back to regex JSON extraction if needed
    • POST /api/admin/learning/ai-refine — refine existing body with instructions
    • GET /api/admin/learning/webdav-browse — PROPFIND-based Nextcloud file browser
    • POST /api/admin/learning/webdav-path — save user's default browse path

    Frontend:

    • AI Generate button in CMS editor header (gradient purple→blue)
    • Panel with 3 source tabs: By Topic / Upload File / Nextcloud
    • Drag-and-drop file dropzone with DataTransfer API support
    • WebDAV file browser: navigate folders, select files, breadcrumb path
    • Options: question count, content type (article/quiz/pearl), model selector, instructions
    • Refine Current Body: prompt-driven AI rewrite of existing content
    • Generated content auto-fills title, subject, type, Tiptap body, quiz questions

    Settings:

    • Nextcloud section: "Learning Hub Default Browse Path" field (shown when connected)
    • Saves to webdav_learning_path column via /api/admin/learning/webdav-path

    DB: ALTER TABLE users ADD COLUMN IF NOT EXISTS webdav_learning_path TEXT

    Downloads