Weaviate ใช้ Docusaurus 2 เพื่อสร้างเอกสารของเรา Docusaurus เป็นเครื่องกำเนิดเว็บไซต์แบบคงที่ที่ทำงานภายใต้ Node.js เราใช้เครื่องมือการจัดการโครงการ Node.js ที่เรียกว่าเส้นด้ายเพื่อติดตั้ง Docusaurus และจัดการการพึ่งพาโครงการ
หากคุณไม่มี Node.js และ yarn ติดตั้งในระบบของคุณให้ติดตั้งก่อน
ใช้ NVM Package Manager เพื่อติดตั้ง node.js หน้าโครงการ nvm มีสคริปต์การติดตั้ง
หลังจากที่คุณติดตั้ง nvm ให้ใช้ nvm เพื่อติดตั้ง node.js
nvm install
โดยค่าเริ่มต้น nvm จะติดตั้งเวอร์ชันล่าสุดของ Node.js ติดตั้งเวอร์ชันของ node.js ที่ระบุไว้ใน .github/workflows/pull_requests.yaml ในขณะที่เขียนเป็นเวอร์ชัน 20
nvm install 20
nvm use 20
node.js รวมถึงตัวจัดการแพ็คเกจ NPM ใช้ npm เพื่อติดตั้ง yarn
npm install --global yarn
หากต้องการมีส่วนร่วมในเว็บไซต์นี้ก่อนอื่นให้ส้อมที่เก็บนี้และสร้างสำเนาท้องถิ่นเพื่อทำงาน
เข้าสู่บัญชี GitHub ของคุณ
แยกที่เก็บต้นน้ำ https://github.com/weaviate/weaviate-io
โคลนที่เก็บข้อมูลในระบบท้องถิ่นของคุณ
git clone [email protected]:YOUR-GITHUB-HANDLE/weaviate-io.git
สำหรับรายละเอียดเกี่ยวกับการโคลนนิ่งพื้นที่เก็บข้อมูลรวมถึงการตั้งค่าคีย์ SSH ให้ดูเอกสาร GitHub
ตั้งค่าสาขาการติดตามระยะไกล
git remote add upstream https://github.com/weaviate/weaviate-io.git
ตรวจสอบรีโมท
git remote -v
# The output resembles:
origin https://github.com/YOUR-GITHUB-HANDLE/weaviate-io.git (fetch)
origin https://github.com/YOUR-GITHUB-HANDLE/weaviate-io.git (push)
upstream https://github.com/weaviate/weaviate-io.git (fetch)
upstream https://github.com/weaviate/weaviate-io.git (push)
กำหนดค่าสาขาการติดตาม
ขั้นตอนนี้ให้คุณติดตามการเปลี่ยนแปลงต้นน้ำในขณะที่คุณทำงานกับการอัปเดตของคุณ เมื่อคุณพร้อมที่จะมีส่วนร่วมในการเปลี่ยนแปลงของคุณให้สร้างคำขอดึงกับสาขา upstream/main
รับสาขาต้นน้ำ
git fetch upstream
เพิ่ม upstream/main เป็นสาขาการติดตามเมื่อคุณสร้างสาขาโครงการใหม่ คุณสามารถใช้ git checkout เพื่อตั้งค่าสาขาการติดตามหรือเลือกวิธีการอื่นที่เหมาะกับเวิร์กโฟลว์ของคุณ
git checkout -b your-update-branch-name upstream/main
เมื่อคุณมีสำเนาที่เก็บข้อมูลท้องถิ่นแล้วคุณจะต้องติดตั้ง Docusaurus และการพึ่งพาโครงการอื่น ๆ
เปลี่ยนไปใช้ไดเรกทอรีโครงการจากนั้นใช้เส้นด้ายเพื่ออัปเดตการอ้างอิง
cd weaviate-io
yarn install
คุณอาจเห็นคำเตือนบางอย่างระหว่างการติดตั้ง
เมื่อการติดตั้งเสร็จสมบูรณ์ให้เริ่มเซิร์ฟเวอร์ yarn เพื่อทดสอบบิลด์ของคุณ
yarn start
สิ่งนี้จะสร้างไซต์และเริ่มเซิร์ฟเวอร์ท้องถิ่นจากนั้นเปิด http: // localhost: 3000/แสดงบิลด์ท้องถิ่น หากคุณปิดเทอร์มินัลเซิร์ฟเวอร์จะหยุด หรือกด Ctrl+C / Cmd+C เพื่อหยุดเซิร์ฟเวอร์
คำสั่งนี้สร้างเนื้อหาคงที่ลงในไดเรกทอรี build คุณสามารถใช้บริการโฮสติ้งเพื่อให้บริการเนื้อหาคงที่
yarn build
คำสั่ง build มีประโยชน์เมื่อคุณแก้ไขเสร็จแล้ว หากคุณใช้ yarn start เพื่อเริ่มต้นเว็บเซิร์ฟเวอร์ในพื้นที่คุณไม่จำเป็นต้องใช้ yarn build เพื่อดูการเปลี่ยนแปลงของคุณในขณะที่คุณกำลังแก้ไข
คำสั่ง build เรียกใช้ตัวตรวจสอบลิงค์ หากคุณมีปัญหากับลิงก์ที่เสียชั่วคราวคุณสามารถอัปเดตตัวแปร URL_IGNORES เพื่อปิดการใช้งานการตรวจสอบลิงก์นั้น
ในการปิดใช้งานการตรวจสอบลิงก์ให้เพิ่ม URL ที่เสียไปยังรายการ URL_IGNORES ในสคริปต์เหล่านี้:
ตรวจสอบลิงค์อีกครั้งก่อนที่คุณจะส่งคำขอผสาน หากลิงก์ใช้งานได้ให้ลบออกจากรายการ URL_IGNORES หากลิงค์ไม่ทำงานให้บอกเราเกี่ยวกับเรื่องนี้ในคำขอดึง
ใช้ SSH:
USE_SSH=true yarn deploy
ไม่ใช้ SSH:
GIT_USER=<Your GitHub username> yarn deploy
หากคุณใช้หน้า GitHub สำหรับโฮสติ้งคำสั่งนี้เป็นวิธีที่สะดวกในการสร้างเว็บไซต์และผลักดันไปยังสาขา gh-pages
ตัวอย่างรหัสในเอกสารอยู่ในหนึ่งในสองรูปแบบ:
ในหลาย ๆ ไฟล์คุณจะเห็นรูปแบบที่คล้ายกับ:
import Tabs from ' @ theme/Tabs ';
import TabItem from ' @ theme/TabItem ';
import FilteredTextBlock from ' @ site/src /components/Documentation/FilteredTextBlock';
import PyCode from '!!raw-loader!/ _ includes/code/howto/manage-data.create.py';
import TSCode from '!!raw-loader!/ _ includes/code/howto/manage-data.create.ts';
< Tabs groupId = " languages " >
< TabItem value = " py " label = " Python " >
<FilteredTextBlock
text={PyCode}
startMarker="# ValidateObject START"
endMarker="# ValidateObject END"
language="py"
/>
</ TabItem >
< TabItem value = " js " label = " JS/TS Client v2 " >
<FilteredTextBlock
text={TSCode}
startMarker="// ValidateObject START"
endMarker="// ValidateObject END"
language="tsv2"
/>
</ TabItem >
</ Tabs > สิ่งนี้ใช้ประโยชน์จากส่วนประกอบ JSX FilteredTextBlock ที่กำหนดเองของเรา
ที่นี่ส่วนประกอบ FilteredTextBlock โหลดเส้นระหว่าง startMarker และ endMarker จากสคริปต์ที่นำเข้า สิ่งนี้ช่วยให้เราสามารถเขียนสคริปต์ที่สมบูรณ์ซึ่งอาจรวมถึงการทดสอบเพื่อลดการเกิดเหตุการณ์ที่ผิดพลาด
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบโปรดดู readme-tests.md
ในบางตัวอย่างรหัสรหัสจะถูกเขียนโดยตรงภายในส่วนประกอบ TabItem ดังที่แสดงด้านล่าง
import Tabs from ' @ theme/Tabs ';
import TabItem from ' @ theme/TabItem ';
< Tabs groupId = " languages " >
< TabItem value = " py " label = " Python " >
```python
import weaviate
client = weaviate.Client("http://localhost:8080")
```
</ TabItem >
< TabItem value = " js " label = " JS/TS Client v2 " >
```
import weaviate from 'weaviate-ts-client';
const client = weaviate.client({
scheme: 'http',
host: 'localhost:8080',
});
```
</ TabItem >
... and any other tabs
</ Tabs >IDE ของคุณจะไม่รับข้อผิดพลาดใด ๆ ในตัวอย่างเหล่านี้ดังนั้นโปรดตรวจสอบให้แน่ใจว่าได้ทดสอบรหัสในสภาพแวดล้อมที่คุณต้องการก่อนแก้ไขหรือเพิ่มที่นี่