Hacker News new | past | comments | ask | show | jobs | submit | ynh's comments login

I use https://copilot.money for my personal book keeping and am really happy with the insights it provides into my spending habits


Thank you, but that personal finance software isn't in the category I'm asking about.


I think using TipTap would have been the best option but I decided to build my own editor using contenteditable with the diff-dom library to maximize my learnings.

The editor keeps track of the original text and the modified text (not yet accepted text). The rendering starts by calculating the diff between the two texts and building a virtual DOM tree with special markers for changes. Then, cursors and selections are inserted into the virtual DOM, after which the DOM is processed by the markdown parser. The parser converts markdown syntax into formatted DOM elements. Finally, the virtual DOM is diffed against the contenteditable DOM, and the minimal updates are applied. There is some additional logic to handle cursor positioning between the updates and to manage the history.


That is impressive, any examples that I can see, maybe something you followed or learned from?


Use progress as html tag?


It's a HTML5 form element: http://developers.whatwg.org/the-button-element.html#the-pro.... It might be somewhat difficult to style, though.


I am currently also selling my product (newsletter mailer) via codecanyon. My main concern leaving codecanyon is how to drive potential customers to my site. As you already said there is a huge support effort on codecanyon, due to "inexperienced" customers.


It must be a valid c/c++ program. Just wrap your code in a function


Yes I could add some thing like a permanent link creator.


Fixed


Just fixed


OK I will let the user choose between both syntax


The code is available on github https://github.com/ynh/cpp-to-assembly


Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: