OneStory Editor Interlinear Viewer
Imports stories from a OneStory Editor project file and displays or exports them as Interlinear Texts in multiple formats. (Word/OpenOffice XML export is planned but not yet implemented.)
Option A — Desktop App (Windows or Mac)
- Download the portable
.exeor use the MSI installer for Windows (latest release here), or download the Mac build if available. - Launch the app.
Option B — Web App (in-browser)
Open index.html directly in Google Chrome, Microsoft Edge, or Safari. No installation required. The web version may include more recent (but potentially experimental) changes than the packaged desktop release.
-
Choose your export format:
- XLingPaper — downloads an
.xmlfile you can open in XLingPaper. More powerful for formal linguistic presentation, but requires XLingPaper to be installed. - Web Page — opens the interlinear story directly in a new browser tab. No extra software needed; great for quick review.
- Tab-Separated (TSV) — downloads a
.tsvfile you can open in Excel, Google Sheets, or any spreadsheet app. Uses FLEx-style layout: each verse is three rows (vernacular words, glosses, free translation) with one word per column.
- XLingPaper — downloads an
-
Click Choose... (or the file input) and navigate to your OneStory Editor database. It is typically at:
Documents/OneStory Editor Projects/<projectname>.onestory(orMy Documents/My OneStory Editor Projects/on some systems). -
After opening the file, a list of stories appears. Use the Biblical / Non-Biblical / All filter, then pick a story from the dropdown and click Generate.
| Style | Description |
|---|---|
| FLEx Style | Free translation shown inline below each verse's word-for-word gloss (like FieldWorks Language Explorer) |
| Paratext Style | Free translation shown as a block paragraph section at the end (like Paratext) |
| Both | Includes both the interlinear section and the Paratext-style paragraph section |
The TSV export always uses FLEx style. The paragraph view at the end (Paratext style) is especially useful for attending to overall discourse flow — plot structure, information flow, and big-picture story issues.
Built with Tauri v2. The frontend is static files in docs/ — the same
files GitHub Pages serves as the web version — and src-tauri/ is the Rust shell around them.
npm install
npm run devRequires Node.js and a Rust toolchain. npm install is not optional: its prepare script sets
core.hooksPath, which is what activates the pre-commit hook in .githooks/. That hook stamps
CACHE_VERSION in docs/sw.js, refuses to commit a .onestory project file, and runs the
checkers in tools/. If you skip it, all of that silently does nothing — npm run dev will
refuse to start until it is wired, and npm run doctor checks it on demand.
The XLingPaper and Web Page exports use client-side XSLT (via the browser's built-in
XSLTProcessor) to transform the .onestory XML. The TSV and FLExText exports use plain
JavaScript. No server needed for any format.
⚠ docs/sw.js carries an explicit APP_SHELL array. Anything added under docs/ needs a line
there, and anything listed there must exist on disk — cache.addAll is atomic, so a single 404
stops the new service worker activating and pins every web user to the old version.
npm run check asserts both directions.
Copyright © Seth Johnston.
Licensed under the GNU Affero General Public License v3.0 or later
(AGPL-3.0-or-later). You may use, modify and redistribute this software, including
commercially, provided derivative works remain under the same licence and their source is made
available — including to users who interact with a modified version over a network.
Releases up to and including v2.0.1 were published under CC BY-NC-SA 4.0. Those copies remain under that licence; it is not retroactively revoked.