C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

HTML5でも<script src="hoge.js"></script>としなければならない理由は何か?

<!DOCTYPE html>
<title>the hoge</title>
<script src="hoge.js"></script>

上記はコード例を紹介するために端折ったソースではなく、完全なHTML5のソースコードです。

しかし…、煩わしいですね。</script>を何故書かねばならないのか。

<!DOCTYPE html>
<title>the hoge</title>
<script src="hoge.js">

src属性があるからそこに内挿されるべきスクリプトはHTMLに現れない事は順にパースしているだけでも判るわけです。src属性が無ければパース中のHTMLコードは次にスクリプトコードが入る事になりますから</script>は必要でしょう。しかし何故、<head>や<body>や</li>を省略可能としたHTML5ではその方向性に対して<script>タグの終了タグの記述必要性については結局触れないままになっているのだろう?

はてさて。本件については、

とかちらほらナンデヤネンという話は存在するけど、XHTMLではなくてHTML5ですし、どうも納得できませんね。

と、その後、日本語でこんな解説も見付けた。HTMLダルイ・x・

いっそのことHTML以外のドキュメント規格にウェブブラウザーは対応したらどうか。MarkdownやReStructuredTextに対応したらどうか。WebGLCanvasもある今、JavaScriptの直接実行に対応したらどうか、例えば.jsを直接ロードした場合は見た目は空っぽだがDOM定義されたHTMLからたった1つのscriptを呼び出された状態とするとか。個人的には.lhsなどにもサーバーサイドではなくウェブブラウザーが対応したら良いと思うがどうか。

実はこの</script>問題は10年前からずっと思っていました。当時は仕様書がどうとか歴史的がどうとか考えもしなかったけど。

はてさて、ダルイのは嫌だ・w・;

<追記>

そういえば、「はてな記法」もけっこうダルイのですが・・・、Markdownみたいなのに対応してくれないかしら…。なんか私にはこれ覚えにくいのですよねー。かといってソースも書きたい事が多いから「みたまま」ってのだとそれはそれでダルイし、あげくにあれで編集したコードってHTMLそのままなで、直接的にははてな記法と互換性ないのよね・・・。だるいのやだー・x・;