<feed xmlns='http://www.w3.org/2005/Atom'>
<title>searxng/client/simple/src/js/util/appendAnswerElement.ts, branch master</title>
<subtitle>Free internet metasearch engine which aggregates results from various search services and databases</subtitle>
<id>https://git.ikboikov.net/searxng/atom?h=master</id>
<link rel='self' href='https://git.ikboikov.net/searxng/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/'/>
<updated>2026-08-19T12:09:02Z</updated>
<entry>
<title>[fix] calculator: XSS from innerHTML (#6551)</title>
<updated>2026-08-19T12:09:02Z</updated>
<author>
<name>Brock Vojkovic</name>
<email>git@vojk.au</email>
</author>
<published>2026-08-19T12:09:02Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=5ffd32ca2f5e3648bcaa61ad18b94f258852edcb'/>
<id>urn:sha1:5ffd32ca2f5e3648bcaa61ad18b94f258852edcb</id>
<content type='text'>
* [fix] calculator: XSS from innerHTML

* [build] /static</content>
</entry>
<entry>
<title>[mod] client/simple: client plugins (#5406)</title>
<updated>2025-12-02T10:18:00Z</updated>
<author>
<name>Ivan Gabaldon</name>
<email>igabaldon@inetol.net</email>
</author>
<published>2025-12-02T10:18:00Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=fb089ae297b27f51777318e3a28bca8b172a4165'/>
<id>urn:sha1:fb089ae297b27f51777318e3a28bca8b172a4165</id>
<content type='text'>
* [mod] client/simple: client plugins

Defines a new interface for client side *"plugins"* that coexist with server
side plugin system. Each plugin (e.g., `InfiniteScroll`) extends the base
`ts Plugin`. Client side plugins are independent and lazy‑loaded via `router.ts`
when their `load()` conditions are met. On each navigation request, all
applicable plugins are instanced.

Since these are client side plugins, we can only invoke them once DOM is fully
loaded. E.g. `Calculator` will not render a new `answer` block until fully
loaded and executed.

For some plugins, we might want to handle its availability in `settings.yml`
and toggle in UI, like we do for server side plugins. In that case, we extend
`py Plugin` instancing only the information and then checking client side if
[`settings.plugins`](https://github.com/inetol/searxng/blob/1ad832b1dc33f3f388da361ff2459b05dc86a164/client/simple/src/js/toolkit.ts#L134)
array has the plugin id.

* [mod] client/simple: rebuild static</content>
</entry>
</feed>
