Skip to content

feat(bookstack): add configurable export options#84

Open
hexsm wants to merge 1 commit into
open-webui:mainfrom
hexsm:feature/bookstack-export-options
Open

feat(bookstack): add configurable export options#84
hexsm wants to merge 1 commit into
open-webui:mainfrom
hexsm:feature/bookstack-export-options

Conversation

@hexsm

@hexsm hexsm commented Jul 16, 2026

Copy link
Copy Markdown

Summary

Adds configurable BookStack export options for selecting the source scope, output type, file format, and path structure.

This supersedes #80 and #82 and includes the combined BookStack export changes in one PR.

Addresses #75.

What Changed

  • Adds BookStack source options:
    • scope=pages|books|shelves
    • output=pages|books
    • format=txt|md|html|pdf
    • structure=flat|hierarchical
  • Uses BookStack native export endpoints for pages and books.
  • Supports syncing:
    • individual pages
    • pages from books
    • whole book exports
    • pages or books from shelves
  • Adds hierarchical paths for shelf/book/chapter structure where available.
  • Updates BookStack checksums so whole-book exports change when nested page content changes.
  • Adds BookStack parser and connector tests.
  • Documents the new BookStack options in the guide.

Examples

# Sync all pages from all BookStack books as Markdown files.
oikb sync bookstack: --kb-id your-kb-id

# Sync one specific BookStack page.
oikb sync 'bookstack:12?scope=pages' --kb-id your-kb-id

# Sync one whole BookStack book as a PDF file.
oikb sync 'bookstack:12?scope=books&output=books&format=pdf' --kb-id your-kb-id

# Sync all pages from one shelf and preserve shelf/book/chapter paths.
oikb sync 'bookstack:5?scope=shelves&structure=hierarchical' --kb-id your-kb-id

Validation

  • pytest: 28 passed
  • compileall -f src/oikb tests: passed
  • git diff --check: passed
  • Live BookStack diff checks:
    • page scope
    • default book pages
    • whole-book markdown/html/pdf exports
    • plaintext exports
    • hierarchical shelf pages
    • hierarchical shelf book exports
  • Live upload/idempotency checks:
    • single page sync, then unchanged repeat
    • whole-book sync, then unchanged repeat
    • hierarchical shelf sync, then unchanged repeat

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant