めも。
さらにめも。
Javascriptを切っている方は、どういった理由で切っているのでしょうか?
という一文に反応してみます。
端的に言ってしまえば、オンにしている必要性をあまり感じない、つまり恩恵と呼べるほどの JavaScript を提供しているところが (私のみている範囲では) ないから。そもそもとして製作者が提供する JavaScript は「実行できなくても (実行しなくても) 文書の利用には支障は無い」という使われ方が一般的なわけですから、恩恵が薄くて当然なのかもしれませんが。その他にも高機能アクセス解析の限界やアクセス解析についてなどにも書かれているように、 JavaScript の実行を非許可にしていると (隠さなければならない情報ではないにせよ) 隠せる情報もあるので、といった理由もあります。煩わしいポップアップ広告も JavaScript の実行を非許可にすれば、一括シャットアウトできます。
とはいうものの、文書によっては JavaScript の実行を許可していないと文書の利用そのものの妨げになることもあるので、その辺りについて補足をすると、必要なとき以外は常時オフにしていて必要なときにボタンひとつあるいは簡単な操作ひとつで JavaScript の実行を許可できるようにしているので、現状で特に問題もなかろうかと感じているわけです。(ちなみに私はマウスジェスチャで簡単に許可できるようにしています)
で、オフにしている理由があまりにも瑣末だったので「何故オフにしているのだろう」ともう少し深く考えてみたもののこれといった理由もなかったことに気付きました。そもそも私は、ブラウザの初期設定でオンになっているからといってそのまま使いつづけるというのではなく、一度全て (たとえば ActiveX ) の実行を非許可設定に、その設定でブラウジングした際支障が出たら実行許可の検討をする、という手順を踏んでいるのですが、何故そんな面倒くさいことをしているのだろうか、と。そのかわりというわけではないのですが、疑問として「何故オンにしてるのですか? 」というものが出てきました。あるいは「何故オフにしないのですか? 」と。
また勝手に連想ゲームをしてしまうのですが、私は JavaScript もの実行も画像の表示もオフ設定にしていますし、 Cookie もブロック (?) していますが、その設定でブラウジングしていてもこれといった支障はないように感じています。インターネットオプションのレベルのカスタマイズなどでオフ (無効) にできるものは基本的にオフ設定というわけです。あと、あまり関係ないのですが、「ページの自動読み込み」は代替を用意していない文書が多いので、オンにしておいた方が良いような気はしました。全く関係ないな、これ。
レビューどころの騒ぎじゃないです。ヘルプもロクに読んでない。
現在利用してるエディタに何の不満があるわけでもなかったのですが、暇だったのでエディタを変えようと思ったのです。ちなみに今現在利用しているのは TTTEditor とかいうやつです。
さて何にしようと考えたところちょうどよくフリーのHTMLエディタを比較してみる。なんてサイトを見つけたので、一人フムフムなどと頷きながら物色。で、JavaScript製、IE上で動作
の IE HTMLEDIT がなんだか面白そうで使ってみたかったのですが、このソフトはレジストリを使用しているらしく、私はそれが気に食わなかった、というかアンインストール方法が予め明示されていなかったのに不安を覚えたので、利用するのをやめて、前述でご紹介したサイトで高い評価を得ている ez-HTML を利用してみることにしました。
それで今そのエディタでこの文章を書いているわけなのですが、このエディタは初期設定のままだとちょっとうざいかも、などという所感を抱きました。まあ、高機能なエディタというのは、どれも初期設定のままではゴテゴテし過ぎているのでしょうけれども。高機能というより多機能、というべきなのかな。いずれにせよ、ヘンなボタンが多くてどのボタンがどんな効果を秘めているのかを覚えるだけでも大変そうです。もし全てを頭の中に叩き込んだとしても、エディタなんて日記を書く程度にしか使わないのだから、覚えたところで使わないっぽい、少なくとも私は。
そんなわけである意味邪魔なものをザクザクと非表示にしているのですが、そもそも私は予めたくさんの機能を備えているものから不必要だと判断したものを削っていくというのがどうも性にあわないんですね。どちらかというと、シンプルなものに必要なものをたとえばプラグインなどで付け足していくというのが好み。
話を戻して。私はタグの入力支援というものにあまり魅力を感じない人間なので、不等号 ( < ) を入力した際に間髪いれずに「なにタグ入力するの?! 選んでね! 」みたいなものが出てきたときに最も鬱陶しさを覚えました。「私のことはどうか放って置いてください。勝手にやりますから」などと強く感じました。これにあまりにも煩わしさを覚えてしまったので急遽 (大げさ) 記述方法を変え、たとえば p タグを書くときは、<p>と入力し確定しないまま Shift + 無変換 で回避してみることにしました。話を戻した途端から全く関係のない話ですね。
当面の邪魔くささが回避できたのでいろいろと遊んでみたところ、いくつか TTTEditor にはない (というか、私が知らなかっただけかも) 良いところを発見しました。
自身がよく用いているバージョンの HTML を設定することにより簡単に仕様を閲覧出来るというのがあります。しかもこれは、仕様書をそのまま引くのではなく仕様がある程度噛み砕かれた説明にもなっているので、 Strict に慣れていない人にも優しい設計。っていうか、これすごいです。その他にもリファレンスを即座に参照できたりもします。
ver6.40からは「HTML鳩丸倶楽部」のリファレンスもヘルプとして使えるようになっています。「とほほ」「HTML鳩丸倶楽部」のどちらかを標準に設定しておくと、エディタ上でF1キーを押した時に、指定したHTMLリファレンスが起動します。「HTML鳩丸倶楽部」はやや中級者向けのリファレンスですので、慣れた人なら良いと思います。また、リファレンスは直接ボタンからダウンロードページへ飛べるようになっています。
HTML に対してはこれだけではなく、現在編集中のHTMLドキュメントを文法的に正しいかどうかをチェックする事ができるようになりました。
とヘルプにあるように、頑張って文法チェッカをローカルで動作できるようにさえできれば、これもまた簡単にチェッカにかけることもできるようです。
その他、プレビュー機能というものがあるので、たとえば CSS をよく書く人などはいちいちとブラウザを起動して……なんてことをしなくても済むので便利です (私はあまり使わなかったのでわからないのですが、たぶんそういった意図だと思います、えーっとたぶん) 。 CSS の表示確認のみならずブラウザというのはある種の簡易的なチェッカでもあるわけですから、 CSS になんて興味ないですよという方でも用途はあります。
ざっと使った程度でここまで感嘆できたので、おそらく使いつづけると前述の事柄などよりももっと素晴らしい機能にふれられるような気がしました。 Windows ユーザでエディタにお悩みの方は ez-HTML を試用してみてはいかがでしょうか。
TTTEditor ではいろいろとショートカットキーを割り振って使っていたのですが、そのクセが抜けないまま新しいエディタを利用すると、そこでも同じように (割り振っていないのにも関わらず) 同様のショートカットキーを入力している自分にびっくりしました。というか、キーを押したあとにヘンになっていないか気になってしまった。 ez-HTML では別の意味が込められていたり、なんて思ってしまって。あと、 TTTEditor と ez-HTML を単純に比較をすると、慣れれば ez-HTML の方が万人ウケしそうです。スプラッシュもカッコいいし。関係ないか。
というか、私はエディタに高機能なものを求めていないんだろうなと思いました。文書を公開するようになってから 2 年弱が経過しようとしているわけですが、つい最近までは notepad を利用して作成していたんですね。で、この notepad にもあまり不満がなかったわけでして。 notepad の不満点をあげるのならば、
この 2 点だけでして、これさえ解消できれば高機能なものでなくても構わないわけでして。まあこれはこれでずいぶんとでかい不満点なのかもしれませんけれども。
で、 TTTEditor で気に入っている機能に (ってなんで TTT の話になってるんだ) 、日付の挿入とテンプレートの挿入ができるというものがあるんです。しかもこれらはショートカットキーをそれぞれ割り振ることができるので、その点も申し分ない。逆に言えば、この機能さえあればなんでもいいや、みたいな。
書きすぎました。してして。
これを読んでいてふと思ったのですけれど、たとえばふつうの文章でも誰かが発した言葉ならば鍵括弧で括ったりするじゃないですか。そういうのもある意味マークアップといえるのではないか、と。しかも鍵括弧で包含された文字列はきちんとした入れ子構造になっているというのが当たり前ですから、理解もされやすい。これなら小学生の国語能力でも理解が出来そうな。
しかし仮に、マークアップというものが理解されたとしても、最終的に利用の有無を決めるのは製作者なので、利用されるかはまた別なんですよね。
こう思われたら敵わない。この壁を如何にして破るか、なのだろうなあ。というか、そういう話をしているのだろうな。
見出しに引きずられてしまった。
「お母さんも安心! 」がキャッチコピーかどうかは知りませんが、キッズgoo で遊んでみました。キッズgoo [インフォメーション] 免責事項が他の文書と大きなギャップがあって面白かったです。そこはキッズで徹さないんですね、みたいな。
キッズ goo では親切にも読み方が難しい漢字にルビをふってくれるサービスがあるのですが、試しによく足を運んでいるサイトを検索し、ルビをふってみたところ、ふられているルビがヘンだったりもして面白かったりしました。「2ちゃんねる」で検索をしたらこのページはキッズgooのルールいはんが見つかったためひょうじしないよ
と軒並みフィルタリングされていたりもまた面白かったです。
もう飽きたけど。
不満を述べたところで何が変わるわけでもないのですが、本文に著者情報などの記述ができるのであれば、私としては
<address>
<ul>
<li>
めーるあどれす</li>
<li>
ぶんしょの URI</li>
<li>
らすとなんたら</li>
</ul>
</address>
こういうマーク付けも許して欲しいなと思うわけです。あるいは仕様でスッパリ本文には address 要素はと記述できませんよとしてもらうとか。まあ、記述できるからといって記述しなければならないわけではないので、不満があるなら head にだけ記述し、本文には記述しなければいいのかもしれませんけれども、 head に記述したところで、わからない人 (や UA ) からすれば伝わっていないのと似たようなものですし。それにしてもなんか中途半端だよなあ。
ブーたれるんなら HTML の利用をやめればいいのかもしれませんけれど。
address 要素の不満というより address タグの不満でした。
どうもありがとうございます。久々に Google をフル活用した気がしました。換言すると「必死」 (こちらは仕様です) 。
そういえば Google さんは表紙の方を拾ってくれないんだけれど、なんでだろう。
もし死にたいのだとしたならば、「死にたいです」とか「死にます」だとか傷心っぷりをアピールしないで黙って実行すると良いように思う。「死にたいです」だとか「死にます」だとか言ってしまうと、それを聞いたうちの優しい人々は「どうしたの? 」と尋ねてしまうでしょう。そして慰められたり励まされたりしてしまう。そうすると、死にたかったのにも関わらず死にたくなくなってしまうような。とか。
自殺をほのめかして本当に死ぬ人ってどれくらいいるんだろうな。
上手くまとめられなかったので、作例と簡単なメモだけ。伝わる人には伝わるかもしれませんが。 HTML は WWW 語だ! みたいな。
<dl>
<dt>
ほげっ</dt>
<dd>
説明など</dd>
</dl>
<dl>
<dt id="hoge">
ほげっ</dt>
<dd>
説明など</dd>
</dl>
このときそれぞれの語句 (の説明) を参照しやすいよう本文に登場している語句「ほげっ」から命名した注釈や補注へアンカーを設けている――つまり<a href="#hoge">
ほげっ</a>
とする――ケースをよく見かけるのだけれども、参照行為はリンク先リソースの訪問と考えるとこれはおかしい (この日本語もおかしいかも) 。
仮に、フラグメント付きの URI へのリンクが任意の場所付近へのジャンプではなく (厳密な意味で) リンク先リソースの訪問ととらえると、前述のような ID 属性値の設け方では ID hoge を参照すると、「ほげっ」という文字列がブラウザには表示される (というのもヘンか) 。すると、説明が成り立たなくなってしまう。
そもそも<a href="#hoge">
ほげっ</a>
によって参照されているリソースは<dt id="hoge">
ほげっ</dt>
でしかないわけだから、やっぱりヘンな感じだ。製作者が参照させたいリソースは dt 要素ではなく dd 要素であると窺えるわけで。
<dl>
<dt>
ほげっ</dt>
<dd id="hoge">
説明など</dd>
</dl>
どちらがイコール関係としてふさわしいかと考えたら、<dt id="hoge">
ほげっ</dt>
かもなあと少し思う。けれど、 dt 要素が dd の title と考えるとシックリはくる。なんかものすごく強引な解釈な気もしますけれど、まあメモなんで。と免罪符を添えるのはセコイか。
そもそも、 dt, dd を包括して命名できればスッキリするわけだけれども。
どこで読んだかのか思い出せないのですが、ひとつの dt に対してひとつの dd が妥当 (とまでは書いていなかったような) というのがありまして。
HTML文書中の終点側アンカーは、A要素(name属性で命名される)によっても、また他の要素(idで命名される)によっても、指定できる。
従って例えば、著者は、同じ文書にあるH2要素やH3要素などの見出し要素に対して各項目がリンクしている目次を作ることもできる。A要素を使って終点側アンカーを生成する場合、次のように書ける。
<H1>目次</H1> <P><A href="#section1">概説</A><BR> <A href="#section2">背景</A><BR> <A href="#section2.1">個人的な注意</A><BR> …残りの目次項目… …文書の本文… <H2><A name="section1">概説</A></H2> …第1章… <H2><A name="section2">背景</A></H2> …第2章… <H3><A name="section2.1">個人的な注意</A></H3> …第2章第1節…見出し要素自体をアンカーにすることで、上と同じ効果を実現できる。
<H1>目次</H1> <P><A href="#section1">概説</A><BR> <A href="#section2">背景</A><BR> <A href="#section2.1">個人的な注意</A><BR> …残りの目次項目… …文書の本文… <H2 id="section1">概説n</H2> …第1章… <H2 id="section2">背景</H2> …第2章… <H3 id="section2.1">個人的な注意</H3> …第2章第1節…
あるいは
id属性は、A要素を含むあらゆる要素の開始タグで、アンカーの生成に用い得る。
次の例は、H2要素をアンカーにするためのid属性の用法を示す。このアンカーは、A要素からリンクされている。
詳細は<A href="#section2">第2節</A>で得られる。 …中略… <H2 id="section2">第2節</H2> …中略… <P>詳しくは、前述の<A href="#section2">第2節</A>を 参照されたい。
命名しない。
だいぶ前に読んで、また最近ふと「そういえば面白かったコラムがあったな」と思い出したものの、記事の数が多いサイトだったので目次を頼りにしたところで中々見つけることが出来なかった文書。ようやく見つけられた。だもんで、また読みたくなったときに探し出すのが億劫になることが予想できるので、今ここにメモっておく (僕は何回でも読む) 。ちなみにGoogle 検索: カナかな団の躁鬱 諸君ですぐに探し出せました。各文書に一貫した文字列があると探すのが楽でいいですね、というお話。
あと、好ましくないマーク付けがされている文書の製作者の多くは、 (理解が出来ないから) 正しいマーク付けができないというより、単にやらないんだろうなと思うようになってきた。この前も似たようなことを書いたけれど、考えれば考えるほどそう思えてくるようになってきた。トンデモが入ってきた僕がいうのもアレだけれども、マーク付けというもの (概念/方法) 自体は単純なものだから。あるいは、好ましくないマーク付けがされている文書の製作者が、単に正しい HTML の用途を知らないだけか。
情報を欲していて尚且つ知らないという方々は、たとえば僕がそうだったように、放って置いてもきちんとした記事に辿り着くからいいとして、 (正しい用途の存在を知らなければ出来ないのだけれども) 知ろうとしない方々にどうやって知ってもらうか、が課題。しかし残念ながら WWW でそれは中々難しい。そう考えるとひたすらに「正しい用途があるんですよ、実は」ということを説いておき、それらの記事を偶然に発見されることを待つしかないようなと。と思う。僕にはそんな高尚なことは出来ないし、出来たとしてもやらないけれど。(「偶然」というのは様々な意味でまあアレでナニですけれど)
マーク付けというもの (概念/方法) 自体は単純なもの
と言えてしまったのは、既にそれをある程度理解できているからかもしれない。つまりそれを理解出来るようになるまでは、ひょっとしたら苦労をしていたのかも、と。僕自身がいつどうやって理解できたのかを自覚できていなかったからちょっと怪しいけれども。
で、マーク付けというものをわかっている (知っている) 人からすると、
自然言語で書かれた文書を、要素ごとに分割していく作業、或は、文章の中に潜在的に存在する要素をタグによつて明示する作業の事を、マークアップ(マーク附け)と言ひます。
この説明で理解や納得が簡単に出来てしまう (と同時に筆者自身らはマーク付けというものをわかっているから「わからない人でも、この説明で理解できるだろう」と思ってしまう) わけだけれども、そうでない方からすると果たしてどうなのか、という。
あーっと、マーク付け云々は余談です。
2004年01月04日の日記、映画は吹き替えよりも字幕がいいで「ペイフォワードはラストで主人公が死んじゃうけれど、どうせ実話じゃないですよね」みたいなことを書いたのですが、Google 検索: ペイフォワード 実話というリファラがあったので調べてみたら実は実話でした、みたいな。しかし誰も教えてくれないんですね、こういうの。ちなみに「実話だった」という根拠は以下の引用文です。
誰かに「不可能なこと」をして助けてあげる、その誰かが三人の誰かにやっぱり「不可能な」援助なり救済をする・・・という流れで世界を変えていこうというアイディアが、この映画の命。
中学校の社会科授業からそれが始まるという発想は面白い。
実話がもとになってるのですが、実際にこの運動が発展したのかどうかは知りません。
しかしまさかHTML文書作成日記が「Google 検索: ペイフォワード 実話」の 5 番目にヒットするとは。と思わず記念撮影。目当ての情報を提供できなくてなんだか少しだけ申し訳なく思ってしまった。まあ、 Google さんが勝手にやっていることだからさほど気にはしていないけれど。
ちょこちょこと同映画の感想を読んで周ってみたのですが、多くの方が「ねずみ講だよね」とか「実話なのかな? 」などという、だいたい似たような印象を受けるのだなと思いました。よ。そういえば Web 日記での映画のレビューやら感想やらは、「映画を見るか見ないかを判断する材料」ではなく「同じ映画をみて、他の人はどう思ったのだろう」ということを知るためについつい読んでしまうものだな、などと思いました。思いました。思ったんだ。
特別映画好きってわけでもないのに、なんでこんな文章書いちゃったんだろうな。な。
出来ませんでしたが、というオチ。
この日記は製作者の嗜好から最新分の日記が文書の下へ下へと追加される仕様 (というか、自分でやってるだけですが) なのですが、これは最新の更新を追いかける方からすると実に煩わしいようなと今更ながらに思い、これを改善すべくあれこれと策を練っていたのですが、結局のところ現状と同等の手間でそれを実現させるのは僕には無理みたいでした。どうせ手間を増やすのならば、少しの負担で大きな恩恵に与りたいなというわけで、先程考えた手段ではそれも叶わぬことだとわかったので現状のままでいくことにしました。
というわけで、考えたこととかを以下に列挙。
特別な技術や知識も要せず単純でいて最も手っ取り早い手段として、書くときに新しいものを上に追加していけば話は済むのですが、これは個人的には嫌なんですね。
僕は人の日記を読むときはどちらかというと (って何と比較しているわけじゃないのですが) 古いものから順番に読んでいきたいタイプなのですが、新しいものが上へ追加されていくタイプの日記の場合、上へ下へとスクロールしながら読むハメになるので、順を追って読むのが非常にダルくなる。ひとつのファイルが大きいものは特に。で、これは自分が作成した日記であっても例外ではなく、ふつうに上から下へスクロールするだけで順に読めるようにしたいわけなので、これは却下に。
んじゃあってンで、上から下へで順を追って読めるようにしつつ、双方に利益を齎すためにはどうすれば手っ取り早いかと考えたところファイルの細分化が妥当かな、と思ったのですが、これは僕が非常に面倒な思いをしてしまうので却下に。
なんだかよくわからないけれども、先々月と先月は無駄に更新しすぎたためにファイルのサイズが大きくなってしまった (約 70KB 前後) ので、細かく分割すれば、小記事を参照するときであってもそれなりに利益がありそうなのですが、たとえば「上旬・中旬・下旬」とファイルを分割してしまうと、 ./latest
からの転送設定も月に 3 回も設定しなおさなければならなく、非常に面倒。この設定をたとえばスクリプトなどを組んで自動で出来ればいいのですが、残念ながら僕にはそんな知識がないの却下。
あと、参照するのであればできればそちらに転載や (度を越えてしまっても構わないので) 引用していただきたく。
ご近所さんでAkiary -日記作成支援CGI-のお話がされていたので、これを利用してみよう試しにローカルで弄ってみたのですが、どうにも思ったとおりのカスタマズが出来なかったので挫折。ここで狙ったのは、
これだったのですが、ここまでの処理は上手くいったのでよしとするも、自身の預かり知らぬところでファイルが動的に生成されるのが嫌だったので、自動で生成される目次やら過去ログやらを生成しないようにしたかったのですが、これがどうにも出来なかったのであえなく却下の方向に。まあ願ったり叶ったりだったのですけれども。
ちなみに Akiary はフォームでの改行を br に置換してくれるのですが、これは「改行コード変換」の行を無置換設定にしたら解決しました (つまり $BODY{$dids[0]}=~s/\x0D\x0A/<br>/g; # 改行コード変換(Win)
などを $BODY{$dids[0]}=~s/\x0D\x0A//g; # 改行コード変換(Win)
とかそんなのにした (や、ローカルの環境が Windows だったので) 。難しいことはわからなかったのですが) 。
それと、投稿年月日やわけのわからないアンカーが無駄に吐き出されてしまうのが鬱陶しかったので、それらも吐き出させないようにしてみました。 $ret.=<"a name=\"$date{$_}\"></a>\n";
をコメントアウトしただけなのですけれど。あと、見出しのアンカーがすぐに死んでしまうのがアレな感じもしたので、 <base href="http://云々">
とかで対処してみたり。ってなんだか上手くいってしまっているのですが、月をまたいでしまうとちょっと面倒になるんですね。そんなわけで強引に却下にしてみたのです。
まあこれが一番妥当かなと。そんなわけで来年の今頃には XML + XSL(T) とかで。なんていうか、この勉強の動機付けのためにいろいろと強引に却下したっぽい。
なんだかずいぶんと長い前フリでしたが、とりあえず XML + XSL(T) で公開というのもヘン (だよな、公開は HTML 文書としてなのだから) ですけれど、その辺りの作成環境を構築。
で XT では Shift_JIS が扱えないようなので、 Shift_JIS が扱えるパーサを使おうと思い Java が実行できる環境を構築しようと思ったのですが、こちらは失敗してしまいました。難しいことはわからなかったのですが、ダメなものはダメなわけでした。 Java の方は環境変数を追加しないとダメなのですか? そんなことをどこかで読んだ覚えがあったのですが。まあ、そんなことを言われても相変わらず難しいことはわからないのですけれども。
ちなみに、 XP やらのことは知りませんがわりと古い Windows ですと環境変数の PATH は自分で追加しなければダメっぽいのですけれども、その際 Autoexec.bat を弄るハメになるのですが、追加に失敗というか、適当にやってしまうと Windows が起動しなくなる罠に陥ります。そんなときは Safe モードで起動して Autoexec.bat に追加した問題個所を削除あるいは訂正すると直ります。と、余談。
あと、愛用しているエディタでは UTF-8 とかが扱えないんですね。困ったな。←伏線。
扱える文字コードの数に惹かれて試しに使ってみました。感想というより愛用しているエディタとの比較です。あるいは、 HTML 文書の制作環境の構築。あと、相変わらずさっき使い出して今感想書いています。
以前に僕はそもそも私は予めたくさんの機能を備えているものから不必要だと判断したものを削っていくというのがどうも性にあわないんですね。どちらかというと、シンプルなものに必要なものをたとえばプラグインなどで付け足していくというのが好み。
なんてことを書いたのですが、この xyzzy はその追加作業が非常に面倒くさく、またコンピュータの扱いに慣れていないと (というのも大げさですが) 、その追加作業すらままらないほどの扱いづらいエディタだという所感を抱きました。ここまで面倒な思いをするならば、多機能なエディタから機能を削除していった方が楽です。
しかし xyzzy の魅力としてはこのカスタマイズの柔軟さであることは間違いないので、その面倒くささやわかりづらささえ乗り越えてしまえば、あるいは自分に最も適したエディタになるかもしれません。ただ、繰り返しになりますが前述したようにカスタマイズ方法がわかりづらい。さらに、聞きなれない用語もたくさん出てきますし、何より、 1 から 10 まで懇切丁寧に方法が記述されているサイトは皆無に近いので、まずは導入から少々のカスタマイズまでを初心者にもわかりやすい説明で記述されているサイトを探すのが先決のような気がしました。
そんなわけで、上記サイトを頼りにとりあえず導入と、雰囲気をつかむことに成功したのですが、さすがに初期設定や初期機能だけでは単なる使いづらい無骨なエディタでしかないので、以下、とりあえず愛用しているエディタと同等の機能を施すまでの道のりを。万人の参考にはならないでしょうけれども。
僕は *.html ファイルよりも *.shtml ファイルをよく作成するのでそうすると、 *.shtml ファイルを開くたびにいちいとと mode の切り替えをしなければならく (関連付け? の方法がよくわからなかった) 、それが億劫だったので、予めxyzzyに同梱されているhtml-modeよりも、大幅に編集を楽にする機能が盛りだくさん
ということもあり、導入してみました。
最近の高機能なエディタには漏れなく (?) ついてくる日付挿入機能も xyzzy ではカスタマイズしないことには、その機能を付加することも出来ないので (いや、できるかも……) 。
;日付挿入 ;例 ;<div class=LastM>Fri, 01 Aug 2003 09:44:23 +0900</div> (global-set-key #\C-8 #'(lambda () (interactive) (insert (format-date-string "<div class=LastM>%a, %d %b %Y %H:%M:%S %Z</div>")))) ;日付挿入 ;個人的Change-log ;例 ;03年9月9日 午後6時20分1秒 お名前 <mail@address.com> (global-set-key #\C-7 #'(lambda () (interactive) (insert (format-date-string "%y年%#m月%#d日 %p%#I時%#M分%#S秒 お名前 <mail@address.com>")))) ;日付挿入 ;例 ;(Aug 01 2003) (global-set-key #\C-6 #'(lambda () (interactive) (insert (format-date-string "%b %d %Y"))))
サーバソフトを導入すればローカルでも文法のチェックが可能なのですが、いちいちそこまでするのも中々面倒な話。そんなわけで、エディタから文法のチェックが出来るようにするとチェック好きな人は楽かもしれません。ただ、ローカルでチェックとはいっても、Active Pearl のインストールも必要になってくるので、今まではサーバソフトを立ち上げていたけれども……という方におすすめのような気がしました。
- siteinit.l(追加)
(defvar *htmllint-file* "[htmllintのあるパス]") (defun htmllint-exec () (interactive) (let ((file (get-buffer-file-name))) (when file (pipe-command (format nil "perl \"~A\" \"~A\"" (map-slash-to-backslash *htmllint-file*) (map-slash-to-backslash file)))))) (global-set-key #\[キー] 'htmllint-exec)Another HTML-lintがローカルにインストールされていれば、それを使って現在のバッファを文法チェックします。結果は
*Shell Output*
バッファに表示され、そこからタグジャンプでエラーの出た場所に飛ぶことができます。使用するには、HTML-lint本体の他に、Perlなどもインストールしておく必要があります。詳しいことはHTML-lintの「ダウンロード」のところを見てください。
[htmllintのあるパス]
は、「htmllint」(拡張子なし)がある場所をフルパスで指定します。「"C:/www/htmllint/htmllint"」など。
ひと月に数度程度の更新回数ならば FTP ツールを立ち上げるのも億劫ではないかもしれませんが、更新回数が毎日に近ければ近いほどツールを立ち上げて、というのは (慣れてしまえばどうということもないのでしょうが) 案外面倒。そんなわけで、ボタンひとつでツールの立上げ……ではなく、ボタンひとつでファイルの put までをしてしまおうというわけです。
いわゆるショートカットキーを割り振ることにより、ある意味では既存の日記スクリプトなどよりも簡易にファイルの更新をすることが可能。
この日記では、基本的に新しく文章を書くたびにテンプレートのようなものを呼び出して書くようにしている、つまり
<div class="section" id="ID">
<h3><a href="#ID"></a></h3>
<dl class="date">
<dt>記述年月日</dt>
<dd></dd>
</dl>
</div>
これをボタンひとつで一発で吐き出させるようにしてるのですが、 xyzzy で同じことをやろうとしてもどうにもその方法が見つかりませんでした。これが出来ないと話にならない。わりと近いものでtemplate-insertというのはあったのですが、これは新しく作成するファイル名に応じたテンプレートをインサート
するためものなので、似て異なるもの。
で、ちょこちょこと探してみたらどうやら可能なことは可能ならしいです。
- 564 :Name_Not_Found :03/09/02 18:29 ID:???
web日記を書いています。毎日、毎日
- <div class="section" id="d030902a">
</div>
- <h3><a href="0309.html#d030902a">ほげ</a></h3>
こんなのを手で書くのはダヤいのでlisp使って一撃で入れたいです。030902は日付で、その後ろのaは、一つ目の記事という意味です。同じ日の二つめだと、例えば id="d030902b" みたいに自動的になってくれるとうれしいのですがこんなことは可能でしょうか。無理であれば、手で書きますので、日付から生成される id だけでもいいです。
- 565 :Name_Not_Found :03/09/02 19:05 ID:???
>>564
diary.lを導入するとかndiary-modeを導入するとかじゃだめ?
- 566 :Name_Not_Found :03/09/03 00:12 ID:???
>>564
(defvar *564-id-format-pattern* "id=\"d%y%m%d\\(.\\)" "id のフォーマット") (defvar *564-change-of-day-hour* 6 "日付の変わる時間") (defvar *564-cursor-pattern* "${cursor}" "テンプレート挿入後のカーソル位置") (defvar *564-sequence-pattern* "${seq}" "テンプレートで連番に置換される") (defvar *564-section-start-pattern* "<div class=\"section\"" "テンプレートでの section の開始パターン") (defvar *564-template* "<div class=\"section\" id=\"d%y%m%d${seq}\"> <h3><a href=\"%y%m.html#d%y%m%d${seq}\">${cursor}</a></h3> </div>") (defun 564-succ (c) "564: 連番生成関数(超簡易版)" (cond ((characterp c) (string (code-char (1+ (char-code c))))) ((stringp c) (564-succ (char c 0))) (t "a")))- 567 :Name_Not_Found :03/09/03 00:13 ID:???
>>564
(defun hoge (title) (interactive "sTitle: ") (multiple-value-bind (second minute hour day month year) (get-decoded-time) (let* ((class "<div class=\"section\" id=\"~A~A\">") (head "<h3><a href=\"~A#~A~A\">~A</a></h3>") (filename (if (get-buffer-file-name) (file-namestring (get-buffer-file-name)) (format nil "~2,'0d~2,'0d.html" (mod year 100) month))) (anchor (format nil "d~2,'0d~2,'0d~2,'0d" (mod year 100) month day)) (re (format nil class anchor "\\(.\\)")) (char #\`)) (save-excursion (goto-char (point-min)) (while (scan-buffer re :regexp t :tail t) (let ((c (char-after (match-beginning 1)))) (if (char> c char) (setq char c))))) (setq char (code-char (1+ (char-code char)))) (insert (format nil class anchor char) #\LFD (format nil head filename anchor char title) "\n\n</div>\n") (forward-char -8))))- 568 :Name_Not_Found :03/09/03 00:14 ID:???
>>566
(defun 564-diary () "564: 日記テンプレート挿入関数" (interactive "*") (let* ((now (- (get-universal-time) (* *564-change-of-day-hour* 60 60))) (id (format-date-string *564-id-format-pattern* now)) (opoint (point)) (seq)) (save-excursion (when (scan-buffer *564-section-start-pattern* :regexp t :reverse t) (scan-buffer id :regexp t :limit opoint) (setf seq (match-string 1)))) (save-excursion (insert (substitute-string (format-date-string *564-template* now) *564-sequence-pattern* (564-succ seq)))) (replace-buffer *564-cursor-pattern* "" :reverse t)))- 569 :566 :03/09/03 00:15 ID:???
かぶった。。。
- 570 :Name_Not_Found :03/09/03 00:19 ID:???
>>564
可能です。
- 571 :Name_Not_Found :03/09/03 00:23 ID:???
>>564
モテモテだね。
- 572 :564 :03/09/03 16:09 ID:???
566、567さん、ありがとうございます。どちらも素晴らしいです。実は、h2要素を書くのにも似たようなことが必要だったので、566さんのものを若干いじってh2用に、567さんのものをh3用に使わせていただきます。ありがとうございました。
で、この 566 (と 568 ) さんが投稿したものを利用させていただくという感じに。ただ、 566 さんが投稿したものだと ID 属性値の末尾が英字になってしまいこれはどうにかならないものかと思い、カンに頼り弄ってみたところ "a")))
この部分を数字に置き換えるとまあ、いい雰囲気になりました。しかしこれでもまだ問題がありまして、この構文だと #日付(一桁の記事番号) となってしまい、なんだかあまり感じがよろしくない。そんなわけで二桁で吐き出させるよう頑張ったのですが、どうにも僕の知識では無理。数値での出力は諦めて (十の位は) 数字で出せば良いかな何てことも考え、そして試したのですがやっぱり無理で。
とりあえず暫定的に以下のようにしてみました。 ${cursor}
の位置が微妙なのはまあアレで。
(defvar *564-template*
" <div class=\"section\" id=\"ID%d${cursor}${seq}\">
<h3><a href=\"#ID%d${seq}\"></a></h3>
<dl class=\"date\">
<dt>記述年月日</dt>
<dd>%Y年%m月%d日</dd>
</dl>
</div>
")
ちなみに、 566, 568 のものを追加するのは、 .xyzzy ファイルに同構文を記述すればいいような。で、僕は (global-set-key #\割り振りたいキー '564-diary)
とかもついでに記述。(動けばもう何でもいーやって感じですよ)
ez-HTML や TTTEditor では、左辺にエクスプローラ風のツリーを表示することができ、ちょこっと他のファイルを編集する際にその機能が便利だと感じていたので、 xyzzy でも同じようにしてみようと思ったのですがどうにも出来なかったのです。付属のファイラで代替?
なんだかものすごくバカバカしいことなのですが。
僕は小さい文字 ( 9pt くらい) が好きなので、エディタなどでデフォルトの初期値を必ず変えているのですが、 xyzzy も例外ではなく早速変えてみたところ、半角英数字のサイズだけ変わってしまい日本語のサイズは初期設定のサイズのままでした。で、いろいろと弄ってみたところ、日本語部分の文字サイズも変えることに成功しましたよ、と。
文字セットを ASCII ではなく、日本語にすれば良かったのですね。
せっかくカスタマイズするのだから余計なものも弄ってしまおうというわけで、今までは特に興味もなかった色分けもカスタマイズしたのですが、既存のものだとどうもわけのわかららない部分で色を共用してしまっていて、好みの色分けに出来なかったのですが、Tips - xyzzy - 各種設定 - キーワードを参考に弄ってみたところ、好みの色分けにすることができました。
ところで見出し行になる<H1>〜<H7>、
ってなんだかヘンなような。ヘンと感じたのは HTML4.01 しかわからない人間だからなのかもしれませんけれども。
余程の動機がなければ使いつづけようとは思えないエディタ。なにより、 HTML 文書の作成程度で使うのもアレ。 lisp という言語を学びたい人には良いかもです。
便利! 以下余談。
そういえば、仕様書と『失われた時を求めて』は癌で長期入院するときのためにとってあるんですよ! つまり読まないのです僕らは梃子でも。
と仰る方もいらして、僕はこれに根本的な疑問を感じているのですが、何故仕様に目を通すことをしないんでしょうね。皮肉ってるわけじゃなくてホント疑問。とはいうものの僕も「わからないことがあったら仕様に目を通す」って程度だから似たようなものなのかもしれませんけれども。
たとえば HTML の仕様書は HTML について全くわからない知識レベルの方が読んだとしてもチンプンカンプン (だと思う) なので、そういった方が仕様に目を通さない (あるいは、少し目を通してさっぱりわからなかったから読むのをやめてしまう) のも何となく納得出来るできるのですが、何となくわかるレベル (つまり僕と同程度の知識レベル) の方が読まないというのはなんだか疑問なのであります。
仕様書というのはわかってくると面白いですよ。一度騙されたと思って読んでみると良いです。ホントに騙されちゃったら、まあすみませんという感じで。と、予め。(読んでないといいつつ、実際は読んでいるのでしょうけれど)
……なんてことをいいつつも、僕もREC-CSS2 邦訳は未読なんですね。ダメすぎ。 CSS は検証サービスに頼りっぱなし。しかも僕がよく使っている検証サービスは HTML のそれとは違い、エラーの根拠を懇切丁寧に示してくれるわけでもないから、なにがどうダメなのかとかはあまり頭に入っていない。「ダメなものはダメなんだ」「何でダメなの? そういう仕様だから」という程度。
InternetExplorer とかのぶっくまーくの整理です。 (説明も) 自分用。
多分おすすめ。
(お断り) わかりやすくするために説明において国際標準の定義とは若干異なる用語の使い方または一部省略があることがあります。
ここでは、window98・2000では、The JavaTM 2 Platform, Standard Edition v1.3.1_02のインストール方法を、LinuではJava2SDK Standard Edition Version1.2.2_007 Linux版のインストール方法をとりあげています.
時々、SDK、JDK、およびJREといった、Javaパッケージの配布形態の違いによる混乱があります。Java2 SDK (Software Development Kit) の中で最新のバージョンをインストールするべきです。JDK (Java Development Kit) は、Java2 SDKの古い通称です。Sunは、ある段階で名称を変更しましたが、この古い通称はまだ使用されています。たとえば、Java2 SDK v1.3をインストールした場合、デフォルトのインストールディレクトリはjdk1.3となります。
JRE (Java Runtime Environment) は違います。JREはJavaプログラムを実行するための、SDKのサブセットです。BlueJに関して言えば、JREでは十分ではありません。SDKにはBlueJが使用しているいくつかの開発ツールが含まれるため、BlueJの使用の際はSDKを必要とします。JREはSDKの一部として自動的にインストールされます。
整理してみたら思ったよりも少なかったことに気付いたというか、半数以上が「いらないかも」ってサイトだった (上記サイトはそのフィルタをくぐりぬけたサイト群ですよ) 。調べたいことがあったら Google で事足りてしまう。そういえば、ぶっくまーくとかって自分用メモみたいのを添えられたら便利だよな。ポップアップで表示、みたいのとか。まあ無理なんだけど。 CGI スクリプトでも組んでみようかな。その程度なら作れそう。
僕ははてなダイアラではないですけれど、 xyzzy のひとつの拡張として。なるほどこれは既存のエディタでは出来ない拡張だなと思いました。カスタマイズが柔軟なエディタならではですね。簡単な操作で更新できる。って xyzzy も既存のエディタなのですが、その。で、この hatena-diary-mode の概要は以下。
- xyzzyから直接はてなダイアリーの日記を更新できます。
- 既に記入済みの日記もHTTPで取得し、修正・更新できます。
- 編集バッファに適用するメジャーモードを、既存のものから選択することが出来ます。
しかし、はてなダイアリーモードを使用する前に、まずやっておかなくてはならないことがあります。それは、hd:*hatena-id*で設定したはてなIDで、はてなのサービスにログインした状態にしておくことです。
ともあるように、ログインまでは自動では行えない模様。まあそこまで望むのは贅沢なのかもですが。とはいうものの、明示的にログアウトしない限りはログインしたままの状態になるので毎回ブラウザなどで確認する必要はありません
とあるように、代替 (でもないか) がきくので特別不便さは感じない。そもそも毎回ログインして日記を記述あるいは貼り付け、そして送信という手間が省けることは事実なので、不便どころか便利。
はてなダイアリの更新作業の手間と xyzzy の使用の慣れ、どちらを取るか。そんな感じのような。作業負担の軽減ばかり追いかけていると「面倒ならば公開しなけりゃいい」なんて言われそうですけれど、公開できるという魅力は凄まじく。あとあまり関係ないですけれど、探せば MT-mode なんてものもありそうですね。 hatena-diary-mode なんてものもあるくらいですから。 xyzzy の拡張スクリプトは作るではなく探す、が妥当。とか言い切ってみました。 4, 5 日しか使ってないというのに。
サイト内検索というのはよく見かけるけれどもページ内検索というのはあまり見かけなかったなということで。盲点だったのではなく、それくらい利用者側で何とかしろということなのかもしれませんけれど。あるいは、製作者側で用意されていないということは、利用者が欲していないということなのかもしれない、つまり利用者はその程度の技術 (?) は有しているのかもですが。
応用として、このスクリプトを利用して、検索エンジンGoogleから検索されて飛んできた場合、検索された単語や語句のキーワードをURLから読みとって、自動で検索し、その場所に移動させる事ができます。
日記などさまざまなジャンルをごちゃごちゃに書いている場合はすぐに目的とするところに飛べるので便利かもしれません。
ここで紹介されている構文が果たして妥当なものなのかは僕には判断できないのですが、ページ内検索というのはひとつの機能としてあったらあったで便利かもと思いました。つまり無かったら無かったで支障は無く。こういった機能は製作者が用意した方がいいのか (よろこばれるのか) は微妙ですし、製作者が利用者のためを思っての提供であっても逆に鬱陶しがられてしまうのですが難点といえば難点。
WWW 利用者は「 (知っているから) できる人」と「 (知らないから) できない人」あるいは「やろうとする人」「しない人」の差が大きいんですよね。アンカーの target 属性 (値) も似たような事柄から指定の是非が分かれる。利用者が手間を惜しまなければ (当該サイトの) 製作者は多少は楽になりそう。逆に製作者が手間を惜しまなければ (当該サイトの) 利用者は利用が楽になる。「できない人」には方法を教えれば出来るようになるけれども、「しない人」は方法を教えてもしない。そう考えると、なんだか文書の利用や制作の際の手間の押し付け合いになってきているような気がしないでもない、是非はべつにして。「○○が出来るようにしてくださいよ」→「そんなの利用者側でどうにかすればいい」みたいな。
ちょっとこの文章支離滅裂気味だ。あと、余談がメインになってしまったので、見出しに悩んだ。
とりあえず、単一の XML 文書から複数の HTML 文書を作成する方法がなんとなくわかってきました。単純に単一の XML 文書から異なるマーク付けがされている HTML 文書の作成が出来たってだけなのですけれども。ただ、実用化 (じゃないか) はもうしばらくかかりそう。でも複雑なことをしようとさえしなければ、わりと近いうちにでも思ったとおりのことが出来そうな感じが。いやあ……でもゴニョゴニョゴニョ……。
なんつーか、同一の XML 文書から XSLT 変換で見出し一覧とか RSS とかいろんなもんを生成させてると、「 Valid なマークアップ文書は再利用性が高い」とかいうお題目がホントの事のように思えてきますなぁー。…いやホントなんだろけど。わらい。
これが実感できたのでありました。あと、当日記は約 1 年ばかり遅れているのだなと思いました。や、この引用文が 1 年くらい前に書かれたものだったので。
新たな知識や技術を学ぶうえで、教える側が「とりあえずやってみましょう」なんていうのはあまり好きではないけれども、学ぶ側が「とりあえずやってみよう」と自発的に思うのであれば、そういった動機が冷めないうちに多少無理してでも「なんか楽しくなってきたレベル (ってなんだ) 」程度までは学習してしてしまった方が良いように思えてきました。だから何? ってわけでもないのですけれど、今が楽しい時期なんです。でも、このひとつの壁を乗り越えてしまうと次には「やりたいこと」と「 (そのときの知識レベルで) できること」のギャップに気付き始めて嫌になっちゃうかもですが。ただ、下地があると大きな壁とはならないので、そこから先は興味次第という気も。
ちなみに、この当時はまだ
とのこと。だからなのでしょうか。現在のように HTML への妙な誤解もされていないので、わけのわからないマーク付けが一切なされていなく、今でも十分に通用するマーク付けになっています (そりゃそうか) 。なんだかいいなあ。ところで、日本で最初ニホームページが公開されてから、まだ 10 年少々。実感できないほどの長い時間が過ぎているわけではないんですね。いい時代に産まれたな、と思いました。<HTML>
や<BODY>
といったタグはありませんでした。
なんか HTML 大好きっ子サイトになってきたような……。いや、確かに好きなんですけれども。
おかしい。なんでこんなに大きくなってしまっているんだ。おかしい。(そしてこの文章でまた……)
当初はこんなに書くつもりもなかったし、実際書いてはいなかったんだけどなあ。まあ半分は引用文とタグなんんだけれども。しかしこんなに大きくなってしまうことがわかっていたならば、初めから分割しておけばよかったと思う。ファイルサイズが大きいと参照する方も鬱陶しいだろうし、ファイルを細かくしておけば転送量の削減にも繋がる。が、既に遅し。暇を見つけて分割でもしようかな。あるいは、既存の HTML 文書を XML 文書化して XSLT する (過程で細かくする) とか。今はまだ知識がないから無理だけど。
ところで目次の方では SSI でもって各月ファイルのサイズを示しているのだけれども、表示する単位を任意のものにすることはできないのだろうか。個人的には端数は切り捨てて構わないから KB にしたいと思っているわけですが。無理なのかな。
<!--#config sizefmt="〜" -->
#fsizeコマンドなどで表示されるファイルサイズのフォーマットを指定します。〜 に bytes を指定するとバイト単位で、abbrev を指定すると Bytes, KBytes, MBytes などの適切な単位で表示されるようになります。
引数値は bytes, abbrev のふたつしかなさそうだから無理っぽいんだけれども。とわかっているのにごねるのもアレっぽい。手作業は手間なので嫌なんです。というか、わざわざファイルサイズを示す必要もない気も。
とほほから引いて他の文書を参照するのは、まあご愛嬌ということで。
一部方面では既出甚だしいですが。
なんというか「ああ、こうやって誤解が広まっていくのだなあ」とか「 HTML についてよく知らなければそうなってしまうよな」という印象。伝説の提唱者 (?) さんが無駄に自信たっぷりなものだったから少し煽られてしまっていたようだけれども。個人的には、提唱者さんがおっしゃっていた俺は見た目が好きなんでこれからも使うけど
という文言が印象的でありました。おっしゃっていた文言ってのはヘンか。
この記事を読んだ中の HTML などに関心がある人々は適切なツッコミ (及び代替案の提示) をしていたので、適切ではない用法が広まってしまうのと同時に、 HTML の正しい用い方というのも広まったという感じがしないでもないので結果的にはよかったよかった、とか。そもそも、文法上あまりよろしくない解説などを流布していると、それら全てにではないにせよ適切なツッコミが入るので、それと同時に正しい用法も広まるんじゃないかと思っていたりもします。以前も書いたように「正しいからといってきちんとするか」は別問題のような気もしていますし、間違いがあって正しいものを、というのも遠回りですけれども。
まとめると、「 HTML への言及をするのであれば、コミュナ監視下でやるといい」みたいな。コミュナというのは個人的に (脳内で) 良く使っている造語です。何をさしているかは秘密!
どうせ僕はエディタを使ってなんか高尚なことをしようなんて当初から思ってはいなかったし、これからもおそらくはしないのだろうから、べつに xyzzy のような高機能でいて多機能且つカスタマイズが小難しいエディタに手を出す必要はなかったわけです。というか、エディタを変えようと思ったのは何回か書いているとおり、常用しているそれでは UTF が読めないからなわけで、であるならば、常用しているそれと似たような雰囲気を持つもので UTF が読めるものというのを第一条件として探せば良かったのだな。今気付いた。これを端的にまとめると「 xyzzy で <
とかって一発挿入できないんですか」ということです。
というか、 xyzzy の html+-mode というのでは、 Tab で字下げを行おうとしたら & が挿入されちゃうし (これは改善できました) 、終了タグを書こうと </
とまで記入したら無駄に先読みされて勝手に終了タグを補完されちゃうし (これも改善できました) 、前述したけれど、 <
なんかを一発で挿入できるかなと思っていたらそうでもない (単なる見落としかもですけれど) ようだし、その辺を改善すべくいろいろと見て回っていたのだけれども情報量の多さから目当ての情報も見つけられなくて、気がついたら日が暮れちゃってるしで「ぼくにはもうよくわからないよ (クスンクスン) 」という感じで、どうにも馴染めなかったのでありました。ちなみにこの文章は TTTEditor で書いております。
そんなわけでして、 MK Editor でも使ってみようかなと思っておるわけです。感想とかは書かないと思いますけれど。