Weaviate verwendet Docusaurus 2, um unsere Dokumentation aufzubauen. Docusaurus ist ein statischer Website -Generator, der unter node.js. Wir verwenden ein Projektmanagement -Tool von Node.JS namens Yarn, um Docusaurus zu installieren und Projektabhängigkeiten zu verwalten.
Wenn Sie nicht über Node.js und yarn auf Ihrem System installiert sind, installieren Sie diese zuerst.
Verwenden Sie den NVM -Paket -Manager, um node.js. Die nvm -Projektseite bietet ein Installationsskript.
Verwenden Sie nach der Installation nvm nvm , um node.js.
nvm install
Standardmäßig installiert nvm die neueste Version von node.js. Installieren Sie auch die Version von node.js, die in .github/workflows/pull_requests.yaml angegeben ist. Zum Zeitpunkt des Schreibens ist es Version 20.
nvm install 20
nvm use 20
Node.js enthält den NPM -Paketmanager. Verwenden Sie npm , um yarn zu installieren.
npm install --global yarn
Um zu dieser Website beizutragen, geben Sie zuerst dieses Repository und erstellen Sie eine lokale Kopie, an der sie arbeiten können.
Melden Sie sich in Ihrem Github -Konto an.
Fork das Upstream-Repository, https://github.com/weaviate/weaviate-io.
Klonen Sie das Repository in Ihr lokales System.
git clone [email protected]:YOUR-GITHUB-HANDLE/weaviate-io.git
Weitere Informationen zum Klonen eines Repositorys, einschließlich der Einrichtung einer SSH -Taste, finden Sie in der GitHub -Dokumentation.
Stellen Sie den Remote -Tracking -Zweig ein.
git remote add upstream https://github.com/weaviate/weaviate-io.git
Überprüfen Sie die Fernbedienungen.
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)
Konfigurieren Sie einen Tracking -Zweig.
Mit diesem Schritt können Sie Upstream -Änderungen nachverfolgen, während Sie an Ihrem Update arbeiten. Wenn Sie bereit sind, Ihre Änderungen beizutragen, erstellen Sie eine Pull -Anfrage gegen den upstream/main .
Holen Sie sich die stromaufwärts gelegenen Zweige.
git fetch upstream
Fügen Sie upstream/main als Tracking -Zweig hinzu, wenn Sie eine neue Projektabteilung erstellen. Sie können mit git checkout den Tracking -Zweig festlegen oder eine alternative Methode auswählen, die zu Ihrem Workflow passt.
git checkout -b your-update-branch-name upstream/main
Sobald Sie eine lokale Kopie des Repositorys haben, müssen Sie Docusaurus und die anderen Projektabhängigkeiten installieren.
Wechseln Sie zum Projektverzeichnis und verwenden Sie das Garn, um die Abhängigkeiten zu aktualisieren.
cd weaviate-io
yarn install
Möglicherweise sehen Sie einige Warnungen während der Installation.
Starten Sie nach Abschluss der Installation den yarn , um Ihren Build zu testen.
yarn start
Dadurch wird die Website erstellt und einen lokalen Server gestartet. Er öffnet dann http: // localhost: 3000/zeigt den lokalen Build an. Wenn Sie das Terminal schließen, stoppt der Server. Oder drücken Sie Ctrl+C / Cmd+C um den Server zu stoppen.
Dieser Befehl generiert statische Inhalte in das build -Verzeichnis. Sie können einen Hosting -Dienst verwenden, um den statischen Inhalt zu bedienen.
yarn build
Der Befehl build ist nützlich, wenn Sie bearbeitet werden. Wenn Sie yarn start ausgeführt haben, müssen Sie einen lokalen Webserver starten, sondern müssen keine yarn build verwenden, um sich während der Bearbeitung zu ändern.
Mit dem Befehl build wird ein Link -Checker ausgeführt. Wenn Sie Probleme mit vorübergehend zerstörten Links haben, können Sie die Variable URL_IGNORES aktualisieren, um die Überprüfung für diesen Link zu deaktivieren.
Um die Linküberprüfung zu deaktivieren, fügen Sie die kaputte URL zu den URL_IGNORES -Listen in diesen Skripten hinzu:
Überprüfen Sie den Link erneut, bevor Sie eine Merge -Anfrage einreichen. Wenn der Link funktioniert, entfernen Sie ihn aus der Liste URL_IGNORES . Wenn der Link nicht funktioniert, teilen Sie uns dies in der Pull -Anfrage mit.
Mit SSH:
USE_SSH=true yarn deploy
Nicht verwenden SSH:
GIT_USER=<Your GitHub username> yarn deploy
Wenn Sie GitHub-Seiten für das Hosting verwenden, ist dieser Befehl eine bequeme Möglichkeit, die Website zu erstellen und in die gh-pages -Filiale zu fahren.
Code -Beispiele in der Dokumentation befinden sich in einem von zwei Formaten:
In vielen Dateien sehen Sie ein ähnliches Format wie:
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 > Dies nutzt unsere benutzerdefinierte FilteredTextBlock JSX -Komponente.
Hier lädt die FilteredTextBlock -Komponente die Zeilen zwischen dem startMarker und endMarker aus den importierten Skripten. Auf diese Weise können wir vollständige Skripte schreiben, die Tests enthalten können, um das Vorkommen fehlerhafter Code -Beispiele zu verringern.
Weitere Informationen zu Tests finden Sie unter Readme-tests.md.
In einigen Code -Beispielen wird der Code direkt in die TabItem -Komponente geschrieben, wie unten gezeigt.
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 >Ihre IDE wird in diesen Beispielen keine Fehler aufnehmen. Testen Sie also den Code in Ihrer bevorzugten Umgebung, bevor Sie sie hier bearbeiten oder hinzufügen.