• Bitbucket Pipelines をうまく扱えなかった

    Bitbucket pipelines を利用してブログをビルドするようにしましたが、 それをするまでにいろいろありましたので、メモします。

    Bitbucket Pipelines とは

    Bitbucket Pipelines は、Bitbucket で使えるCIツールです。 静的サイトジェネレータのホスティングサービスが提供しているビルドサーバと異なり、独自の Docker イメージを利用することができます。 ビルドの設定は yaml で記述し、ログに出力される環境変数を隠蔽する機能もついています。 1か月 500分まで無料で利用できるそうです。

    詳しくは、公式サイトをご覧ください。

    このブログでは、 Jekyll だけでなく、Pandoc, MeCab, Pygments などを利用しているため、素のJekyllサーバではビルドすることができない状態になっています。 (最低限の記事生成は、通常 Jekyll が使用している kramdown を利用すればできるのですが、いろいろ凝ったことをしようとすると、凝ったイメージを作らないといけないようになってしまったのです)

    続きを読む

  • GitHub Pages, Zoho Mailへのお引っ越し

    ConoHa VPSから、ブログをGitHub Pagesに、メールサーバをZoho Mailにお引っ越しさせました。 たしかに、このはちゃんは広い使用用途で安定して使えるけど、貧しき民には少々お高い……。

    続きを読む

  • 日記 (2016/06/06)

    ♪6月6日に雨ざあざあ♪  っと6月ですね。パンチマインドでハッピネスに過ごして、6月の陰鬱とした雰囲気も、がんばりましょ! がんばりましょ!

    つくった

    VOICEROIDにスプレッドシートに書かれた内容を読み上げたり保存したりするツール を開発しました。 以前から VOICEROIDを外部から操作してVOICEROIDの操作を楽にするプログラムは開発していたのですが、とりあえず形になりました。 思えば一番最初に思い立ったのは2014年の晩秋ごろでしたかね……。

    なおして

    台本を字幕でAfter Effectsに入れるスクリプトとプログラム を直しました。 上のツールで使った、Googleスプレッドシートの読み込み部分が使えると思って、使いました。

    続きを読む

  • 日本語を文節ごとに改行するためのJekyllフィルタを作った

    タイトルなど、見た目が大切な部分で、ブラウザによって語句を無理やり改行させられると、美観を損ね、また、可読性も落ちてしまいます。

    そこで、CaboChaを利用して、文節ごとに改行できるように、 <wbr>を挿入し、きれいに表示できるようにするフィルタを作成しました。 きれいな改行をしたい要素にwhite-space: nowrap;を加え、日本語の改行を抑止し、 以下のようにJekyllタグを組み込むと、文節ごとに設定された<wbr>でしか改行されなくなるため、改行がきれいになります。 手動で<br>を差し込む手間がなくなり、なおかつ横方向のはみ出し防止の確実性が増します。たぶん。

    最初はMeCabを使おうとしたのですが、形態素で区切るのではなく文節で区切りたかったので、CaboChaを利用しました。 CaboChaを利用すると、1チャンクごとに文節で区切れます。そして、チャンクごとの係り受けを解析してくれます(が、今回使うのは文節だけです)。

    続きを読む

  • NuGet便利! でも

    最近、NuGetパッケージを書いてローカルでプロジェクト間をやり取りするというテクニックをかじりました。

    NuGetパッケージ作戦を導入するまで、ライブラリ、アドイン、テスト、インタフェース、UIなどを1つの巨大なソリューションにまとめていました。 そうすると、ソリューションのリビルドの際にやたらと時間がかかってしまい、また、ソリューション外にライブラリを持ち出さない前提でコードを書いていたため、ソリューション内に限った再利用性に留まっていました。 Visual Studioの起動にも、やたらと時間がかかるようになってしまい、とりあえずバラせるやつはバラす方針になりました。

    NuGetパッケージができるまで

    NuGetのパッケージ作成はわかってしまえば簡単です。

    1. AssemblyInfo.csを埋める
    2. .nuspecファイルを作成する
    3. Install.ps1を書く(任意)
    4. nuget packでパッケージ化

    パッケージ化に際して、わたしは以下のオプションで、自動で所定のフォルダにパッケージが配置されるように指定しています。 これをBuild EventのPost-build eventに仕込みます。

    nuget pack $(ProjectFileName) -outputdirectory D:\Development\NuGetServer\Packages\$(TargetName) -nopackageanalysis
    

    続きを読む