Hōʻike ma ke ʻano he code, a i ʻole No ke aha ʻaʻole wau e hoʻohana hou iā Powerpoint

Hōʻike ma ke ʻano he code, a i ʻole No ke aha ʻaʻole wau e hoʻohana hou iā Powerpoint

Manaʻo wau ua hāʻawi au i mau hanana hōʻikeʻike i nā hoa hana, nā mea kūʻai aku, a me ka ʻōlelo lehulehu i kaʻu ʻoihana IT. No nā makahiki he nui, ʻo Powerpoint kahi koho kūlohelohe a hilinaʻi iaʻu ma ke ʻano he mea hana paheʻe. Akā i kēia makahiki ua hoʻololi maikaʻi ke kūlana. Mai Pepeluali a Mei, ua loaʻa iaʻu ka manawa e kamaʻilio ai ma nā hālāwai kūkā ʻelima, a pono e hoʻomākaukau ʻia nā kiʻi paheʻe no nā hōʻike i ka manawa pōkole, akā me ke ʻano kiʻekiʻe. Ua ala mai ka nīnau e pili ana i ka hāʻawi ʻana i kēlā ʻāpana o ka hana e pili ana i ka hoʻolālā ʻike maka o nā paheʻe i nā poʻe ʻē aʻe. Ua ho'āʻo wau e hana me kahi mea hoʻolālā, e hoʻouna ana i nā faila .pptx ma ka leka uila, akā ua lilo ka hana i haunaele: ʻaʻohe mea i ʻike i ke ʻano o nā paheʻe he "hou", a ua "neʻe" ka hoʻolālā ma muli o ka ʻokoʻa o Powerpoint. nā mana a me nā font ma kā mākou mīkini. A ua hoʻoholo wau e hoʻāʻo i kahi mea hou. Ua ho'āʻo au, a mai ia manawa ʻaʻole au i noʻonoʻo e hoʻi i Powerpoint.

He aha kā mākou makemake

Ma kahi o hoʻokahi makahiki a me ka hapa i hala aku nei, ua kāpae kā mākou hui i ka hoʻohana ʻana iā Word e hana i nā palapala papahana, me ka loaʻa ʻana o nā pilikia like: ʻoiai ua maikaʻi ʻo Word no ka paʻi ʻana i kahi palapala liʻiliʻi, i ka ulu ʻana o ka leo, piʻi nā pilikia me ka hui pū ʻana a loaʻa ka kiʻekiʻe a hoʻolālā hoʻokahi. Ua hāʻule kā mākou koho Ascii Kahuna, a ʻaʻole mākou e pau ka hauʻoli i kēia koho, akā he kumuhana kēia no kahi ʻatikala kaʻawale. Ma ka manawa like, ua aʻo mākou i ka maikaʻi o kekahi o nā kumu DevOps o "nā mea āpau e like me ke code", no laila ua maopopo loa ke koho ʻana i nā koi no ka ʻenehana hou no ka hana ʻana i nā kiʻi paheʻe.

  1. Pono ka hōʻike ʻana he faila kikokikona ma kahi ʻōlelo markup.
  2. ʻO kā mākou mau paheʻe e pili ana i nā papahana hoʻomohala, no laila e maʻalahi ka markup e hoʻokomo, me ka ʻole o ka hoʻohana ʻana i nā ʻōnaehana waho
    • nā ʻāpana code me ka syntax highlighting,
    • nā kiʻi maʻalahi ma ke ʻano o nā ʻano geometric i hoʻopili ʻia e nā pua,
    • Nā kiʻi UML, nā kiʻi kahe a me nā mea hou aku.
  3. Pono e mālama ʻia ke kiʻi hōʻike i loko o kahi ʻōnaehana mana mana.
  4. Pono e hana ʻia ka hōʻoia a me ka hui ʻana o nā paheʻe i hoʻopau ʻia ma kahi ʻōnaehana CI.

I kēia lā, ʻelua mau koho maʻamau no ka hana ʻana i nā kiʻi paheʻe ma nā ʻōlelo markup: package mea hoʻomālamalama no LaTeX a i ʻole kekahi o nā papa hana no ka hana ʻana i nā paheʻe me ka HTML/CSS (HōʻikeJS, haʻi, deck.js a me nā mea ʻē aʻe he nui).

ʻOiai aia koʻu ʻuhane ma LaTeX, ua ʻōlelo koʻu noʻonoʻo ʻo ke koho ʻana i kahi hopena ʻaʻole wau wale nō ka mea e hoʻohana ai ma ka ʻaoʻao o kahi hopena i kamaʻāina i kahi pōʻai ākea o nā kānaka. ʻAʻole ʻike ka poʻe a pau iā LaTeX, a inā ʻaʻole pili kāu hana i kēlā me kēia lā i ke kākau ʻana i nā ʻatikala ʻepekema, a laila ʻaʻole paha ʻoe e loaʻa ka manawa e hoʻokomo iā ʻoe iho i ka honua nui a paʻakikī o kēia ʻōnaehana.

Eia naʻe, ʻaʻole ʻo ka mākaukau o HTML/CSS he mākau laha loa: ʻO wau, no ka laʻana, ʻaʻole wau i mākaukau piha. ʻO ka mea pōmaikaʻi, hele mai ka AsciiDoctor maʻamau i ka hoʻopakele: kahi mea hoʻololi asciidoctor-revealjs hiki iā ʻoe ke hana i nā paheʻe RevealJS me ka hoʻohana ʻana i ka markup AsciiDoctor. A he maʻalahi ke aʻo a hiki i nā mea a pau!

Pehea e helu ai i nā kiʻi paheʻe

No ka hoʻomaopopo ʻana i ke ʻano o ka coding slides ma AsciiDoctor, ʻo ke ala maʻalahi ka hāʻawi ʻana i nā hiʻohiʻona kikoʻī. ʻO kēia nā mea a pau mai nā kiʻi paheʻe maoli aʻu i hana ai no kaʻu mau hōʻikeʻike kūkā i kēia makahiki.

He paheʻe me ke poʻo inoa a me ka papa inoa o nā mea e wehe ana kekahi ma hope o kekahi:

== Зачем нам Streams API?

[%step]
* Real-time stream processing
* Stream-like API (map / reduce)
* Под капотом:
** Автоматический offset commit
** Ребалансировка
** Внутреннее состояние обработчиков
** Легкое масштабирование

hopena

Hōʻike ma ke ʻano he code, a i ʻole No ke aha ʻaʻole wau e hoʻohana hou iā Powerpoint

ʻO ke poʻo a me ka snippet code kumu me ka syntax highlighting:

== Kafka Streams API: общая структура KStreams-приложения

[source,java]
----
StreamsConfig config = ...;
//Здесь устанавливаем всякие опции

Topology topology = new StreamsBuilder()
//Здесь строим топологию
....build();
----

hopena

Hōʻike ma ke ʻano he code, a i ʻole No ke aha ʻaʻole wau e hoʻohana hou iā Powerpoint

I ka hoʻomākaukau ʻana no ke kamaʻilio ʻana, hoʻoponopono hou ʻia nā code demos, no laila, ʻo ka hiki ke kope koke a hoʻopili pololei i ka "code raw" i loko o kahi paheʻe he mea waiwai nui, e hōʻoiaʻiʻo ana i ka wā o ka demo me ka hopohopo ʻole e pili ana i ka syntax highlighting.

Poʻo inoa, kiʻi kiʻi a me nā kikokikona (hana ʻia ka hoʻolālā ma ka paheʻe i loko o nā cell Nā papa ʻaina AsciiDoctor):

== Kafka Streams in Action

[.custom-style]
[cols="30a,70a"]
|===
|image::KSIA.jpg[]
|
* **William Bejeck**, +
“Kafka Streams in Action”, November 2018
* Примеры кода для Kafka 1.0
|===

hopena

Hōʻike ma ke ʻano he code, a i ʻole No ke aha ʻaʻole wau e hoʻohana hou iā Powerpoint

I kekahi manawa ʻaʻole pono ke poʻo inoa, a no ka hōʻike ʻana i kou manaʻo pono ʻoe i kahi kiʻi pale piha:

[%notitle]
== Жить в легаси нелегко

image::swampman.jpg[canvas, size=cover]

hopena

Hōʻike ma ke ʻano he code, a i ʻole No ke aha ʻaʻole wau e hoʻohana hou iā Powerpoint

ʻO ka manawa pinepine e pono ke kākoʻo ʻia kahi manaʻo e kahi kiʻi maʻalahi, ma ke ʻano o "nā huinahā pili i nā pua." ʻO ka mea pōmaikaʻi, ua hoʻohui ʻia ʻo AsciiDoctor me ka ʻōnaehana Hōʻike kiʻi — he ʻōlelo e hiki ai iā ʻoe ke wehewehe i nā kiʻi kiʻi ma muli o ka wehewehe ʻana o nā vertices a me nā pilina ma waena o lākou. Lawe ʻo Graphviz i kahi pihi aʻo, akā ma muli o nā hiʻohiʻona i hāʻawi ʻia, maʻalahi loa ke hana! Penei kona ano:

== Пишем “Bet Totalling App”

Какова сумма выплат по сделанным ставкам, если сыграет исход?

[graphviz, "counting-topology.png"]
-----
digraph G {
graph [ dpi = 150 ];
rankdir="LR";
node [fontsize=18; shape="circle"; fixedsize="true"; width="1.1"];
Store [shape="cylinder"; label="Local Store"; fixedsize="true"; width="1.5"]
Source -> MapVal -> Sum -> Sink
Sum -> Store [dir=both; label=" n "]
{rank = same; Store; Sum;}
}
-----

hopena

Hōʻike ma ke ʻano he code, a i ʻole No ke aha ʻaʻole wau e hoʻohana hou iā Powerpoint

Inā pono e hoʻoponopono i ka caption ma ke kiʻi, e hoʻololi i ke kuhikuhi o ka pua, a me nā mea ʻē aʻe, hiki ke hana pololei i ka code hōʻike, ma kahi o ke kiʻi hou ʻana i ke kiʻi ma kahi a hoʻokomo hou i loko o ka slide. Hoʻonui nui kēia i ka wikiwiki o ka hana ʻana i nā paheʻe.

ʻO kahi laʻana paʻakikī:

== Невоспроизводимая сборка
[graphviz, "unstable-update.png"]
-----
digraph G {
  rankdir="LR";
  graph [ dpi = 150 ];
  u -> r0;
  u[shape=plaintext; label="linter updaten+ 13 warnings"]
  r0[shape=point, width = 0]
  r1 -> r0[ arrowhead = none, label="master branch" ];
  r0-> r2 [];   b1 -> b4;  r1->b1
  r1[label="150nwarnings"]
  b1[label="± 0nwarnings"]
  b4[label="± 0nwarnings"]
  b4->r2
  r2[label="163nwarnings", color="red", xlabel=<<font color="red">merge blocked</font>>]
  {rank = same; u; r0; b4;}
}
-----

hopena

Hōʻike ma ke ʻano he code, a i ʻole No ke aha ʻaʻole wau e hoʻohana hou iā Powerpoint

Ma ke ala, he mea maʻalahi ke hoʻokolohua me Graphviz a me ka debug kiʻi ma ka ʻaoʻao ʻO Graphviz ma ka pūnaewele.

ʻO ka mea hope loa, inā pono ʻoe e hoʻokomo i kahi kahe kahe, ka papa papa a i ʻole ke kiʻi maʻamau i loko o kahi paheʻe, a laila hiki i kahi ʻōnaehana i hoʻohui ʻia me AsciiDoctor ke hoʻopakele, PlantUML. Ua kākau koʻu hoa hana ʻo Nikolai Potashnikov e pili ana i nā mana nui o PlantUML pou kaawale.

ʻO ka hoʻololi ʻana i ka papahana hōʻike i ke code i mālama ʻia ma kahi ʻōnaehana mana mana e hiki ai ke hoʻonohonoho i ka hana hui ma ka hōʻike, ʻo ka mea mua, e hoʻokaʻawale i nā hana o ka hana ʻana i ka ʻike a me ka hoʻolālā. Hōʻike ʻia ka hoʻolālā ʻana o nā kiʻi paheʻe (fonts, backgrounds, indents) ma RevealJS me ka hoʻohana ʻana i CSS. ʻOi aku ka maikaʻi o koʻu akamai pilikino me CSS keia gif - akā, ʻaʻole ia he mea makaʻu ke loaʻa nā poʻe e hana me CSS ʻoi aku ka dexterously a me ka wikiwiki ma mua oʻu. ʻO ka hopena, ua ʻike ʻia me ka hiki koke ʻana o ka manawa kūpono no kahi hōʻike, hiki iā mākou ke hana ma nā faila like ʻole i ka manawa like ma o Git a hoʻomohala i ka wikiwiki o ka hana like ʻole i ka wā e hoʻouna ai i nā faila .pptx ma ka leka uila.

Ke kūkulu ʻana i kahi palapala HTML me nā kiʻi paheʻe

Nui nā kumu kikokikona maʻamau, akā pehea ʻoe e hōʻuluʻulu ai iā lākou i loko o ka hōʻike ponoʻī?

ʻO AsciiDoctor kahi papahana i kākau ʻia ma Ruby, a he nui nā ala e holo ai. ʻO ka mea mua, hiki iā ʻoe ke hoʻokomo i ka ʻōlelo Ruby a holo pololei i ka asciidoctor, ʻo ia paha ka mea kokoke loa i nā mea hoʻomohala Ruby.

Inā ʻaʻole ʻoe makemake e hana me ka hoʻokomo ʻana iā Ruby, hiki iā ʻoe ke hoʻohana i ke kiʻi docker asciidoctor/docker-asciidoctor, i loko o laila, i ka wā i hoʻokuʻu ʻia ai, hiki iā ʻoe ke hoʻohui i ka waihona me nā kumu papahana ma o VOLUME a loaʻa ka hopena ma kahi i hāʻawi ʻia.

ʻO ke koho aʻu i koho ai me he mea lā ʻaʻole i manaʻo ʻia, akā ʻo ia ka mea maʻalahi iaʻu ma ke ʻano he mea hoʻomohala Java. ʻAʻole pono ia e hoʻokomo iā Ruby a i ʻole docker, akā hiki iā ʻoe ke hana i nā kiʻi paheʻe me ka hoʻohana ʻana i kahi palapala Maven.

ʻO ka manaʻo o ka papahana ʻO JRuby - He maikaʻi loa ka hoʻokō Java o ka ʻōlelo Ruby e hiki ai iā ʻoe ke holo kokoke i nā mea i hana ʻia no Ruby ma kahi mīkini Java, a ʻo ka holo ʻana i ka AsciiDoctor kekahi o nā mea maʻamau o JRuby.

loaʻa nui asciidoctor-maven-plugin hiki iā ʻoe ke hōʻiliʻili i nā palapala AsciiDoctor i ʻāpana o kahi papahana Java (a mākou e hoʻohana ikaika nei). I ka manawa like, hoʻoiho ʻia ʻo AsciiDoctor a me JRuby e Maven, a holo ʻo AsciiDoctor i ke kaiapuni JRuby: ʻaʻohe pono e hoʻokomo i kekahi mea ma ka mīkini! (Koe ka pūʻolo graphviz, pono inā makemake ʻoe e hoʻohana i nā kiʻi GraphViz a i ʻole PlantUML.) E kau wale i kāu faila .adoc i loko o kahi waihona. src/main/asciidoc/. ^ E Ha yM. Eia laʻana o ka pomnikʻohi paheʻe me nā kiʻi.

E hoʻohuli i nā paheʻe i PDF

ʻOiai ua lawa pono ka mana HTML o nā paheʻe, pono nō e loaʻa kahi mana PDF o nā paheʻe. ʻO ka mea mua, aia i kekahi mau hālāwai kūkā ʻaʻole e hāʻawi i ka mea haʻiʻōlelo i ka manawa e hoʻopili ai i kāna kamepiula ponoʻī, koi lākou i nā slides "ma ka pptx a i ʻole pdf format," me ka manaʻo ʻole aia lākou i HTML. ʻO ka lua, he ʻano maikaʻi ia e hoʻouna i nā mea hoʻonohonoho i kahi mana i hoʻoponopono ʻole ʻia o kāu mau paheʻe e like me ka mea i hōʻike ʻia ma ka hōʻike, ma ke ʻano PDF no ka hoʻolaha ʻana i ka faila i nā mea kūkā.

ʻO ka mea pōmaikaʻi, mālama ka Node.js i kēia hana. ʻopepa, kūkulu ʻia ma ke kumu Kūleʻa — ʻōnaehana automation no ka mālama ʻana i ka polokalamu kele pūnaewele Chrome. Hiki iā ʻoe ke hoʻololi i ka hōʻike RevealJS i PDF me ke kauoha

node decktape.js -s 3200x1800 --slides 1-500 
  reveal "file:///index.html?fragments=true" slides.pdf  

ʻElua mau hoʻopunipuni i ka wā e hoʻomaka ai i ka decktape, a mākou e hana ai ma o ka hoʻāʻo a me ka hewa:

  • hoʻonā ma o ka ʻāpana -s pono e kuhikuhi ʻia me ka palena ʻelua, inā ʻaʻole hiki ke pilikia me nā hopena hoʻololi

  • i ka URL o ka HTML mana o ka hōʻike ʻana pono ʻoe e kau i kahi ʻāpana ?fragments=true, e hana i kahi palapala PDF kaawale no kēlā me kēia mokuʻāina waena o kāu paheʻe (no ka laʻana, ʻelima mau ʻaoʻao no ʻelima mau pōkā inā e hōʻike ʻia lākou ma hope o kekahi). E ʻae kēia iā ʻoe e hoʻohana i kēlā PDF ma kāna iho ma ke ʻano he hōʻike i ka wā o kahi hōʻike.

Hoʻopili ʻakomi a hoʻopuka ʻia ma ka pūnaewele

He mea maʻalahi ke hōʻuluʻulu ʻokoʻa ʻia nā paheʻe i ka wā e hoʻololi ʻia ai ka ʻōnaehana mana mana, a ʻoi aku ka maʻalahi ke kau ʻia nā paheʻe i hōʻuluʻulu ʻia ma ka Pūnaewele no ka hoʻohana lehulehu. Hiki ke "pāʻani" maʻalahi i nā kiʻi mai ka Pūnaewele i mua o ka lehulehu mai kekahi mīkini i pili i ka Pūnaewele a me kahi projector.

No ka mea, hoʻohana mākou iā GitHub i kā mākou hana, ʻo ke koho kūlohelohe o kahi ʻōnaehana CI TravisCI, a no ka hoʻokipa ʻana i nā hōʻike i hana ʻia - github.io. ʻO ka manaʻo ma hope o github.io ʻo kēlā me kēia ʻikepili static i kau ʻia i kahi lālā gh-pages o kāu papahana ma GitHub, loaʻa ma <ваше имя>.gihub.io/<ваш проект>.

Hoʻopiha i ka faila hoʻonohonoho TravisCI, me ka hoʻopili ʻana i ka mana HTML o ka ʻaoʻao me ka hoʻohana ʻana iā Maven, ka hoʻololi ʻana i PDF me ka decktape, a me ka hoʻouka ʻana i nā hopena i kahi pae. gh-pages no ka hoʻolaha ʻana ma github.io, ʻano like no laila,.

No ke kūkulu ʻana i ia papahana ma ka ʻaoʻao TravisCI, pono ʻoe e hoʻonohonoho i nā ʻano hoʻololi kaiapuni

  • GH_REF — waiwai like github.com/inponomarev/csa-hb
  • GH_TOKEN — Hōʻailona komo ʻo GitHub. Hiki iā ʻoe ke loaʻa iā ia mai GitHub i kāu hoʻonohonoho ʻaoʻao, Nā ʻōkuhi Developer -> Personal Access Tokens. Inā ʻoe e hoʻouka i kahi hōʻike i kahi waihona lehulehu, a laila no kēia hōʻailona ua lawa ia e kuhikuhi i ka pae komo wale nō "Access public repositories".
  • GH_USER_EMAIL / GH_USER_NAME — inoa/ka leka uila no ka mea e hoʻokō ʻia ai ka pana ʻana i ke kaula gh-pages.

No laila, ʻo kēlā me kēia hana o ka code hōʻikeʻike ma GitHub ka hopena i nā kiʻi paheʻe i kūkulu hou ʻia i nā palapala HTML a me PDF a hoʻouka hou ʻia i github.io. (ʻOiaʻiʻo, pono ʻoe e hoʻouka i ka github.io i kēlā mau hōʻike āu e makemake ai e hoʻolaha i ka lehulehu.)

Nā laʻana o nā papahana

ʻO ka mea hope loa, eia nā loulou i kekahi mau hiʻohiʻona o nā papahana hōʻikeʻike me nā palapala Maven maʻamau a me ka hoʻonohonoho CI no Travis-CI, hiki ke hoʻohana ʻia a hoʻohana ʻia i ka hana ʻana i kāu mau papahana hōʻike.

Aloha Powerpoint! Manaʻo wau ʻaʻole pono wau iā ʻoe no nā hōʻike ʻenehana :)

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka