WEBプログラミング
PR

WEBプログラミング番外編:ToshiLab Toolsを作った流れ|学習中に使える便利ツールを自作する考え方

eyecatch_toshilab-tools.webp
toshi
記事内に商品プロモーションを含む場合があります

この記事は、WEBプログラミングカテゴリーの番外編です。

今回は、ToshiLabで公開している ToshiLab Tools β を題材に、

  • なぜ作ろうと思ったのか
  • どのような技術を使ったのか
  • WordPressとは別に公開した理由
  • ブラウザ完結型にした理由

を整理して紹介します。

ToshiLab Tools βは、学習中やブログ運営中に役立つ小さな便利ツール集です。

例えば、

  • 文字数を確認したい
  • HTMLタグを表示用に変換したい
  • コードを見やすく整形したい
  • 配色を考えたい
  • 画像サイズを軽くしたい

といった場面で利用できます。

なお、実際に公開しているツール一覧はこちらです。

ToshiLab Toolsでは、画像圧縮、コード整形、カラーパレット、文字数カウント、HTMLエスケープなど、ブログ運営やWeb制作でよく使う小さな作業をブラウザだけで済ませられるようにしています。

番外編として紹介する理由

学習した技術を実際のサービスにする

通常のWEBプログラミング記事では、

  • HTML
  • CSS
  • JavaScript
  • PHP

などの基礎知識を順番に学んでいきます。

しかし、学習を続けていると、

「覚えた技術で何が作れるのか」

が気になってきます。

そこで今回は、実際に公開しているツールを例にしながら、学習内容がどのように形になるのかを紹介します。

例えばJavaScriptを学ぶと、

  • 入力内容をリアルタイムで処理する
  • ボタン操作で結果を表示する
  • 画像をブラウザ内で加工する
  • 色コードを変換する
  • コードを整形する

といった機能を実装できるようになります。

WEBプログラミングは、Webページを作るだけではありません。

学習した知識を組み合わせることで、自分や読者の役に立つ便利ツールも作れるようになります。

ToshiLab Tools βは、その実践例として制作しました。

作成したツール一覧

ToshiLab Tools βでできること

現在公開している主なツールは次の通りです。

ツール名できること主な用途
文字数カウンター入力した文章の文字数を確認するタイトルや説明文の調整
HTMLエスケープHTMLタグを表示用文字列へ変換するコード掲載時
コード整形HTML・CSS・JavaScript・JSONを整形する学習やデバッグ
カラーパレット色の組み合わせや補色を確認するデザイン制作
画像圧縮・リサイズ画像サイズを軽量化するWordPress投稿前の最適化

すべてブラウザ上で利用できるため、ソフトウェアのインストールは不要です。

特に画像圧縮ツールは、画像をサーバーへ送信せず、ブラウザ内だけで処理する仕組みにしています。

「少しだけ確認したい」「今すぐ使いたい」という場面で役立つように設計しています。

WordPressとは別に公開した理由

/tools/ 配下にツールを配置する

ToshiLab本体はWordPressで運営しています。

しかし、ツール部分はWordPressの固定ページとして作成していません。

構成は次のようになっています。

toshilab.jp
 |
 |-- WordPress本体
 |
 |-- wp-admin
 |
 |-- wp-content
 |
 |-- wp-includes
 |
 `-- index.php
 |
 `-- tools
   |
   |-- index.html
   |
   |-- _next
   |
   |-- text-counter
   |
   |-- html-escape
   |
   |-- code-formatter
   |
   |-- color-palette
   |
   `-- image-compress
TeX

公開URLは次の通りです。

https://toshilab.jp/tools/
HTML

WordPressとは分離することで、

  • テーマの影響を受けない
  • プラグイン競合を避けられる
  • 独自UIを作りやすい
  • 管理しやすい

というメリットがあります。

使用した技術

Next.js・React・TypeScriptで構築する

今回のツール群は主に以下の技術で構築しています。

技術役割
Next.jsアプリ全体の構築
ReactUI制御
TypeScript型安全な開発
CSS Modulesスタイル管理
Canvas API画像加工
Blobファイル生成
heic2anyHEIC変換
JSZipZIP出力

ローカル環境では次のような構成で管理しています。

toshi-tools-next
|-- app
| |-- page.tsx
| |-- text-counter
| |-- html-escape
| |-- code-formatter
| |-- color-palette
| -- image-compress |
|-- components
|-- lib
|-- types
|-- package.json
|-- next.config.js -- tsconfig.json
TeX

Next.jsを利用することで、ツールごとにページを分離しながら管理できます。

静的サイトとして公開する

npm run buildで生成したファイルを配置する

ロリポップ上でNode.jsを常時動かしているわけではありません。

ローカル環境でビルドし、生成された静的ファイルをアップロードしています。

npm run build
JavaScript

ビルド後には out フォルダが生成されます。

out
 |-- index.html
 |-- _next
 |-- text-counter
 |-- html-escape
 |-- code-formatter
 |-- color-palette
 `-- image-compress
TeX

アップロード時は、out フォルダそのものではなく、中身を /tools/ に配置します。

/tools/out/ のような構成になるとURLがずれてしまいます。

必ず out の中身を直接配置しましょう。

画像圧縮ツールで重視したこと

画像をサーバーへ送信しない

画像圧縮ツールで最も重視したのは、プライバシーと手軽さです。

処理の流れは次のようになります。

画像を選択

ブラウザ内で読み込み

リサイズ・圧縮

ダウンロード

※画像はサーバーへ送信されません。
TeX

そのため、

  • 個人画像をアップロードしなくてよい
  • サーバー容量を消費しない
  • PHPによる画像処理が不要
  • 静的サイトでも運用できる

というメリットがあります。

HEIC対応を実装した理由

iPhone写真も扱いやすくする

iPhoneで撮影した写真はHEIC形式になっている場合があります。

しかし、HEICは環境によって扱いづらいことがあります。

そこで、HEIC画像が選択された場合のみ、変換処理を行うようにしました。
※HEIC画像については読み込めない場合もございます

HEIC画像

heic2any

Canvas処理

WebP/JPG/PNG出力
TeX

これにより、iPhoneユーザーでも簡単に画像変換できるようになっています。

コード整形ツールの設計

学習しやすいUIを意識する

コード整形ツールでは、

  • HTML
  • CSS
  • JavaScript
  • JSON

に対応しています。

単純な整形だけでなく、コードエディタ風の見た目にすることで学習意欲が高まるよう工夫しました。

種類色分け対象
HTMLタグ・属性・コメント
CSSセレクタ・プロパティ
JavaScriptキーワード・関数
JSONキー・値

初心者でも見やすく、コードの構造を理解しやすいUIを目指しています。

カラーパレットで意識したこと

色コード確認だけで終わらせない

色選びでは、単にHEXコードを見るだけでは不十分です。

実際には、

  • 補色
  • 類似色
  • トライアド
  • コントラスト
  • UI表示例

なども確認したくなります。

そこで、カラーパレットには以下の機能を実装しました。

  • カラーピッカー
  • HEX入力
  • RGB表示
  • HSL表示
  • 補色表示
  • 類似色表示
  • トライアド表示
  • コントラスト確認
  • UIプレビュー

実際の利用シーンを想定した設計にしています。

ツールへの導線をどう考えるか

必要な場面で自然に紹介する

ツールは作るだけでは利用されません。

読者が必要とするタイミングで紹介することが重要です。

状況紹介するツール
コードが読みにくいコード整形
HTMLタグを表示したいHTMLエスケープ
色選びに迷うカラーパレット
画像を軽量化したい画像圧縮
文字数を確認したい文字数カウンター

記事内容と自然につながる形で導線を設置することで、利用率も高まります。

よくあるつまずき

404やパス設定に注意する

静的サイトをWordPress配下へ設置する場合、次のようなミスが起こりやすくなります。

  • toolsフォルダの配置ミス
  • _next のアップロード漏れ
  • URLの二重化

例えば、

https://toshilab.jp/tools/tools/image-compress/

のようになっている場合は配置ミスの可能性があります。

正しくは、

https://toshilab.jp/tools/image-compress/

です。

SEOとSNSでの活用

ハッシュタグは補助的に使う

ハッシュタグは検索順位を直接上げるものではありません。

しかし、

  • SNS投稿
  • 記事紹介
  • サイト内導線

では役立ちます。

おすすめのハッシュタグ例です。

#WEBプログラミング
#ToshiLabTools
#Nextjs
#React
#TypeScript
#Webツール
#画像圧縮
#コード整形
#カラーパレット

SNSでは3〜5個程度に絞ると自然です。

まとめ

学習した技術は便利ツールとして形にできる

今回は、WEBプログラミング番外編として、ToshiLab Tools βを作成した流れを紹介しました。

ポイントを整理すると、

  • WordPressとは別に /tools/ 配下へ設置した
  • Next.js・React・TypeScriptで構築した
  • 静的ファイルとして公開した
  • 画像はブラウザ内で処理する設計にした
  • HEIC変換にも対応した
  • コード整形やカラーパレットも実装した
  • 読者が必要な場面で使える導線を考えた

HTML・CSS・JavaScriptを学ぶことで、単なるWebページだけでなく、実際に役立つツールも作れるようになります。

ToshiLab Tools βは今後さらに改善していく予定です。

ぜひ一度使ってみてください。

今回紹介したToshiLab Toolsは、こちらのページから実際に使えます。

ToshiLab Tools β
WEBプログラミング番外編:ToshiLab Toolsを作った流れ|学習中に使える便利ツールを自作する考え方
WEBプログラミング番外編:ToshiLab Toolsを作った流れ|学習中に使える便利ツールを自作する考え方

学習中に「少し面倒だな」と感じる作業を、自分用の小さなツールとして形にしていくと、HTML・CSS・JavaScriptの理解もかなり深まりやすくなります。

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
toshi
toshi
フルスタックエンジニア
C型肝炎や感染症の闘病を経て現在通院中
フリーランスとして今日を生きる、それがすべて。
静かな光の中で、歩みを止めずに生きていく。
実験大好きなので色々とやっていきます。
記事URLをコピーしました