2020年8月31日月曜日

wandbox-api の CLI に C/CPP/Go/JavaScript/Nim/OpenSSL/Perl/Python/Ruby/TypeScript を追加しました

 表題のとおりですが以前公開した wandbox-api
C/CPP/Go/JavaScript/Nim/OpenSSL/Perl/Python/Ruby/TypeScript のラッパーコマンドを追加しました。(以前の記事はこちら「ブログズミ: Wandbox の CLI ツールを作ってみた」)
それぞれ言語ごと特有のオプションやコンパイラオプション・ランタイムオプションが使用可能かどうかに対応しています。

また、C/CPP/C++ であれば #include してるファイル(システムヘッダー除く)を自動的にファイルリストに追加する機能がありますが、Python の import や Ruby の require なども対応をしています。

OpenSLL は少し特殊でローカルで openssl を使うのと同じように使えるように工夫してます。
(あんまりデバッグしてないので対応してないサブコマンドありそうですが・・)
例えば、以下のように鍵の作成が可能です。

> wandbox-ssl genrsa -out test.key 2048
> wandbox-ssl rsa -in test.key -pubout -out test.key.pub

需要があるのかわからないけど、openssl がインストールされてなくても python があれば openssl 相当のことができるようになりました。 

最後に

筆者が明るくない言語はファイルリストの自動登録機能が正しく動作してなかったり、対応してない構文があったりするかもしれません。
(実際、JavaScript/TypeScript の require は対応してないです)
ぜひ、PR いただけると嬉しいです。

ではでは。

2020年8月26日水曜日

[技術書典] Re:VIEW Starter でクローバー「♣」を別の文字に変更する

Re:VIEW Stater では節の装飾に「♣」(クローバー)が使用可能です。

技術系同人誌を書く人の味方「Re:VIEW Starter」の紹介 - Qiita

なんとなく個人的に「♣」がしっくりこなかったので、「技術書典8(技術書典 応援祭)」で書いた本では、別の文字に変更しました。
config-starter.yml では変更できないので、変更方法を備忘録として残しておきます。


方法
公開されている「Re:VIEW Starter ユーザーズガイド」に書いてあるとおりにするだけです。

sty/starter-section.sty に \clubsuit があると思いますが、ここの部分が「♣」表示している部分にあたります。
文字を変更する場合は、ここを直接変更することでも可能ですが以下のように対応します。
(技術書典8 のときは知らずに直接編集してた)

sty/mystyle.sty に下記を追加

\renewcommand{\starter@subsection@symbol}{$▶$}

diff を見ていただいたほうが早い気もするので、対応したコミットを載せておきます。

https://github.com/srz-zumix/ci-dex-book/commit/a38b35d279660778a6e8780346f7d2f8c4389e1e

フォントさえあれば LaTex の特殊文字・記号じゃなくても問題なさげ?
(電子書籍用 PDF では問題なさそうだったので "▶" を採用した)

今回は以上。
では。

2020年8月17日月曜日

[Doxygen] @page の名前には小文字を使おう

Doxygen の page コマンドの説明によると 「ページへの参照となる <名前> には、 すべて小文字 (mypage1 など) を使用するべきです」とあります。

iutest のドキュメントは GitHub Pages で公開しているのですが、この注意点を知らず 
/**
 * @page    CMDLINE     コマンドラインオプション
 * @par     Command Line Options
のように大文字を使っていました。

ただ、大文字でも特に問題なくドキュメントの生成はできますし、特に問題なく使えていると思っていました。
しかし、実は問題があったのでこの記事を書いているわけです。

名前を大文字にした場合のファイル名が問題だった
@page の名前を大文字にすると、アンダーバー(_) + 小文字に変換されて html ファイルが出力されます。
そして GitHub Pages ではデフォルトで jekyll が有効になっており、アンダーバー(_) で始まるファイルが URL 指定で直接開けず 404 になってしまっていました。。。

対処方法
アンダーバー(_)始まりのファイル名を修正する
Doxyfile の設定で CASE_SENSE_NAMES を YES にすると、文字の変換をせずそのままの名前で出力されるようです。
ただし、大文字小文字を区別しないファイルシステムでは問題になる場合があるので、ドキュメントが推奨するように全部小文字にするのが良さそうです。

GitHub Pages の jekyll を Disable にする
jekyll を無効にすればアンダーバー(_)始まりのファイルでも開けるようになります。
方法はこちらを参考にしてください。 GitHub ioでjekyllをdisableにする - adragoonaの日記
「.nojekyll」ファイルをルートに commit すれば ok です。
結果
今回は前者の方法で対応しました。

ちゃんとアクセスできるようになりましたね。

2020年8月12日水曜日

[iutest] ドキュメントの置き場を GitHub Pages に集約した

issue いただきまして iutest のドキュメントの構成を変更しました。
(issue ありがとうございますmm)

これが、

こうなりました。

ドキュメントを GitHub Pages へ
まず OSDN においていた最新バージョンのドキュメントを GitHub Pages に引っ越ししました。
こちらのドキュメントは実は2年くらい更新をし忘れていました。。。
そこでドキュメントの更新は GitHub Actions でタグが作られたら自動で更新されるようにしました。

次にもともと GitHub Pages においていた master ブランチ HEAD バージョンのドキュメントですが、こちらはトップディレクトリから master ディレクトリに移動しました。ディレクトリ構成は以下のとおりです。

最新バージョンのドキュメントは latest ディレクトリに push されます。
OSDN からリダイレクト
続いてもともと OSDN にアップロードしていたドキュメントページにアクセスしたら、GitHub Pages にリダイレクトするように設定します。

まずはサーバーへのアクセスをします。(これまでもやってるはずですが、いつも忘れてしまうのでメモ)
OSDN のドキュメントはシェルサーバーの「/home/groups/<プロジェクトUNIX名の1文字目>/<プロジェクトUNIX名の1、2文字目>/<プロジェクトUNIX名>/」にあります。iutest の場合は「/home/groups/i/iu/iutest」です。サーバーには鍵を登録してアクセスします。

OSDN では .htaccess でリダイレクトの設定ができるので、OSDN ドキュメントのサンプルを参考に設定しました。
RewriteEngine on
RewriteBase /doc
RewriteRule ^(.*) https://srz-zumix.github.io/iutest/latest/$1 [R=301,L]

最後に
手動更新は早急にやめたほうがいいですね。
では。





2020年8月3日月曜日

[GitHub Actions] Actions の PR 時に自分自身をアクションとして実行する

GitHub Actions を使う側(ユーザー側)は通常 @v1 や @master などリリースタグ(またはブランチ)を指定して使いますが、GitHub Actions を作っている側(開発側)としては PR ブランチ側の変更で Action を実行してほしくなります。
もちろん、PR ブランチの名前を @ で指定すればそのブランチで Action が実行されますが、それではそのままマージできませんし、PR のたびに名前を変えるのも手間です。
以下は「ブログズミ: [技術書] 画像のフォーマットチェックを GitHub Actions でしてみた」で紹介した画像ファイルチェック Action を例にしています。

name: GitHub Actions
on:
  pull_request:

jobs:
  all-ok:
    runs-on: ubuntu-latest
    steps:
    - name: clone
      uses: actions/checkout@master
    - uses: srz-zumix/actions-book-image-check@master
      with:
        path: ./test/format
        formats: "JPEG, PNG"

上記は普通に使用する場合の例になります。
では本題である PR 自身のアクションを実行する方法ですが、
GitHub Actions はリポジトリ内のパス指定でも実行可能なので、「./」を指定すれば OK です。
PR で実行されるワークフローを用意して「./」で Action 実行しておくと良いと思います。

name: GitHub Actions
on:
  pull_request:

jobs:
  all-ok:
    runs-on: ubuntu-latest
    steps:
    - name: clone
      uses: actions/checkout@master
    - uses: ./
      with:
        path: ./test/format
        formats: "JPEG, PNG"
今回は以上です。
では。