rewrite_full_uniqueness.ps1

[CmdletBinding()]
param()

$ErrorActionPreference = ‘Stop’
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

$root = Split-Path -Parent $PSCommandPath

function Get-TitleWords {
param([string]$BaseName)

$stop = @(
‘Happy’,’Hugo’,’Und’,’Mit’,’Fuer’,’Den’,’Die’,’Das’,’Der’,’Im’,’Auf’,’Zu’,’Zum’,
‘Zur’,’Einer’,’Einem’,’Einen’,’Von’,’In’,’Am’,’An’,’Des’,’Dem’,’Einblick’
)

$words = $BaseName -split ‘ ‘ | Where-Object {
$_ -and $_.Length -gt 2 -and ($stop -notcontains $_)
}

if ($words.Count -ge 3) {
return @($words[0], $words[1], $words[2])
}
if ($words.Count -eq 2) {
return @($words[0], $words[1], ‘Plattform’)
}
if ($words.Count -eq 1) {
return @($words[0], ‘Plattform’, ‘Nutzung’)
}
return @(‘Casino’, ‘Plattform’, ‘Nutzung’)
}

function Get-Topic {
param([string]$BaseName)

$n = $BaseName.ToLower()
if ($n -match ‘zahlung|auszahlung|einzahlung|kasse|krypto|transaktion|limits’) { return ‘payments’ }
if ($n -match ‘bonus|promotion|freispiel|cashback|umsatz’) { return ‘bonus’ }
if ($n -match ‘spiel|slot|live|anbieter|provider|lobby|games|titel’) { return ‘games’ }
if ($n -match ‘sicherheit|support|datenschutz|faq|vertrauen|schutz|hilfe|service’) { return ‘trust’ }
if ($n -match ‘anmeldung|registrierung|login|konto|zugang|startseite|kontostart’) { return ‘registration’ }
return ‘platform’
}

function Pick {
param(
[object[]]$Items,
[int]$Index
)

return $Items[$Index % $Items.Count]
}

function Get-LinkData {
param([string]$Content)

$m = [regex]::Match($Content, ‘([^<]+)‘)
if ($m.Success) {
return [pscustomobject]@{
Link = $m.Groups[1].Value
Anchor = $m.Groups[2].Value
}
}

return [pscustomobject]@{
Link = ‘https://happy-hugo.help/’
Anchor = ‘Happy Hugo’
}
}

function New-SectionBlock {
param(
[string]$Heading,
[string[]]$Paragraphs
)

$lines = @(“

$Heading

“)
foreach ($p in $Paragraphs) {
$lines += “

$p


}
return $lines
}

function New-Body {
param(
[string]$Title,
[string]$BaseName,
[string]$Link,
[string]$Anchor,
[int]$Index
)

$topic = Get-Topic -BaseName $BaseName
$titleWords = Get-TitleWords -BaseName $BaseName
$focus = $titleWords[0] + ‘ ‘ + $titleWords[1]
$focusLong = $titleWords[0] + ‘ ‘ + $titleWords[1] + ‘ ‘ + $titleWords[2]
$anchorHtml = ‘‘ + $Anchor + ‘

$introStarts = @(
“Happy Hugo praesentiert sich als moderne Casino Plattform fuer Nutzer, die Wert auf eine klare Struktur, nachvollziehbare Bedingungen und einen schnellen Wechsel zwischen Bonusbereich, Kasse und Lobby legen.”,
“Happy Hugo richtet sich an Spieler, die ein Online Casino mit sichtbarer Ordnung, stabiler Menuefuehrung und einer verstaendlichen Verbindung zwischen Konto, Bonus und Spielauswahl erwarten.”,
“Als digitale Casino Plattform verbindet Happy Hugo einen direkten Einstieg mit einer Oberflaeche, die Registrierung, Zahlungen, Spielbereiche und mobile Nutzung in einem nachvollziehbaren Ablauf zusammenfuehrt.”,
“Wer ein Casino mit moderner Nutzerfuehrung und klar erkennbaren Kernbereichen sucht, trifft bei Happy Hugo auf eine Plattform, die Startseite, Profil, Kasse und Spielauswahl eng verzahnt.”,
“Im Alltag zaehlen fuer viele Spieler keine Schlagworte, sondern eine funktionale Plattformlogik. Genau hier setzt Happy Hugo mit einer uebersichtlichen Verbindung zwischen Einstieg, Bonus und Nutzung an.”
)

$linkSentences = @(
“Bereits frueh im Einstieg zeigt $anchorHtml, wie Happy Hugo den Zugang zu zentralen Bereichen wie Promotionen, Konto und Spielnavigation strukturiert.”,
“Wer die Plattform ohne Umwege pruefen will, erreicht ueber $anchorHtml frueh die sichtbaren Bereiche fuer Startseite, Bonuszugang und Lobby.”,
“Ein direkter Blick auf $anchorHtml macht frueh deutlich, wie Happy Hugo Kernfunktionen wie Kontoeroeffnung, Bonusbereich und Spielstart anordnet.”,
“Schon im ersten Nutzungsabschnitt fuehrt $anchorHtml zu den Bereichen, die fuer Orientierung, Bonuswahl und den direkten Einstieg entscheidend sind.”,
“Im ersten Eindruck laesst sich ueber $anchorHtml schnell erkennen, wie die Marke Startlogik, Bonuspfade und Spielzugang miteinander verbindet.”
)

$introEnds = @(
“Gerade das Thema $focus wird dadurch nicht nur werblich, sondern auch funktional greifbar.”,
“Damit entsteht ein Bild, das sich nicht auf einzelne Schlagwoerter beschraenkt, sondern auf reale Nutzungswege stuezt.”,
“Im Vordergrund steht dabei weniger Dekoration als eine Plattform, die typische Nutzerfragen frueh im Ablauf auffaengt.”,
“Vor allem im Bereich $focusLong wirkt diese Struktur alltagstauglicher als eine rein auf Aktionen reduzierte Darstellung.”,
“So entsteht frueh ein Eindruck davon, wie konsequent die Plattform auf Orientierung und planbare Nutzung ausgelegt ist.”
)

$section1a = @(
“Im Bereich Plattform und Orientierung zeigt sich zunaechst, wie schnell Nutzer die wichtigsten Funktionen erreichen. Wenn Menues klar aufgebaut sind und der Wechsel zwischen Startseite, Kasse, Bonussektion und Spielsuche ohne Umwege gelingt, entsteht ein deutlich belastbarerer Gesamteindruck.”,
“Die Plattformlogik ist vor allem dann ueberzeugend, wenn Nutzer nicht erst lange nach Profil, Zahlungen oder Promotions suchen muessen. Eine sichtbare Struktur spart Zeit und reduziert Unsicherheit, besonders bei neuen Konten oder beim ersten Besuch auf der Seite.”,
“Fuer viele Spieler beginnt die Bewertung nicht bei einzelnen Bonuswerten, sondern bei der Frage, wie sauber die Grundordnung funktioniert. Sichtbare Kernbereiche und ein logischer Seitenaufbau machen den Einstieg planbarer und verbessern die Orientierung deutlich.”
)
$section1b = @(
“Relevant bleibt dabei auch, wie gut sich Desktop und mobile Nutzung gegenseitig ergaenzen. Eine Plattform, die auf beiden Wegen dieselbe Grundlogik beibehaelt, wirkt im taeglichen Gebrauch deutlich verlaesslicher.”,
“Wer sich mit Themen wie $focus beschaeftigt, profitiert besonders von kurzen Wegen zwischen den sichtbaren Bereichen. Genau diese Klarheit macht einen Unterschied zwischen einem schnellen Besuch und einer regelmaessigen Nutzung.”,
“Gerade im Zusammenhang mit $focusLong wirkt eine saubere Oberflaeche glaubwuerdiger, weil wichtige Informationen nicht versteckt, sondern frueh in den Ablauf eingebunden sind.”
)

$section2a = @(
“Das Spielangebot lebt nicht allein von der Zahl der Titel, sondern von der Nutzbarkeit der Kategorien. Slots, Live Bereiche und klassische Tischspiele muessen so geordnet sein, dass passende Inhalte ohne unnoetige Zwischenschritte erreichbar bleiben.”,
“Innerhalb der Spielauswahl achten viele Nutzer auf einen Mix aus bekannten Kategorien, klaren Filtern und einer Lobby, die auch bei groesserer Auswahl uebersichtlich bleibt. Erst dadurch entsteht aus einer grossen Bibliothek ein tatsaechlich nutzbares Portfolio.”,
“Bei der Bewertung der Spiele zaehlt vor allem, wie schnell zwischen Slots, Live Tischen und weiteren Segmenten gewechselt werden kann. Eine alltagstaugliche Struktur vereint Vielfalt mit Orientierung und laesst die wichtigsten Bereiche klar voneinander unterscheiden.”
)
$section2b = @(
“Gerade Slot Typen mit unterschiedlichen Bonusrunden, Live Roulette, Live Blackjack und klassische Tischspiele bilden dabei den Kern der taeglichen Nutzung. Solche Segmente muessen nicht nur vorhanden, sondern sinnvoll auffindbar sein.”,
“Nutzer orientieren sich haeufig an bekannten Kategorien wie Video Slots, Live Casino, Tischspielen oder Jackpot Segmenten. Je klarer diese Bereiche aufbereitet sind, desto besser laesst sich das Angebot ohne Reibung einordnen.”,
“Auch fuer das Thema $focus spielen diese Kategorien eine Rolle, weil sie zeigen, ob die Plattform nicht nur breit, sondern auch praktisch organisiert ist.”
)

$section3a = @(
“Technische Staerke zeigt sich selten in Werbeformeln, sondern in der Verbindung aus stabiler Browserdarstellung, nachvollziehbaren Filtern und einer logisch aufgebauten Lobby. Genau diese Grundlagen entscheiden darueber, wie robust eine Plattform im Alltag wirkt.”,
“Aus technischer Sicht ist vor allem wichtig, ob Ladewege kurz bleiben, Filter sinnvoll greifen und die Spieloberflaechen auch auf mobilen Endgeraeten stabil funktionieren. Solche Punkte sind fuer die tatsaechliche Nutzung oft relevanter als reine Groessenangaben.”,
“Eine Plattform wirkt technisch ueberzeugender, wenn zwischen Suchfunktion, Kategorien, Anbieteransicht und Kasse keine unnoetigen Brueche entstehen. Das erleichtert die Orientierung und unterstuetzt den Eindruck einer professionell aufgebauten Infrastruktur.”
)
$section3b = @(
“Bekannte Provider, eine verstaendliche Bibliothekslogik und kurze Wege zwischen Lobby und Profil staerken diesen Eindruck zusaetzlich. Sie helfen Nutzern, bekannte Inhalte schneller einzuordnen und gezielter nach bevorzugten Formaten zu suchen.”,
“Gerade bei $focusLong ist Technik nicht nur Hintergrund, sondern ein Teil der Nutzbarkeit. Wenn Browserlogik, mobile Darstellung und Filterstruktur zusammenpassen, wirkt die Plattform klarer und belastbarer.”,
“Fuer viele Spieler sind auch Details wie Suchwege, Anbieterordnung und die Lesbarkeit von Menues entscheidend. Solche Elemente machen aus einem grossen Angebot erst eine alltagstaugliche Struktur.”
)

$section4a = @(
“Im Bonusbereich zaehlt nicht nur die Hoehe eines Angebots, sondern vor allem dessen Lesbarkeit. Mindestdeposit, Umsatzbedingungen, Aktivierungsweg und moegliche Ausschluesse muessen frueh sichtbar sein, damit Nutzer die reale Nutzbarkeit des Angebots einschaetzen koennen.”,
“Bonusmodelle wirken nur dann ueberzeugend, wenn sie nicht isoliert kommuniziert werden. Erst die Verbindung aus Aktivierung, Fristen, Einsatzgrenzen und moeglichen Gewinnlimits zeigt, wie planbar ein Angebot im taeglichen Gebrauch wirklich ist.”,
“Aktionen, Freispielpakete und Startboni erzeugen schnell Aufmerksamkeit. Fuer eine sachliche Bewertung ist jedoch wichtiger, wie klar Umsatzweg, Geltungsdauer und die Rolle einzelner Spiele oder Segmente beschrieben werden.”
)
$section4b = @(
“Auch wiederkehrende Promotions wie Reload Boni, Cashback oder saisonale Aktionen muessen sich in dieselbe Logik einfuegen. Eine sauber aufgebaute Plattform erklaert solche Formate nicht erst im Kleingedruckten, sondern macht die wichtigsten Regeln frueh sichtbar.”,
“Gerade bei $focus werden Bonusfragen oft zum Kern der Nutzerbewertung. Deshalb ist entscheidend, ob Regeln nicht nur vorhanden, sondern in der laufenden Navigation nachvollziehbar eingebunden sind.”,
“Wer die Plattform regelmaessig nutzt, achtet deshalb weniger auf plakative Werte als auf die Frage, ob Bonusbereich, Spielwahl und moeglicher Cashout logisch zusammenhaengen.”
)

$section5a = @(
“Bei Zahlungen und Auszahlungen bewerten Nutzer nicht nur Schnelligkeit, sondern vor allem Transparenz. Sichtbare Limits, nachvollziehbare Schritte und eine klare Trennung zwischen Einzahlung, Bonusstatus und Auszahlungsfreigabe machen den Kassenbereich planbarer.”,
“Die Kasse ist einer der sensibelsten Bereiche jeder Plattform. Gerade deshalb muessen Bearbeitungszeiten, Mindestbetraege, moegliche Pruefschritte und der Zusammenhang mit Verifizierung klar erkennbar sein.”,
“Zahlungswege wirken erst dann wirklich verlaesslich, wenn Ein und Auszahlung sinnvoll zueinander passen. Nutzer wollen frueh erkennen, welche Methode praktisch ist, wo Fristen gelten und an welcher Stelle Rueckfragen entstehen koennen.”
)
$section5b = @(
“Dazu kommen moegliche Fremdgebuehren von Banken, Wallets oder Netzwerken, die nicht immer auf den ersten Blick sichtbar sind. Eine sachliche Plattformkommunikation blendet diese Punkte nicht aus, sondern ordnet sie realistisch ein.”,
“Im Zusammenhang mit $focusLong ist die Kassenlogik besonders relevant, weil sie direkt auf Vertrauen, Planbarkeit und den Gesamteindruck der Marke einwirkt.”,
“Auch die mobile Nutzbarkeit des Zahlungsbereichs bleibt wichtig. Wer unterwegs einzahlt, Bonusbedingungen prueft oder den Kontostatus aufruft, erwartet dieselbe Klarheit wie am Desktop.”
)

$section6a = @(
“Sicherheit und Kontofuehrung betreffen nicht nur technische Standards, sondern den kompletten Umgang mit Daten, Zahlungen und Profilinformationen. Eine Plattform wirkt stabiler, wenn diese Prozesse nachvollziehbar und nicht hinter allgemeinen Formulierungen versteckt sind.”,
“Im Sicherheitsbereich erwarten Nutzer klare Hinweise zu Verifizierung, Dokumentenpruefung, Mehrfachkonten und dem Umgang mit sensiblen Zahlungsdaten. Je sachlicher diese Themen dargestellt werden, desto eher wirkt die Plattform belastbar.”,
“Vertrauen entsteht in diesem Bereich vor allem durch Planbarkeit. Wenn Nutzer sehen, wann Dokumente erforderlich sind, welche Regeln fuer Kontofuehrung gelten und wie interne Pruefungen ablaufen, sinkt das Risiko spaeterer Missverstaendnisse deutlich.”
)
$section6b = @(
“Das Thema $focus schliesst daher immer auch die Frage ein, wie transparent Sicherheit und Kontoabgleich geloest sind. Gerade bei Zahlungen, Bonusnutzung oder veraenderten Profildaten wird diese Struktur sichtbar.”,
“Neben SSL, Datenschutz und KYC ist auch die allgemeine Kontologik wichtig. Profile muessen stabil gefuehrt sein, Kontaktwege klar erscheinen und moegliche Pruefungen nachvollziehbar bleiben.”,
“Wer die Plattform laenger nutzt, erkennt schnell, ob Sicherheitsstandards nur genannt oder tatsaechlich in einen konsistenten Ablauf eingebettet werden.”
)

$section7a = @(
“Die mobile Nutzung ist heute kein Zusatz mehr, sondern fuer viele Spieler der eigentliche Standard. Deshalb muss die Plattform auf Smartphone und Tablet dieselbe Klarheit bei Menues, Kasse, Lobby und Bonusbereichen bieten wie am Desktop.”,
“Mobile Performance entscheidet wesentlich darueber, ob eine Plattform im Alltag praktisch bleibt. Kurze Ladewege, gut lesbare Schaltflaechen und eine stabile Menuefuehrung verhindern, dass wichtige Schritte auf kleineren Displays unnoetig kompliziert werden.”,
“Wer mobil spielt oder Konto und Bonusstatus unterwegs verwaltet, braucht eine Oberflaeche, die keine wichtigen Funktionen versteckt. Gerade die Verbindung zwischen Startseite, Profil und Kassenbereich muss auch auf kleinen Geraeten verstaendlich bleiben.”
)
$section7b = @(
“Dies gilt besonders fuer Live Bereiche, weil dort Streaming, Interaktion und Seitenwechsel gleichzeitig sauber funktionieren muessen. Eine konsistente mobile Struktur ist daher mehr als ein Komfortmerkmal.”,
“Auch im Zusammenhang mit $focusLong zeigt sich mobil schnell, ob die Plattform auf reale Nutzungssituationen vorbereitet ist oder nur auf eine Desktop Darstellung optimiert wurde.”,
“Eine gute mobile Umsetzung verbessert nicht nur den Komfort, sondern auch die Wahrnehmung von Kontrolle und Uebersicht im gesamten Nutzerkonto.”
)

$section8a = @(
“Typische Einschraenkungen gehoeren ebenfalls zu einer realistischen Plattformbewertung. Dazu zaehlen Einsatzlimits unter aktivem Bonus, moegliche Inaktivitaetsgebuehren, regionale Beschraenkungen und zusaetzliche Bearbeitungszeiten bei Auszahlungen.”,
“Regeln wirken im ersten Moment oft nachrangig, bestimmen aber wesentlich, wie planbar eine Plattform im Alltag ist. Gerade Bonusgrenzen, Dokumentenpruefungen und Verzoegerungen bei Auszahlungen sollten sachlich und frueh sichtbar sein.”,
“Auch Standardbeschraenkungen wie Pruefzeiten, Risikoregeln oder Unterschiede zwischen einzelnen Zahlungswegen gehoeren zu einem ehrlichen Gesamtbild. Ohne diese Punkte laesst sich die reale Nutzung kaum verlaesslich einschaetzen.”
)
$section8b = @(
“Fuer Nutzer bedeutet das vor allem, Daten sauber zu pflegen, Bonusbedingungen vorab zu pruefen und denselben Zahlungsweg moeglichst konsistent zu nutzen. Solche einfachen Schritte verringern spaetere Rueckfragen deutlich.”,
“Gerade im Bereich $focus koennen diese Regeln den Unterschied zwischen einer reibungslosen Nutzung und vermeidbaren Verzoegerungen ausmachen. Deshalb gehoeren sie zu jeder sachlichen Einordnung dazu.”,
“Wer sich nicht nur von einzelnen Werbewerten leiten laesst, sondern den gesamten Ablauf betrachtet, erkennt in diesen Regeln einen zentralen Teil der Plattformlogik.”
)

$faqIntro = @(
“Im letzten Schritt lohnt sich ein kurzer Blick auf die Fragen, die im Alltag am haeufigsten auftauchen. Gerade bei $BaseName entstehen Unterschiede oft dort, wo Nutzer klare Antworten auf konkrete Standardsituationen erwarten.”,
“Die wichtigsten Fragen drehen sich meist nicht um Schlagworte, sondern um Nutzungssicherheit, Planbarkeit und den tatsaechlichen Ablauf. Genau deshalb hilft eine kurze, sachliche FAQ bei der Einordnung von $BaseName.”,
“Wer die Plattform realistisch einordnen will, schaut am Ende auf die Themen, die spaeter ueber reibungslose Nutzung oder vermeidbare Rueckfragen entscheiden. Das betrifft auch den Bereich $BaseName.”
)

$faqQ1 = @(
@(‘Wie laesst sich der Einstieg besser planen?’, ‘Am sinnvollsten ist ein frueher Blick auf Registrierung, Bonusbedingungen, Kassenlogik und moegliche Verifizierungsschritte. Dadurch werden spaetere Rueckfragen deutlich seltener.’),
@(‘Worauf sollten Nutzer vor dem ersten Einsatz achten?’, ‘Wichtig sind vor allem sichtbare Limits, die Verbindung zwischen Bonus und Kasse sowie die Klarheit der Menues zwischen Profil, Spielen und Startseite.’),
@(‘Welche Punkte entscheiden ueber den alltagstauglichen Eindruck?’, ‘Planbare Kontofuehrung, gut auffindbare Kernbereiche, nachvollziehbare Zahlungsregeln und eine stabile mobile Darstellung wirken am staerksten auf den Gesamteindruck.’)
)
$faqQ2 = @(
@(‘Warum sind Bedingungen wichtiger als Werbeversprechen?’, ‘Weil reale Nutzung nicht an Schlagworten haengt, sondern an Fristen, Limits, Verifizierung und dem praktischen Wechsel zwischen Bonus, Kasse und Spielbereich.’),
@(‘Weshalb spielen kleine Prozessdetails eine so grosse Rolle?’, ‘Schon einfache Fragen zu Kontodaten, Aktivierungswegen oder Bearbeitungszeiten entscheiden oft darueber, ob die Plattform unkompliziert oder fehleranfaellig wirkt.’),
@(‘Warum sollte die mobile Nutzung nicht unterschaetzt werden?’, ‘Viele Nutzer wechseln laufend zwischen Geraeten. Wenn dieselben Kernbereiche mobil nicht klar funktionieren, leidet die gesamte Nutzbarkeit.’)
)
$faqQ3 = @(
@(‘Was macht den Unterschied zwischen Werbewert und Realitaet aus?’, ‘Erst wenn Bonusbereich, Kasse, Profil und Spielzugang logisch zusammenarbeiten, wird sichtbar, wie alltagstauglich die Plattform wirklich ist.’),
@(‘Wie bleibt die Nutzung moeglichst reibungslos?’, ‘Korrekte Profildaten, frueh gepruefte Bedingungen und ein klarer Blick auf Zahlungswege helfen dabei, unnoetige Rueckfragen zu vermeiden.’),
@(‘Woran laesst sich eine Plattform am sachlichsten bewerten?’, ‘Am besten an der Frage, wie klar Struktur, Regeln und Nutzerwege zusammenspielen. Genau dort zeigt sich, ob die Plattform im Alltag traegt.’)
)

$i0 = $Index
$i1 = [math]::Floor($Index / 3)
$i2 = [math]::Floor($Index / 5)
$i3 = [math]::Floor($Index / 7)

$lines = @()
$lines += “

$Title


$lines += “

$(Pick -Items $introStarts -Index $i0) $(Pick -Items $linkSentences -Index $i1) $(Pick -Items $introEnds -Index $i2)


$lines += New-SectionBlock -Heading ‘Plattform Und Orientierung’ -Paragraphs @((Pick -Items $section1a -Index $i0), (Pick -Items $section1b -Index $i1))
$lines += New-SectionBlock -Heading ‘Spiele Und Kategorien’ -Paragraphs @((Pick -Items $section2a -Index $i2), (Pick -Items $section2b -Index $i3))
$lines += New-SectionBlock -Heading ‘Anbieter Und Technische Struktur’ -Paragraphs @((Pick -Items $section3a -Index $i1), (Pick -Items $section3b -Index $i2))
$lines += New-SectionBlock -Heading ‘Bonusmodelle Und Aktionen’ -Paragraphs @((Pick -Items $section4a -Index $i3), (Pick -Items $section4b -Index $i0))
$lines += New-SectionBlock -Heading ‘Zahlungen Und Auszahlungen’ -Paragraphs @((Pick -Items $section5a -Index $i2), (Pick -Items $section5b -Index $i1))
$lines += New-SectionBlock -Heading ‘Sicherheit Und Kontofuehrung’ -Paragraphs @((Pick -Items $section6a -Index $i0), (Pick -Items $section6b -Index $i3))
$lines += New-SectionBlock -Heading ‘Mobile Nutzung Und Technik’ -Paragraphs @((Pick -Items $section7a -Index $i1), (Pick -Items $section7b -Index $i2))
$lines += New-SectionBlock -Heading ‘Regeln Und Typische Einschraenkungen’ -Paragraphs @((Pick -Items $section8a -Index $i3), (Pick -Items $section8b -Index $i0))
$lines += ‘

FAQ Und Praktische Hinweise


$lines += “

$(Pick -Items $faqIntro -Index $i2)


$q1 = Pick -Items $faqQ1 -Index $i0
$q2 = Pick -Items $faqQ2 -Index $i1
$q3 = Pick -Items $faqQ3 -Index $i2
$lines += “

$($q1[0])


$lines += “

$($q1[1])


$lines += “

$($q2[0])


$lines += “

$($q2[1])


$lines += “

$($q3[0])


$lines += “

$($q3[1])

return ($lines -join “`n”)
}

$files = Get-ChildItem -Path $root -File -Filter ‘*.txt’ | Sort-Object Name
$i = 0

foreach ($file in $files) {
$content = Get-Content -Path $file.FullName -Raw
$titleMatch = [regex]::Match($content, ‘

(.*?)

‘)
$title = if ($titleMatch.Success) { $titleMatch.Groups[1].Value } else { $file.BaseName }
$linkData = Get-LinkData -Content $content
$newBody = New-Body -Title $title -BaseName $file.BaseName -Link $linkData.Link -Anchor $linkData.Anchor -Index $i
Set-Content -Path $file.FullName -Value $newBody -Encoding utf8
$i++

if (($i % 500) -eq 0) {
Write-Output (“UPDATED=” + $i)
}
}

Write-Output (“DONE=” + $i)