Skip to content

Releases: ruscalinux-dev/ruscawriter

RuscaWriter 0.99

Choose a tag to compare

@ruscalinux-dev ruscalinux-dev released this 14 Aug 08:36

A large release: everything that changed since 0.3, last published on 4 July.

Typesetting

The PDF export now justifies the text, with optional hyphenation, and
carries real bookmarks — the chapter tree readers show in their sidebar.
A cover generator builds a typographic cover from the title and the
author, with a live preview.

Under View → Fonts you now choose two fonts separately: the one you write
in on screen, and the one the exported PDF is set in. Either of the two
built-in faces, or any TrueType family installed on your machine. The export
font is embedded, so the file reads the same on any computer.

Imported text

Most literary plain text has its lines broken at a fixed column. Taken
literally those are line breaks, and the paragraph will not justify in the PDF
or reflow on an e-reader.

Ctrl+Shift+B tints the paragraphs that are broken this way, and Chapter →
Rejoin paragraphs repairs them — verse, lists and quotations are left alone.
Both follow the same rule, so what you see highlighted is what gets joined.
Importing does not do it on its own: it is your text, so the choice is yours.

Importing a Project Gutenberg file no longer drags its header and licence into
the manuscript — about a tenth of the words in a typical file.

Five themes

Ametista, Rubino, Zaffiro, Giada, Ambra — each in a light
and a dark version. Each has its own paper, ink and night ground.

They were built around one measurement. Pure black on pure white gives the
highest contrast a screen can produce, and it is the most tiring thing to look
at for three hours. Every theme here keeps body text between 12:1 and 14:1,
and none of them uses pure black or pure white. The plum of RuscaLinux was
reworked the same way: its bars keep the full colour, but the page no longer
is 21:1.

You can also write your own — a small text file in
~/.config/ruscawriter/themes/, a name and seven colours. The folder ships a
commented example to copy.

Markdown, read the same way everywhere

The rules now live in one place, shared by the PDF typesetter, the HTML, EPUB,
ODT and DOCX exports, the preview and the live highlighting. They used to be
written out separately in each, and the copies had drifted:

  • a heading needs a space after the #, as the guide has always shown.
    #Title was a heading in the PDF only, and is now body text everywhere
  • _italic_ and __bold__ are highlighted while you type, not only formatted
    on export
  • a lone *, as in 3 * 4, no longer turns the rest of the line italic
  • nested formatting comes out right in HTML and EPUB too
  • a link kept its label but lost its address, so a cited source became
    unreachable. The address is now printed in full beside the label, and never
    as a clickable link — a book gets printed, and on paper nobody can click

A Markdown guide is under Help (Shift+F1).

Fixed

  • the writing column could be squeezed into a sliver by the side panels, and
    the bad layout copied itself from one session to the next
  • on the first run the text sat in a narrow column between two huge margins
  • a maximised window reopened as an ordinary window the size of the screen,
    spilling under the taskbar
  • Dark theme and Show line breaks are switches, and now carry a tick when on
  • on a cover with only a title and an author, the author was printed twice
  • a long cover title ran off the edges, and words could be split across lines

Notes

The repository documents are English only from this release; the Italian
versions were removed rather than left describing 0.3. The teaching mini-editor
docs/mini_ruscawriter.py was removed too — both remain in the history and
under the v0.3 tag.

591 automated tests pass. Requires Python 3, PyGObject and GTK 4. Pillow and
Pyphen are optional.

RuscaWriter 0.3

Choose a tag to compare

@ruscalinux-dev ruscalinux-dev released this 04 Jul 16:39

English

New feature release, focused on images inside chapters plus a full
documentation cleanup and an updated security policy.

Added

  • Images inside chapters. New Edit → Insert image… (Ctrl+Shift+I):
    the chosen picture (PNG, JPEG or WebP) is copied into the project — it
    travels inside the .rwr archive — and a standard Markdown line
    ![caption](img_001.png) appears in the text. The caption is freely
    editable. Every export renders it as a real figure: PDF (centered, italic
    caption, automatic page break), EPUB, ODT, DOCX and HTML; the exported
    Markdown copies the images to a sibling folder; TXT shows the caption in
    square brackets.
  • WebP covers. The cover image now accepts PNG, JPEG and WebP; the format
    is detected from the file content, not from its extension. For Word (which
    cannot display WebP) and for the PDF, conversion to JPEG happens
    automatically when Pillow is available.

Removed

  • The redundant "Update date" button and menu entry (the cover is managed
    from the Editorial sections).

Documentation & internal

  • English is now the default language for all repository documents, with
    the Italian version alongside (README / SECURITY / CONTRIBUTING, each
    with an .it.md counterpart and cross-links).
  • The docs/mini_ruscawriter.py teaching mini-editor is now fully bilingual
    (English first, then Italian); the Italian-only guide was removed.
  • Updated SECURITY.md for 0.3 (new untrusted inputs: images; verified
    security posture; known residual risks).
  • Deduplicated the Markdown→HTML converter; unified image-format handling
    (stdlib only). 102/102 automated tests passing, with and without Pillow.

Program requires Python 3, PyGObject and GTK 4. Pillow is optional.


Italiano

Nuova versione con funzionalità, incentrata sulle immagini nei capitoli,
con una revisione completa della documentazione e una politica di sicurezza
aggiornata.

Aggiunto

  • Immagini nei capitoli. Nuova voce Modifica → Inserisci immagine…
    (Ctrl+Maiusc+I): l'immagine scelta (PNG, JPEG o WebP) viene copiata
    dentro il progetto — viaggia nell'archivio .rwr — e nel testo compare
    una riga Markdown standard ![didascalia](img_001.png). La didascalia è
    modificabile. Tutti gli export la rendono come figura vera: PDF (centrata,
    didascalia in corsivo, salto pagina automatico), EPUB, ODT, DOCX e HTML; il
    Markdown esportato copia le immagini in una cartella affiancata; il TXT
    mostra la didascalia tra parentesi quadre.
  • Copertina anche in WebP. L'immagine di copertina accetta ora PNG, JPEG e
    WebP; il formato è riconosciuto dal contenuto del file, non dall'estensione.
    Per Word (che non visualizza il WebP) e per il PDF la conversione in JPEG
    avviene automaticamente quando Pillow è presente.

Rimosso

  • Il superfluo pulsante e voce di menu «Aggiorna data» (la copertina si
    gestisce dalle Sezioni editoriali).

Documentazione e interno

  • L'inglese è ora la lingua predefinita di tutti i documenti del
    repository, con l'italiano affiancato (README / SECURITY /
    CONTRIBUTING, ciascuno con la controparte .it.md e link incrociati).
  • Il mini-editor didattico docs/mini_ruscawriter.py è ora completamente
    bilingue (prima l'inglese, poi l'italiano); la guida solo-italiana è stata
    rimossa.
  • SECURITY.md aggiornato per la 0.3 (nuovi ingressi non fidati: le
    immagini; stato di sicurezza verificato; rischi residui noti).
  • Deduplicato il convertitore Markdown→HTML; gestione unificata dei formati
    immagine (solo libreria standard). 102/102 test automatici superati, con
    e senza Pillow.

Richiede Python 3, PyGObject e GTK 4. Pillow è opzionale.

RuscaWriter 0.2.1

Choose a tag to compare

@ruscalinux-dev ruscalinux-dev released this 28 Jun 15:52

English

Maintenance release. No new features — only fixes and legal/authorship alignment.

  • Fixed the spell-check package names for Debian 13 (Trixie): now gir1.2-spelling-1 (the previously listed names are no longer valid)
  • Added GPL v3+ license headers to all Python source files
  • Added a copyright notice (© 2026 Nunzio Curcuruto) and a note on the development method
  • Updated documentation (README, CONTRIBUTING)

Program behaviour is unchanged from 0.2.


Italiano

Release di manutenzione. Nessuna nuova funzionalità: solo correzioni e allineamento legale.

  • Corretti i nomi dei pacchetti per il controllo ortografico su Debian 13 (Trixie): ora gir1.2-spelling-1 (i nomi indicati prima non sono più validi)
  • Aggiunti gli header di licenza GPL v3+ a tutti i file sorgente Python
  • Aggiunta la notice di copyright (© 2026 Nunzio Curcuruto) e una nota sul metodo di sviluppo
  • Aggiornata la documentazione (README, CONTRIBUTING)

Il comportamento del programma è invariato rispetto alla 0.2.

RuscaWriter 0.2

Choose a tag to compare

@ruscalinux-dev ruscalinux-dev released this 17 Jun 22:12

RuscaWriter 0.2

Highlights / In breve

📐 PDF page sizes — choose among A5, 6×9″, 17×24 cm, A4 and 5×8″, with a graphical preview. Default is now A5.
📐 Formati pagina PDF — scegli tra A5, 6×9″, 17×24 cm, A4 e 5×8″, con anteprima grafica. Il predefinito è ora A5.

📖 Binding margins — separate inner (spine) and outer (trim) margins; text shifts toward the spine on recto/verso while header and page number stay centred.
📖 Margini di rilegatura — margine interno (piega) ed esterno (taglio) distinti; il testo si sposta verso la rilegatura su recto/verso, mentre intestazione e numero restano centrati.

Blank cover — projects with no cover image and no frontispiece fields export a fully blank opening page instead of the graphic cover.
Copertina bianca — i progetti senza immagine di copertina né campi del frontespizio esportano una pagina iniziale completamente bianca.


✅ Backwards compatible: 0.1 projects open unchanged, no file-format changes, all 78 tests pass.
✅ Retrocompatibile: i progetti 0.1 si aprono senza modifiche, nessun cambio al formato file, tutti i 78 test superati.

Full changelog: see CHANGELOG.md

v0.1

Choose a tag to compare

@ruscalinux-dev ruscalinux-dev released this 11 Jun 07:12

Initial release of the software. Download the .deb file below to install it on RuscaLinux/Debian.