تحديث المشروع : أنا أنهي عملي مع ستورك. شكرًا لكل من استمتع باستخدام ستورك خلال السنوات القليلة الماضية! |
بحث ويب سريع بشكل مستحيل، مصمم للمواقع الثابتة.
Stork هي مكتبة لإنشاء واجهات بحث عن النص الكامل جميلة وسريعة ودقيقة على الويب.
يأتي في جزأين. أولاً، إنها أداة سطر أوامر تقوم بفهرسة المحتوى وإنشاء ملف فهرس بحث يمكنك تحميله إلى خادم الويب. ثانيًا، إنها مكتبة Javascript تستخدم ملف الفهرس هذا لإنشاء واجهة بحث تفاعلية تعرض نتائج البحث المثالية على الفور للمستخدم أثناء الكتابة.
تم تصميم Stork باستخدام Rust، وتستخدم مكتبة Javascript WebAssembly خلف الكواليس. من السهل البدء كما أنه من الأسهل تخصيصه ليناسب احتياجاتك. إنه مثالي لمواقع Jamstack والمدونات الشخصية، ولكن يمكن استخدامه أينما تحتاج إلى شريط بحث تفاعلي.
قيد التطوير حاليًا بواسطة جيمس ليتل
دعونا نضع مربع بحث على الإنترنت يبحث ضمن نص الأوراق الفيدرالية.
شاهد هذا العرض التوضيحي مباشرة على https://stork-search.net.
<!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 بـ HTML الحالي الذي تقوم بتضمينه في صفحتك. يجب أن يحتوي كل مثيل لـ Stork على خطاف إدخال وقائمة نتائج؛ يجب وضع هذين العنصرين في غلاف، على الرغم من أن الغلاف اختياري.
يجب أن يشتمل خطاف الإدخال على سمة data-stork="federalist"
، حيث يكون federalist
هو الاسم الذي تسجل به مثيل البحث هذا. (بهذه الطريقة، يمكن أن يكون لديك مربعات بحث متعددة ومستقلة على الصفحة، تشير جميعها إلى حالات مختلفة.) ليس من الضروري أن تكون federalist
-- يمكنك تغييرها إلى ما تريد.
يجب أن تكون قائمة النتائج علامة <div>
فارغة مع السمة data-stork="federalist-results"
. مرة أخرى، هنا، يمكنك تغيير federalist
إلى ما تريد.
الفئات في المثال أعلاه ( stork-input
, stork-output
) مخصصة للموضوع. تفترض معظم سمات طائر اللقلق التنسيق أعلاه؛ ستخبرك وثائق السمة إذا كانت تتطلب شيئًا مختلفًا. يمكنك أيضًا تصميم القالب الخاص بك، وعند هذه النقطة يكون التصميم وأسماء الفئات متروكًا لك.
أنت بحاجة إلى تضمين stork.js
، والذي يمكنك إما تحميله من Stork CDN أو استضافته بنفسك. سيؤدي هذا إلى تحميل كائن Stork WebAssembly blob وإنشاء كائن Stork، مما سيسمح بتسجيل الفهارس وتكوينها.
بعد ذلك، يجب عليك تسجيل فهرس واحد على الأقل:
stork . register ( "federalist" , "http://files.stork-search.net/federalist.st" ) ;
يجب تخزين فهرس البحث الذي تقوم بإنشائه في مكان ما باستخدام عنوان URL عام. للتسجيل
يقوم هذا بتسجيل الفهرس المخزن على http://files.stork-search.net/federalist.st
تحت اسم federalist
؛ سيتم ربط سمات data-stork
في HTML بهذا الاسم.
وأخيرًا، يمكنك تعيين بعض خيارات التكوين لكيفية تفاعل شريط البحث الخاص بك مع الفهرس ومع الصفحة.
ربما لا ترغب في إضافة واجهة إلى موقع الويب الخاص بك تتيح لك البحث في الأوراق الفيدرالية. إليك كيفية جعل شريط البحث خاصًا بك.
لإنشاء فهرس، تحتاج إلى برنامج Stork القابل للتنفيذ على جهاز الكمبيوتر الخاص بك، والذي يمكنك تثبيته على أحدث إصدار من Github أو عن طريق تشغيل cargo install stork-search --locked
إذا كان لديك سلسلة أدوات Rust مثبتة.
يعتمد فهرس البحث على بنية المستند: حيث تقوم بإعطاء Stork قائمة بالمستندات الموجودة على القرص وتضمين بعض البيانات الوصفية حول تلك المستندات، وسيقوم Stork ببناء فهرس البحث الخاص به بناءً على محتويات تلك المستندات.
أولاً، تحتاج إلى ملف تكوين يصف، من بين أمور أخرى، قائمة الملفات تلك:
[ 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 " }
]
يصف ملف TOML هذا الدليل الأساسي لجميع مستنداتك، ثم يسرد كل مستند بالإضافة إلى عنوان URL على الويب الذي سيتم العثور على هذا المستند فيه، بالإضافة إلى عنوان هذا المستند.
ومن هناك، يمكنك إنشاء فهرس البحث الخاص بك عن طريق تشغيل:
$ stork build --input federalist.toml --output federalist.st
سيؤدي هذا إلى إنشاء ملف جديد على federalist.st
. يمكنك البحث فيه باستخدام نفس أداة سطر الأوامر:
$ stork search --index federalist.st --query " liberty "
لتضمين واجهة بحث Stork على موقع الويب الخاص بك، قم أولاً بتحميل ملف الفهرس إلى خادم الويب الخاص بك، ثم قم بتمرير عنوان URL الخاص به إلى وظيفة stork.register()
في Javascript لصفحة الويب الخاصة بك.
يمكنك قراءة المزيد من الوثائق ومعرفة المزيد حول التخصيص على موقع المشروع: https://stork-search.net.
لبناء ستورك، سوف تحتاج إلى:
تم تصميم المستودع مثل مساحة عمل Cargo النموذجية، مع بعض التعديلات.
stork-*
على حزم Rust. stork-cli
و stork-wasm
هما الحزمتان عاليتا المستوى؛ كل شيء آخر هو التبعية.js
كود مصدر Javascript.test-assets
على أصول ثنائية تتطلبها اختبارات Stork الوظيفية.local-dev
بملفات التكوين والمجموعات وملفات الفهرس المطلوبة لإنشاء وتشغيل صفحة الويب الاختبارية المستخدمة للتطوير المحلي.يمكنك إنشاء المشروع باستخدام إما نقطة دخول Rust أو نقطة دخول Javascript (تعليمات البناء مذكورة أدناه). بعد الانتهاء من بناء المشروع، سترى ثلاثة أدلة أخرى:
target
يحمل قطع البناء الثنائية الناتجةpkg
عناصر بناء WASM المتوسطةdist
يحمل عناصر البناء النهائية للويب. إذا كنت مهتمًا باستخراج عناصر بناء Stork النهائية، فيمكنك استخراج الملفات التالية بعد إنشاء المشروع باستخدام yarn build
:
/target/release/stork
/dist/stork.js
/dist/stork.wasm
just build-indexer
ببناء المفهرس الثنائي target/release/stork
just build-js
سوف يقوم ببناء WASM الثنائي وكود Javascript Bridge إلى دليل dist
just build-federalist-index
سيقوم بإنشاء ملف الفهرس federalist.st الذي يتم الرجوع إليه خلال المشروع. سيتم إخراجه إلى local-dev/test-indexes/federalist.st
.just build-indexer-dev
سيقوم ببناء المفهرس الثنائيcargo run -- <CLI OPTIONS>
بتشغيل المفهرس الثنائيjust build-dev-site
سيقوم ببناء كود جسر WASM و Javascript، وبناء فهرس federator.st، وحزم موقع التطوير./scripts/serve.sh
سيخدم موقع التطويرقم بإلقاء نظرة على Justfile الخاص بالمشروع للحصول على المزيد من النصوص البرمجية المتاحة.