นี่คือฐานข้อมูล URL ตัวช่วยเปลี่ยนเส้นทาง และเครื่องมือค้นหา
ฟังก์ชันหลักของเครื่องมือนี้คือการเปลี่ยนเส้นทางผู้ใช้ HTTP ไปยัง URL ที่เกี่ยวข้องกับคำหลักที่พวกเขาเข้าถึงโดยตรง URL จำและพิมพ์ได้ยาก แต่จะใช้งานได้ง่ายกว่าหากตั้งชื่อให้กระชับ ลิงก์จะถูกตั้งชื่อหรือ ติดแท็ก และวางลงในรายการที่ระบุด้วย คำหลัก คำหลักเหล่านี้เป็นสตริงที่รู้จักกันดีและเข้าใจง่ายซึ่งผู้ใช้สร้างขึ้นมาเพื่ออธิบายรายการหรือลิงก์ที่ต้องการ
หน้าที่รองคือจัดให้มีสถานที่สำหรับดูแลจัดการรายการลิงก์ล่าสุดในหัวข้อที่กำหนด
หากผู้ใช้ต้องการค้นหาข้อมูลบนดาวอังคาร ให้พิมพ์ go2 mars
ใน URL/แถบค้นหาของเบราว์เซอร์ สิ่งนี้สามารถเปลี่ยนเส้นทางโดยตรงไปยังลิงก์หรือรายการลิงก์เกี่ยวกับดาวเคราะห์ดวงนี้ ลองนึกภาพว่ามีลิงก์หรือบทความหลายรายการเกี่ยวกับดาวอังคารที่มีอยู่ในรายการนี้ ผู้ใช้จะได้รับข้อมูลเพิ่มเติมเกี่ยวกับดวงจันทร์โฟบอสโดยไปที่ดวงจันทร์โดยตรงในการค้นหาครั้งเดียวได้อย่างไร ผู้ดูแลรายการสามารถ แท็กลิงก์ ใดลิงก์หนึ่งในรายการด้วย phobos
ขณะนี้ผู้ใช้สามารถพิมพ์ go2 mars/phobos
ใน URL/แถบค้นหาได้ ลิงก์ดังกล่าวได้กลายมาเป็นการเปลี่ยนเส้นทางตามรูปแบบบัญญัติสำหรับทุกคนที่กำลังมองหาข้อมูลเพิ่มเติมเกี่ยวกับดวงจันทร์ของดาวอังคารนี้
ตัวเปลี่ยนเส้นทาง go2 เป็นไปตามโมเดลที่คล้ายกับวิกิพีเดียของการเพิ่ม การลบ และการดูแลจัดการข้อมูลที่ขับเคลื่อนโดยชุมชน หากผู้ใช้ตกลงร่วมกันว่าคำหลักหมายถึงอะไร และตกลงกันว่ารายการสำหรับคำหลักนั้นควรเป็นอย่างไร ผลลัพธ์ก็คือความเข้าใจที่ถูกต้องที่สุดของกลุ่มเกี่ยวกับคำหลักช่วยจำเหล่านี้ในช่วงเวลาใดก็ตาม ยิ่งมีคนใช้ตัวเปลี่ยนเส้นทางมากเท่าไร คุณก็ยิ่งมีผู้แก้ไขที่คอยอัปเดตข้อมูลให้ทันสมัยมากขึ้นเท่านั้น
ในการตั้งค่าแอปพลิเคชัน จำเป็นต้องสร้างการกำหนดค่าเริ่มต้นและฐานข้อมูลลิงก์ว่าง เมื่อต้องการทำเช่นนี้ ให้รันสคริปต์การติดตั้งจากบรรทัดคำสั่ง
./install.sh
ซึ่งจะวางไฟล์ godb.json
ไว้บนดิสก์ในไดเร็กทอรีรากของโปรเจ็กต์ จากนั้นจะเขียนไฟล์การกำหนดค่าทั่วไป go2config.json
ลงในไดเร็กทอรีเดียวกัน การตั้งค่าเริ่มต้นในไฟล์ปรับแต่งนั้นเพียงพอแล้วสำหรับการเริ่มต้น แต่ลองดูเพื่อทำความเข้าใจการตั้งค่าที่มีอยู่
ตัวเปลี่ยนเส้นทางจำเป็นต้องได้รับการคอมไพล์เป็นขั้นตอนที่สองและขั้นตอนสุดท้ายของการตั้งค่า go build
แบบธรรมดาในรูทโปรเจ็กต์ควรให้ผลปฏิบัติการได้ เรียกใช้โปรแกรมนั้นโดยไม่มีข้อโต้แย้งเพื่อดูการเริ่มต้นของตัวเปลี่ยนเส้นทาง โดยรับฟังพอร์ตชั่วคราว
Dockerfile
แบบหลายขั้นตอนถูกรวมไว้ที่นี่เพื่อช่วยให้กระบวนการสร้างไบนารี่และการจัดหาคอนเทนเนอร์ที่รันได้ง่ายขึ้น คอนเทนเนอร์การสร้างเริ่มต้นมีขนาดใหญ่และถูกโยนทิ้งไปเพื่อสนับสนุนคอนเทนเนอร์รันไทม์ที่ใช้อัลไพน์ลินุกซ์ที่มีขนาดเล็กกว่า การสร้างและใช้งานคอนเทนเนอร์มีองค์ประกอบสามประการ ได้แก่ การสร้าง การคงฐานข้อมูลลิงก์ และการรันคอนเทนเนอร์
การสร้างคอนเทนเนอร์สามารถทำได้ด้วย: docker build -t go2redirector .
หากคุณต้องการตรวจสอบบิลด์คอนเทนเนอร์เองเพื่อเช็คเอาท์/ดีบักสภาพแวดล้อมบิลด์ คุณสามารถเข้าถึงได้โดยการกำหนดเป้าหมายบิลด์คอนเทนเนอร์ตามชื่อ
docker build --target builder -t go2build .
คุณสามารถสร้างวอลุ่มในเครื่องสำหรับพื้นที่ถาวรภายนอกคอนเทนเนอร์สำหรับ godb.json
สิ่งนี้จะทำให้คอนเทนเนอร์ของคุณใช้ godb เดียวกันทุกครั้งที่ดำเนินการ ปล่อยขั้นตอนนี้ไว้หากคุณไม่ต้องการบันทึกฐานข้อมูลระหว่างการรันคอนเทนเนอร์
docker volume create go2
docker volume inspect go2
ตอนนี้รันคอนเทนเนอร์โดยใช้โวลุ่ม สิ่งนี้จะเรียกใช้คอนเทนเนอร์ในโหมด daemon และลบออกเมื่อหยุด
docker run --rm -p 8080:8080 -d -v go2:/home/gouser/data go2redirector
โปรดทราบว่าคุณไม่ได้ใช้โวลุ่มเช่นนี้ การผูกเข้ากับไดเร็กทอรีอื่นที่มีอยู่ก็ใช้ได้เช่นกัน
ตัวเปลี่ยนเส้นทางกำลังจะฟัง 0.0.0.0:8080
ภายในคอนเทนเนอร์ ซึ่งตรงข้ามกับค่าเริ่มต้นที่ 127.0.0.1
จาก go2config.json (ค่าเริ่มต้น)
หากต้องการดูบันทึกจากคอนเทนเนอร์ บันทึกทั้งหมดจะถูกเปลี่ยนเส้นทางไปที่ stdout ดังนั้นคุณจึงสามารถทำ docker logs <name of running container>
go2redirector ควรทำงานบน localhost:8080
ทันที คุณสามารถดำเนินการดังกล่าวได้โดยตรง หรือเพื่อให้ง่ายขึ้น คุณสามารถกำหนดค่าเบราว์เซอร์ของคุณด้วยคำค้นหาใหม่ เช่น go2
แต่ละเบราว์เซอร์มีขั้นตอนการกำหนดค่าที่แตกต่างกันเล็กน้อยเพื่อเปิดใช้งานเครื่องมือค้นหาคำหลัก
localhost:8080
(หรือ URL ใดก็ตามที่คุณเรียกใช้ตัวเปลี่ยนเส้นทาง) ใน Firefoxgo2
go2
http://localhost:8080/?keyword=%s
ตอนนี้เบราว์เซอร์ของคุณสามารถใช้เพื่อเข้าถึง go2redirector ได้เหมือนกับเครื่องมือค้นหา ตั้งค่าคีย์เวิร์ดเป็น go2
และใช้ช่องค้นหา
go2 wiki/es
หากเบราว์เซอร์ของคุณเปลี่ยนเส้นทางไปยังวิกิพีเดียเวอร์ชันภาษาสเปน คุณก็พร้อมแล้ว
.
คำนำหน้าคำหลักใดๆ/
ในสตริงการเปลี่ยนเส้นทางที่ผู้ใช้ป้อน ตัวอย่างเช่น go2 planets/mars/weather
จะมีช่อง "planets" (คีย์เวิร์ด), "mars" (แท็ก) และ "weather" เป็นพารามิเตอร์การดูแลจัดการรายการลิงก์เริ่มต้นด้วยการเลือกคำหลักที่ใช้งานง่าย นี่คือชื่อที่ผู้คนจะจดจำรายการลิงก์นี้ ลองนึกถึงคำหลักและความหมายทั่วไป ใช้กับรายการที่เป็นไปได้อื่นๆ หรือไม่ หากเป็นเช่นนั้น อาจใช้ชื่อคำหลักที่เจาะจงมากขึ้นหรือรวมสองรายการเข้าด้วยกัน
แท็กคือชื่อของลิงก์ภายในรายการลิงก์ แท็กเป็นช่องที่สอง (ไม่บังคับ) ที่ผู้ใช้พิมพ์ในการเปลี่ยนเส้นทาง go2 หากคุณมีรายการดวงจันทร์บนดาวอังคาร คุณอาจแท็กดวงหนึ่งด้วย "โฟบอส" และอีกดวงหนึ่งด้วย "เดมอส" ส่งผลให้มีการเปลี่ยนเส้นทางเช่น go2 mars/phobos
เพื่อตรงไปยังลิงก์ใดก็ได้ที่อธิบายดวงจันทร์นั้น แท็กเป็นทางเลือก หากผู้ใช้ระบุฟิลด์ที่สอง ตัวเปลี่ยนเส้นทางจะพยายามค้นหาแท็กในรายการตามชื่อนั้น หากไม่พบ ฟิลด์ที่สองจะถือเป็นพารามิเตอร์ทดแทนสำหรับลิงก์
หากมีการเพิ่มลิงก์ด้วย URL ที่เรามีลิงก์สำหรับคำหลักอื่นอยู่แล้ว เราอนุญาตให้คุณสร้างลิงก์ใหม่ได้เนื่องจากคุณอาจมีชื่ออื่นและการเชื่อมโยงคำหลักอื่น หากคุณพยายามเพิ่มลิงก์ที่ซ้ำกัน มันจะแสดงคำหลักอื่นๆ ที่ใช้ลิงก์นั้นอยู่แล้วเมื่อดูที่ดอทเพจ
ช่องป้อนข้อมูลที่ด้านซ้ายบนของหน้าดัชนีคือจุดเริ่มต้นหลักสำหรับแอปพลิเคชัน นี่คือฟิลด์ที่ผู้ใช้สามารถพิมพ์คอมโบคำหลัก/แท็ก/พารามิเตอร์เพื่อไปที่การเปลี่ยนเส้นทางหรือสร้างขึ้นใหม่
ลิงค์สามารถกำหนดวันที่ซึ่งระบุอายุการใช้งานของลิงค์ในฐานข้อมูลลิงค์ ตามค่าเริ่มต้น ลิงก์ไม่มีวันหมดอายุ ผู้ใช้สามารถป้อนอายุการใช้งานของลิงก์ได้หลากหลาย อายุการใช้งานลิงก์ที่ไม่ซ้ำกันมากที่สุดคือ "เบิร์นหลังจากอ่าน" ซึ่งดูเหมือนเป็นเช่นนั้นจริงๆ แอปพลิเคชันจะทำลายลิงก์หลังจากที่บุคคลเดียวใช้ลิงก์ดังกล่าวเป็นการเปลี่ยนเส้นทาง สิ่งนี้มีประโยชน์สำหรับลิงก์ที่คุณจะใช้หรือแชร์เพียงครั้งเดียว คุณควรเลือกอายุการใช้งานที่เหมาะสมสำหรับลิงก์หากลิงก์นั้นไม่คงอยู่ตลอดไป นี่คือรูปแบบการดูแลจัดการแบบพาสซีฟในแอปพลิเคชัน โดยจะลบลิงก์ออกเมื่อถึงวันหมดอายุ
หากต้องการบังคับให้เข้าถึงหน้ารายการของคำหลัก (โดยไม่คำนึงถึงพฤติกรรมของรายการ) คุณเพียงเติมจุดนำหน้าคำหลักนั้นด้วยจุดหรือต่อท้ายด้วยเครื่องหมายทับ การทำเช่นนี้จะแสดงหน้ารายการซึ่งลิงก์สามารถเปลี่ยนแปลงหรือติดแท็กได้
ลิงก์ในรายการสามารถวาง {1}
ไว้ที่ใดก็ได้ใน URL เพื่อทำหน้าที่เป็นสตริงการแทนที่สำหรับพารามิเตอร์ตำแหน่งเดียวที่ผู้ใช้ระบุ ขณะนี้เรารองรับเพียงพารามิเตอร์เดียวเท่านั้น แต่อาจมีการเปลี่ยนแปลงได้หากมีเหตุผลที่น่าสนใจสำหรับพารามิเตอร์สองตัวขึ้นไป ในเวอร์ชันก่อนหน้าของตัวเปลี่ยนเส้นทาง ลิงก์ประเภทที่มีการทดแทนเหล่านี้เรียกว่าลิงก์ "พิเศษ" และใช้ {*}
เป็นสตริงการทดแทน ตัวอย่างเช่น คีย์เวิร์ด go2 planets
สามารถมีลิงก์จำนวนหนึ่งที่แท็กด้วยชื่อดาวเคราะห์ต่างๆ URL ลิงก์แต่ละรายการสามารถมีสตริงการแทนที่ {1}
สำหรับการป้อนข้อมูลของผู้ใช้ go2 planets/mars/weather
go2redirector จะค้นหาคีย์เวิร์ด planets
ค้นหาลิงก์ที่แท็กด้วย mars
รับ URL เป็น www.nasa.gov/planets/mars/{1}.php
และดำเนินการ ทดแทน www.nasa.gov/planets/mars/weather.php
ในที่สุดผู้ใช้จะถูกเปลี่ยนเส้นทางไปยัง URL นั้น
ฉันต้องการความช่วยเหลือทั้งหมดที่จะทำให้ golang ระดับเริ่มต้นของฉันดูดีขึ้น มีคุณสมบัติใหม่ๆ ที่เราต้องการเพิ่มแต่มีคนไม่มากพอที่จะทำได้ หากคุณต้องการมีส่วนร่วม เพียงแยกพื้นที่เก็บข้อมูลและส่ง PR! ยื่นคำขอการปรับปรุงหรือข้อบกพร่องในตัวติดตามปัญหาที่นี่ในโครงการ go2redirector
ดู CONTRIBUTING.md
สำหรับข้อมูลเพิ่มเติม
ตัวเปลี่ยนเส้นทางดั้งเดิม f5go ได้รับการออกแบบโดย Saul Pwanson โดยได้รับความช่วยเหลือจาก Bryce Bockman และ Treebird(tm)