blog

ハイパーテキスト・マークアップ言語(HTML)プログラマーズ・ガイド

一度だけですが。 私はプロの科学者ではありませんし、百科事典は私の指先にありますから、急ぐ必要はありません。 技術部長は出張中、副操縦士はマネージャー、後部座席にはカメラマン仲間。カメラの中央には自信...

Feb 1, 2021 · 2 min. read
シェア

この時点で、HTMLの前世、彼の祖父、父、兄弟の紹介が始まるわけですが......。

私は科学の専門家ではありませんし、百科事典もいろいろと手元にありますから、焦る必要はありません。

今日、職場で手さぐりの手引きを体当たりで実践し、釣りの腕を磨いていると、同僚から写真が送られてきました。ここには直接掲載できませんが、簡単に説明すると次のようなものです。

テクニカル・ディレクターが出張中、助手席にはマネージャー、後部にはカメラマン仲間。中央には自信に満ち溢れたテクニカル・ディレクター、右にはステアリング・ホイールが殺され、中央には聖なる光を反射するベンツのロゴ。

絵そのものは何でもないことですが、物事にはつながりがあります。空想するのが得意な従業員の中には、無から有を生み出すことを日課にしている人もいます。特にこの2年間、私の会社では毎月給料が振り込まれず、辞めた同僚はいまだに会社と損害賠償を争っています。

この車は、私を正当なバナナグリーンと不当な怒りでいっぱいにします!

面白くないですよ。

だからこそ、HTMLとは何か?

HTMLの生みの親は、ワールド・ワイド・ウェブの偉大なる父、ジョン・バーナーズ=リーです。しかし、これを具体的に説明するには、年表をさらにさかのぼって、HTMLの祖父母を見つけてください。

ハイパーテキスト・マークアップ言語(HTML)は、ハイパーテキストとマークアップ言語に分かれており、両方を解釈すればHTMLを解釈したことになります。 マークアップ言語はHTMLの祖父です。

マークアップ言語というと、何か素晴らしく複雑な問題を解決するために作られた神秘的な新言語のように理解されるかもしれませんが、実は最も古いマークアップ言語は現在でも使われており、それは句読点です。

このノートではマークアップを多用しています。

翻訳のせいでしょう。

句読点もマークアップ言語であり、プログラマーが慣れ親しんでいるhtmlタグとはかけ離れたものである理由を説明することが重要です。

マークアップ言語の現代の一般的な定義によると、マークアップ言語は、文書の構造やデータの処理に関する詳細を提示するためにテキストやその他のテキスト関連情報を組み立てるコンピュータのテキストエンコーディングです。

ここで、私はこの定義に、現代の一般的な定義という修飾語をつけ加えたいと思います。実際には、前述のように、最も古い時代から、最初に使われたマークアップ言語は句読点でしたが、コンピュータのテキストコードとはみなされていませんでした。

ASCIIにはカンマや括弧などがあるのに、なぜコンピューターコードではないのですか?

ここで、少し句読点を打つために、一時停止し、離れてください。

日本では、句読点は秦の時代以前から存在していました。秦の時代以前は、句読点は「発生段階」であり、「後世に広がらなかった」のです。当時、人々はいくつかの一般的な記号を定義し、記事の終わりを表す「L」の記号など、一定の意味を与えました。<说文解字>また、「丶」のような記号も、後の版には<说文解字>含まれています。

このままだとできないので、句読点はそういうものです。ただ、日本語の句読点はとても古いものだということを知っておいてください。西洋では、私は読んでいませんが、古代ギリシャで登場したと言われていますから、それもかなり早いですね。

だから、コンピューターが登場したときからあるものをコンピューターXXと呼ぶことはできないでしょう。

句読点はテキストの一部でもなく、意図された内容でもありませんが、テキストとテキストに関連する内容を組み合わせて、文書の構造やデータ処理の詳細を示します。

人前で小説を読むとき、あなたは文章だけを読み、句読点は読みません。しかし、感嘆符、疑問符、アポストロフィ、ダッシュなどに出くわしたとき、訓練された高度な読書マシーンであるあなたは、驚き、疑問、ためらいなどの複雑な感情を必ず表現するはずです。

これをデータ処理の詳細と呼びます。

当時は理にかなっていたマニュアルのレイアウトも、今では信じられないほどで、大変な作業でしょう。

しかし、この操作はマークアップ言語が行うことを完全かつ忠実に表現したものです。その後のマークアップ言語の発展にかかわらず、その役割は「文書の構造とデータの取り扱いに関する詳細を提示する」ことです。平たく言えば、これはレイアウトであり、文書の構造や体裁を定義することであり、これがウェブ開発においてHTMLが果たす役割です。

まもなく、ジョン・バーナーズ=リーがHTMLを創始したことを正式に語る時がやってきます。

現代のマークアップ言語の一般的な分類は、一般的に、表現的マークアップ/手続き的マークアップ/記述的マークアップの3つです。

結論から先に言うと、最初の2つは時代とともに時代遅れとなり、3つ目が登場して最初の2つが明らかに不要になったように、最初の2つは昔の残りかすであることが証明され、捨てられるようになったのです。

見捨てられた者たちの近況を少し。

これが上記の論文からの写真です。

無印のものは見ないでください。この指示マークを始めとして、不要なもの、目を引くものです。

最初はどこにセックスマークがあるのかわからなくて、何もなかったんです。それから、探して探して、探して探して、何かを見つけました。

HTMLでは、プレゼンテーショナル・マークアップは, や, などのタグで表されます。
HTMLでは、プレゼンテーション用のマークアップは、
, や .などのタグで表されます 。"

意味:「表現マークアップとは、テキストの表現を特定するが、その構造には影響を与えないマークアップのこと。HTMLでは、表現マークアップはb、i、brなどのタグで表されます。"

また、あるウィキペディアでは、Representational markupについて、「表現マークアップ言語とは、エンコード処理中に文書の構造に関する情報をマークアップするものである」と説明しています。例えば、テキストファイルでは、文書のタイトルを特定のフォーマットで表現する必要があります。"

この3つのパラグラフの文脈では

そして、次の2つの説明を見つけました。

"表現マークアップは、文書の体裁を明確にして、読むのに適したものにします。"

"通常、テキスト整形ツールはソースファイル内の表現マークアップをテキストとして扱います。" つまり、特別な処理は行われません。

それは明らかです!

表現力豊かなマークアップは、それが初期のスペース、ページ番号、コメント、またはまだb / i / brタグのhtmlアプリケーションであるかどうか、マークアップのプレゼンテーションの形式を制御するために、テキストの役割であり、すべての表現力豊かなマークアップに属します。初期のテキスト書式設定ツールは、表現力豊かなマークアップを扱うことはありません、それはテキストとして扱われますので、初期の表現力豊かなマークアップは、いくつかの表示または処理することができます目に見えないマークアップ、および現代のディスプレイタイプのマークアップは、テキスト書式設定ツールの進歩と、テキスト内のマークアップを保持され、テキストの構造を破壊することはありません。

同時に、表現的マークアップはマークアップ言語の一部でしかありえません。それはカテゴリーではありますが、全体を包含することはできず、その一部でしかありません。

そういえば、上記で「時代の発展とともに、最初の2種類は古い時代の残滓であることが証明され、捨ててもいい時代になった」と申し上げましたが、表現的なマークアップが完全に捨てられたわけではなく、そのコンセプトは維持されているのですから、この表現は問題です。htmlの発展とcssの登場により、これらの表現タグを直接使用することは推奨されなくなりましたが、その代わりにcssを使用して、方法のスタイルを実現しています。そして、プロセスの実際の使用では、いくつかのシナリオでは、表現力豊かなマークアップの使用の頻度は確かに非常に低いことがわかりますが、これは後で述べた。

もちろん、作者が××であるなど、不適切な結論に至った場合は、ぜひそう言わないでください。

マークアップ言語の残りの2つのタイプは、この表現的マークアップよりもずっとずっと説明が簡単です。視力を守るため、最初の例は見ないように注意してください。

手続き的マークアップと表現的マークアップの違いは明白です。このタイプのマークアップはエディタに見え、ソフトウェア・プログラムに向いており、プログラムによって解釈され、「文書の構造やデータの取り扱いに関する詳細を明らかにする」ものです。

例の命令列の意味をざっくり説明します。

3行ジャンプ、これはダブルスペース2回に相当します。

左インデント10列、右インデント30列。

シングルスペースに変更。

新しいページを始めますが、2行未満の場合は現在のページに留まります。

でも、そんなことはどうでもよくて、手続き的なコマンドというのは、機械が認識してテキストのレイアウトをしてくれる、何らかの意味を持つコマンドに過ぎないということを知っておくといいでしょう。

プロシージャルマーカーは本当にアウトです。意味不明な指示の束を見て、誰がそれを使いたがるでしょうか?これは手続き的マークアップの欠点の一つです。このタイプのマークアップはプロフェッショナルな出版の初期によく使われ、特定のテキストフォーマットと関連付けられ、指示には対応するスタイルシートがありました。つまり、高度なカスタマイズです。おそらくこれが、専門性を高めている要因のひとつでしょう。周知のように、高度にカスタマイズされたものは一般に柔軟性に欠け、機器提供者が機器を変更したり、標準開発者がスタイルシートの定義を再定義したりすると、編集者ができることは、文書内のすべての手続きマークアップを新しいバージョンの標準に適合するように変更することだけです。

誰がそれを扱えるの?

最後に、マークアップ言語の希望の星、現代の各マークアップ言語の父ともいえる記述的マークアップを見てみましょう。

4番目の例を見てください。

末尾にクロージャを持つ直接タグは、現在使用されているhtml、ヘアとは異なります。

この場合、トークンに包まれたテキストが長い引用文であることを意味します。一つ思いつくのは、手続き的なマークアップは「次のテキストは長い引用符です」という指示文として使うことができ、マークアップは同じことを意味するので、記述的なマークアップは手続き的なマークアップの一般化であるということではないでしょうか?

そうではありません。記述的マークアップは手続き的マークアップの一般化ではなく、手続き的マークアップによって表現されるルールのマッピングです。

味。

手続き的マークアップとは、そのマークアップが適用されるテキストが引用であることを意味します。したがって、記述的マークアップとは、そのマークアップが適用されるべきテキストが引用であることを意味します。ここでわかるように、対応付けは手続き的マークアップではなく、「テキストは引用である」というルールです。

記述的マークアップは、テキスト要素が何であるかを指定するルールであり、そのルールの実装は手続き的マークアップです。

このようにして、記述的ラベリングの大きな利点のひとつが得られます。

テキストは引用である」という表現の実装にどのような変更を加えようとも、それは常に「このテキストは引用である」という意味であり、実装の変更がプレゼンテーションの変更につながることはありませんし、実装の変更はプレゼンテーションを変更する目的で行われるものではありません。

ですから、最終的な目的が「テキストが引用文である」ことを示すことである限り、私はそれを使うことができますし、実装を変更することは「テキストを引用文にする」ための実装ディレクティブを変更するだけなので、記述的なマークアップそのものは影響を受けません。

長い言葉の羅列ですが、できるだけわかりやすく説明しましたので、お読みください。

しかし、もし実現することがパフォーマンスを変えることだとしたら?

このルールに対応する新しい説明タグを追加すれば、さらに簡単です。

実際、この考え方はあらゆる面で具現化されています。私はプログラマーですが、ソフトウェア開発において、Javaのインターフェースは、この考え方の非常に近い具現化です。

まだHTMLにも手をつけていないのに、これだけ話すと、もうちょっと圧倒されているような気がするので、いったんやめて休憩します。

John Berners-Leeは1980年にハイパーテキスト・システムの作成を開始し、HTMLを指定し、1990年後半にブラウザとサーバについて書きました。HTMLの最初の公開記述は、1991年後半にJohn Berners-Leeによって言及されたHTML Tagsと呼ばれる文書に現れました。

ハイパーテキスト・マークアップ・ランゲージ」の残りの半分については、次回お話ししましょう。

Read next

dubbo-goのfailbackClusterについて話す。

この記事の一連の流れは、ダボゴーの-go-goの研究に焦点を当てています。

Jan 30, 2021 · 5 min read