<feed xmlns='http://www.w3.org/2005/Atom'>
<title>searxng/searx/templates/simple/macros.html, branch custom</title>
<subtitle>Free internet metasearch engine which aggregates results from various search services and databases</subtitle>
<id>https://git.ikboikov.net/searxng/atom?h=custom</id>
<link rel='self' href='https://git.ikboikov.net/searxng/atom?h=custom'/>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/'/>
<updated>2026-05-06T07:29:20Z</updated>
<entry>
<title>[mod] result templates: move iframe to macro and fix page rendering for non-YouTube links (#5960)</title>
<updated>2026-05-06T07:29:20Z</updated>
<author>
<name>Bnyro</name>
<email>bnyro@tutanota.com</email>
</author>
<published>2026-05-06T07:29:20Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=330d56bba9dfc1c7cfd1bcf027d092bc73d1ed10'/>
<id>urn:sha1:330d56bba9dfc1c7cfd1bcf027d092bc73d1ed10</id>
<content type='text'>
This PR moves the `iframe` logic into a macro, so that `videos.html` and `general.html` both can benefit from the workaround to fix YouTube results by @return42 in https://github.com/searxng/searxng/pull/5858

It also fixes that only YouTube videos contained the closing `&gt;` after `&lt;iframe border="0" ...`, the regression has been caused by https://github.com/searxng/searxng/pull/5858

## Why is this change important?

Currently, the page breaks if there's any non-YouTube Iframe

Here, the page ends in the middle of the results and the footer and page number selector are not visible.</content>
</entry>
<entry>
<title>Fix XSS via unsafe rendering of untrusted external data in templates (#5826)</title>
<updated>2026-03-13T12:28:31Z</updated>
<author>
<name>Renaud Allard</name>
<email>renaud@allard.it</email>
</author>
<published>2026-03-13T12:28:31Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=23fb76f08f9e1e78247601d5d86b6b79aece1e63'/>
<id>urn:sha1:23fb76f08f9e1e78247601d5d86b6b79aece1e63</id>
<content type='text'>
Remove |safe filter from 6 template locations where data from external
search engine APIs was rendered as raw HTML without sanitization. Jinja2
autoescape now properly escapes these fields.

The |safe filter was originally added in commit 213041adc (March 2021)
by copying the pattern from result.title|safe and result.content|safe.
However, title and content are pre-escaped via escape() in webapp.py
lines 704-706 before highlight_content() adds trusted &lt;span&gt; tags for
search term highlighting. The metadata, info.value, link.url_label,
repository, and filename fields never go through any escaping and flow
directly from external API responses to the template.

Affected templates and their untrusted data sources:
- macros.html: result.metadata from DuckDuckGo, Reuters, Presearch,
  Podcast Index, Fyyd, bpb, moviepilot, mediawiki, and others
- paper.html: result.metadata from academic search engines
- map.html: info.value and link.url_label from OpenStreetMap
  user-contributed extratags
- code.html: result.repository and result.filename from GitHub API

Example exploit: a search engine API returning
metadata='&lt;img src=x onerror=alert(document.cookie)&gt;' would execute
arbitrary JavaScript in every user's browser viewing that result.</content>
</entry>
<entry>
<title>[feat] video results: display video length on video thumbnail</title>
<updated>2025-10-17T13:59:53Z</updated>
<author>
<name>Bnyro</name>
<email>bnyro@tutanota.com</email>
</author>
<published>2025-10-12T18:18:10Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=636738779eb3af5b2756473c7123586d6f72222c'/>
<id>urn:sha1:636738779eb3af5b2756473c7123586d6f72222c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[enh] tidy: clean old morty, filtron, searx references</title>
<updated>2025-05-13T08:37:02Z</updated>
<author>
<name>Ivan Gabaldon</name>
<email>igabaldon@inetol.net</email>
</author>
<published>2025-04-05T08:59:07Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=2cfd3fc44b16e7f3c6010c0ac1004efb6dacf382'/>
<id>urn:sha1:2cfd3fc44b16e7f3c6010c0ac1004efb6dacf382</id>
<content type='text'>
Everyone should have already switched from legacy methods
</content>
</entry>
<entry>
<title>[web-client] simple theme: refactor jinja_svg_catalog and cleanup icon names</title>
<updated>2025-02-28T11:27:41Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2025-02-04T14:59:02Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=189dd0155df60c98b5d7de73b873c8ad444ff931'/>
<id>urn:sha1:189dd0155df60c98b5d7de73b873c8ad444ff931</id>
<content type='text'>
This patch implements the template generation of the template:

  searx/templates/simple/icons.html

by the way the icon set (the icon names) has been normalized:

  film-outline   --&gt; film
  magnet-outline --&gt; magnet
  ..
  warning        --&gt; alert

Some missing (categorie) icons had been added.

Some of the ionicons are not suitable for a dark theme, we fixed the svg
manually in src/svg/ionicons:

- https://github.com/searxng/searxng/pull/4284#issuecomment-2680550342

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
</entry>
<entry>
<title>[chore] cleanup</title>
<updated>2024-12-16T07:32:35Z</updated>
<author>
<name>Zhijie He</name>
<email>hezhijie0327@hotmail.com</email>
</author>
<published>2024-12-14T08:35:25Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=8d2c01e4ce8d64b477d538c4bd7409e3524a376d'/>
<id>urn:sha1:8d2c01e4ce8d64b477d538c4bd7409e3524a376d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[enh] add `engine-` prefix, replace blank space to `-`</title>
<updated>2024-12-16T07:32:35Z</updated>
<author>
<name>Zhijie He</name>
<email>hezhijie0327@hotmail.com</email>
</author>
<published>2024-12-14T08:06:56Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=12c27f416f72dc654ca1a2e2123014b4bb464cc1'/>
<id>urn:sha1:12c27f416f72dc654ca1a2e2123014b4bb464cc1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[fix]: fix engine name may break some css style, contains "right", "left", "center"</title>
<updated>2024-12-16T07:32:35Z</updated>
<author>
<name>Zhijie He</name>
<email>hezhijie0327@hotmail.com</email>
</author>
<published>2024-12-14T03:20:09Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=e90fa48018a35898c17de55c83c527766e6524e9'/>
<id>urn:sha1:e90fa48018a35898c17de55c83c527766e6524e9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[mod] favicons: simplify RTL in template &amp; CSS</title>
<updated>2024-10-05T06:18:28Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2024-10-02T16:06:29Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=a631f77401a0a20ae98ae472482d0e4b912d4c60'/>
<id>urn:sha1:a631f77401a0a20ae98ae472482d0e4b912d4c60</id>
<content type='text'>
Comes from a sughgestion in:

- https://github.com/searxng/searxng/pull/3727#issuecomment-2388998803

Suggested-by: Bnyro &lt;bnyro@tutanota.com&gt;
Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
</entry>
<entry>
<title>[mod] Revision of the favicon solution</title>
<updated>2024-10-05T06:18:28Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2024-08-19T15:47:54Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=7ab577a1fba43578b77f56b76275d0e65d03b318'/>
<id>urn:sha1:7ab577a1fba43578b77f56b76275d0e65d03b318</id>
<content type='text'>
All favicons implementations have been documented and moved to the Python
package:

    searx.favicons

There is a configuration (based on Pydantic) for the favicons and all its
components:

    searx.favicons.config

A solution for caching favicons has been implemented:

    searx.favicon.cache

If the favicon is already in the cache, the returned URL is a data URL [1]
(something like `data:image/png;base64,...`).  By generating a data url from
the FaviconCache, additional HTTP roundtripps via the favicon_proxy are saved:

    favicons.proxy.favicon_url

The favicon proxy service now sets a HTTP header "Cache-Control: max-age=...":

    favicons.proxy.favicon_proxy

The resolvers now also provide the mime type (data, mime):

    searx.favicon.resolvers

[1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
</entry>
</feed>
