Пасля гадоў будаўніцтва праграмнага забеспячэння і напісання тэхнічнай дакументацыі, я вырашыў стварыць блог, каб падзяліцца сваім вопытам і дапамагчы іншым на падобных падарожжах.
Выбраць платформу
Для мяне, гэта важна, каб мець як мінімальны рашэнне, як магчыма.У той час як будаўніцтва маёй собственнай Markdown-to-HTML выданне сцэнарый з'яўляецца ідэяй для будучыні, мой непасрэдны прынцып быў, каб атрымаць блог онлайн хутка.
Я не магу сказаць, што можна назваць шчаслівым шлях, калі вы ўдваіх кудысьці схаваліся і ніхто нічога не ведае.
- CMS (напрыклад, WordPress, Content Hub, Joomla і г.д.): Хоць платформы, такія як WordPress, маюць магутнасць, яны адчуваліся надзвычайнымі для блога статычнага контента.
- Jekyll: Гэтае праграмнае забеспячэнне выглядае ідэальна і шырока выкарыстоўваецца іншымі распрацоўшчыкамі, каб захоўваць блогі, але з-за маёй непаўторнасці з Ruby, я выбраў не выкарыстоўваць гэта.
- Hugo напісаны ў Go і выкарыстоўвае знакамітую сінтаксу шаблонаў Go (калі вы збіраецеся шмат коду ў Go), у той час як рэндэрэндуе старонкі ў Markdown (падобна Jekyll).
- 11ty, Astro, Hexo, і іншыя альтэрнатывы на аснове Node.js. Гэта справа перавагі, але асабіста, я вырашыў мінімізаваць выкарыстанне Node.js інструментаў. Хоць ёсць шмат магутных інструментаў, Node.js экасістэма вядомая для хуткага змянення, што часта прыводзіла мяне да не магу праводзіць старых праектаў, якія натуральна мелі шмат старых залежнасцяў.
Сцягнуць Hugo
Я выбраў Hugo як маю платформу для блогування.Калі я вырабіў значную колькасць дакументацыі на маіх мінулых працэсах, звязаных з праграмным забеспячэннем, я адчуваю сябе вельмі ўпэўненым, выкарыстоўваючы Markdown і тэрмін-базавы тэкставы аўдытар для маёй працы.
Загрузіць GitHub Repository
Раней я ўжо стварыў вэб-сайт GitHub Pages з файламі місць і падключыў дамен да яго, так што, каб папуляваць файлы ў існуючым рэпа, вам трэба ўвесці наступнае каманда:
hugo new site . --force
Гэта будзе заполняць рэпазітарны каталог з файламі, якія патрэбныя для запуску сайта Hugo. Пасля таго, што было неабходна ўсталяваць тэму і іншыя параметры ўhugo.toml
Пасля таго, як усё будзе наладжана, можна запусціць сервер, націснуўшы каманда:hugo server
Сцягнуць сервер у рэжыме развіцця
Цяпер сайт даступны зlocalhost
З таго часу, як я распрацоўваю на далёкім хмарным VM, доступ да локальнага сервера Hugo з дапамогайlocalhost
Гэта было неабходна, каб бяспечна выяўляць інстанцыю localhost для вашага свету - для такіх патрэбаў, зворотны проксі выкарыстоўваецца.
Хоць балансары нагрузкі і звонкія проксі, такія як Nginx, з'яўляюцца вельмі распаўсюджанымі і папулярнымі, я выбраўCaddyкаб абслугоўваць мой вэб-сайт, таму што ён усталюе SSL-сертыфікаты (праз Let's Encrypt) без ускладнення.CaddyГэта зроблена зCaddyfile
, дзе для домена цікавасці вы пішаце areverse_proxy
Узнагароджанне ў адпаведнасці з патрэбным портам:
test-blog-domain.com {
reverse_proxy localhost:1313
}
Пасля запуску Caddy з вышэйшай канфігурацыяй, сайт развіцця будзе даступны зhttps://test-blog-domain.com
(У той жа часA
DNS запісы дляtest-blog-domain.com
(Пасля перасылкі з IP-адрас кампаніі)
Додаваць тэму
Hugo мае некалькі бясплатных тэмаў, якія з'яўляюцца публічна даступнымі на GitHub. Што трэба рабіць, каб ўсталяваць адзін з іх, гэта клонуць рэпазітары з тэмай, а затым абнавіцьtheme
Параметры ўhugo.toml
Я выбраў тэму, якая называеццаcactus
Пасля ўстаноўкі, у мяне з'явіўся будынак, які скараціўся, што шаблон Google Analytics async не знойдзены:
Error: error building site: render: failed to render pages: render of "/" failed: "/home/user/projects/nexo-tech.github.io/themes/cactus/layouts/_default/baseof.html:3:3": execute of template failed: template: index.html:3:3: executing "index.html" at <partial "head.html" .>: error calling partial: execute of template failed: html/template:partials/head.html:47:16: no such template "_internal/google_analytics_async.html"
make: *** [Makefile:2: up] Error
Такая віза можа быць прадоўжана.github
Актыўная супольнасць Hugo, і многія праблемы — у тым ліку гэты Google Analytics error — маюць існуючыя патчы або дыскусіі на GitHub.
Пасля выпраўлення іншых абмежаванняў, сайт пачаў працаваць:
Размяшчэнне вэб-сайта ў CDN: GitHub Pages
Існуе шмат спосабаў размяшчэння статычнага сайта, і ў большасці выпадкаў, гэта патрабуецца, каб мець хост або сервер. Звычайна, яны не бясплатны або маюць абмежаваны план; аднак, ёсць выключэнні да гэтага, як GitHub Pages.
Усё, што вы чулі пра карысць пара раней - усяго толькі чуткі і павер'і.gh-pages
На жаль, ёсцьactionsНапрыклад, для таго, каб зрабіць гэта, трэба:
- actions-hugo by Shohei Ueda. Просты спосаб ўстаноўкі Hugo ў асяроддзі GitHub Actions
- Таксама, па Shohei Ueda, гэтае дзеянне прынёс статычныя актывы да вызначанай галіны.
Вось код GitHub Action Workflow, які будзе размяшчаць Hugo на gh-пажаданні.public
Адміністрацыя, перш чым працавацьgh-pages
Укладайце больш ва ўласную журналістыку, СМІ і змагайцеся за свабоду слова.Settings > Actions > General)
name: Build and Deploy Hugo
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: 'latest'
extended: true
- name: Build site
run: hugo --minify
- name: Add CNAME file
run: cp CNAME public/CNAME
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
publish_branch: gh-pages
Калі размяшчэнне праходзіць, сайт трэба загрузіць на GitHub CDN. Не забудзьцеся ўсталяваць GitHub Pages для галіны, якая змяшчае ўбудаваныя артэфакты ў выпадку, калі сайт не працуе.
У нашай багатай беларускай літаратуры няма другога такога твора, які па энцыклапедычнасці выяўлення ў ім нацыянальнага, так набліжаўся б да "Новай зямлі".
Супольныя ресурсы
- Репазітар для гэтага сайта
- Урокі хуткага старта
- Загрузіць DNS для GitHub Pages
- Катэгорыя для Hugo
- Загрузіць Google Analytics ў Hugo
- Загрузіць Caddy Reverse Proxy Quick Start