Giter VIP home page Giter VIP logo

hatena-blog-workflows-boilerplate's Introduction

HatenaBlog Workflows Boilerplate(β)

  • このBoilerplateは、企業がはてなブログで技術ブログを運営する際のレビューや公開作業など、運営ワークフローを支援する目的で作成しています
  • GitHub 上で、はてなブログとの記事の同期、下書きの作成・編集・公開、公開記事の編集などを行うことができます。下書きの作成時にプルリクエストが作成されるため、記事のレビューなどの業務のワークフローに組み込むことが容易になります
  • 本機能はベータ版です。正常に動作しない可能性がありますが、予めご了承下さい

セットアップ

  1. blogsync.yamlの各種項目を記述してください
    • <BLOG DOMAIN> にはブログのドメインを指定してください
    • <BLOG OWNER HATENA ID> にはブログのオーナー(ブログ作成者)のはてなIDを指定してください
<BLOG DOMAIN>:
  username: <BLOG OWNER HATENA ID>
default:
  local_root: entries
  1. GitHub リポジトリの設定 「Secrets and variables > actions > Repository variables」 から以下のVariableを登録する
    • Name: BLOG_DOMAIN
    • Value: ブログのドメインを指定してください 例) staff.hatenablog.com
  2. GitHub リポジトリの設定 「Secrets and variables > actions > Repository Secrets」 から以下のSecretを登録する
    • Name: OWNER_API_KEY
    • Secret: ブログのオーナーはてなアカウントの APIキーを指定してください
      • APIキーは、ブログオーナーアカウントでログイン後、アカウント設定 よりご確認いただけます
  3. GitHub リポジトリの設定 「Actions > General」 の Workflow permissions の設定を以下の通り変更する
    • Read and write permissions を選択する
    • Allow GitHub Actions to create and approve pull requests にチェックを入れる
  4. リポジトリにはてなブログの記事を同期させる
    • Actions から initialize を選択する
    • Run workflow をクリック
    • Branch: main が指定されていることを確認し、Run workflowボタンをクリック
    • 全記記事が含まれたプルリクエストが作成されます。これをマージしてはてなブログとリポジトリの状況を同期させてください

想定ワークフロー

このツールで想定している下書き作成から記事公開までのワークフローは以下のとおりです。

  1. 下書きを作成する
  2. 下書き記事をプルリクエスト上で編集する
  3. 適宜レビューなどを行い、通れば次の公開手順に進む
  4. 下書き記事を公開する

手順の詳細

下書きの作成

下書きの作成方法は以下の2通りの方法があります。

  • ブログメンバーが個人のアカウントで投稿する(記事の署名は個人のアカウントになります)
  • ブログオーナーのアカウントで投稿する(記事の署名はブログオーナーアカウントになります)

それぞれ、下書き作成の手順が異なります。ブログの運営方針や記事の内容に沿った方法を選択してください。

ブログメンバーが個人のアカウントで投稿する場合

  1. 投稿したいブログの編集画面を開く
  2. 下書き記事の記事タイトルを {{username}}-{{日付}} 等、ユニークな記事タイトルに設定し、クリップボードにコピーしておく
  3. 下書きを投稿する
  4. Actions から pull draft from hatenablogを選択し、Draft Entry Titleに先程コピーしたタイトルを設定、Branch: mainに対して実行する
  5. 投稿した下書きを含むプルリクエストが作成される

ブログオーナーのアカウントで投稿する場合

  1. Actions から create draft を選択し、Titleに記事タイトルを設定、Branch: mainに対して実行する
  2. 作成した下書きを含むプルリクエストが作成される

下書き記事の編集

  • 手順「下書きの作成」で作成したプルリクエスト上で記事を編集してください
  • はてなブログでプレビューできるようにするため、下書き記事に限りプッシュされた時点ではてなブログに同期されます
  • 記事の編集画面の URL は、プルリクエストに記載されています。編集画面に遷移した後、下書きプレビューの URL を発行し、プルリクエストの概要に記載しておくとプレビューが容易になります

下書き記事の公開

  • 下書き記事の Draft: true 行を削除し、プルリクエストを main ブランチにマージすると記事がはてなブログで公開されます
  • 記事を公開すると、下書き記事は 下書き記事用ディレクトリ draft_entries から 公開記事用entries ディレクトリに移管されます

既存記事を修正する場合

  • 修正ブランチを作成し、main ブランチにマージすると修正がはてなブログに反映されます

トラブルシューティング

はてなブログ側のデータとリポジトリのデータとで差分が発生した場合

はてなブログのWebの編集画面から記事を更新するなど、はてなブログ側のデータとリポジトリのデータに差異が発生してしまう場合があります。 この場合、 Actions の pull from hatenablog を選択、Branch: mainに対して実行してください。 実行すると、リポジトリの更新日時以降に更新された公開記事のデータを更新するプルリクエストが作成されます。 これをマージすることで、最新のデータに更新することができます。

workflow に関する詳細

hatena-blog-workflows-boilerplate's People

Contributors

airreader avatar halkt avatar shuzon avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.