Repository navigation
Releases: simonliu-ai-product/open-doc
Release list
@open-document/core@0.13.3
Patch Changes
-
#80
c83e403Thanks @LiuYuWei! - The Word export now looks closer to the web page:- Monospace and system fonts: Apple's system faces (SF Mono, SF Pro) are skipped, and the next family in the stack is used instead (Menlo for code). Pages and Word cannot pick SF Mono or SF Pro by name and fell back to Courier.
- Table cells: a cell's background colour now comes through. A data bar (
linear-gradient) becomes a tint whose depth follows the value, since neither Word nor Pages can fill part of a cell. - Fixed-page foot: a line laid out against a fixed page's foot (a cover's byline) becomes that page's own footer, so it stays at the bottom, and its top rule is kept.
- Inline pills: a pill or badge keeps its background.
@open-document/core@0.13.2
Patch Changes
-
#78
0ee7a43Thanks @LiuYuWei! - Word export keeps the newer components' layout:- Code blocks: each line stays a line, highlighted lines keep their tint, and the title bar and frame come through.
- Callouts and code-block tints: their background colours come through.
color-mix()and translucent colours are flattened onto white, since Word has no alpha. - Side by side: callouts set next to each other stay in one row.
- Columns: a
flow()section set in columns is a section of the same columns in Word, with breaks where the printed columns began. - Watermark:
meta.watermarkis stamped behind the text on every page. - Sparklines: they are drawn inline instead of left out.
- Bibliography: entries are not numbered a second time, and the
[n]label hangs beside the text.
The offscreen pages are also positioned like real sheets, and the export waits for references to resolve before reading them.
@open-document/mcp@0.8.1
Patch Changes
- #76
bb9b64fThanks @LiuYuWei! - Add per-file async write queue (withFileLock) and SHA-256 optimistic concurrency control (hashSource/expectedHash) across document, text, comment, design, and folder operations to prevent concurrent write clobbering on local and GCS FUSE storage. - Updated dependencies [
bb9b64f]:- @open-document/core@0.13.1
@open-document/mcp@0.8.0
Minor Changes
-
#74
f1fea7bThanks @LiuYuWei! - Add v2 document layout, charts, diagrams, rich primitives, layout diagnostics, and Google Cloud Run + GCS deployment (open-doc deploy gcp):- Layout & Pagination Engine: Multi-column
flow(children, { columns, columnGap })with full-width column-spanning headings (data-od-column-span="all"), and automatic row-level multi-page splitting for<DataTable splittable />with repeated<thead>and continuation captions. - Charts & Diagrams: Mermaid
subgraph ... endclusters andsequenceDiagramsupport (participant, message arrows,Note);<Chart type="area" | "horizontal-bar" />; inline<Sparkline />; and<DataTable>summaryRow('sum' | 'avg'or per-column record),dataBar,'currency', and'delta'formatters. - Rich Document Primitives:
<Cite>and<Bibliography>for automatic academic/report citation numbering,<CodeBlock>with zero-dependency syntax highlighting (lineNumbers,highlightLines, figure captioning),<Callout>, andmeta.watermarkacross viewer and exports. - Layout Diagnostics: Detect duplicate element IDs (
duplicate-id) and skipped heading levels (heading-skip) inopen-doc checkand MCPcheck_layout. - Cloud Deployment (
open-doc deploy gcp): Deploy and manage live open-doc workspaces on Google Cloud Run backed by Google Cloud Storage FUSE (up,check,status,pull,push,stop,start,down), with Bearer token authentication for remote MCP editing (/mcp) and instant WebSocket HMR.
- Layout & Pagination Engine: Multi-column
Patch Changes
- Updated dependencies [
f1fea7b]:- @open-document/core@0.13.0
@open-document/core@0.13.1
@open-document/core@0.13.0
Minor Changes
-
#74
f1fea7bThanks @LiuYuWei! - Add v2 document layout, charts, diagrams, rich primitives, layout diagnostics, and Google Cloud Run + GCS deployment (open-doc deploy gcp):- Layout & Pagination Engine: Multi-column
flow(children, { columns, columnGap })with full-width column-spanning headings (data-od-column-span="all"), and automatic row-level multi-page splitting for<DataTable splittable />with repeated<thead>and continuation captions. - Charts & Diagrams: Mermaid
subgraph ... endclusters andsequenceDiagramsupport (participant, message arrows,Note);<Chart type="area" | "horizontal-bar" />; inline<Sparkline />; and<DataTable>summaryRow('sum' | 'avg'or per-column record),dataBar,'currency', and'delta'formatters. - Rich Document Primitives:
<Cite>and<Bibliography>for automatic academic/report citation numbering,<CodeBlock>with zero-dependency syntax highlighting (lineNumbers,highlightLines, figure captioning),<Callout>, andmeta.watermarkacross viewer and exports. - Layout Diagnostics: Detect duplicate element IDs (
duplicate-id) and skipped heading levels (heading-skip) inopen-doc checkand MCPcheck_layout. - Cloud Deployment (
open-doc deploy gcp): Deploy and manage live open-doc workspaces on Google Cloud Run backed by Google Cloud Storage FUSE (up,check,status,pull,push,stop,start,down), with Bearer token authentication for remote MCP editing (/mcp) and instant WebSocket HMR.
- Layout & Pagination Engine: Multi-column
@open-document/cli@0.2.1
Patch Changes
-
#74
f1fea7bThanks @LiuYuWei! - Add v2 document layout, charts, diagrams, rich primitives, layout diagnostics, and Google Cloud Run + GCS deployment (open-doc deploy gcp):- Layout & Pagination Engine: Multi-column
flow(children, { columns, columnGap })with full-width column-spanning headings (data-od-column-span="all"), and automatic row-level multi-page splitting for<DataTable splittable />with repeated<thead>and continuation captions. - Charts & Diagrams: Mermaid
subgraph ... endclusters andsequenceDiagramsupport (participant, message arrows,Note);<Chart type="area" | "horizontal-bar" />; inline<Sparkline />; and<DataTable>summaryRow('sum' | 'avg'or per-column record),dataBar,'currency', and'delta'formatters. - Rich Document Primitives:
<Cite>and<Bibliography>for automatic academic/report citation numbering,<CodeBlock>with zero-dependency syntax highlighting (lineNumbers,highlightLines, figure captioning),<Callout>, andmeta.watermarkacross viewer and exports. - Layout Diagnostics: Detect duplicate element IDs (
duplicate-id) and skipped heading levels (heading-skip) inopen-doc checkand MCPcheck_layout. - Cloud Deployment (
open-doc deploy gcp): Deploy and manage live open-doc workspaces on Google Cloud Run backed by Google Cloud Storage FUSE (up,check,status,pull,push,stop,start,down), with Bearer token authentication for remote MCP editing (/mcp) and instant WebSocket HMR.
- Layout & Pagination Engine: Multi-column
@open-document/mcp@0.7.0
Minor Changes
-
#69
35d4fadThanks @LiuYuWei! - Set Chinese, Japanese and Korean properly. A document declares its language withmeta.lang('zh-Hant-TW','ja'…), and every sheet — in the viewer, the thumbnails, the flow measurement and the PDF, HTML, PNG and Word exports — carries it, so glyphs and line-breaking follow the document rather than the reader's interface language (which used to leak into the page). The sheet's base style adds strict kinsoku and an eighth-em gap where CJK meets Latin letters or digits, and phrase-aware breaks in Japanese headings. HTML exports declare the document's language instead of alwaysen, and Word files set the East Asian language. Markdown import takes--lang(andlangin front matter or over MCP), and detects Traditional or Simplified Chinese, Japanese and Korean when it is not given. -
#70
1c4b665Thanks @LiuYuWei! - Print one document per row of data. A document that doesexport const records = rows(an imported.csv) is laid out once per row: pages read the row withuseRecord()or print a value with<Field name="…" />, the viewer gets a record picker (and?record=to open on a row), andopen-doc export <id> --eachwrites one file per row, named bymeta.recordName('certificate-{name}',{#}for the row number) or--name. MCP'sexport_documenttakeseachandname. Acertificatetemplate shows the whole thing.Also fixes a flow-layout bug: a block that rendered nothing was measured as a page break glued to the next block, so a conditional block could push everything after it onto a new page.
Also fixes a race in flow measurement: the offscreen render was left to React's schedule, and on a slow machine it could still be empty when it was measured, so a flow section packed as no pages. The measuring render now commits synchronously and is checked for every block before it is read. And when the viewer is sent to a document the dev server's watcher has not noticed yet, it rescans the docs folder instead of reporting it missing.
-
#68
19634aaThanks @LiuYuWei! - Start documents from templates. open-doc shipsreport,proposal,meeting-notes,letterandblank, and a workspace can add its own undertemplates/<name>/(anindex.tsx, plus an optionaltemplate.jsonwith a title, description, category and the placeholder title to replace).open-doc templateslists every template with the name to use;open-doc new <id> --template <name> --title "…"creates a document from one, retitled where the title prints and dated today.- The document browser has a New document button: a gallery of the templates, each showing its name, and a title field. A document created inside a folder view is filed into that folder.
npx @open-document/cli templateslists them, andinit --template <name>starts the workspace with that document.- MCP:
list_templatesandcreate_from_template.
Patch Changes
@open-document/core@0.12.0
Minor Changes
-
#66
8a51291Thanks @LiuYuWei! - Add a Changes panel to the viewer (C, or the Changes button in the header). It lists what changed in the document's folder since the last commit, or an earlier commit you pick: each change in the document's own source is marked on the page where it prints (added, rewritten, or removed), changed pages get a dot in the page rail, and each change can be reverted in source on its own. The header shows how many changes there are, and the list follows the file as an agent writes it. -
#69
35d4fadThanks @LiuYuWei! - Set Chinese, Japanese and Korean properly. A document declares its language withmeta.lang('zh-Hant-TW','ja'…), and every sheet — in the viewer, the thumbnails, the flow measurement and the PDF, HTML, PNG and Word exports — carries it, so glyphs and line-breaking follow the document rather than the reader's interface language (which used to leak into the page). The sheet's base style adds strict kinsoku and an eighth-em gap where CJK meets Latin letters or digits, and phrase-aware breaks in Japanese headings. HTML exports declare the document's language instead of alwaysen, and Word files set the East Asian language. Markdown import takes--lang(andlangin front matter or over MCP), and detects Traditional or Simplified Chinese, Japanese and Korean when it is not given. -
#70
1c4b665Thanks @LiuYuWei! - Print one document per row of data. A document that doesexport const records = rows(an imported.csv) is laid out once per row: pages read the row withuseRecord()or print a value with<Field name="…" />, the viewer gets a record picker (and?record=to open on a row), andopen-doc export <id> --eachwrites one file per row, named bymeta.recordName('certificate-{name}',{#}for the row number) or--name. MCP'sexport_documenttakeseachandname. Acertificatetemplate shows the whole thing.Also fixes a flow-layout bug: a block that rendered nothing was measured as a page break glued to the next block, so a conditional block could push everything after it onto a new page.
Also fixes a race in flow measurement: the offscreen render was left to React's schedule, and on a slow machine it could still be empty when it was measured, so a flow section packed as no pages. The measuring render now commits synchronously and is checked for every block before it is read. And when the viewer is sent to a document the dev server's watcher has not noticed yet, it rescans the docs folder instead of reporting it missing.
-
#68
19634aaThanks @LiuYuWei! - Start documents from templates. open-doc shipsreport,proposal,meeting-notes,letterandblank, and a workspace can add its own undertemplates/<name>/(anindex.tsx, plus an optionaltemplate.jsonwith a title, description, category and the placeholder title to replace).open-doc templateslists every template with the name to use;open-doc new <id> --template <name> --title "…"creates a document from one, retitled where the title prints and dated today.- The document browser has a New document button: a gallery of the templates, each showing its name, and a title field. A document created inside a folder view is filed into that folder.
npx @open-document/cli templateslists them, andinit --template <name>starts the workspace with that document.- MCP:
list_templatesandcreate_from_template.
-
#67
6dca67eThanks @LiuYuWei! - Add a Comments panel to the viewer (M, or the Comments button in the header). Review notes left on the document are listed in order with the words of the element each is about, pinned on the page with a number, and marked in the page rail; clicking one goes to it, Resolve takes its marker out of the source, and New comment goes straight to picking an element with the note open. "Copy request for the agent" copies/apply-comments docs/<id>, and the agent's edits then show under Changes, which no longer counts the comment markers themselves.
Patch Changes
-
#72
dc4cb10Thanks @LiuYuWei! - Selecting a value a document prints from itsrecords(<Field>) now shows where it comes from — the data file, the row shown, and each column with its value for that row — instead of "element has no text of its own", so it is clear the cell is what to edit. The status line no longer offers double-click editing on an element that cannot be edited. -
#71
df270dcThanks @LiuYuWei! - Document and theme cards preview in one box size, so titles line up along a row: each sheet is scaled to fit a portrait-A4 frame whole and centred, and a landscape page is letterboxed on the canvas colour instead of making a shorter card. New comment now shows that it is waiting for an element — the Comments panel stays open with the button pressed, the pointer is a crosshair over the page, and Esc or pressing it again cancels — instead of closing the panel with no sign of what to do next.
@open-document/cli@0.2.0
Minor Changes
-
#68
19634aaThanks @LiuYuWei! - Start documents from templates. open-doc shipsreport,proposal,meeting-notes,letterandblank, and a workspace can add its own undertemplates/<name>/(anindex.tsx, plus an optionaltemplate.jsonwith a title, description, category and the placeholder title to replace).open-doc templateslists every template with the name to use;open-doc new <id> --template <name> --title "…"creates a document from one, retitled where the title prints and dated today.- The document browser has a New document button: a gallery of the templates, each showing its name, and a title field. A document created inside a folder view is filed into that folder.
npx @open-document/cli templateslists them, andinit --template <name>starts the workspace with that document.- MCP:
list_templatesandcreate_from_template.