@code

code 要素 (HTML)

code 要素型 (HTML, XHTML 1)

[1] code 要素型は、計算機符号 (コード) 素片を示します。

仕様書:

[2]

開始タグ
必須
終了タグ
必須
内容模型 (HTML 2)
(%text;)*
内容模型 (HTML 4)
(%inline;)*
内容模型 (XHTML 1.0)
%Inline;
最小内容模型 (XHTML m12n)
(PCDATA | Inline)*
出現できる文脈 (HTML 2)
%phrase%text が出現できる文脈
出現できる文脈 (HTML 4)
%phrase%inline が出現できる文脈
出現できる文脈 (ISO-HTML)
%logical.styles%text (ISO-HTML) が出現できる文脈
所属内容集合
(InlPhras.class) ⊂ (Inline.class) ⊂ Inline (Inline.mix)
モジュール (XHTML m12n)
Inline PhrasalText
属性
class[HTML3.0] %attrs, [HTML4] %coreattr, [ISO-HTML] %core
dir書字方向[HTML4] %i18n, [ISO-HTML] %i18n
id一意識別子[HTML3.0] %attrs, [HTML4] %coreattr, [ISO-HTML] %core
lang自然言語[HTML3.0] %attrs, [HTML4] %i18n, [ISO-HTML] %i18n
xml:lang自然言語[XHTML1]
onclick[HTML4] %events
ondblclick[HTML4] %events
onkeydown[HTML4] %events
onkeypress[HTML4] %events
onkeyup[HTML4] %events
onmousedown[HTML4] %events
onmousemove[HTML4] %events
onmouseout[HTML4] %events
onmouseover[HTML4] %events
onmouseup[HTML4] %events
SDAFORMLit (固定)[HTML2]
styleスタイル情報[HTML4] %coreattr
title注釈的題[HTML4] %coreattr, [ISO-HTML] %core

応用

[13] RFC 1866 (HTML 2.0) は、典型的に固定幅のフォントでレンダリングされると述べています。 >>11

[3] HTML 4 仕様書は特に典型的レンダリング例を挙げていません。

仕様書から

[16] HTML 1.0:

CODE
Example of code. typically monospaced font. (Do not confuse with PRE )
code
符号の例。典型的に単一幅フォント。 (pre と混同しないように。)

[11] RFC 1866 (HTML 2.0):

5.7.1.2. Code: CODE

The <CODE> element indicates an example of code, typically rendered in a mono-spaced font. The <CODE> element is intended for short words or phrases of code; the <PRE> block structuring element (5.5.2, "Preformatted Text: PRE") is more appropriate for multiple-line listings. For example:

code 要素は符号の例を示し、 典型的に単一幅のフォントでレンダリングします。 code 要素は符号の短い語や語句を想定しています。 複数行の並びには pre ブロック構造化要素がより適切です。例:

The expression <code>x += 1</code> is short for <code>x = x + 1</code>.

式 <code>x += 1</code> は <code>x = x + 1</code> の略です。

[14] HTML 2 (RFC 1866, RFC 2070) DTD 注釈:

<CODE> Source code phrase

code 原始符号語句

[19] HTML+ 議論文書 http://www.w3.org/MarkUp/HTMLPlus/htmlplus_18.html:

code
code example - usually shown in fixed pitch font
code
符号例 — 通常固定幅フォントで

[18] HTML 3.0 I-D http://www.w3.org/MarkUp/html3/logical.html:

The <CODE> element indicates an example of code; typically rendered in a mono-spaced font. Do not confuse with PRE.

code 要素は符号の例を示します。 典型的に単一幅フォントでレンダリングされます。 pre と混同しないように。

[8] HTML 4 仕様書 IW:HTML4:"struct/text.html#edef-CODE" いわく:

Phrase elements add structural information to text fragments. The usual meanings of phrase elements are following:

(略)

CODE
Designates a fragment of computer code.

語句要素は文素片に構造的情報を追加します。 語句要素の通常の意味は次の通りです。 (略)

code
計算機符号の素片を示す。

[15] ISO-HTML利用者の指針 http://purl.org/NET/ISO+IEC.15445/Users-Guide.html#UNREFINED:

<CODE> [W3C 9.2.1]—Program code

code プログラム符号

[9] XHTML 1.0 DTD 注釈 http://www.w3.org/TR/2002/REC-xhtml1-20020801/dtds.html#dtdentry_xhtml1-strict.dtd_code:

program code

プログラム符号

歴史

[20] code 要素型は、 em など他の語句要素型と共に、 1993年1月6日版の HTML 仕様書で初めて正式に導入されました。 http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1993q1.messages/10.html

しかし、それ以前の 1992年12月8日に Dan ConollyAs I was adding phrase-level elements 云々と言っています。 http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1992.messages/428.html

彼の DTD や libHTML で実装していたのかもしれませんが、 当時のものが残っていないので詳しくは分かりません。 (Dan の html.dtd は1993年1月7日版で code などが追加されています。)

[21] 当時の HTML には、 hpn 要素型群が用意されてはいましたが、誰も実装していないし使ってもいない状況でした。 代わりに他の要素型群を用意しようという話になり、 語彙の案として Texinfo, DocBook, MIME (text/richtext) などが挙げられましたが、余り深くない議論の末に Texinfo のものが採用されたようです。 (DocBook は要素型名が長いし分類が細かい、 MIME は物理的というのが良く思われなかった。)

[23] >>20 Dan の最初の DTD は1月7日と書いていますが、時差の関係で6日でもあります。 (Dan が当時どこにいたのか、何日だったのかわかりませんが。)

[24] この時に texinfo から Dan の html.dtd に輸入されたのは code, samp, kbd, key, var, dfn, cite です。 そのうちの dfnkey は数奇な運命をたどっております。 (それぞれの説明を参照されたし。)

[34] 1992年12月3日 → 1993年1月6日で %inline; として追加されたのは: em, tt, strong, b, i, u, code, samp, kbd, key, var, var, dfn, cite。 (名無しさん)

[35] >>34 1993年5月の GNU Texinfo 3.1 のマニュアルの語句要素相当の部分と比較すると:

という違いがあります。 ctrlHTML には相応しくなかろうと Dan Connolly が発言しています。 rscTexinfo 2 の新機能と NEWS に書いてあるので、もしかすると Dan が参照した版には入っていなかったのかもしれません (し、入っていたけどフォントを直接指定するものはあえて除外したのかもしれません)。 (名無しさん)

[36] 予想ですが、 ememph では長すぎるから (LaTeX より拝借)、 ttt では短すぎるから (それほど使わなそうな割に)、 uMicrosoft Wordbi と一緒にあるから、というような理由ではないでしょうか。 (名無しさん)

[37] んー、でも RTF 1.0 に含まれているのは \u ではなく \ul だ。。。 (名無しさん)

[38] em が略されて strong が略されなかったのはなぜでしょう。 LaTeX になかったから?

[17] It was made using the <CODE>EM</CODE> element. (HTML 1.0 I-D, HTML 3.0 I-D より)

[12] >>11 の RFC 1866 (HTML 2.0) の例を参照。

[10]

<p>
  This is text that uses our 
  <code>internal stylesheet</code>.
</p>

出典: http://www.w3.org/TR/2002/REC-xhtml1-20020801/Overview.html#C_14

この例で code にはどういう意味があるのでしょう。 よくわかりません。

[30]

<p>Examples in this document that use the namespace prefix "<code>ev</code>" all assume an <code>xmlns</code> declaration <code>xmlns:ev="http://www.w3.org/2001/xml-events"</code> somewhere suitable in the document involved. All examples are informative.</p>

出典: XML Events http://www.w3.org/TR/2003/REC-xml-events-20031014/#s_event_module_elements

[32]

<dt><code class="attribute-name"><a name="DOMStringList-length">length</a></code> of type <code>unsigned long</code>, readonly</dt>

出典: Document Object Model Core http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#DOMStringList-length

DOM の仕様書の HTML 版では、定義する属性の名前の部分にこの例のようなマークがなされており、 スタイル・シートで背景が黄色に指定されています。 同様に定義するメソッド定数は別の色になっています。 class 属性とスタイル・シートを効果的に利用した例であると言えるでしょう。

この例のように code でマークする内容が実際にどのような種類のコードであるのか class で記述しておくと、 スタイル・シートスクリプトで利用する時に便利です。

[33] SPARQL Protocol for RDF http://www.w3.org/TR/2006/WD-rdf-sparql-protocol-20060125/

この文書ではスタイル・シートによりcode要素下線を引いています。

メモ

[22] 最近の W3C の Note を見ていると、マーク付け文書の素片が code でマークされていたりします。 Texinfo は @code をプログラムに限定していますし、 HTML の仕様書でも半分くらいはプログラムと限定していますけど、 マークにも応用するくらいは許されてもよさそうなものです。

同様にプロトコル要素の素片 (たとえば HTTP のメッセージの一部、 言語札媒体型、更に言えば URI参照ファイル名) にも適用するのも良いかもしれませんが、 これは議論の余地があるかもしれません。

@code 命令 (GNU Texinfo)

[5] GNU Texinfo の @code 命令は、 プログラム片 (構文的字句全体) を示します。 http://www.gnu.org/software/texinfo/manual/texinfo/texinfo.html#code

@code が相応しい例:

@code が相応しくない例:

使用例:

[6] 印刷版ではタイプライター風に出力します。 Info では単引用符で括って出力します。

[7] @command, @option, @env は新しい命令で、以前は @code@samp が使われていました。

HTML もどき

[31] DTBook にもあります。

c 要素、 m 要素

[29] サイト生成用 XML の仕様 — Avendia, , http://ziphil.com/other/other/10.html#c

ソースコードに関連する文字列を表示するときに用いる。 c 要素は実際のソースコード中に現れる文字列を引用するときに用い、 m はそれ以外のソースコードに関連する文字列に対して用いる。

関連

[28] xml:space

メモ

[40] Exception Codes - WHATWG Wiki (2007-09-25 18:06:18 +09:00 版) http://wiki.whatwg.org/wiki/Exception_Codes

[41] ObjectCodeAttribute - doctype - The object code attribute - Project Hosting on Google Code ( 版) http://code.google.com/p/doctype/wiki/ObjectCodeAttribute

[42] code Property (APPLET, OBJECT, HTMLObjectElement Constructor) ( 版) http://msdn.microsoft.com/en-us/library/ms533575(VS.85).aspx

[43] ncsa-mosaic/CHANGES at master · alandipert/ncsa-mosaic ( ( 版)) https://github.com/alandipert/ncsa-mosaic/blob/master/CHANGES#L1026

[4] Editorial: mark up code blocks with their language and <code> (Zirro著, ) https://github.com/whatwg/html/commit/a6e54621c0491ef633b0f3c4bd1f71fe72a722d8

[25] Use <code> element inside the <pre> elements with code examples · Issue #3764 · whatwg/html () https://github.com/whatwg/html/issues/3764

[26] Add <code> element inside applicable <pre> elements by Zirro · Pull Request #3768 · whatwg/html () https://github.com/whatwg/html/pull/3768

[27] Meta: update some syntax highlighting stuff (domenic著, ) https://github.com/whatwg/html/commit/e92c28db5a8ad0ccb3c40028315af82da63cd79e