0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

qiita-syncで下書きしたい

Posted at

GitHub連携でQiita記事を素敵な執筆環境で! #Python - Qiita で、
qiita-syncという素敵な執筆環境があることを知り、便利に使わせてもらっています。
(使う方は、記事のコメント欄にある「Github Actions の読み書きの許可」も併せてやりましょう)

しかし、自分の執筆フローに一部合わないところがありました。特に、次のことを実現する方法が紹介されていませんでした。

  • 執筆中の記事は公開せず、限定公開にもしたくない
  • ある程度記事が書けたら公開したい
  • 執筆のためのマシンは複数あるので、執筆中の記事もgithubで管理したい

qiita-syncのソースコードを読み、実現方法が分かりましたので、本記事ではそれを紹介します。

結論

次の条件にマッチするファイル名は、qiita-syncのsync対象外になる。

  • ドットから始まるフォルダ名の配下にある、任意のファイル名

  • qiita-content/.draft/draft-file.md
  • qiita-content/.draft/folder1/draft-file.md

qiita-contentはリポジトリフォルダです。(qiita-content/.github フォルダが存在する形)

解説

ryokat3/qiita-syncのソースコード( https://github.com/ryokat3/qiita-sync/blob/339db7f95a18c3e77a9a59ef4d4f65ee6f5781fe/qiita_sync/qiita_sync.py#L112 )を見ると、次のように定義されています。

DEFAULT_EXCLUDE_GLOB = ['**/README.md', '.*/**/*.md']

この変数は、最終的に、sync対象外とするファイルを決定するために使われているので、
これを活用すれば良いこととなります。

他の方法1

DEFAULT_INCLUDE_GLOB = ['**/*.md']

という変数が定義されているので、これにマッチしなければ同期対象外となります。
つまり、拡張子をmd以外にすればよいのです。

  • draft-file.md.draft

ほかの方法2

DEFAULT_EXCLUDE_GLOB は、qiita-syncコマンドラインオプション-e に対応しているので、
.github/workflows/qiita_sync.ymlファイルと.github/workflows/qiita_sync_check.ymlファイルを次のように編集すればよいでしょう。

  • README.md と qiita-content/draft フォルダ配下のファイルは同期対象外にしたい場合
qiita_sync.yml 編集前
      - name: Run qiita-sync
        run: |
          qiita_sync sync .
        env:
          QIITA_ACCESS_TOKEN: ${{ secrets.QIITA_ACCESS_TOKEN }}
qiita_sync.yml 編集後
      - name: Run qiita-sync
        run: |
          qiita_sync sync -e '**/README.md' 'draft/*' .
        env:
          QIITA_ACCESS_TOKEN: ${{ secrets.QIITA_ACCESS_TOKEN }}
qiita_sync_check.yml 編集前
      - name: Run qiita-sync check
        run: |
          qiita_sync check . > ./qiita_sync_output.txt
          cat ./qiita_sync_output.txt
          [ ! -s "qiita_sync_output.txt" ] || exit 1
qiita_sync_check.yml 編集後
      - name: Run qiita-sync check
        run: |
          qiita_sync check -e '**/README.md' 'draft/*' . > ./qiita_sync_output.txt
          cat ./qiita_sync_output.txt
          [ ! -s "qiita_sync_output.txt" ] || exit 1
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?