-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpubliccode.yml
More file actions
93 lines (88 loc) · 4.14 KB
/
publiccode.yml
File metadata and controls
93 lines (88 loc) · 4.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
publiccodeYmlVersion: 0.5.0
name: odf-kit
url: https://github.com/GitHubNewbie0/odf-kit
landingURL: https://githubnewbie0.github.io/odf-kit
softwareVersion: 0.5.0
releaseDate: 2026-03-05
platforms:
- web
categories:
- document-management
- office
- it-development
developmentStatus: beta
softwareType: library
intendedAudience:
scope:
- education
- government
- local-authorities
- science-and-technology
description:
en:
localisedName: odf-kit
shortDescription: TypeScript library for generating, filling, and reading
OpenDocument Format (.odt) files in Node.js and browsers.
longDescription: >-
odf-kit is an open-source TypeScript library for generating, filling, and
reading OpenDocument Format (ODF) documents programmatically. Build
documents from scratch with a fluent API, or fill existing .odt templates
created in LibreOffice with data using placeholders, loops, conditionals,
and dot notation. It produces valid .odt files that open in LibreOffice,
Apache OpenOffice, and any ODF-compliant application.
Designed for developers building tools for governments, nonprofits,
schools, and organisations that use open document standards, odf-kit
provides rich formatting, tables, lists, images, hyperlinks, bookmarks,
headers and footers, and page layout control.
The template engine automatically handles LibreOffice's XML fragmentation
of placeholder text, supports loops for repeating content, conditionals
for optional sections, and nested data access via dot notation. Headers
and footers with placeholders are processed alongside the document body.
odf-kit also reads existing .odt files, parsing them into a structured
document model and converting to clean HTML. It is the only actively
maintained pure-JavaScript ODT reader, supporting rich text with styling,
tables, images with accessibility metadata, nested lists with correct
numbering, footnotes and endnotes, bookmarks, text fields, and correct
tracked-changes flattening.
Unlike abandoned alternatives such as simple-odf, odf-kit generates proper
ZIP-packaged ODF files (not flat XML), supports tables with cell merging
and formatting, embeds images, and is actively maintained. It has zero
transitive runtime dependencies (fflate only) and works in Node.js 18+
and modern browsers — documents can be generated entirely client-side
with no server required.
odf-kit supports ODF 1.2+ (ISO/IEC 26300), the international standard for
open document formats used by governments worldwide for interoperability
and vendor independence.
documentation: https://github.com/GitHubNewbie0/odf-kit#readme
features:
- Generate valid .odt files for LibreOffice and OpenOffice
- Fill existing .odt templates with data using {placeholders}
- Template loops for repeating content ({#items}...{/items})
- Template conditionals for optional sections
- Dot notation for nested data ({company.name})
- Automatic healing of LibreOffice XML fragmentation in templates
- Rich text formatting with bold, italic, underline, color, and fonts
- Tables with column widths, borders, backgrounds, and cell merging
- Bullet and numbered lists with nesting up to 6 levels
- Embedded images (PNG, JPEG, GIF, SVG, WebP)
- Hyperlinks and internal bookmarks
- Headers and footers with page numbers
- Page layout with size, margins, orientation, and page breaks
- Read existing .odt files into a structured document model
- Convert .odt to HTML with full rich text styling
- Parse tables, nested lists, images, footnotes, and bookmarks
- Correct tracked-changes flattening (accepted state only)
- ODF 1.2+ compliant (ISO/IEC 26300)
- Zero transitive runtime dependencies
- Works in Node.js and browsers (client-side generation, no server required)
legal:
license: Apache-2.0
maintenance:
type: community
contacts:
- name: Scott Wirth
email: scott@wirthmgt.com
localisation:
localisationReady: false
availableLanguages:
- en