编织使用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不会遇到任何错误,因此请确保在编辑或在此处添加之前在首选环境中测试代码。