يستخدم Weaviate Docusaurus 2 لبناء وثائقنا. Docusaurus هو مولد موقع ثابت يعمل تحت Node.js. نستخدم أداة إدارة مشروع Node.js تسمى Yarn لتثبيت 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 > هذا يستفيد من مكوننا المصفى FilteredTextBlock jsx 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 أي أخطاء في هذه الأمثلة ، لذا يرجى التأكد من اختبار الرمز في بيئتك المفضلة قبل التحرير أو إضافتها هنا.