<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: chrisecker</title><link>https://news.ycombinator.com/user?id=chrisecker</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 11 Apr 2026 03:58:43 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=chrisecker" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by chrisecker in "Show HN: A WYSIWYG word processor in Python"]]></title><description><![CDATA[
<p>Ropes are for strings. In a word processor you need text with formatting, and structures as tables, images and math.</p>
]]></description><pubDate>Fri, 10 Apr 2026 20:43:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47723442</link><dc:creator>chrisecker</dc:creator><comments>https://news.ycombinator.com/item?id=47723442</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47723442</guid></item><item><title><![CDATA[New comment by chrisecker in "Show HN: A WYSIWYG word processor in Python"]]></title><description><![CDATA[
<p>My mistake. Now it works (on linux).</p>
]]></description><pubDate>Fri, 10 Apr 2026 20:13:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47723102</link><dc:creator>chrisecker</dc:creator><comments>https://news.ycombinator.com/item?id=47723102</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47723102</guid></item><item><title><![CDATA[New comment by chrisecker in "Show HN: A WYSIWYG word processor in Python"]]></title><description><![CDATA[
<p>My apologies. I added the missing file.</p>
]]></description><pubDate>Fri, 10 Apr 2026 20:10:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47723055</link><dc:creator>chrisecker</dc:creator><comments>https://news.ycombinator.com/item?id=47723055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47723055</guid></item><item><title><![CDATA[Show HN: A WYSIWYG word processor in Python]]></title><description><![CDATA[
<p>Hi all,<p>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.<p>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.<p>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:<p>- Real WYSIWYG editing (no HTML layer, no embedded browser) with styles, images and tables.<p>- Clean, simple file format (human-readable, diff-friendly, git-friendly, AI-friendly)<p>- Markdown support<p>- Support for Python-plugins<p><i>Things that I found:</i><p>- B-tree structures are perfect for holding rich text data<p>- A simple text-based file format is incredibly useful — you can diff documents, version them, and even process them with AI tools quite naturally<p><i>What I’d love feedback on:</i><p>- Where do you see real use cases for something like this?<p>- What would be missing for you to take it seriously as a tool or platform?<p>- What kinds of plugins or extensions would actually be worth building?<p>Happy about any thoughts — positive or critical.
Greetings</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47722011">https://news.ycombinator.com/item?id=47722011</a></p>
<p>Points: 67</p>
<p># Comments: 27</p>
]]></description><pubDate>Fri, 10 Apr 2026 18:40:34 +0000</pubDate><link>https://codeberg.org/chrisecker/miniword</link><dc:creator>chrisecker</dc:creator><comments>https://news.ycombinator.com/item?id=47722011</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47722011</guid></item><item><title><![CDATA[New comment by chrisecker in "TexelTree – A data model for word processors"]]></title><description><![CDATA[
<p>Finding a good data structure for a word processor is a difficult problem. My notebook diaries on the problem go back to 2001 when I was frustrated with using Word, which was at that time slow and unstable.<p>While ropes and piece tables are standard data structures, I found that an immutable n-ary tree of 'Texels' (B-Tree) works surprisingly well even in high-level languages like Python.<p>I’m currently taking a professional career break and decided to finally use this time to push my research further, document the results, and build MiniWord—a WYSIWYG word processor in Python.<p>I'd  love to  get  your thoughts  on the  TexelTree.
Repo/Essay: <a href="https://codeberg.org/chrisecker/texeltree" rel="nofollow">https://codeberg.org/chrisecker/texeltree</a></p>
]]></description><pubDate>Wed, 25 Mar 2026 11:06:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47515768</link><dc:creator>chrisecker</dc:creator><comments>https://news.ycombinator.com/item?id=47515768</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47515768</guid></item><item><title><![CDATA[TexelTree – A data model for word processors]]></title><description><![CDATA[
<p>Article URL: <a href="https://codeberg.org/chrisecker/texeltree/src/branch/main/doc/essay.md">https://codeberg.org/chrisecker/texeltree/src/branch/main/doc/essay.md</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47515586">https://news.ycombinator.com/item?id=47515586</a></p>
<p>Points: 3</p>
<p># Comments: 2</p>
]]></description><pubDate>Wed, 25 Mar 2026 10:42:27 +0000</pubDate><link>https://codeberg.org/chrisecker/texeltree/src/branch/main/doc/essay.md</link><dc:creator>chrisecker</dc:creator><comments>https://news.ycombinator.com/item?id=47515586</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47515586</guid></item><item><title><![CDATA[New comment by chrisecker in "Ask HN: Is there prior art for this rich text data model?"]]></title><description><![CDATA[
<p>You're right that hidden structure is often the cause of strange effects — but Group is not a document element in that sense. It's invisible at the index level too: when you iterate over the document by index, you pass through Groups transparently. A Group is purely a tree node for balancing purposes — it has no position in the document model that a cursor could land on, no semantic meaning, and no user-visible boundary. It has no effect the user can see or feel. 
Think of it like the internal nodes of a B-Tree: they exist to keep the structure efficient, but you never 'see' them when you traverse the data."</p>
]]></description><pubDate>Fri, 13 Mar 2026 19:40:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47368781</link><dc:creator>chrisecker</dc:creator><comments>https://news.ycombinator.com/item?id=47368781</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47368781</guid></item><item><title><![CDATA[Ask HN: Is there prior art for this rich text data model?]]></title><description><![CDATA[
<p>I've built a rich text data model for a desktop word processor in Python, based on a persistent balanced n-ary tree with cached weights for O(log n) index translation. The document model uses only four element types: Text, Container, Single, and Group — where Group is purely structural (for balancing) and has no semantic meaning in the document.
Individual elements are immutable; insert and takeout return new trees rather than mutating the old one. This guarantees that old indices remain valid as long as the old tree exists.
I'm aware of Ropes, Finger Trees, and ProseMirror's flat index model. Is there prior art I should know about — specifically for rich text document models with these properties?</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47367804">https://news.ycombinator.com/item?id=47367804</a></p>
<p>Points: 6</p>
<p># Comments: 2</p>
]]></description><pubDate>Fri, 13 Mar 2026 18:22:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47367804</link><dc:creator>chrisecker</dc:creator><comments>https://news.ycombinator.com/item?id=47367804</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47367804</guid></item></channel></rss>