Jupyter/Colab নোটবুক তৈরি করা হচ্ছে

nbgenerate টুলটি DevSite HTML এবং Markdown কন্টেন্ট এবং টেমপ্লেটকে Colab-সামঞ্জস্যপূর্ণ Jupyter নোটবুকে রূপান্তর করে।

ওভারভিউ

Google Colab সাইট থেকে:

Colab নোটবুক আপনাকে ইমেজ, HTML, LaTeX এবং আরও অনেক কিছুর সাথে একটি ডকুমেন্টে এক্সিকিউটেবল কোড এবং রিচ টেক্সট একত্রিত করতে দেয়।

Colab-এ, কোনো অতিরিক্ত সেটআপ বা ইনস্টলেশন ছাড়াই একটি ওয়েব ব্রাউজার থেকে পাইথন কোড লেখা ও চালানো যেতে পারে। একই নথিতে সমৃদ্ধ বিষয়বস্তু সরবরাহ করার অনুমতি দেওয়ার জন্য মার্কডাউন বিষয়বস্তু কোড কোষের সাথে ছেদ করা যেতে পারে। এটি Colab নোটবুকগুলিকে শুধুমাত্র পরিমাণগত গবেষণা এবং মেশিন লার্নিংয়ের জন্যই নয় বরং এপিআই এবং সাধারণত ডেভেলপার ডকুমেন্টেশনে পাওয়া যায় এমন ধারণাগুলি প্রদর্শন ও পরীক্ষা করার জন্য একটি জনপ্রিয় সমাধান করে তোলে।

এই কারণে, Colab নোটবুকে শেয়ার করা কন্টেন্ট প্রায়ই Google ডেভেলপার ডকুমেন্টেশনে প্রকাশিত কন্টেন্টের সাথে ওভারল্যাপ হয়। nbgenerate টুল সাহায্যকারী Colab নোটবুকের সাথে DevSite মার্কআপ ম্যানুয়ালি সিঙ্ক করার প্রয়োজনীয়তা দূর করে। টুলটি DevSite HTML এবং Markdown কে Colab এবং অন্যান্য Jupyter নোটবুক বাস্তবায়নের দ্বারা ব্যবহৃত .ipynb ফাইল ফর্ম্যাটে রূপান্তরিত করে। এটি ডেভেলপার ডক্স এবং Colab নোটবুক উভয়ের জন্যই DevSite কন্টেন্টকে সত্যের একক উৎস হিসেবে ব্যবহার করার অনুমতি দেয়।

পটভূমি এবং প্রযুক্তিগত বিশদ বিবরণ nbgenerate-dd- এ মূল নকশা নথিতে পাওয়া যাবে।

মৌলিক ব্যবহার

আপনার DevSite প্রোজেক্টের পৃষ্ঠাগুলির জন্য Colab নোটবুক তৈরি করতে, nbgenerate কমান্ড ব্যবহার করার আগে আপনাকে _notebooks.yaml নামে একটি ফাইল যোগ করতে হবে।

আপনার প্রকল্পে _notebooks.yaml যোগ করা হচ্ছে

একটি DevSite প্রোজেক্টের পেজ থেকে Colab নোটবুক তৈরি করতে, প্রোজেক্ট রুটে _notebooks.yaml নামে একটি ফাইল যোগ করুন (আপনার সাইটের _project.yaml এর মতো একই ডিরেক্টরিতে)। Colab নোটবুক হিসেবে শেয়ার করা প্রতিটি পৃষ্ঠার জন্য ফাইলটিতে একটি করে এন্ট্রি থাকতে হবে। একটি Colab নোটবুকে রূপান্তরিত করার জন্য প্রতিটি এন্ট্রির source ফিল্ডে অবশ্যই আপনার DevSite টেন্যান্টের মধ্যে সম্পূর্ণ পাথ থাকতে হবে। 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 এ কিভাবে google3 পাথ সিঙ্ক করতে হয় তার বিস্তারিত জানার জন্য কপিবারা দেখুন। GitHub-এ জেনারেট করা নোটবুকের লিঙ্ক যোগ করার উদাহরণগুলির জন্য উইজেট উদাহরণগুলিও দেখুন।

নোটবুক তৈরি করা হচ্ছে

প্রথমবার nbgenerate চালানোর আগে, আপনার .bashrc এবং আপনার বর্তমান শেলের একটি উপনাম সংজ্ঞায়িত করুন:

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

তারপরে আপনি _notebooks.yaml এ তালিকাভুক্ত সমস্ত ফাইল পুনরায় তৈরি করতে কমান্ড লাইন থেকে nbgenerate চালাতে পারেন:

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 ভেরিয়েবল ব্যবহার করে কন্টেন্ট ফিল্টার করতে পারেন, যা nbgenerate রূপান্তর প্রক্রিয়া চলাকালীন True হিসেবে সেট করা হয়। DevSite-এ স্টেজিং এবং প্রকাশ করার সময় ত্রুটিগুলি প্রতিরোধ করতে, পৃষ্ঠাগুলির শীর্ষের কাছে নিম্নলিখিতগুলি যোগ করুন যা বেছে বেছে সামগ্রী অন্তর্ভুক্ত করতে হবে:

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

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 নোটবুক বোতাম উইজেট

আর্থ ইঞ্জিন ডেভেলপার ডকুমেন্টেশন একটি কাস্টম উইজেট ব্যবহার করে ধারাবাহিকভাবে Colab-এ চালান এবং GitHub-এ Colab নোটবুকের সাথে সিঙ্ক করা DevSite পৃষ্ঠাগুলিতে GitHub বোতামে উৎস দেখুন

নমুনা বিভাগ উইজেট

নমুনা বিভাগ উইজেট একাধিক প্রোগ্রামিং ভাষা বা পরিবেশে উপস্থাপিত কোড স্নিপেটগুলির জন্য ট্যাবযুক্ত বিভাগগুলি কীভাবে সেট আপ করতে হয় তার একটি উদাহরণ প্রদান করে। উইজেট শুধুমাত্র Colab নোটবুকের মধ্যে পাইথন স্নিপেট সহ যত্ন নেয়। এটি নোটবুক লেখার সময় ট্যাবযুক্ত বিভাগগুলি প্রদর্শন করতে ব্যবহৃত মার্কআপকেও সরিয়ে দেয়।