Skip to main content

EditBase - Releases

← App details

Nextcloud 35

EditBase 0.3.0
Release Details
UpdatedOct. 7, 2026, 11:02 p.m.
Changelog

Added

  • An AI assistant, through the AI-Hub app: a chat above the Pages and Layers bars that knows EditBase, changes the open document when asked (every change undoable with Ctrl+Z) and reads from the other apps of the series only as the administrator allows. Administration settings → EditBase → AI assistant: on or off, who may use it, what it may read, web search. Shown only when AI-Hub is installed.
  • The widths of the Preview bar and the Layer bar can be set in px or % (Settings → View).
  • Tooltips of their own on every button, so the pointer never hides the caption.
  • Bundled samples: body text 12 pt (US GSA Section 508 guidance), and "More apps from KTEC" gives each app a page of its own, AI-Hub included.
  • The AI conversation can be saved to Files as Markdown, as it stands or summed up by the AI (two small buttons in the assistant's head; AI-Hub/EditBase/ in the writer's Files). The conversation of each document lasts while the tab is open and the writer stays logged in: a reload goes on with it, a new tab or a new login starts afresh.

Changed

  • The toolbar follows LibreOffice, Microsoft Office and Ichitaro: text and paragraph formatting in a second row of the top bar; the left column holds Insert (page break, table of contents, header and footer, rules among it), Drawing and View; the "Page layout" menu is gone.
  • After a forced page break the paragraph's space above is kept, as in LibreOffice; at a natural page break it is dropped.

Fixed

  • Counts on the screen take the singular for one ("1 page", "1 Seite", "1 caractère"), in every language, through Nextcloud's plural forms.
  • An unedited bundled sample is recognised by its text, not its bytes, so one that was merely opened and saved is still replaced when a new version ships.
  • A page fold never cut inside a word across a line break.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureTElgSpvGffZlhAYfGfibKmKXoXLm4AmwUUpBCH2zJtJm9kkkA4X1FkSF3qNprG8iaq8tntGHT3XLlbxWac8Bmbi3wK5tPQ0F64EBJwwT0LgbikNYAaKT0lvnJiUOUoqmUC+a8KWTTGL6ghR++rjSImAQU/SGe4eU4GN95L0oAqRMACNicf/h4yWwUUifggi7YqeiaImUO/olsZWJSMCYePh0JcbpE8LcXe4USsvLgrH3deBN6SMoURst96TKgutj0w4rgIU1VjSROzaE6cc+1jJf3AIXLIqcb0rMlwCi3jH40fdJBdO/tV6xg53IBRs/xBsw5rgnFMuo6rAopwAHhgdI/idHnDu0KzCuyRubREzNLCJCoNq/UzNgRnM6Zhch4lHizR4yaqaxHh8LZibqJRdOA89igZevyFDihbmPlsslHVjHIKkiWKwlAomQQBKvJg6hS8Y8fbKwICxjPUAiCrTIQUjAF2xd+b8kzao1SnEep0bff+LGUfBtS0uNI3bZL3lDnnZAt1nLgch+quuQN5cQsL5g55cBcZ8bMM5uVr7ZFDFRy3oTQQd7JkyYr4DQHt2ZxdYmdiYlOqbM2a5Fr/P8DK0cvfW4D8qey3GZ2a23rhMY2srhVJgEBwRJ+HnBjOWIAsRjY/hP43daQT9oOCvbT3XByxaDwLjniWyRBko=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.2.0
Release Details
UpdatedOct. 2, 2026, 4:33 a.m.
Changelog

Built and checked by laying out five Japanese government forms (an employment conditions notice, a resignation certificate, a CV, a wage ledger and a staff register) and printing them over the original PDFs: the rules land within 0.5 mm of the originals and nearly all of the text within 0.5 mm.

Added

  • Characters and lines per page. A page can be set up by the number of characters per line and lines per page, or by the character and line pitch in millimetres (to 0.001 mm). The screen and the printout match, and half-width letters take half a cell. A grid can be shown on the page.
  • Ruling mode. Draw a table by dragging on the page grid; press Tab while dragging to add lines. Draw over a line to change its kind (thin, solid, medium, thick, double, dotted, dashed), or erase it. Also draws diagonal lines, arrows, round, square and curly brackets, and polylines. Drawn lines snap to the lines already there. A table drawn on empty lines or below the text goes into the text (it takes its room, and the text below moves down as its cells grow); the lines down to it are added for you, as with click-and-type.
  • Tab positions. Left, centred, right and decimal tabs per paragraph, measured from the left indent. Set them in the paragraph's Tabs tab in millimetres, or press the ruler to place one, drag it to move it and drag it off the ruler to remove it.
  • Distribute. Spread the chosen characters over a given number of characters (to 0.01), and distribute the text of a table cell.
  • Line spacing by the line pitch. Fractions of a line (1/4 to 3/4), several lines, or any amount.
  • Raise or lower characters by a given number of points.
  • Table cells: width and row height in millimetres, separate inner margins on each side, vertical text, distributed alignment, and the paragraph settings of the lines inside a cell. Each line of a cell can be aligned on its own.
  • A 1 pt rule.
  • Documents can be put in order within a category by dragging them. "Sort by date modified" puts the order back.
  • Ctrl+Enter inserts a page break.
  • A setting makes Enter in a table cell start a new paragraph, as in LibreOffice. By default it still breaks the line.
  • In the properties of a placed object, its position is given from the top-left corner of the paper.

Fixed

  • A table placed after a page break on page 2 could be pulled up to the top of that page when its size was changed.
  • Placing an object that pushes the text aside could move the objects below it further than the text moved, and they did not come back when it was removed.
  • After a page break, an object's space above was lost when the page before was full.
  • The outer margin of an object with text wrapped round it was cleared every time its properties were applied.
  • Text in a middle- or bottom-aligned cell of a ruled table sat about 0.4 mm too low.
  • A size typed into the toolbar could be replaced by the old size before Enter was pressed.
  • Setting the size of all the text in a cell that already had a size could break the cell apart (data loss).
  • "No border" on a cell was lost when the document was saved.
  • An object hanging over the left or right margin made the whole printout shrink, or was cut off.
  • Changing one paragraph setting could clear indents set earlier.
  • A table inserted from the table dialog could land at the top of the document.
  • Changing a column width in a table split across pages could halve the first part.
  • Pasting into an empty table cell added empty lines.
  • Pasting several paragraphs into a list item produced invalid HTML.
  • After drawing or erasing lines, clicking a cell could fail to put the cursor in it.
  • Typing after Enter in a page with a character grid could join the previous line.
  • Half-width katakana is converted to full width.
  • Clicking or right-clicking the border of a block frame, a box or a note took the paragraph inside it. Near the border, the frame itself is taken.
  • Right-clicking a row in the layer bar could offer "Frame properties" for a paragraph or a shape.
  • Closing a dialog could jump the page to another page.

Changed

  • The right-button menu says what each kind of alignment acts on: "Position of the …" moves the object itself, "Alignment of the text" aligns the lines inside it.
  • A shape has one name everywhere.
  • Wording follows Word's page setup: "Characters and lines", "Characters per line", "Lines per page", "Show the character grid".
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignaturehqC/Hgvy8Nw81/ZVvUL2KX0xesdpCVTn0uZZjesJI2fkfxFEsimTuho4UE69wsuQgHAjBNjO3zhBoMKbKXzcmW5P91VzwRO1AwI76F5v32RRyHyUa0/T18kdgMM7rmmGq5f1c+GzUrv+8Sv6yk1DiHfHkUkieExV20UKZXMPuASp+HDFdT0sDO6ef+Mdb8dJrTEdg41OVTUQXB1AWh//TRqiKxCRBYnbkMoI2QVU9u1DiPoaiodHtTsBy0kWIUR4KcC6jGpn+rOmBnv3YxUCBKP2paH94kEZX1CrS5h9BCsbXDlZXjXP83y/qtHWko4C9MjV42KfCHlXpkLPAi6VsIezVa2sPCSZx/+cSmitFvKtMkHZ/BEPh5+/6LtrgSOEJG1Pm0qqu/YfYxsNSTtGZ3lumlevcAPYcQLRnP3znvaSFy5I8Q0+pG02LSkX58gs9pvvDhZOnWJ6TOxzl9qrqEI78E3uRfa5fuD15b8lNBJ921XkZV0mPsH1qXPlndsmCsJYknS4VeaFSlipB0c8cqGc/pia35cW9ovSZgg+0J7wl7hRQB72H6coz7u2aBs4ckmbMKQxUFUyOKQQ961p+Z3IYKWFTFUpqTL6PXeyTzR62OArzUlDiSxEVXymn/2rfdA7+814JhBT9N09waRqtUH00FOANZjr3XVcBXP+ogs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.4
Release Details
UpdatedSept. 30, 2026, 4:04 p.m.
Changelog

Fixed

  • Copying part of a paragraph with Ctrl+C and pasting it into a paragraph with Ctrl+V made a new paragraph. The words now go in where the cursor is. Whole paragraphs, tables and other blocks pasted into the middle of a paragraph split it and stand between the two halves, instead of ending up inside it.
  • A paragraph set to "words to its right" (or left) that ran over several pages started its next part in the bottom margin of the page and ran across the page break. Each part now starts at the top of the next page's text area.
  • The page thumbnails could keep showing the layout from the middle of a re-pagination (a heading halfway down the wrong page, an empty last page) after the wrap of an object was changed. They are redrawn whenever the pages are laid out again.
  • "Fit to the column width" on a paragraph inside a block frame made it as wide as the page column, so it ran out of the right side of the frame. Inside a frame, a box, a note or a table cell it now fills the inside of that box.
  • Ctrl+Home and Ctrl+End go to the first and last words of the body text. They could put the cursor inside a shape placed elsewhere on the page.

Changed

  • Headings are spaced as in LibreOffice Writer: space above and below of 12/6 pt for Heading 1, 10/6, 7/6, 6/6, 6/3 and 3/3 pt for Headings 2 to 6, and single line height. The old spacing left about a line of empty space under every heading. Spacing set in the style dialog is kept.
  • Block frames, boxes and notes have no inner margin unless one is set: the text touches the frame, as in a word processor. The inner margin is set in the properties.
  • In the properties, the outer margins (top, bottom, left, right) and the inner margin are on the Placement tab together, named so that inside and outside can be told apart.
  • A frame is taken by clicking its border or just outside it. Inside the frame, a click goes to the words, even right next to the border.
  • Japanese: the block frame is called まとめ枠 again.

Removed

  • The dotted box drawn round the phrase at the cursor, and turning chosen words into a frame of their own. Documents that have such word frames get their words back as ordinary text when they are opened.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureCPxVuRD98VkEQD8XZ1WARQAh0btPA+UprBoyyP5vu3A9hYMNsofITBO+0YMKw2wXwcSKTdw4A03WOexEjbvGeKMZa/tkplYy1IYyJTQ09Nd9hhWibMuNSnBfYSmYWJAljCMDBRAylkLKw2Tw4rgkBGaccrqjXVAblbhWbDGYc0J/BBx3lSWT+N6SYKOxigQQuF6Fma85/BJ3IjQQgWqIy7FsQKqjymMYtMZ8GlDDK+tIqU4zfgDn70Y4Hbrpiw8TVUQ9TxLqLCTrx4QRGkTCPB/1hYDmMYVnNrTiZWrKDoQkz69WVs0lXFmiIhFZ/bZlHG0lSzjMwy/WV8LjqJgdleWSk1dkj0IzB/5KHtqk1cDNN3+MhILbnmwrEndMCsD9g2WyD02UnCjExX+tQEshjktfc/8YW+5aUvgMRzexC+uuzb+b8UKoWH1S28Jw64AyCB7sZXRhAibKLCE3XbVYdoo8IF+55FHrbOj7/SWx9k6/UZGj3eWl3npZaDb9GP60ch45UmtgCzwq27GUu5O1SGc6JbMo8p4rL73jCPZHiSWRtNGdX/eWlHqdu2IeWXeirGBit4tb0cqbvLzLjDHcUsFzercYQvySeJxbFHcGehmnQThtaLUAepv+B+8QHAoTMFwHdG4AT9PWS+Zn0gWdHyJP0CElMbV+ne9T2DSHqgE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.3
Release Details
UpdatedSept. 30, 2026, 8:42 a.m.
Changelog

Added

  • Settings → Unit for indents: pt (the default), mm or characters. The indent boxes in the paragraph properties are labelled and filled in that unit, and indents set there or on the ruler are written into the file in it. Characters are written as CSS em, so an indent of two characters stays two characters when the letters are made bigger.
  • Settings → Unit for the ruler: pt, px, mm, cm (the default, as before) or inches. The ruler is marked in that unit, and the indent and margin handles move 1 pt, 1 px, 1 mm, 1 cm or 0.1 inch at a time.
  • Settings → Show spaces (half-width, full-width and tabs), off by default. Half-width spaces are marked ·, full-width spaces □ and tabs →. The marks are drawn over the page only: nothing is written into the document, and they are neither saved nor printed.
  • Settings → Let the Delete key delete an object frame, off by default (see Changed).
  • The paragraph properties open on a new first tab, Indents and spacing: alignment, line height, space above and below, the left, right and first-line indents, and the page-break options. A paragraph's rule and shading stay on the Borders and Area tabs.

Changed

  • The ruler is a bar of its own under the toolbar, across the whole width, with its scale lined up with the paper. It follows zooming and scrolling.
  • The ruler follows the paragraph the caret is in. Inside a block frame, a text frame or a table cell, its white band and its zero are the inside of that box, and the handles stand on the paragraph's own indents. The page-margin handles are shown for the body text only. The indents shown are the ones in effect, including those that come from a style.
  • The indent handles keep the ordinary arrow pointer, so the pointer no longer hides the handle being grabbed.
  • Clicking or right-clicking a paragraph inside a block frame, a box or a note takes the paragraph, with its own toolbar and its own menu (paragraph properties). The frame itself is taken by clicking its edge, or its background outside the paragraphs.
  • Backspace never deletes a selected object. The Delete key deletes an object (a frame, text frame, picture, shape, table, line…) only when the new setting is on. The Delete item in the right-button menu and the delete button on the toolbar work as before.
  • The Paragraph settings… item is gone from the right-button menu: everything in it is on the Indents and spacing tab of the paragraph properties.

Fixed

  • A horizontal scrollbar appeared with no page to the right of the paper. The ruler's background band reached past the page area.
  • An empty paragraph left in the writing (layer 0) could be deleted from the toolbar but not from the layer bar's right-button menu. Both now follow one rule: the last paragraph can be deleted while other objects remain on the page, and is kept only when deleting it would leave nothing at all.
  • The ruler's first-line, left and right indent handles had no effect on a paragraph inside a frame: they were measured from the page margins, not from the box the paragraph is in.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureiL+2onHWy6zn78lm9lxgs3jS13vxeoL4Q++kWZPfUPocSWC9Kr6zK3wIbUN5kYZbyJKWRSD5U8PezfYzH+PoTY3ikfqf62+EAbrU61zT0cp9VPR82NGdVHXozGeU2cDt6MsVQY+MtKJsDXW7yxWDEgASLmBGc5Ks0ah2F6kTAWWh8KgByMnb1lwmux1A4pYwwZM559ZBdzOI40TPqnmJfeYCCoH431AdgksXtQSwaJ7KwD5dQc5Q3bKRpfXHX4ua2qmoNOew0pdIfuoJR6PxN8B0TM6y3VWW3BQLFwK1Z8flqA6/sg4tN9ZIgve0vJVUPgja1ixiWE00r2RVZe7G7CQSuz0ySEmBhe67mje3zTX8kKsov3m2YlWCtxBNAqvPZxpOiybshf/hayI4IOhVKbmazV8YWqcodhp6MIZyCW4dLWHBt+qmBnP93tycq1alvneCi4gyrLx7nbmnmmNRbpuYatdF0c+tLJdjZxCxwh5etlG3fzWcbY97t2sZ1nXID68R8qJFJpOMJdCRmsq9slcT/ndwjlL0LnPgygrdpgYi11EppTJ/Sh1Wr6t14PSFrpi9uy0w17VizXDHkkxV0AswAVXi67/SvICPy+SfHnma5lMqzBG/4xhJ6X+LXmBTlujFVNsMU0R0FpfVKjnAZewI5W1s9BHRsagfVN55sD8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.2
Release Details
UpdatedSept. 29, 2026, 3:09 p.m.
Changelog

Fixed

  • The right button on a category shows the category's own items only; the menu for writing (cut, paste, view…) came after them.

Added

  • Delete the category, from its right-button menu. Only an empty category can be deleted: one with documents in it says how many, and is kept until they are moved or deleted. The folder goes to Nextcloud's trash.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
Signatureiw6UI+ezyktuqvBRGuCa8rseR+8cfcLHEmbaywtrIdU2jz5QiT695Nrgi8S61OI5l9KtJmtex/fe/OlxS9RS6x+4/LKJbHvl5KCGtV+En3184pdw2OBgWVvAxRGhXxToKmj8u2ho2KgOHQxbTfOUnUQkCKmhrEYI34lDlsWtb8jtx7Vlk9fLl3+Fr7p2upFwv+HjgjvnlmvT/ANHA4oKCxLjI6qydbjq1bKwY7Qp5jEiWJLOQ+l1Wa9TQm6evYEAy3nfE/3IAbBKvOn8RnDJYmvjy4/J7qc3J9SpRwNgYyhCr7r9NuF1mk5JJlBfg1ulrDxXacVibDXoPURlTyiIkKGZx7m0srL9AC2ggZvyUxX5jFPOf/JtdL7NvrQ6mzwKkwOFOqp7RXc6i3guBqza6bqV4IggrbyYQDO+UKudV4/AlriDCuo45T6YD8lKM9rMRGXPi0zQYsMeTUhF4vlobHR7/ChE17CUonengQvPx1BLItv/7LDi24ZCaTlgqnZ2mQtk7JZz4FBx1RFFVPSwnhdZvnfkXfAReaTs502c6XiOcvLa24qKjXyR/SG3K086yS0pHPsgX64jOj18WGQ07oxHX4eOR5yAca0J3oX/SVHFY9OcAGPyLtndyySkWR+Pxs7D3Xk6yEGZPPMdqv6dhW+p9ZfAhsZHbj2Sxh99tTI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.1
Release Details
UpdatedSept. 29, 2026, 1:54 p.m.
Changelog

Fixed

  • Web preview shows the document as it is open in the editor, page by page, including changes not yet saved. It showed the file as saved, and a document saved by an earlier version had no page divisions: everything after the first page ran off the sheet.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureUKSIHhsy6i6Pp0kif/B965Lh5VMWGQkA0V42XAjQRZFYKF9bvU8jmz/B7oIx2OmVEklGOP88waWUOn69AOLzdhz4eWif/L4MQUgaEfFbcX6vOlWwVGCBwBqtyMpB7wLtBJ34qBEvcSyCrFZPhJzYOp//XfY0jZnzMozoq47p+pFgHaXGXZLqFLu2iNdp4V6Ceo7iG2dflxraFOfTSU5vjwppby3Chm0xDYQMMQRV+AgBtktwB5SqfwJZskj3ksPxa+Wl/nhs+v9sp8TPHcEM8jfBpieZxtmjekLRGspEZpwiNBqQcInL5YWf6P48kEYxedSPQ324S0xcBk3q7dpgsOzYBjzEcxe1SekOjm9bw7qILEruO6Mi5/Sh8r6q2cjmH7SeMUpCmYmgfWn+R4RHYszdcvdaMul5lrAvdRRJrV4SF2j/RnR/H4JqFteEvyLzxDHZBjjpFbNNrIjfHJbBZqSACRP2hV/apjA5tqFYAR+kEZkdNwPrmF9dQffWX4tePw5bXOsuMfxNonNhKs/uLPJtU4HAQ99pt221H5CJlro5jnH5umqZNSfWndAdntlxJ1uQqwooCIYa4s7hL0oC440x7hh2rAGJ0d395l3E4r+SRMiiwAs7iF9T5yTwNUvyboxwoHkc/EM93uUljOV2DJMHdIkKma3hyhJBigCUQVc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.0
Release Details
UpdatedSept. 29, 2026, 1:11 p.m.
Changelog

The first version. Everything below is new, because there was nothing before it.

Added

  • Documents are ordinary .html files in the user's own Nextcloud Files, saved complete with their stylesheet — no proprietary format, no import or export step.
  • Editing surface built on contenteditable with an editing engine of its own (Selection/Range), so the markup it writes stays clean: <strong>, <em>, <mark class="…"> and classes rather than editor litter.
  • Paper setup in millimetres: A3/A4/A5/B4/B5/Letter/Legal, portrait or landscape, four margins, serif or sans body, body size in points — written into the file as an @page rule.
  • Page guides on screen showing where each printed page ends.
  • Headings, quotations, preformatted text, bulleted and numbered lists, alignment and indentation, tables (three border styles, optional header row), callout boxes (rounded, square, dashed, tinted, side-bar note), horizontal rules and page breaks.
  • Highlighting in five colours, free text colour, emphasis dots, superscript, subscript and inline code.
  • Formulas as native MathML, with a starter palette and a live preview.
  • Undo and redo kept by the editor itself, with keyboard shortcuts.
  • Printing and PDF export through the browser, from an isolated copy of the file itself, so what prints is exactly what is stored.
  • Autosave, document duplication, renaming, deletion and download.
  • Readings over words (ruby), at half size, with room kept for them so they never sit on the line above, and brackets in the file for browsers that cannot draw them — 滅多(めった).
  • A frame too tall for the page it stands on carries its writing on into a frame of the same shape inside the next page, cut at the line rather than at the edge of the paper. The carried-on frame is ordinary markup, so the saved file prints the same way in any browser.
  • A frame placed by hand carries its writing on the same way, into a frame of its own inside the next page; and anything placed by hand keeps to one sheet, moving down to the next page rather than being printed cut in two by the edge of the paper. Where the writer put it is remembered, so it goes back as soon as the page has room for it again.
  • A blank page can be put in above or below any page, from the right button in the page bar.
  • The document's own stylesheet, written by hand: a CSS box in the styles dialogue for anything the boxes above it cannot say — the look of headings, lists, quotations and the rest. It goes into the file itself, so the page prints that way anywhere, and the editor shows it as it is typed.
  • The right button on a document in the list opens it, copies it, throws it away, or tells what it is: the file's name and where it is, its size, when it was last saved, the paper it is set on, and how much is written in it.
  • A running header and footer that really do repeat on every printed page: the writing is put in a table of one cell, which is the one thing a browser repeats across a page break, and each of them stands in a band of its own that the writing never runs into. What they say can carry the title of the document, its file name and the date and time it was saved, written in braces and filled in as the file is written.
  • A check over the document: what is wrong with the page that a writer cannot see by looking at it -- a thing drawn across the edge of the paper, words running under something that was told to part them, a frame holding more than it can show, a photograph heavy enough to make the file slow, a page with nothing on it. Each one says which page it is on and takes you there.
  • Versions kept beside the document: the state before each save is written to a file of its own in the same folder, named after the document with its extension replaced by a number -- 報告書.html keeps 報告書.#01, the newest, with the older ones shifting down as far as the writer allows (up to 99, ten by default, nought for none). They are plain HTML like everything else, so a version opens in any browser. A version is taken when the writer saves; the autosave can be made to take one too. They follow the document when it is renamed or moved to another category, and go with it when it is deleted. Putting one back keeps what was there as a version of its own, so that can be undone in turn.
  • A view of the raw HTML of the current document.
  • A layer bar and a page bar down the right. Every row of the layer bar can be dragged with the mouse: dropped on another row it joins that thing's layer, on a layer's heading it moves to that layer, and above or below them all it gets a layer of its own. Anything that is not standing on the paper moves through the document instead. The levels are renumbered from the bottom after every change, so they stay one apart with nothing empty in between. The two places to drop for a layer of one's own stay pinned at the top and the bottom of the bar, and the list scrolls itself when a row is held near either end, so they can be reached however long the list is. A dragged row travels with the pointer, and a place that would do nothing is greyed out with the reason written in it rather than quietly ignoring the drop. The numbers shown in the bar close up after a deletion, but only in what is shown: looking at the bar never rewrites the levels in the document, which would move things in the pile and change which of two overlapping things the writing flows around. A layer itself is dragged by its heading and everything on it moves together, and a new empty layer is made with the button in the bar's head and becomes real when the first thing is dropped into it. A thing drawn on the page has no level of its own; the bar shows it at the level the browser actually paints it, and writes the levels down the moment the writer moves something through the pile.
  • Categories down the left: a document can be filed in a folder inside the save folder, and the list shows one box per category — coloured as the writer likes, opening one at a time, with documents carried between them by dragging a row on to another box. A category is an ordinary folder, so the same filing is there in Files.
  • Sharing with other accounts on this server, from the right button on a document or on a category: Nextcloud's own sharing, to read or to write, taken back from either place. A shared category hands over everything filed in it, and everything filed in it afterwards; somebody who may write in one can put new documents in it as well. What others have shared arrives under their own name in the list.
  • Writing in one document at the same time as somebody else, in a shared mode that begins the moment a second person opens it. Every block of the document carries a name of its own; what is typed goes to the others in about a second without waiting for a save, through a fast lane held in Nextcloud's own cache and never written to disk. Their caret is drawn with their name on it, and the paragraph somebody is writing in is held against the other person -- the one case that cannot be merged is prevented rather than lost. The file is still saved the ordinary way, and a save that would land on top of somebody else's is merged instead of winning. No service of its own and nothing to install; a document nobody else has open does none of this.
  • A styles designer: the look of every heading, list, quotation, table cell and caption in the document set by hand rather than by writing CSS -- typeface, size, colour, letter spacing, weight, alignment, line height, indent, the space above and below, a fill, a border on any side and the mark in front of a list item -- with a sample of the writing above the controls that changes as they are moved. The CSS is still there, folded away at the foot of the dialogue, for anyone who would rather write it.
  • Emoji: the whole Unicode set in nine groups, searchable by name in the user's own language, put in at the caret. The character is what goes into the file, so it is drawn by whatever emoji font the reader's machine has.
  • Light and dark themes, chosen per user, and English and Japanese translations.

  • Standard and free placement. Standard placement follows the rules of HTML and keeps clear of the text and of other objects (above and below, text to the left or to the right, and on both sides with JavaScript); free placement puts an object anywhere with CSS, over other things. The default is a setting.

  • Tables that calculate: formulas as in LibreOffice Calc (33 functions, ; or , between arguments, Err:522 for a circle), a formula bar with a list of the functions and cells picked into the formula by pressing them, column letters and row numbers round a chosen table, and number formats written as format codes.
  • Cell properties in tabs as in Excel — number format, alignment, font, borders drawn edge by edge (none, outline, inside, all), fill — for a block of cells chosen by dragging; optimal row height and column width.
  • Twenty heading designs, drawn with CSS alone, in one colour for every heading.
  • Web preview: the saved document opened as a web page, its JavaScript running.
  • Page numbers ({page}, {pages}) in the running header and footer.

Fixed

  • The editor no longer draws a sheet the printer does not make. It counted sheets from the height of the whole column of writing; the printer counts by what fits in each page's own text area. When the writing ended a little past a fold -- one empty paragraph was enough -- the editor showed a blank last page that never printed. The count now follows the writing page by page, and a blank page put in on purpose still counts as a page.
  • Anything standing on the page shows its own box when it is clicked, wherever in the box the click lands. A list, a quotation or a heading placed by hand was not counted as an object at all, so clicking one gave the box of whatever paragraph lay behind it; and a click on the transparent part of any object -- a picture's corner, the empty half of a list -- fell through in the same way. What stands under the pointer is now what is taken hold of, the innermost first and the one drawn on top before the one drawn under.
  • A running header and footer that stand where they were asked to stand: in the paper's own margin, three millimetres clear of the writing, as deep as the writer chooses up to the margin less those three. They are written into the page's own margin boxes, so the printer repeats them on every page and counts the pages itself -- {page} and {pages} are the printer's counters, not words. They can be typed straight into the band on the first sheet, and shown on every page or on the first alone. The writing does not move by a hair for them: it begins where the margin says it does.
  • Words no longer run through an object that stands beside another. A real float in the same paragraph was counted as taking room from every line of it, so a second object further down was left with no room to be kept clear of, and the words walked straight through it. What a float takes is now counted only on the lines it actually stands on.
  • Setting a size on the words chosen inside a 文字枠 no longer changes the whole frame. Clicking the size box on the toolbar takes the selection away before the value is read; the last run of words chosen is now remembered and put back.
  • A 文字枠 asked to hold a list, a table or a picture becomes a frame that can hold blocks, keeping its place and its size. It used to be thrown away and its words left standing loose on the page.
  • Styling a word inside a block that carries that style no longer takes the block apart: a 文字枠 with a size of its own was pulled out of the document when the size of a few words in it was changed.
  • Opening a document no longer counts as writing it. Setting the paper of the document being opened was taken for a change made by the writer, so the file was saved a couple of seconds later and a version kept of it: a document nobody had touched grew a snapshot every time it was looked at.
  • A long document opens in seconds rather than in half a minute, and the keyboard is free while it does. A frame carried over page by page was laid out again by the browser after every cut -- the whole document, every time -- so a story of a hundred and twenty pages was laid out a hundred and twenty times. What is far below the page being cut is now lifted out while that page is measured and put back afterwards, the pages are counted from one reading instead of one for every page, and a frame that cannot be made to fit is not laid out again and again in the hope of a different answer. Opening 銀河鉄道の夜 (35 pages) went from 39 seconds to 2.5, and こころ (127 pages) from 38 seconds to 6.
  • A table taller than the page is now carried on to the next page, cut between its rows -- and where a single row is taller than the page, cell by cell, the lists and the tables inside it cut in the same way. It used to stay whole in one frame and run off the paper: the editor drew eight sheets where the printer made thirteen pages. A head row is repeated on the next page as the printer repeats it, unless it is a banner deep enough to cost a third of the page.
  • A document with a frame carried on to another page could come back twice as long. The carried-on frame wore the same name as the frame it carries on from, so the machinery that folds in another person's writing took it for that frame and wrote the whole of it over the last link of the chain. Every carried-on frame now has a name of its own.
  • A block cut across three pages or more is put back as the one block it was. The mark saying "this was cut" was taken off as soon as the second piece was joined, so the third stood on as a block of its own -- which is how a table grew a repeated head row at every pass.
  • A frame that stops short because the next row will not fit is left alone. It was read as half empty and laid out again, over and over, without ever settling.
  • A table standing in another table's cell kept being taken apart. Its header row was read as the outer table's, so at every opening one more row was lifted out of the inner table and put at the top of the outer one: a Wikipedia article came back in a different order every time it was read, for ever. The head is now looked for in the table itself and nowhere else.
  • A document no longer grows every time it is saved. Cutting a paragraph at the very edge of a link left the link behind with nothing in it; the next pass cut at the same place and left another beside it. Those empty shells are taken off as the cut is made.
  • The screen and the printout now agree, measured page by page against Chrome's own printing: a frame carried on to the next page kept a top margin on paper that the editor did not draw, and a thing placed by hand was allowed to hang into the bottom margin, where the printer cut it in two and put the lower part on a sheet of its own.
  • Objects that keep the words clear no longer fight when they stand together. The room an object holds is a float, and floats wider than the column together do not sit side by side -- the second drops below the first, where it holds nothing off anything. So the room is now cut to what the other things on that line leave: what another band wants, and what a floated object has already taken, measured to the edge of the writing rather than from its own width. Three and a half millimetres of that difference was enough to send a band below a floated arrow and let two lines run straight through the list beside it.
  • A thing put down by hand now stays where it was dropped. Its place is kept as a distance from the line it hangs on, measured down a column with no page gaps in it, while the editor draws a column with a gap at every fold; the conversion between the two was wrong for a thing whose page was not its line's page, so a formula dragged thirty millimetres up the page came to rest forty down. The answer is now measured after the fact and the difference taken out.
  • Room can be made for a thing that stands below the last line of its frame: it had nothing to hang from, kept the far end of the frame as its line, and room is only ever made below that line -- so the words simply ran through it.
  • Anything with no writing in it -- a formula, a picture, a rule, an empty shape -- is now picked up anywhere on it. Only the eight pixels of its edge would take hold before, which on a formula four millimetres tall meant it could not be moved at all. Things that hold words still keep to their edge, because a click in the middle of those has to put the caret in the writing.
  • A thing placed inside a frame stays in that frame when the page has to give it room, instead of being stood on the foot of the page outside the box.

  • An item of a list is put in one level with Tab and taken out again with Shift+Tab, and what that makes is a list inside a list -- the markers change with the level (a ring under a dot, a square under that), a numbered list counts in letters inside and in small roman numerals inside that, and the file written is an ordinary nested list that reads correctly anywhere. It used to add an indent to the item and leave the list flat.

  • The little pages in the preview bar are the pages themselves, made small, rather than a plan of grey boxes.
  • A frame that carries its writing on to the next page now makes the editor draw that page. It was drawn below the last sheet while the printer duly made a second page.

  • Deleting everything in a document leaves a plain paragraph to type on. What was left before was the first block's tag, so a document that began with a heading was wiped to an empty heading and everything typed next came out as a heading too.

  • What is written to a file is cleaned on the way out as well as on the way in. Everything arriving is checked -- what is opened, what is pasted, what somebody else writing in the document sends -- but a saved file is opened by a browser with nothing else around it, so a script or a handler that ever found its way into the writing would have been written into a page and run when it was opened.

Known limits

  • Vertical writing does not yet have the newest page fitting: frames that carry their writing on to the next page, and keeping a thing placed by hand on one sheet, are written for horizontal text so far.
  • Printing has been checked in Chromium only.
  • Writing together is by the paragraph, not by the letter: the paragraph somebody is writing in is held against the other person rather than the two being merged character by character.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureGCteIVIZRYMXc9EhJguTH2XtBEj0RpKOHjO5suClV+bCjRHE1vNoqfE7lcIP7atPrfPPAHrah8Pq99CRR/fWlccaq108kthpgQ9sEDZT/RI4IGShhE45pIvybmg5jyT8CNrXryc8bF3GrLSiWRzmHLkHPlmv6e+uTKd4tQZ7/sd6NM++QhAkWAQONC2nobRmUJ7AZstLMcS8X0vLDJuphd8TGOXvfZ57OzZ0IgieFrD475HKaxpjSwrM4oq6fOcwFXbvaAWwh1J1y2Jtj1oghIdK9TaPOFIV0CS1DfQZPz7wwZ1wDlJ7vK6NqknP3mzsPXlqSx/5gQloCsVkp0HeRIWNt19IWHWkUZL3IMsCxTVcu90vcdbnrdmBKGd0AmSozFq9CHO1Fq2Ai2teucnedOpfA9HveF5FIn6Qc20qV8nMNFeTG5KsjMB0xUuXWVt4vCutHiDI8QzuH0zwoFHvCY+FnkeY/UMIGmsrWiPIoIJO0qGB1LZDZyiyDmvTgVsabRPINEqadZdkp5N4dEMXMrYS5W7Zv487Q/7ajBfjPr6YwM/cQftRKvD0rrgfx9/9/NC9C6Zc2pBbjorP/CDISNasUa2a80MiCz7iQnmtUvTV7QR8OA+oY1JmVmG0YrZkAnMmbKuR5OkHZrr0hMtDs/LeSwZStli5bKo/+RxHw1k=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 34

EditBase 0.3.0
Release Details
UpdatedOct. 7, 2026, 11:02 p.m.
Changelog

Added

  • An AI assistant, through the AI-Hub app: a chat above the Pages and Layers bars that knows EditBase, changes the open document when asked (every change undoable with Ctrl+Z) and reads from the other apps of the series only as the administrator allows. Administration settings → EditBase → AI assistant: on or off, who may use it, what it may read, web search. Shown only when AI-Hub is installed.
  • The widths of the Preview bar and the Layer bar can be set in px or % (Settings → View).
  • Tooltips of their own on every button, so the pointer never hides the caption.
  • Bundled samples: body text 12 pt (US GSA Section 508 guidance), and "More apps from KTEC" gives each app a page of its own, AI-Hub included.
  • The AI conversation can be saved to Files as Markdown, as it stands or summed up by the AI (two small buttons in the assistant's head; AI-Hub/EditBase/ in the writer's Files). The conversation of each document lasts while the tab is open and the writer stays logged in: a reload goes on with it, a new tab or a new login starts afresh.

Changed

  • The toolbar follows LibreOffice, Microsoft Office and Ichitaro: text and paragraph formatting in a second row of the top bar; the left column holds Insert (page break, table of contents, header and footer, rules among it), Drawing and View; the "Page layout" menu is gone.
  • After a forced page break the paragraph's space above is kept, as in LibreOffice; at a natural page break it is dropped.

Fixed

  • Counts on the screen take the singular for one ("1 page", "1 Seite", "1 caractère"), in every language, through Nextcloud's plural forms.
  • An unedited bundled sample is recognised by its text, not its bytes, so one that was merely opened and saved is still replaced when a new version ships.
  • A page fold never cut inside a word across a line break.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureTElgSpvGffZlhAYfGfibKmKXoXLm4AmwUUpBCH2zJtJm9kkkA4X1FkSF3qNprG8iaq8tntGHT3XLlbxWac8Bmbi3wK5tPQ0F64EBJwwT0LgbikNYAaKT0lvnJiUOUoqmUC+a8KWTTGL6ghR++rjSImAQU/SGe4eU4GN95L0oAqRMACNicf/h4yWwUUifggi7YqeiaImUO/olsZWJSMCYePh0JcbpE8LcXe4USsvLgrH3deBN6SMoURst96TKgutj0w4rgIU1VjSROzaE6cc+1jJf3AIXLIqcb0rMlwCi3jH40fdJBdO/tV6xg53IBRs/xBsw5rgnFMuo6rAopwAHhgdI/idHnDu0KzCuyRubREzNLCJCoNq/UzNgRnM6Zhch4lHizR4yaqaxHh8LZibqJRdOA89igZevyFDihbmPlsslHVjHIKkiWKwlAomQQBKvJg6hS8Y8fbKwICxjPUAiCrTIQUjAF2xd+b8kzao1SnEep0bff+LGUfBtS0uNI3bZL3lDnnZAt1nLgch+quuQN5cQsL5g55cBcZ8bMM5uVr7ZFDFRy3oTQQd7JkyYr4DQHt2ZxdYmdiYlOqbM2a5Fr/P8DK0cvfW4D8qey3GZ2a23rhMY2srhVJgEBwRJ+HnBjOWIAsRjY/hP43daQT9oOCvbT3XByxaDwLjniWyRBko=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.2.0
Release Details
UpdatedOct. 2, 2026, 4:33 a.m.
Changelog

Built and checked by laying out five Japanese government forms (an employment conditions notice, a resignation certificate, a CV, a wage ledger and a staff register) and printing them over the original PDFs: the rules land within 0.5 mm of the originals and nearly all of the text within 0.5 mm.

Added

  • Characters and lines per page. A page can be set up by the number of characters per line and lines per page, or by the character and line pitch in millimetres (to 0.001 mm). The screen and the printout match, and half-width letters take half a cell. A grid can be shown on the page.
  • Ruling mode. Draw a table by dragging on the page grid; press Tab while dragging to add lines. Draw over a line to change its kind (thin, solid, medium, thick, double, dotted, dashed), or erase it. Also draws diagonal lines, arrows, round, square and curly brackets, and polylines. Drawn lines snap to the lines already there. A table drawn on empty lines or below the text goes into the text (it takes its room, and the text below moves down as its cells grow); the lines down to it are added for you, as with click-and-type.
  • Tab positions. Left, centred, right and decimal tabs per paragraph, measured from the left indent. Set them in the paragraph's Tabs tab in millimetres, or press the ruler to place one, drag it to move it and drag it off the ruler to remove it.
  • Distribute. Spread the chosen characters over a given number of characters (to 0.01), and distribute the text of a table cell.
  • Line spacing by the line pitch. Fractions of a line (1/4 to 3/4), several lines, or any amount.
  • Raise or lower characters by a given number of points.
  • Table cells: width and row height in millimetres, separate inner margins on each side, vertical text, distributed alignment, and the paragraph settings of the lines inside a cell. Each line of a cell can be aligned on its own.
  • A 1 pt rule.
  • Documents can be put in order within a category by dragging them. "Sort by date modified" puts the order back.
  • Ctrl+Enter inserts a page break.
  • A setting makes Enter in a table cell start a new paragraph, as in LibreOffice. By default it still breaks the line.
  • In the properties of a placed object, its position is given from the top-left corner of the paper.

Fixed

  • A table placed after a page break on page 2 could be pulled up to the top of that page when its size was changed.
  • Placing an object that pushes the text aside could move the objects below it further than the text moved, and they did not come back when it was removed.
  • After a page break, an object's space above was lost when the page before was full.
  • The outer margin of an object with text wrapped round it was cleared every time its properties were applied.
  • Text in a middle- or bottom-aligned cell of a ruled table sat about 0.4 mm too low.
  • A size typed into the toolbar could be replaced by the old size before Enter was pressed.
  • Setting the size of all the text in a cell that already had a size could break the cell apart (data loss).
  • "No border" on a cell was lost when the document was saved.
  • An object hanging over the left or right margin made the whole printout shrink, or was cut off.
  • Changing one paragraph setting could clear indents set earlier.
  • A table inserted from the table dialog could land at the top of the document.
  • Changing a column width in a table split across pages could halve the first part.
  • Pasting into an empty table cell added empty lines.
  • Pasting several paragraphs into a list item produced invalid HTML.
  • After drawing or erasing lines, clicking a cell could fail to put the cursor in it.
  • Typing after Enter in a page with a character grid could join the previous line.
  • Half-width katakana is converted to full width.
  • Clicking or right-clicking the border of a block frame, a box or a note took the paragraph inside it. Near the border, the frame itself is taken.
  • Right-clicking a row in the layer bar could offer "Frame properties" for a paragraph or a shape.
  • Closing a dialog could jump the page to another page.

Changed

  • The right-button menu says what each kind of alignment acts on: "Position of the …" moves the object itself, "Alignment of the text" aligns the lines inside it.
  • A shape has one name everywhere.
  • Wording follows Word's page setup: "Characters and lines", "Characters per line", "Lines per page", "Show the character grid".
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignaturehqC/Hgvy8Nw81/ZVvUL2KX0xesdpCVTn0uZZjesJI2fkfxFEsimTuho4UE69wsuQgHAjBNjO3zhBoMKbKXzcmW5P91VzwRO1AwI76F5v32RRyHyUa0/T18kdgMM7rmmGq5f1c+GzUrv+8Sv6yk1DiHfHkUkieExV20UKZXMPuASp+HDFdT0sDO6ef+Mdb8dJrTEdg41OVTUQXB1AWh//TRqiKxCRBYnbkMoI2QVU9u1DiPoaiodHtTsBy0kWIUR4KcC6jGpn+rOmBnv3YxUCBKP2paH94kEZX1CrS5h9BCsbXDlZXjXP83y/qtHWko4C9MjV42KfCHlXpkLPAi6VsIezVa2sPCSZx/+cSmitFvKtMkHZ/BEPh5+/6LtrgSOEJG1Pm0qqu/YfYxsNSTtGZ3lumlevcAPYcQLRnP3znvaSFy5I8Q0+pG02LSkX58gs9pvvDhZOnWJ6TOxzl9qrqEI78E3uRfa5fuD15b8lNBJ921XkZV0mPsH1qXPlndsmCsJYknS4VeaFSlipB0c8cqGc/pia35cW9ovSZgg+0J7wl7hRQB72H6coz7u2aBs4ckmbMKQxUFUyOKQQ961p+Z3IYKWFTFUpqTL6PXeyTzR62OArzUlDiSxEVXymn/2rfdA7+814JhBT9N09waRqtUH00FOANZjr3XVcBXP+ogs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.4
Release Details
UpdatedSept. 30, 2026, 4:04 p.m.
Changelog

Fixed

  • Copying part of a paragraph with Ctrl+C and pasting it into a paragraph with Ctrl+V made a new paragraph. The words now go in where the cursor is. Whole paragraphs, tables and other blocks pasted into the middle of a paragraph split it and stand between the two halves, instead of ending up inside it.
  • A paragraph set to "words to its right" (or left) that ran over several pages started its next part in the bottom margin of the page and ran across the page break. Each part now starts at the top of the next page's text area.
  • The page thumbnails could keep showing the layout from the middle of a re-pagination (a heading halfway down the wrong page, an empty last page) after the wrap of an object was changed. They are redrawn whenever the pages are laid out again.
  • "Fit to the column width" on a paragraph inside a block frame made it as wide as the page column, so it ran out of the right side of the frame. Inside a frame, a box, a note or a table cell it now fills the inside of that box.
  • Ctrl+Home and Ctrl+End go to the first and last words of the body text. They could put the cursor inside a shape placed elsewhere on the page.

Changed

  • Headings are spaced as in LibreOffice Writer: space above and below of 12/6 pt for Heading 1, 10/6, 7/6, 6/6, 6/3 and 3/3 pt for Headings 2 to 6, and single line height. The old spacing left about a line of empty space under every heading. Spacing set in the style dialog is kept.
  • Block frames, boxes and notes have no inner margin unless one is set: the text touches the frame, as in a word processor. The inner margin is set in the properties.
  • In the properties, the outer margins (top, bottom, left, right) and the inner margin are on the Placement tab together, named so that inside and outside can be told apart.
  • A frame is taken by clicking its border or just outside it. Inside the frame, a click goes to the words, even right next to the border.
  • Japanese: the block frame is called まとめ枠 again.

Removed

  • The dotted box drawn round the phrase at the cursor, and turning chosen words into a frame of their own. Documents that have such word frames get their words back as ordinary text when they are opened.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureCPxVuRD98VkEQD8XZ1WARQAh0btPA+UprBoyyP5vu3A9hYMNsofITBO+0YMKw2wXwcSKTdw4A03WOexEjbvGeKMZa/tkplYy1IYyJTQ09Nd9hhWibMuNSnBfYSmYWJAljCMDBRAylkLKw2Tw4rgkBGaccrqjXVAblbhWbDGYc0J/BBx3lSWT+N6SYKOxigQQuF6Fma85/BJ3IjQQgWqIy7FsQKqjymMYtMZ8GlDDK+tIqU4zfgDn70Y4Hbrpiw8TVUQ9TxLqLCTrx4QRGkTCPB/1hYDmMYVnNrTiZWrKDoQkz69WVs0lXFmiIhFZ/bZlHG0lSzjMwy/WV8LjqJgdleWSk1dkj0IzB/5KHtqk1cDNN3+MhILbnmwrEndMCsD9g2WyD02UnCjExX+tQEshjktfc/8YW+5aUvgMRzexC+uuzb+b8UKoWH1S28Jw64AyCB7sZXRhAibKLCE3XbVYdoo8IF+55FHrbOj7/SWx9k6/UZGj3eWl3npZaDb9GP60ch45UmtgCzwq27GUu5O1SGc6JbMo8p4rL73jCPZHiSWRtNGdX/eWlHqdu2IeWXeirGBit4tb0cqbvLzLjDHcUsFzercYQvySeJxbFHcGehmnQThtaLUAepv+B+8QHAoTMFwHdG4AT9PWS+Zn0gWdHyJP0CElMbV+ne9T2DSHqgE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.3
Release Details
UpdatedSept. 30, 2026, 8:42 a.m.
Changelog

Added

  • Settings → Unit for indents: pt (the default), mm or characters. The indent boxes in the paragraph properties are labelled and filled in that unit, and indents set there or on the ruler are written into the file in it. Characters are written as CSS em, so an indent of two characters stays two characters when the letters are made bigger.
  • Settings → Unit for the ruler: pt, px, mm, cm (the default, as before) or inches. The ruler is marked in that unit, and the indent and margin handles move 1 pt, 1 px, 1 mm, 1 cm or 0.1 inch at a time.
  • Settings → Show spaces (half-width, full-width and tabs), off by default. Half-width spaces are marked ·, full-width spaces □ and tabs →. The marks are drawn over the page only: nothing is written into the document, and they are neither saved nor printed.
  • Settings → Let the Delete key delete an object frame, off by default (see Changed).
  • The paragraph properties open on a new first tab, Indents and spacing: alignment, line height, space above and below, the left, right and first-line indents, and the page-break options. A paragraph's rule and shading stay on the Borders and Area tabs.

Changed

  • The ruler is a bar of its own under the toolbar, across the whole width, with its scale lined up with the paper. It follows zooming and scrolling.
  • The ruler follows the paragraph the caret is in. Inside a block frame, a text frame or a table cell, its white band and its zero are the inside of that box, and the handles stand on the paragraph's own indents. The page-margin handles are shown for the body text only. The indents shown are the ones in effect, including those that come from a style.
  • The indent handles keep the ordinary arrow pointer, so the pointer no longer hides the handle being grabbed.
  • Clicking or right-clicking a paragraph inside a block frame, a box or a note takes the paragraph, with its own toolbar and its own menu (paragraph properties). The frame itself is taken by clicking its edge, or its background outside the paragraphs.
  • Backspace never deletes a selected object. The Delete key deletes an object (a frame, text frame, picture, shape, table, line…) only when the new setting is on. The Delete item in the right-button menu and the delete button on the toolbar work as before.
  • The Paragraph settings… item is gone from the right-button menu: everything in it is on the Indents and spacing tab of the paragraph properties.

Fixed

  • A horizontal scrollbar appeared with no page to the right of the paper. The ruler's background band reached past the page area.
  • An empty paragraph left in the writing (layer 0) could be deleted from the toolbar but not from the layer bar's right-button menu. Both now follow one rule: the last paragraph can be deleted while other objects remain on the page, and is kept only when deleting it would leave nothing at all.
  • The ruler's first-line, left and right indent handles had no effect on a paragraph inside a frame: they were measured from the page margins, not from the box the paragraph is in.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureiL+2onHWy6zn78lm9lxgs3jS13vxeoL4Q++kWZPfUPocSWC9Kr6zK3wIbUN5kYZbyJKWRSD5U8PezfYzH+PoTY3ikfqf62+EAbrU61zT0cp9VPR82NGdVHXozGeU2cDt6MsVQY+MtKJsDXW7yxWDEgASLmBGc5Ks0ah2F6kTAWWh8KgByMnb1lwmux1A4pYwwZM559ZBdzOI40TPqnmJfeYCCoH431AdgksXtQSwaJ7KwD5dQc5Q3bKRpfXHX4ua2qmoNOew0pdIfuoJR6PxN8B0TM6y3VWW3BQLFwK1Z8flqA6/sg4tN9ZIgve0vJVUPgja1ixiWE00r2RVZe7G7CQSuz0ySEmBhe67mje3zTX8kKsov3m2YlWCtxBNAqvPZxpOiybshf/hayI4IOhVKbmazV8YWqcodhp6MIZyCW4dLWHBt+qmBnP93tycq1alvneCi4gyrLx7nbmnmmNRbpuYatdF0c+tLJdjZxCxwh5etlG3fzWcbY97t2sZ1nXID68R8qJFJpOMJdCRmsq9slcT/ndwjlL0LnPgygrdpgYi11EppTJ/Sh1Wr6t14PSFrpi9uy0w17VizXDHkkxV0AswAVXi67/SvICPy+SfHnma5lMqzBG/4xhJ6X+LXmBTlujFVNsMU0R0FpfVKjnAZewI5W1s9BHRsagfVN55sD8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.2
Release Details
UpdatedSept. 29, 2026, 3:09 p.m.
Changelog

Fixed

  • The right button on a category shows the category's own items only; the menu for writing (cut, paste, view…) came after them.

Added

  • Delete the category, from its right-button menu. Only an empty category can be deleted: one with documents in it says how many, and is kept until they are moved or deleted. The folder goes to Nextcloud's trash.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
Signatureiw6UI+ezyktuqvBRGuCa8rseR+8cfcLHEmbaywtrIdU2jz5QiT695Nrgi8S61OI5l9KtJmtex/fe/OlxS9RS6x+4/LKJbHvl5KCGtV+En3184pdw2OBgWVvAxRGhXxToKmj8u2ho2KgOHQxbTfOUnUQkCKmhrEYI34lDlsWtb8jtx7Vlk9fLl3+Fr7p2upFwv+HjgjvnlmvT/ANHA4oKCxLjI6qydbjq1bKwY7Qp5jEiWJLOQ+l1Wa9TQm6evYEAy3nfE/3IAbBKvOn8RnDJYmvjy4/J7qc3J9SpRwNgYyhCr7r9NuF1mk5JJlBfg1ulrDxXacVibDXoPURlTyiIkKGZx7m0srL9AC2ggZvyUxX5jFPOf/JtdL7NvrQ6mzwKkwOFOqp7RXc6i3guBqza6bqV4IggrbyYQDO+UKudV4/AlriDCuo45T6YD8lKM9rMRGXPi0zQYsMeTUhF4vlobHR7/ChE17CUonengQvPx1BLItv/7LDi24ZCaTlgqnZ2mQtk7JZz4FBx1RFFVPSwnhdZvnfkXfAReaTs502c6XiOcvLa24qKjXyR/SG3K086yS0pHPsgX64jOj18WGQ07oxHX4eOR5yAca0J3oX/SVHFY9OcAGPyLtndyySkWR+Pxs7D3Xk6yEGZPPMdqv6dhW+p9ZfAhsZHbj2Sxh99tTI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.1
Release Details
UpdatedSept. 29, 2026, 1:54 p.m.
Changelog

Fixed

  • Web preview shows the document as it is open in the editor, page by page, including changes not yet saved. It showed the file as saved, and a document saved by an earlier version had no page divisions: everything after the first page ran off the sheet.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureUKSIHhsy6i6Pp0kif/B965Lh5VMWGQkA0V42XAjQRZFYKF9bvU8jmz/B7oIx2OmVEklGOP88waWUOn69AOLzdhz4eWif/L4MQUgaEfFbcX6vOlWwVGCBwBqtyMpB7wLtBJ34qBEvcSyCrFZPhJzYOp//XfY0jZnzMozoq47p+pFgHaXGXZLqFLu2iNdp4V6Ceo7iG2dflxraFOfTSU5vjwppby3Chm0xDYQMMQRV+AgBtktwB5SqfwJZskj3ksPxa+Wl/nhs+v9sp8TPHcEM8jfBpieZxtmjekLRGspEZpwiNBqQcInL5YWf6P48kEYxedSPQ324S0xcBk3q7dpgsOzYBjzEcxe1SekOjm9bw7qILEruO6Mi5/Sh8r6q2cjmH7SeMUpCmYmgfWn+R4RHYszdcvdaMul5lrAvdRRJrV4SF2j/RnR/H4JqFteEvyLzxDHZBjjpFbNNrIjfHJbBZqSACRP2hV/apjA5tqFYAR+kEZkdNwPrmF9dQffWX4tePw5bXOsuMfxNonNhKs/uLPJtU4HAQ99pt221H5CJlro5jnH5umqZNSfWndAdntlxJ1uQqwooCIYa4s7hL0oC440x7hh2rAGJ0d395l3E4r+SRMiiwAs7iF9T5yTwNUvyboxwoHkc/EM93uUljOV2DJMHdIkKma3hyhJBigCUQVc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.0
Release Details
UpdatedSept. 29, 2026, 1:11 p.m.
Changelog

The first version. Everything below is new, because there was nothing before it.

Added

  • Documents are ordinary .html files in the user's own Nextcloud Files, saved complete with their stylesheet — no proprietary format, no import or export step.
  • Editing surface built on contenteditable with an editing engine of its own (Selection/Range), so the markup it writes stays clean: <strong>, <em>, <mark class="…"> and classes rather than editor litter.
  • Paper setup in millimetres: A3/A4/A5/B4/B5/Letter/Legal, portrait or landscape, four margins, serif or sans body, body size in points — written into the file as an @page rule.
  • Page guides on screen showing where each printed page ends.
  • Headings, quotations, preformatted text, bulleted and numbered lists, alignment and indentation, tables (three border styles, optional header row), callout boxes (rounded, square, dashed, tinted, side-bar note), horizontal rules and page breaks.
  • Highlighting in five colours, free text colour, emphasis dots, superscript, subscript and inline code.
  • Formulas as native MathML, with a starter palette and a live preview.
  • Undo and redo kept by the editor itself, with keyboard shortcuts.
  • Printing and PDF export through the browser, from an isolated copy of the file itself, so what prints is exactly what is stored.
  • Autosave, document duplication, renaming, deletion and download.
  • Readings over words (ruby), at half size, with room kept for them so they never sit on the line above, and brackets in the file for browsers that cannot draw them — 滅多(めった).
  • A frame too tall for the page it stands on carries its writing on into a frame of the same shape inside the next page, cut at the line rather than at the edge of the paper. The carried-on frame is ordinary markup, so the saved file prints the same way in any browser.
  • A frame placed by hand carries its writing on the same way, into a frame of its own inside the next page; and anything placed by hand keeps to one sheet, moving down to the next page rather than being printed cut in two by the edge of the paper. Where the writer put it is remembered, so it goes back as soon as the page has room for it again.
  • A blank page can be put in above or below any page, from the right button in the page bar.
  • The document's own stylesheet, written by hand: a CSS box in the styles dialogue for anything the boxes above it cannot say — the look of headings, lists, quotations and the rest. It goes into the file itself, so the page prints that way anywhere, and the editor shows it as it is typed.
  • The right button on a document in the list opens it, copies it, throws it away, or tells what it is: the file's name and where it is, its size, when it was last saved, the paper it is set on, and how much is written in it.
  • A running header and footer that really do repeat on every printed page: the writing is put in a table of one cell, which is the one thing a browser repeats across a page break, and each of them stands in a band of its own that the writing never runs into. What they say can carry the title of the document, its file name and the date and time it was saved, written in braces and filled in as the file is written.
  • A check over the document: what is wrong with the page that a writer cannot see by looking at it -- a thing drawn across the edge of the paper, words running under something that was told to part them, a frame holding more than it can show, a photograph heavy enough to make the file slow, a page with nothing on it. Each one says which page it is on and takes you there.
  • Versions kept beside the document: the state before each save is written to a file of its own in the same folder, named after the document with its extension replaced by a number -- 報告書.html keeps 報告書.#01, the newest, with the older ones shifting down as far as the writer allows (up to 99, ten by default, nought for none). They are plain HTML like everything else, so a version opens in any browser. A version is taken when the writer saves; the autosave can be made to take one too. They follow the document when it is renamed or moved to another category, and go with it when it is deleted. Putting one back keeps what was there as a version of its own, so that can be undone in turn.
  • A view of the raw HTML of the current document.
  • A layer bar and a page bar down the right. Every row of the layer bar can be dragged with the mouse: dropped on another row it joins that thing's layer, on a layer's heading it moves to that layer, and above or below them all it gets a layer of its own. Anything that is not standing on the paper moves through the document instead. The levels are renumbered from the bottom after every change, so they stay one apart with nothing empty in between. The two places to drop for a layer of one's own stay pinned at the top and the bottom of the bar, and the list scrolls itself when a row is held near either end, so they can be reached however long the list is. A dragged row travels with the pointer, and a place that would do nothing is greyed out with the reason written in it rather than quietly ignoring the drop. The numbers shown in the bar close up after a deletion, but only in what is shown: looking at the bar never rewrites the levels in the document, which would move things in the pile and change which of two overlapping things the writing flows around. A layer itself is dragged by its heading and everything on it moves together, and a new empty layer is made with the button in the bar's head and becomes real when the first thing is dropped into it. A thing drawn on the page has no level of its own; the bar shows it at the level the browser actually paints it, and writes the levels down the moment the writer moves something through the pile.
  • Categories down the left: a document can be filed in a folder inside the save folder, and the list shows one box per category — coloured as the writer likes, opening one at a time, with documents carried between them by dragging a row on to another box. A category is an ordinary folder, so the same filing is there in Files.
  • Sharing with other accounts on this server, from the right button on a document or on a category: Nextcloud's own sharing, to read or to write, taken back from either place. A shared category hands over everything filed in it, and everything filed in it afterwards; somebody who may write in one can put new documents in it as well. What others have shared arrives under their own name in the list.
  • Writing in one document at the same time as somebody else, in a shared mode that begins the moment a second person opens it. Every block of the document carries a name of its own; what is typed goes to the others in about a second without waiting for a save, through a fast lane held in Nextcloud's own cache and never written to disk. Their caret is drawn with their name on it, and the paragraph somebody is writing in is held against the other person -- the one case that cannot be merged is prevented rather than lost. The file is still saved the ordinary way, and a save that would land on top of somebody else's is merged instead of winning. No service of its own and nothing to install; a document nobody else has open does none of this.
  • A styles designer: the look of every heading, list, quotation, table cell and caption in the document set by hand rather than by writing CSS -- typeface, size, colour, letter spacing, weight, alignment, line height, indent, the space above and below, a fill, a border on any side and the mark in front of a list item -- with a sample of the writing above the controls that changes as they are moved. The CSS is still there, folded away at the foot of the dialogue, for anyone who would rather write it.
  • Emoji: the whole Unicode set in nine groups, searchable by name in the user's own language, put in at the caret. The character is what goes into the file, so it is drawn by whatever emoji font the reader's machine has.
  • Light and dark themes, chosen per user, and English and Japanese translations.

  • Standard and free placement. Standard placement follows the rules of HTML and keeps clear of the text and of other objects (above and below, text to the left or to the right, and on both sides with JavaScript); free placement puts an object anywhere with CSS, over other things. The default is a setting.

  • Tables that calculate: formulas as in LibreOffice Calc (33 functions, ; or , between arguments, Err:522 for a circle), a formula bar with a list of the functions and cells picked into the formula by pressing them, column letters and row numbers round a chosen table, and number formats written as format codes.
  • Cell properties in tabs as in Excel — number format, alignment, font, borders drawn edge by edge (none, outline, inside, all), fill — for a block of cells chosen by dragging; optimal row height and column width.
  • Twenty heading designs, drawn with CSS alone, in one colour for every heading.
  • Web preview: the saved document opened as a web page, its JavaScript running.
  • Page numbers ({page}, {pages}) in the running header and footer.

Fixed

  • The editor no longer draws a sheet the printer does not make. It counted sheets from the height of the whole column of writing; the printer counts by what fits in each page's own text area. When the writing ended a little past a fold -- one empty paragraph was enough -- the editor showed a blank last page that never printed. The count now follows the writing page by page, and a blank page put in on purpose still counts as a page.
  • Anything standing on the page shows its own box when it is clicked, wherever in the box the click lands. A list, a quotation or a heading placed by hand was not counted as an object at all, so clicking one gave the box of whatever paragraph lay behind it; and a click on the transparent part of any object -- a picture's corner, the empty half of a list -- fell through in the same way. What stands under the pointer is now what is taken hold of, the innermost first and the one drawn on top before the one drawn under.
  • A running header and footer that stand where they were asked to stand: in the paper's own margin, three millimetres clear of the writing, as deep as the writer chooses up to the margin less those three. They are written into the page's own margin boxes, so the printer repeats them on every page and counts the pages itself -- {page} and {pages} are the printer's counters, not words. They can be typed straight into the band on the first sheet, and shown on every page or on the first alone. The writing does not move by a hair for them: it begins where the margin says it does.
  • Words no longer run through an object that stands beside another. A real float in the same paragraph was counted as taking room from every line of it, so a second object further down was left with no room to be kept clear of, and the words walked straight through it. What a float takes is now counted only on the lines it actually stands on.
  • Setting a size on the words chosen inside a 文字枠 no longer changes the whole frame. Clicking the size box on the toolbar takes the selection away before the value is read; the last run of words chosen is now remembered and put back.
  • A 文字枠 asked to hold a list, a table or a picture becomes a frame that can hold blocks, keeping its place and its size. It used to be thrown away and its words left standing loose on the page.
  • Styling a word inside a block that carries that style no longer takes the block apart: a 文字枠 with a size of its own was pulled out of the document when the size of a few words in it was changed.
  • Opening a document no longer counts as writing it. Setting the paper of the document being opened was taken for a change made by the writer, so the file was saved a couple of seconds later and a version kept of it: a document nobody had touched grew a snapshot every time it was looked at.
  • A long document opens in seconds rather than in half a minute, and the keyboard is free while it does. A frame carried over page by page was laid out again by the browser after every cut -- the whole document, every time -- so a story of a hundred and twenty pages was laid out a hundred and twenty times. What is far below the page being cut is now lifted out while that page is measured and put back afterwards, the pages are counted from one reading instead of one for every page, and a frame that cannot be made to fit is not laid out again and again in the hope of a different answer. Opening 銀河鉄道の夜 (35 pages) went from 39 seconds to 2.5, and こころ (127 pages) from 38 seconds to 6.
  • A table taller than the page is now carried on to the next page, cut between its rows -- and where a single row is taller than the page, cell by cell, the lists and the tables inside it cut in the same way. It used to stay whole in one frame and run off the paper: the editor drew eight sheets where the printer made thirteen pages. A head row is repeated on the next page as the printer repeats it, unless it is a banner deep enough to cost a third of the page.
  • A document with a frame carried on to another page could come back twice as long. The carried-on frame wore the same name as the frame it carries on from, so the machinery that folds in another person's writing took it for that frame and wrote the whole of it over the last link of the chain. Every carried-on frame now has a name of its own.
  • A block cut across three pages or more is put back as the one block it was. The mark saying "this was cut" was taken off as soon as the second piece was joined, so the third stood on as a block of its own -- which is how a table grew a repeated head row at every pass.
  • A frame that stops short because the next row will not fit is left alone. It was read as half empty and laid out again, over and over, without ever settling.
  • A table standing in another table's cell kept being taken apart. Its header row was read as the outer table's, so at every opening one more row was lifted out of the inner table and put at the top of the outer one: a Wikipedia article came back in a different order every time it was read, for ever. The head is now looked for in the table itself and nowhere else.
  • A document no longer grows every time it is saved. Cutting a paragraph at the very edge of a link left the link behind with nothing in it; the next pass cut at the same place and left another beside it. Those empty shells are taken off as the cut is made.
  • The screen and the printout now agree, measured page by page against Chrome's own printing: a frame carried on to the next page kept a top margin on paper that the editor did not draw, and a thing placed by hand was allowed to hang into the bottom margin, where the printer cut it in two and put the lower part on a sheet of its own.
  • Objects that keep the words clear no longer fight when they stand together. The room an object holds is a float, and floats wider than the column together do not sit side by side -- the second drops below the first, where it holds nothing off anything. So the room is now cut to what the other things on that line leave: what another band wants, and what a floated object has already taken, measured to the edge of the writing rather than from its own width. Three and a half millimetres of that difference was enough to send a band below a floated arrow and let two lines run straight through the list beside it.
  • A thing put down by hand now stays where it was dropped. Its place is kept as a distance from the line it hangs on, measured down a column with no page gaps in it, while the editor draws a column with a gap at every fold; the conversion between the two was wrong for a thing whose page was not its line's page, so a formula dragged thirty millimetres up the page came to rest forty down. The answer is now measured after the fact and the difference taken out.
  • Room can be made for a thing that stands below the last line of its frame: it had nothing to hang from, kept the far end of the frame as its line, and room is only ever made below that line -- so the words simply ran through it.
  • Anything with no writing in it -- a formula, a picture, a rule, an empty shape -- is now picked up anywhere on it. Only the eight pixels of its edge would take hold before, which on a formula four millimetres tall meant it could not be moved at all. Things that hold words still keep to their edge, because a click in the middle of those has to put the caret in the writing.
  • A thing placed inside a frame stays in that frame when the page has to give it room, instead of being stood on the foot of the page outside the box.

  • An item of a list is put in one level with Tab and taken out again with Shift+Tab, and what that makes is a list inside a list -- the markers change with the level (a ring under a dot, a square under that), a numbered list counts in letters inside and in small roman numerals inside that, and the file written is an ordinary nested list that reads correctly anywhere. It used to add an indent to the item and leave the list flat.

  • The little pages in the preview bar are the pages themselves, made small, rather than a plan of grey boxes.
  • A frame that carries its writing on to the next page now makes the editor draw that page. It was drawn below the last sheet while the printer duly made a second page.

  • Deleting everything in a document leaves a plain paragraph to type on. What was left before was the first block's tag, so a document that began with a heading was wiped to an empty heading and everything typed next came out as a heading too.

  • What is written to a file is cleaned on the way out as well as on the way in. Everything arriving is checked -- what is opened, what is pasted, what somebody else writing in the document sends -- but a saved file is opened by a browser with nothing else around it, so a script or a handler that ever found its way into the writing would have been written into a page and run when it was opened.

Known limits

  • Vertical writing does not yet have the newest page fitting: frames that carry their writing on to the next page, and keeping a thing placed by hand on one sheet, are written for horizontal text so far.
  • Printing has been checked in Chromium only.
  • Writing together is by the paragraph, not by the letter: the paragraph somebody is writing in is held against the other person rather than the two being merged character by character.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureGCteIVIZRYMXc9EhJguTH2XtBEj0RpKOHjO5suClV+bCjRHE1vNoqfE7lcIP7atPrfPPAHrah8Pq99CRR/fWlccaq108kthpgQ9sEDZT/RI4IGShhE45pIvybmg5jyT8CNrXryc8bF3GrLSiWRzmHLkHPlmv6e+uTKd4tQZ7/sd6NM++QhAkWAQONC2nobRmUJ7AZstLMcS8X0vLDJuphd8TGOXvfZ57OzZ0IgieFrD475HKaxpjSwrM4oq6fOcwFXbvaAWwh1J1y2Jtj1oghIdK9TaPOFIV0CS1DfQZPz7wwZ1wDlJ7vK6NqknP3mzsPXlqSx/5gQloCsVkp0HeRIWNt19IWHWkUZL3IMsCxTVcu90vcdbnrdmBKGd0AmSozFq9CHO1Fq2Ai2teucnedOpfA9HveF5FIn6Qc20qV8nMNFeTG5KsjMB0xUuXWVt4vCutHiDI8QzuH0zwoFHvCY+FnkeY/UMIGmsrWiPIoIJO0qGB1LZDZyiyDmvTgVsabRPINEqadZdkp5N4dEMXMrYS5W7Zv487Q/7ajBfjPr6YwM/cQftRKvD0rrgfx9/9/NC9C6Zc2pBbjorP/CDISNasUa2a80MiCz7iQnmtUvTV7QR8OA+oY1JmVmG0YrZkAnMmbKuR5OkHZrr0hMtDs/LeSwZStli5bKo/+RxHw1k=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 33

EditBase 0.3.0
Release Details
UpdatedOct. 7, 2026, 11:02 p.m.
Changelog

Added

  • An AI assistant, through the AI-Hub app: a chat above the Pages and Layers bars that knows EditBase, changes the open document when asked (every change undoable with Ctrl+Z) and reads from the other apps of the series only as the administrator allows. Administration settings → EditBase → AI assistant: on or off, who may use it, what it may read, web search. Shown only when AI-Hub is installed.
  • The widths of the Preview bar and the Layer bar can be set in px or % (Settings → View).
  • Tooltips of their own on every button, so the pointer never hides the caption.
  • Bundled samples: body text 12 pt (US GSA Section 508 guidance), and "More apps from KTEC" gives each app a page of its own, AI-Hub included.
  • The AI conversation can be saved to Files as Markdown, as it stands or summed up by the AI (two small buttons in the assistant's head; AI-Hub/EditBase/ in the writer's Files). The conversation of each document lasts while the tab is open and the writer stays logged in: a reload goes on with it, a new tab or a new login starts afresh.

Changed

  • The toolbar follows LibreOffice, Microsoft Office and Ichitaro: text and paragraph formatting in a second row of the top bar; the left column holds Insert (page break, table of contents, header and footer, rules among it), Drawing and View; the "Page layout" menu is gone.
  • After a forced page break the paragraph's space above is kept, as in LibreOffice; at a natural page break it is dropped.

Fixed

  • Counts on the screen take the singular for one ("1 page", "1 Seite", "1 caractère"), in every language, through Nextcloud's plural forms.
  • An unedited bundled sample is recognised by its text, not its bytes, so one that was merely opened and saved is still replaced when a new version ships.
  • A page fold never cut inside a word across a line break.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureTElgSpvGffZlhAYfGfibKmKXoXLm4AmwUUpBCH2zJtJm9kkkA4X1FkSF3qNprG8iaq8tntGHT3XLlbxWac8Bmbi3wK5tPQ0F64EBJwwT0LgbikNYAaKT0lvnJiUOUoqmUC+a8KWTTGL6ghR++rjSImAQU/SGe4eU4GN95L0oAqRMACNicf/h4yWwUUifggi7YqeiaImUO/olsZWJSMCYePh0JcbpE8LcXe4USsvLgrH3deBN6SMoURst96TKgutj0w4rgIU1VjSROzaE6cc+1jJf3AIXLIqcb0rMlwCi3jH40fdJBdO/tV6xg53IBRs/xBsw5rgnFMuo6rAopwAHhgdI/idHnDu0KzCuyRubREzNLCJCoNq/UzNgRnM6Zhch4lHizR4yaqaxHh8LZibqJRdOA89igZevyFDihbmPlsslHVjHIKkiWKwlAomQQBKvJg6hS8Y8fbKwICxjPUAiCrTIQUjAF2xd+b8kzao1SnEep0bff+LGUfBtS0uNI3bZL3lDnnZAt1nLgch+quuQN5cQsL5g55cBcZ8bMM5uVr7ZFDFRy3oTQQd7JkyYr4DQHt2ZxdYmdiYlOqbM2a5Fr/P8DK0cvfW4D8qey3GZ2a23rhMY2srhVJgEBwRJ+HnBjOWIAsRjY/hP43daQT9oOCvbT3XByxaDwLjniWyRBko=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.2.0
Release Details
UpdatedOct. 2, 2026, 4:33 a.m.
Changelog

Built and checked by laying out five Japanese government forms (an employment conditions notice, a resignation certificate, a CV, a wage ledger and a staff register) and printing them over the original PDFs: the rules land within 0.5 mm of the originals and nearly all of the text within 0.5 mm.

Added

  • Characters and lines per page. A page can be set up by the number of characters per line and lines per page, or by the character and line pitch in millimetres (to 0.001 mm). The screen and the printout match, and half-width letters take half a cell. A grid can be shown on the page.
  • Ruling mode. Draw a table by dragging on the page grid; press Tab while dragging to add lines. Draw over a line to change its kind (thin, solid, medium, thick, double, dotted, dashed), or erase it. Also draws diagonal lines, arrows, round, square and curly brackets, and polylines. Drawn lines snap to the lines already there. A table drawn on empty lines or below the text goes into the text (it takes its room, and the text below moves down as its cells grow); the lines down to it are added for you, as with click-and-type.
  • Tab positions. Left, centred, right and decimal tabs per paragraph, measured from the left indent. Set them in the paragraph's Tabs tab in millimetres, or press the ruler to place one, drag it to move it and drag it off the ruler to remove it.
  • Distribute. Spread the chosen characters over a given number of characters (to 0.01), and distribute the text of a table cell.
  • Line spacing by the line pitch. Fractions of a line (1/4 to 3/4), several lines, or any amount.
  • Raise or lower characters by a given number of points.
  • Table cells: width and row height in millimetres, separate inner margins on each side, vertical text, distributed alignment, and the paragraph settings of the lines inside a cell. Each line of a cell can be aligned on its own.
  • A 1 pt rule.
  • Documents can be put in order within a category by dragging them. "Sort by date modified" puts the order back.
  • Ctrl+Enter inserts a page break.
  • A setting makes Enter in a table cell start a new paragraph, as in LibreOffice. By default it still breaks the line.
  • In the properties of a placed object, its position is given from the top-left corner of the paper.

Fixed

  • A table placed after a page break on page 2 could be pulled up to the top of that page when its size was changed.
  • Placing an object that pushes the text aside could move the objects below it further than the text moved, and they did not come back when it was removed.
  • After a page break, an object's space above was lost when the page before was full.
  • The outer margin of an object with text wrapped round it was cleared every time its properties were applied.
  • Text in a middle- or bottom-aligned cell of a ruled table sat about 0.4 mm too low.
  • A size typed into the toolbar could be replaced by the old size before Enter was pressed.
  • Setting the size of all the text in a cell that already had a size could break the cell apart (data loss).
  • "No border" on a cell was lost when the document was saved.
  • An object hanging over the left or right margin made the whole printout shrink, or was cut off.
  • Changing one paragraph setting could clear indents set earlier.
  • A table inserted from the table dialog could land at the top of the document.
  • Changing a column width in a table split across pages could halve the first part.
  • Pasting into an empty table cell added empty lines.
  • Pasting several paragraphs into a list item produced invalid HTML.
  • After drawing or erasing lines, clicking a cell could fail to put the cursor in it.
  • Typing after Enter in a page with a character grid could join the previous line.
  • Half-width katakana is converted to full width.
  • Clicking or right-clicking the border of a block frame, a box or a note took the paragraph inside it. Near the border, the frame itself is taken.
  • Right-clicking a row in the layer bar could offer "Frame properties" for a paragraph or a shape.
  • Closing a dialog could jump the page to another page.

Changed

  • The right-button menu says what each kind of alignment acts on: "Position of the …" moves the object itself, "Alignment of the text" aligns the lines inside it.
  • A shape has one name everywhere.
  • Wording follows Word's page setup: "Characters and lines", "Characters per line", "Lines per page", "Show the character grid".
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignaturehqC/Hgvy8Nw81/ZVvUL2KX0xesdpCVTn0uZZjesJI2fkfxFEsimTuho4UE69wsuQgHAjBNjO3zhBoMKbKXzcmW5P91VzwRO1AwI76F5v32RRyHyUa0/T18kdgMM7rmmGq5f1c+GzUrv+8Sv6yk1DiHfHkUkieExV20UKZXMPuASp+HDFdT0sDO6ef+Mdb8dJrTEdg41OVTUQXB1AWh//TRqiKxCRBYnbkMoI2QVU9u1DiPoaiodHtTsBy0kWIUR4KcC6jGpn+rOmBnv3YxUCBKP2paH94kEZX1CrS5h9BCsbXDlZXjXP83y/qtHWko4C9MjV42KfCHlXpkLPAi6VsIezVa2sPCSZx/+cSmitFvKtMkHZ/BEPh5+/6LtrgSOEJG1Pm0qqu/YfYxsNSTtGZ3lumlevcAPYcQLRnP3znvaSFy5I8Q0+pG02LSkX58gs9pvvDhZOnWJ6TOxzl9qrqEI78E3uRfa5fuD15b8lNBJ921XkZV0mPsH1qXPlndsmCsJYknS4VeaFSlipB0c8cqGc/pia35cW9ovSZgg+0J7wl7hRQB72H6coz7u2aBs4ckmbMKQxUFUyOKQQ961p+Z3IYKWFTFUpqTL6PXeyTzR62OArzUlDiSxEVXymn/2rfdA7+814JhBT9N09waRqtUH00FOANZjr3XVcBXP+ogs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.4
Release Details
UpdatedSept. 30, 2026, 4:04 p.m.
Changelog

Fixed

  • Copying part of a paragraph with Ctrl+C and pasting it into a paragraph with Ctrl+V made a new paragraph. The words now go in where the cursor is. Whole paragraphs, tables and other blocks pasted into the middle of a paragraph split it and stand between the two halves, instead of ending up inside it.
  • A paragraph set to "words to its right" (or left) that ran over several pages started its next part in the bottom margin of the page and ran across the page break. Each part now starts at the top of the next page's text area.
  • The page thumbnails could keep showing the layout from the middle of a re-pagination (a heading halfway down the wrong page, an empty last page) after the wrap of an object was changed. They are redrawn whenever the pages are laid out again.
  • "Fit to the column width" on a paragraph inside a block frame made it as wide as the page column, so it ran out of the right side of the frame. Inside a frame, a box, a note or a table cell it now fills the inside of that box.
  • Ctrl+Home and Ctrl+End go to the first and last words of the body text. They could put the cursor inside a shape placed elsewhere on the page.

Changed

  • Headings are spaced as in LibreOffice Writer: space above and below of 12/6 pt for Heading 1, 10/6, 7/6, 6/6, 6/3 and 3/3 pt for Headings 2 to 6, and single line height. The old spacing left about a line of empty space under every heading. Spacing set in the style dialog is kept.
  • Block frames, boxes and notes have no inner margin unless one is set: the text touches the frame, as in a word processor. The inner margin is set in the properties.
  • In the properties, the outer margins (top, bottom, left, right) and the inner margin are on the Placement tab together, named so that inside and outside can be told apart.
  • A frame is taken by clicking its border or just outside it. Inside the frame, a click goes to the words, even right next to the border.
  • Japanese: the block frame is called まとめ枠 again.

Removed

  • The dotted box drawn round the phrase at the cursor, and turning chosen words into a frame of their own. Documents that have such word frames get their words back as ordinary text when they are opened.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureCPxVuRD98VkEQD8XZ1WARQAh0btPA+UprBoyyP5vu3A9hYMNsofITBO+0YMKw2wXwcSKTdw4A03WOexEjbvGeKMZa/tkplYy1IYyJTQ09Nd9hhWibMuNSnBfYSmYWJAljCMDBRAylkLKw2Tw4rgkBGaccrqjXVAblbhWbDGYc0J/BBx3lSWT+N6SYKOxigQQuF6Fma85/BJ3IjQQgWqIy7FsQKqjymMYtMZ8GlDDK+tIqU4zfgDn70Y4Hbrpiw8TVUQ9TxLqLCTrx4QRGkTCPB/1hYDmMYVnNrTiZWrKDoQkz69WVs0lXFmiIhFZ/bZlHG0lSzjMwy/WV8LjqJgdleWSk1dkj0IzB/5KHtqk1cDNN3+MhILbnmwrEndMCsD9g2WyD02UnCjExX+tQEshjktfc/8YW+5aUvgMRzexC+uuzb+b8UKoWH1S28Jw64AyCB7sZXRhAibKLCE3XbVYdoo8IF+55FHrbOj7/SWx9k6/UZGj3eWl3npZaDb9GP60ch45UmtgCzwq27GUu5O1SGc6JbMo8p4rL73jCPZHiSWRtNGdX/eWlHqdu2IeWXeirGBit4tb0cqbvLzLjDHcUsFzercYQvySeJxbFHcGehmnQThtaLUAepv+B+8QHAoTMFwHdG4AT9PWS+Zn0gWdHyJP0CElMbV+ne9T2DSHqgE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.3
Release Details
UpdatedSept. 30, 2026, 8:42 a.m.
Changelog

Added

  • Settings → Unit for indents: pt (the default), mm or characters. The indent boxes in the paragraph properties are labelled and filled in that unit, and indents set there or on the ruler are written into the file in it. Characters are written as CSS em, so an indent of two characters stays two characters when the letters are made bigger.
  • Settings → Unit for the ruler: pt, px, mm, cm (the default, as before) or inches. The ruler is marked in that unit, and the indent and margin handles move 1 pt, 1 px, 1 mm, 1 cm or 0.1 inch at a time.
  • Settings → Show spaces (half-width, full-width and tabs), off by default. Half-width spaces are marked ·, full-width spaces □ and tabs →. The marks are drawn over the page only: nothing is written into the document, and they are neither saved nor printed.
  • Settings → Let the Delete key delete an object frame, off by default (see Changed).
  • The paragraph properties open on a new first tab, Indents and spacing: alignment, line height, space above and below, the left, right and first-line indents, and the page-break options. A paragraph's rule and shading stay on the Borders and Area tabs.

Changed

  • The ruler is a bar of its own under the toolbar, across the whole width, with its scale lined up with the paper. It follows zooming and scrolling.
  • The ruler follows the paragraph the caret is in. Inside a block frame, a text frame or a table cell, its white band and its zero are the inside of that box, and the handles stand on the paragraph's own indents. The page-margin handles are shown for the body text only. The indents shown are the ones in effect, including those that come from a style.
  • The indent handles keep the ordinary arrow pointer, so the pointer no longer hides the handle being grabbed.
  • Clicking or right-clicking a paragraph inside a block frame, a box or a note takes the paragraph, with its own toolbar and its own menu (paragraph properties). The frame itself is taken by clicking its edge, or its background outside the paragraphs.
  • Backspace never deletes a selected object. The Delete key deletes an object (a frame, text frame, picture, shape, table, line…) only when the new setting is on. The Delete item in the right-button menu and the delete button on the toolbar work as before.
  • The Paragraph settings… item is gone from the right-button menu: everything in it is on the Indents and spacing tab of the paragraph properties.

Fixed

  • A horizontal scrollbar appeared with no page to the right of the paper. The ruler's background band reached past the page area.
  • An empty paragraph left in the writing (layer 0) could be deleted from the toolbar but not from the layer bar's right-button menu. Both now follow one rule: the last paragraph can be deleted while other objects remain on the page, and is kept only when deleting it would leave nothing at all.
  • The ruler's first-line, left and right indent handles had no effect on a paragraph inside a frame: they were measured from the page margins, not from the box the paragraph is in.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureiL+2onHWy6zn78lm9lxgs3jS13vxeoL4Q++kWZPfUPocSWC9Kr6zK3wIbUN5kYZbyJKWRSD5U8PezfYzH+PoTY3ikfqf62+EAbrU61zT0cp9VPR82NGdVHXozGeU2cDt6MsVQY+MtKJsDXW7yxWDEgASLmBGc5Ks0ah2F6kTAWWh8KgByMnb1lwmux1A4pYwwZM559ZBdzOI40TPqnmJfeYCCoH431AdgksXtQSwaJ7KwD5dQc5Q3bKRpfXHX4ua2qmoNOew0pdIfuoJR6PxN8B0TM6y3VWW3BQLFwK1Z8flqA6/sg4tN9ZIgve0vJVUPgja1ixiWE00r2RVZe7G7CQSuz0ySEmBhe67mje3zTX8kKsov3m2YlWCtxBNAqvPZxpOiybshf/hayI4IOhVKbmazV8YWqcodhp6MIZyCW4dLWHBt+qmBnP93tycq1alvneCi4gyrLx7nbmnmmNRbpuYatdF0c+tLJdjZxCxwh5etlG3fzWcbY97t2sZ1nXID68R8qJFJpOMJdCRmsq9slcT/ndwjlL0LnPgygrdpgYi11EppTJ/Sh1Wr6t14PSFrpi9uy0w17VizXDHkkxV0AswAVXi67/SvICPy+SfHnma5lMqzBG/4xhJ6X+LXmBTlujFVNsMU0R0FpfVKjnAZewI5W1s9BHRsagfVN55sD8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.2
Release Details
UpdatedSept. 29, 2026, 3:09 p.m.
Changelog

Fixed

  • The right button on a category shows the category's own items only; the menu for writing (cut, paste, view…) came after them.

Added

  • Delete the category, from its right-button menu. Only an empty category can be deleted: one with documents in it says how many, and is kept until they are moved or deleted. The folder goes to Nextcloud's trash.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
Signatureiw6UI+ezyktuqvBRGuCa8rseR+8cfcLHEmbaywtrIdU2jz5QiT695Nrgi8S61OI5l9KtJmtex/fe/OlxS9RS6x+4/LKJbHvl5KCGtV+En3184pdw2OBgWVvAxRGhXxToKmj8u2ho2KgOHQxbTfOUnUQkCKmhrEYI34lDlsWtb8jtx7Vlk9fLl3+Fr7p2upFwv+HjgjvnlmvT/ANHA4oKCxLjI6qydbjq1bKwY7Qp5jEiWJLOQ+l1Wa9TQm6evYEAy3nfE/3IAbBKvOn8RnDJYmvjy4/J7qc3J9SpRwNgYyhCr7r9NuF1mk5JJlBfg1ulrDxXacVibDXoPURlTyiIkKGZx7m0srL9AC2ggZvyUxX5jFPOf/JtdL7NvrQ6mzwKkwOFOqp7RXc6i3guBqza6bqV4IggrbyYQDO+UKudV4/AlriDCuo45T6YD8lKM9rMRGXPi0zQYsMeTUhF4vlobHR7/ChE17CUonengQvPx1BLItv/7LDi24ZCaTlgqnZ2mQtk7JZz4FBx1RFFVPSwnhdZvnfkXfAReaTs502c6XiOcvLa24qKjXyR/SG3K086yS0pHPsgX64jOj18WGQ07oxHX4eOR5yAca0J3oX/SVHFY9OcAGPyLtndyySkWR+Pxs7D3Xk6yEGZPPMdqv6dhW+p9ZfAhsZHbj2Sxh99tTI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.1
Release Details
UpdatedSept. 29, 2026, 1:54 p.m.
Changelog

Fixed

  • Web preview shows the document as it is open in the editor, page by page, including changes not yet saved. It showed the file as saved, and a document saved by an earlier version had no page divisions: everything after the first page ran off the sheet.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureUKSIHhsy6i6Pp0kif/B965Lh5VMWGQkA0V42XAjQRZFYKF9bvU8jmz/B7oIx2OmVEklGOP88waWUOn69AOLzdhz4eWif/L4MQUgaEfFbcX6vOlWwVGCBwBqtyMpB7wLtBJ34qBEvcSyCrFZPhJzYOp//XfY0jZnzMozoq47p+pFgHaXGXZLqFLu2iNdp4V6Ceo7iG2dflxraFOfTSU5vjwppby3Chm0xDYQMMQRV+AgBtktwB5SqfwJZskj3ksPxa+Wl/nhs+v9sp8TPHcEM8jfBpieZxtmjekLRGspEZpwiNBqQcInL5YWf6P48kEYxedSPQ324S0xcBk3q7dpgsOzYBjzEcxe1SekOjm9bw7qILEruO6Mi5/Sh8r6q2cjmH7SeMUpCmYmgfWn+R4RHYszdcvdaMul5lrAvdRRJrV4SF2j/RnR/H4JqFteEvyLzxDHZBjjpFbNNrIjfHJbBZqSACRP2hV/apjA5tqFYAR+kEZkdNwPrmF9dQffWX4tePw5bXOsuMfxNonNhKs/uLPJtU4HAQ99pt221H5CJlro5jnH5umqZNSfWndAdntlxJ1uQqwooCIYa4s7hL0oC440x7hh2rAGJ0d395l3E4r+SRMiiwAs7iF9T5yTwNUvyboxwoHkc/EM93uUljOV2DJMHdIkKma3hyhJBigCUQVc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.0
Release Details
UpdatedSept. 29, 2026, 1:11 p.m.
Changelog

The first version. Everything below is new, because there was nothing before it.

Added

  • Documents are ordinary .html files in the user's own Nextcloud Files, saved complete with their stylesheet — no proprietary format, no import or export step.
  • Editing surface built on contenteditable with an editing engine of its own (Selection/Range), so the markup it writes stays clean: <strong>, <em>, <mark class="…"> and classes rather than editor litter.
  • Paper setup in millimetres: A3/A4/A5/B4/B5/Letter/Legal, portrait or landscape, four margins, serif or sans body, body size in points — written into the file as an @page rule.
  • Page guides on screen showing where each printed page ends.
  • Headings, quotations, preformatted text, bulleted and numbered lists, alignment and indentation, tables (three border styles, optional header row), callout boxes (rounded, square, dashed, tinted, side-bar note), horizontal rules and page breaks.
  • Highlighting in five colours, free text colour, emphasis dots, superscript, subscript and inline code.
  • Formulas as native MathML, with a starter palette and a live preview.
  • Undo and redo kept by the editor itself, with keyboard shortcuts.
  • Printing and PDF export through the browser, from an isolated copy of the file itself, so what prints is exactly what is stored.
  • Autosave, document duplication, renaming, deletion and download.
  • Readings over words (ruby), at half size, with room kept for them so they never sit on the line above, and brackets in the file for browsers that cannot draw them — 滅多(めった).
  • A frame too tall for the page it stands on carries its writing on into a frame of the same shape inside the next page, cut at the line rather than at the edge of the paper. The carried-on frame is ordinary markup, so the saved file prints the same way in any browser.
  • A frame placed by hand carries its writing on the same way, into a frame of its own inside the next page; and anything placed by hand keeps to one sheet, moving down to the next page rather than being printed cut in two by the edge of the paper. Where the writer put it is remembered, so it goes back as soon as the page has room for it again.
  • A blank page can be put in above or below any page, from the right button in the page bar.
  • The document's own stylesheet, written by hand: a CSS box in the styles dialogue for anything the boxes above it cannot say — the look of headings, lists, quotations and the rest. It goes into the file itself, so the page prints that way anywhere, and the editor shows it as it is typed.
  • The right button on a document in the list opens it, copies it, throws it away, or tells what it is: the file's name and where it is, its size, when it was last saved, the paper it is set on, and how much is written in it.
  • A running header and footer that really do repeat on every printed page: the writing is put in a table of one cell, which is the one thing a browser repeats across a page break, and each of them stands in a band of its own that the writing never runs into. What they say can carry the title of the document, its file name and the date and time it was saved, written in braces and filled in as the file is written.
  • A check over the document: what is wrong with the page that a writer cannot see by looking at it -- a thing drawn across the edge of the paper, words running under something that was told to part them, a frame holding more than it can show, a photograph heavy enough to make the file slow, a page with nothing on it. Each one says which page it is on and takes you there.
  • Versions kept beside the document: the state before each save is written to a file of its own in the same folder, named after the document with its extension replaced by a number -- 報告書.html keeps 報告書.#01, the newest, with the older ones shifting down as far as the writer allows (up to 99, ten by default, nought for none). They are plain HTML like everything else, so a version opens in any browser. A version is taken when the writer saves; the autosave can be made to take one too. They follow the document when it is renamed or moved to another category, and go with it when it is deleted. Putting one back keeps what was there as a version of its own, so that can be undone in turn.
  • A view of the raw HTML of the current document.
  • A layer bar and a page bar down the right. Every row of the layer bar can be dragged with the mouse: dropped on another row it joins that thing's layer, on a layer's heading it moves to that layer, and above or below them all it gets a layer of its own. Anything that is not standing on the paper moves through the document instead. The levels are renumbered from the bottom after every change, so they stay one apart with nothing empty in between. The two places to drop for a layer of one's own stay pinned at the top and the bottom of the bar, and the list scrolls itself when a row is held near either end, so they can be reached however long the list is. A dragged row travels with the pointer, and a place that would do nothing is greyed out with the reason written in it rather than quietly ignoring the drop. The numbers shown in the bar close up after a deletion, but only in what is shown: looking at the bar never rewrites the levels in the document, which would move things in the pile and change which of two overlapping things the writing flows around. A layer itself is dragged by its heading and everything on it moves together, and a new empty layer is made with the button in the bar's head and becomes real when the first thing is dropped into it. A thing drawn on the page has no level of its own; the bar shows it at the level the browser actually paints it, and writes the levels down the moment the writer moves something through the pile.
  • Categories down the left: a document can be filed in a folder inside the save folder, and the list shows one box per category — coloured as the writer likes, opening one at a time, with documents carried between them by dragging a row on to another box. A category is an ordinary folder, so the same filing is there in Files.
  • Sharing with other accounts on this server, from the right button on a document or on a category: Nextcloud's own sharing, to read or to write, taken back from either place. A shared category hands over everything filed in it, and everything filed in it afterwards; somebody who may write in one can put new documents in it as well. What others have shared arrives under their own name in the list.
  • Writing in one document at the same time as somebody else, in a shared mode that begins the moment a second person opens it. Every block of the document carries a name of its own; what is typed goes to the others in about a second without waiting for a save, through a fast lane held in Nextcloud's own cache and never written to disk. Their caret is drawn with their name on it, and the paragraph somebody is writing in is held against the other person -- the one case that cannot be merged is prevented rather than lost. The file is still saved the ordinary way, and a save that would land on top of somebody else's is merged instead of winning. No service of its own and nothing to install; a document nobody else has open does none of this.
  • A styles designer: the look of every heading, list, quotation, table cell and caption in the document set by hand rather than by writing CSS -- typeface, size, colour, letter spacing, weight, alignment, line height, indent, the space above and below, a fill, a border on any side and the mark in front of a list item -- with a sample of the writing above the controls that changes as they are moved. The CSS is still there, folded away at the foot of the dialogue, for anyone who would rather write it.
  • Emoji: the whole Unicode set in nine groups, searchable by name in the user's own language, put in at the caret. The character is what goes into the file, so it is drawn by whatever emoji font the reader's machine has.
  • Light and dark themes, chosen per user, and English and Japanese translations.

  • Standard and free placement. Standard placement follows the rules of HTML and keeps clear of the text and of other objects (above and below, text to the left or to the right, and on both sides with JavaScript); free placement puts an object anywhere with CSS, over other things. The default is a setting.

  • Tables that calculate: formulas as in LibreOffice Calc (33 functions, ; or , between arguments, Err:522 for a circle), a formula bar with a list of the functions and cells picked into the formula by pressing them, column letters and row numbers round a chosen table, and number formats written as format codes.
  • Cell properties in tabs as in Excel — number format, alignment, font, borders drawn edge by edge (none, outline, inside, all), fill — for a block of cells chosen by dragging; optimal row height and column width.
  • Twenty heading designs, drawn with CSS alone, in one colour for every heading.
  • Web preview: the saved document opened as a web page, its JavaScript running.
  • Page numbers ({page}, {pages}) in the running header and footer.

Fixed

  • The editor no longer draws a sheet the printer does not make. It counted sheets from the height of the whole column of writing; the printer counts by what fits in each page's own text area. When the writing ended a little past a fold -- one empty paragraph was enough -- the editor showed a blank last page that never printed. The count now follows the writing page by page, and a blank page put in on purpose still counts as a page.
  • Anything standing on the page shows its own box when it is clicked, wherever in the box the click lands. A list, a quotation or a heading placed by hand was not counted as an object at all, so clicking one gave the box of whatever paragraph lay behind it; and a click on the transparent part of any object -- a picture's corner, the empty half of a list -- fell through in the same way. What stands under the pointer is now what is taken hold of, the innermost first and the one drawn on top before the one drawn under.
  • A running header and footer that stand where they were asked to stand: in the paper's own margin, three millimetres clear of the writing, as deep as the writer chooses up to the margin less those three. They are written into the page's own margin boxes, so the printer repeats them on every page and counts the pages itself -- {page} and {pages} are the printer's counters, not words. They can be typed straight into the band on the first sheet, and shown on every page or on the first alone. The writing does not move by a hair for them: it begins where the margin says it does.
  • Words no longer run through an object that stands beside another. A real float in the same paragraph was counted as taking room from every line of it, so a second object further down was left with no room to be kept clear of, and the words walked straight through it. What a float takes is now counted only on the lines it actually stands on.
  • Setting a size on the words chosen inside a 文字枠 no longer changes the whole frame. Clicking the size box on the toolbar takes the selection away before the value is read; the last run of words chosen is now remembered and put back.
  • A 文字枠 asked to hold a list, a table or a picture becomes a frame that can hold blocks, keeping its place and its size. It used to be thrown away and its words left standing loose on the page.
  • Styling a word inside a block that carries that style no longer takes the block apart: a 文字枠 with a size of its own was pulled out of the document when the size of a few words in it was changed.
  • Opening a document no longer counts as writing it. Setting the paper of the document being opened was taken for a change made by the writer, so the file was saved a couple of seconds later and a version kept of it: a document nobody had touched grew a snapshot every time it was looked at.
  • A long document opens in seconds rather than in half a minute, and the keyboard is free while it does. A frame carried over page by page was laid out again by the browser after every cut -- the whole document, every time -- so a story of a hundred and twenty pages was laid out a hundred and twenty times. What is far below the page being cut is now lifted out while that page is measured and put back afterwards, the pages are counted from one reading instead of one for every page, and a frame that cannot be made to fit is not laid out again and again in the hope of a different answer. Opening 銀河鉄道の夜 (35 pages) went from 39 seconds to 2.5, and こころ (127 pages) from 38 seconds to 6.
  • A table taller than the page is now carried on to the next page, cut between its rows -- and where a single row is taller than the page, cell by cell, the lists and the tables inside it cut in the same way. It used to stay whole in one frame and run off the paper: the editor drew eight sheets where the printer made thirteen pages. A head row is repeated on the next page as the printer repeats it, unless it is a banner deep enough to cost a third of the page.
  • A document with a frame carried on to another page could come back twice as long. The carried-on frame wore the same name as the frame it carries on from, so the machinery that folds in another person's writing took it for that frame and wrote the whole of it over the last link of the chain. Every carried-on frame now has a name of its own.
  • A block cut across three pages or more is put back as the one block it was. The mark saying "this was cut" was taken off as soon as the second piece was joined, so the third stood on as a block of its own -- which is how a table grew a repeated head row at every pass.
  • A frame that stops short because the next row will not fit is left alone. It was read as half empty and laid out again, over and over, without ever settling.
  • A table standing in another table's cell kept being taken apart. Its header row was read as the outer table's, so at every opening one more row was lifted out of the inner table and put at the top of the outer one: a Wikipedia article came back in a different order every time it was read, for ever. The head is now looked for in the table itself and nowhere else.
  • A document no longer grows every time it is saved. Cutting a paragraph at the very edge of a link left the link behind with nothing in it; the next pass cut at the same place and left another beside it. Those empty shells are taken off as the cut is made.
  • The screen and the printout now agree, measured page by page against Chrome's own printing: a frame carried on to the next page kept a top margin on paper that the editor did not draw, and a thing placed by hand was allowed to hang into the bottom margin, where the printer cut it in two and put the lower part on a sheet of its own.
  • Objects that keep the words clear no longer fight when they stand together. The room an object holds is a float, and floats wider than the column together do not sit side by side -- the second drops below the first, where it holds nothing off anything. So the room is now cut to what the other things on that line leave: what another band wants, and what a floated object has already taken, measured to the edge of the writing rather than from its own width. Three and a half millimetres of that difference was enough to send a band below a floated arrow and let two lines run straight through the list beside it.
  • A thing put down by hand now stays where it was dropped. Its place is kept as a distance from the line it hangs on, measured down a column with no page gaps in it, while the editor draws a column with a gap at every fold; the conversion between the two was wrong for a thing whose page was not its line's page, so a formula dragged thirty millimetres up the page came to rest forty down. The answer is now measured after the fact and the difference taken out.
  • Room can be made for a thing that stands below the last line of its frame: it had nothing to hang from, kept the far end of the frame as its line, and room is only ever made below that line -- so the words simply ran through it.
  • Anything with no writing in it -- a formula, a picture, a rule, an empty shape -- is now picked up anywhere on it. Only the eight pixels of its edge would take hold before, which on a formula four millimetres tall meant it could not be moved at all. Things that hold words still keep to their edge, because a click in the middle of those has to put the caret in the writing.
  • A thing placed inside a frame stays in that frame when the page has to give it room, instead of being stood on the foot of the page outside the box.

  • An item of a list is put in one level with Tab and taken out again with Shift+Tab, and what that makes is a list inside a list -- the markers change with the level (a ring under a dot, a square under that), a numbered list counts in letters inside and in small roman numerals inside that, and the file written is an ordinary nested list that reads correctly anywhere. It used to add an indent to the item and leave the list flat.

  • The little pages in the preview bar are the pages themselves, made small, rather than a plan of grey boxes.
  • A frame that carries its writing on to the next page now makes the editor draw that page. It was drawn below the last sheet while the printer duly made a second page.

  • Deleting everything in a document leaves a plain paragraph to type on. What was left before was the first block's tag, so a document that began with a heading was wiped to an empty heading and everything typed next came out as a heading too.

  • What is written to a file is cleaned on the way out as well as on the way in. Everything arriving is checked -- what is opened, what is pasted, what somebody else writing in the document sends -- but a saved file is opened by a browser with nothing else around it, so a script or a handler that ever found its way into the writing would have been written into a page and run when it was opened.

Known limits

  • Vertical writing does not yet have the newest page fitting: frames that carry their writing on to the next page, and keeping a thing placed by hand on one sheet, are written for horizontal text so far.
  • Printing has been checked in Chromium only.
  • Writing together is by the paragraph, not by the letter: the paragraph somebody is writing in is held against the other person rather than the two being merged character by character.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureGCteIVIZRYMXc9EhJguTH2XtBEj0RpKOHjO5suClV+bCjRHE1vNoqfE7lcIP7atPrfPPAHrah8Pq99CRR/fWlccaq108kthpgQ9sEDZT/RI4IGShhE45pIvybmg5jyT8CNrXryc8bF3GrLSiWRzmHLkHPlmv6e+uTKd4tQZ7/sd6NM++QhAkWAQONC2nobRmUJ7AZstLMcS8X0vLDJuphd8TGOXvfZ57OzZ0IgieFrD475HKaxpjSwrM4oq6fOcwFXbvaAWwh1J1y2Jtj1oghIdK9TaPOFIV0CS1DfQZPz7wwZ1wDlJ7vK6NqknP3mzsPXlqSx/5gQloCsVkp0HeRIWNt19IWHWkUZL3IMsCxTVcu90vcdbnrdmBKGd0AmSozFq9CHO1Fq2Ai2teucnedOpfA9HveF5FIn6Qc20qV8nMNFeTG5KsjMB0xUuXWVt4vCutHiDI8QzuH0zwoFHvCY+FnkeY/UMIGmsrWiPIoIJO0qGB1LZDZyiyDmvTgVsabRPINEqadZdkp5N4dEMXMrYS5W7Zv487Q/7ajBfjPr6YwM/cQftRKvD0rrgfx9/9/NC9C6Zc2pBbjorP/CDISNasUa2a80MiCz7iQnmtUvTV7QR8OA+oY1JmVmG0YrZkAnMmbKuR5OkHZrr0hMtDs/LeSwZStli5bKo/+RxHw1k=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 32

EditBase 0.3.0
Release Details
UpdatedOct. 7, 2026, 11:02 p.m.
Changelog

Added

  • An AI assistant, through the AI-Hub app: a chat above the Pages and Layers bars that knows EditBase, changes the open document when asked (every change undoable with Ctrl+Z) and reads from the other apps of the series only as the administrator allows. Administration settings → EditBase → AI assistant: on or off, who may use it, what it may read, web search. Shown only when AI-Hub is installed.
  • The widths of the Preview bar and the Layer bar can be set in px or % (Settings → View).
  • Tooltips of their own on every button, so the pointer never hides the caption.
  • Bundled samples: body text 12 pt (US GSA Section 508 guidance), and "More apps from KTEC" gives each app a page of its own, AI-Hub included.
  • The AI conversation can be saved to Files as Markdown, as it stands or summed up by the AI (two small buttons in the assistant's head; AI-Hub/EditBase/ in the writer's Files). The conversation of each document lasts while the tab is open and the writer stays logged in: a reload goes on with it, a new tab or a new login starts afresh.

Changed

  • The toolbar follows LibreOffice, Microsoft Office and Ichitaro: text and paragraph formatting in a second row of the top bar; the left column holds Insert (page break, table of contents, header and footer, rules among it), Drawing and View; the "Page layout" menu is gone.
  • After a forced page break the paragraph's space above is kept, as in LibreOffice; at a natural page break it is dropped.

Fixed

  • Counts on the screen take the singular for one ("1 page", "1 Seite", "1 caractère"), in every language, through Nextcloud's plural forms.
  • An unedited bundled sample is recognised by its text, not its bytes, so one that was merely opened and saved is still replaced when a new version ships.
  • A page fold never cut inside a word across a line break.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureTElgSpvGffZlhAYfGfibKmKXoXLm4AmwUUpBCH2zJtJm9kkkA4X1FkSF3qNprG8iaq8tntGHT3XLlbxWac8Bmbi3wK5tPQ0F64EBJwwT0LgbikNYAaKT0lvnJiUOUoqmUC+a8KWTTGL6ghR++rjSImAQU/SGe4eU4GN95L0oAqRMACNicf/h4yWwUUifggi7YqeiaImUO/olsZWJSMCYePh0JcbpE8LcXe4USsvLgrH3deBN6SMoURst96TKgutj0w4rgIU1VjSROzaE6cc+1jJf3AIXLIqcb0rMlwCi3jH40fdJBdO/tV6xg53IBRs/xBsw5rgnFMuo6rAopwAHhgdI/idHnDu0KzCuyRubREzNLCJCoNq/UzNgRnM6Zhch4lHizR4yaqaxHh8LZibqJRdOA89igZevyFDihbmPlsslHVjHIKkiWKwlAomQQBKvJg6hS8Y8fbKwICxjPUAiCrTIQUjAF2xd+b8kzao1SnEep0bff+LGUfBtS0uNI3bZL3lDnnZAt1nLgch+quuQN5cQsL5g55cBcZ8bMM5uVr7ZFDFRy3oTQQd7JkyYr4DQHt2ZxdYmdiYlOqbM2a5Fr/P8DK0cvfW4D8qey3GZ2a23rhMY2srhVJgEBwRJ+HnBjOWIAsRjY/hP43daQT9oOCvbT3XByxaDwLjniWyRBko=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.2.0
Release Details
UpdatedOct. 2, 2026, 4:33 a.m.
Changelog

Built and checked by laying out five Japanese government forms (an employment conditions notice, a resignation certificate, a CV, a wage ledger and a staff register) and printing them over the original PDFs: the rules land within 0.5 mm of the originals and nearly all of the text within 0.5 mm.

Added

  • Characters and lines per page. A page can be set up by the number of characters per line and lines per page, or by the character and line pitch in millimetres (to 0.001 mm). The screen and the printout match, and half-width letters take half a cell. A grid can be shown on the page.
  • Ruling mode. Draw a table by dragging on the page grid; press Tab while dragging to add lines. Draw over a line to change its kind (thin, solid, medium, thick, double, dotted, dashed), or erase it. Also draws diagonal lines, arrows, round, square and curly brackets, and polylines. Drawn lines snap to the lines already there. A table drawn on empty lines or below the text goes into the text (it takes its room, and the text below moves down as its cells grow); the lines down to it are added for you, as with click-and-type.
  • Tab positions. Left, centred, right and decimal tabs per paragraph, measured from the left indent. Set them in the paragraph's Tabs tab in millimetres, or press the ruler to place one, drag it to move it and drag it off the ruler to remove it.
  • Distribute. Spread the chosen characters over a given number of characters (to 0.01), and distribute the text of a table cell.
  • Line spacing by the line pitch. Fractions of a line (1/4 to 3/4), several lines, or any amount.
  • Raise or lower characters by a given number of points.
  • Table cells: width and row height in millimetres, separate inner margins on each side, vertical text, distributed alignment, and the paragraph settings of the lines inside a cell. Each line of a cell can be aligned on its own.
  • A 1 pt rule.
  • Documents can be put in order within a category by dragging them. "Sort by date modified" puts the order back.
  • Ctrl+Enter inserts a page break.
  • A setting makes Enter in a table cell start a new paragraph, as in LibreOffice. By default it still breaks the line.
  • In the properties of a placed object, its position is given from the top-left corner of the paper.

Fixed

  • A table placed after a page break on page 2 could be pulled up to the top of that page when its size was changed.
  • Placing an object that pushes the text aside could move the objects below it further than the text moved, and they did not come back when it was removed.
  • After a page break, an object's space above was lost when the page before was full.
  • The outer margin of an object with text wrapped round it was cleared every time its properties were applied.
  • Text in a middle- or bottom-aligned cell of a ruled table sat about 0.4 mm too low.
  • A size typed into the toolbar could be replaced by the old size before Enter was pressed.
  • Setting the size of all the text in a cell that already had a size could break the cell apart (data loss).
  • "No border" on a cell was lost when the document was saved.
  • An object hanging over the left or right margin made the whole printout shrink, or was cut off.
  • Changing one paragraph setting could clear indents set earlier.
  • A table inserted from the table dialog could land at the top of the document.
  • Changing a column width in a table split across pages could halve the first part.
  • Pasting into an empty table cell added empty lines.
  • Pasting several paragraphs into a list item produced invalid HTML.
  • After drawing or erasing lines, clicking a cell could fail to put the cursor in it.
  • Typing after Enter in a page with a character grid could join the previous line.
  • Half-width katakana is converted to full width.
  • Clicking or right-clicking the border of a block frame, a box or a note took the paragraph inside it. Near the border, the frame itself is taken.
  • Right-clicking a row in the layer bar could offer "Frame properties" for a paragraph or a shape.
  • Closing a dialog could jump the page to another page.

Changed

  • The right-button menu says what each kind of alignment acts on: "Position of the …" moves the object itself, "Alignment of the text" aligns the lines inside it.
  • A shape has one name everywhere.
  • Wording follows Word's page setup: "Characters and lines", "Characters per line", "Lines per page", "Show the character grid".
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignaturehqC/Hgvy8Nw81/ZVvUL2KX0xesdpCVTn0uZZjesJI2fkfxFEsimTuho4UE69wsuQgHAjBNjO3zhBoMKbKXzcmW5P91VzwRO1AwI76F5v32RRyHyUa0/T18kdgMM7rmmGq5f1c+GzUrv+8Sv6yk1DiHfHkUkieExV20UKZXMPuASp+HDFdT0sDO6ef+Mdb8dJrTEdg41OVTUQXB1AWh//TRqiKxCRBYnbkMoI2QVU9u1DiPoaiodHtTsBy0kWIUR4KcC6jGpn+rOmBnv3YxUCBKP2paH94kEZX1CrS5h9BCsbXDlZXjXP83y/qtHWko4C9MjV42KfCHlXpkLPAi6VsIezVa2sPCSZx/+cSmitFvKtMkHZ/BEPh5+/6LtrgSOEJG1Pm0qqu/YfYxsNSTtGZ3lumlevcAPYcQLRnP3znvaSFy5I8Q0+pG02LSkX58gs9pvvDhZOnWJ6TOxzl9qrqEI78E3uRfa5fuD15b8lNBJ921XkZV0mPsH1qXPlndsmCsJYknS4VeaFSlipB0c8cqGc/pia35cW9ovSZgg+0J7wl7hRQB72H6coz7u2aBs4ckmbMKQxUFUyOKQQ961p+Z3IYKWFTFUpqTL6PXeyTzR62OArzUlDiSxEVXymn/2rfdA7+814JhBT9N09waRqtUH00FOANZjr3XVcBXP+ogs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.4
Release Details
UpdatedSept. 30, 2026, 4:04 p.m.
Changelog

Fixed

  • Copying part of a paragraph with Ctrl+C and pasting it into a paragraph with Ctrl+V made a new paragraph. The words now go in where the cursor is. Whole paragraphs, tables and other blocks pasted into the middle of a paragraph split it and stand between the two halves, instead of ending up inside it.
  • A paragraph set to "words to its right" (or left) that ran over several pages started its next part in the bottom margin of the page and ran across the page break. Each part now starts at the top of the next page's text area.
  • The page thumbnails could keep showing the layout from the middle of a re-pagination (a heading halfway down the wrong page, an empty last page) after the wrap of an object was changed. They are redrawn whenever the pages are laid out again.
  • "Fit to the column width" on a paragraph inside a block frame made it as wide as the page column, so it ran out of the right side of the frame. Inside a frame, a box, a note or a table cell it now fills the inside of that box.
  • Ctrl+Home and Ctrl+End go to the first and last words of the body text. They could put the cursor inside a shape placed elsewhere on the page.

Changed

  • Headings are spaced as in LibreOffice Writer: space above and below of 12/6 pt for Heading 1, 10/6, 7/6, 6/6, 6/3 and 3/3 pt for Headings 2 to 6, and single line height. The old spacing left about a line of empty space under every heading. Spacing set in the style dialog is kept.
  • Block frames, boxes and notes have no inner margin unless one is set: the text touches the frame, as in a word processor. The inner margin is set in the properties.
  • In the properties, the outer margins (top, bottom, left, right) and the inner margin are on the Placement tab together, named so that inside and outside can be told apart.
  • A frame is taken by clicking its border or just outside it. Inside the frame, a click goes to the words, even right next to the border.
  • Japanese: the block frame is called まとめ枠 again.

Removed

  • The dotted box drawn round the phrase at the cursor, and turning chosen words into a frame of their own. Documents that have such word frames get their words back as ordinary text when they are opened.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureCPxVuRD98VkEQD8XZ1WARQAh0btPA+UprBoyyP5vu3A9hYMNsofITBO+0YMKw2wXwcSKTdw4A03WOexEjbvGeKMZa/tkplYy1IYyJTQ09Nd9hhWibMuNSnBfYSmYWJAljCMDBRAylkLKw2Tw4rgkBGaccrqjXVAblbhWbDGYc0J/BBx3lSWT+N6SYKOxigQQuF6Fma85/BJ3IjQQgWqIy7FsQKqjymMYtMZ8GlDDK+tIqU4zfgDn70Y4Hbrpiw8TVUQ9TxLqLCTrx4QRGkTCPB/1hYDmMYVnNrTiZWrKDoQkz69WVs0lXFmiIhFZ/bZlHG0lSzjMwy/WV8LjqJgdleWSk1dkj0IzB/5KHtqk1cDNN3+MhILbnmwrEndMCsD9g2WyD02UnCjExX+tQEshjktfc/8YW+5aUvgMRzexC+uuzb+b8UKoWH1S28Jw64AyCB7sZXRhAibKLCE3XbVYdoo8IF+55FHrbOj7/SWx9k6/UZGj3eWl3npZaDb9GP60ch45UmtgCzwq27GUu5O1SGc6JbMo8p4rL73jCPZHiSWRtNGdX/eWlHqdu2IeWXeirGBit4tb0cqbvLzLjDHcUsFzercYQvySeJxbFHcGehmnQThtaLUAepv+B+8QHAoTMFwHdG4AT9PWS+Zn0gWdHyJP0CElMbV+ne9T2DSHqgE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.3
Release Details
UpdatedSept. 30, 2026, 8:42 a.m.
Changelog

Added

  • Settings → Unit for indents: pt (the default), mm or characters. The indent boxes in the paragraph properties are labelled and filled in that unit, and indents set there or on the ruler are written into the file in it. Characters are written as CSS em, so an indent of two characters stays two characters when the letters are made bigger.
  • Settings → Unit for the ruler: pt, px, mm, cm (the default, as before) or inches. The ruler is marked in that unit, and the indent and margin handles move 1 pt, 1 px, 1 mm, 1 cm or 0.1 inch at a time.
  • Settings → Show spaces (half-width, full-width and tabs), off by default. Half-width spaces are marked ·, full-width spaces □ and tabs →. The marks are drawn over the page only: nothing is written into the document, and they are neither saved nor printed.
  • Settings → Let the Delete key delete an object frame, off by default (see Changed).
  • The paragraph properties open on a new first tab, Indents and spacing: alignment, line height, space above and below, the left, right and first-line indents, and the page-break options. A paragraph's rule and shading stay on the Borders and Area tabs.

Changed

  • The ruler is a bar of its own under the toolbar, across the whole width, with its scale lined up with the paper. It follows zooming and scrolling.
  • The ruler follows the paragraph the caret is in. Inside a block frame, a text frame or a table cell, its white band and its zero are the inside of that box, and the handles stand on the paragraph's own indents. The page-margin handles are shown for the body text only. The indents shown are the ones in effect, including those that come from a style.
  • The indent handles keep the ordinary arrow pointer, so the pointer no longer hides the handle being grabbed.
  • Clicking or right-clicking a paragraph inside a block frame, a box or a note takes the paragraph, with its own toolbar and its own menu (paragraph properties). The frame itself is taken by clicking its edge, or its background outside the paragraphs.
  • Backspace never deletes a selected object. The Delete key deletes an object (a frame, text frame, picture, shape, table, line…) only when the new setting is on. The Delete item in the right-button menu and the delete button on the toolbar work as before.
  • The Paragraph settings… item is gone from the right-button menu: everything in it is on the Indents and spacing tab of the paragraph properties.

Fixed

  • A horizontal scrollbar appeared with no page to the right of the paper. The ruler's background band reached past the page area.
  • An empty paragraph left in the writing (layer 0) could be deleted from the toolbar but not from the layer bar's right-button menu. Both now follow one rule: the last paragraph can be deleted while other objects remain on the page, and is kept only when deleting it would leave nothing at all.
  • The ruler's first-line, left and right indent handles had no effect on a paragraph inside a frame: they were measured from the page margins, not from the box the paragraph is in.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureiL+2onHWy6zn78lm9lxgs3jS13vxeoL4Q++kWZPfUPocSWC9Kr6zK3wIbUN5kYZbyJKWRSD5U8PezfYzH+PoTY3ikfqf62+EAbrU61zT0cp9VPR82NGdVHXozGeU2cDt6MsVQY+MtKJsDXW7yxWDEgASLmBGc5Ks0ah2F6kTAWWh8KgByMnb1lwmux1A4pYwwZM559ZBdzOI40TPqnmJfeYCCoH431AdgksXtQSwaJ7KwD5dQc5Q3bKRpfXHX4ua2qmoNOew0pdIfuoJR6PxN8B0TM6y3VWW3BQLFwK1Z8flqA6/sg4tN9ZIgve0vJVUPgja1ixiWE00r2RVZe7G7CQSuz0ySEmBhe67mje3zTX8kKsov3m2YlWCtxBNAqvPZxpOiybshf/hayI4IOhVKbmazV8YWqcodhp6MIZyCW4dLWHBt+qmBnP93tycq1alvneCi4gyrLx7nbmnmmNRbpuYatdF0c+tLJdjZxCxwh5etlG3fzWcbY97t2sZ1nXID68R8qJFJpOMJdCRmsq9slcT/ndwjlL0LnPgygrdpgYi11EppTJ/Sh1Wr6t14PSFrpi9uy0w17VizXDHkkxV0AswAVXi67/SvICPy+SfHnma5lMqzBG/4xhJ6X+LXmBTlujFVNsMU0R0FpfVKjnAZewI5W1s9BHRsagfVN55sD8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.2
Release Details
UpdatedSept. 29, 2026, 3:09 p.m.
Changelog

Fixed

  • The right button on a category shows the category's own items only; the menu for writing (cut, paste, view…) came after them.

Added

  • Delete the category, from its right-button menu. Only an empty category can be deleted: one with documents in it says how many, and is kept until they are moved or deleted. The folder goes to Nextcloud's trash.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
Signatureiw6UI+ezyktuqvBRGuCa8rseR+8cfcLHEmbaywtrIdU2jz5QiT695Nrgi8S61OI5l9KtJmtex/fe/OlxS9RS6x+4/LKJbHvl5KCGtV+En3184pdw2OBgWVvAxRGhXxToKmj8u2ho2KgOHQxbTfOUnUQkCKmhrEYI34lDlsWtb8jtx7Vlk9fLl3+Fr7p2upFwv+HjgjvnlmvT/ANHA4oKCxLjI6qydbjq1bKwY7Qp5jEiWJLOQ+l1Wa9TQm6evYEAy3nfE/3IAbBKvOn8RnDJYmvjy4/J7qc3J9SpRwNgYyhCr7r9NuF1mk5JJlBfg1ulrDxXacVibDXoPURlTyiIkKGZx7m0srL9AC2ggZvyUxX5jFPOf/JtdL7NvrQ6mzwKkwOFOqp7RXc6i3guBqza6bqV4IggrbyYQDO+UKudV4/AlriDCuo45T6YD8lKM9rMRGXPi0zQYsMeTUhF4vlobHR7/ChE17CUonengQvPx1BLItv/7LDi24ZCaTlgqnZ2mQtk7JZz4FBx1RFFVPSwnhdZvnfkXfAReaTs502c6XiOcvLa24qKjXyR/SG3K086yS0pHPsgX64jOj18WGQ07oxHX4eOR5yAca0J3oX/SVHFY9OcAGPyLtndyySkWR+Pxs7D3Xk6yEGZPPMdqv6dhW+p9ZfAhsZHbj2Sxh99tTI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.1
Release Details
UpdatedSept. 29, 2026, 1:54 p.m.
Changelog

Fixed

  • Web preview shows the document as it is open in the editor, page by page, including changes not yet saved. It showed the file as saved, and a document saved by an earlier version had no page divisions: everything after the first page ran off the sheet.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureUKSIHhsy6i6Pp0kif/B965Lh5VMWGQkA0V42XAjQRZFYKF9bvU8jmz/B7oIx2OmVEklGOP88waWUOn69AOLzdhz4eWif/L4MQUgaEfFbcX6vOlWwVGCBwBqtyMpB7wLtBJ34qBEvcSyCrFZPhJzYOp//XfY0jZnzMozoq47p+pFgHaXGXZLqFLu2iNdp4V6Ceo7iG2dflxraFOfTSU5vjwppby3Chm0xDYQMMQRV+AgBtktwB5SqfwJZskj3ksPxa+Wl/nhs+v9sp8TPHcEM8jfBpieZxtmjekLRGspEZpwiNBqQcInL5YWf6P48kEYxedSPQ324S0xcBk3q7dpgsOzYBjzEcxe1SekOjm9bw7qILEruO6Mi5/Sh8r6q2cjmH7SeMUpCmYmgfWn+R4RHYszdcvdaMul5lrAvdRRJrV4SF2j/RnR/H4JqFteEvyLzxDHZBjjpFbNNrIjfHJbBZqSACRP2hV/apjA5tqFYAR+kEZkdNwPrmF9dQffWX4tePw5bXOsuMfxNonNhKs/uLPJtU4HAQ99pt221H5CJlro5jnH5umqZNSfWndAdntlxJ1uQqwooCIYa4s7hL0oC440x7hh2rAGJ0d395l3E4r+SRMiiwAs7iF9T5yTwNUvyboxwoHkc/EM93uUljOV2DJMHdIkKma3hyhJBigCUQVc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.0
Release Details
UpdatedSept. 29, 2026, 1:11 p.m.
Changelog

The first version. Everything below is new, because there was nothing before it.

Added

  • Documents are ordinary .html files in the user's own Nextcloud Files, saved complete with their stylesheet — no proprietary format, no import or export step.
  • Editing surface built on contenteditable with an editing engine of its own (Selection/Range), so the markup it writes stays clean: <strong>, <em>, <mark class="…"> and classes rather than editor litter.
  • Paper setup in millimetres: A3/A4/A5/B4/B5/Letter/Legal, portrait or landscape, four margins, serif or sans body, body size in points — written into the file as an @page rule.
  • Page guides on screen showing where each printed page ends.
  • Headings, quotations, preformatted text, bulleted and numbered lists, alignment and indentation, tables (three border styles, optional header row), callout boxes (rounded, square, dashed, tinted, side-bar note), horizontal rules and page breaks.
  • Highlighting in five colours, free text colour, emphasis dots, superscript, subscript and inline code.
  • Formulas as native MathML, with a starter palette and a live preview.
  • Undo and redo kept by the editor itself, with keyboard shortcuts.
  • Printing and PDF export through the browser, from an isolated copy of the file itself, so what prints is exactly what is stored.
  • Autosave, document duplication, renaming, deletion and download.
  • Readings over words (ruby), at half size, with room kept for them so they never sit on the line above, and brackets in the file for browsers that cannot draw them — 滅多(めった).
  • A frame too tall for the page it stands on carries its writing on into a frame of the same shape inside the next page, cut at the line rather than at the edge of the paper. The carried-on frame is ordinary markup, so the saved file prints the same way in any browser.
  • A frame placed by hand carries its writing on the same way, into a frame of its own inside the next page; and anything placed by hand keeps to one sheet, moving down to the next page rather than being printed cut in two by the edge of the paper. Where the writer put it is remembered, so it goes back as soon as the page has room for it again.
  • A blank page can be put in above or below any page, from the right button in the page bar.
  • The document's own stylesheet, written by hand: a CSS box in the styles dialogue for anything the boxes above it cannot say — the look of headings, lists, quotations and the rest. It goes into the file itself, so the page prints that way anywhere, and the editor shows it as it is typed.
  • The right button on a document in the list opens it, copies it, throws it away, or tells what it is: the file's name and where it is, its size, when it was last saved, the paper it is set on, and how much is written in it.
  • A running header and footer that really do repeat on every printed page: the writing is put in a table of one cell, which is the one thing a browser repeats across a page break, and each of them stands in a band of its own that the writing never runs into. What they say can carry the title of the document, its file name and the date and time it was saved, written in braces and filled in as the file is written.
  • A check over the document: what is wrong with the page that a writer cannot see by looking at it -- a thing drawn across the edge of the paper, words running under something that was told to part them, a frame holding more than it can show, a photograph heavy enough to make the file slow, a page with nothing on it. Each one says which page it is on and takes you there.
  • Versions kept beside the document: the state before each save is written to a file of its own in the same folder, named after the document with its extension replaced by a number -- 報告書.html keeps 報告書.#01, the newest, with the older ones shifting down as far as the writer allows (up to 99, ten by default, nought for none). They are plain HTML like everything else, so a version opens in any browser. A version is taken when the writer saves; the autosave can be made to take one too. They follow the document when it is renamed or moved to another category, and go with it when it is deleted. Putting one back keeps what was there as a version of its own, so that can be undone in turn.
  • A view of the raw HTML of the current document.
  • A layer bar and a page bar down the right. Every row of the layer bar can be dragged with the mouse: dropped on another row it joins that thing's layer, on a layer's heading it moves to that layer, and above or below them all it gets a layer of its own. Anything that is not standing on the paper moves through the document instead. The levels are renumbered from the bottom after every change, so they stay one apart with nothing empty in between. The two places to drop for a layer of one's own stay pinned at the top and the bottom of the bar, and the list scrolls itself when a row is held near either end, so they can be reached however long the list is. A dragged row travels with the pointer, and a place that would do nothing is greyed out with the reason written in it rather than quietly ignoring the drop. The numbers shown in the bar close up after a deletion, but only in what is shown: looking at the bar never rewrites the levels in the document, which would move things in the pile and change which of two overlapping things the writing flows around. A layer itself is dragged by its heading and everything on it moves together, and a new empty layer is made with the button in the bar's head and becomes real when the first thing is dropped into it. A thing drawn on the page has no level of its own; the bar shows it at the level the browser actually paints it, and writes the levels down the moment the writer moves something through the pile.
  • Categories down the left: a document can be filed in a folder inside the save folder, and the list shows one box per category — coloured as the writer likes, opening one at a time, with documents carried between them by dragging a row on to another box. A category is an ordinary folder, so the same filing is there in Files.
  • Sharing with other accounts on this server, from the right button on a document or on a category: Nextcloud's own sharing, to read or to write, taken back from either place. A shared category hands over everything filed in it, and everything filed in it afterwards; somebody who may write in one can put new documents in it as well. What others have shared arrives under their own name in the list.
  • Writing in one document at the same time as somebody else, in a shared mode that begins the moment a second person opens it. Every block of the document carries a name of its own; what is typed goes to the others in about a second without waiting for a save, through a fast lane held in Nextcloud's own cache and never written to disk. Their caret is drawn with their name on it, and the paragraph somebody is writing in is held against the other person -- the one case that cannot be merged is prevented rather than lost. The file is still saved the ordinary way, and a save that would land on top of somebody else's is merged instead of winning. No service of its own and nothing to install; a document nobody else has open does none of this.
  • A styles designer: the look of every heading, list, quotation, table cell and caption in the document set by hand rather than by writing CSS -- typeface, size, colour, letter spacing, weight, alignment, line height, indent, the space above and below, a fill, a border on any side and the mark in front of a list item -- with a sample of the writing above the controls that changes as they are moved. The CSS is still there, folded away at the foot of the dialogue, for anyone who would rather write it.
  • Emoji: the whole Unicode set in nine groups, searchable by name in the user's own language, put in at the caret. The character is what goes into the file, so it is drawn by whatever emoji font the reader's machine has.
  • Light and dark themes, chosen per user, and English and Japanese translations.

  • Standard and free placement. Standard placement follows the rules of HTML and keeps clear of the text and of other objects (above and below, text to the left or to the right, and on both sides with JavaScript); free placement puts an object anywhere with CSS, over other things. The default is a setting.

  • Tables that calculate: formulas as in LibreOffice Calc (33 functions, ; or , between arguments, Err:522 for a circle), a formula bar with a list of the functions and cells picked into the formula by pressing them, column letters and row numbers round a chosen table, and number formats written as format codes.
  • Cell properties in tabs as in Excel — number format, alignment, font, borders drawn edge by edge (none, outline, inside, all), fill — for a block of cells chosen by dragging; optimal row height and column width.
  • Twenty heading designs, drawn with CSS alone, in one colour for every heading.
  • Web preview: the saved document opened as a web page, its JavaScript running.
  • Page numbers ({page}, {pages}) in the running header and footer.

Fixed

  • The editor no longer draws a sheet the printer does not make. It counted sheets from the height of the whole column of writing; the printer counts by what fits in each page's own text area. When the writing ended a little past a fold -- one empty paragraph was enough -- the editor showed a blank last page that never printed. The count now follows the writing page by page, and a blank page put in on purpose still counts as a page.
  • Anything standing on the page shows its own box when it is clicked, wherever in the box the click lands. A list, a quotation or a heading placed by hand was not counted as an object at all, so clicking one gave the box of whatever paragraph lay behind it; and a click on the transparent part of any object -- a picture's corner, the empty half of a list -- fell through in the same way. What stands under the pointer is now what is taken hold of, the innermost first and the one drawn on top before the one drawn under.
  • A running header and footer that stand where they were asked to stand: in the paper's own margin, three millimetres clear of the writing, as deep as the writer chooses up to the margin less those three. They are written into the page's own margin boxes, so the printer repeats them on every page and counts the pages itself -- {page} and {pages} are the printer's counters, not words. They can be typed straight into the band on the first sheet, and shown on every page or on the first alone. The writing does not move by a hair for them: it begins where the margin says it does.
  • Words no longer run through an object that stands beside another. A real float in the same paragraph was counted as taking room from every line of it, so a second object further down was left with no room to be kept clear of, and the words walked straight through it. What a float takes is now counted only on the lines it actually stands on.
  • Setting a size on the words chosen inside a 文字枠 no longer changes the whole frame. Clicking the size box on the toolbar takes the selection away before the value is read; the last run of words chosen is now remembered and put back.
  • A 文字枠 asked to hold a list, a table or a picture becomes a frame that can hold blocks, keeping its place and its size. It used to be thrown away and its words left standing loose on the page.
  • Styling a word inside a block that carries that style no longer takes the block apart: a 文字枠 with a size of its own was pulled out of the document when the size of a few words in it was changed.
  • Opening a document no longer counts as writing it. Setting the paper of the document being opened was taken for a change made by the writer, so the file was saved a couple of seconds later and a version kept of it: a document nobody had touched grew a snapshot every time it was looked at.
  • A long document opens in seconds rather than in half a minute, and the keyboard is free while it does. A frame carried over page by page was laid out again by the browser after every cut -- the whole document, every time -- so a story of a hundred and twenty pages was laid out a hundred and twenty times. What is far below the page being cut is now lifted out while that page is measured and put back afterwards, the pages are counted from one reading instead of one for every page, and a frame that cannot be made to fit is not laid out again and again in the hope of a different answer. Opening 銀河鉄道の夜 (35 pages) went from 39 seconds to 2.5, and こころ (127 pages) from 38 seconds to 6.
  • A table taller than the page is now carried on to the next page, cut between its rows -- and where a single row is taller than the page, cell by cell, the lists and the tables inside it cut in the same way. It used to stay whole in one frame and run off the paper: the editor drew eight sheets where the printer made thirteen pages. A head row is repeated on the next page as the printer repeats it, unless it is a banner deep enough to cost a third of the page.
  • A document with a frame carried on to another page could come back twice as long. The carried-on frame wore the same name as the frame it carries on from, so the machinery that folds in another person's writing took it for that frame and wrote the whole of it over the last link of the chain. Every carried-on frame now has a name of its own.
  • A block cut across three pages or more is put back as the one block it was. The mark saying "this was cut" was taken off as soon as the second piece was joined, so the third stood on as a block of its own -- which is how a table grew a repeated head row at every pass.
  • A frame that stops short because the next row will not fit is left alone. It was read as half empty and laid out again, over and over, without ever settling.
  • A table standing in another table's cell kept being taken apart. Its header row was read as the outer table's, so at every opening one more row was lifted out of the inner table and put at the top of the outer one: a Wikipedia article came back in a different order every time it was read, for ever. The head is now looked for in the table itself and nowhere else.
  • A document no longer grows every time it is saved. Cutting a paragraph at the very edge of a link left the link behind with nothing in it; the next pass cut at the same place and left another beside it. Those empty shells are taken off as the cut is made.
  • The screen and the printout now agree, measured page by page against Chrome's own printing: a frame carried on to the next page kept a top margin on paper that the editor did not draw, and a thing placed by hand was allowed to hang into the bottom margin, where the printer cut it in two and put the lower part on a sheet of its own.
  • Objects that keep the words clear no longer fight when they stand together. The room an object holds is a float, and floats wider than the column together do not sit side by side -- the second drops below the first, where it holds nothing off anything. So the room is now cut to what the other things on that line leave: what another band wants, and what a floated object has already taken, measured to the edge of the writing rather than from its own width. Three and a half millimetres of that difference was enough to send a band below a floated arrow and let two lines run straight through the list beside it.
  • A thing put down by hand now stays where it was dropped. Its place is kept as a distance from the line it hangs on, measured down a column with no page gaps in it, while the editor draws a column with a gap at every fold; the conversion between the two was wrong for a thing whose page was not its line's page, so a formula dragged thirty millimetres up the page came to rest forty down. The answer is now measured after the fact and the difference taken out.
  • Room can be made for a thing that stands below the last line of its frame: it had nothing to hang from, kept the far end of the frame as its line, and room is only ever made below that line -- so the words simply ran through it.
  • Anything with no writing in it -- a formula, a picture, a rule, an empty shape -- is now picked up anywhere on it. Only the eight pixels of its edge would take hold before, which on a formula four millimetres tall meant it could not be moved at all. Things that hold words still keep to their edge, because a click in the middle of those has to put the caret in the writing.
  • A thing placed inside a frame stays in that frame when the page has to give it room, instead of being stood on the foot of the page outside the box.

  • An item of a list is put in one level with Tab and taken out again with Shift+Tab, and what that makes is a list inside a list -- the markers change with the level (a ring under a dot, a square under that), a numbered list counts in letters inside and in small roman numerals inside that, and the file written is an ordinary nested list that reads correctly anywhere. It used to add an indent to the item and leave the list flat.

  • The little pages in the preview bar are the pages themselves, made small, rather than a plan of grey boxes.
  • A frame that carries its writing on to the next page now makes the editor draw that page. It was drawn below the last sheet while the printer duly made a second page.

  • Deleting everything in a document leaves a plain paragraph to type on. What was left before was the first block's tag, so a document that began with a heading was wiped to an empty heading and everything typed next came out as a heading too.

  • What is written to a file is cleaned on the way out as well as on the way in. Everything arriving is checked -- what is opened, what is pasted, what somebody else writing in the document sends -- but a saved file is opened by a browser with nothing else around it, so a script or a handler that ever found its way into the writing would have been written into a page and run when it was opened.

Known limits

  • Vertical writing does not yet have the newest page fitting: frames that carry their writing on to the next page, and keeping a thing placed by hand on one sheet, are written for horizontal text so far.
  • Printing has been checked in Chromium only.
  • Writing together is by the paragraph, not by the letter: the paragraph somebody is writing in is held against the other person rather than the two being merged character by character.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureGCteIVIZRYMXc9EhJguTH2XtBEj0RpKOHjO5suClV+bCjRHE1vNoqfE7lcIP7atPrfPPAHrah8Pq99CRR/fWlccaq108kthpgQ9sEDZT/RI4IGShhE45pIvybmg5jyT8CNrXryc8bF3GrLSiWRzmHLkHPlmv6e+uTKd4tQZ7/sd6NM++QhAkWAQONC2nobRmUJ7AZstLMcS8X0vLDJuphd8TGOXvfZ57OzZ0IgieFrD475HKaxpjSwrM4oq6fOcwFXbvaAWwh1J1y2Jtj1oghIdK9TaPOFIV0CS1DfQZPz7wwZ1wDlJ7vK6NqknP3mzsPXlqSx/5gQloCsVkp0HeRIWNt19IWHWkUZL3IMsCxTVcu90vcdbnrdmBKGd0AmSozFq9CHO1Fq2Ai2teucnedOpfA9HveF5FIn6Qc20qV8nMNFeTG5KsjMB0xUuXWVt4vCutHiDI8QzuH0zwoFHvCY+FnkeY/UMIGmsrWiPIoIJO0qGB1LZDZyiyDmvTgVsabRPINEqadZdkp5N4dEMXMrYS5W7Zv487Q/7ajBfjPr6YwM/cQftRKvD0rrgfx9/9/NC9C6Zc2pBbjorP/CDISNasUa2a80MiCz7iQnmtUvTV7QR8OA+oY1JmVmG0YrZkAnMmbKuR5OkHZrr0hMtDs/LeSwZStli5bKo/+RxHw1k=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 31

EditBase 0.3.0
Release Details
UpdatedOct. 7, 2026, 11:02 p.m.
Changelog

Added

  • An AI assistant, through the AI-Hub app: a chat above the Pages and Layers bars that knows EditBase, changes the open document when asked (every change undoable with Ctrl+Z) and reads from the other apps of the series only as the administrator allows. Administration settings → EditBase → AI assistant: on or off, who may use it, what it may read, web search. Shown only when AI-Hub is installed.
  • The widths of the Preview bar and the Layer bar can be set in px or % (Settings → View).
  • Tooltips of their own on every button, so the pointer never hides the caption.
  • Bundled samples: body text 12 pt (US GSA Section 508 guidance), and "More apps from KTEC" gives each app a page of its own, AI-Hub included.
  • The AI conversation can be saved to Files as Markdown, as it stands or summed up by the AI (two small buttons in the assistant's head; AI-Hub/EditBase/ in the writer's Files). The conversation of each document lasts while the tab is open and the writer stays logged in: a reload goes on with it, a new tab or a new login starts afresh.

Changed

  • The toolbar follows LibreOffice, Microsoft Office and Ichitaro: text and paragraph formatting in a second row of the top bar; the left column holds Insert (page break, table of contents, header and footer, rules among it), Drawing and View; the "Page layout" menu is gone.
  • After a forced page break the paragraph's space above is kept, as in LibreOffice; at a natural page break it is dropped.

Fixed

  • Counts on the screen take the singular for one ("1 page", "1 Seite", "1 caractère"), in every language, through Nextcloud's plural forms.
  • An unedited bundled sample is recognised by its text, not its bytes, so one that was merely opened and saved is still replaced when a new version ships.
  • A page fold never cut inside a word across a line break.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureTElgSpvGffZlhAYfGfibKmKXoXLm4AmwUUpBCH2zJtJm9kkkA4X1FkSF3qNprG8iaq8tntGHT3XLlbxWac8Bmbi3wK5tPQ0F64EBJwwT0LgbikNYAaKT0lvnJiUOUoqmUC+a8KWTTGL6ghR++rjSImAQU/SGe4eU4GN95L0oAqRMACNicf/h4yWwUUifggi7YqeiaImUO/olsZWJSMCYePh0JcbpE8LcXe4USsvLgrH3deBN6SMoURst96TKgutj0w4rgIU1VjSROzaE6cc+1jJf3AIXLIqcb0rMlwCi3jH40fdJBdO/tV6xg53IBRs/xBsw5rgnFMuo6rAopwAHhgdI/idHnDu0KzCuyRubREzNLCJCoNq/UzNgRnM6Zhch4lHizR4yaqaxHh8LZibqJRdOA89igZevyFDihbmPlsslHVjHIKkiWKwlAomQQBKvJg6hS8Y8fbKwICxjPUAiCrTIQUjAF2xd+b8kzao1SnEep0bff+LGUfBtS0uNI3bZL3lDnnZAt1nLgch+quuQN5cQsL5g55cBcZ8bMM5uVr7ZFDFRy3oTQQd7JkyYr4DQHt2ZxdYmdiYlOqbM2a5Fr/P8DK0cvfW4D8qey3GZ2a23rhMY2srhVJgEBwRJ+HnBjOWIAsRjY/hP43daQT9oOCvbT3XByxaDwLjniWyRBko=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.2.0
Release Details
UpdatedOct. 2, 2026, 4:33 a.m.
Changelog

Built and checked by laying out five Japanese government forms (an employment conditions notice, a resignation certificate, a CV, a wage ledger and a staff register) and printing them over the original PDFs: the rules land within 0.5 mm of the originals and nearly all of the text within 0.5 mm.

Added

  • Characters and lines per page. A page can be set up by the number of characters per line and lines per page, or by the character and line pitch in millimetres (to 0.001 mm). The screen and the printout match, and half-width letters take half a cell. A grid can be shown on the page.
  • Ruling mode. Draw a table by dragging on the page grid; press Tab while dragging to add lines. Draw over a line to change its kind (thin, solid, medium, thick, double, dotted, dashed), or erase it. Also draws diagonal lines, arrows, round, square and curly brackets, and polylines. Drawn lines snap to the lines already there. A table drawn on empty lines or below the text goes into the text (it takes its room, and the text below moves down as its cells grow); the lines down to it are added for you, as with click-and-type.
  • Tab positions. Left, centred, right and decimal tabs per paragraph, measured from the left indent. Set them in the paragraph's Tabs tab in millimetres, or press the ruler to place one, drag it to move it and drag it off the ruler to remove it.
  • Distribute. Spread the chosen characters over a given number of characters (to 0.01), and distribute the text of a table cell.
  • Line spacing by the line pitch. Fractions of a line (1/4 to 3/4), several lines, or any amount.
  • Raise or lower characters by a given number of points.
  • Table cells: width and row height in millimetres, separate inner margins on each side, vertical text, distributed alignment, and the paragraph settings of the lines inside a cell. Each line of a cell can be aligned on its own.
  • A 1 pt rule.
  • Documents can be put in order within a category by dragging them. "Sort by date modified" puts the order back.
  • Ctrl+Enter inserts a page break.
  • A setting makes Enter in a table cell start a new paragraph, as in LibreOffice. By default it still breaks the line.
  • In the properties of a placed object, its position is given from the top-left corner of the paper.

Fixed

  • A table placed after a page break on page 2 could be pulled up to the top of that page when its size was changed.
  • Placing an object that pushes the text aside could move the objects below it further than the text moved, and they did not come back when it was removed.
  • After a page break, an object's space above was lost when the page before was full.
  • The outer margin of an object with text wrapped round it was cleared every time its properties were applied.
  • Text in a middle- or bottom-aligned cell of a ruled table sat about 0.4 mm too low.
  • A size typed into the toolbar could be replaced by the old size before Enter was pressed.
  • Setting the size of all the text in a cell that already had a size could break the cell apart (data loss).
  • "No border" on a cell was lost when the document was saved.
  • An object hanging over the left or right margin made the whole printout shrink, or was cut off.
  • Changing one paragraph setting could clear indents set earlier.
  • A table inserted from the table dialog could land at the top of the document.
  • Changing a column width in a table split across pages could halve the first part.
  • Pasting into an empty table cell added empty lines.
  • Pasting several paragraphs into a list item produced invalid HTML.
  • After drawing or erasing lines, clicking a cell could fail to put the cursor in it.
  • Typing after Enter in a page with a character grid could join the previous line.
  • Half-width katakana is converted to full width.
  • Clicking or right-clicking the border of a block frame, a box or a note took the paragraph inside it. Near the border, the frame itself is taken.
  • Right-clicking a row in the layer bar could offer "Frame properties" for a paragraph or a shape.
  • Closing a dialog could jump the page to another page.

Changed

  • The right-button menu says what each kind of alignment acts on: "Position of the …" moves the object itself, "Alignment of the text" aligns the lines inside it.
  • A shape has one name everywhere.
  • Wording follows Word's page setup: "Characters and lines", "Characters per line", "Lines per page", "Show the character grid".
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignaturehqC/Hgvy8Nw81/ZVvUL2KX0xesdpCVTn0uZZjesJI2fkfxFEsimTuho4UE69wsuQgHAjBNjO3zhBoMKbKXzcmW5P91VzwRO1AwI76F5v32RRyHyUa0/T18kdgMM7rmmGq5f1c+GzUrv+8Sv6yk1DiHfHkUkieExV20UKZXMPuASp+HDFdT0sDO6ef+Mdb8dJrTEdg41OVTUQXB1AWh//TRqiKxCRBYnbkMoI2QVU9u1DiPoaiodHtTsBy0kWIUR4KcC6jGpn+rOmBnv3YxUCBKP2paH94kEZX1CrS5h9BCsbXDlZXjXP83y/qtHWko4C9MjV42KfCHlXpkLPAi6VsIezVa2sPCSZx/+cSmitFvKtMkHZ/BEPh5+/6LtrgSOEJG1Pm0qqu/YfYxsNSTtGZ3lumlevcAPYcQLRnP3znvaSFy5I8Q0+pG02LSkX58gs9pvvDhZOnWJ6TOxzl9qrqEI78E3uRfa5fuD15b8lNBJ921XkZV0mPsH1qXPlndsmCsJYknS4VeaFSlipB0c8cqGc/pia35cW9ovSZgg+0J7wl7hRQB72H6coz7u2aBs4ckmbMKQxUFUyOKQQ961p+Z3IYKWFTFUpqTL6PXeyTzR62OArzUlDiSxEVXymn/2rfdA7+814JhBT9N09waRqtUH00FOANZjr3XVcBXP+ogs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.4
Release Details
UpdatedSept. 30, 2026, 4:04 p.m.
Changelog

Fixed

  • Copying part of a paragraph with Ctrl+C and pasting it into a paragraph with Ctrl+V made a new paragraph. The words now go in where the cursor is. Whole paragraphs, tables and other blocks pasted into the middle of a paragraph split it and stand between the two halves, instead of ending up inside it.
  • A paragraph set to "words to its right" (or left) that ran over several pages started its next part in the bottom margin of the page and ran across the page break. Each part now starts at the top of the next page's text area.
  • The page thumbnails could keep showing the layout from the middle of a re-pagination (a heading halfway down the wrong page, an empty last page) after the wrap of an object was changed. They are redrawn whenever the pages are laid out again.
  • "Fit to the column width" on a paragraph inside a block frame made it as wide as the page column, so it ran out of the right side of the frame. Inside a frame, a box, a note or a table cell it now fills the inside of that box.
  • Ctrl+Home and Ctrl+End go to the first and last words of the body text. They could put the cursor inside a shape placed elsewhere on the page.

Changed

  • Headings are spaced as in LibreOffice Writer: space above and below of 12/6 pt for Heading 1, 10/6, 7/6, 6/6, 6/3 and 3/3 pt for Headings 2 to 6, and single line height. The old spacing left about a line of empty space under every heading. Spacing set in the style dialog is kept.
  • Block frames, boxes and notes have no inner margin unless one is set: the text touches the frame, as in a word processor. The inner margin is set in the properties.
  • In the properties, the outer margins (top, bottom, left, right) and the inner margin are on the Placement tab together, named so that inside and outside can be told apart.
  • A frame is taken by clicking its border or just outside it. Inside the frame, a click goes to the words, even right next to the border.
  • Japanese: the block frame is called まとめ枠 again.

Removed

  • The dotted box drawn round the phrase at the cursor, and turning chosen words into a frame of their own. Documents that have such word frames get their words back as ordinary text when they are opened.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureCPxVuRD98VkEQD8XZ1WARQAh0btPA+UprBoyyP5vu3A9hYMNsofITBO+0YMKw2wXwcSKTdw4A03WOexEjbvGeKMZa/tkplYy1IYyJTQ09Nd9hhWibMuNSnBfYSmYWJAljCMDBRAylkLKw2Tw4rgkBGaccrqjXVAblbhWbDGYc0J/BBx3lSWT+N6SYKOxigQQuF6Fma85/BJ3IjQQgWqIy7FsQKqjymMYtMZ8GlDDK+tIqU4zfgDn70Y4Hbrpiw8TVUQ9TxLqLCTrx4QRGkTCPB/1hYDmMYVnNrTiZWrKDoQkz69WVs0lXFmiIhFZ/bZlHG0lSzjMwy/WV8LjqJgdleWSk1dkj0IzB/5KHtqk1cDNN3+MhILbnmwrEndMCsD9g2WyD02UnCjExX+tQEshjktfc/8YW+5aUvgMRzexC+uuzb+b8UKoWH1S28Jw64AyCB7sZXRhAibKLCE3XbVYdoo8IF+55FHrbOj7/SWx9k6/UZGj3eWl3npZaDb9GP60ch45UmtgCzwq27GUu5O1SGc6JbMo8p4rL73jCPZHiSWRtNGdX/eWlHqdu2IeWXeirGBit4tb0cqbvLzLjDHcUsFzercYQvySeJxbFHcGehmnQThtaLUAepv+B+8QHAoTMFwHdG4AT9PWS+Zn0gWdHyJP0CElMbV+ne9T2DSHqgE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.3
Release Details
UpdatedSept. 30, 2026, 8:42 a.m.
Changelog

Added

  • Settings → Unit for indents: pt (the default), mm or characters. The indent boxes in the paragraph properties are labelled and filled in that unit, and indents set there or on the ruler are written into the file in it. Characters are written as CSS em, so an indent of two characters stays two characters when the letters are made bigger.
  • Settings → Unit for the ruler: pt, px, mm, cm (the default, as before) or inches. The ruler is marked in that unit, and the indent and margin handles move 1 pt, 1 px, 1 mm, 1 cm or 0.1 inch at a time.
  • Settings → Show spaces (half-width, full-width and tabs), off by default. Half-width spaces are marked ·, full-width spaces □ and tabs →. The marks are drawn over the page only: nothing is written into the document, and they are neither saved nor printed.
  • Settings → Let the Delete key delete an object frame, off by default (see Changed).
  • The paragraph properties open on a new first tab, Indents and spacing: alignment, line height, space above and below, the left, right and first-line indents, and the page-break options. A paragraph's rule and shading stay on the Borders and Area tabs.

Changed

  • The ruler is a bar of its own under the toolbar, across the whole width, with its scale lined up with the paper. It follows zooming and scrolling.
  • The ruler follows the paragraph the caret is in. Inside a block frame, a text frame or a table cell, its white band and its zero are the inside of that box, and the handles stand on the paragraph's own indents. The page-margin handles are shown for the body text only. The indents shown are the ones in effect, including those that come from a style.
  • The indent handles keep the ordinary arrow pointer, so the pointer no longer hides the handle being grabbed.
  • Clicking or right-clicking a paragraph inside a block frame, a box or a note takes the paragraph, with its own toolbar and its own menu (paragraph properties). The frame itself is taken by clicking its edge, or its background outside the paragraphs.
  • Backspace never deletes a selected object. The Delete key deletes an object (a frame, text frame, picture, shape, table, line…) only when the new setting is on. The Delete item in the right-button menu and the delete button on the toolbar work as before.
  • The Paragraph settings… item is gone from the right-button menu: everything in it is on the Indents and spacing tab of the paragraph properties.

Fixed

  • A horizontal scrollbar appeared with no page to the right of the paper. The ruler's background band reached past the page area.
  • An empty paragraph left in the writing (layer 0) could be deleted from the toolbar but not from the layer bar's right-button menu. Both now follow one rule: the last paragraph can be deleted while other objects remain on the page, and is kept only when deleting it would leave nothing at all.
  • The ruler's first-line, left and right indent handles had no effect on a paragraph inside a frame: they were measured from the page margins, not from the box the paragraph is in.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureiL+2onHWy6zn78lm9lxgs3jS13vxeoL4Q++kWZPfUPocSWC9Kr6zK3wIbUN5kYZbyJKWRSD5U8PezfYzH+PoTY3ikfqf62+EAbrU61zT0cp9VPR82NGdVHXozGeU2cDt6MsVQY+MtKJsDXW7yxWDEgASLmBGc5Ks0ah2F6kTAWWh8KgByMnb1lwmux1A4pYwwZM559ZBdzOI40TPqnmJfeYCCoH431AdgksXtQSwaJ7KwD5dQc5Q3bKRpfXHX4ua2qmoNOew0pdIfuoJR6PxN8B0TM6y3VWW3BQLFwK1Z8flqA6/sg4tN9ZIgve0vJVUPgja1ixiWE00r2RVZe7G7CQSuz0ySEmBhe67mje3zTX8kKsov3m2YlWCtxBNAqvPZxpOiybshf/hayI4IOhVKbmazV8YWqcodhp6MIZyCW4dLWHBt+qmBnP93tycq1alvneCi4gyrLx7nbmnmmNRbpuYatdF0c+tLJdjZxCxwh5etlG3fzWcbY97t2sZ1nXID68R8qJFJpOMJdCRmsq9slcT/ndwjlL0LnPgygrdpgYi11EppTJ/Sh1Wr6t14PSFrpi9uy0w17VizXDHkkxV0AswAVXi67/SvICPy+SfHnma5lMqzBG/4xhJ6X+LXmBTlujFVNsMU0R0FpfVKjnAZewI5W1s9BHRsagfVN55sD8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.2
Release Details
UpdatedSept. 29, 2026, 3:09 p.m.
Changelog

Fixed

  • The right button on a category shows the category's own items only; the menu for writing (cut, paste, view…) came after them.

Added

  • Delete the category, from its right-button menu. Only an empty category can be deleted: one with documents in it says how many, and is kept until they are moved or deleted. The folder goes to Nextcloud's trash.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
Signatureiw6UI+ezyktuqvBRGuCa8rseR+8cfcLHEmbaywtrIdU2jz5QiT695Nrgi8S61OI5l9KtJmtex/fe/OlxS9RS6x+4/LKJbHvl5KCGtV+En3184pdw2OBgWVvAxRGhXxToKmj8u2ho2KgOHQxbTfOUnUQkCKmhrEYI34lDlsWtb8jtx7Vlk9fLl3+Fr7p2upFwv+HjgjvnlmvT/ANHA4oKCxLjI6qydbjq1bKwY7Qp5jEiWJLOQ+l1Wa9TQm6evYEAy3nfE/3IAbBKvOn8RnDJYmvjy4/J7qc3J9SpRwNgYyhCr7r9NuF1mk5JJlBfg1ulrDxXacVibDXoPURlTyiIkKGZx7m0srL9AC2ggZvyUxX5jFPOf/JtdL7NvrQ6mzwKkwOFOqp7RXc6i3guBqza6bqV4IggrbyYQDO+UKudV4/AlriDCuo45T6YD8lKM9rMRGXPi0zQYsMeTUhF4vlobHR7/ChE17CUonengQvPx1BLItv/7LDi24ZCaTlgqnZ2mQtk7JZz4FBx1RFFVPSwnhdZvnfkXfAReaTs502c6XiOcvLa24qKjXyR/SG3K086yS0pHPsgX64jOj18WGQ07oxHX4eOR5yAca0J3oX/SVHFY9OcAGPyLtndyySkWR+Pxs7D3Xk6yEGZPPMdqv6dhW+p9ZfAhsZHbj2Sxh99tTI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.1
Release Details
UpdatedSept. 29, 2026, 1:54 p.m.
Changelog

Fixed

  • Web preview shows the document as it is open in the editor, page by page, including changes not yet saved. It showed the file as saved, and a document saved by an earlier version had no page divisions: everything after the first page ran off the sheet.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureUKSIHhsy6i6Pp0kif/B965Lh5VMWGQkA0V42XAjQRZFYKF9bvU8jmz/B7oIx2OmVEklGOP88waWUOn69AOLzdhz4eWif/L4MQUgaEfFbcX6vOlWwVGCBwBqtyMpB7wLtBJ34qBEvcSyCrFZPhJzYOp//XfY0jZnzMozoq47p+pFgHaXGXZLqFLu2iNdp4V6Ceo7iG2dflxraFOfTSU5vjwppby3Chm0xDYQMMQRV+AgBtktwB5SqfwJZskj3ksPxa+Wl/nhs+v9sp8TPHcEM8jfBpieZxtmjekLRGspEZpwiNBqQcInL5YWf6P48kEYxedSPQ324S0xcBk3q7dpgsOzYBjzEcxe1SekOjm9bw7qILEruO6Mi5/Sh8r6q2cjmH7SeMUpCmYmgfWn+R4RHYszdcvdaMul5lrAvdRRJrV4SF2j/RnR/H4JqFteEvyLzxDHZBjjpFbNNrIjfHJbBZqSACRP2hV/apjA5tqFYAR+kEZkdNwPrmF9dQffWX4tePw5bXOsuMfxNonNhKs/uLPJtU4HAQ99pt221H5CJlro5jnH5umqZNSfWndAdntlxJ1uQqwooCIYa4s7hL0oC440x7hh2rAGJ0d395l3E4r+SRMiiwAs7iF9T5yTwNUvyboxwoHkc/EM93uUljOV2DJMHdIkKma3hyhJBigCUQVc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.0
Release Details
UpdatedSept. 29, 2026, 1:11 p.m.
Changelog

The first version. Everything below is new, because there was nothing before it.

Added

  • Documents are ordinary .html files in the user's own Nextcloud Files, saved complete with their stylesheet — no proprietary format, no import or export step.
  • Editing surface built on contenteditable with an editing engine of its own (Selection/Range), so the markup it writes stays clean: <strong>, <em>, <mark class="…"> and classes rather than editor litter.
  • Paper setup in millimetres: A3/A4/A5/B4/B5/Letter/Legal, portrait or landscape, four margins, serif or sans body, body size in points — written into the file as an @page rule.
  • Page guides on screen showing where each printed page ends.
  • Headings, quotations, preformatted text, bulleted and numbered lists, alignment and indentation, tables (three border styles, optional header row), callout boxes (rounded, square, dashed, tinted, side-bar note), horizontal rules and page breaks.
  • Highlighting in five colours, free text colour, emphasis dots, superscript, subscript and inline code.
  • Formulas as native MathML, with a starter palette and a live preview.
  • Undo and redo kept by the editor itself, with keyboard shortcuts.
  • Printing and PDF export through the browser, from an isolated copy of the file itself, so what prints is exactly what is stored.
  • Autosave, document duplication, renaming, deletion and download.
  • Readings over words (ruby), at half size, with room kept for them so they never sit on the line above, and brackets in the file for browsers that cannot draw them — 滅多(めった).
  • A frame too tall for the page it stands on carries its writing on into a frame of the same shape inside the next page, cut at the line rather than at the edge of the paper. The carried-on frame is ordinary markup, so the saved file prints the same way in any browser.
  • A frame placed by hand carries its writing on the same way, into a frame of its own inside the next page; and anything placed by hand keeps to one sheet, moving down to the next page rather than being printed cut in two by the edge of the paper. Where the writer put it is remembered, so it goes back as soon as the page has room for it again.
  • A blank page can be put in above or below any page, from the right button in the page bar.
  • The document's own stylesheet, written by hand: a CSS box in the styles dialogue for anything the boxes above it cannot say — the look of headings, lists, quotations and the rest. It goes into the file itself, so the page prints that way anywhere, and the editor shows it as it is typed.
  • The right button on a document in the list opens it, copies it, throws it away, or tells what it is: the file's name and where it is, its size, when it was last saved, the paper it is set on, and how much is written in it.
  • A running header and footer that really do repeat on every printed page: the writing is put in a table of one cell, which is the one thing a browser repeats across a page break, and each of them stands in a band of its own that the writing never runs into. What they say can carry the title of the document, its file name and the date and time it was saved, written in braces and filled in as the file is written.
  • A check over the document: what is wrong with the page that a writer cannot see by looking at it -- a thing drawn across the edge of the paper, words running under something that was told to part them, a frame holding more than it can show, a photograph heavy enough to make the file slow, a page with nothing on it. Each one says which page it is on and takes you there.
  • Versions kept beside the document: the state before each save is written to a file of its own in the same folder, named after the document with its extension replaced by a number -- 報告書.html keeps 報告書.#01, the newest, with the older ones shifting down as far as the writer allows (up to 99, ten by default, nought for none). They are plain HTML like everything else, so a version opens in any browser. A version is taken when the writer saves; the autosave can be made to take one too. They follow the document when it is renamed or moved to another category, and go with it when it is deleted. Putting one back keeps what was there as a version of its own, so that can be undone in turn.
  • A view of the raw HTML of the current document.
  • A layer bar and a page bar down the right. Every row of the layer bar can be dragged with the mouse: dropped on another row it joins that thing's layer, on a layer's heading it moves to that layer, and above or below them all it gets a layer of its own. Anything that is not standing on the paper moves through the document instead. The levels are renumbered from the bottom after every change, so they stay one apart with nothing empty in between. The two places to drop for a layer of one's own stay pinned at the top and the bottom of the bar, and the list scrolls itself when a row is held near either end, so they can be reached however long the list is. A dragged row travels with the pointer, and a place that would do nothing is greyed out with the reason written in it rather than quietly ignoring the drop. The numbers shown in the bar close up after a deletion, but only in what is shown: looking at the bar never rewrites the levels in the document, which would move things in the pile and change which of two overlapping things the writing flows around. A layer itself is dragged by its heading and everything on it moves together, and a new empty layer is made with the button in the bar's head and becomes real when the first thing is dropped into it. A thing drawn on the page has no level of its own; the bar shows it at the level the browser actually paints it, and writes the levels down the moment the writer moves something through the pile.
  • Categories down the left: a document can be filed in a folder inside the save folder, and the list shows one box per category — coloured as the writer likes, opening one at a time, with documents carried between them by dragging a row on to another box. A category is an ordinary folder, so the same filing is there in Files.
  • Sharing with other accounts on this server, from the right button on a document or on a category: Nextcloud's own sharing, to read or to write, taken back from either place. A shared category hands over everything filed in it, and everything filed in it afterwards; somebody who may write in one can put new documents in it as well. What others have shared arrives under their own name in the list.
  • Writing in one document at the same time as somebody else, in a shared mode that begins the moment a second person opens it. Every block of the document carries a name of its own; what is typed goes to the others in about a second without waiting for a save, through a fast lane held in Nextcloud's own cache and never written to disk. Their caret is drawn with their name on it, and the paragraph somebody is writing in is held against the other person -- the one case that cannot be merged is prevented rather than lost. The file is still saved the ordinary way, and a save that would land on top of somebody else's is merged instead of winning. No service of its own and nothing to install; a document nobody else has open does none of this.
  • A styles designer: the look of every heading, list, quotation, table cell and caption in the document set by hand rather than by writing CSS -- typeface, size, colour, letter spacing, weight, alignment, line height, indent, the space above and below, a fill, a border on any side and the mark in front of a list item -- with a sample of the writing above the controls that changes as they are moved. The CSS is still there, folded away at the foot of the dialogue, for anyone who would rather write it.
  • Emoji: the whole Unicode set in nine groups, searchable by name in the user's own language, put in at the caret. The character is what goes into the file, so it is drawn by whatever emoji font the reader's machine has.
  • Light and dark themes, chosen per user, and English and Japanese translations.

  • Standard and free placement. Standard placement follows the rules of HTML and keeps clear of the text and of other objects (above and below, text to the left or to the right, and on both sides with JavaScript); free placement puts an object anywhere with CSS, over other things. The default is a setting.

  • Tables that calculate: formulas as in LibreOffice Calc (33 functions, ; or , between arguments, Err:522 for a circle), a formula bar with a list of the functions and cells picked into the formula by pressing them, column letters and row numbers round a chosen table, and number formats written as format codes.
  • Cell properties in tabs as in Excel — number format, alignment, font, borders drawn edge by edge (none, outline, inside, all), fill — for a block of cells chosen by dragging; optimal row height and column width.
  • Twenty heading designs, drawn with CSS alone, in one colour for every heading.
  • Web preview: the saved document opened as a web page, its JavaScript running.
  • Page numbers ({page}, {pages}) in the running header and footer.

Fixed

  • The editor no longer draws a sheet the printer does not make. It counted sheets from the height of the whole column of writing; the printer counts by what fits in each page's own text area. When the writing ended a little past a fold -- one empty paragraph was enough -- the editor showed a blank last page that never printed. The count now follows the writing page by page, and a blank page put in on purpose still counts as a page.
  • Anything standing on the page shows its own box when it is clicked, wherever in the box the click lands. A list, a quotation or a heading placed by hand was not counted as an object at all, so clicking one gave the box of whatever paragraph lay behind it; and a click on the transparent part of any object -- a picture's corner, the empty half of a list -- fell through in the same way. What stands under the pointer is now what is taken hold of, the innermost first and the one drawn on top before the one drawn under.
  • A running header and footer that stand where they were asked to stand: in the paper's own margin, three millimetres clear of the writing, as deep as the writer chooses up to the margin less those three. They are written into the page's own margin boxes, so the printer repeats them on every page and counts the pages itself -- {page} and {pages} are the printer's counters, not words. They can be typed straight into the band on the first sheet, and shown on every page or on the first alone. The writing does not move by a hair for them: it begins where the margin says it does.
  • Words no longer run through an object that stands beside another. A real float in the same paragraph was counted as taking room from every line of it, so a second object further down was left with no room to be kept clear of, and the words walked straight through it. What a float takes is now counted only on the lines it actually stands on.
  • Setting a size on the words chosen inside a 文字枠 no longer changes the whole frame. Clicking the size box on the toolbar takes the selection away before the value is read; the last run of words chosen is now remembered and put back.
  • A 文字枠 asked to hold a list, a table or a picture becomes a frame that can hold blocks, keeping its place and its size. It used to be thrown away and its words left standing loose on the page.
  • Styling a word inside a block that carries that style no longer takes the block apart: a 文字枠 with a size of its own was pulled out of the document when the size of a few words in it was changed.
  • Opening a document no longer counts as writing it. Setting the paper of the document being opened was taken for a change made by the writer, so the file was saved a couple of seconds later and a version kept of it: a document nobody had touched grew a snapshot every time it was looked at.
  • A long document opens in seconds rather than in half a minute, and the keyboard is free while it does. A frame carried over page by page was laid out again by the browser after every cut -- the whole document, every time -- so a story of a hundred and twenty pages was laid out a hundred and twenty times. What is far below the page being cut is now lifted out while that page is measured and put back afterwards, the pages are counted from one reading instead of one for every page, and a frame that cannot be made to fit is not laid out again and again in the hope of a different answer. Opening 銀河鉄道の夜 (35 pages) went from 39 seconds to 2.5, and こころ (127 pages) from 38 seconds to 6.
  • A table taller than the page is now carried on to the next page, cut between its rows -- and where a single row is taller than the page, cell by cell, the lists and the tables inside it cut in the same way. It used to stay whole in one frame and run off the paper: the editor drew eight sheets where the printer made thirteen pages. A head row is repeated on the next page as the printer repeats it, unless it is a banner deep enough to cost a third of the page.
  • A document with a frame carried on to another page could come back twice as long. The carried-on frame wore the same name as the frame it carries on from, so the machinery that folds in another person's writing took it for that frame and wrote the whole of it over the last link of the chain. Every carried-on frame now has a name of its own.
  • A block cut across three pages or more is put back as the one block it was. The mark saying "this was cut" was taken off as soon as the second piece was joined, so the third stood on as a block of its own -- which is how a table grew a repeated head row at every pass.
  • A frame that stops short because the next row will not fit is left alone. It was read as half empty and laid out again, over and over, without ever settling.
  • A table standing in another table's cell kept being taken apart. Its header row was read as the outer table's, so at every opening one more row was lifted out of the inner table and put at the top of the outer one: a Wikipedia article came back in a different order every time it was read, for ever. The head is now looked for in the table itself and nowhere else.
  • A document no longer grows every time it is saved. Cutting a paragraph at the very edge of a link left the link behind with nothing in it; the next pass cut at the same place and left another beside it. Those empty shells are taken off as the cut is made.
  • The screen and the printout now agree, measured page by page against Chrome's own printing: a frame carried on to the next page kept a top margin on paper that the editor did not draw, and a thing placed by hand was allowed to hang into the bottom margin, where the printer cut it in two and put the lower part on a sheet of its own.
  • Objects that keep the words clear no longer fight when they stand together. The room an object holds is a float, and floats wider than the column together do not sit side by side -- the second drops below the first, where it holds nothing off anything. So the room is now cut to what the other things on that line leave: what another band wants, and what a floated object has already taken, measured to the edge of the writing rather than from its own width. Three and a half millimetres of that difference was enough to send a band below a floated arrow and let two lines run straight through the list beside it.
  • A thing put down by hand now stays where it was dropped. Its place is kept as a distance from the line it hangs on, measured down a column with no page gaps in it, while the editor draws a column with a gap at every fold; the conversion between the two was wrong for a thing whose page was not its line's page, so a formula dragged thirty millimetres up the page came to rest forty down. The answer is now measured after the fact and the difference taken out.
  • Room can be made for a thing that stands below the last line of its frame: it had nothing to hang from, kept the far end of the frame as its line, and room is only ever made below that line -- so the words simply ran through it.
  • Anything with no writing in it -- a formula, a picture, a rule, an empty shape -- is now picked up anywhere on it. Only the eight pixels of its edge would take hold before, which on a formula four millimetres tall meant it could not be moved at all. Things that hold words still keep to their edge, because a click in the middle of those has to put the caret in the writing.
  • A thing placed inside a frame stays in that frame when the page has to give it room, instead of being stood on the foot of the page outside the box.

  • An item of a list is put in one level with Tab and taken out again with Shift+Tab, and what that makes is a list inside a list -- the markers change with the level (a ring under a dot, a square under that), a numbered list counts in letters inside and in small roman numerals inside that, and the file written is an ordinary nested list that reads correctly anywhere. It used to add an indent to the item and leave the list flat.

  • The little pages in the preview bar are the pages themselves, made small, rather than a plan of grey boxes.
  • A frame that carries its writing on to the next page now makes the editor draw that page. It was drawn below the last sheet while the printer duly made a second page.

  • Deleting everything in a document leaves a plain paragraph to type on. What was left before was the first block's tag, so a document that began with a heading was wiped to an empty heading and everything typed next came out as a heading too.

  • What is written to a file is cleaned on the way out as well as on the way in. Everything arriving is checked -- what is opened, what is pasted, what somebody else writing in the document sends -- but a saved file is opened by a browser with nothing else around it, so a script or a handler that ever found its way into the writing would have been written into a page and run when it was opened.

Known limits

  • Vertical writing does not yet have the newest page fitting: frames that carry their writing on to the next page, and keeping a thing placed by hand on one sheet, are written for horizontal text so far.
  • Printing has been checked in Chromium only.
  • Writing together is by the paragraph, not by the letter: the paragraph somebody is writing in is held against the other person rather than the two being merged character by character.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureGCteIVIZRYMXc9EhJguTH2XtBEj0RpKOHjO5suClV+bCjRHE1vNoqfE7lcIP7atPrfPPAHrah8Pq99CRR/fWlccaq108kthpgQ9sEDZT/RI4IGShhE45pIvybmg5jyT8CNrXryc8bF3GrLSiWRzmHLkHPlmv6e+uTKd4tQZ7/sd6NM++QhAkWAQONC2nobRmUJ7AZstLMcS8X0vLDJuphd8TGOXvfZ57OzZ0IgieFrD475HKaxpjSwrM4oq6fOcwFXbvaAWwh1J1y2Jtj1oghIdK9TaPOFIV0CS1DfQZPz7wwZ1wDlJ7vK6NqknP3mzsPXlqSx/5gQloCsVkp0HeRIWNt19IWHWkUZL3IMsCxTVcu90vcdbnrdmBKGd0AmSozFq9CHO1Fq2Ai2teucnedOpfA9HveF5FIn6Qc20qV8nMNFeTG5KsjMB0xUuXWVt4vCutHiDI8QzuH0zwoFHvCY+FnkeY/UMIGmsrWiPIoIJO0qGB1LZDZyiyDmvTgVsabRPINEqadZdkp5N4dEMXMrYS5W7Zv487Q/7ajBfjPr6YwM/cQftRKvD0rrgfx9/9/NC9C6Zc2pBbjorP/CDISNasUa2a80MiCz7iQnmtUvTV7QR8OA+oY1JmVmG0YrZkAnMmbKuR5OkHZrr0hMtDs/LeSwZStli5bKo/+RxHw1k=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32

Nextcloud 30

EditBase 0.3.0
Release Details
UpdatedOct. 7, 2026, 11:02 p.m.
Changelog

Added

  • An AI assistant, through the AI-Hub app: a chat above the Pages and Layers bars that knows EditBase, changes the open document when asked (every change undoable with Ctrl+Z) and reads from the other apps of the series only as the administrator allows. Administration settings → EditBase → AI assistant: on or off, who may use it, what it may read, web search. Shown only when AI-Hub is installed.
  • The widths of the Preview bar and the Layer bar can be set in px or % (Settings → View).
  • Tooltips of their own on every button, so the pointer never hides the caption.
  • Bundled samples: body text 12 pt (US GSA Section 508 guidance), and "More apps from KTEC" gives each app a page of its own, AI-Hub included.
  • The AI conversation can be saved to Files as Markdown, as it stands or summed up by the AI (two small buttons in the assistant's head; AI-Hub/EditBase/ in the writer's Files). The conversation of each document lasts while the tab is open and the writer stays logged in: a reload goes on with it, a new tab or a new login starts afresh.

Changed

  • The toolbar follows LibreOffice, Microsoft Office and Ichitaro: text and paragraph formatting in a second row of the top bar; the left column holds Insert (page break, table of contents, header and footer, rules among it), Drawing and View; the "Page layout" menu is gone.
  • After a forced page break the paragraph's space above is kept, as in LibreOffice; at a natural page break it is dropped.

Fixed

  • Counts on the screen take the singular for one ("1 page", "1 Seite", "1 caractère"), in every language, through Nextcloud's plural forms.
  • An unedited bundled sample is recognised by its text, not its bytes, so one that was merely opened and saved is still replaced when a new version ships.
  • A page fold never cut inside a word across a line break.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureTElgSpvGffZlhAYfGfibKmKXoXLm4AmwUUpBCH2zJtJm9kkkA4X1FkSF3qNprG8iaq8tntGHT3XLlbxWac8Bmbi3wK5tPQ0F64EBJwwT0LgbikNYAaKT0lvnJiUOUoqmUC+a8KWTTGL6ghR++rjSImAQU/SGe4eU4GN95L0oAqRMACNicf/h4yWwUUifggi7YqeiaImUO/olsZWJSMCYePh0JcbpE8LcXe4USsvLgrH3deBN6SMoURst96TKgutj0w4rgIU1VjSROzaE6cc+1jJf3AIXLIqcb0rMlwCi3jH40fdJBdO/tV6xg53IBRs/xBsw5rgnFMuo6rAopwAHhgdI/idHnDu0KzCuyRubREzNLCJCoNq/UzNgRnM6Zhch4lHizR4yaqaxHh8LZibqJRdOA89igZevyFDihbmPlsslHVjHIKkiWKwlAomQQBKvJg6hS8Y8fbKwICxjPUAiCrTIQUjAF2xd+b8kzao1SnEep0bff+LGUfBtS0uNI3bZL3lDnnZAt1nLgch+quuQN5cQsL5g55cBcZ8bMM5uVr7ZFDFRy3oTQQd7JkyYr4DQHt2ZxdYmdiYlOqbM2a5Fr/P8DK0cvfW4D8qey3GZ2a23rhMY2srhVJgEBwRJ+HnBjOWIAsRjY/hP43daQT9oOCvbT3XByxaDwLjniWyRBko=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.2.0
Release Details
UpdatedOct. 2, 2026, 4:33 a.m.
Changelog

Built and checked by laying out five Japanese government forms (an employment conditions notice, a resignation certificate, a CV, a wage ledger and a staff register) and printing them over the original PDFs: the rules land within 0.5 mm of the originals and nearly all of the text within 0.5 mm.

Added

  • Characters and lines per page. A page can be set up by the number of characters per line and lines per page, or by the character and line pitch in millimetres (to 0.001 mm). The screen and the printout match, and half-width letters take half a cell. A grid can be shown on the page.
  • Ruling mode. Draw a table by dragging on the page grid; press Tab while dragging to add lines. Draw over a line to change its kind (thin, solid, medium, thick, double, dotted, dashed), or erase it. Also draws diagonal lines, arrows, round, square and curly brackets, and polylines. Drawn lines snap to the lines already there. A table drawn on empty lines or below the text goes into the text (it takes its room, and the text below moves down as its cells grow); the lines down to it are added for you, as with click-and-type.
  • Tab positions. Left, centred, right and decimal tabs per paragraph, measured from the left indent. Set them in the paragraph's Tabs tab in millimetres, or press the ruler to place one, drag it to move it and drag it off the ruler to remove it.
  • Distribute. Spread the chosen characters over a given number of characters (to 0.01), and distribute the text of a table cell.
  • Line spacing by the line pitch. Fractions of a line (1/4 to 3/4), several lines, or any amount.
  • Raise or lower characters by a given number of points.
  • Table cells: width and row height in millimetres, separate inner margins on each side, vertical text, distributed alignment, and the paragraph settings of the lines inside a cell. Each line of a cell can be aligned on its own.
  • A 1 pt rule.
  • Documents can be put in order within a category by dragging them. "Sort by date modified" puts the order back.
  • Ctrl+Enter inserts a page break.
  • A setting makes Enter in a table cell start a new paragraph, as in LibreOffice. By default it still breaks the line.
  • In the properties of a placed object, its position is given from the top-left corner of the paper.

Fixed

  • A table placed after a page break on page 2 could be pulled up to the top of that page when its size was changed.
  • Placing an object that pushes the text aside could move the objects below it further than the text moved, and they did not come back when it was removed.
  • After a page break, an object's space above was lost when the page before was full.
  • The outer margin of an object with text wrapped round it was cleared every time its properties were applied.
  • Text in a middle- or bottom-aligned cell of a ruled table sat about 0.4 mm too low.
  • A size typed into the toolbar could be replaced by the old size before Enter was pressed.
  • Setting the size of all the text in a cell that already had a size could break the cell apart (data loss).
  • "No border" on a cell was lost when the document was saved.
  • An object hanging over the left or right margin made the whole printout shrink, or was cut off.
  • Changing one paragraph setting could clear indents set earlier.
  • A table inserted from the table dialog could land at the top of the document.
  • Changing a column width in a table split across pages could halve the first part.
  • Pasting into an empty table cell added empty lines.
  • Pasting several paragraphs into a list item produced invalid HTML.
  • After drawing or erasing lines, clicking a cell could fail to put the cursor in it.
  • Typing after Enter in a page with a character grid could join the previous line.
  • Half-width katakana is converted to full width.
  • Clicking or right-clicking the border of a block frame, a box or a note took the paragraph inside it. Near the border, the frame itself is taken.
  • Right-clicking a row in the layer bar could offer "Frame properties" for a paragraph or a shape.
  • Closing a dialog could jump the page to another page.

Changed

  • The right-button menu says what each kind of alignment acts on: "Position of the …" moves the object itself, "Alignment of the text" aligns the lines inside it.
  • A shape has one name everywhere.
  • Wording follows Word's page setup: "Characters and lines", "Characters per line", "Lines per page", "Show the character grid".
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignaturehqC/Hgvy8Nw81/ZVvUL2KX0xesdpCVTn0uZZjesJI2fkfxFEsimTuho4UE69wsuQgHAjBNjO3zhBoMKbKXzcmW5P91VzwRO1AwI76F5v32RRyHyUa0/T18kdgMM7rmmGq5f1c+GzUrv+8Sv6yk1DiHfHkUkieExV20UKZXMPuASp+HDFdT0sDO6ef+Mdb8dJrTEdg41OVTUQXB1AWh//TRqiKxCRBYnbkMoI2QVU9u1DiPoaiodHtTsBy0kWIUR4KcC6jGpn+rOmBnv3YxUCBKP2paH94kEZX1CrS5h9BCsbXDlZXjXP83y/qtHWko4C9MjV42KfCHlXpkLPAi6VsIezVa2sPCSZx/+cSmitFvKtMkHZ/BEPh5+/6LtrgSOEJG1Pm0qqu/YfYxsNSTtGZ3lumlevcAPYcQLRnP3znvaSFy5I8Q0+pG02LSkX58gs9pvvDhZOnWJ6TOxzl9qrqEI78E3uRfa5fuD15b8lNBJ921XkZV0mPsH1qXPlndsmCsJYknS4VeaFSlipB0c8cqGc/pia35cW9ovSZgg+0J7wl7hRQB72H6coz7u2aBs4ckmbMKQxUFUyOKQQ961p+Z3IYKWFTFUpqTL6PXeyTzR62OArzUlDiSxEVXymn/2rfdA7+814JhBT9N09waRqtUH00FOANZjr3XVcBXP+ogs=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.4
Release Details
UpdatedSept. 30, 2026, 4:04 p.m.
Changelog

Fixed

  • Copying part of a paragraph with Ctrl+C and pasting it into a paragraph with Ctrl+V made a new paragraph. The words now go in where the cursor is. Whole paragraphs, tables and other blocks pasted into the middle of a paragraph split it and stand between the two halves, instead of ending up inside it.
  • A paragraph set to "words to its right" (or left) that ran over several pages started its next part in the bottom margin of the page and ran across the page break. Each part now starts at the top of the next page's text area.
  • The page thumbnails could keep showing the layout from the middle of a re-pagination (a heading halfway down the wrong page, an empty last page) after the wrap of an object was changed. They are redrawn whenever the pages are laid out again.
  • "Fit to the column width" on a paragraph inside a block frame made it as wide as the page column, so it ran out of the right side of the frame. Inside a frame, a box, a note or a table cell it now fills the inside of that box.
  • Ctrl+Home and Ctrl+End go to the first and last words of the body text. They could put the cursor inside a shape placed elsewhere on the page.

Changed

  • Headings are spaced as in LibreOffice Writer: space above and below of 12/6 pt for Heading 1, 10/6, 7/6, 6/6, 6/3 and 3/3 pt for Headings 2 to 6, and single line height. The old spacing left about a line of empty space under every heading. Spacing set in the style dialog is kept.
  • Block frames, boxes and notes have no inner margin unless one is set: the text touches the frame, as in a word processor. The inner margin is set in the properties.
  • In the properties, the outer margins (top, bottom, left, right) and the inner margin are on the Placement tab together, named so that inside and outside can be told apart.
  • A frame is taken by clicking its border or just outside it. Inside the frame, a click goes to the words, even right next to the border.
  • Japanese: the block frame is called まとめ枠 again.

Removed

  • The dotted box drawn round the phrase at the cursor, and turning chosen words into a frame of their own. Documents that have such word frames get their words back as ordinary text when they are opened.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureCPxVuRD98VkEQD8XZ1WARQAh0btPA+UprBoyyP5vu3A9hYMNsofITBO+0YMKw2wXwcSKTdw4A03WOexEjbvGeKMZa/tkplYy1IYyJTQ09Nd9hhWibMuNSnBfYSmYWJAljCMDBRAylkLKw2Tw4rgkBGaccrqjXVAblbhWbDGYc0J/BBx3lSWT+N6SYKOxigQQuF6Fma85/BJ3IjQQgWqIy7FsQKqjymMYtMZ8GlDDK+tIqU4zfgDn70Y4Hbrpiw8TVUQ9TxLqLCTrx4QRGkTCPB/1hYDmMYVnNrTiZWrKDoQkz69WVs0lXFmiIhFZ/bZlHG0lSzjMwy/WV8LjqJgdleWSk1dkj0IzB/5KHtqk1cDNN3+MhILbnmwrEndMCsD9g2WyD02UnCjExX+tQEshjktfc/8YW+5aUvgMRzexC+uuzb+b8UKoWH1S28Jw64AyCB7sZXRhAibKLCE3XbVYdoo8IF+55FHrbOj7/SWx9k6/UZGj3eWl3npZaDb9GP60ch45UmtgCzwq27GUu5O1SGc6JbMo8p4rL73jCPZHiSWRtNGdX/eWlHqdu2IeWXeirGBit4tb0cqbvLzLjDHcUsFzercYQvySeJxbFHcGehmnQThtaLUAepv+B+8QHAoTMFwHdG4AT9PWS+Zn0gWdHyJP0CElMbV+ne9T2DSHqgE=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.3
Release Details
UpdatedSept. 30, 2026, 8:42 a.m.
Changelog

Added

  • Settings → Unit for indents: pt (the default), mm or characters. The indent boxes in the paragraph properties are labelled and filled in that unit, and indents set there or on the ruler are written into the file in it. Characters are written as CSS em, so an indent of two characters stays two characters when the letters are made bigger.
  • Settings → Unit for the ruler: pt, px, mm, cm (the default, as before) or inches. The ruler is marked in that unit, and the indent and margin handles move 1 pt, 1 px, 1 mm, 1 cm or 0.1 inch at a time.
  • Settings → Show spaces (half-width, full-width and tabs), off by default. Half-width spaces are marked ·, full-width spaces □ and tabs →. The marks are drawn over the page only: nothing is written into the document, and they are neither saved nor printed.
  • Settings → Let the Delete key delete an object frame, off by default (see Changed).
  • The paragraph properties open on a new first tab, Indents and spacing: alignment, line height, space above and below, the left, right and first-line indents, and the page-break options. A paragraph's rule and shading stay on the Borders and Area tabs.

Changed

  • The ruler is a bar of its own under the toolbar, across the whole width, with its scale lined up with the paper. It follows zooming and scrolling.
  • The ruler follows the paragraph the caret is in. Inside a block frame, a text frame or a table cell, its white band and its zero are the inside of that box, and the handles stand on the paragraph's own indents. The page-margin handles are shown for the body text only. The indents shown are the ones in effect, including those that come from a style.
  • The indent handles keep the ordinary arrow pointer, so the pointer no longer hides the handle being grabbed.
  • Clicking or right-clicking a paragraph inside a block frame, a box or a note takes the paragraph, with its own toolbar and its own menu (paragraph properties). The frame itself is taken by clicking its edge, or its background outside the paragraphs.
  • Backspace never deletes a selected object. The Delete key deletes an object (a frame, text frame, picture, shape, table, line…) only when the new setting is on. The Delete item in the right-button menu and the delete button on the toolbar work as before.
  • The Paragraph settings… item is gone from the right-button menu: everything in it is on the Indents and spacing tab of the paragraph properties.

Fixed

  • A horizontal scrollbar appeared with no page to the right of the paper. The ruler's background band reached past the page area.
  • An empty paragraph left in the writing (layer 0) could be deleted from the toolbar but not from the layer bar's right-button menu. Both now follow one rule: the last paragraph can be deleted while other objects remain on the page, and is kept only when deleting it would leave nothing at all.
  • The ruler's first-line, left and right indent handles had no effect on a paragraph inside a frame: they were measured from the page margins, not from the box the paragraph is in.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureiL+2onHWy6zn78lm9lxgs3jS13vxeoL4Q++kWZPfUPocSWC9Kr6zK3wIbUN5kYZbyJKWRSD5U8PezfYzH+PoTY3ikfqf62+EAbrU61zT0cp9VPR82NGdVHXozGeU2cDt6MsVQY+MtKJsDXW7yxWDEgASLmBGc5Ks0ah2F6kTAWWh8KgByMnb1lwmux1A4pYwwZM559ZBdzOI40TPqnmJfeYCCoH431AdgksXtQSwaJ7KwD5dQc5Q3bKRpfXHX4ua2qmoNOew0pdIfuoJR6PxN8B0TM6y3VWW3BQLFwK1Z8flqA6/sg4tN9ZIgve0vJVUPgja1ixiWE00r2RVZe7G7CQSuz0ySEmBhe67mje3zTX8kKsov3m2YlWCtxBNAqvPZxpOiybshf/hayI4IOhVKbmazV8YWqcodhp6MIZyCW4dLWHBt+qmBnP93tycq1alvneCi4gyrLx7nbmnmmNRbpuYatdF0c+tLJdjZxCxwh5etlG3fzWcbY97t2sZ1nXID68R8qJFJpOMJdCRmsq9slcT/ndwjlL0LnPgygrdpgYi11EppTJ/Sh1Wr6t14PSFrpi9uy0w17VizXDHkkxV0AswAVXi67/SvICPy+SfHnma5lMqzBG/4xhJ6X+LXmBTlujFVNsMU0R0FpfVKjnAZewI5W1s9BHRsagfVN55sD8=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.2
Release Details
UpdatedSept. 29, 2026, 3:09 p.m.
Changelog

Fixed

  • The right button on a category shows the category's own items only; the menu for writing (cut, paste, view…) came after them.

Added

  • Delete the category, from its right-button menu. Only an empty category can be deleted: one with documents in it says how many, and is kept until they are moved or deleted. The folder goes to Nextcloud's trash.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
Signatureiw6UI+ezyktuqvBRGuCa8rseR+8cfcLHEmbaywtrIdU2jz5QiT695Nrgi8S61OI5l9KtJmtex/fe/OlxS9RS6x+4/LKJbHvl5KCGtV+En3184pdw2OBgWVvAxRGhXxToKmj8u2ho2KgOHQxbTfOUnUQkCKmhrEYI34lDlsWtb8jtx7Vlk9fLl3+Fr7p2upFwv+HjgjvnlmvT/ANHA4oKCxLjI6qydbjq1bKwY7Qp5jEiWJLOQ+l1Wa9TQm6evYEAy3nfE/3IAbBKvOn8RnDJYmvjy4/J7qc3J9SpRwNgYyhCr7r9NuF1mk5JJlBfg1ulrDxXacVibDXoPURlTyiIkKGZx7m0srL9AC2ggZvyUxX5jFPOf/JtdL7NvrQ6mzwKkwOFOqp7RXc6i3guBqza6bqV4IggrbyYQDO+UKudV4/AlriDCuo45T6YD8lKM9rMRGXPi0zQYsMeTUhF4vlobHR7/ChE17CUonengQvPx1BLItv/7LDi24ZCaTlgqnZ2mQtk7JZz4FBx1RFFVPSwnhdZvnfkXfAReaTs502c6XiOcvLa24qKjXyR/SG3K086yS0pHPsgX64jOj18WGQ07oxHX4eOR5yAca0J3oX/SVHFY9OcAGPyLtndyySkWR+Pxs7D3Xk6yEGZPPMdqv6dhW+p9ZfAhsZHbj2Sxh99tTI=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.1
Release Details
UpdatedSept. 29, 2026, 1:54 p.m.
Changelog

Fixed

  • Web preview shows the document as it is open in the editor, page by page, including changes not yet saved. It showed the file as saved, and a document saved by an earlier version had no page divisions: everything after the first page ran off the sheet.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureUKSIHhsy6i6Pp0kif/B965Lh5VMWGQkA0V42XAjQRZFYKF9bvU8jmz/B7oIx2OmVEklGOP88waWUOn69AOLzdhz4eWif/L4MQUgaEfFbcX6vOlWwVGCBwBqtyMpB7wLtBJ34qBEvcSyCrFZPhJzYOp//XfY0jZnzMozoq47p+pFgHaXGXZLqFLu2iNdp4V6Ceo7iG2dflxraFOfTSU5vjwppby3Chm0xDYQMMQRV+AgBtktwB5SqfwJZskj3ksPxa+Wl/nhs+v9sp8TPHcEM8jfBpieZxtmjekLRGspEZpwiNBqQcInL5YWf6P48kEYxedSPQ324S0xcBk3q7dpgsOzYBjzEcxe1SekOjm9bw7qILEruO6Mi5/Sh8r6q2cjmH7SeMUpCmYmgfWn+R4RHYszdcvdaMul5lrAvdRRJrV4SF2j/RnR/H4JqFteEvyLzxDHZBjjpFbNNrIjfHJbBZqSACRP2hV/apjA5tqFYAR+kEZkdNwPrmF9dQffWX4tePw5bXOsuMfxNonNhKs/uLPJtU4HAQ99pt221H5CJlro5jnH5umqZNSfWndAdntlxJ1uQqwooCIYa4s7hL0oC440x7hh2rAGJ0d395l3E4r+SRMiiwAs7iF9T5yTwNUvyboxwoHkc/EM93uUljOV2DJMHdIkKma3hyhJBigCUQVc=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32
EditBase 0.1.0
Release Details
UpdatedSept. 29, 2026, 1:11 p.m.
Changelog

The first version. Everything below is new, because there was nothing before it.

Added

  • Documents are ordinary .html files in the user's own Nextcloud Files, saved complete with their stylesheet — no proprietary format, no import or export step.
  • Editing surface built on contenteditable with an editing engine of its own (Selection/Range), so the markup it writes stays clean: <strong>, <em>, <mark class="…"> and classes rather than editor litter.
  • Paper setup in millimetres: A3/A4/A5/B4/B5/Letter/Legal, portrait or landscape, four margins, serif or sans body, body size in points — written into the file as an @page rule.
  • Page guides on screen showing where each printed page ends.
  • Headings, quotations, preformatted text, bulleted and numbered lists, alignment and indentation, tables (three border styles, optional header row), callout boxes (rounded, square, dashed, tinted, side-bar note), horizontal rules and page breaks.
  • Highlighting in five colours, free text colour, emphasis dots, superscript, subscript and inline code.
  • Formulas as native MathML, with a starter palette and a live preview.
  • Undo and redo kept by the editor itself, with keyboard shortcuts.
  • Printing and PDF export through the browser, from an isolated copy of the file itself, so what prints is exactly what is stored.
  • Autosave, document duplication, renaming, deletion and download.
  • Readings over words (ruby), at half size, with room kept for them so they never sit on the line above, and brackets in the file for browsers that cannot draw them — 滅多(めった).
  • A frame too tall for the page it stands on carries its writing on into a frame of the same shape inside the next page, cut at the line rather than at the edge of the paper. The carried-on frame is ordinary markup, so the saved file prints the same way in any browser.
  • A frame placed by hand carries its writing on the same way, into a frame of its own inside the next page; and anything placed by hand keeps to one sheet, moving down to the next page rather than being printed cut in two by the edge of the paper. Where the writer put it is remembered, so it goes back as soon as the page has room for it again.
  • A blank page can be put in above or below any page, from the right button in the page bar.
  • The document's own stylesheet, written by hand: a CSS box in the styles dialogue for anything the boxes above it cannot say — the look of headings, lists, quotations and the rest. It goes into the file itself, so the page prints that way anywhere, and the editor shows it as it is typed.
  • The right button on a document in the list opens it, copies it, throws it away, or tells what it is: the file's name and where it is, its size, when it was last saved, the paper it is set on, and how much is written in it.
  • A running header and footer that really do repeat on every printed page: the writing is put in a table of one cell, which is the one thing a browser repeats across a page break, and each of them stands in a band of its own that the writing never runs into. What they say can carry the title of the document, its file name and the date and time it was saved, written in braces and filled in as the file is written.
  • A check over the document: what is wrong with the page that a writer cannot see by looking at it -- a thing drawn across the edge of the paper, words running under something that was told to part them, a frame holding more than it can show, a photograph heavy enough to make the file slow, a page with nothing on it. Each one says which page it is on and takes you there.
  • Versions kept beside the document: the state before each save is written to a file of its own in the same folder, named after the document with its extension replaced by a number -- 報告書.html keeps 報告書.#01, the newest, with the older ones shifting down as far as the writer allows (up to 99, ten by default, nought for none). They are plain HTML like everything else, so a version opens in any browser. A version is taken when the writer saves; the autosave can be made to take one too. They follow the document when it is renamed or moved to another category, and go with it when it is deleted. Putting one back keeps what was there as a version of its own, so that can be undone in turn.
  • A view of the raw HTML of the current document.
  • A layer bar and a page bar down the right. Every row of the layer bar can be dragged with the mouse: dropped on another row it joins that thing's layer, on a layer's heading it moves to that layer, and above or below them all it gets a layer of its own. Anything that is not standing on the paper moves through the document instead. The levels are renumbered from the bottom after every change, so they stay one apart with nothing empty in between. The two places to drop for a layer of one's own stay pinned at the top and the bottom of the bar, and the list scrolls itself when a row is held near either end, so they can be reached however long the list is. A dragged row travels with the pointer, and a place that would do nothing is greyed out with the reason written in it rather than quietly ignoring the drop. The numbers shown in the bar close up after a deletion, but only in what is shown: looking at the bar never rewrites the levels in the document, which would move things in the pile and change which of two overlapping things the writing flows around. A layer itself is dragged by its heading and everything on it moves together, and a new empty layer is made with the button in the bar's head and becomes real when the first thing is dropped into it. A thing drawn on the page has no level of its own; the bar shows it at the level the browser actually paints it, and writes the levels down the moment the writer moves something through the pile.
  • Categories down the left: a document can be filed in a folder inside the save folder, and the list shows one box per category — coloured as the writer likes, opening one at a time, with documents carried between them by dragging a row on to another box. A category is an ordinary folder, so the same filing is there in Files.
  • Sharing with other accounts on this server, from the right button on a document or on a category: Nextcloud's own sharing, to read or to write, taken back from either place. A shared category hands over everything filed in it, and everything filed in it afterwards; somebody who may write in one can put new documents in it as well. What others have shared arrives under their own name in the list.
  • Writing in one document at the same time as somebody else, in a shared mode that begins the moment a second person opens it. Every block of the document carries a name of its own; what is typed goes to the others in about a second without waiting for a save, through a fast lane held in Nextcloud's own cache and never written to disk. Their caret is drawn with their name on it, and the paragraph somebody is writing in is held against the other person -- the one case that cannot be merged is prevented rather than lost. The file is still saved the ordinary way, and a save that would land on top of somebody else's is merged instead of winning. No service of its own and nothing to install; a document nobody else has open does none of this.
  • A styles designer: the look of every heading, list, quotation, table cell and caption in the document set by hand rather than by writing CSS -- typeface, size, colour, letter spacing, weight, alignment, line height, indent, the space above and below, a fill, a border on any side and the mark in front of a list item -- with a sample of the writing above the controls that changes as they are moved. The CSS is still there, folded away at the foot of the dialogue, for anyone who would rather write it.
  • Emoji: the whole Unicode set in nine groups, searchable by name in the user's own language, put in at the caret. The character is what goes into the file, so it is drawn by whatever emoji font the reader's machine has.
  • Light and dark themes, chosen per user, and English and Japanese translations.

  • Standard and free placement. Standard placement follows the rules of HTML and keeps clear of the text and of other objects (above and below, text to the left or to the right, and on both sides with JavaScript); free placement puts an object anywhere with CSS, over other things. The default is a setting.

  • Tables that calculate: formulas as in LibreOffice Calc (33 functions, ; or , between arguments, Err:522 for a circle), a formula bar with a list of the functions and cells picked into the formula by pressing them, column letters and row numbers round a chosen table, and number formats written as format codes.
  • Cell properties in tabs as in Excel — number format, alignment, font, borders drawn edge by edge (none, outline, inside, all), fill — for a block of cells chosen by dragging; optimal row height and column width.
  • Twenty heading designs, drawn with CSS alone, in one colour for every heading.
  • Web preview: the saved document opened as a web page, its JavaScript running.
  • Page numbers ({page}, {pages}) in the running header and footer.

Fixed

  • The editor no longer draws a sheet the printer does not make. It counted sheets from the height of the whole column of writing; the printer counts by what fits in each page's own text area. When the writing ended a little past a fold -- one empty paragraph was enough -- the editor showed a blank last page that never printed. The count now follows the writing page by page, and a blank page put in on purpose still counts as a page.
  • Anything standing on the page shows its own box when it is clicked, wherever in the box the click lands. A list, a quotation or a heading placed by hand was not counted as an object at all, so clicking one gave the box of whatever paragraph lay behind it; and a click on the transparent part of any object -- a picture's corner, the empty half of a list -- fell through in the same way. What stands under the pointer is now what is taken hold of, the innermost first and the one drawn on top before the one drawn under.
  • A running header and footer that stand where they were asked to stand: in the paper's own margin, three millimetres clear of the writing, as deep as the writer chooses up to the margin less those three. They are written into the page's own margin boxes, so the printer repeats them on every page and counts the pages itself -- {page} and {pages} are the printer's counters, not words. They can be typed straight into the band on the first sheet, and shown on every page or on the first alone. The writing does not move by a hair for them: it begins where the margin says it does.
  • Words no longer run through an object that stands beside another. A real float in the same paragraph was counted as taking room from every line of it, so a second object further down was left with no room to be kept clear of, and the words walked straight through it. What a float takes is now counted only on the lines it actually stands on.
  • Setting a size on the words chosen inside a 文字枠 no longer changes the whole frame. Clicking the size box on the toolbar takes the selection away before the value is read; the last run of words chosen is now remembered and put back.
  • A 文字枠 asked to hold a list, a table or a picture becomes a frame that can hold blocks, keeping its place and its size. It used to be thrown away and its words left standing loose on the page.
  • Styling a word inside a block that carries that style no longer takes the block apart: a 文字枠 with a size of its own was pulled out of the document when the size of a few words in it was changed.
  • Opening a document no longer counts as writing it. Setting the paper of the document being opened was taken for a change made by the writer, so the file was saved a couple of seconds later and a version kept of it: a document nobody had touched grew a snapshot every time it was looked at.
  • A long document opens in seconds rather than in half a minute, and the keyboard is free while it does. A frame carried over page by page was laid out again by the browser after every cut -- the whole document, every time -- so a story of a hundred and twenty pages was laid out a hundred and twenty times. What is far below the page being cut is now lifted out while that page is measured and put back afterwards, the pages are counted from one reading instead of one for every page, and a frame that cannot be made to fit is not laid out again and again in the hope of a different answer. Opening 銀河鉄道の夜 (35 pages) went from 39 seconds to 2.5, and こころ (127 pages) from 38 seconds to 6.
  • A table taller than the page is now carried on to the next page, cut between its rows -- and where a single row is taller than the page, cell by cell, the lists and the tables inside it cut in the same way. It used to stay whole in one frame and run off the paper: the editor drew eight sheets where the printer made thirteen pages. A head row is repeated on the next page as the printer repeats it, unless it is a banner deep enough to cost a third of the page.
  • A document with a frame carried on to another page could come back twice as long. The carried-on frame wore the same name as the frame it carries on from, so the machinery that folds in another person's writing took it for that frame and wrote the whole of it over the last link of the chain. Every carried-on frame now has a name of its own.
  • A block cut across three pages or more is put back as the one block it was. The mark saying "this was cut" was taken off as soon as the second piece was joined, so the third stood on as a block of its own -- which is how a table grew a repeated head row at every pass.
  • A frame that stops short because the next row will not fit is left alone. It was read as half empty and laid out again, over and over, without ever settling.
  • A table standing in another table's cell kept being taken apart. Its header row was read as the outer table's, so at every opening one more row was lifted out of the inner table and put at the top of the outer one: a Wikipedia article came back in a different order every time it was read, for ever. The head is now looked for in the table itself and nowhere else.
  • A document no longer grows every time it is saved. Cutting a paragraph at the very edge of a link left the link behind with nothing in it; the next pass cut at the same place and left another beside it. Those empty shells are taken off as the cut is made.
  • The screen and the printout now agree, measured page by page against Chrome's own printing: a frame carried on to the next page kept a top margin on paper that the editor did not draw, and a thing placed by hand was allowed to hang into the bottom margin, where the printer cut it in two and put the lower part on a sheet of its own.
  • Objects that keep the words clear no longer fight when they stand together. The room an object holds is a float, and floats wider than the column together do not sit side by side -- the second drops below the first, where it holds nothing off anything. So the room is now cut to what the other things on that line leave: what another band wants, and what a floated object has already taken, measured to the edge of the writing rather than from its own width. Three and a half millimetres of that difference was enough to send a band below a floated arrow and let two lines run straight through the list beside it.
  • A thing put down by hand now stays where it was dropped. Its place is kept as a distance from the line it hangs on, measured down a column with no page gaps in it, while the editor draws a column with a gap at every fold; the conversion between the two was wrong for a thing whose page was not its line's page, so a formula dragged thirty millimetres up the page came to rest forty down. The answer is now measured after the fact and the difference taken out.
  • Room can be made for a thing that stands below the last line of its frame: it had nothing to hang from, kept the far end of the frame as its line, and room is only ever made below that line -- so the words simply ran through it.
  • Anything with no writing in it -- a formula, a picture, a rule, an empty shape -- is now picked up anywhere on it. Only the eight pixels of its edge would take hold before, which on a formula four millimetres tall meant it could not be moved at all. Things that hold words still keep to their edge, because a click in the middle of those has to put the caret in the writing.
  • A thing placed inside a frame stays in that frame when the page has to give it room, instead of being stood on the foot of the page outside the box.

  • An item of a list is put in one level with Tab and taken out again with Shift+Tab, and what that makes is a list inside a list -- the markers change with the level (a ring under a dot, a square under that), a numbered list counts in letters inside and in small roman numerals inside that, and the file written is an ordinary nested list that reads correctly anywhere. It used to add an indent to the item and leave the list flat.

  • The little pages in the preview bar are the pages themselves, made small, rather than a plan of grey boxes.
  • A frame that carries its writing on to the next page now makes the editor draw that page. It was drawn below the last sheet while the printer duly made a second page.

  • Deleting everything in a document leaves a plain paragraph to type on. What was left before was the first block's tag, so a document that began with a heading was wiped to an empty heading and everything typed next came out as a heading too.

  • What is written to a file is cleaned on the way out as well as on the way in. Everything arriving is checked -- what is opened, what is pasted, what somebody else writing in the document sends -- but a saved file is opened by a browser with nothing else around it, so a script or a handler that ever found its way into the writing would have been written into a page and run when it was opened.

Known limits

  • Vertical writing does not yet have the newest page fitting: frames that carry their writing on to the next page, and keeping a thing placed by hand on one sheet, are written for horizontal text so far.
  • Printing has been checked in Chromium only.
  • Writing together is by the paragraph, not by the letter: the paragraph somebody is writing in is held against the other person rather than the two being merged character by character.
Licenses AGPLv3+
Certificate-----BEGIN CERTIFICATE-----
MIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD
VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI
MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB
dXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD
VQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W
X7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT
RIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km
Wn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en
LxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ
S9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T
HycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX
GS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU
GlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb
loPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv
gLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52
v+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL
BQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69
bsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU
FRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje
9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP
0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW
1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=
-----END CERTIFICATE-----
SignatureGCteIVIZRYMXc9EhJguTH2XtBEj0RpKOHjO5suClV+bCjRHE1vNoqfE7lcIP7atPrfPPAHrah8Pq99CRR/fWlccaq108kthpgQ9sEDZT/RI4IGShhE45pIvybmg5jyT8CNrXryc8bF3GrLSiWRzmHLkHPlmv6e+uTKd4tQZ7/sd6NM++QhAkWAQONC2nobRmUJ7AZstLMcS8X0vLDJuphd8TGOXvfZ57OzZ0IgieFrD475HKaxpjSwrM4oq6fOcwFXbvaAWwh1J1y2Jtj1oghIdK9TaPOFIV0CS1DfQZPz7wwZ1wDlJ7vK6NqknP3mzsPXlqSx/5gQloCsVkp0HeRIWNt19IWHWkUZL3IMsCxTVcu90vcdbnrdmBKGd0AmSozFq9CHO1Fq2Ai2teucnedOpfA9HveF5FIn6Qc20qV8nMNFeTG5KsjMB0xUuXWVt4vCutHiDI8QzuH0zwoFHvCY+FnkeY/UMIGmsrWiPIoIJO0qGB1LZDZyiyDmvTgVsabRPINEqadZdkp5N4dEMXMrYS5W7Zv487Q/7ajBfjPr6YwM/cQftRKvD0rrgfx9/9/NC9C6Zc2pBbjorP/CDISNasUa2a80MiCz7iQnmtUvTV7QR8OA+oY1JmVmG0YrZkAnMmbKuR5OkHZrr0hMtDs/LeSwZStli5bKo/+RxHw1k=
Signature digestsha512
Dependencies
Required Nextcloud versions >=30.0.0,<36.0.0
Minimum Integer bits32