プログラムを中心とした個人的なメモ用のブログです。
タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。
各ブラウザのタブ幅は 8 がデフォルトなので、ブラウザ上でソースコードを見るととても見づらかったりします。
GitHub でタブ幅を変える方法はいろいろ見つかりますが、GitLab でタブ幅を変える方法は意外と少なかったので記事にしてみました。
GitLab 側の設定を変更することでタブ幅を変更することもできるようですが、タブというのはただのインデントで、その幅がどのくらいかは個人で好きなように設定できるべきだと思うので、ここではブラウザのアドオンで変更する方法について述べます。
私が使用しているブラウザは Firefox ですので、Firefox で説明していますが、CSS の書き方自体は他のブラウザのアドオンにも適用できると思います。
Firefox では Stylish というアドオンがあるので、これを使います。
アドオンをインストールしたら画面右上に Stylish のアイコンが表示されます。
アイコンをクリックし、「新しいスタイルを書く」からスタイルを作成します。
例えば、以下のようにスタイルを記述することで GitLab のタブ幅を変更できます。
@-moz-document url-prefix("http://example.com/") { code, .tab-content{ -moz-tab-size: 4 !important; -webkit-tab-size: 4 !important; -o-tab-size: 4 !important; tab-size: 4 !important; } }
書き方についての詳細はググってください。
code のタグはファイルを単体で表示したとき用に指定しています。
tab-content のクラスはマージリクエスト時など、ソースを差分表示したとき用に指定しています。
ここらへんは GitLab のページの HTML ソースを解析して割り出しましたが、もしかしたらもっと良い指定方法があるかもしれません。
※ Qiita にも投稿しています。
Jenkins 2 の Pipeline 機能を試してたのですが、bat
コマンドを実行するといつまで経っても処理が終了しないという状況になってしまいました。
環境は Windows 7 で、Jenkins のバージョンは 2.33 です。
何かのプラグインが悪さをしているのかと思い、いろいろ試してみましたが、一向に原因がわからず、かなりはまりました。
しかし、結局は Pipeline に付けた名前に日本語が含まれていることが原因という、しょうもないオチでしたとさ。
Jenkins 2 で追加された Pipeline の機能を使ってみようと思ったのですが、「新規ジョブ作成」を押しても Pipeline の項目がありません。
いろいろ悩みましたが、以下のようにして解決しました。
Jenkins 2 を新規インストールしたのではなく、1.6 系から 2.0 系にバージョンアップしていたのが原因ではないかと。
Jenkins はバージョンアップ後もいつでも元のバージョンに戻せるようになっているため、Jenkins 2 以降でしか使用できない Pipeline がインストールされていないのだろうと推測します。
手動で Pipeline をインストールします。
基本的にはこれで OK だと思うのですが、私の環境ではプラグインインストール時にエラーがでました。
Jenkins のバージョンが 2.26 だったのですが、2.32 がリリースされていたので、一度 Pipeline をアンインストールし、Jenkins アップグレード後に再度 Pipeline をインストールしました。
今のところこれで一応動いています。
Redmine のテキストが記述できる箇所(例えばチケットの説明など)において、記述内容によっては Redmine が Internal Error となったり、最悪 Redmine が落ちたりします。
バグっぽいので、現状では以下の記述を行わないように注意するしかありません。
もしこのような状況になってしまったら、該当のページは開かずに直接編集ページへ移動して修正します。
例えばチケットであれば、チケットの画面は開かずに、チケットの一覧画面で該当のチケットを右クリックして「編集」を選択すれば、編集画面を開くことができます。
以下にエラーとなったパターンを紹介します。
リンクテキストの後に URL を記述していなかった場合、エラーとなってしまいます。
[リンクテキスト]()
[リンクテキスト](http://hoge/)
Redmine ではメールアドレスを記述すると自動でリンクを作成してくれますが、以下のような記述をした場合、エラーとなってしまいます。
社員番号@example.com
社員番号+@example.com
Jenkins のジョブの設定内容を変更した際に、ビルドに失敗するようになってしまったときのために変更履歴を残しておくためのプラグインです。
これでサイドバーに「設定の変更履歴」が表示されるようになります。
Sphinx には only ディレクティブというのがあり、これを使用することで出力フォーマットに応じて処理を分けることができます。
これを使用し、以下のように出力フォーマットに応じて処理を分けてみます。
Sphinx のコードは以下のようになります。
.. only:: html .. image:: img/01.svg .. only:: latex .. image:: img/01.png .. image:: img/01_001.png .. image:: img/01_002.png
うーん、面倒ですね。
他にも AutoImage という拡張もあるのですが、出力フォーマットに応じて読み込む画像を変えるということはできなさそうでした。
PlantUML にはプリプロセッサの機能があり、C言語と同じように定数定義や ifdef などが使用できます。
これを使用し、以下のように出力フォーマットに応じて処理を分けてみます。
PlantUML のコード上では、以下のように定義します。
!define _PROJECT_NAME_ ProjectName
また、コマンドライン引数でも定数は定義できます。
> plantuml.jar -DPNG="png" hoge.puml
-D が定数定義するオプションで、その後に続く文字が定義する文字列です。
つまり、上記は以下の定義と同じ意味です。
!define PNG "png"
これで、上記のようにコマンドライン引数で定数を定義しつつ、PlantUML 内のコードに以下のように記述すれば、PNG で出力するときのみ画像が分割されることになります。
!ifdef PNG newpage !endif
Sphinx でドキュメントを作成する際、テーマを設定することができます。
デフォルトで用意されているテーマは一応全て試してみましたが、どれも気に入りませんでした。
なので、私はいつも Read the Docs のテーマ (sphinx_rtd_theme) を使用しています。
しかし、sphinx_rtd_theme にも気に入らない点がいくつかあります。
見出しのレベルによる違いが文字の大きさだけなので、どこが見出しの境目なのか分かりづらいと思います。
ちなみに Docker のドキュメントも sphinx_rtd_theme を使用していますが、こちらはカスタマイズされているようで、見出しにアンダーラインが引かれています。
これは分かりやすくなっていて良いと思います。
レスポンシブ対応のためか、sphinx_rtd_theme は PC のブラウザで閲覧したときに横幅が MAX まで広がりません。
PC でしか閲覧しないなら横幅 MAX まで広げたいところです。
レスポンシブ対応のためか、テーブルでセル内の文字数が多い場合に自動改行されず、横スクロールバーが表示されてしまいます。
こちらも PC でしか閲覧しないなら折り返して全体を表示してほしいところです。
これは sphinx_rtd_theme ではなく Sphinx の仕様ですが、テーブル作成時に widths 属性を設定しなかった場合、各カラムは等幅になります。
HTML 作成後に CSS を上書きするようにしてやります。
以下のような内容で _static/css/my_theme.css を作成します。
@import url("theme.css");
.wy-nav-content {
max-width: none;
}
h1,h2,h3,h4,h5,h6 {
border-bottom: 1px solid #ccc;
}
.wy-table-responsive table td, .wy-table-responsive table th {
white-space: normal;
}
colgroup {
display: none;
}
conf.py に以下の設定を追加します。
html_style = "css/my_theme.css"
以上で完了です。