にしし らぼらとりー

にしし(西村文宏)製スクリプトの公開開発実験場(ラボラトリー)です。各種スクリプトの最新版やβ版の動作確認ができます。バグ報告や、機能面でのご要望などもお気軽にお知らせ下さい。

※当ウェブサイトは、にしし製フリーCGIなどの動作確認サンプルを公開したり、製作進行に関する呟きを掲載している実験場のようなものです。 各種CGIスクリプトの配布パッケージを入手したい場合や、にしし(西村文宏)の個人サイトをお探しの場合は、 本家サイト「にしし ふぁくとりー」へお越し下さい。(╹◡╹)ノ

RSS Feed

開発放言 ユーザ「にしし」の投稿[544件](6ページ目)

新規投稿 / 管理用

次のβ版は、明日(もう今日だが)には出せる予定である。今回はほとんど、スキンを自前で大きくカスタマイズする方々向けの機能ばかりだけども。それを配布したあとは、画像管理機能の強化に進みたい。たぶん11月のてがろぐ開発はそればっかりになる気がしている。

by nishishi. てがろぐ <124文字> 編集

INCLUDEされたファイルの中からでも、さらにINCLUDEの記述を可能にした。ただし3階層(3重)まで。別に何階層でも単にループすれば良いだけなので処理は簡単だが、同じファイルを呼び出して無限ループにはならないように。3階層もたどれば充分だろう。「複数のスキンで埋め込みたい一連のファイル群を1つのINCLUDEファイルにまとめておきたい」みたいな需要は、2階層で充分満たせるだろうから。

いま実施中のアンケートの自由入力欄で、『INCLUDEしたファイル内に [[CALENDAR]]、[[DATEBOX]]、[[LATESTLIST]] 等を書いても埋め込まれないが、[[SEARCHBOX]]、[[CATEGORY]]、[[HASHTAG]] は反映された。全部反映されるようにして欲しい』という感じの要望を頂いた(※表現はもっと丁寧だった)。そういえば、そのような動作になる可能性もあった(そうならない場合もある)。その点もソースを修正したので、次のバージョン(β版)からは、どの記述もすべて(INCLUDEされたファイル内でも)使えるようになる。

by nishishi. てがろぐ <481文字> 編集

代替文字とキャプションを画像管理画面で登録できるようになるなら>>2238、投稿本文内に代替文字やキャプションを含ませる必要はないわけだから、No.2212みたいな複雑な記法は必要なくて、単に [PICT:FIG:ファイルパス] みたいな感じだったら登録済みの代替文字とキャプションを使って figure要素+img要素+figcaption要素を出力する……みたいな処理でいいか。もし引数FIGがなくて [PICT:ファイルパス] だったり、引数にFIG以外の文字列が指定されている場合 [PICT:ぶひぶひ:ファイルパス] だったら、従来通り img要素だけを出力すれば良いわけで。

by nishishi. てがろぐ <302文字> 編集

今月中に、今の時点でできている細々したものを Ver 3.8.4βとして配布してしまってから、11月で画像管理機能を作り上げる感じにしたい。で、12月に Ver 3.9.0 正式版をリリースできるようにする。次の正式版までに予約投稿機能くらいは追加したかったが、そこは余力次第な気がする。先送りの可能性が(今のところは)濃厚な感じだ。

by nishishi. てがろぐ <167文字> 編集

画像保存用ディレクトリに自動生成する index.xml(画像インデックス)は、とりあえず初回実装時の仕様としてはだいたいこんな感じでどうか。
<tegalogimages>
   <image><date>2022/10/15 17:35:30</date><file>20221015173530-admin.png</file><user>admin</user><bytes>1286</bytes><size>800x600</size><flag>lock</flag><alt>代替文字</alt><cap>キャプション</cap></image>
   <image>~</image>
   <image>~</image>
   : : :
</tegalogimages>

  • 代替文字(alt)とキャプション用文字列(cap)を別々に登録できる需要があるかどうかはよく分からないが、代替文字に指定したい文字列とキャプションとして見せたい文字列が同じとは限らないので、別にできる方が望ましそうな気はする。もっとも、今はそのキャプションを表示する機能がないので、キャプションの登録機能を用意するなら表示機能も同時に用意しないといけないが。登録機能の実装だけはしておいて、最初の公開時にはそこだけ無効(非表示)にしておいても良いかもしれない。
  • 画像を一覧に表示して良いかどうかを知るため(とか、そのほか将来的に何らかの属性を保存するため)にフラグ(flag)も記録できるようにする。
  • その画像自体の仕様として、縦横サイズ(size)とファイルサイズ(bytes)もここに記録しておけば、何度も再取得する必要がなくなる。ただ、ユーザがFTP等で画像を差し替えた場合に備えて、実際の表示に使う際の縦横サイズは、毎回取得する方が良い気はする。そう考えると、別にデータファイルに縦横サイズを記録する必要はないかもしれない(原寸サイズではなく手動指定したサイズで表示したい場合に、それを記録しておく仕様にしても良いかもしれないが)。ファイルサイズの方は、まあ記録しておけば合計サイズを計算するのが早くなるだろうから記録しておく意味はある気はする。
  • 誰がUPしたのかのユーザID(user)を記録しておけば、ファイル名からユーザIDを抜き出さなくても良くなる(というか、ファイル名を自由にしてUPしている場合でもユーザを記録できる)。
  • ファイル名(file)には、とりあえずファイル名だけを記録することを考えてはいるが、パスを加えることで他のディレクトリに存在する画像も扱えるようにしても良さそうな気がする。将来的に、画像保存用ディレクトリを複数用意できるようにすることを考えるなら特に。
そのほか、サムネイル画像の存在有無も記録できるようにしても良いかな……という気もするが、「./mini/サブディレクトリに同名のファイルがあればそれをサムネイルと見なす」みたいな仕様にするなら、別にそれは記録する必要はない気もする。あまり最初から盛ってしまうと企画倒れになる可能性が高いので、最初の段階ではシンプルにしておきたい。

デフォルトの画像ファイル名が「YYYYMMDDhhmmss-USERID」の形式なのは、このようなindexを一切設けず、ファイルのタイムスタンプすらも調べずに、ただファイル名を得るだけで「UP日時」と「UPユーザ」が分かるようにするお手軽仕様だったからだ。……が、もはやファイルの整列にはタイムスタンプを参照しているし、UPユーザもindexから分かるようになるなら、ファイル名をこの形式にする必要性が全くない。もっとTwitterとかでやっているような、短いランダムな文字列を生成して gPfKn4tsWI.png みたいな感じの意味のないファイル名にする方が良いだろうか?

たぶん、画像をカテゴリ分けする需要はあるのだろうな……。ただ、そこまで一気に実装するのは無理なので(※カテゴリを表す文字列を記録すること自体は簡単だが)、そこは先送りだ。データファイルにカテゴリを記録できなくても、UP先のサブディレクトリを選択できるようになればそれでカテゴリ分けの役割になるだろうけども。ただ、UP先のディレクトリを選択できるようにするのもそこそこ手間はかかりそうだが。

ユーザがFTP等の手段で手動UPした画像も漏れなく記録するために、画像管理画面にアクセスされた際には毎回ディレクトリを走査して、index.xmlに含まれていない画像を発見したらその都度追記する仕様にする必要がある。

少なくとも、altとcapは自動復元ができないのだから、このindex.xmlもバックアップディレクトリに自動バックアップするようにしておいた方が良いだろう。

by nishishi. てがろぐ <1994文字> 編集

Markdown記法ってクライアントでパースできるのか。全然知らなかった。
ググったところ、markdown-itだとスクリプト本体は100KBしかなくて、CDNで配信されているようなので、ユーザ側には何の追加設置も求めることなく、単に読み込むだけでMarkdown記法が使えるようになるのだろうか……。
そんな簡単だったの……?
スクリプトを読み込んだ後、
var md = window.markdownit();
var result = md.render( マークダウンで書かれた文字列 );

とかやれば良いっぽい。
Markdownって100KB程度のJavaScriptでどうにかなるものだったのか……。

by nishishi. 開発ネタ <310文字> 編集

投稿されたのがどれくらい前なのかを「40秒前」とか「3分前」とか「12時間前」とか「50日前」とか表示できるようにした。投稿日時を表示できる [[DATE:~]] 記法で、
  • 「A」と記述すれば、5秒前、6分前、7時間前、8日前、9年前 のように表示(未来の日付だと、1日後、2時間後、3分後のように表示)
  • 「a」と記述すれば、5秒、6分、7時間、8日、9年 のように表示(未来の日付だと、-1日、-2時間、-3分のように表示)
するようにした。なので、表示するかどうかはスキンの書き方次第だ。(記号にAを採用したのは、Agoの意味で。)

デフォルトのスキンでどうするかは考え中。あまりにも加えすぎると画面が煩すぎる気がするので、サイトマップページ用スキンに加えておくくらいに留めておくので良いかもしれない。全投稿を一覧で見るための(サイトマップページ)スキンなら、何日前に投稿されたのか、という表示もあれば分かりやすくて便利な気もしないでもないので。

図は標準スキンの投稿日時区画で、[[DATE:Y年G月N日(b) h:m:s (A)]] と書いてみたところ。
20221025140239-nishishi.png

by nishishi. てがろぐ <489文字> 編集

あまり必要性はないと思っていたので公式サイト上でも軽く述べるに留めて詳しくは解説していなかったのだけども、てがろぐには『サーバに存在しないモジュールは、tegalog.cgiと同じディレクトリ上に(モジュールのディレクトリ構造を維持した状態で)アップロードした上で、89行目にある#use lib '.';の先頭の # を削除すれば動く』という仕様が用意してある。自力でPerlモジュールをインストールできない場合にはこの方法が使える。この方法が必要っぽい状況があることも明らかになったことだし、もうちょっと具体的に解説しておくと後々役に立つかもしれない。

by nishishi. てがろぐ <278文字> 編集

Twitterで直近投稿に表示されるような「n秒前」、「n分前」、「n時間前」、「n日前」みたいな表示ができる日付表記オプションもそういえば簡単にできそうなので作ろうか……。Twitterでは「n日前」とは出ないけども。「前」は含めない方が良いか。数値+単位(秒・分・時間・日)だけの出力にすれば、自由な文字と組み合わせて表示をカスタマイズしやすい気がする。需要があるかどうかは分からないけども。#済 >>2236

by nishishi. てがろぐ <207文字> 編集

以下の2つが同じファイルを読み込むようになるようINCLUDEの仕様を修正した。どちらも「現在適用中のスキンが存在するディレクトリ内にある hogehoge.html の中身」を読み込んで挿入する。
[[INCLUDE:FROM-THIS-SKIN-DIR:hogehoge.html]]
[[INCLUDE:[[PATH:SKINDIR]]hogehoge.html]] ←ドット記号は不要。

PATH:~記法は、必ず「/」記号で始まって「/」記号で終わることが保証されている仕様。
INCLUDE:~記法に「/」で始まる絶対パスが指定された場合は、WebサイトのDocument Rootからの絶対パスだと解釈して読み込まれる。(従来は、相対パスだけで記述するようリファレンスに書いていた。)

さらにサブディレクトリに存在するファイルを読むこともできる。
[[INCLUDE:FROM-THIS-SKIN-DIR:moemoe/sakura.txt]]
[[INCLUDE:[[PATH:SKINDIR]]moemoe/sakura.txt]]
どちらも「現在適用中のスキンが存在するディレクトリ内にあるサブディレクトリ「moemoe」の中にある sakura.txt の中身」を読み込んで挿入する。

同じことができる記法が2つあってもあんまり意味はないが。
後者の書き方は、バリエーションとしては以下のようなこともできる。
[[INCLUDE:[[PATH:SKINDIR:GALLERY]]hogehoge.html]] ←ギャラリーモードに指定されているスキンのディレクトリ内にあるhogehoge.htmlが読み込まれる。
[[INCLUDE:[[PATH:SKINDIR:SITEMAP]]hogehoge.html]] ←サイトマップページモードに指定されているスキンのディレクトリ内にあるhogehoge.htmlが読み込まれる。

同様に [[PATH:IMAGEDIR]] を使って画像保存用ディレクトリにあるファイルを読み込むこともできるが、あまり需要はない気はする。HTMLに画像データ(バイナリ)を読み込んでも意味がないし。

スレッドを時系列順に見る

by nishishi. てがろぐ <965文字> 編集

たしかに、「アスキーモードでの転送」でうまくいくのは、「FTPソフトに設定された『サーバ側の改行コード』」が正しい場合に限るわな。……と思ったのだが、もしかしてFFFTPに『サーバ側の改行コード』を設定する機能って存在しない……? なんかあったような気がしていたのだが。問答無用でLFに揃える機能だったっけ? 「改行コードがLFだと動かない」ようなサーバを見たことがないので、改行コードは全部LFなら良いのではないかという気はする(なので、てがろぐ3.0.0からは改行コードがLFだけになっている)。ただ、Windows環境でソースを編集すると一部に[CR+LF]が混入する可能性はあって、そこを防ぎにくい。設定を全部 config.pl とかに分離しても良いのだが、そうしても1行目の #! /usr/bin/env perl を修正する必要(がある可能性)は残るからな……。

by nishishi. 開発ネタ <393文字> 編集

サーバ上では Perl 5.8.9 と 5.14.4 で動作確認していて、ローカルでは Perl 5.32.0 で動かしながら開発しているので、Perlのバージョン違いで動いたり動かなかったりという可能性はあまりないと思っているのだが。(最新のPerlは 5.36.0らしいのでそれでは確認できていないけども。)なお、Perl 5.6以上でしか使えない機能を使っているので、Perl 5.6未満だと動かないのは間違いない。ただ、もはやPerl 5.6(2000年5月22日リリース)未満が稼働しているレンタルサーバはないと言って良いのではないかとは思っている。

by nishishi. 開発ネタ <281文字> 編集

次の正式版では、計画していた大きめの機能を実装していよいよ Ver.4 に……! と思っていたが、その前に修正しないといけない問題点を見つけたので、次の正式版は Ver 3.9.0 ということにして早めにリリースしたい。12月上旬あたりを目標にしようかな……。

by nishishi. てがろぐ <130文字> 編集

……んん? なんか嘘を書いた気がするな……。

tegalog.cgi を設置している場所がドメインの最上階層なら確かに、以下の2つの記述は、同じ結果(=同じファイルの挿入)になる。
 [[INCLUDE:FROM-THIS-SKIN-DIR:hogehoge.html]]
 [[INCLUDE:.[[PATH:SKINDIR]]hogehoge.html]]

でも、tegalog.cgi を設置している場所が何らかのディレクトリの中なら、上記の2つは同じにはならない。というか前者しか正しく動作しない。
カレントディレクトリを示す「.」を頭に付けることで、ドメインの最上階層に設置されている場合にだけ例外的にうまくいく。これではダメだ。_(:3」z)_
スキンのディレクトリ名だけを返してくれる記法って何かなかったっけ……? >>2233

 

by nishishi. てがろぐ <376文字> 編集

細かな機能を一気に実装してしまおうと思って、記法をいろいろ追加した。#済

■RSS Auto-Discoveryを挿入する専用キーワード [[RSS:AUTODISCOVERY]][[RSS:AUTODISCOVERY:FULL]] を加えた。RSSフィードが出力されている設定の場合にだけ、RSSの所在をlink要素で出力する。RSSフィードが出力されない設定なら何も出力しない。(これで、RSSを使わない設定にしているのにAuto-Discoveryの記述だけはある、という状態を避けられる。)

■別スキン適用時の自動調整処理をスキップできる記法 [[NO-LINKADJUSTMENT]] を追加した。これをスキンの先頭に記述しておけば、そのスキンがプレビュー適用されていたり簡易適用されていたりしても、(CSSの読み込み等で使われる)link要素や(全文検索フォーム等で使われる)form要素で、スキンディレクトリを強制挿入する自動調整が入らなくなる。(スキンの先頭に記述した場合のみ有効だが、先頭記述が要求されている他のタグ [[NO-COMPLEMENT]] とは同時に書ける。)

■今読んでいるスキンディレクトリに存在する特定のファイルを挿入できる記法 [[INCLUDE:FROM-THIS-SKIN-DIR:ファイル名]] を追加した。『自分のスキンがどのようなディレクトリ名でUPされているか』が分からなくても任意のファイルを読み込めるように。(長いので、ハイフンはあってもなくても良いようにした。)

■任意のファイルを挿入する [[INCLUDE:~]] 記法の中で、 [[PATH:~]] 記法によるパス指定を可能にした。(というか、ほぼすべての記法に [[PATH:~]] 記法を組み合わせられるようにした。)

※以下の2つの記述は、同じ結果(=同じファイルの挿入)になる。
 [[INCLUDE:FROM-THIS-SKIN-DIR:hogehoge.html]]
 [[INCLUDE:.[[PATH:SKINDIR]]hogehoge.html]]   ←カレントディレクトリを示す「.」が最初に必要な点に注意が要る。
(上記のどちらも、そのスキンが格納されているディレクトリ内に存在する hogehoge.html が挿入される。)
➡嘘でした。>>2229

[[INCLUDE:~]] 記法と [[PATH:~]] 記法を、内側スキンでも使えるようにした。

by nishishi. てがろぐ <1055文字> 編集

本体ファイルが「2ファイルだけ」という構成の軽さにもこだわりがあるのだ。

by nishishi. <36文字> 編集

リンク先のURL末尾が hogehoge.pdf だったとき、そのリンクのa要素に class="pdf" を加える機能が欲しい。

by nishishi. てがろぐ <65文字> 編集

スキンに同梱できる skin.ini という設定ファイルを用意できるようにすると良いかもしれない。この skin.ini がある場合は、そのスキンが適用されている際にだけ一時的に任意の設定を上書きできるようにする。例えば、ギャラリーモードとして使うスキン名(ディレクトリ名)を変更できるとか。ページネーション関連の出力設定を変更できるとか。そうすると、「そのスキンと組み合わせて使う他のスキン」を全部「そのスキンディレクトリのサブディレクトリ」に含めることも可能なので、(使用者側の)セットアップと管理が楽になる気がする。配布側が skin.ini を生成して用意しないといけないので、たぶんその生成機能を何らかの方法で事前に用意しておかないといけないが。[[INCLUDE:~]] の他に [[INCLUDE-FROM-SKINDIR:~]] みたいなのを用意して、「いま適用中のスキンディレクトリ内に存在する任意のファイル」を合成できるようにしておけば、スキン側が『自分がどんな名称のディレクトリにUPされているか』を気にしなくて済むようになって、自由度が上がりそうな気もする。#済

by nishishi. てがろぐ <498文字> 編集

既に [[IMAGELIST]] は実装したわけだから、次の正式版に加わることになる。しかし、鍵付き投稿用としてUPされた画像でも表示されてしまう現状の仕様では問題だから、次の正式版までには何らかの対処方法を用意する必要があるだろう。で、画像管理機能を加えるとそこそこな仕様拡張になるので、画像管理機能は Ver.4 に向けた機能群に加えた方が良さそうだ。一旦、Ver.4 に向けたロードマップを書いてみるかな。Ver.4では、ログインセキュリティ機能とか、ちょっと(影響範囲が)大きめの機能を作る。(以前から作りたかったのだが、他の細々した機能を先に作ってしまおうと思って先送りしてきた。)なので、「鍵付き投稿用としてUPされた画像でも表示されてしまう」今の [[IMAGELIST]] のβ仕様を解決する他の良さげな方法を思いつかない場合は、次は Ver 3.9.0 ではなく Ver 4.0.0 だ。

by nishishi. てがろぐ <403文字> 編集

目次モード >>2209 もあっても良いとは思うのだが、「目次」というからには最初に表示されないといかんのではないか、という気はする。「ギャラリーモードをデフォルトにしたい」という要望も頂いていたが、特定のモードを初期表示にするのは実装にちょっと手間がかかる(パラメータなしのときに特定のモードを見せること自体は簡単だが、「modeパラメータがないときは通常モード」という前提でどこもかしこもコーディングされているので、様々ある表示状況(バリエーション)全部に対して整合性を確認して調整するのが大変な気がする)ので保留にしている。畳む 標準添付スキン9種類はどれもTwitter的に「短い呟きを垂れ流す」用途のスキンなので、これらに目次が必要とされるケースはあまりなさそうな気もする(強いて言えばブログタイプスキンだけはちょっと違うが)。それよりは、「初期状態が目次に見えるスキン」を使ってもらう方向の方が(モードを増やすよりも)シンプルで良いのかもしれない。とすると「初期状態を目次のように見せたい」場合に便利な機能を追加していく方向性の方が良いのか。
サイトマップページモードは本当に要らなかった気もしないでもないのだが、Fumy News Clipperを将来的に(公開停止して)てがろぐで置き換えるためには、(Fumy News Clipperに存在する機能を全部てがろぐ側に用意する必要があるので)サイトマップページを生成できる必要があった。

by nishishi. てがろぐ <624文字> 編集

記法が複雑になればなるほど使いこなせる人が減るので、「手軽さ」を維持できるようにできるだけ平易な記法に留めておくよう気をつけたい。

by nishishi. <65文字> 編集

やっぱり、画像を管理する仕組みが必要だ。今の [[IMAGELIST]] だと鍵付き投稿に含める用の画像も問答無用でリストアップされてしまうので、それを避けるには、画像1つ1つに何らかの属性を付与できる必要がある。ついでに、代替文字もあらかじめ登録できるようにしておけば、もっと便利になる気もする。./images/ に index.xml とかを用意して、そこに画像一覧データを入れておけば、毎回ディレクトリ内を走査する必要もなくなるので省力化もできるし。index.xml はXSLTで直接閲覧できるようにしても良いかもしれない。

by nishishi. てがろぐ <267文字> 編集

カテゴリとしては残しておきたいが、もう追加することはまずないから投稿欄の下部にあるチェックボックスは非表示にしたい……みたいな設定ができるようにしたい。QUICKPOSTからは消えて、管理画面の編集画面では見える、みたいな状態だと(どうしても追加したいときには管理画面の投稿/編集画面の方を出せば済むので)便利な気がする。

by nishishi. てがろぐ <161文字> 編集

今年からは10月第2月曜日の祝日名が「体育の日」ではなく「スポーツの日」なので、祝日リストのデフォルト値を書き換えておくこと。

by nishishi. さんごよみ <63文字> 編集

OGPのog:image用の画像を動的に生成したい場合(テキストの画像化ツールへテキストを送りたい場合)のために、『「Ⓐ指定URL」+「Ⓑ投稿本文の冒頭テキスト」』みたいな文字列をog:imageに指定できる機能とかあると便利だろうか? Ⓐは設定画面で任意指定、Ⓑは自動抽出、みたいな。

by nishishi. てがろぐ <143文字> 編集

画像を掲載することがメインのスキンを1つ用意するかなあ……。ただ、これ以上スキンを増やすと、更新時の管理が面倒くさすぎるのだが……。_(┐「ε:)_

by nishishi. てがろぐ <74文字> 編集

ページ内リンクを作る記法が欲しい。リリースノートとかで、長い文書を公開するとき、冒頭の目次から見出しへ飛べるリンクが作れると便利だから。アンカーポイントを作る記法として例えば [ANCHOR:hogehoge] とかを用意して([A:hogehoge]の方が良いか)、[>A:hogehoge:リンクラベル] とか書けば「リンクラベル」という文字列で、アンカー名 hogehoge の場所へ移動するリンクになるとかどうか。

(追記) 別の記事からも、アンカーを指定して飛んでこれる記法がある方が望ましい。[>123#hogehoge]とか?

by nishishi. てがろぐ <271文字> 編集

新着画像リストの「全191個」の部分は、ギャラリーモードへのリンクにしておいても良いかも知れない。

by nishishi. てがろぐ <49文字> 編集

投稿本文の行数がめちゃくちゃ多い場合には、(投稿単独表示以外の表示時では)自動的に指定行数以後を畳んで「続きを読む」ボタンを表示する機能を作りたい。

by nishishi. てがろぐ <74文字> 編集

Re:2212◆それよりも、てがろぐ管理画面内の「画像管理」側で、「その画像に対する代替文字とキャプション」をあらかじめ登録しておける仕様にしておいて、[PICT:画像ファイル名] だけなら画像だけ、[PICT:(オプション):画像ファイル名] なら、オプションに「A」があれば代替文字(alt)を出力、「F」があればfigure要素+img要素で出力、「C」があればfigcaption要素でキャプション(C)を出力……みたいな感じにできる方が楽で便利かもしれない(事前に登録可能にする実装が面倒だが)。ただ、それだと臨時のキャプションが付けられないか。

by nishishi. てがろぐ <287文字> 編集

画像にキャプションを加えてインライン掲載できるような記法を作りたい。代替文字ではなく。代替文字(alt属性値)を指定する記法は既にある(→ [PICT:ファイルパス] ではなく [PICT:代替文字:ファイルパス] と書く)ので、この記法を維持したまま何らかの拡張をする必要がある。代替文字の指定方法をもうちょっと何か汎用的にするべきだった。orz 代替文字をそのままキャプションにする方法でも悪くはないとは思うが、「代替文字は指定したいがキャプションにはしたくない」みたいな場合もあるだろうから、やはり別に設けた方が良いだろう。

例えば、
figure要素を出力するための [FIG:画像記法:キャプション] というカバー記法を用意しておいて、その内側に既存の画像記法を挿入して [FIG:[PICT:代替文字:ファイルパス]:キャプション] と書くと、<figure class="pictbox"><img ~ alt="代替文字"><figcaption>キャプション</figcaption></figure> みたいに出力されるとか? ただ、見た目が複雑になるので、よほど記憶力が良くないと使えなさそうな気がするから、望ましくはなさそうだ。(内側に画像以外も含められる可能性があるので汎用性は高まるけども。)

例えば、
[PICT:代替文字:キャプション:ファイルパス] とすることで代替文字とキャプションを指定できる方法にすれば簡単だが、この方法だと「ファイルパス以外の文字列」が1つだけ存在するとき、「代替文字が省略されたのか、キャプションが省略されたのか」の判別ができない。まあ、キャプションを指定したい人が「代替文字は出力したくない」と思うケースは少なそうな気はするので、これで良いのかもしれないが。

この「figure要素+figcaption要素」で画像とキャプションを掲載できる仕組みがあれば、「キャプション付きの画像を横並びで掲載する」みたいな表示方法が簡単にできるメリットがある。

by nishishi. てがろぐ <859文字> 編集

./images/ディレクトリにある画像ファイル名と同じファイル名で、./images/mini/ディレクトリに画像が存在する場合、「ページ上の表示は./images/mini/側の画像を使って、Lightboxでのリンク先には./images/側の画像を使う」みたいなオプションを加えると、画像をFTP等で別途UPしている人々には役立つかもしれない。FTP前提の機能なので、役立つ範囲は狭そうだが、元々画像をWebへFTP等でUPしているユーザさんにとっては使えるかもしれない。(一番良いのは、てがろぐ側で画像サムネイルを生成することだが、CGI設置環境の制限を極力低く抑えておきたいと考えると、ちょっと採用が難しそうな気がしている。)

by nishishi. てがろぐ <319文字> 編集

予約投稿機能の実装もわりと簡単に実装できそうな気がしてきた。既に「投稿日時の手動設定」機能と「下書き」投稿機能があるので、これを活用すれば良さそうだ。

1. てがろぐが実行された際に時刻を確認。
2. 予約時刻に達していなければ「下書き」状態のまま。
3. 予約時刻を過ぎていれば「下書き」を解除して公開。

誰かがアクセスしなければ上記「3」が実行されないので、「予約時刻になったら自動で公開される」というわけではないのだけど、誰もアクセスしていないのであれば、公開されていなくても問題ない。
『予約時刻を過ぎてアクセスしてきた1人目の閲覧タイミング』で(下書き状態を自動解除して)公開状態にすれば、事実上は「予約時刻で自動公開」したのと同じ結果になる。(人間以外のBotやRSSリーダ等がアクセスしてくる場合も同様。BotでもRSSリーダ等でも何でも、アクセスされれば「てがろぐが実行される」ことに変わりはないため。)

コンテンツを静的に事前生成するようなCMSだとこの方法は採れないが、てがろぐのように(WordPressとかもそうだが)全ページを動的に生成するならこの方法で問題ない気がする。
予約投稿の需要がどれくらいあるのか分からないが、企業や組織サイトでお知らせ用途にてがろぐを使っている場合には需要あるだろうか。

by nishishi. てがろぐ <567文字> 編集

サイトマップページとSITEMAP XMLが紛らわしすぎるので(たとえカタカナと英字で使い分けても)、「サイトマップページスキン」と呼ぶのをやめて「目次スキン」と呼ぼうかな……。で、「目次モード」と「SITEMAP XMLモード」があることにするとか。スキン用途も「サイトマップ」というよりは「目次」と言う方が分かりやすい気がする。今のskin-sitemapよりももっと目次っぽく見えるスキンを作っても良さそう。

by nishishi. てがろぐ <207文字> 編集

内側スキンで [[CATEGORYLINKS:FULL]] と書いても、カテゴリページへのURLがフルパスで出力されない不具合を発見した……。#済 修正した。

by nishishi. てがろぐ <83文字> 編集

ハッシュタグの仕様は、最初に実装するときにもうちょっとじっくり考えれば良かったな……と思ってはいる。ただ、今更仕様を変更すると(既存の投稿への)影響範囲が大きそうな気がするので難しい……。「現行仕様」と「半角空白記号のみを終端と判断する新仕様」とを設定で切り替えられるようにして、新規セットアップの場合にだけ後者をデフォルト設定にしておく(バージョンアップの場合は自ら設定を切り替えない限りは前者)、みたいな方法ならいけるかもしれないが。

by nishishi. てがろぐ <219文字> 編集

てがろぐは、本文と画像は別管理なので、たとえ本文と一緒に画像を投稿したのだとしても(画像は画像で別に保存されているので)本文を消しただけでは画像は消えない、という点はもうちょっとあえて説明しておいた方が良いのか。(一般のアクセス者からはURLを直接指定しない限り見えないが、ログインできるなら画像管理画面から見える。)

てがろぐで画像を投稿できるようになったのはVer.2からなのだが、当初は管理画面の「画像の管理」から事前に画像をUPしておいて、画像一覧から投稿本文に貼り付けたい画像を選んで投稿を新規作成するしか操作方法がなかった。本文と同時に画像を投稿できるようになったのはもうちょっと後のバージョンからだ。なので、「本文と画像が別管理」ということを説明する必要性に思い至らなかった。今のバージョンから使い始めた人々は、「本文と一緒に画像も保存されている」と解釈(誤解)してしまっても無理はないな……という事実につい最近気付いた。

by nishishi. てがろぐ <419文字> 編集

最小構成ZIPの配布をやめて(一般向けには完全構成ZIPだけにして)、代わりに「バージョンアップ用ZIP」としてプログラム2ファイル(tegalog.cgiとfumycts.pl)だけを含んだZIPを配布するのでも良いかもしれない。いや、3つ全部を配布するのが一番良いかもしれないが。増やすと手間も増えるので面倒だし。……というか、私自身は構成ファイルを生のままサーバにUPする作業だけにして、サーバ上で適宜勝手にZIP化するようなスクリプトを書いておけば、配布ZIPのバリエーションがどれだけ増えても私の手間は増えずに済むか……。そういう仕組みを作っておこうかな……。

by nishishi. てがろぐ <285文字> 編集

「続きを読む」ボタンを押したら何が出てくるのか、という情報を、ボタンのラベルそのもので示せると便利そうな気がするので、やはりボタンのラベルは動的に指定できるような仕様にする方が望ましい気がする。 >>2203 #済

by nishishi. てがろぐ <107文字> 編集

[H:~中身~]という記述で「~中身~」の部分が「続きを読む」というラベルのボタンで隠される仕様で、その「続きを読む」という文字列は管理画面から自由に設定できるが、ボタンのラベルをその都度変更することはできない。これを [H:ボタンラベル:~中身~] のように書くことで、「続きを読む」ボタンのラベルをその都度指定できる仕様にしようか……? 長くなるので畳みたい場合と、ネタバレだから隠したい場合とで、ボタンのラベルを使い分けたいケースはありそうだ。#済

by nishishi. てがろぐ <228文字> 編集

ハッシュタグ一覧のリスト(li要素)には該当数がclass名に含まれているが、現状の <li class="count172"> だけだと使いにくいので、class="count172 over100 hash1"class="count95 over90 hash2"class="count92 over90 hash3"……みたいな感じで、ざっくりな値とか、上からの順位とかも加えておくと何らかの装飾とかに使いやすいかもしれない。

by nishishi. てがろぐ <220文字> 編集

最新投稿を別の静的ページに埋め込む目的でそれ用のスキンを作ると、Powered-by表記を含めざるを得ない仕様なので、やはりmode=embedみたいな埋め込み専用モードを設けるつもりでいる。

by nishishi. てがろぐ <96文字> 編集

てがろぐの画像投稿機能は元々オマケ機能的にしか考えていなかったので、何一つ管理していない。画像管理画面では投稿画像の一覧は出てくるが、その画面にアクセスした際に毎回ディレクトリ内のファイル一覧を取得して、日付の降順に並べているだけだ。なので、ファイルサイズも縦横サイズも(表示が必要になった時点で)その都度取得している。今のところそれで困ることはなさそうだが、画像数がとても多くなってくるともしかしたら何か不都合が出てくるだろうか? 内部で画像インデックスみたいなファイルを用意して、そこに各画像の属性を記録しておけば、毎回ディレクトリを走査しなくても良いし、画像の属性を毎回取得しなくても済む。たぶん、その方が望ましいのだろうな……とは思っているのだが。画像をメインにUPする用途で使う場合、画像そのものもカテゴリ(ディレクトリ)分けできて検索できる方が望ましいのかもしれない。ただ、その辺の要望が来たことはないのだけども。

by nishishi. てがろぐ <413文字> 編集

キャッシュしておけるものは最大限キャッシュしておいて、動的生成の頻度を極力減らして、そろそろ速度向上(負荷軽減)を図った方が良いだろうなあ。毎回全データを読み込む仕様なので、データファイルの大きさに比例して重たくなっていくハズなので、データファイルを読んでどうにかする以外の部分の負荷くらいは削減しておきたい。

by nishishi. てがろぐ <155文字> 編集

てがろぐ解説ページにpre要素を使って掲載されているソース記述例のフォントが(Windows環境では)読みにくいので、何か良さげなフォントを明示する方が良い気がする。今は何もフォントを指定していないので font-family: monospace;が適用されているが、それだと(Windows環境では)MSゴシックで表示されてしまう。#済 ➡とりあえず、font-family: "Consolas","Bitstream Vera Sans Mono","Courier New",Courier,"メイリオ",monospace;にして、英数字はそれっぽい欧文フォントで、日本語文字はメイリオで表示されるようにしてみた。メイリオの指定がないと、Windowsでは(日本語文字に)MSゴシックが使われてしまう。

by nishishi. てがろぐ <357文字> 編集

もし今Web拍手系のフリーCGIを開発するとしたら、スパム対策機能が必須だよな……。ただ、自由に入力された文章からそれがスパムかどうかを判定する処理を自力で書くのは困難なので(外部に何かそういうのを判定してくれるライブラリとかがあってそれを使えれば良いけども)、自由文の入力は不可に設定できて、「あらかじめリストアップされた絵文字だけ」とか「あらかじめリストアップされた短文だけ」とかから選択できるようにできるとか、くらいか。最初の拍手は、連打可能にする方が需要があるっぽいので、総数だけでなく「連打なのか単発なのか」を把握できる仕様もあると良いのかも知れない。

by nishishi. 開発ネタ <281文字> 編集

指定年月のカレンダーは、パラメータ?year=2022&month=8とかで出せるが、そうではなく「先月」とか「2ヶ月前」みたいな相対的な指定でも表示できるようにしたい。?cal=-1とか?cal=-2とか。そうすると、事前にリンクなりブックマークなりを1つ作っておくだけで「現在より1ヶ月前」とかのカレンダーにアクセスできる。

by nishishi. さんごよみ <164文字> 編集

「画像+画像の下にキャプション」というブロックを横並びにできるようなレイアウトが作りやすくなるような出力形態もできるようにすると便利なのかな。現状で「画像に代替文字を設定する記法」はあるので、その代替文字を代替文字としてだけではなくて画像の下にfigcaption要素とかで出力するような。(全体はfigure要素で出力する。)

by nishishi. てがろぐ <164文字> 編集

静的に生成されている他のページ(トップページとか)に最新投稿1件だけを埋め込む方法として、「埋め込み専用のスキンを用意する」方法を解説しているけども、『最新1件だけを出力する専用パラメータ』を設けておくと便利なのかもしれない。?mode=umekomiとかで。リンクはすべて絶対パスで出力するようにしておけば、設定をいじる必要がないし。その際の出力形態(ソース)は「設定」→「補助出力」で設定できるような感じで。この場合には、ライセンスに関係なく「Powered by てがろぐ」の文字列を挿入しない仕様にしておけば便利に活用できそう。カテゴリを選択して最新投稿1件だけを出力できるように?mode=umekomi&cat=hogehogeみたいなようにもできると良いかもしれない。

by nishishi. てがろぐ <341文字> 編集

検索リンクに、結果を時系列順に表示するオプションを加えられるようにしたい。……のだが、どう記述させるかが難しそうな気もしてきた。[>S:検索語] に対して [>SR:検索語] とかにするか……?

by nishishi. てがろぐ <97文字> 編集

Powered by てがろぐ Ver 4.3.0.

DASHBOARD

■開発放言について

にしし製CGIの開発進行に関する放言です。思いついたことを適当に放り込む空間なので、どんな呟きも確定的な開発予定というわけでは全くありません。しかしながら、機能面でのご要望や開発予定機能への支持表明はお気軽にどうぞ。ただし、ここには直接は投稿頂けませんので、公式動作テスト用てがろぐ等をご利用下さい。

編集

■全文検索:

■日付検索:

■カレンダー:

2022年10月
1
2345678
9101112131415
16171819202122
23242526272829
3031

■ハッシュタグ:

▼現在の表示条件での投稿総数:

544件

▼最後に投稿または編集した日時:

2024年05月13日(月) 18:01:20