หากคุณมีเอกสารกระจายไปทั่วสถานที่ (GitHub, Google Drive ฯลฯ ) และคุณต้องการเครื่องมือค้นหาส่วนกลางเหนือมันแล้ว doks เหมาะสำหรับคุณ
Doks เป็นเครื่องมือ CLI ที่รวมเอกสารที่มาจากหลายแหล่ง (GitHub, Google Drive ฯลฯ ) ลงในเครื่องมือค้นหา (Lucene ถูกใช้โดยค่าเริ่มต้นสำหรับการตั้งค่าขั้นต่ำในท้องถิ่น แต่สามารถใช้ ElasticSearch แทนได้)

ขั้นตอนการติดตั้งสามารถดูได้ที่ docs/install.md
เอกสารสามารถพบได้ในโฟลเดอร์ DOCS
เลือกไฟล์กำหนดค่าที่จะใช้กับ doks (โดยค่าเริ่มต้น: $HOME/.doks/config/default.yml ):
❯ export DOKS_CONFIG_FILE=docs/examples/config/simple.yml ที่นี่เราใช้ไฟล์กำหนดค่าอย่างง่ายจากเอกสาร/ตัวอย่าง/config/simple.yml ในทางปฏิบัติคุณไม่ต้องการการส่งออกนี้คุณเพียงแค่ต้องใส่การกำหนดค่าของคุณในเส้นทางที่คาดหวังเริ่มต้น $HOME/.doks/config/default.yml
ขั้นตอนต่อไปคือการจัดทำดัชนีเอกสารที่อ้างอิงในไฟล์กำหนดค่าเพื่อให้สามารถค้นหาได้:
❯ doks index
14:23:58 INFO - [wlezzar/jtab] cloning into ' /tmp/doks1910419821411559250 '
14:24:00 INFO - [wlezzar/jtab] 1 documents found !
14:24:00 INFO - [wlezzar/doks] cloning into ' /tmp/doks8654245137262434689 '
14:24:02 INFO - [wlezzar/doks] 0 documents found !
14:24:02 INFO - [adevinta/zoe] cloning into ' /tmp/doks756581970042346717 '
14:24:04 INFO - [adevinta/zoe] 36 documents found !ดำเนินการค้นหา:
❯ doks search ' aws kafka ' | jq ' . 'ผลลัพธ์อยู่ใน JSON และจะมีลักษณะดังต่อไปนี้:
[
{
"link" : " https://github.com/adevinta/zoe/blob/master/docs/advanced/runners/lambda.md " ,
"score" : 3.4977975 ,
"matches" : {
"content" : [
" # Lambda runner nn The lambda runner triggers lambda functions to read / produce to the <B>Kafka</B> " ,
" using CloudFormation (an S3 bucket, <B>AWS</B> roles, etc.). For more details on the resources deployed " ,
" into <B>AWS</B> and registering the lambda within <B>AWS</B>. Zoe jar path needs to be set and must point to a valid zoe "
]
}
},
...
]คุณยังสามารถใช้ JTAB เพื่อพิมพ์ผลลัพธ์ JSON เป็นตาราง:
❯ doks search ' documentation search ' | jtab | less -S
┌────────────────────────────────────────────────────────────────────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────┐
│ link │ matches │ score │
├────────────────────────────────────────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────┤
│ https://github.com/wlezzar/doks/blob/master/README.md │ content: │ 6.044318 │
│ │ - " <B>documents</B> coming from multiple sources (github, google drive, etc.) into a <B>search</B> engine (Lucene " │ │
│ │ - " - [adevinta/zoe] 36 <B>documents</B> found!n ` ` ` nn Make a < B > search < /B > query: nn ` ` ` bashn❯ doks <B>search</B> 'aws kafka' | jq " │ │
│ │ - " # DoksnnIf you have <B>documentation</B> spread all over the place (github, google drive, etc.) and you " │ │
├────────────────────────────────────────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────┤
│ https://github.com/adevinta/zoe/blob/master/docs/basics/consume.md │ content: │ 3.2647414 │
│ │ - " will discard the message or not.nnThis feature can be used to perform <B>searches</B> into Kafka topics. It is one " │ │
│ │ - " ` ) and parallel execution ( ` --jobs 20 ` to spin up 20 pods), we can perform expensive < B > searches < /B > " │ │
│ │ - " execution in the advanced section of the < B > documentation < /B > . nn Filters are enabled with the ` --filter ` option " │ │
└────────────────────────────────────────────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────┘Doks ยังมีโหมด UI สำหรับผู้เกลียดชัง CLI;)
❯ doks serve
23:16:10 INFO - listening on port: 8888
ตอนนี้คุณสามารถเปิดเบราว์เซอร์ได้ที่: http: // localhost: 8888

Doks อยู่ในช่วงเริ่มต้น ข้อบกพร่องควรได้รับการคาดหวัง;) หากคุณพบหรือต้องการความช่วยเหลือบางอย่างอย่าลังเลที่จะเปิดปัญหา GitHub