diff options
| author | nsfisis <nsfisis@gmail.com> | 2022-11-19 14:23:32 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2022-11-19 14:25:59 +0900 |
| commit | 6209453817da9922f28bac1bb1522c6d380630ab (patch) | |
| tree | 19e0699e751af387d549d6720ca215c8065b3c0c /content/posts/2022-04-24 | |
| parent | 0cafa073914b5e0b162b735a7f8445fb2aa8a604 (diff) | |
| download | blog.nsfisis.dev-6209453817da9922f28bac1bb1522c6d380630ab.tar.gz blog.nsfisis.dev-6209453817da9922f28bac1bb1522c6d380630ab.tar.zst blog.nsfisis.dev-6209453817da9922f28bac1bb1522c6d380630ab.zip | |
Hugo to Asciidoctor
Diffstat (limited to 'content/posts/2022-04-24')
| -rw-r--r-- | content/posts/2022-04-24/term-banner-write-tool-showing-banner-in-terminal.adoc (renamed from content/posts/2022-04-24/term-banner-write-tool-showing-banner-in-terminal.md) | 83 |
1 files changed, 40 insertions, 43 deletions
diff --git a/content/posts/2022-04-24/term-banner-write-tool-showing-banner-in-terminal.md b/content/posts/2022-04-24/term-banner-write-tool-showing-banner-in-terminal.adoc index 3e234fb..409f498 100644 --- a/content/posts/2022-04-24/term-banner-write-tool-showing-banner-in-terminal.md +++ b/content/posts/2022-04-24/term-banner-write-tool-showing-banner-in-terminal.adoc @@ -1,40 +1,34 @@ ---- -title: "term-banner: ターミナルにバナーを表示するツールを書いた" -date: 2022-04-24T13:22:52+09:00 -lastmod: 2022-04-27 -tags: ["my-programs"] -summary: | - ターミナルに任意の文字のバナーを表示するためのツールを Go で書いた。 -changelog: - 2022-04-24: 公開 - 2022-04-27: -f オプションについて追記 ---- += term-banner: ターミナルにバナーを表示するツールを書いた +:description: ターミナルに任意の文字のバナーを表示するためのツールを Go で書いた。 +:revision-1: 2022-04-24 公開 +:revision-2: 2022-04-27 -f オプションについて追記 - - -# はじめに +== はじめに こんなものを作った。 -``` +.... $ term-banner 'Hello, World!' 'こんにちは、' '世界!' -``` +.... - +image::https://raw.githubusercontent.com/nsfisis/term-banner/main/screenshot.png[term-banner +のスクリーンショット] コマンドライン引数として渡した文字列をターミナルに大きく表示する。 リポジトリはこちら: https://github.com/nsfisis/term-banner +== Motivation +以前、https://github.com/nsfisis/big-clock-mode[big-clock-mode] +という似たようなプログラムを書いた。 これは tmux の `:clock-mode` +コマンドに着想を得たもので、`:clock-mode` +よりも大きく現在時刻を表示する。 -# Motivation - -以前、[big-clock-mode](https://github.com/nsfisis/big-clock-mode) という似たようなプログラムを書いた。 -これは tmux の `:clock-mode` コマンドに着想を得たもので、`:clock-mode` よりも大きく現在時刻を表示する。 - -`big-clock-mode` を開発したのは、次のようなシチュエーションで使うためである。 -弊社では現在リモートワークが基本だが、web 会議などで画面共有しているときに、休憩を挟んで特定の時刻から再開する、ということがある。 +`big-clock-mode` +を開発したのは、次のようなシチュエーションで使うためである。 +弊社では現在リモートワークが基本だが、web +会議などで画面共有しているときに、休憩を挟んで特定の時刻から再開する、ということがある。 こういったケースで、画面上に現在の時刻を大きめに表示しておくと、モニタから離れても遠くから時刻がわかるので便利である。 それこそタイマアプリか何かを使えばいいのだが、ターミナルに棲むいきものとしては、住処から離れたくないわけだ。 @@ -45,35 +39,40 @@ $ term-banner 'Hello, World!' 'こんにちは、' '世界!' そんなわけで、「任意の文字列をターミナルに表示する」プログラムを書く運びとなった。 まあ、作らなくても探せばあると思うが、作りたいものは作りたいので知ったことではない。 - - -# プログラム +== プログラム 全体の流れは次のようになっている。 -1. フォントファイルを読み込む -1. コマンドライン引数を Shift-JIS に変換する (フォントが Shift-JIS 基準で並んでいるため) -1. 1文字ずつレンダリングしていく +[arabic] +. フォントファイルを読み込む +. コマンドライン引数を Shift-JIS に変換する (フォントが Shift-JIS +基準で並んでいるため) +. 1文字ずつレンダリングしていく -`big-clock-mode` が Go 製なので、今回も Go で書いた。 -PNG が標準ライブラリにあったり、Shift-JIS のエンコーディングが準標準ライブラリにあったりしたのは助かった。 +`big-clock-mode` が Go 製なので、今回も Go で書いた。 PNG +が標準ライブラリにあったり、Shift-JIS +のエンコーディングが準標準ライブラリにあったりしたのは助かった。 -フォントファイルは `go:embed` で実行ファイルに埋め込んでいるので、ビルド後はワンバイナリで動く。 +フォントファイルは `go:embed` +で実行ファイルに埋め込んでいるので、ビルド後はワンバイナリで動く。 仕事ではスクリプト言語ばかり書いているが、やはりコンパイル言語はいい。 +== フォント - -# フォント - -フリーの 8x8 ビットマップフォントである、[美咲フォント 2021-05-05a 版](https://littlelimit.net/misaki.htm) を使わせていただいた。 +フリーの 8x8 +ビットマップフォントである、https://littlelimit.net/misaki.htm[美咲フォント +2021-05-05a 版] を使わせていただいた。 はじめは自分でポチポチ打っていたのだが、「き」くらいまでやって挫折した。 -同じく 8x8 で作っていたのだが、平仮名でさえも、この小さなキャンバスにはとても収められない。 +同じく 8x8 +で作っていたのだが、平仮名でさえも、この小さなキャンバスにはとても収められない。 -美咲フォントは、平仮名・片仮名に留まらず、JIS 第一・第二水準の漢字までサポートしている。 +美咲フォントは、平仮名・片仮名に留まらず、JIS +第一・第二水準の漢字までサポートしている。 第二水準ともなると一生お目にかかることのない字の方が多いくらいだが、これをこの大きさで書くというのは、もはや芸術の域である。 -さらに言うと、実のところ美咲フォントは実サイズ 7x7 で作られており、余白が設けられている。 +さらに言うと、実のところ美咲フォントは実サイズ 7x7 +で作られており、余白が設けられている。 これは、単純にそのまま並べても字間・行間を確保できるようにという配慮である。 おかげでコーディングまで楽になった。 @@ -82,8 +81,6 @@ PNG が標準ライブラリにあったり、Shift-JIS のエンコーディン 2022-04-27 追記: `-f` オプションで選べるようにした。 - - -# おわりに +== おわりに あなたもターミナルに住んでみませんか? |
