Skip to content

feat(odf.js): write .ott/.ots/.otp/.otg templates, and their .stw/.stc/.sti/.std counterparts - #910

Merged
Mearman merged 1 commit into
mainfrom
feat/odf-ooo1-template-write
Sep 4, 2026
Merged

feat(odf.js): write .ott/.ots/.otp/.otg templates, and their .stw/.stc/.sti/.std counterparts#910
Mearman merged 1 commit into
mainfrom
feat/odf-ooo1-template-write

Conversation

@Mearman

@Mearman Mearman commented Sep 4, 2026

Copy link
Copy Markdown
Member

writeOdtContent/writeOdsContent/writeOdpContent/writeOdgContent could only ever stamp a document's base ODF media type, even though the reader already accepted a template's content.xml/styles.xml as structurally identical to its non-template counterpart. A template write option needed nothing beyond selecting which media type createOdfPackage stamps: syncManifest already derives the manifest root entry from whatever readMimetype(pkg) reports, so stamping ODF_MEDIA_TYPES.ott/.ots/.otp/.otg instead of the base type is the whole change.

The OpenOffice.org 1.x writers (writeSxw/writeSxc/writeSxi/writeSxd) need no code of their own to inherit this: each already threads its own options straight through to the ODF writer it wraps, and transformToOoo1Package already derives the package's own .stw/.stc/.sti/.std media type from whatever ODF media type it finds stamped on the package, through the existing ooo1MediaTypeForOdfMediaType table.

Verified against real LibreOffice 26.2.5.2: an .ott/.ots built with template: true, and a .stw/.stc built the same way through the OpenOffice.org 1.x writers, all convert cleanly and are correctly identified as genuine Writer/Calc documents from their media type alone, regardless of file extension.

This completes the read+write scope #821 itself states, including the .stw/.stc/.sti/.std template counterparts.

Closes #821

@Mearman
Mearman marked this pull request as ready for review September 4, 2026 12:01
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 4, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
🔒 Security Review Completed 2026-09-04T12:04:29.881398Z 53c752d Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@Mearman
Mearman force-pushed the feat/odf-ooo1-template-write branch from 53c752d to 1d6efba Compare September 4, 2026 12:02
…c/.sti/.std counterparts

writeOdtContent/writeOdsContent/writeOdpContent/writeOdgContent could
only ever stamp a document's base ODF media type, even though the
reader already accepted a template's content.xml/styles.xml as
structurally identical to its non-template counterpart. A template
write option therefore needed nothing beyond selecting which media
type createOdfPackage stamps: syncManifest already derives the
manifest root entry from whatever readMimetype(pkg) reports, so
stamping ODF_MEDIA_TYPES.ott/.ots/.otp/.otg instead of the base type
is the whole change.

The OpenOffice.org 1.x writers (writeSxw/writeSxc/writeSxi/writeSxd)
need no code of their own to inherit this: each already threads its
own options straight through to the ODF writer it wraps, and
transformToOoo1Package already derives the package's own .stw/.stc/
.sti/.std media type from whatever ODF media type it finds stamped on
the package via the existing ooo1MediaTypeForOdfMediaType table.

Verified against real LibreOffice 26.2.5.2: an .ott/.ots built with
template: true, and a .stw/.stc built the same way through the
OpenOffice.org 1.x writers, all convert cleanly and are correctly
identified as genuine Writer/Calc documents from their media type
alone, regardless of file extension.
@Mearman
Mearman force-pushed the feat/odf-ooo1-template-write branch from 1d6efba to 0be7e8c Compare September 4, 2026 12:05
@Mearman
Mearman merged commit e50af49 into main Sep 4, 2026
17 checks passed
@Mearman
Mearman deleted the feat/odf-ooo1-template-write branch September 4, 2026 12:08
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 6.4.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add OpenOffice.org 1.x / StarOffice XML (.sxw/.sxc/.sxi/.sxd) read+write support

1 participant