[HN Gopher] Show HN: A WYSIWYG word processor in Python
       ___________________________________________________________________
        
       Show HN: A WYSIWYG word processor in Python
        
       Hi all,  Finding a good data structure for a word processor is a
       difficult problem. My notebook diaries on the problem go back 25
       years when I was frustrated with using Word for my diploma thesis -
       it was slow and unstable at that time. I ended up getting pretty
       hooked on the problem.  Right now I'm taking a professional break
       and decided to finally use the time to push these ideas further,
       and build MiniWord -- a WYSIWYG word processor in Python.  My goal
       is to have a native, non-HTML-based editor that stays simple, fast,
       and is hackable. So far I am focusing on getting the fundamentals
       right. What is working yet is:  - Real WYSIWYG editing (no HTML
       layer, no embedded browser) with styles, images and tables.  -
       Clean, simple file format (human-readable, diff-friendly, git-
       friendly, AI-friendly)  - Markdown support  - Support for Python-
       plugins   _Things that I found:_  - B-tree structures are perfect
       for holding rich text data  - A simple text-based file format is
       incredibly useful -- you can diff documents, version them, and even
       process them with AI tools quite naturally   _What I'd love
       feedback on:_  - Where do you see real use cases for something like
       this?  - What would be missing for you to take it seriously as a
       tool or platform?  - What kinds of plugins or extensions would
       actually be worth building?  Happy about any thoughts -- positive
       or critical. Greetings
        
       Author : chrisecker
       Score  : 49 points
       Date   : 2026-04-10 18:40 UTC (4 hours ago)
        
 (HTM) web link (codeberg.org)
 (TXT) w3m dump (codeberg.org)
        
       | LoganDark wrote:
       | Love to see wxPython!
        
       | mttpgn wrote:
       | On MacOS, I'm seeing `ModuleNotFoundError: No module named
       | 'miniword.core.utils'` whether I run `python3 -m miniword` from
       | src/miniword/ or from src/miniword/miniword/.
        
         | chrisecker wrote:
         | My mistake. Now it works (on linux).
        
           | mttpgn wrote:
           | Thanks, and I got the main window open now, but I'm getting a
           | second error that doesn't look OS related. `Plugin error
           | (txtfilter.py): No module named 'miniword.importexport'`
        
       | avryhof wrote:
       | Looks like a nice project.
       | 
       | Looks like you missed a file, though.
       | 
       | ModuleNotFoundError: No module named 'miniword.core.utils'
       | 
       | I don't see it in my local clone of your repo, nor the repo
       | iteslf.
        
         | chrisecker wrote:
         | My apologies. I added the missing file.
        
           | avryhof wrote:
           | Thanks. I got it to run on my work laptop that runs Windows.
           | Selections don't work, and cairo spits out a bunch of errors
           | during the screen redraws.
           | 
           | I'll give it a shot on my own Ubuntu laptop.
        
       | chjail-11 wrote:
       | I adore anything that avoids using a browser. <3
        
       | kubb wrote:
       | I thought the data structure part is solved:
       | 
       | https://en.wikipedia.org/wiki/Rope_(data_structure)
        
         | chrisecker wrote:
         | Ropes are for strings. In a word processor you need text with
         | formatting, and structures as tables, images and math.
        
       | fractallyte wrote:
       | One feature missing from _almost_ every mainstream word
       | processor: REVEAL CODES! (https://kb.corel.com/en/127364)
       | 
       | This is a famous "killer" feature from WordPerfect: the ability
       | to view and edit the low-level formatting for a document. It's
       | invaluable for fixing weird bugs.
       | 
       | However, it works only because WP uses the "text-stream"
       | paradigm, where a document comprises a linear stream of text with
       | formatting codes (Bold, Font, Hard Return, etc.) embedded
       | directly at the point at which they're applied.
       | 
       | In contrast, Word uses the "nested containers" model (characters
       | inside words, words inside paragraphs, paragraphs inside
       | sections, etc.), where this feature can't be replicated.
       | 
       | I didn't look closely at your code, but just thought to mention
       | this feature.
        
       | vishnuharidas wrote:
       | This took me down the nostalgic memory lane of the planet-source-
       | code days. There were hundreds of such projects in Visual Basic,
       | Delphi, C/C++/MFC etc., and text editors and paint clones were
       | the most popular projects.
        
       | analogpixel wrote:
       | at this point, a WYSIWYG just seems like a huge step backwards
       | from just using markdown. I love having access to my files in a
       | standard text format this is super easy to parse, and not being
       | locked into whatever weird format that WYSIWYG decides to store
       | it in.
       | 
       | I still don't understand why people still use ~~Microsoft
       | Word~~Copilot document writer , I think they have gotten into
       | some weird mindset that their documents require all this weird
       | unnecessary formatting to look "official"
        
         | httpsterio wrote:
         | Markdown without formatting isn't usually the nicest to read
         | imo. I actually appreciate a well laid out and formatted
         | document myself.
         | 
         | Also wysiwyg doesn't mean it can't be back and forwards
         | compatible with markdown, it might just mean that it's a
         | markdown editor gui with a preview.
        
           | layer8 wrote:
           | It's also not nice to write longer text in monospace. Or to
           | have long URLs interrupt the text just because you want a
           | hyperlink on some word. Or having to lay out tables by hand
           | like ASCII art. Seeing *this* isn't the same as seeing
           | _this_. And you need custom editor software anyway to have
           | affordances like TOC navigation.
        
             | yummybrainz wrote:
             | > long URLs interrupt the text just because you want a
             | hyperlink
             | 
             | This annoyed me until I realized pandoc supports separating
             | [the link text] from the link location.
             | [the link text]: </url/to/resource>           "`title`
             | parameter of the <a> tag, if converted to HTML"
        
               | layer8 wrote:
               | Yep, but (a) that isn't portable Markdown, (b) your
               | editor probably doesn't support opening the link from the
               | link text in that case, and (c) whenever you want to
               | modify the link text you have to modify all occurrences.
               | A word processor can handle that automatically for you.
               | It can also offer completion (like tab completion) for
               | references that you use repeatedly. It can show as a
               | tooltip what a given link text links to. Conveniences
               | like that is what computers are for, let's not relapse to
               | the stone age here.
        
         | sakesun wrote:
         | Yes. These days, with plain text, pasrsers, Internet, mobile
         | devices and LLM, we really get more than what we see. Only few
         | case where paper print out is still more useful.
        
         | netbioserror wrote:
         | My prolific Typst use, along with quickly improving side-by-
         | side editors like Typesetter, are rapidly diminishing (in my
         | eyes) the reasons for WYSIWYG to be. Sure, normies need it,
         | yadda yadda. Is it worth the staggering cost? The file format
         | and GUI complexity?
        
       | __d wrote:
       | This is great!
       | 
       | Curious about the choice of toolkit: what led you to wxPython?
        
       | subdomain wrote:
       | I love seeing new word processor projects!
        
       | kabir_daki wrote:
       | The hardest part of WYSIWYG editors is always cursor positioning
       | and selection across mixed content. How did you handle that? Also
       | curious if you considered using a canvas-based renderer vs DOM --
       | what made you go with your current approach?
        
       | Georgelemental wrote:
       | > - Real WYSIWYG editing (no HTML layer, no embedded browser)
       | with styles, images and tables. > - Clean, simple file format
       | (human-readable, diff-friendly, git-friendly, AI-friendly)
       | 
       | Very nice! Unfortunately, the UI menus seem to be broken when
       | using a dark-mode GTK theme (e.g. Adwaita Dark).
        
       | pbronez wrote:
       | Check out Typst. It's a markup language focused on print with
       | HTML layout as a secondary target.
        
       ___________________________________________________________________
       (page generated 2026-04-10 23:00 UTC)