ラベル ruby の投稿を表示しています。 すべての投稿を表示
ラベル ruby の投稿を表示しています。 すべての投稿を表示

2021年7月21日水曜日

Re:VIEW Starter から Re:VIEW のプロジェクトに戻すツール review-retrovert 0.9.9 リリース

ブログズミ: [Re:VIEW Starter][Re:VIEW] 訳あって Starter から素の Re:VIEW に戻すツールをリリースしました

こちらの最新版 0.9.9 をリリースしました。
https://rubygems.org/gems/review-retrovert

以下、今年2月にリリースした 0.9.7 からの更新内容です。

  • Re:VIEW Starter 2021/06/30 版に対応
    • Re:VIEW Starter のサンプルプロジェクトの変換が可能な状態
    • talklist や desclist 、単語展開、用語・索引、CSV テーブルなどサンプルで使われている表現には対応しています
    • 7月の Starter の更新にも対応していると思います
  • Starter でのみキャプションが付けられるコマンドのキャプション部分を代替コマンドの前に文章として出力
  • file パラメータによる埋め込みに対応
  • キャプションなし image は indepimage が出力されるように修正
  • Starter 独自コマンド中の文章が出力されてなかった問題を修正
  • %指定の width 指定を scale に変換
  • Re:VIEW 5.1 以降および 3.2 未満のバージョンでエラーになっていたのを修正
  • その他、めっちゃバグ修正

自分が欲しくて作ったものですが、同じような境遇の方に届けば幸いです。

2021年4月6日火曜日

【Ruboty】Slack のリアクションに反応できるようにするプラグインを公開

 Ruboty で Slack のリアクション(スタンプ)に反応するハンドラーを書けるようにするプラグインを作成し、公開しました。
https://github.com/srz-zumix/ruboty-slack_reaction_added
https://rubygems.org/gems/ruboty-slack_reaction_added
なんかボットに対してコマンドを投げるのも面倒くさいし覚えきれない、「あとでやる」「TODO」「メモ」とかリアクションをしつつ忘れてしまったり、ということがあったのでリアクションをトリガーになんかアクションできたら便利だよなーと思って書きました。

サンプル

ruboty-slack_reaction_added を追加するとデフォルトのアクションが有効になります。
リアクションにも反応をする ping => @bot reaction ping
リアクションの名前を教えてくれる => @bot reaction name
bookmark リアクションをすると parmalink を教えてくれる (all)
+1 リアクションするとボットも +1 してくれる (all)


ハンドラーの書き方

ruboty-slack_reaction_added で使えるようになるハンドラーのオプションは2つです。

allow_reaction

allow_reaction: true にすると、リアクションに対してもそのアクションが実行されるようになります。

        on /reaction ping\z/,
          name: 'reaction_able_ping',
          description: 'ping allow reaction',
          allow_reaction: true
  
raction_only

raction_only: true にすると、リアクションした場合のみそのアクションが実行されるようになります。ただのメッセージ投稿には反応しません。

        on /.*\z/m,
          name: 'thumbup',
          description: 'thumbup',
          reaction_only: true,
          all: true
  
リアクション情報のとり方

アクションでなんのリアクションをしたのか場合分けしたい場合は、message から取得してください。また、誰がリアクションしたのかも取れるようになっています。

        def call
          # Ruboty.logger.info message.reaction
          # Ruboty.logger.info message.reaction_by
          unless message.reaction_by == message.robot.name
            case message.reaction
            when '+1'
              message.add_reaction('thumbsup')
            end
          end
        end
  

ハンドラーのほうでリアクション名/ユーザー名で条件づけできるようにしても良かったのですが、面倒くさかったのでやめました

デフォルトアクションを無効にする

ruboty-slack_reaction_added デフォルトアクションを無効にしたい場合は、環境変数に「DISABLE_DEFAULT_REACTION_HANDLERS=1」を設定してください。

最後に

結構便利なものができた気がする。

2021年1月22日金曜日

[review-retrovert] Re:VIEW Starter → Re:VIEW 4/5 に対応しました

ブログズミ: [Re:VIEW Starter][Re:VIEW] 訳あって Starter から素の Re:VIEW に戻すツールをリリースしました

以前に作った review-retrovert をアップデートしました。
今回も訳あって Re:VIEW Starter -> Re:VIEW をするためのアップデートです。

https://rubygems.org/gems/review-retrovert
https://github.com/srz-zumix/review-retrovert

更新内容としてはタイトルの通りで、Re:VIEW のバージョン 4 と 5 への変換に対応しました。もともと対応していた 3 系も変わらず対応しています。
インストールされている Re:VIEW のバージョンに依存して変換します。

機能としては Re:VIEW Starter の独自拡張を Re:VIEW で表現可能な書式に直したり、削除(コメントアウト)したりします。
また preproc 済みの状態(かつ #@mapfile~#@end を削除)にする --preproc オプションやカタログファイルから参照されている .re ファイルのみに限定する --strict オプションが用意されています。

(※Re:VIEW Starter → Re:VIEW への変換には Nextpublising での制限都合のものも含まれております)
(※書籍に挿入するイメージの制限チェックは GitHub Actions の actions-book-image-check が便利です)

あと変換後だけ config を変えたい場合は config-retrovert.yml を作成し、retrovert キー配下に上書きしたい設定を書いてください。上書きされる方の設定は config-base.yml など別ファイルに移動してください。
そして inherit で "config-base.yml, "config-retrovert.yml" のように読み込みます。
変換前は retrovert キー配下に設定があるので config-retrovert.yml に書いた設定は無視されます。
review-retrovert convert すると retrovert キーが削除され配下の設定がトップレベルになるので、config-retrovert.yml の設定有効になり、inherit 末尾の設定が優先されるので config-base.yml の設定は無視されます。

最後に

Re:VIEW Starter で書いたけど Re:VIEW に直す必要が出てきた方はぜひ使ってみてください。不具合や機能要望は issue へお願いしますmm

宣伝

技術書典10で出品した書籍は現在も技術書典のマーケットで購入できます。
また Booth でも出品してますので何卒よろしくお願いします。

では。

2020年9月14日月曜日

[Re:VIEW Starter][Re:VIEW] 訳あって Starter から素の Re:VIEW に戻すツールをリリースしました

 技術書典9 が始まりましたね。
私は今回サークル参加しておりませんが、前回初めて参加しました。
来年また参加できたらいいなと思っております。

さて、そんな中今回は執筆環境周りのことを書きたいと思います。
技術書典9が始まったばかりですが、こちらはイベント後に役に立つ内容かと思うので、このタイミングでの公開としました。

紹介するのは表題のとおり、「Re:VIEW Starter」で作成された書籍をただの「Re:VIEW」で扱える状態にコンバートするツールです。
このツールがなぜ必要になったのか?はここでは省略しますが、この変換が必要になる人は今後も少なからず出てくるのではないかな?と思っております。
(私自身も今後の執筆にただの「Re:VIEW」を使うつもりはなく、「Re:VIEW Starter」や他の便利な環境を使いたいと思っているので、またお世話になることもあるかもしれません。)

Re:VIEW Retrovert

ツールは「Re:VIEW Retrovert」といいます。ruby で書かれていて gem install review-retrovert ですぐに使えます。
また、コードは GitHub にて公開中です。
https://rubygems.org/gems/review-retrovert
https://github.com/srz-zumix/review-retrovert

何ができるのか?

review-retrovert convert /path/to/dir/review-starter/config.yml <output directory>

Re:VIEW Starter のプロジェクトの config.yml から Re:VIEW のプロジェクトを生成して出力ディレクトリに書き出します。(Re:VEIW のバージョンは 3.2 です)
テストとして Re:VIEW Starter のテンプレプロジェクトを変換したものが GitHub Actions の成果物として残してあるので、どんな結果になるのかすぐ見てみたい人はダウンロードしてみてください。
https://github.com/srz-zumix/review-retrovert/actions/runs/201132608

制限事項

Re:VIEW Starter は Re:VIEW という名がついていますが、単なる Re:VIEW とはもう別物といっていいくらい便利な機能が拡張されています。
その分、Re:VIEW Retrovert ではこれらの拡張機能を Re:VIEW でも取り扱えるようになるべく、もとの状態を保つように頑張ってます。
ただ、どうしても全く同じ出力にすることはできません。
コンバート後は一通り目を通していただき、不自然な箇所や欠落した場所を調整していただく必要がありますのでご了承ください。

いくつか事例をあげておきます。

出力される Re:VIEW プロジェクトは version 3.2 を想定しています。
4 系が使いたい場合は issue 投げてください。(3.2 から 4.X へアップグレードできるかもしれないので、もしかしたら使えるかもしれません。)

まず Re:VIEW で表現できない命令は削除されます。
文字サイズや修飾はなくなるものと考えてください。(一部は類似の命令に置換します)


次に、ネストされたインライン命令は Re:VIEW では対応してないので、それぞれネストにならないように分解して出力しています。
また、テーブル中のインライン命令も安定しないため、テーブル中の @<br> は削除されます。
空のセルとして . を使用している場合に Re:VIEW の出力がなぜか2行になってしまっていたので、空のセルは . ではなくスペースに置換しています。

また、ブロック命令もネストできないので内側の命令は無視されるので注意してください。


他にもいろいろ無理やり対応しているところがあるので、もし使ってみておかしなところがあれば issue 出してください。
https://github.com/srz-zumix/review-retrovert/issues

最後に

もともとは自分用に書いたツールですが誰かの役に立てば幸いです。
執筆環境の制約はどうしても発生することがありますが、私としてはこのツールのおかげで安心して Re:VIEW Starter を使っていけるようになったかなと思います。

では。


2020/10/3 追記

ミスって gems に publish できてませんでしたmm
v0.9.1 から新しい Re:VIEW Starter に対応してます。
https://rubygems.org/gems/review-retrovert


2019年6月10日月曜日

[備忘録][Gem] github master の最新のパッケージをインストールする

はじめに
あるタイミングから Travis CI から Coveralls にカバレッジレポートを送る処理が失敗してることに気づきました。
https://github.com/srz-zumix/iutest/issues/234

Coveralls へのレポート送信は lcoveralls を使っていて、全く同じ issue がすでに修正されマージされていました。
ただ、まだ gem にはこの修正を含んだパッケージはアップされてなかったため、github の master からパッケージインストールすることにしました。

方法
specific_install を使うだけ!
参考にしたところ:gem installでGitHubリポジトリにある最新版をインストールする - Qiita

gem install specific_install && gem specific_install -l 'git://github.com/pcolby/lcoveralls.git'