อัปเดตโครงการ : ฉันกำลังปิดงานกับ Stork ขอบคุณทุกคนที่สนุกกับการใช้ Stork ในช่วงไม่กี่ปีที่ผ่านมา! |
ค้นหาเว็บที่รวดเร็วอย่างไม่น่าเชื่อ สร้างขึ้นสำหรับไซต์คงที่
Stork เป็นไลบรารีสำหรับสร้างอินเทอร์เฟซการค้นหาข้อความแบบเต็มที่สวยงาม รวดเร็ว และแม่นยำบนเว็บ
มันมาในสองส่วน ประการแรก มันเป็น เครื่องมือบรรทัดคำสั่ง ที่สร้างดัชนีเนื้อหาและสร้างไฟล์ดัชนีการค้นหาที่คุณสามารถอัปโหลดไปยังเว็บเซิร์ฟเวอร์ได้ ประการที่สอง เป็น ไลบรารี Javascript ที่ใช้ไฟล์ดัชนีนั้นเพื่อสร้างอินเทอร์เฟซการค้นหาเชิงโต้ตอบที่แสดงผลการค้นหาที่เหมาะสมที่สุดแก่ผู้ใช้ของคุณทันทีขณะที่พวกเขาพิมพ์
Stork สร้างขึ้นด้วย Rust และไลบรารี Javascript ใช้ WebAssembly เบื้องหลัง เริ่มต้นได้ง่ายและปรับแต่งได้ง่ายยิ่งขึ้นเพื่อให้เหมาะกับความต้องการของคุณ เหมาะสำหรับไซต์ Jamstack และบล็อกส่วนตัว แต่สามารถใช้งานได้ทุกที่ที่คุณต้องการแถบค้นหาแบบโต้ตอบ
ขณะนี้อยู่ระหว่างการพัฒนาโดย James Little
มาใส่ช่องค้นหาออนไลน์ที่ค้นหาภายในข้อความของ Federalist Papers
ดูการสาธิตนี้สดได้ที่ 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 >
นกกระสาเชื่อมโยงเข้ากับ HTML ที่มีอยู่ซึ่งคุณรวมไว้ในเพจของคุณ แต่ละอินสแตนซ์ Stork จะต้องมี hook อินพุตและรายการผลลัพธ์ ควรวางองค์ประกอบทั้งสองนี้ไว้ในกระดาษห่อ แม้ว่ากระดาษห่อจะเป็นทางเลือกก็ตาม
ฮุคอินพุตควรมีแอตทริบิวต์ 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 จะเชื่อมโยงกับชื่อนี้
สุดท้าย คุณสามารถตั้งค่าตัวเลือกการกำหนดค่าว่าแถบค้นหาของคุณจะโต้ตอบกับดัชนีและหน้าอย่างไร
คุณอาจไม่ต้องการเพิ่มอินเทอร์เฟซให้กับเว็บไซต์ของคุณเองที่ให้คุณค้นหาเอกสารของ Federalist ได้ ต่อไปนี้เป็นวิธีทำให้แถบค้นหาของคุณเป็นของคุณ
ในการสร้างดัชนี คุณต้องมีไฟล์ปฏิบัติการ Stork บนคอมพิวเตอร์ของคุณ ซึ่งคุณสามารถติดตั้งได้ที่ Github รุ่นล่าสุด หรือโดยการรัน cargo install stork-search --locked
หากคุณติดตั้ง Rust toolchain
ดัชนีการค้นหาจะขึ้นอยู่กับโครงสร้างเอกสาร: คุณให้รายการเอกสารบนดิสก์แก่ 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
เก็บซอร์สโค้ด Javascripttest-assets
ถือสินทรัพย์ไบนารีที่จำเป็นสำหรับการทดสอบการทำงานของนกกระสาlocal-dev
เก็บไฟล์การกำหนดค่า corpora และไฟล์ดัชนีที่จำเป็นในการสร้างและรันหน้าเว็บทดสอบที่ใช้สำหรับการพัฒนาท้องถิ่นคุณสามารถสร้างโปรเจ็กต์โดยใช้จุดเข้าใช้งาน Rust หรือจุดเข้าใช้งาน Javascript (คำแนะนำในการสร้างแสดงอยู่ด้านล่าง) หลังจากที่คุณสร้างโปรเจ็กต์แล้ว คุณจะเห็นไดเร็กทอรีเพิ่มเติมสามไดเร็กทอรี:
target
เก็บสิ่งประดิษฐ์การสร้างไบนารีเอาต์พุตpkg
เก็บสิ่งประดิษฐ์การสร้าง WASM ระดับกลางdist
เก็บสิ่งประดิษฐ์การสร้างขั้นสุดท้ายสำหรับเว็บ หากคุณสนใจที่จะแตกไฟล์ Stork build สุดท้าย คุณสามารถแตกไฟล์ต่อไปนี้ได้หลังจากสร้างโปรเจ็กต์ด้วย yarn build
:
/target/release/stork
/dist/stork.js
/dist/stork.wasm
just build-indexer
จะสร้างไบนารีของตัวทำดัชนีเพื่อ target/release/stork
just build-js
จะสร้างไบนารี WASM และโค้ดเชื่อมโยง Javascript ไปยังไดเร็กทอรี 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 สร้างดัชนี federalist.st และจัดทำแพ็กเกจไซต์การพัฒนา./scripts/serve.sh
จะให้บริการไซต์การพัฒนาดู Justfile ของโปรเจ็กต์เพื่อดูสคริปต์ที่มีอยู่เพิ่มเติม