Алат nbgenerate
конвертује ДевСите ХТМЛ и Маркдовн садржај и шаблоне у Цолаб компатибилне Јупитер бележнице.
ОверВиев
Са сајта Гоогле Цолаб :
Цолаб бележнице вам омогућавају да комбинујете извршни код и обогаћени текст у једном документу, заједно са сликама, ХТМЛ-ом, ЛаТеКс-ом и још много тога.
У Цолаб-у, Питхон код се може написати и извршити из веб претраживача без додатног подешавања или инсталације. Маркдовн садржај може бити прошаран ћелијама кода како би се омогућио богат садржај у истом документу. Ово чини Цолаб нотебоок рачунаре популарним решењем не само за квантитативно истраживање и машинско учење, већ и за демонстрацију и експериментисање са АПИ-јима и концептима попут оних који се обично налазе у документацији за програмере.
Из тог разлога, садржај који се дели у Цолаб бележницама често се преклапа са садржајем објављеним у Гоогле документацији за програмере. Алат нбгенерате елиминише потребу да се ручно синхронизују ознаке ДевСите-а са Цолаб бележницама које подржавају. Алат конвертује ДевСите ХТМЛ и Маркдовн у формат датотеке .ипинб који користе Цолаб и друге имплементације Јупитер бележнице. Ово омогућава да се садржај ДевСите-а користи као јединствен извор истине и за документе за програмере и за Цолаб бележнице.
Позадина и технички детаљи могу се наћи у оригиналном документу о дизајну на нбгенерате-дд .
Основна употреба
Да бисте генерисали Цолаб бележнице за странице у свом ДевСите пројекту, мораћете да додате датотеку под називом _notebooks.yaml
пре него што позовете команду nbgenerate
.
Додавање _нотебоокс.иамл вашем пројекту
Да бисте генерисали Цолаб бележнице са страница у пројекту ДевСите, додајте датотеку под називом _notebooks.yaml
у корен пројекта (у истом директоријуму као и _project.yaml
вашег сајта). Датотека треба да садржи један унос за сваку страницу која се дели као Цолаб бележница. source
поље сваког уноса мора да садржи апсолутну путању унутар вашег ДевСите закупца да би се конвертовао у Цолаб бележницу. target
поље мора да наведе путању гоогле3 депоа где ће бити уписане генерисане Цолаб свеске.
на пример:
- 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
Овај пример користи циљне путање које се пресликавају на ГитХуб помоћу Цопибаре тако да се генерисане бележнице могу отворити преко јавно доступних хипервеза. Погледајте цопибару за детаље о томе како да синхронизујете гоогле3 путање са ГитХуб-ом. Такође погледајте примере виџета за примере који додају везе до генерисаних бележница у ГитХуб-у.
Генерисање бележница
Пре него што покренете 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
Филтрирање садржаја
У случајевима када би неки садржај требало да се појављује само на страницама ДевСите-а или у генерисаној Цолаб бележници, али не и у оба, можете да филтрирате садржај помоћу променљиве is_ipynb
, која је постављена на True
током процеса конверзије nbgenerate
. Да бисте спречили грешке приликом постављања и објављивања на ДевСите-у, додајте следеће при врху страница које треба да селективно укључују садржај:
{% if is_ipynb is not defined %}{% set is_ipynb=False %}{% endif %}
Затим можете да користите Јиња ознаке да контролишете који се садржај појављује у Цолаб-у, ДевСите-у или у оба. на пример:
# 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!'); ```
Примери виџета
Сајтови често дефинишу сопствене ДевСите виџете како би обухватили уобичајена понашања. Испод су неки примери виџета који користе променљиву is_ipynb
, која се може прилагодити вашој веб локацији.
Цолаб виџет дугмади за бележницу
Документација за програмере Еартх Енгине-а користи прилагођени виџет за доследно приказивање дугмади Покрени у Цолаб-у и Прикажи извор на ГитХуб-у на страницама ДевСите синхронизованим са Цолаб бележницама у ГитХуб-у.
Пример виџета одељка
Узорак виџета одељка пружа пример како да подесите секције са картицама за исечке кода представљене у више програмских језика или окружења. Виџет се брине само о укључивању Питхон исечака у Цолаб бележнице. Такође уклања ознаке које се користе за приказ секција са картицама приликом писања бележнице.