Feedback would be greatly welcome! It's made specifically for the usecase you mention, blog-like website with Katex to add pretty graphics. Example usage:
<!-- Draw a triangle with labels on the sides and angles -->
<vector-graph x="3" y="3" axis="false">
<polygon points="0,0;1,3;3,1" sides="a,b,c" angles="α,β,γ"></polygon>
</vector-graph>
<!-- a + b = c, but in vector form (with lots of labels) -->
<vector-graph x="4.9" y="4.9">
<vector label="b" color="blue" from="3,4" to="4,2" axis></vector>
<vector label="a" color="red" from="0,0" to="3,4" axis></vector>
<vector label="c" from="0,0" to="4,2"></vector>
</vector-graph>
PS, I give you permission to use it in your personal website for free, alexkritchevsky.comEdit: note that the examples in the website, since they are part of the README in Github, are plain SVG images that have been rendered on the backend statically also by VectorGraph, see the Node.js environment if interested:
https://opensource.stackexchange.com/a/4877
What the AGPL does differently compared to e.g. GPL is basically say that you cannot build a proprietary service around my library without making that service open source as well. So theoretically, it could be argued that depending on how you use it in your website, you would need to make your website free software as well. Or, buy a license. (Or in this case, get an exception from me). This is just a friendly explanation, the full legal terms are here:
https://github.com/franciscop/vector-graph/blob/master/LICEN...
I love that it uses exactly 1 WebComponent. I love / am vaguely confused that it doesn't read the component's own DOM but instead gets the `.outerHTML`: https://github.com/franciscop/vector-graph/blob/master/index...
I guess that it means that the actual rendering gets fully decoupled from the live, but hidden DOM tree within the WebComponent and that live DOM tree doesn't really matter aside from first render.
Yes, I'm not funded by the millions (like Khan Academy, the org that created/sponsored Katex) so I would hate to see all my hard work get copy/pasted by a company, rebranded as their own and sold to the public in a private manner.
> I don't want to think about licenses at all in my life
If you don't want to think about licenses ever it's just a one-time payment of $19, that's exactly why I dual-licensed it; follow the license, or pay $19 to not deal with the license.
> That makes me less interested, really
That's okay, if you don't think it's a library worth $19 (or following the license), it means it doesn't provide enough value for you to be worth of your money. For the average developer in the world that's less than 1h of their time though, so if you think that my library will save you 1h vs others, or vs doing it by hand, then it's "worth it". Many developers think all the tools should be MIT, and that is okay, but I don't share that ideology.
I'm not totally sure what you mean by "it doesn't read the component's own DOM but instead gets the `.outerHTML`". Note that I am not a Shadow DOM expert and I made this a couple of years ago, but IIRC the reason I made it this way is that I wanted a lot of flexibility on the transformation.
It's not 1-component-to-1-svg-element, it's more like I might have an arbitrary N number of "HTML elements", which might render into an arbitrary M number of "SVG elements", some of which might even be global (<defs>) so not even in the same order as the HTML elements order.
AGPL is a copyleft license, MIT is not. There’s good reasons for a developer to prefer copyleft.
I’m also an enjoyer of web-components, I use them in my chrome extension Mobile View. I want to try this out tomorrow at work
I actually have a Twitter thread on it!