Το εργαλείο nbgenerate
μετατρέπει περιεχόμενο και πρότυπα DevSite HTML και Markdown σε σημειωματάρια Jupyter συμβατά με Colab.
Επισκόπηση
Από τον ιστότοπο Google Colab :
Τα σημειωματάρια Colab σάς επιτρέπουν να συνδυάζετε εκτελέσιμο κώδικα και εμπλουτισμένο κείμενο σε ένα μόνο έγγραφο, μαζί με εικόνες, HTML, LaTeX και άλλα.
Στο Colab, ο κώδικας Python μπορεί να γραφτεί και να εκτελεστεί από ένα πρόγραμμα περιήγησης ιστού χωρίς πρόσθετη ρύθμιση ή εγκατάσταση. Το περιεχόμενο Markdown μπορεί να παρεμβάλλεται με κελιά κώδικα για να επιτρέπεται η παροχή εμπλουτισμένου περιεχομένου στο ίδιο έγγραφο. Αυτό καθιστά τα σημειωματάρια Colab μια δημοφιλή λύση όχι μόνο για ποσοτική έρευνα και μηχανική μάθηση, αλλά και για επίδειξη και πειραματισμό με API και έννοιες όπως αυτές που συνήθως απαντώνται στην τεκμηρίωση προγραμματιστών.
Για αυτόν τον λόγο, το περιεχόμενο που μοιράζεται σε σημειωματάρια Colab συχνά επικαλύπτεται με περιεχόμενο που δημοσιεύεται στην τεκμηρίωση προγραμματιστών της Google. Το εργαλείο nbgenerate εξαλείφει την ανάγκη για μη αυτόματο συγχρονισμό της σήμανσης DevSite με υποστηρικτικά σημειωματάρια Colab. Το εργαλείο μετατρέπει το DevSite HTML και το Markdown στη μορφή αρχείου .ipynb που χρησιμοποιείται από το Colab και άλλες υλοποιήσεις φορητών υπολογιστών Jupyter. Αυτό επιτρέπει στο περιεχόμενο του DevSite να χρησιμοποιείται ως ενιαία πηγή αλήθειας τόσο για τα έγγραφα προγραμματιστών όσο και για τα σημειωματάρια Colab.
Μπορείτε να βρείτε το ιστορικό και τις τεχνικές λεπτομέρειες στο πρωτότυπο έγγραφο σχεδίασης στο nbgenerate-dd .
Βασική χρήση
Για να δημιουργήσετε σημειωματάρια Colab για σελίδες στο έργο σας στο DevSite, θα χρειαστεί να προσθέσετε ένα αρχείο με το όνομα _notebooks.yaml
πριν καλέσετε την εντολή nbgenerate
.
Προσθήκη _notebooks.yaml στο έργο σας
Για να δημιουργήσετε σημειωματάρια Colab από σελίδες ενός έργου DevSite, προσθέστε ένα αρχείο που ονομάζεται _notebooks.yaml
στη ρίζα του έργου (στον ίδιο κατάλογο με _project.yaml
του ιστότοπού σας). Το αρχείο θα πρέπει να περιλαμβάνει μία καταχώρηση για κάθε σελίδα που μοιράζεται ως σημειωματάριο Colab. Το πεδίο 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!'); ```
Παραδείγματα widget
Οι ιστότοποι συχνά ορίζουν τα δικά τους γραφικά στοιχεία DevSite για να ενσωματώνουν κοινές συμπεριφορές. Ακολουθούν ορισμένα παραδείγματα γραφικών στοιχείων που χρησιμοποιούν τη μεταβλητή is_ipynb
, η οποία μπορεί να προσαρμοστεί στον ιστότοπό σας.
Γραφικό στοιχείο κουμπιών σημειωματάριου Colab
Η τεκμηρίωση προγραμματιστή του Earth Engine χρησιμοποιεί ένα προσαρμοσμένο γραφικό στοιχείο για να εμφανίζει με συνέπεια τα κουμπιά Εκτέλεση στο Colab και Προβολή πηγής στα κουμπιά GitHub σε σελίδες DevSite συγχρονισμένα με σημειωματάρια Colab στο GitHub.
Δείγμα γραφικού στοιχείου ενότητας
Το γραφικό στοιχείο δείγματος ενότητας παρέχει ένα παράδειγμα του τρόπου ρύθμισης ενοτήτων με καρτέλες για αποσπάσματα κώδικα που παρουσιάζονται σε πολλές γλώσσες προγραμματισμού ή περιβάλλοντα. Το γραφικό στοιχείο φροντίζει να περιλαμβάνει μόνο αποσπάσματα Python σε σημειωματάρια Colab. Καταργεί επίσης τη σήμανση που χρησιμοποιείται για την εμφάνιση των ενοτήτων με καρτέλες κατά τη σύνταξη του σημειωματάριου.