Playing with XML+XSLT=SVG because I just hate circos.
Trick users and bypass warnings – Modern SVG Clickjacking attacks
https://lyra.horse/blog/2025/12/svg-clickjacking/
#HackerNews #SVG #Clickjacking #Clickjacking #Cybersecurity #WebSecurity #ModernThreats
Playing with XML+XSLT=SVG because I just hate circos.
But as I've already mentioned in other threads, the #GeminiProtocol approach IMO throws away the baby with the bathwater. Many of the web formats and technologies are actually extremely useful even for the “web of documents”: the problem isn't with #HTML, #CSS, #XML, #XSLT, #SVG or even #JavaScript, the problem is that browsers have been catering exclusively to the “web of apps” instead of the “web of documents”. We *can* keep that tech *and* the “web of documents”.
18/
Another highlight in Phase 3 is the Type Setting Mode. This mode allows on canvas editing of a number of text properties, as well as #SVG character transforms. With this, people will be able to do advanced typographic spacing, taking full advantage of SVG's strengths.
This is a proper #SVG 2 text-in-shape implementation, with multiple flow shapes, subtract shapes, margins and paddings. The second (known to me) implementation of SVG 2 text-in-shape next to Inkscape!
github.com##.AppHeader-CopilotChat
github.com# #copilot-dashboard-entrypoint
github.com##.prc-ButtonGroup-ButtonGroup-vcMeG.DiffLinesMenu-module__diff-button-container--UrMbh
github.com##.DiffHeaderAskCopilotButton-module__askCopilotButton--XnBQK.prc-Button-ButtonBase-c50BI
github.com## #copilot-md-menu-anchor-new_comment_field
github.com# #a[href^="https://copilot-workspace.githubnext.com"]
github.com## #copilot-md-menu-anchor-pull_request_body
github.com##.lnwIhU.Box-sc-g0xbh4-0 > .octicon-copilot.octicon > path
github.com# #li:has(> ul > li#query-builder-test-result-ask-copilot)
github.com# #li.ActionList-sectionDivider[aria-hidden="true"]
github.com# #div:has(> button[data-testid="copilot-ask-menu"])
github.com# #div[data-test-id="copilot-actions-chat-button"]
github.com# #div.dropdown-divider:has(+span[data-target="copilot-diff-entry.menuItemsSlot"])
github.com# #span[data-target="copilot-diff-entry.menuItemsSlot"]
github.com# #react-partial[partial-name="copilot-code-chat"]
github.com##.copilotPreview__container
github.com# #button[id^="copilot-md-menu-anchor"]
github.com# #div:has(> button[id^="copilot-md-menu-anchor"]) + hr
github.com# #li:has(> ul > li#query-builder-test-result-chat-with-copilot)
github.com# #span:has(> p > span[data-assignee-name="Copilot"])
github.com# #div:has(> div > div > a[data-testid="open-in-copilot-agent-button"])
github.com# #command-palette-item[data-item-id="2918418660"]
github.com# #li.prc-ActionList-Divider-rsZFG
github.com# #li:has-text(/Ask about this diff/)
github.com# #div[class*="CopilotWorkspaceButton"]
github.com# #li[class="ActionListItem ActionListItem--hasSubItem"]:has(ul > li[data-item-id="repo_settings_copilot_swe_agent"])
github.com# #svg.octicon.octicon-copilot
github.com# #span[class="ActionListItem-label"]:has-text(Copilot)
github.com# #li:has(> div > span:has-text(/Explain error/))
github.com# #div[class*="CopilotAgentModeButton"]
github.com# #button:has(> span:has-text(/Try the new experience/))
github.com# #g-emoji[alias="sparkles"]
github.com# #inline-machine-translation
github.com##.AppHeader-CopilotChat
github.com# #copilot-dashboard-entrypoint
github.com##.prc-ButtonGroup-ButtonGroup-vcMeG.DiffLinesMenu-module__diff-button-container--UrMbh
github.com##.DiffHeaderAskCopilotButton-module__askCopilotButton--XnBQK.prc-Button-ButtonBase-c50BI
github.com## #copilot-md-menu-anchor-new_comment_field
github.com# #a[href^="https://copilot-workspace.githubnext.com"]
github.com## #copilot-md-menu-anchor-pull_request_body
github.com##.lnwIhU.Box-sc-g0xbh4-0 > .octicon-copilot.octicon > path
github.com# #li:has(> ul > li#query-builder-test-result-ask-copilot)
github.com# #li.ActionList-sectionDivider[aria-hidden="true"]
github.com# #div:has(> button[data-testid="copilot-ask-menu"])
github.com# #div[data-test-id="copilot-actions-chat-button"]
github.com# #div.dropdown-divider:has(+span[data-target="copilot-diff-entry.menuItemsSlot"])
github.com# #span[data-target="copilot-diff-entry.menuItemsSlot"]
github.com# #react-partial[partial-name="copilot-code-chat"]
github.com##.copilotPreview__container
github.com# #button[id^="copilot-md-menu-anchor"]
github.com# #div:has(> button[id^="copilot-md-menu-anchor"]) + hr
github.com# #li:has(> ul > li#query-builder-test-result-chat-with-copilot)
github.com# #span:has(> p > span[data-assignee-name="Copilot"])
github.com# #div:has(> div > div > a[data-testid="open-in-copilot-agent-button"])
github.com# #command-palette-item[data-item-id="2918418660"]
github.com# #li.prc-ActionList-Divider-rsZFG
github.com# #li:has-text(/Ask about this diff/)
github.com# #div[class*="CopilotWorkspaceButton"]
github.com# #li[class="ActionListItem ActionListItem--hasSubItem"]:has(ul > li[data-item-id="repo_settings_copilot_swe_agent"])
github.com# #svg.octicon.octicon-copilot
github.com# #span[class="ActionListItem-label"]:has-text(Copilot)
github.com# #li:has(> div > span:has-text(/Explain error/))
github.com# #div[class*="CopilotAgentModeButton"]
github.com# #button:has(> span:has-text(/Try the new experience/))
github.com# #g-emoji[alias="sparkles"]
github.com# #inline-machine-translation
Pose Animator – An open source tool to bring SVG characters to life (2020)
#HackerNews #PoseAnimator #SVG #Animation #OpenSource #Tool #CharactersToLife #TensorFlow
OPEN SOURCE IS AWESOME!
As part of the #30DayMapChallenge I wanted to convert #svg to #GeoJSON Aside from the usual offerings of web-based convertors I found a single GitHub repo providing a rudimentary script but it had not been touched in over 3 years.
https://github.com/rhansson/svg2omap
I tried it, and only had to update a single #numpy call to make it work again!
Opened my fixes as PRs, fearing the worst (abandonware), but 1hr later they're merged it's and a functional tool again :D
Restoring some faith in humanity and the gifting economy.
OPEN SOURCE IS AWESOME!
As part of the #30DayMapChallenge I wanted to convert #svg to #GeoJSON Aside from the usual offerings of web-based convertors I found a single GitHub repo providing a rudimentary script but it had not been touched in over 3 years.
https://github.com/rhansson/svg2omap
I tried it, and only had to update a single #numpy call to make it work again!
Opened my fixes as PRs, fearing the worst (abandonware), but 1hr later they're merged it's and a functional tool again :D
Restoring some faith in humanity and the gifting economy.
Offline Math: Converting LaTeX to SVG with MathJax
Matthias has been hard at work implementing a way to render SVG icons with animations in GTK4: https://blogs.gnome.org/gtk/2025/10/23/svg-in-gtk/
Hey gang! We're now at over 450 SVG icons on #SuperTinyIcons
Each one is *under* 1KB. That's right, a max file size of 1,023 Bytes 🙂
Someone pointed out that we don't have our own logo - so if you'd like to suggest one, get cracking:
I've manually gone through all 464(!) icons and found about 25 which need updating.
If you'd like to help with a little bit of SVG Code-Golf - you can get stuck in at https://github.com/edent/SuperTinyIcons/issues?q=is%3Aissue%20state%3Aopen%20label%3AUpdate
Matthias has been hard at work implementing a way to render SVG icons with animations in GTK4: https://blogs.gnome.org/gtk/2025/10/23/svg-in-gtk/
Want Inkscape's Multi-page to work in web browsers (and other tools)?
Well my work today has been on moving our inkscape:page element to the SVG standard "view" element. Already supported in web browsers and hopefully supported someday in SVG viewers that use librsvg (are you interested @federicomena ?)
This will need testing and a migration for older data too. But I like more standards compliant files and less custom stuff in inkscape's svg.
Want Inkscape's Multi-page to work in web browsers (and other tools)?
Well my work today has been on moving our inkscape:page element to the SVG standard "view" element. Already supported in web browsers and hopefully supported someday in SVG viewers that use librsvg (are you interested @federicomena ?)
This will need testing and a migration for older data too. But I like more standards compliant files and less custom stuff in inkscape's svg.