إنشاء دفاتر ملاحظات Jupyter/Colab

تحوّل أداة "nbgenerate" المحتوى والنماذج في DevSite HTML و Markdown إلى أوراق ملاحظات Jupyter المتوافقة مع Colab.

OverView

من موقع Google Colab الإلكتروني:

تتيح لك أوراق ملاحظات Colab دمج الرموز البرمجية التنفيذية والنصوص المنسّقة في مستند واحد، بالإضافة إلى الصور وHTML وLaTeX والمزيد.

في Colab، يمكن كتابة رمز Python وتنفيذه من متصفّح ويب بدون أي إعداد أو تثبيت إضافي. يمكن إدراج محتوى Markdown بين خلايا برمجية للسماح بتقديم محتوى غني في المستند نفسه. وهذا يجعل ملفات "دفتر ملاحظات Colab" حلًا شائعًا ليس فقط للبحث الكمي وتكنولوجيا تعلُّم الآلة، بل أيضًا لعرض واجهات برمجة التطبيقات ومحاولة استخدامها ومحاولة استخدام المفاهيم، مثل تلك التي تظهر عادةً في مستندات المطوّرين.

لهذا السبب، غالبًا ما يتداخل المحتوى الذي تتم مشاركته في أوراق ملاحظات Colab مع المحتوى المنشور في مستندات مطوّري Google. تُلغي أداة nbgenerate الحاجة إلى مزامنة ترميز DevSite يدويًا مع أوراق ملاحظات Colab المتوافقة. تعمل الأداة على تحويل تنسيق HTML وMarkdown في DevSite إلى تنسيق ملف ‎.ipynb الذي تستخدمه Colab و عمليات تنفيذ أوراق ملاحظات Jupyter الأخرى. يتيح هذا الإجراء استخدام محتوى DevSite. كمصدر وحيد للمعلومات لكل من مستندات المطوّرين وأوراق ملاحظات Colab.

يمكن العثور على الخلفية والتفاصيل الفنية في مستند التصميم الأصلي على nbgenerate-dd.

الاستخدام الأساسي

لإنشاء أوراق ملاحظات Colab للصفحات في مشروع DevSite، عليك إجراء ما يلي: أضِف ملفًا باسم _notebooks.yaml قبل استدعاء الأمر nbgenerate.

إضافة ملف ‎_notebooks.yaml إلى مشروعك

لإنشاء أوراق ملاحظات Colab من صفحات في مشروع DevSite، عليك إضافة ملف باسم _notebooks.yaml إلى جذر المشروع (في الدليل نفسه الذي يتضمّن موقعك الإلكتروني) _project.yaml). يجب أن يتضمن الملف إدخالاً واحدًا لكل صفحة تتم مشاركتها كملف Colab notebook. يجب أن يحتوي الحقل source لكل إدخال على القيمة المطلقة المسار داخل مستأجر DevSite لتحويله إلى ورقة ملاحظات Colab. تشير رسالة الأشكال البيانية يجب أن يحدّد الحقل target مسار مستودع google3 الذي تم إنشاء Colab فيه. دفاتر الملاحظات.

على سبيل المثال:

- source: /earth-engine/ee-image.html
  target: //depot/google3/third_party/earthengine_community/ipynb/ee-image.ipynb
- source: /earth-engine/guides/image_objects.md
  target: //depot/google3/third_party/earthengine_community/ipynb/guides/image_objects.ipynb

يستخدم هذا المثال المسارات المستهدفة التي تتم مزامنتها مع GitHub باستخدام Copybara بحيث يمكن فتح دفاتر الملاحظات التي تم إنشاؤها عبر ارتباطات تشعبية متاحة للجمهور. راجِع copybara لمزيد من التفاصيل حول كيفية مزامنة مسارات google3 مع GitHub. يمكن أيضًا مراجعة أمثلة على الأدوات لعرض أمثلة على إضافة روابط إلى أوراق الملاحظات التي تم إنشاؤها في GitHub

إنشاء دفاتر ملاحظات

قبل تشغيل nbgenerate لأول مرة، حدِّد اسمًا مستعارًا في ملف ملف .bashrc وإلى قشرتك الحالية:

alias nbgenerate="/google/bin/releases/devsite/tools/nbgenerate/nbgenerate.par"

يمكنك بعد ذلك تشغيل nbgenerate من سطر الأوامر لإعادة إنشاء كل الملفات. مدرجة في _notebooks.yaml:

nbgenerate googledata/devsite/content/en/PROJECT

حدِّد مسارًا واحدًا أو أكثر كوسيطات لـ nbgenerate لحصر المعالجة في الملفات أو المسارات المحدّدة، على سبيل المثال:

nbgenerate third_party/devsite/developers/en/earth-engine/guides

تتم معالجة مسارات الأدلة بشكل متكرر، وسيتم معالجة أي ملفات في _notebooks.yaml في الدليل المحدّد أو أسفله.

إذا ظهرت لك رسالة "تم رفض الإذن" عند تشغيل nbgenerate باستخدام الاسم المعرِّف أعلاه، يمكنك أيضًا تشغيل الأداة باستخدام الأمر التالي:

blaze run //devsite/tools/nbgenerate -- googledata/devsite/content/en/PROJECT

فلترة المحتوى

في الحالات التي يجب أن يظهر فيها بعض المحتوى إما في صفحات DevSite فقط أو في تم إنشاء ورقة ملاحظات Colab ولكن ليس كليهما، فيمكنك فلترة المحتوى باستخدام المتغيّر "is_ipynb"، والذي يتم ضبطه على True أثناء الإحالة الناجحة "nbgenerate" الدفع. لتجنُّب حدوث أخطاء عند النشر إلى DevSite، أضِف ما يلي بالقرب من أعلى الصفحات التي تحتاج إلى تضمين محتوى بشكل انتقائي:

    
{% if is_ipynb is not defined %}{% set is_ipynb=False %}{% endif %}
     

يمكنك بعد ذلك استخدام علامات Jinja للتحكّم في المحتوى الذي يظهر في Colab أو DevSite أو كليهما. على سبيل المثال:

# Overview

This section will show in both the DevSite page and in the Colab notebook as
a text cell.


{% if is_ipynb %}

This content will only appear in Colab notebooks but not on DevSite pages. This
is useful for providing Colab-specific initialization and setup instructions or
code.
{% endif %}
 


{% if not is_ipynb %}
```js
// This code snippet will only be rendered in DevSite but not in Colab
// notebooks.
console.log('Hello, nbgenerate!');
```
{% endif %}
 

```py
# This snippet will appear in both DevSite and in the Colab notebook as a code
# cell.
print('Hello, nbgenerate!');
```

أمثلة على التطبيقات المصغّرة

تحدّد المواقع الإلكترونية غالبًا التطبيقات المصغّرة الخاصة بها في DevSite لتضمين السلوكيات الشائعة. في ما يلي بعض الأمثلة على التطبيقات المصغّرة التي تستخدِم المتغيّر is_ipynb والتي يمكن تعديلها لتتناسب مع موقعك الإلكتروني.

التطبيق المصغَّر لأزرار ورقة ملاحظات Colab

تستخدم مستندات مطوّري برامج Earth Engine تطبيقًا مصغّرًا لعرض الزرَّين التشغيل في Colab وعرض المصدر على GitHub بشكل متّسق على صفحات DevSite التي تمت مزامنتها مع أوراق ملاحظات Colab في GitHub.

نموذج أداة القسم

أداة نموذج القسم تقدّم مثالاً على كيفية إعداد أقسام مُقسّمة بعلامات تبويب لمقتطفات الرموز البرمجية المقدَّمة بلغات برمجة أو بيئات متعددة. تهتم الأداة المصغّرة بتضمين مقتطفات Python فقط في دفاتر ملاحظات Colab. ويؤدي ذلك أيضًا إلى إزالة الترميز المستخدَم لعرض الأقسام التي تتضمّن علامات تبويب عند كتابة ملف الملاحظات.