Diskussionsseite

Von $1

    Inhaltsverzeichnis
    keine Gliederung

    Version seit 18:26, 11 Aug 2026

    zu dieser Version.

    Zurück zu Versionshistorie.

    Zeige aktuelle Version

    <!-- ============================================================ HELIKON DEMO & TESTSEITE Seite: z.B. Bereiche/INTERN/Testsystem oder Willkommen/Demo Version: 1.1 Datum: 2026-03-01 Zweck: Testseite fuer Upload-Script & Demo fuer neue Nutzer Fixes: v1.1 — web.html() fuer Zeilenumbrueche, ASCII statt 4-byte Emojis, URL auto-link fix, tag.name, hero fix Hinweis: Im MindTouch Source Editor einfuegen (nicht WYSIWYG!) ============================================================ --> <pre class="script-css"> /* === DEMO PAGE v1.1 STYLES === */ .demo-hero { background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); color: #fff; padding: 40px 32px; border-radius: 12px; margin: 0 0 32px 0; text-align: center; position: relative; overflow: hidden; } .demo-hero::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255,255,255,0.03) 0%, transparent 70%); animation: heroGlow 8s ease-in-out infinite; } @keyframes heroGlow { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(5%, 5%); } } .demo-hero h1 { font-size: 28px; margin: 0 0 8px 0; position: relative; color: #fff; } .demo-hero .hero-sub { font-size: 14px; opacity: 0.7; position: relative; } .demo-hero .hero-meta { margin-top: 20px; font-size: 11px; opacity: 0.5; position: relative; font-family: 'Courier New', monospace; } /* === SECTION CARDS === */ .demo-section { background: #fff; border: 1px solid #e0e0e0; border-radius: 8px; padding: 24px 28px; margin: 0 0 24px 0; box-shadow: 0 1px 4px rgba(0,0,0,0.06); transition: box-shadow 0.2s ease; } .demo-section:hover { box-shadow: 0 3px 12px rgba(0,0,0,0.1); } .demo-section h2 { color: #0f3460; border-bottom: 2px solid #e8e8e8; padding-bottom: 8px; margin-top: 0; } .demo-section h3 { color: #16213e; margin-top: 20px; } /* === CODE DISPLAY === */ .deki-code { background: #1e1e2e; color: #cdd6f4; padding: 16px 20px; border-radius: 6px; font-family: 'Courier New', Courier, monospace; font-size: 12px; line-height: 1.8; overflow-x: auto; margin: 12px 0; border-left: 3px solid #cc8800; } .deki-code a { color: #cdd6f4 !important; text-decoration: none !important; pointer-events: none; } .deki-code .code-comment { color: #6c7086; } .deki-code .code-func { color: #89b4fa; } .deki-code .code-string { color: #a6e3a1; } .deki-code .code-keyword { color: #cba6f7; } /* === LIVE OUTPUT === */ .deki-output { background: #f8faf8; border: 1px dashed #4caf50; border-radius: 6px; padding: 14px 20px; margin: 12px 0; font-family: 'Courier New', monospace; font-size: 13px; color: #2e7d32; position: relative; } .deki-output::before { content: '\25B6 LIVE'; position: absolute; top: -10px; left: 12px; background: #4caf50; color: #fff; font-size: 9px; padding: 2px 8px; border-radius: 3px; letter-spacing: 1px; font-family: Arial, sans-serif; } /* === INFO BOXES === */ .demo-info { background: #fff8e1; border-left: 4px solid #cc8800; padding: 14px 20px; margin: 16px 0; border-radius: 0 6px 6px 0; font-size: 13px; color: #5d4037; } .demo-tip { background: #e8f5e9; border-left: 4px solid #4caf50; padding: 14px 20px; margin: 16px 0; border-radius: 0 6px 6px 0; font-size: 13px; color: #2e7d32; } .demo-warn { background: #fce4ec; border-left: 4px solid #e53935; padding: 14px 20px; margin: 16px 0; border-radius: 0 6px 6px 0; font-size: 13px; color: #b71c1c; } /* === FEATURE GRID === */ .feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin: 16px 0; } .feature-card { background: #f5f7fa; border: 1px solid #e0e4ea; border-radius: 8px; padding: 20px; text-align: center; transition: transform 0.2s ease, box-shadow 0.2s ease; } .feature-card:hover { transform: translateY(-3px); box-shadow: 0 4px 12px rgba(0,0,0,0.1); } .feature-icon { font-size: 32px; margin-bottom: 8px; display: block; } .feature-card strong { display: block; color: #0f3460; margin-bottom: 6px; } .feature-card span.fc-desc { font-size: 12px; color: #666; } /* === DARK MODE === */ body.dark-mode .demo-section { background: #1a1a1a; border-color: #333; color: #ddd; } body.dark-mode .demo-section h2 { color: #cc8800; border-color: #333; } body.dark-mode .demo-section h3 { color: #e0e0e0; } body.dark-mode .deki-output { background: #1a2e1a; border-color: #4caf50; color: #81c784; } body.dark-mode .demo-info { background: #2a2000; color: #ccaa44; } body.dark-mode .demo-tip { background: #0a200a; color: #81c784; } body.dark-mode .demo-warn { background: #2a0a0a; color: #ef9a9a; } body.dark-mode .feature-card { background: #222; border-color: #333; } body.dark-mode .feature-card strong { color: #cc8800; } body.dark-mode .feature-card span.fc-desc { color: #999; } </pre> <!-- ============================================================ HERO BEREICH ============================================================ --> <div class="demo-hero"> <h1>&#9733; Willkommen bei MindTouch Core</h1> <p class="hero-sub">Dein Dokumentations-System &mdash; erweitert mit DekiScript, KI und Liebe zum Detail.</p> <div class="hero-meta"> <pre class="script"> var ts = date.now; var gruss = 'Hallo'; var h = date.hours(ts); if (h &lt; 12) { let gruss = 'Guten Morgen'; } else if (h &lt; 17) { let gruss = 'Guten Tag'; } else { let gruss = 'Guten Abend'; } gruss .. ', ' .. (user.name ?? 'Gast') .. '! &amp;mdash; ' .. date.format(ts, 'dd.MM.yyyy') .. ' | ' .. date.format(ts, 'HH:mm') .. ' Uhr'; </pre> </div> </div> <!-- ============================================================ 1. WAS IST DEKISCRIPT? ============================================================ --> <div class="demo-section"> <h2>&#9998; 1. Was ist DekiScript?</h2> <p>DekiScript ist die eingebaute Scriptsprache von MindTouch Core. Sie macht aus statischen Wiki-Seiten <strong>lebendige, dynamische Dokumente</strong>. Alles was du zwischen <code>&lt;pre class="script"&gt;</code> Tags schreibst, wird serverseitig ausgef&#252;hrt.</p> <div class="demo-info"> <strong>&#9432; Gut zu wissen:</strong> DekiScript l&#228;uft auf dem Server, nicht im Browser. Der Besucher sieht nur das Ergebnis &mdash; nie den Code. </div> <h3>1.1 Dein erstes DekiScript</h3> <p>So sieht ein einfaches DekiScript aus:</p> <div class="deki-code"> <span class="code-comment">// Begruessung mit dem aktuellen Benutzernamen</span><br/> <span class="code-keyword">var</span> name = <span class="code-func">user.name</span> ?? <span class="code-string">'Gast'</span>;<br/> <span class="code-string">'Hallo, '</span> .. name .. <span class="code-string">'! Willkommen.'</span>; </div> <p><strong>Ergebnis (live):</strong></p> <div class="deki-output"> <pre class="script"> var name = user.name ?? 'Gast'; 'Hallo, ' .. name .. '! Willkommen.'; </pre> </div> <h3>1.2 Datum und Uhrzeit</h3> <div class="deki-code"> <span class="code-comment">// Aktuelles Datum formatiert</span><br/> <span class="code-keyword">var</span> jetzt = <span class="code-func">date.now</span>;<br/> <span class="code-string">'Heute: '</span> .. <span class="code-func">date.format</span>(jetzt, <span class="code-string">'dddd, dd. MMMM yyyy'</span>); </div> <div class="deki-output"> <pre class="script"> var jetzt = date.now; 'Heute: ' .. date.format(jetzt, 'dddd, dd. MMMM yyyy'); </pre> </div> </div> <!-- ============================================================ 2. SEITEN-INFORMATIONEN ============================================================ --> <div class="demo-section"> <h2>&#9776; 2. Seiten-Informationen abfragen</h2> <p>Jede Seite in MindTouch kennt sich selbst. DekiScript gibt dir Zugriff auf alle Metadaten:</p> <h3>2.1 Seitentitel und Pfad</h3> <div class="deki-code"> <span class="code-func">page.title</span> <span class="code-comment">// Titel dieser Seite</span><br/> <span class="code-func">page.path</span> <span class="code-comment">// Pfad im Wiki</span><br/> <span class="code-func">page.id</span> <span class="code-comment">// Eindeutige Page-ID</span> </div> <div class="deki-output"> <pre class="script"> var br = web.html('&lt;br/&gt;'); 'Titel: ' .. page.title .. br .. 'Pfad: ' .. page.path .. br .. 'Page-ID: ' .. page.id; </pre> </div> <h3>2.2 Seiten-Statistiken</h3> <div class="deki-code"> <span class="code-func">page.revisions</span> <span class="code-comment">// Anzahl Revisionen</span><br/> <span class="code-func">page.date</span> <span class="code-comment">// Letzte Aenderung</span><br/> <span class="code-func">page.author</span> <span class="code-comment">// Letzter Autor</span> </div> <div class="deki-output"> <pre class="script"> var br = web.html('&lt;br/&gt;'); 'Letzte Aenderung: ' .. date.format(page.date, 'dd.MM.yyyy HH:mm') .. br .. 'Autor: ' .. (page.author.name ?? page.author ?? 'unbekannt'); </pre> </div> <div class="demo-tip"> <strong>&#10003; Tipp:</strong> Nutze <code>page.id</code> f&#252;r API-Aufrufe und Automatisierung. Die ID &#228;ndert sich nie, auch wenn die Seite verschoben wird! </div> </div> <!-- ============================================================ 3. BEDINGTE LOGIK ============================================================ --> <div class="demo-section"> <h2>&#9881; 3. Bedingte Logik</h2> <p>DekiScript kann Entscheidungen treffen. Zeige Inhalte abh&#228;ngig von Tageszeit, Benutzer oder anderen Bedingungen:</p> <h3>3.1 Tageszeit-abh&#228;ngige Begr&#252;ssung</h3> <div class="deki-code"> <span class="code-keyword">var</span> h = <span class="code-func">date.hours</span>(<span class="code-func">date.now</span>);<br/> <span class="code-keyword">if</span> (h &lt; 6) { <span class="code-string">'Nachtschicht? Respekt!'</span> }<br/> <span class="code-keyword">else if</span> (h &lt; 12) { <span class="code-string">'Guten Morgen! Kaffee?'</span> }<br/> <span class="code-keyword">else if</span> (h &lt; 17) { <span class="code-string">'Guten Tag! Produktiv unterwegs?'</span> }<br/> <span class="code-keyword">else</span> { <span class="code-string">'Feierabend bald -- noch kurz Doku?'</span> } </div> <div class="deki-output"> <pre class="script"> var h = date.hours(date.now); if (h &lt; 6) { '&#9790; Nachtschicht? Respekt!' } else if (h &lt; 12) { '&#9749; Guten Morgen! Kaffee?' } else if (h &lt; 17) { '&#9728; Guten Tag! Produktiv unterwegs?' } else { '&#9788; Feierabend bald -- noch kurz Doku?' } </pre> </div> <h3>3.2 Benutzer-Erkennung</h3> <div class="deki-code"> <span class="code-keyword">var</span> u = <span class="code-func">user.name</span>;<br/> <span class="code-keyword">if</span> (u == <span class="code-string">'Minocula'</span>) { <span class="code-string">'Admin erkannt!'</span> }<br/> <span class="code-keyword">else if</span> (u != <span class="code-keyword">nil</span>) { <span class="code-string">'Hallo '</span> .. u }<br/> <span class="code-keyword">else</span> { <span class="code-string">'Gast-Zugang'</span> } </div> <div class="deki-output"> <pre class="script"> var u = user.name; if (u == 'Minocula') { '&#9733; Admin erkannt! Willkommen zurueck.' } else if (u != nil) { '&#9654; Hallo ' .. u .. '!' } else { '&#9654; Du bist als Gast unterwegs. Anmelden fuer mehr Features!' } </pre> </div> </div> <!-- ============================================================ 4. LISTEN UND SCHLEIFEN ============================================================ --> <div class="demo-section"> <h2>&#9735; 4. Listen und Schleifen</h2> <p>MindTouch kann dynamisch Listen und Tabellen erzeugen:</p> <h3>4.1 Unterseiten auflisten</h3> <div class="deki-code"> <span class="code-keyword">var</span> subs = <span class="code-func">page.subpages</span>;<br/> <span class="code-keyword">if</span> (#subs &gt; 0) {<br/> &nbsp;&nbsp;<span class="code-keyword">foreach</span> (<span class="code-keyword">var</span> s <span class="code-keyword">in</span> subs) {<br/> &nbsp;&nbsp;&nbsp;&nbsp;<span class="code-string">'&gt; '</span> .. <span class="code-func">s.title</span> .. web.html(<span class="code-string">'&lt;br/&gt;'</span>);<br/> &nbsp;&nbsp;}<br/> } <span class="code-keyword">else</span> { <span class="code-string">'Keine Unterseiten vorhanden.'</span> } </div> <div class="deki-output"> <pre class="script"> var subs = page.subpages; var br = web.html('&lt;br/&gt;'); if (#subs &gt; 0) { foreach (var s in subs) { '&#9654; ' .. s.title .. br; } } else { '(Keine Unterseiten -- erstelle welche um sie hier zu sehen!)' } </pre> </div> <h3>4.2 Eigene Listen erzeugen</h3> <div class="deki-code"> <span class="code-keyword">var</span> tools = [ <span class="code-string">'MindTouch Core'</span>, <span class="code-string">'DekiScript'</span>, <span class="code-string">'Helikon AI'</span>, <span class="code-string">'ElevenLabs TTS'</span> ];<br/> <span class="code-keyword">foreach</span> (<span class="code-keyword">var</span> t <span class="code-keyword">in</span> tools) {<br/> &nbsp;&nbsp;<span class="code-string">'&#9889; '</span> .. t .. web.html(<span class="code-string">'&lt;br/&gt;'</span>);<br/> } </div> <div class="deki-output"> <pre class="script"> var tools = [ 'MindTouch Core', 'DekiScript', 'Helikon AI', 'ElevenLabs TTS' ]; var br = web.html('&lt;br/&gt;'); foreach (var t in tools) { '&#9889; ' .. t .. br; } </pre> </div> </div> <!-- ============================================================ 5. TAGS UND NAVIGATION ============================================================ --> <div class="demo-section"> <h2>&#9873; 5. Tags und Navigation</h2> <p>Tags sind kraftvolle Werkzeuge f&#252;r Organisation und Suche:</p> <h3>5.1 Tags dieser Seite</h3> <div class="deki-code"> <span class="code-keyword">var</span> tags = <span class="code-func">page.tags</span>;<br/> <span class="code-keyword">if</span> (#tags &gt; 0) {<br/> &nbsp;&nbsp;<span class="code-keyword">foreach</span> (<span class="code-keyword">var</span> t <span class="code-keyword">in</span> tags) { <span class="code-string">'[' .. t .. '] '</span>; }<br/> } <span class="code-keyword">else</span> { <span class="code-string">'Noch keine Tags gesetzt.'</span> } </div> <div class="deki-output"> <pre class="script"> var tags = page.tags; if (#tags &gt; 0) { foreach (var t in tags) { '[' .. t .. '] '; } } else { 'Noch keine Tags gesetzt -- fuelle diese Seite mit Leben!' } </pre> </div> <div class="demo-info"> <strong>&#9432; Tipp:</strong> Setze Tags wie <code>demo</code>, <code>test</code>, <code>helikon</code> auf diese Seite. Sie erscheinen dann sofort oben! </div> </div> <!-- ============================================================ 6. FEATURE SHOWCASE ============================================================ --> <div class="demo-section"> <h2>&#9733; 6. Was MindTouch + Helikon kann</h2> <p>Diese Plattform ist mehr als ein Wiki. Hier ein &#220;berblick was m&#246;glich ist:</p> <div class="feature-grid"> <div class="feature-card"> <span class="feature-icon">&#9881;</span> <strong>Helikon AI Chat</strong> <span class="fc-desc">Frag den Buddy! Dual-LLM mit lokaler KI und Claude.</span> </div> <div class="feature-card"> <span class="feature-icon">&#9835;</span> <strong>Voice Suite</strong> <span class="fc-desc">Text-zu-Sprache, Sprache-zu-Text, Anruf-Modus mit ElevenLabs.</span> </div> <div class="feature-card"> <span class="feature-icon">&#9906;</span> <strong>Wiki-Suche</strong> <span class="fc-desc">Intelligente Suche &#252;ber alle Seiten via MindTouch API.</span> </div> <div class="feature-card"> <span class="feature-icon">&#9883;</span> <strong>Dynamische Inhalte</strong> <span class="fc-desc">DekiScript macht jede Seite lebendig und kontextabh&#228;ngig.</span> </div> <div class="feature-card"> <span class="feature-icon">&#9742;</span> <strong>Mobile Ready</strong> <span class="fc-desc">Responsive Design, Touch-Drag, Shake-to-Surprise.</span> </div> <div class="feature-card"> <span class="feature-icon">&#9776;</span> <strong>Dynamic TOC</strong> <span class="fc-desc">Automatisches Inhaltsverzeichnis das mitscrollt.</span> </div> </div> </div> <!-- ============================================================ 7. API ZUGRIFF ============================================================ --> <div class="demo-section"> <h2>&#9889; 7. Die MindTouch API</h2> <p>MindTouch bietet eine m&#228;chtige REST API. Hier ein paar Beispiele was damit m&#246;glich ist:</p> <h3>7.1 Seiten-Info per API</h3> <div class="deki-code"> <span class="code-comment">// Bash: Seiten-Info abrufen</span><br/> <span class="code-func">curl</span> -s <span class="code-string">"localhost/@api/deki/pages/{PAGE_ID}/info"</span><br/> <br/> <span class="code-comment">// Seiteninhalt holen</span><br/> <span class="code-func">curl</span> -s <span class="code-string">"localhost/@api/deki/pages/{PAGE_ID}/contents"</span><br/> <br/> <span class="code-comment">// Properties auslesen</span><br/> <span class="code-func">curl</span> -s <span class="code-string">"localhost/@api/deki/pages/{PAGE_ID}/properties"</span> </div> <h3>7.2 Seiten-Info via DekiScript</h3> <div class="deki-code"> <span class="code-comment">// API-Basispfad dynamisch</span><br/> <span class="code-keyword">var</span> apiBase = <span class="code-string">'/@api/deki'</span>;<br/> <span class="code-keyword">var</span> infoUrl = apiBase .. <span class="code-string">'/pages/'</span> .. <span class="code-func">page.id</span> .. <span class="code-string">'/info'</span>;<br/> <span class="code-string">'API Endpunkt: '</span> .. infoUrl; </div> <div class="deki-output"> <pre class="script"> var apiBase = '/@api/deki'; var infoUrl = apiBase .. '/pages/' .. page.id .. '/info'; '&#9889; API Endpunkt: ' .. infoUrl; </pre> </div> <div class="demo-warn"> <strong>&#9888; Achtung:</strong> API-Zugriffe die Daten ver&#228;ndern (PUT, POST, DELETE) brauchen Authentifizierung! Lesende Zugriffe (GET) sind je nach Konfiguration offen. </div> </div> <!-- ============================================================ 8. SYSTEM-STATUS ============================================================ --> <div class="demo-section"> <h2>&#9881; 8. System-Status</h2> <p>DekiScript kann auch Systeminformationen anzeigen:</p> <div class="deki-output"> <pre class="script"> var br = web.html('&lt;br/&gt;'); '&#9733; Site: ' .. site.name .. br .. '&#9654; User: ' .. (user.name ?? 'Gast') .. br .. '&#9654; Seite: ' .. page.title .. ' (ID ' .. page.id .. ')' .. br .. '&#9654; Datum: ' .. date.format(date.now, 'dd.MM.yyyy HH:mm:ss') .. br .. '&#9654; Pfad: ' .. page.path; </pre> </div> </div> <!-- ============================================================ 9. ABSCHLUSS ============================================================ --> <div class="demo-section" style="text-align:center; border-color:#cc8800;"> <h2>&#9733; Auf alten Pfannen lernt man kochen.</h2> <p style="font-size:14px; color:#666; max-width:560px; margin:12px auto;"> Diese Plattform l&#228;uft auf MindTouch Core 2013 &mdash; einer Software die &#228;lter ist als mancher Praktikant.<br/> Und doch: Mit DekiScript, KI-Integration und etwas Kreativit&#228;t entsteht etwas, das kein modernes Wiki von der Stange bieten kann. </p> <div style="font-size:12px; color:#999; font-family:'Courier New',monospace;"> <pre class="script"> var br = web.html('&lt;br/&gt;'); 'Generiert am ' .. date.format(date.now, 'dd.MM.yyyy') .. ' um ' .. date.format(date.now, 'HH:mm') .. ' Uhr' .. br .. 'von MindTouch Core fuer ' .. (user.name ?? 'einen neugierigen Gast') .. '.' .. br .. br .. '&#9733; Made in Switzerland -- docs.trialanderror.tech'; </pre> </div> </div> <!-- ============================================================ NoElements: Versteckt Seitenelemente fuer nicht-authentifizierte User Dies aktiviert auch Dynamic TOC, Tags und andere globale Features. ============================================================ --> <pre class="script"> NoElements {} </pre>

     
    Use the language selection below for English Utilise le sélecteur de langue ci-dessous pour français Per l'italiano, utilizzare la selezione della lingua qui sotto Schön sprichst du deutsch :-)