編織使用Docusaurus 2來構建我們的文檔。 Docusaurus是一個靜態網站生成器,可在Node.js下運行。我們使用名為YARN的Node.js項目管理工具來安裝Docusaurus並管理項目依賴性。
如果您的系統上沒有安裝node.js和yarn ,請先安裝它們。
使用NVM軟件包管理器安裝node.js。 nvm項目頁面提供了一個安裝腳本。
安裝nvm後,使用nvm安裝node.js。
nvm install
默認情況下, nvm安裝了Node.js的最新版本。還要安裝.github/workflows/pull_requests.yaml中指定的node.js版本。在撰寫本文時,它是版本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啟動本地Web服務器,則無需使用yarn build即可在編輯時查看更改。
構建命令運行鏈接檢查器。如果您在暫時破裂的鏈接上遇到麻煩,則可以更新URL_IGNORES變量以禁用該鏈接的檢查。
要禁用鏈接檢查,請在這些腳本中的URL_IGNORES列表中添加損壞的URL:
提交合併請求之前,請再次檢查鏈接。如果鏈接有效,請將其從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 >這利用了我們的自定義FilteredTextBlock JSX組件。
在這裡, 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不會遇到任何錯誤,因此請確保在編輯或在此處添加之前,請確保在首選環境中測試代碼。