<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.muenster4you.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alex</id>
	<title>MediaWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.muenster4you.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alex"/>
	<link rel="alternate" type="text/html" href="https://www.muenster4you.de/wiki/Spezial:Beitr%C3%A4ge/Alex"/>
	<updated>2026-04-12T17:40:00Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://www.muenster4you.de/w/index.php?title=Widget:SearchBox&amp;diff=1074</id>
		<title>Widget:SearchBox</title>
		<link rel="alternate" type="text/html" href="https://www.muenster4you.de/w/index.php?title=Widget:SearchBox&amp;diff=1074"/>
		<updated>2026-03-06T12:40:56Z</updated>

		<summary type="html">&lt;p&gt;Alex: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;api-search-widget&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;form id=&amp;quot;api-search-form&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;api-search-input&amp;quot; placeholder=&amp;quot;Suche…&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;button type=&amp;quot;submit&amp;quot;&amp;gt;Suchen&amp;lt;/button&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;div id=&amp;quot;api-search-results&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
#api-search-widget {&lt;br /&gt;
  max-width: 720px;&lt;br /&gt;
  font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&lt;br /&gt;
  color: #212529;&lt;br /&gt;
}&lt;br /&gt;
#api-search-form {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: 0;&lt;br /&gt;
  margin-bottom: 16px;&lt;br /&gt;
}&lt;br /&gt;
#api-search-input {&lt;br /&gt;
  flex: 1;&lt;br /&gt;
  padding: 10px 14px;&lt;br /&gt;
  font-size: 16px;&lt;br /&gt;
  border: 2px solid #a2a9b1;&lt;br /&gt;
  border-right: none;&lt;br /&gt;
  border-radius: 4px 0 0 4px;&lt;br /&gt;
  outline: none;&lt;br /&gt;
  transition: border-color 0.2s;&lt;br /&gt;
  color: #212529;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
#api-search-input:focus {&lt;br /&gt;
  border-color: #355B84;&lt;br /&gt;
}&lt;br /&gt;
#api-search-form button {&lt;br /&gt;
  padding: 10px 20px;&lt;br /&gt;
  font-size: 16px;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
  background: #355B84;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  border: 2px solid #355B84;&lt;br /&gt;
  border-radius: 0 4px 4px 0;&lt;br /&gt;
  transition: background 0.2s;&lt;br /&gt;
}&lt;br /&gt;
#api-search-form button:hover {&lt;br /&gt;
  background: #2a4a6b;&lt;br /&gt;
  border-color: #2a4a6b;&lt;br /&gt;
}&lt;br /&gt;
#api-search-results {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
#api-search-results.visible {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
.search-status {&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  color: #555;&lt;br /&gt;
  font-size: 15px;&lt;br /&gt;
}&lt;br /&gt;
.search-status.error {&lt;br /&gt;
  color: #a00;&lt;br /&gt;
  background: #fef2f2;&lt;br /&gt;
  border: 1px solid #fca5a5;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
@keyframes pulse {&lt;br /&gt;
  0%, 100% { opacity: 1; }&lt;br /&gt;
  50% { opacity: 0.5; }&lt;br /&gt;
}&lt;br /&gt;
.search-loading {&lt;br /&gt;
  animation: pulse 1.5s ease-in-out infinite;&lt;br /&gt;
}&lt;br /&gt;
.search-result-card {&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  margin-bottom: 12px;&lt;br /&gt;
  border: 1px solid #dee2e6;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  transition: box-shadow 0.15s;&lt;br /&gt;
}&lt;br /&gt;
.search-result-card:hover {&lt;br /&gt;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);&lt;br /&gt;
}&lt;br /&gt;
.search-result-card h4 {&lt;br /&gt;
  margin: 0 0 6px 0;&lt;br /&gt;
  font-size: 17px;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
.search-result-card h4 a {&lt;br /&gt;
  color: #1B599B;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
.search-result-card h4 a:hover {&lt;br /&gt;
  text-decoration: underline;&lt;br /&gt;
}&lt;br /&gt;
.search-result-snippet {&lt;br /&gt;
  font-size: 14px;&lt;br /&gt;
  line-height: 1.5;&lt;br /&gt;
  color: #333;&lt;br /&gt;
  margin-bottom: 8px;&lt;br /&gt;
}&lt;br /&gt;
.search-result-meta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
  font-size: 12px;&lt;br /&gt;
  color: #6c757d;&lt;br /&gt;
}&lt;br /&gt;
.search-result-meta span {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 4px;&lt;br /&gt;
}&lt;br /&gt;
.search-score-bar {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  width: 40px;&lt;br /&gt;
  height: 6px;&lt;br /&gt;
  background: #dee2e6;&lt;br /&gt;
  border-radius: 3px;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.search-score-fill {&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  background: #355B84;&lt;br /&gt;
  border-radius: 3px;&lt;br /&gt;
}&lt;br /&gt;
.search-result-count {&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
  color: #6c757d;&lt;br /&gt;
  margin-bottom: 12px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
(function() {&lt;br /&gt;
  var form = document.getElementById(&#039;api-search-form&#039;);&lt;br /&gt;
  var input = document.getElementById(&#039;api-search-input&#039;);&lt;br /&gt;
  var results = document.getElementById(&#039;api-search-results&#039;);&lt;br /&gt;
  var apiHost = &#039;api.&#039; + location.hostname.split(&#039;.&#039;).slice(1).join(&#039;.&#039;);&lt;br /&gt;
&lt;br /&gt;
  function escapeHtml(str) {&lt;br /&gt;
    var d = document.createElement(&#039;div&#039;);&lt;br /&gt;
    d.textContent = str;&lt;br /&gt;
    return d.innerHTML;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function truncate(str, len) {&lt;br /&gt;
    if (str.length &amp;lt;= len) return str;&lt;br /&gt;
    return str.substring(0, len).replace(/\s+\S*$/, &#039;&#039;) + &#039;…&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderResults(data) {&lt;br /&gt;
    if (!data.results || data.results.length === 0) {&lt;br /&gt;
      results.innerHTML = &#039;&amp;lt;div class=&amp;quot;search-status&amp;quot;&amp;gt;Keine Ergebnisse gefunden.&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var html = &#039;&amp;lt;div class=&amp;quot;search-result-count&amp;quot;&amp;gt;&#039; + data.results.length + &#039; Ergebnis&#039; + (data.results.length !== 1 ? &#039;se&#039; : &#039;&#039;) + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
    data.results.forEach(function(r) {&lt;br /&gt;
      if (typeof r === &#039;string&#039;) {&lt;br /&gt;
        html += &#039;&amp;lt;div class=&amp;quot;search-result-card&amp;quot;&amp;gt;&#039;&lt;br /&gt;
          + &#039;&amp;lt;div class=&amp;quot;search-result-snippet&amp;quot;&amp;gt;&#039; + escapeHtml(r) + &#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
          + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      } else {&lt;br /&gt;
        var pct = Math.round((r.similarity_score || 0) * 100);&lt;br /&gt;
        var wikiUrl = &#039;/wiki/&#039; + encodeURIComponent((r.page_title || &#039;&#039;).replace(/ /g, &#039;_&#039;));&lt;br /&gt;
        html += &#039;&amp;lt;div class=&amp;quot;search-result-card&amp;quot;&amp;gt;&#039;&lt;br /&gt;
          + &#039;&amp;lt;h4&amp;gt;&amp;lt;a href=&amp;quot;&#039; + wikiUrl + &#039;&amp;quot;&amp;gt;&#039; + escapeHtml(r.page_title || &#039;Ohne Titel&#039;) + &#039;&amp;lt;/a&amp;gt;&amp;lt;/h4&amp;gt;&#039;&lt;br /&gt;
          + &#039;&amp;lt;div class=&amp;quot;search-result-snippet&amp;quot;&amp;gt;&#039; + escapeHtml(truncate(r.content_text || &#039;&#039;, 250)) + &#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
          + &#039;&amp;lt;div class=&amp;quot;search-result-meta&amp;quot;&amp;gt;&#039;&lt;br /&gt;
          + &#039;&amp;lt;span&amp;gt;Relevanz: &amp;lt;span class=&amp;quot;search-score-bar&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;search-score-fill&amp;quot; style=&amp;quot;width:&#039; + pct + &#039;%&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; &#039; + pct + &#039;%&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
          + (r.source ? &#039;&amp;lt;span&amp;gt;Quelle: &#039; + escapeHtml(r.source) + &#039;&amp;lt;/span&amp;gt;&#039; : &#039;&#039;)&lt;br /&gt;
          + &#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    results.innerHTML = html;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  form.addEventListener(&#039;submit&#039;, function(e) {&lt;br /&gt;
    e.preventDefault();&lt;br /&gt;
    var query = input.value.trim();&lt;br /&gt;
    if (!query) return;&lt;br /&gt;
&lt;br /&gt;
    results.className = &#039;visible&#039;;&lt;br /&gt;
    results.innerHTML = &#039;&amp;lt;div class=&amp;quot;search-status search-loading&amp;quot;&amp;gt;Suche läuft…&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    var url = location.protocol + &#039;//&#039; + apiHost + &#039;/search?q=&#039; + encodeURIComponent(query);&lt;br /&gt;
&lt;br /&gt;
    fetch(url)&lt;br /&gt;
      .then(function(res) {&lt;br /&gt;
        if (!res.ok) throw new Error(&#039;HTTP &#039; + res.status);&lt;br /&gt;
        return res.json();&lt;br /&gt;
      })&lt;br /&gt;
      .then(function(data) {&lt;br /&gt;
        renderResults(data);&lt;br /&gt;
      })&lt;br /&gt;
      .catch(function(err) {&lt;br /&gt;
        results.innerHTML = &#039;&amp;lt;div class=&amp;quot;search-status error&amp;quot;&amp;gt;Fehler: &#039; + escapeHtml(err.message) + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
	<entry>
		<id>https://www.muenster4you.de/w/index.php?title=Widget:SearchBox&amp;diff=1073</id>
		<title>Widget:SearchBox</title>
		<link rel="alternate" type="text/html" href="https://www.muenster4you.de/w/index.php?title=Widget:SearchBox&amp;diff=1073"/>
		<updated>2026-03-06T12:38:48Z</updated>

		<summary type="html">&lt;p&gt;Alex: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;api-search-widget&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;form id=&amp;quot;api-search-form&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;api-search-input&amp;quot; placeholder=&amp;quot;Suche…&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;button type=&amp;quot;submit&amp;quot;&amp;gt;Suchen&amp;lt;/button&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;div id=&amp;quot;api-search-results&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
#api-search-widget {&lt;br /&gt;
  max-width: 720px;&lt;br /&gt;
  font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&lt;br /&gt;
  color: #212529;&lt;br /&gt;
}&lt;br /&gt;
#api-search-form {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: 0;&lt;br /&gt;
  margin-bottom: 16px;&lt;br /&gt;
}&lt;br /&gt;
#api-search-input {&lt;br /&gt;
  flex: 1;&lt;br /&gt;
  padding: 10px 14px;&lt;br /&gt;
  font-size: 16px;&lt;br /&gt;
  border: 2px solid #a2a9b1;&lt;br /&gt;
  border-right: none;&lt;br /&gt;
  border-radius: 4px 0 0 4px;&lt;br /&gt;
  outline: none;&lt;br /&gt;
  transition: border-color 0.2s;&lt;br /&gt;
  color: #212529;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
}&lt;br /&gt;
#api-search-input:focus {&lt;br /&gt;
  border-color: #355B84;&lt;br /&gt;
}&lt;br /&gt;
#api-search-form button {&lt;br /&gt;
  padding: 10px 20px;&lt;br /&gt;
  font-size: 16px;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
  background: #355B84;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  border: 2px solid #355B84;&lt;br /&gt;
  border-radius: 0 4px 4px 0;&lt;br /&gt;
  transition: background 0.2s;&lt;br /&gt;
}&lt;br /&gt;
#api-search-form button:hover {&lt;br /&gt;
  background: #2a4a6b;&lt;br /&gt;
  border-color: #2a4a6b;&lt;br /&gt;
}&lt;br /&gt;
#api-search-results {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
#api-search-results.visible {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
.search-status {&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  color: #555;&lt;br /&gt;
  font-size: 15px;&lt;br /&gt;
}&lt;br /&gt;
.search-status.error {&lt;br /&gt;
  color: #a00;&lt;br /&gt;
  background: #fef2f2;&lt;br /&gt;
  border: 1px solid #fca5a5;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
}&lt;br /&gt;
@keyframes pulse {&lt;br /&gt;
  0%, 100% { opacity: 1; }&lt;br /&gt;
  50% { opacity: 0.5; }&lt;br /&gt;
}&lt;br /&gt;
.search-loading {&lt;br /&gt;
  animation: pulse 1.5s ease-in-out infinite;&lt;br /&gt;
}&lt;br /&gt;
.search-result-card {&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  margin-bottom: 12px;&lt;br /&gt;
  border: 1px solid #dee2e6;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  background: #fff;&lt;br /&gt;
  transition: box-shadow 0.15s;&lt;br /&gt;
}&lt;br /&gt;
.search-result-card:hover {&lt;br /&gt;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);&lt;br /&gt;
}&lt;br /&gt;
.search-result-card h4 {&lt;br /&gt;
  margin: 0 0 6px 0;&lt;br /&gt;
  font-size: 17px;&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
.search-result-card h4 a {&lt;br /&gt;
  color: #1B599B;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
.search-result-card h4 a:hover {&lt;br /&gt;
  text-decoration: underline;&lt;br /&gt;
}&lt;br /&gt;
.search-result-snippet {&lt;br /&gt;
  font-size: 14px;&lt;br /&gt;
  line-height: 1.5;&lt;br /&gt;
  color: #333;&lt;br /&gt;
  margin-bottom: 8px;&lt;br /&gt;
}&lt;br /&gt;
.search-result-meta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
  font-size: 12px;&lt;br /&gt;
  color: #6c757d;&lt;br /&gt;
}&lt;br /&gt;
.search-result-meta span {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 4px;&lt;br /&gt;
}&lt;br /&gt;
.search-score-bar {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  width: 40px;&lt;br /&gt;
  height: 6px;&lt;br /&gt;
  background: #dee2e6;&lt;br /&gt;
  border-radius: 3px;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.search-score-fill {&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  background: #355B84;&lt;br /&gt;
  border-radius: 3px;&lt;br /&gt;
}&lt;br /&gt;
.search-result-count {&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
  color: #6c757d;&lt;br /&gt;
  margin-bottom: 12px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
(function() {&lt;br /&gt;
  var form = document.getElementById(&#039;api-search-form&#039;);&lt;br /&gt;
  var input = document.getElementById(&#039;api-search-input&#039;);&lt;br /&gt;
  var results = document.getElementById(&#039;api-search-results&#039;);&lt;br /&gt;
  var apiHost = &#039;api.&#039; + location.hostname.split(&#039;.&#039;).slice(1).join(&#039;.&#039;);&lt;br /&gt;
&lt;br /&gt;
  function escapeHtml(str) {&lt;br /&gt;
    var d = document.createElement(&#039;div&#039;);&lt;br /&gt;
    d.textContent = str;&lt;br /&gt;
    return d.innerHTML;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function truncate(str, len) {&lt;br /&gt;
    if (str.length &amp;lt;= len) return str;&lt;br /&gt;
    return str.substring(0, len).replace(/\s+\S*$/, &#039;&#039;) + &#039;…&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderResults(data) {&lt;br /&gt;
    if (!data.results || data.results.length === 0) {&lt;br /&gt;
      results.innerHTML = &#039;&amp;lt;div class=&amp;quot;search-status&amp;quot;&amp;gt;Keine Ergebnisse gefunden.&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var html = &#039;&amp;lt;div class=&amp;quot;search-result-count&amp;quot;&amp;gt;&#039; + data.results.length + &#039; Ergebnis&#039; + (data.results.length !== 1 ? &#039;se&#039; : &#039;&#039;) + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
    data.results.forEach(function(r) {&lt;br /&gt;
      var pct = Math.round(r.similarity_score * 100);&lt;br /&gt;
      var wikiUrl = &#039;/wiki/&#039; + encodeURIComponent(r.page_title.replace(/ /g, &#039;_&#039;));&lt;br /&gt;
      html += &#039;&amp;lt;div class=&amp;quot;search-result-card&amp;quot;&amp;gt;&#039;&lt;br /&gt;
        + &#039;&amp;lt;h4&amp;gt;&amp;lt;a href=&amp;quot;&#039; + wikiUrl + &#039;&amp;quot;&amp;gt;&#039; + escapeHtml(r.page_title) + &#039;&amp;lt;/a&amp;gt;&amp;lt;/h4&amp;gt;&#039;&lt;br /&gt;
        + &#039;&amp;lt;div class=&amp;quot;search-result-snippet&amp;quot;&amp;gt;&#039; + escapeHtml(truncate(r.content_text, 250)) + &#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
        + &#039;&amp;lt;div class=&amp;quot;search-result-meta&amp;quot;&amp;gt;&#039;&lt;br /&gt;
        + &#039;&amp;lt;span&amp;gt;Relevanz: &amp;lt;span class=&amp;quot;search-score-bar&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;search-score-fill&amp;quot; style=&amp;quot;width:&#039; + pct + &#039;%&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; &#039; + pct + &#039;%&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
        + &#039;&amp;lt;span&amp;gt;Quelle: &#039; + escapeHtml(r.source) + &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
        + &#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
    });&lt;br /&gt;
    results.innerHTML = html;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  form.addEventListener(&#039;submit&#039;, function(e) {&lt;br /&gt;
    e.preventDefault();&lt;br /&gt;
    var query = input.value.trim();&lt;br /&gt;
    if (!query) return;&lt;br /&gt;
&lt;br /&gt;
    results.className = &#039;visible&#039;;&lt;br /&gt;
    results.innerHTML = &#039;&amp;lt;div class=&amp;quot;search-status search-loading&amp;quot;&amp;gt;Suche läuft…&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    var url = location.protocol + &#039;//&#039; + apiHost + &#039;/search?q=&#039; + encodeURIComponent(query);&lt;br /&gt;
&lt;br /&gt;
    fetch(url)&lt;br /&gt;
      .then(function(res) {&lt;br /&gt;
        if (!res.ok) throw new Error(&#039;HTTP &#039; + res.status);&lt;br /&gt;
        return res.json();&lt;br /&gt;
      })&lt;br /&gt;
      .then(function(data) {&lt;br /&gt;
        renderResults(data);&lt;br /&gt;
      })&lt;br /&gt;
      .catch(function(err) {&lt;br /&gt;
        results.innerHTML = &#039;&amp;lt;div class=&amp;quot;search-status error&amp;quot;&amp;gt;Fehler: &#039; + escapeHtml(err.message) + &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
	<entry>
		<id>https://www.muenster4you.de/w/index.php?title=Widget:SearchBox&amp;diff=1072</id>
		<title>Widget:SearchBox</title>
		<link rel="alternate" type="text/html" href="https://www.muenster4you.de/w/index.php?title=Widget:SearchBox&amp;diff=1072"/>
		<updated>2026-02-17T14:11:32Z</updated>

		<summary type="html">&lt;p&gt;Alex: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;api-search-widget&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;form id=&amp;quot;api-search-form&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;api-search-input&amp;quot; placeholder=&amp;quot;Suche…&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;button type=&amp;quot;submit&amp;quot;&amp;gt;Suchen&amp;lt;/button&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;div id=&amp;quot;api-search-results&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
#api-search-widget {&lt;br /&gt;
  max-width: 600px;&lt;br /&gt;
}&lt;br /&gt;
#api-search-form {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: 8px;&lt;br /&gt;
  margin-bottom: 12px;&lt;br /&gt;
}&lt;br /&gt;
#api-search-input {&lt;br /&gt;
  flex: 1;&lt;br /&gt;
  padding: 8px;&lt;br /&gt;
  font-size: 14px;&lt;br /&gt;
  border: 1px solid #a2a9b1;&lt;br /&gt;
  border-radius: 2px;&lt;br /&gt;
}&lt;br /&gt;
#api-search-form button {&lt;br /&gt;
  padding: 8px 16px;&lt;br /&gt;
  font-size: 14px;&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
#api-search-results {&lt;br /&gt;
  white-space: pre-wrap;&lt;br /&gt;
  font-family: monospace;&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
  background: #f8f9fa;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  border: 1px solid #eaecf0;&lt;br /&gt;
  border-radius: 2px;&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
(function() {&lt;br /&gt;
  var form = document.getElementById(&#039;api-search-form&#039;);&lt;br /&gt;
  var input = document.getElementById(&#039;api-search-input&#039;);&lt;br /&gt;
  var results = document.getElementById(&#039;api-search-results&#039;);&lt;br /&gt;
  var apiHost = &#039;api.&#039; + location.hostname.split(&#039;.&#039;).slice(1).join(&#039;.&#039;);&lt;br /&gt;
&lt;br /&gt;
  form.addEventListener(&#039;submit&#039;, function(e) {&lt;br /&gt;
    e.preventDefault();&lt;br /&gt;
    var query = input.value.trim();&lt;br /&gt;
    if (!query) return;&lt;br /&gt;
&lt;br /&gt;
    results.style.display = &#039;block&#039;;&lt;br /&gt;
    results.textContent = &#039;Laden…&#039;;&lt;br /&gt;
&lt;br /&gt;
    var url = location.protocol + &#039;//&#039; + apiHost + &#039;/search?q=&#039; + encodeURIComponent(query);&lt;br /&gt;
&lt;br /&gt;
    fetch(url)&lt;br /&gt;
      .then(function(res) {&lt;br /&gt;
        if (!res.ok) throw new Error(&#039;HTTP &#039; + res.status);&lt;br /&gt;
        return res.json();&lt;br /&gt;
      })&lt;br /&gt;
      .then(function(data) {&lt;br /&gt;
        results.textContent = JSON.stringify(data, null, 2);&lt;br /&gt;
      })&lt;br /&gt;
      .catch(function(err) {&lt;br /&gt;
        results.textContent = &#039;Fehler: &#039; + err.message;&lt;br /&gt;
      });&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
	<entry>
		<id>https://www.muenster4you.de/w/index.php?title=SearchBox&amp;diff=1071</id>
		<title>SearchBox</title>
		<link rel="alternate" type="text/html" href="https://www.muenster4you.de/w/index.php?title=SearchBox&amp;diff=1071"/>
		<updated>2026-02-17T14:09:10Z</updated>

		<summary type="html">&lt;p&gt;Alex: Die Seite wurde neu angelegt: „{{#widget:SearchBox}}“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#widget:SearchBox}}&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
	<entry>
		<id>https://www.muenster4you.de/w/index.php?title=Widget:SearchBox&amp;diff=1070</id>
		<title>Widget:SearchBox</title>
		<link rel="alternate" type="text/html" href="https://www.muenster4you.de/w/index.php?title=Widget:SearchBox&amp;diff=1070"/>
		<updated>2026-02-17T14:08:08Z</updated>

		<summary type="html">&lt;p&gt;Alex: Die Seite wurde neu angelegt: „&amp;lt;includeonly&amp;gt; &amp;lt;div id=&amp;quot;api-search-widget&amp;quot;&amp;gt;   &amp;lt;form id=&amp;quot;api-search-form&amp;quot;&amp;gt;     &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;api-search-input&amp;quot; placeholder=&amp;quot;Suche…&amp;quot; /&amp;gt;     &amp;lt;button type=&amp;quot;submit&amp;quot;&amp;gt;Suchen&amp;lt;/button&amp;gt;   &amp;lt;/form&amp;gt;   &amp;lt;div id=&amp;quot;api-search-results&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;  &amp;lt;style&amp;gt; #api-search-widget {   max-width: 600px; } #api-search-form {   display: flex;   gap: 8px;   margin-bottom: 12px; } #api-search-input {   flex: 1;   padding: 8px;   font-size: 14px;   border: 1px solid #a2a9b1…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;api-search-widget&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;form id=&amp;quot;api-search-form&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;api-search-input&amp;quot; placeholder=&amp;quot;Suche…&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;button type=&amp;quot;submit&amp;quot;&amp;gt;Suchen&amp;lt;/button&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;div id=&amp;quot;api-search-results&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
#api-search-widget {&lt;br /&gt;
  max-width: 600px;&lt;br /&gt;
}&lt;br /&gt;
#api-search-form {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: 8px;&lt;br /&gt;
  margin-bottom: 12px;&lt;br /&gt;
}&lt;br /&gt;
#api-search-input {&lt;br /&gt;
  flex: 1;&lt;br /&gt;
  padding: 8px;&lt;br /&gt;
  font-size: 14px;&lt;br /&gt;
  border: 1px solid #a2a9b1;&lt;br /&gt;
  border-radius: 2px;&lt;br /&gt;
}&lt;br /&gt;
#api-search-form button {&lt;br /&gt;
  padding: 8px 16px;&lt;br /&gt;
  font-size: 14px;&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
#api-search-results {&lt;br /&gt;
  white-space: pre-wrap;&lt;br /&gt;
  font-family: monospace;&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
  background: #f8f9fa;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  border: 1px solid #eaecf0;&lt;br /&gt;
  border-radius: 2px;&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
(function() {&lt;br /&gt;
  var form = document.getElementById(&#039;api-search-form&#039;);&lt;br /&gt;
  var input = document.getElementById(&#039;api-search-input&#039;);&lt;br /&gt;
  var results = document.getElementById(&#039;api-search-results&#039;);&lt;br /&gt;
  var apiHost = &#039;api.&#039; + location.hostname.split(&#039;.&#039;).slice(1).join(&#039;.&#039;);&lt;br /&gt;
&lt;br /&gt;
  form.addEventListener(&#039;submit&#039;, function(e) {&lt;br /&gt;
    e.preventDefault();&lt;br /&gt;
    var query = input.value.trim();&lt;br /&gt;
    if (!query) return;&lt;br /&gt;
&lt;br /&gt;
    results.style.display = &#039;block&#039;;&lt;br /&gt;
    results.textContent = &#039;Laden…&#039;;&lt;br /&gt;
&lt;br /&gt;
    var url = location.protocol + &#039;//&#039; + apiHost + &#039;/search?query=&#039; + encodeURIComponent(query);&lt;br /&gt;
&lt;br /&gt;
    fetch(url)&lt;br /&gt;
      .then(function(res) {&lt;br /&gt;
        if (!res.ok) throw new Error(&#039;HTTP &#039; + res.status);&lt;br /&gt;
        return res.json();&lt;br /&gt;
      })&lt;br /&gt;
      .then(function(data) {&lt;br /&gt;
        results.textContent = JSON.stringify(data, null, 2);&lt;br /&gt;
      })&lt;br /&gt;
      .catch(function(err) {&lt;br /&gt;
        results.textContent = &#039;Fehler: &#039; + err.message;&lt;br /&gt;
      });&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
	<entry>
		<id>https://www.muenster4you.de/w/index.php?title=Searchtest&amp;diff=1069</id>
		<title>Searchtest</title>
		<link rel="alternate" type="text/html" href="https://www.muenster4you.de/w/index.php?title=Searchtest&amp;diff=1069"/>
		<updated>2026-02-17T11:15:49Z</updated>

		<summary type="html">&lt;p&gt;Alex: Die Seite wurde neu angelegt: „Hello world“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello world&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>