This is great!
Curious about the choice of toolkit: what led you to wxPython?
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.
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"
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.
I thought the data structure part is solved:
Ropes are for strings. In a word processor you need text with formatting, and structures as tables, images and math.
I adore anything that avoids using a browser. <3
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/.
My mistake. Now it works (on linux).
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.
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.
My apologies. I added the missing file.
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.
Love to see wxPython!