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

符号と自然言語

[49] これは言語とは何か、符号とは何かという哲学的課題で、考え込んだことがある人は多いと思われる(多いか?)。

[50] が、マーク付け言語はあくまで実用目的のものなのだから、あまり深く考えても仕方ないんだよぬ。 役に立つようにマークを付けるので、マークを付けるために悩むのは本末転倒なのよぬ。

[51] ただいえることは、符号プログラミング言語であるからといって、必ずしも自然言語と切り離された独立の存在とは言えないのだ。 例えば電話番号符号だが、自然言語の文脈内で読み書きされる。 また、プログラミング言語識別子英語を使ったり、日本語を使ったり、 コメント自然言語で書いたりする。

[53] もっと実際的な例を出すなら、日本語話者が読み書きするプログラミング言語のコードは、 文字列リテラルコメント中華フォントでなく日本語フォントでレンダリングされるように、 lang="ja" が適用されるべきである。

[52] もちろんそれは、逆にすべての符号自然言語に属するということではないから、 zxx のようなものを使ったり、 lang="" (空文字列) を使ったりした方がいいケースもある。

歴史

code の誕生

語句化内容

HTML4 まで

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

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

[8] 語句化内容も参照。

[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 が使われていました。

[20] 関連: 語句化内容

HTML もどき

[31] DTBook にもあります。

[54] XMLspec にあるのは借用なのかどうか不詳

[55] Guide to the W3C XML Specification (XMLspec) DTD, Version 2.1, , https://www.w3.org/XML/1998/06/xmlspec-report.htm#AEN2821

c 要素、 m 要素

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

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

関連

[28] xml:space

メモ

[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