前回 から引き続き blog new コマンドの改善を続けている。
直接記事をポストしたいときは標準入力から記事の中身を受け取れるのは便利だけど、 自分の場合は VSCode ですぐに編集するのでまず空の標準入力を渡してその処理をキャンセルする。
system("blogsync post --custom-path #{path} #{opts.join(" ")} ongaeshi.hatenablog.com", in: IO::NULL)
そうすると記事の最初の一回目は必ず空の状態で post されることになるので、常に--draft
として作成する。(blog new から --draft
オプションは削除)
system("blogsync post --custom-path #{path} --draft #{opts.join(" ")} ongaeshi.hatenablog.com", in: IO::NULL)
blog new コマンドでは空記事の作成のみにとどめてブログへの投稿は blog commit コマンドで常に行うになった。 大分驚きが減ってすっきりしたオペレーションになったのではないか。
最終的な blog new コマンド。
desc "new PATH", "Create a new blog post with PATH" method_option :title, type: :string def new(path) Dir.chdir(BLOG_REPOSITORY_DIR) do opts = [] opts << "--title=\"#{options[:title]}\"" if options[:title] system("blogsync post --custom-path #{path} --draft #{opts.join(" ")} ongaeshi.hatenablog.com", in: IO::NULL) end end