Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

リソースを yaml 化する #6

Closed
osyo-manga opened this issue Feb 15, 2014 · 37 comments
Closed

リソースを yaml 化する #6

osyo-manga opened this issue Feb 15, 2014 · 37 comments

Comments

@osyo-manga
Copy link
Contributor

いまは手動で markdown を作成、編集を行っていますが、アーカイブなどのデータを yaml 化してなるべく自動で生成するようにしたい。
最終的にはその回の情報を載せた archiveXXX.yml と次の回の情報を載せた next.yml みたいなのを追加、編集すれば更新作業が完了する形に持って行きたいと考えています。

@haya14busa
Copy link
Member

一応現在のVimプラグイン読書会の情報: https://github.com/haya14busa/reading-vimplugin/tree/gh-pages/_data

@osyo-manga
Copy link
Contributor Author

@osyo-manga
Copy link
Contributor Author

現在の更新作業一覧

  • index.md の次回の予定を編集
  • archive/XXX.md を追加
  • archive/index.mdarchive/XXX.md の追加
  • wikiから該当する vimrc を削除

他、抜けている作業があればコメント下さい。

@osyo-manga
Copy link
Contributor Author

とりあえずの作業場という事で fork しました
https://github.com/osyo-manga/reading-vimrc
作業したいという方は Collaborators に追加するので教えてください。

@osyo-manga
Copy link
Contributor Author

実装する作業内容

  • next.yml を追加
  • next.yml の内容を index.md から参照する
  • archive/index.md から archive/XXX.yml が参照されるような形にする
    • ただし、現状の ``archive/XXX.mdyml` にコンバートするのは後回しで処理を追記する感じで

@haya14busa
Copy link
Member

進捗どうですか(どこを作業しているとか教えてもらえれば僕ある程度やりますよ)

@osyo-manga
Copy link
Contributor Author

ウッ、少し作業していたんですがまだほとんど手を付けられていない状態です…。
余裕ありそうであれば @haya14busa さんの方で作業してもらったほうがよいかも。

@haya14busa
Copy link
Member

了解です。じゃあやっておきますです!

@osyo-manga
Copy link
Contributor Author

おねがいしまする。

@haya14busa
Copy link
Member

_data/next.ymlに対応ed

これで_data/next.ymlを編集すると勝手にindex.mdが更新されます。

Lingr-botの方で_data/next.ymlから情報とってきて自動postとかは任せます

@haya14busa
Copy link
Member

(作業場とissueの場所が違ってちょっと面倒感)

せっかくforkしてるので、https://github.com/osyo-manga/reading-vimrc こっちもgh-pagesを有効化すると良さげな気がします。

コンテンツかぶってグーグルさんに怒られるかもということで有効化しないなら、やっぱりこっちのbranchで作業すれば良い感ありますからね

@haya14busa
Copy link
Member

_data/archive/1.ymlのように(少なくとも素の)Jekyllでは_data/下にディレクトリをおいてデータにアクセスするということができないようです。

ですので

  1. _data/archive001.ymlという形式でどんどん_data/ディレクトリ下につっこむ
  2. _data/archives.yml の1ファイルに追記する形にする

という2通りの選択肢になるかと思います。

1は更新作業するのは楽ですが、_data/next.ymlも含め、せっかくほかのデータもおいておけるのに_dataディレクトリが_data/archiveXXX.ymlというファイルで溢れかえります。

2は更新作業がファイルの追加->ファイルへの追記となり少々面倒になりますが、_dataディレクトリは汚れないし、1ファイルに纏まっているので自動化の作業がしやすい,あとでデータを見返したり、再利用するときなどにも纏まっていてちょっと楽というメリットがあるかなと思います。

また http://lingr-bot-readingvimrc.herokuapp.com/reading_vimrc/vimplugin/yml のvimrc版ができれば

curl http://lingr-bot-readingvimrc.herokuapp.com/reading_vimrc/vimrc/yml >> _data/archives.yml

このようにリダイレクトで追記しちゃえばワンコマンドで更新できる(はず)なのでそこまで追記でも手間じゃないかなぁーと思います。

というか本音はファイル分けてたら自動化対応するのが面倒くさいというやつです。

どうですかね?

@haya14busa
Copy link
Member

返事を聞く前に_data/archives.ymlに統一する形で実装しちゃいました

_data/archives.yml

- id: 86
  date: 2014-02-22 23:00
  author:
    name: haya14busa
    url: https://github.com/haya14busa
  vimrcs:
    - name: vimrc
      url: https://github.com/haya14busa/dotfiles/blob/be8937e097af4666a4057090b79792acc137fca1/.vimrc
    - name: gvimrc
      url: https://github.com/haya14busa/dotfiles/blob/be8937e097af4666a4057090b79792acc137fca1/.gvimrc
  part: 後編 # 省略可
  members:
    - Lindan
    - deris0126
    - haya14busa
    - hotoolong
    - lisia
    - manga_osyo
    - mattn
    - raa0121
    - rbtnn
    - thinca
  log: http://lingr.com/room/vim/archives/2014/02/15#message-18358061
  links:
    - http://chopapp.com/#ebxfqbi
  other: 何か特記事項があればここに書ける。<br>
         ただ直接XXX.mdを編集したほうがよさげか

こんな感じで書けばarchives/index.mdの一覧ページも勝手に変わるようなっています。

またarchives/XXX.mdの各回のmarkdownファイルについては

https://github.com/osyo-manga/reading-vimrc/blob/gh-pages/archive/086.md

ここの回数である86をその回数に合わせたものを用意するだけでOKとなります。またダウンロードリンクといったGitHub特有のものは対応させています。BitBucketとかその他はとりあえず知らない。

自動生成するスクリプトとか書いていませんが、http://lingr-bot-readingvimrc.herokuapp.com/reading_vimrc/vimrc/markdown これを上記のこれの86の部分を動的に開催数に変換するものを用意すれば

curl http://lingr-bot-readingvimrc.herokuapp.com/reading\_vimrc/vimrc/markdown > \_data/XXX.md

これだけで済むかもですね。まぁ明らかにローカルでもできるのでアレですが。

あと全体を通してvimrcは複数対応し、authorは流石にプラグイン読書会と違って2人以上になることはないはずなので基本authorは1人だけ対応しています。

また_data/next.ymlは最新(というか普通)のvimrcへのリンクを書いているのに対し、_data/archives.ymlはsha-1を含めたURLしか書いていません。プラグインと違ってリポジトリ中の1ファイルを参照するので正規表現が使えない状態でうまく対応するのが面倒くさかった...面倒なだけで、頑張れば普通のurlとhashで生成できるかもしれませんが今のところ使われていないっぽいので。

そんなかんじです。

@osyo-manga
Copy link
Contributor Author

@haya14busa ++

せっかくforkしてるので、https://github.com/osyo-manga/reading-vimrc こっちもgh-pagesを有効化すると良さげな気がします。

http://osyo-manga.github.io/reading-vimrc/ にアクセスできると思うのですが、そういうことではなくて?

_data/archive/1.ymlのように(少なくとも素の)Jekyllでは_data/下にディレクトリをおいてデータにアクセスするということができないようです。

手段としての提案なのですが、 _data/archive/1.yml ではなくて _archive/1.yml とするのはどうでしょうか(技術的にできるかわかりませんが…。
ただ、

2._data/archives.yml の1ファイルに追記する形にする

の方が自動化がやりやすいというのであればこちらでもよいと思います。
ここら辺は実際に更新作業している方(@thinca, @deris)の意見を聞いてみたいですね。
更新作業の流れは

1._data/next.yml に次回の予定を記述する
2._data/archives.yml にその回の情報を追記する
3.archives/XXX.md を追加する

という認識であっていますか?

@haya14busa
Copy link
Member

http://osyo-manga.github.io/reading-vimrc/ にアクセスできると思うのですが、そういうことではなくて?

are...アクセスできる...さっき試した時どこかurl間違っていたようです()

手段としての提案なのですが、 _data/archive/1.yml ではなくて _archive/1.yml とするのはどうでしょうか(技術的にできるかわかりませんが…。

これは残念ながら(少なくとも素の)Jekyllでは無理ですね。不便。

2._data/archives.yml の1ファイルに追記する形にする
の方が自動化がやりやすいというのであればこちらでもよいと思います。

過去の開催の一覧でループを回さないといけないので、_data/下のファイルをループ回していらない_data/next.ymlなどを取り除くなど無駄な作業が発生してつらみがあるので2押しです。

更新作業の流れは

1._data/next.yml に次回の予定を記述する
2._data/archives.yml にその回の情報を追記する
3.archives/XXX.md を追加する

という認識であっていますか?

はい。

1はともかく2と3はシェルスクリプトか、LLか、Vim scriptか()でいい感じのスクリプトを作れば同時に出来そうですね。
そういうのがアレばファイル追加->追記による面倒さはほぼ解消されると思われまするです。

@haya14busa
Copy link
Member

ワンコマンドで2と3をやってくれるアップデートスクリプト(かなりアレかもだけど)一応書きました。おしょーさんのherokuのvimrc botで使われているvimプラグインのyamlのやつがvimrc版もできるという想定で書いたので下記の様にしてほしいです @osyo-manga

http://lingr-bot-readingvimrc.herokuapp.com/reading_vimrc/vimrc/yml
上記のURLに以下のように情報を載せてもらえるようにできれば完璧です。

- id: 86
  date: 2014-03-01 23:00
  author:
    name: haya14busa
    url: https://github.com/haya14busa
  vimrcs:
    - name: vimrc
      url: https://github.com/haya14busa/dotfiles/blob/be8937e097af4666a4057090b79792acc137fca1/.vimrc
    - name: gvimrc
      url: https://github.com/haya14busa/dotfiles/blob/be8937e097af4666a4057090b79792acc137fca1/.gvimrc
  part: 後編
  members:
    - haya14busa
    - decochan
  log: http://lingr.com/room/vim/archives/2014/02/15#message-18358061
  links:
  other:

rubyでyaml読んだり、githubから情報をとってこれると聞いたので、_data/next.ymlから基本の情報をとってきてGitHubから開催時点のsha-1ハッシュを取得して良い感じにできれば良さげかなと思いまする。

_data/next.yml は現在こんなかんじです。

- id: 86
  date: 2014-02-22 23:00
  author:
    name: haya14busa
    url: https://github.com/haya14busa
  vimrcs:
    - name: vimrc
      url: https://github.com/haya14busa/dotfiles/blob/master/.vimrc
      hash: be8937e097af4666a4057090b79792acc137fca1
    - name: gvimrc # 分割vimrcも対応
      url: https://github.com/haya14busa/dotfiles/blob/master/.gvimrc
      hash: # 省略可,前後半に分けていて前半のhashでやりたいときなどにオプションでつけれる
  part: 後編 # 省略可
  other: # その他何か特記事項があればここにかける

ついでにテキストは以下のようになれば良いのかなと思いました。これをlingr-botから全部生成するのか、それとも
=== 第84回 vimrc読書会 ===に反応させているところだけbotに任せるかとかはどうするかわからないのでお任せしますが。

=== 第84回 vimrc読書会 ===
- 途中参加/途中離脱OK。声をかける必要はありません
- 読む順はとくに決めないので、好きなように読んで好きなように発言しましょう
- vimrc 内の特定位置を参照する場合は行番号で L100 のように指定します
- 特定の相手に発言/返事する場合は先頭に username: を付けます
- 一通り読み終わったら、読み終わったことを宣言してください。終了の目安にします
- ただの目安なので、宣言してからでも読み返して全然OKです
- 今回は前後半の前半です。終了時間になったら、途中でも強制終了します
本日のvimrc:
  - https://github.com/haya14busa/dotfiles/blob/be8937e097af4666a4057090b79792acc137fca1/.vimrc
  - https://github.com/haya14busa/dotfiles/blob/be8937e097af4666a4057090b79792acc137fca1/.gvimrc
DL用リンク:
  - https://raw.github.com/haya14busa/dotfiles/be8937e097af4666a4057090b79792acc137fca1/.vimrc
  - https://raw.github.com/haya14busa/dotfiles/be8937e097af4666a4057090b79792acc137fca1/.gvimrc

@haya14busa
Copy link
Member

_data/next.ymlからアレするとかはすぐには出来ないかもなのでとりあえずvimrcのマークダウンを生成してくれるもので現状取得できてるデータだけyamlの形式にまわして、複数vimrcだとか、partなどは更新する方がスクリプト叩いた後にちょっと編集してもらうとかでもいいかもですね

@haya14busa
Copy link
Member

更新作業

  1. ./scripts/update_reading_vimrc.py を叩く。どの環境でも動くかはわからないので確認をお願いしたいです。
  2. (もし不具合、抜けている情報があれば_data/archives.ymlを手動で編集する)
  3. _data/next.yml を編集して次の人のvimrcの情報を書き込む
  4. jekyll serve -w -b /reading-vimrc/ を叩いて
  5. http://localhost:4000/reading-vimrc/ を開いてローカルで確認
  6. git diff, git commit -vなどで確認した上で(重要)、commit & push
  7. Wikiから今日読んだvimrcを削除
  8. お疲れ様でした:)

大雑把に言えば

  1. ./scripts/update_reading_vimrc.pyを叩く
  2. _data/next.ymlを編集する
  3. Wikiから削除

の3つで楽になる(かなり)とはおもいます

@osyo-manga
Copy link
Contributor Author

@haya14busa ++

おしょーさんのherokuのvimrc botで使われているvimプラグインのyamlのやつがvimrc版もできるという想定で書いたので下記の様にしてほしいです

了解です。vital-over が終われば週末までに対応しておきます。
現状取得していないデータ(gvimrc や part など)は後々対応することになると思います(少なくとも bot 側から開始の合図を自動ポストを行うようになるまでは。
まぁ今回はそこまでつめ込まなくてもよいかなーと思っています。

@haya14busa
Copy link
Member

vital-overはマダマダ続くよ☆

現状取得していないデータ(gvimrc や part など)は後々対応することになると思います(少なくとも bot 側から開始の合図を自動ポストを行うようになるまでは。
まぁ今回はそこまでつめ込まなくてもよいかなーと思っています。

はい。僕もそれで良いと思います。

@osyo-manga
Copy link
Contributor Author

reading_vimrc-bot 側を対応しました。
http://lingr-bot-readingvimrc.herokuapp.com/reading_vimrc/vimrc/yml

未対応部分

  • 複数の vimrc
    • 現状は1つの vimrc のみ対応
  • github 以外で公開されている vimrc

@haya14busa
Copy link
Member

next.ymlを見ているならvimrcの複数化対応はそのままできるのではと思ったけど、それぞれハッシュ見ないとだめだったり処理が増えるから現状対応してないとかですかね

@osyo-manga
Copy link
Contributor Author

複数の vimrc にも一応対応しました。

@haya14busa
Copy link
Member

ありがとうございます!そろそろマージできる感かな。

@haya14busa
Copy link
Member

曜日に対応 & 1つもデータがない状態だと動かないようなので85回の分だけデータ化しておきました

@osyo-manga
Copy link
Contributor Author

おつです。
今日の vimrc読書会で(fork したリポジトリで)実際に使用してみて問題がなければ merge する。という流れでどうでしょうか。

@haya14busa
Copy link
Member

なるほどその流れで良さげですね。あーでも更新する方がforkリポジトリで作業して更新するのであれば、新しくコラボレータに追加するか、僕かおしょーさんが更新することになるので、前者だとちょっと手間になるかも...?まぁほんとにちょっとですが。

@osyo-manga
Copy link
Contributor Author

とりあえず、Collaborators に @thinca さんと @deris さんを追加しておきました。

@haya14busa
Copy link
Member

更新作業のコメント: #6 (comment)

@haya14busa
Copy link
Member

@osyo-manga マージされたし、next.ymlとwikiから自動更新するとかもローカルで確認すればいいレベルなのでosyoさんリポジトリのgh-pages無効にしておいたほうが良いと思われます http://osyo-manga.github.io/reading-vimrc/

@osyo-manga
Copy link
Contributor Author

@haya14busa gh-pages って明示的に無効にする事ってできましたっけ?リポジトリごと削除した方がよい?

残り作業がなければ閉じたいと思うのですが他になにかやるべきことってありましたっけ。

@haya14busa
Copy link
Member

んー設定で消せるか、gh-pagesブランチを削除して、かわりにmasterとか他のブランチ名にしておけばリポジトリ削除しなくてもすみます。

残り作業がなければ閉じたいと思うのですが他になにかやるべきことってありましたっけ。

あえて言うなら過去のアーカイブのデータ化と、更新スクリプト便利にするのと、next.ymlを半自動更新できるようなスクリプトが欲しいといった程度でしょうか

@osyo-manga
Copy link
Contributor Author

んー設定で消せるか、gh-pagesブランチを削除して、かわりにmasterとか他のブランチ名にしておけばリポジトリ削除しなくてもすみます。

めんどくさいので問題がなければリポジトリごと削除しようと思います。

あえて言うなら過去のアーカイブのデータ化と、更新スクリプト便利にするのと、next.ymlを半自動更新できるようなスクリプトが欲しいといった程度でしょうか

過去のアーカイブを除いて『yaml 化する』という目的自体は達成できたと思うので、そこら辺は別の Issues 立てて処理しが方がよさそう感。

@haya14busa
Copy link
Member

めんどくさいので問題がなければリポジトリごと削除しようと思います。

問題ないです。

過去のアーカイブを除いて『yaml 化する』という目的自体は達成できたと思うので、そこら辺は別の Issues 立てて処理しが方がよさそう感。

了解です。過去のアーカイブも一応別issue立てて、ゆっくりやっていけば良さげかな。

@osyo-manga
Copy link
Contributor Author

問題ないです。

では、削除しておきます。

了解です。過去のアーカイブも一応別issue立てて、ゆっくりやっていけば良さげかな。

そんな感じで。
お疲れ様でした。

@osyo-manga
Copy link
Contributor Author

削除ed

@haya14busa
Copy link
Member

お疲れ様でしたー:)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants