<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: zobweyt</title><link>https://news.ycombinator.com/user?id=zobweyt</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 09 Sep 2026 22:28:12 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=zobweyt" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Show HN: Native-feeling charts for Obsidian Bases, built with Deno]]></title><description><![CDATA[
<p>Hi HN!<p>I've built a plugin for Obsidian that adds lightweight, highly customized, and native-feeling chart layouts (Bar, Line, Pie) specifically for the new database-like "Bases" feature.<p>Repository: <a href="https://github.com/zobweyt/obsidian-bases-chart-layouts" rel="nofollow">https://github.com/zobweyt/obsidian-bases-chart-layouts</a>
Plugin page: <a href="https://community.obsidian.md/plugins/bases-chart-layouts" rel="nofollow">https://community.obsidian.md/plugins/bases-chart-layouts</a><p>### The Problem<p>I needed a way to visualize my structured note data in Obsidian without the bloat. Existing chart solutions either required writing complex JavaScript inside codeblocks or felt like heavy web-views slapped onto the app.<p>I wanted charts that feel like a built-in, core feature of Obsidian—lightweight, snappy, and deeply integrated with the UI.<p>### What makes it "Native-Feeling"<p>It goes beyond basic SVG rendering to mimic Obsidian’s native desktop UX patterns:<p>- *Interactions:* Full support for `cmd/ctrl + click` and middle-click (`auxclick`) to open underlying data files in new tabs or split panes.
- *Context Menus:* Right-clicking the chart triggers native Obsidian context menus, not generic browser ones.
- *Theme Adaptation:* It doesn't just switch light/dark modes. It dynamically inherits your exact Obsidian theme CSS variables and fonts.<p>### Tech Stack & DX<p>I wanted to keep the codebase as clean as the UI:<p>* *No Node/NPM Boilerplate:* The entire project is built purely with Deno (fmt, lint, build). This kept the development environment exceptionally lightweight and fast.
* *Rendering:* Powered by Apache ECharts under the hood for crisp vector rendering. The final plugin size is only ~1MB.
* *I18n:* Built-in localization support (currently English and Russian).<p>### How to try it<p>1. Ensure you have Bases enabled in Obsidian.
2. Add a chart layout to your view.
3. Map your columns using the native Properties panel.<p>I’d love to hear your thoughts on the UX integration, and especially on using Deno for building Obsidian plugins. Any feedback or feature requests are welcome!</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48199577">https://news.ycombinator.com/item?id=48199577</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 19 May 2026 21:00:43 +0000</pubDate><link>https://github.com/zobweyt/obsidian-bases-chart-layouts</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=48199577</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48199577</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>Thanks for the feedback! I'm glad you found a use case for this library!</p>
]]></description><pubDate>Wed, 02 Apr 2025 13:08:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=43556250</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43556250</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43556250</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>Thank you for the update! I’ve added a badge to the GitHub repository to reflect its availability on AUR.</p>
]]></description><pubDate>Wed, 02 Apr 2025 11:47:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=43555684</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43555684</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43555684</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>Thanks for the clarification!<p>Yeah, there is such a problem with the naming "text" suggests something different than just a "string".<p>I guess handling these nuances falls under the broader categories of internationalization (i18n) and localization (l10n).</p>
]]></description><pubDate>Wed, 02 Apr 2025 11:33:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=43555617</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43555617</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43555617</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>Thank you for the clarification! I appreciate your input. I've updated the wording to "feature-rich" to better convey the intended meaning. Your feedback is valuable!</p>
]]></description><pubDate>Wed, 02 Apr 2025 10:05:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=43555181</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43555181</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43555181</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>Thanks for your feedback! You're right; I should clarify that the library assumes English-language strings for casing. I'll update the documentation to make this limitation clear. I appreciate you pointing it out!</p>
]]></description><pubDate>Wed, 02 Apr 2025 09:58:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=43555144</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43555144</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43555144</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>I understand your perspective, and it's a valid concern. However, this library is designed to support not only simple use cases but also more advanced scenarios, providing a comprehensive solution for various needs. Additionally, it has zero dependencies, which helps keep your project lightweight. This way, you can benefit from the library's features without adding unnecessary complexity to your dependency tree. Thank you for sharing your thoughts!</p>
]]></description><pubDate>Wed, 02 Apr 2025 09:50:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=43555094</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43555094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43555094</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>Thank you for your suggestion! Adding a preserve option to maintain leading, trailing, and duplicate delimiters while normalizing them to the target delimiter is a great idea. I’ll consider implementing this feature. Thanks again!</p>
]]></description><pubDate>Wed, 02 Apr 2025 09:25:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=43554966</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43554966</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43554966</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>Thank you for the clarification! I understand that title capitalization can be quite complex, especially with specific rules in languages like German where capitalization can change the meaning of a word.<p>I guess handling these nuances falls under the broader categories of internationalization (i18n) and localization (l10n).</p>
]]></description><pubDate>Wed, 02 Apr 2025 09:13:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=43554915</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43554915</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43554915</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>Thank you for the feedback!<p>I appreciate your suggestion regarding the name, but unfortunately this name was already taken, so "textcase" was chosen.<p>I also have ideas for adding dictionary key conversion and other features in the future that will handle more than just strings. In addition, you can use this library to convert cases of Iterable[str] using textcase.pattern</p>
]]></description><pubDate>Wed, 02 Apr 2025 07:59:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=43554547</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43554547</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43554547</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>I appreciate your perspective! It's interesting to consider how the built-in libraries of a language can influence its ecosystem. Python does have a rich standard library that often reduces the need for external dependencies. In contrast, JavaScript's ecosystem has evolved around web development, where modularity and flexibility are prioritized, leading to a proliferation of packages.</p>
]]></description><pubDate>Wed, 02 Apr 2025 06:53:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=43554266</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43554266</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43554266</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>That's a great observation! Instead of seeing it as a limitation, it can be treated as a feature. Users can handle Unicode normalization using Python's built-in unicodedata module to ensure proper case conversion. Thanks for pointing that out!</p>
]]></description><pubDate>Wed, 02 Apr 2025 05:55:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=43554002</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43554002</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43554002</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>Thanks!<p>It does not support non-English title casing. From the documentation:<p>> It also works non-ascii characters. However, no inferences on the language itself is made. For instance, the digraph ij in Dutch will not be capitalized, because it is represented as two distinct Unicode characters. However, æ would be capitalized</p>
]]></description><pubDate>Wed, 02 Apr 2025 05:35:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=43553910</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43553910</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43553910</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>Thank you for the kind words! I'm glad you appreciate the effort put into covering all those edge cases.<p>It sounds like you had quite the adventure with text casing on your project. I'm happy this library can save you some time and hassle. Looking forward to see what can be built with it!</p>
]]></description><pubDate>Wed, 02 Apr 2025 02:34:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=43553204</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43553204</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43553204</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>Thanks for the suggestion!<p>Right now, there's no such GH badge. Since the project will always have zero dependencies, I think we can simply use a static badge like this:<p><a href="https://img.shields.io/badge/dependencies-0-green" rel="nofollow">https://img.shields.io/badge/dependencies-0-green</a></p>
]]></description><pubDate>Wed, 02 Apr 2025 02:30:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=43553187</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43553187</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43553187</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>Happy April!<p>Actually, this library supports conversion of even such strings!<p>```python<p>>>> import textcase<p>>>> textcase.convert("HAppY ApRiL FoOLs!", textcase.case.SNAKE, (textcase.boundary.SPACE,))<p>'happy_april_fools!'<p>```<p>Thanks for the congratulations!</p>
]]></description><pubDate>Wed, 02 Apr 2025 02:16:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=43553111</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43553111</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43553111</guid></item><item><title><![CDATA[New comment by zobweyt in "Show HN: Textcase: A Python Library for Text Case Conversion"]]></title><description><![CDATA[
<p>Thanks for the kind words!<p>This library actually has zero dependencies! I'm glad you appreciate the no-dependency design.<p>It's great to hear that it fits well with your work!</p>
]]></description><pubDate>Wed, 02 Apr 2025 01:40:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=43552964</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43552964</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43552964</guid></item><item><title><![CDATA[Show HN: Textcase: A Python Library for Text Case Conversion]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/zobweyt/textcase">https://github.com/zobweyt/textcase</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43551915">https://news.ycombinator.com/item?id=43551915</a></p>
<p>Points: 71</p>
<p># Comments: 41</p>
]]></description><pubDate>Tue, 01 Apr 2025 22:19:35 +0000</pubDate><link>https://github.com/zobweyt/textcase</link><dc:creator>zobweyt</dc:creator><comments>https://news.ycombinator.com/item?id=43551915</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43551915</guid></item></channel></rss>