Пасля гадоў будаўніцтва праграмнага забеспячэння і напісання тэхнічнай дакументацыі, я вырашыў стварыць блог, каб падзяліцца сваім вопытам і дапамагчы іншым на падобных падарожжах. Выбраць платформу Для мяне, гэта важна, каб мець як мінімальны рашэнне, як магчыма.У той час як будаўніцтва маёй собственнай 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 Сцягнуць сервер у рэжыме развіцця Цяпер сайт даступны з З таго часу, як я распрацоўваю на далёкім хмарным VM, доступ да локальнага сервера Hugo з дапамогай Гэта было неабходна, каб бяспечна выяўляць інстанцыю localhost для вашага свету - для такіх патрэбаў, зворотны проксі выкарыстоўваецца. localhost localhost Хоць балансары нагрузкі і звонкія проксі, такія як Nginx, з'яўляюцца вельмі распаўсюджанымі і папулярнымі, я выбраў каб абслугоўваць мой вэб-сайт, таму што ён усталюе SSL-сертыфікаты (праз Let's Encrypt) без ускладнення. Гэта зроблена з , дзе для домена цікавасці вы пішаце a Узнагароджанне ў адпаведнасці з патрэбным портам: Caddy Caddy Caddyfile reverse_proxy test-blog-domain.com { reverse_proxy localhost:1313 } Пасля запуску Caddy з вышэйшай канфігурацыяй, сайт развіцця будзе даступны з (У той жа час DNS запісы для (Пасля перасылкі з IP-адрас кампаніі) https://test-blog-domain.com A test-blog-domain.com Додаваць тэму Hugo мае некалькі бясплатных тэмаў, якія з'яўляюцца публічна даступнымі на GitHub. Што трэба рабіць, каб ўсталяваць адзін з іх, гэта клонуць рэпазітары з тэмай, а затым абнавіць Параметры ў Я выбраў тэму, якая называецца Пасля ўстаноўкі, у мяне з'явіўся будынак, які скараціўся, што шаблон Google Analytics async не знойдзены: theme hugo.toml cactus 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 Такая віза можа быць прадоўжана. Актыўная супольнасць Hugo, і многія праблемы — у тым ліку гэты Google Analytics error — маюць існуючыя патчы або дыскусіі на GitHub. 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