Projektaktualisierung : Ich beende meine Arbeit mit Stork. Vielen Dank an alle, die Stork in den letzten Jahren gerne genutzt haben! |
Unglaublich schnelle Websuche, speziell für statische Websites.
Stork ist eine Bibliothek zum Erstellen schöner, schneller und genauer Volltextsuchoberflächen im Web.
Es besteht aus zwei Teilen. Erstens handelt es sich um ein Befehlszeilentool , das Inhalte indiziert und eine Suchindexdatei erstellt, die Sie auf einen Webserver hochladen können. Zweitens handelt es sich um eine Javascript-Bibliothek , die diese Indexdatei verwendet, um eine interaktive Suchoberfläche zu erstellen, die Ihrem Benutzer während der Eingabe sofort optimale Suchergebnisse anzeigt.
Stork ist mit Rust erstellt und die Javascript-Bibliothek verwendet im Hintergrund WebAssembly. Der Einstieg ist einfach und die Anpassung an Ihre Bedürfnisse ist noch einfacher. Es eignet sich perfekt für Jamstack-Websites und persönliche Blogs, kann aber überall dort eingesetzt werden, wo Sie eine interaktive Suchleiste benötigen.
Derzeit in der Entwicklung von James Little
Stellen wir ein Suchfeld online, das im Text der Federalist Papers sucht.
Sehen Sie sich diese Demo live unter https://stork-search.net an.
<!DOCTYPE html >
< html lang =" en " >
< head >
< title > Federalist Search </ title >
</ head >
< body >
< div class =" stork-wrapper " >
< input data-stork =" federalist " class =" stork-input " />
< div data-stork =" federalist-output " class =" stork-output " > </ div >
</ div >
< script src =" https://files.stork-search.net/stork.js " > </ script >
< script >
stork . register (
"federalist" ,
"http://files.stork-search.net/federalist.st"
) ;
</ script >
</ body >
</ html >
Stork bindet sich in vorhandenen HTML-Code ein, den Sie auf Ihrer Seite einfügen. Jede Stork-Instanz muss über einen Eingabe-Hook und eine Ergebnisliste verfügen. Diese beiden Elemente sollten in einem Wrapper platziert werden, obwohl der Wrapper optional ist.
Der Eingabe-Hook sollte das Attribut data-stork="federalist"
haben, wobei federalist
der Name ist, mit dem Sie diese Suchinstanz registrieren. (Auf diese Weise können Sie mehrere unabhängige Suchfelder auf einer Seite haben, die alle auf unterschiedliche Instanzen verweisen.) Es muss nicht federalist
sein – Sie können es nach Ihren Wünschen ändern.
Die Ergebnisliste sollte ein leeres <div>
-Tag mit dem Attribut data-stork="federalist-results"
sein. Auch hier können Sie federalist
beliebig ändern.
Die Klassen im obigen Beispiel ( stork-input
, stork-output
) sind für das Thema. Die meisten Stork-Themes nehmen das oben genannte Format an; In der Theme-Dokumentation erfahren Sie, ob etwas anderes erforderlich ist. Sie können auch Ihr eigenes Thema entwerfen, wobei die Gestaltung und Klassennamen dann Ihnen überlassen sind.
Sie müssen stork.js
einbinden, das Sie entweder vom Stork-CDN laden oder selbst hosten können. Dadurch wird der Stork WebAssembly-Blob geladen und das Stork-Objekt erstellt, das die Registrierung und Konfiguration von Indizes ermöglicht.
Dann sollten Sie mindestens einen Index registrieren:
stork . register ( "federalist" , "http://files.stork-search.net/federalist.st" ) ;
Der von Ihnen erstellte Suchindex muss irgendwo mit einer öffentlichen URL gespeichert werden. Zur Anmeldung
Dadurch wird der unter http://files.stork-search.net/federalist.st
gespeicherte Index unter dem Namen federalist
registriert. Die data-stork
-Attribute im HTML werden in diesen Namen eingebunden.
Schließlich können Sie einige Konfigurationsoptionen festlegen, wie Ihre Suchleiste mit dem Index und der Seite interagiert.
Sie möchten Ihrer eigenen Website wahrscheinlich keine Schnittstelle hinzufügen, mit der Sie die föderalistischen Zeitungen durchsuchen können. So machen Sie Ihre Suchleiste zu Ihrer eigenen.
Um einen Index zu erstellen, benötigen Sie die ausführbare Stork-Datei auf Ihrem Computer, die Sie in der neuesten Github-Version oder durch Ausführen von cargo install stork-search --locked
installieren können, wenn Sie eine Rust-Toolchain installiert haben.
Der Suchindex basiert auf einer Dokumentstruktur: Sie geben Stork eine Liste von Dokumenten auf der Festplatte und fügen einige Metadaten zu diesen Dokumenten hinzu, und Stork erstellt seinen Suchindex basierend auf den Inhalten dieser Dokumente.
Zunächst benötigen Sie eine Konfigurationsdatei, die unter anderem diese Dateiliste beschreibt:
[ input ]
base_directory = " test/federalist "
files = [
{ path = " federalist-1.txt " , url = " /federalist-1/ " , title = " Introduction " },
{ path = " federalist-2.txt " , url = " /federalist-2/ " , title = " Concerning Dangers from Foreign Force and Influence " },
{ path = " federalist-3.txt " , url = " /federalist-3/ " , title = " Concerning Dangers from Foreign Force and Influence 2 " },
{ path = " federalist-4.txt " , url = " /federalist-4/ " , title = " Concerning Dangers from Foreign Force and Influence 3 " },
{ path = " federalist-5.txt " , url = " /federalist-5/ " , title = " Concerning Dangers from Foreign Force and Influence 4 " },
{ path = " federalist-6.txt " , url = " /federalist-6/ " , title = " Concerning Dangers from Dissensions Between the States " },
{ path = " federalist-7.txt " , url = " /federalist-7/ " , title = " Concerning Dangers from Dissensions Between the States 2 " },
{ path = " federalist-8.txt " , url = " /federalist-8/ " , title = " The Consequences of Hostilities Between the States " },
{ path = " federalist-9.txt " , url = " /federalist-9/ " , title = " The Union as a Safeguard Against Domestic Faction and Insurrection " },
{ path = " federalist-10.txt " , url = " /federalist-10/ " , title = " The Union as a Safeguard Against Domestic Faction and Insurrection 2 " }
]
Diese TOML-Datei beschreibt das Basisverzeichnis aller Ihrer Dokumente und listet dann jedes Dokument zusammen mit der Web-URL auf, unter der dieses Dokument zu finden ist, sowie dem Titel dieses Dokuments.
Von dort aus können Sie Ihren Suchindex erstellen, indem Sie Folgendes ausführen:
$ stork build --input federalist.toml --output federalist.st
Dadurch wird eine neue Datei unter federalist.st
erstellt. Sie können es mit demselben Befehlszeilentool durchsuchen:
$ stork search --index federalist.st --query " liberty "
Um eine Stork-Suchoberfläche in Ihre Website einzubetten, laden Sie zunächst die Indexdatei auf Ihren Webserver hoch und übergeben Sie dann deren URL an die Funktion stork.register()
im Javascript Ihrer Webseite.
Weitere Dokumentationen und weitere Informationen zur Anpassung finden Sie auf der Website des Projekts: https://stork-search.net.
Um Stork zu bauen, benötigen Sie:
Das Repository ist mit einigen Änderungen wie ein typischer Cargo-Arbeitsbereich strukturiert.
stork-*
Verzeichnisse enthalten Rust-Pakete. stork-cli
und stork-wasm
sind die Pakete der obersten Ebene; alles andere ist eine Abhängigkeit.js
enthält den Javascript-Quellcode.test-assets
enthält binäre Assets, die für die Funktionstests von Stork erforderlich sind.local-dev
enthält Konfigurationsdateien, Korpora und Indexdateien, die zum Erstellen und Ausführen der für die lokale Entwicklung verwendeten Testwebseite erforderlich sind.Sie können das Projekt entweder mit dem Rust-Einstiegspunkt oder dem Javascript-Einstiegspunkt erstellen (Build-Anweisungen sind unten aufgeführt). Nachdem Sie das Projekt erstellt haben, sehen Sie drei weitere Verzeichnisse:
target
enthält die ausgegebenen binären Build-Artefaktepkg
enthält Zwischen-WASM-Build-Artefaktedist
enthält die endgültigen Build-Artefakte für das Web. Wenn Sie daran interessiert sind, die endgültigen Stork-Build-Artefakte zu extrahieren, können Sie die folgenden Dateien extrahieren, nachdem Sie das Projekt mit yarn build
erstellt haben:
/target/release/stork
/dist/stork.js
/dist/stork.wasm
just build-indexer
erstellt die Indexer-Binärdatei für target/release/stork
just build-js
erstellt die WASM-Binärdatei und den Javascript-Bridging-Code im dist
-Verzeichnisjust build-federalist-index
erstellt die Indexdatei „federalist.st“, auf die im gesamten Projekt verwiesen wird. Die Ausgabe erfolgt an local-dev/test-indexes/federalist.st
.just build-indexer-dev
erstellt die Indexer-Binärdateicargo run -- <CLI OPTIONS>
führt die Indexer-Binärdatei ausjust build-dev-site
erstellt den WASM- und Javascript-Brückencode, erstellt den Federalist.st-Index und verpackt die Entwicklungsseite./scripts/serve.sh
dient der EntwicklungsseiteWeitere verfügbare Skripte finden Sie im Justfile des Projekts.