[LT] Blogink su R

R netinkamas darbui su Big Data, administravimui, mašininio mokymo algoritmams produkcijoje, back-end’ui, produkcinio lygio web aplikacijoms. Todėl lieka tik patvirtinti faktą, kad su R pagalba negalima sukurti asmeninio blogo. Jei visais šiais dalykais netikite, skaitykite toliau - papasakosiu apie tai, kaip pasigaminti asmeninę svetainę naudojant tik R sintaksę, turėti pilną sveitainės kontrolę, HTTPS, hostingą, versijavimą ir už tai nemokėti nė cento.

Kurti HTTP dokumentus su R galima jau seniai - ačiū rmarkdown. Tačiau prieš daugiau nei du metus pasirodė labai stiprus rmarkdown paturbinimas, leidžiantis R vartotojams būti ir Web developeriais - blogdown (iš esmės naudojant R galima dirbti ir kunigu-suvirintoju). Šis paketas palaiko pačius populiariausius statinių web puslapių kūrimo framework’us - hugo, jekyll, hexo. Todėl užtenka pasirinkti svetainės karkasą ir važiuojam! Savo blogui aš pasirinkau academic temą skirtą hugo.

Nuo ko pradėti? Dokumentaciją rasite čia, bet galite tiesiog įvykdyti šias komandas R aplinkoje:

install.packages('blogdown')
blogdown::install_hugo()

Tuomet RStudio (taip, su Rstudio tai daryti patogiausia) lange paspauskite:

New Project → Website using blogdown → Užpildykite reikalingus laukus ir pasirinkite temą (pvz. yihui/hugo-lithium arba gcushen/hugo-academic)

Savąją svetainę peržiūrėti galite naudodami šią funkciją:

blogdown:::serve_site()

Naujo posto rašymas:

blogdown:::new_post_addin()

Konfiguracijai naudojami toml plėtinio failai, turinys kuriamas markdown sinktakse ir guli /content direktorijoje. Sugeneravus svetainę, visi reikalingi failai atsiranda /public direktorijoje - tuomet galima leisti web serverį ir peržiūrėti naršyklėje (blogdown tai padaro už jus naudodamas servr biblioteką). Kiekvieną kartą išsaugojus turinį (.md arba konfiguracinius failus), svetainė persikraus žaibiškai greitai ir naršyklėje matysite naujausią versiją.

Ok, bet kas toliau? Juk neatidarinėsim porto į išorę iš lokalaus tinklo?

Dauguma žmonių yra pažįstami su github’u. Tačiau gali būti, jog negirdėjote apie GitHub pages funkcionalumą (kitu atveju turbūt nebūtumėte atsidarę šio įrašo). Viskas labai detaliai paaiškinama šioje dokumentacijoje, tik naudojant blogdown reikia padaryti dar vieną papildomą triuką - sukurti tuščią .nojekyll failą public (jūsų sveitainės) repositorijoje. Taigi, susumuojant:

  • Užsiregistruojame github.com
  • Sukuriame repositoriją, kuriose laikysite kodą (private, vardas gali būti bet koks)
  • Sukuriame repositoriją, kuriose laikysite viešai pasiekiamą svetainės turinį (public, vardas turi būti jūsų_profilis.github.io)
  • Atsiklonuojame kodo repositoriją ir sudedame projekto turinį į ją lokaliai
  • Konfiguracijoje config.toml pakeičiame: baseurl = “https://jūsų_profilis.github.io/”
  • Ištriname public direktorijos turinį
  • Įdedame public direktoriją kaip submodulį:
git submodule add -f -b master https://github.com/jūsų_profilis/jūsų_profilis.github.io.git public
  • Atnaujiname kodo dalies github repositoriją:
git add .
git commit -m "Initial commit"
git push -u origin master
  • Sugeneruojame public turinį R aplinkoje:
blogdown::build_site()
  • Sukuriame tuščią failą .nojekyll, kad github’as žinotų, jog tai ne jekyll template’as
  • Įeiname į github pages repositoriją (atsimenate - ją pridėjome kaip modulį). Sustumiame visą turinį į github’ą:
cd public
git add .
git commit -m "Build website"
git push origin master

Viskas! Savo svetainės turinį dabar turėtumėte pasiekti https://jūsų_profilis.github.io/ adresu. Jeigu kur nors strigsite - klauskite arba RTFM.

Gal kai kuriems kils klausimų, kaip nusiimti apačioje esantį “Powered by the Academic theme for Hugo.” užrašą? Taip, tai įmanoma nesunkiai padaryti šiek tiek pagooglinus. Aš asmeniškai jį nutariau palikti - pagarba Hugo ir Academic temos kūrėjams. Dabar galite eiti pirkti domeną ir pririšti jį prie ką tik susikurto github puslapio - nebus jokių reklamų, o SSL sertifikatą taip pat sugeneruos pats GitHub’as.

Kęstutis Daugėla
Kęstutis Daugėla
Analyst/Developer/Deadlifter

Related