/
597.txt
392 lines (281 loc) · 16 KB
/
597.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
* code 要素型 (HTML, XHTML 1)
[1] [DFN[[CODE(HTMLe)[code]] [[要素型]]]]は、計算機[RUBY[符号] [コード]]の[[素片]]を示します。
仕様書:
- [[HTML 2]]
-- [[HTML 2.0]] [[RFC 1866]]
- [[HTML 4]]
-- <IW:HTML4:"struct/text.html#edef-CODE">
- [[XHTML 1.0]]
-- DTD <IW:XHTML10:"dtds.html#dtdentry_xhtml1-frameset.dtd_code">
- [[XHTML m12n]]
-- 抽象モジュール <IW:XHTML1m12n:"xhtl-modularization.html#s_textmodule">
-- DTD 実装 <IW:XHTML1m12n:"dtd_module_defs.html#dtdelement_code.qname">
[2]
:[[開始タグ]]:必須
:[[終了タグ]]:必須
:[[内容模型]] (HTML 2):[CODE(SGML)[(%[[text]];)*]]
:内容模型 (HTML 4):[CODE(SGML)[(%[[inline]];)*]]
:内容模型 (XHTML 1.0):[CODE(SGML)[%[[Inline]];]]
:[[最小内容模型]] (XHTML m12n):[CODE[([CODE(XML)[[[PCDATA]]]] | [VAR[[[Inline]]]])*]]
:出現できる文脈 (HTML 2):[CODE(SGML)[%[[phrase]]]] ⊂ [CODE(SGML)[%text]] が出現できる文脈
:出現できる文脈 (HTML 4):[CODE(SGML)[%phrase]] ⊂ [CODE(SGML)[%inline]] が出現できる文脈
:出現できる文脈 (ISO-HTML):[CODE(SGML)[%[[logical.styles]]]] ⊂ [CODE(SGML)[%text]] (ISO-HTML) が出現できる文脈
:所属内容集合:([CODE(XML)[[[InlPhras.class]]]]) ⊂ ([CODE(XML)[[[Inline.class]]]]) ⊂ Inline ([CODE(XML)[[[Inline.mix]]]])
:モジュール (XHTML m12n):[[Inline Phrasal]] ⊂ [[Text]]
:[[属性]]:
,[CODE(HTMLa)[[[class]]]] , , ,[[級]] ,"[HTML3.0] %[[attrs]], [HTML4] %[[coreattr]], [ISO-HTML] %[[core]]"
,[CODE(HTMLa)[[[dir]]]] , , ,[[書字方向]] ,"[HTML4] %[[i18n]], [ISO-HTML] %i18n"
,[CODE(HTMLa)[[[id]]]] , , ,一意識別子 ,"[HTML3.0] %attrs, [HTML4] %coreattr, [ISO-HTML] %core"
,[CODE(HTMLa)[[[lang]]]] , , ,[[自然言語]] ,"[HTML3.0] %attrs, [HTML4] %i18n, [ISO-HTML] %i18n"
,[CODE(HTMLa)[[[xml]]:lang]] , , ,自然言語 ,[XHTML1]
,[CODE(HTMLa)[[[onclick]]]] , , , ,[HTML4] %[[events]]
,[CODE(HTMLa)[[[ondblclick]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onkeydown]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onkeypress]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onkeyup]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmousedown]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmousemove]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmouseout]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmouseover]]]] , , , ,[HTML4] %events
,[CODE(HTMLa)[[[onmouseup]]]] , , , ,[HTML4] %events
,[CODE(SGMLa)[[[SDAFORM]]]] ,[CODE[Lit]] (固定) ,== , ,[HTML2]
,[CODE(HTMLa)[[[style]]]] , , ,スタイル情報 ,[HTML4] %coreattr
,[CODE(HTMLa)[[[title]]]] , , ,注釈的題 ,"[HTML4] %coreattr, [ISO-HTML] %core"
[[#comment]]
** 応用
[13] RFC 1866 (HTML 2.0) は、典型的に固定幅のフォントでレンダリングされると述べています。 >>11
[3] HTML 4 仕様書は特に典型的[[レンダリング]]例を挙げていません。
[[#comment]]
** 仕様書から
[16] [[HTML 1.0]]:
>
:CODE:Example of code. typically monospaced font.
(Do not confuse with PRE )
>
:[CODE(HTMLe)[code]]:符号の例。典型的に単一幅フォント。
([CODE(HTMLe)[[[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(HTMLe)[code]] 要素は符号の例を示し、
典型的に単一幅のフォントでレンダリングします。
[CODE(HTMLe)[code]] 要素は符号の短い語や語句を想定しています。
複数行の並びには [CODE(HTMLe)[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(HTMLe)[code]] 原始符号語句
[19] [[HTML+]] 議論文書
<http://www.w3.org/MarkUp/HTMLPlus/htmlplus_18.html>:
>
:code:code example - usually shown in fixed pitch font
>
:[CODE(HTMLe)[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(HTMLe)[code]] 要素は符号の例を示します。
典型的に単一幅フォントでレンダリングされます。
[CODE(HTMLe)[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:
> [INS[(略)]]
>
:CODE:Designates a fragment of computer code.
> 語句要素は文素片に構造的情報を追加します。
語句要素の通常の意味は次の通りです。 [INS[(略)]]
:[CODE(HTMLe)[code]]:計算機符号の素片を示す。
[15] [[ISO-HTML利用者の指針]]
<http://purl.org/NET/ISO+IEC.15445/Users-Guide.html#UNREFINED>:
> <CODE> [W3C 9.2.1]—Program code
> [CODE(HTMLe)[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(HTMLe)[code]] 要素型は、
[CODE(HTMLe)[[[em]]]] など他の語句要素型と共に、
1993年1月6日版の HTML 仕様書で初めて正式に導入されました。
<http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1993q1.messages/10.html>
しかし、それ以前の 1992年12月8日に [[Dan Conolly]] は
[Q[As I was adding phrase-level elements]] 云々と言っています。
<http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1992.messages/428.html>
彼の [DEL[DTD や]] [[libHTML]] で実装していたのかもしれませんが、
当時のものが残っていないので詳しくは分かりません。
(Dan の [CODE(file)[html.dtd]] は1993年1月7日版で [CODE(HTMLe)[code]] などが追加されています。)
[21] 当時の HTML には、 [CODE(HTMLe)[[[hp[VAR[n]]]]]]
要素型群が用意されてはいましたが、誰も実装していないし使ってもいない状況でした。
代わりに他の要素型群を用意しようという話になり、
語彙の案として [[Texinfo]], [[DocBook]],
[[MIME]] ([CODE(MIME)[[[text/richtext]]]])
などが挙げられましたが、余り深くない議論の末に Texinfo
のものが採用されたようです。
(DocBook は要素型名が長いし分類が細かい、
MIME は物理的というのが良く思われなかった。)
[23]
>>20 Dan の最初の DTD は1月7日と書いていますが、時差の関係で6日でもあります。 (Dan が当時どこにいたのか、何日だったのかわかりませんが。)
[24]
この時に texinfo から Dan の html.dtd に輸入されたのは
[CODE(HTMLe)[code]], [CODE(HTMLe)[[[samp]]]],
[CODE(HTMLe)[[[kbd]]]], [CODE(HTMLe)[[[key]]]], [CODE(HTMLe)[[[var]]]], [CODE(HTMLe)[[[dfn]]]],
[CODE(HTMLe)[[[cite]]]] です。
そのうちの [CODE(HTMLe)[dfn]] と [CODE(HTMLe)[key]] は数奇な運命をたどっております。
(それぞれの説明を参照されたし。)
[34]
1992年12月3日 → 1993年1月6日で
[CODE(SGML)@en[%[[inline]];]] として追加されたのは:
[CODE(HTMLe)@en[[[em]]]], [CODE(HTMLe)@en[[[tt]]]],
[CODE(HTMLe)@en[[[strong]]]], [CODE(HTMLe)@en[[[b]]]],
[CODE(HTMLe)@en[[[i]]]], [CODE(HTMLe)@en[[[u]]]],
[CODE(HTMLe)@en[[[code]]]], [CODE(HTMLe)@en[[[samp]]]],
[CODE(HTMLe)@en[[[kbd]]]], [CODE(HTMLe)@en[[[key]]]],
[CODE(HTMLe)@en[[[var]]]], [CODE(HTMLe)@en[[[var]]]],
[CODE(HTMLe)@en[[[dfn]]]], [CODE(HTMLe)@en[[[cite]]]]。
([[名無しさん]])
[35]
>>34
1993年5月の [[GNU]] [[Texinfo]] 3.1 のマニュアルの[[語句要素]]相当の部分と比較すると:
- [CODE@en[[[emph]]]] が [[HTML]] では [CODE(HTMLe)@en[[[em]]]]
- [CODE@en[[[t]]]] が [[HTML]] では [CODE(HTMLe)@en[[[tt]]]]
- [[Texinfo]] にはない [CODE(HTMLe)@en[[[u]]]]
- [[HTML]] にはない [CODE@en[[[file]]]] と
[CODE@en[[[ctrl]]]] (ただし [[Texinfo]] [[マニュアル]]では非表示になっている)
と [CODE@en[[[r]]]] と [CODE@en[[[sc]]]]
という違いがあります。 [CODE@en[[[ctrl]]]] は [[HTML]]
には相応しくなかろうと [[Dan Connolly]] が発言しています。
[CODE@en[[[r]]]] と [CODE@en[[[sc]]]] は
[[Texinfo]] 2 の新機能と [CODE(file)@en[[[NEWS]]]]
に書いてあるので、もしかすると Dan
が参照した版には入っていなかったのかもしれません
(し、入っていたけど[[フォント]]を直接指定するものはあえて除外したのかもしれません)。
([[名無しさん]])
[36]
予想ですが、 [CODE(HTMLe)@en[[[em]]]] は
[CODE@en[[[emph]]]] では長すぎるから
([[LaTeX]] より拝借)、 [CODE(HTMLe)@en[[[tt]]]] は
[CODE@en[[[t]]]] では短すぎるから (それほど使わなそうな割に)、
[CODE(HTMLe)@en[[[u]]]] は [[Microsoft Word]]
に [CODE(HTMLe)@en[[[b]]]] と [CODE(HTMLe)@en[[[i]]]]
と一緒にあるから、というような理由ではないでしょうか。
([[名無しさん]])
[37]
んー、でも [[RTF 1.0]] に含まれているのは [CODE@en[\u]] ではなく
[CODE@en[\[[ul]]]] だ。。。
([[名無しさん]])
[38]
[CODE(HTMLe)@en[[[em]]]] が略されて [CODE(HTMLe)@en[[[strong]]]]
が略されなかったのはなぜでしょう。 [[LaTeX]]
になかったから?
[[#comment]]
** 例
[17] [SAMP(HTML)[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]
[PRE(HTML example)[
<[CODE(HTMLe)[p]]>
This is text that uses our
<[CODE(HTMLe)[code]]>internal stylesheet</[CODE(HTMLe)[code]]>.
</[CODE(HTMLe)[p]]>
]PRE]
出典: <http://www.w3.org/TR/2002/REC-xhtml1-20020801/Overview.html#C_14>
この例で [CODE(HTMLe)[code]] にはどういう意味があるのでしょう。
よくわかりません。
[30]
> [SAMP(HTML)[<[CODE(HTMLe)[p]]>Examples in this document that use the namespace prefix "<[CODE(HTMLe)[code]]>ev</[CODE(HTMLe)[code]]>" all assume an <[CODE(HTMLe)[code]]>xmlns</[CODE(HTMLe)[code]]> declaration <[CODE(HTMLe)[code]]>xmlns:ev="http://www.w3.org/2001/xml-events"</[CODE(HTMLe)[code]]> somewhere suitable in the document involved. All examples are informative.</[CODE(HTMLe)[p]]>]]
出典: [CITE[XML Events]]
<http://www.w3.org/TR/2003/REC-xml-events-20031014/#s_event_module_elements>
[32]
[PRE(HTML example code)[
<dt>'''<code class="attribute-name"><a name="DOMStringList-length">length</a></code>''' of type '''<code>unsigned long</code>''', readonly</dt>
]PRE]
出典: [CITE[Document Object Model Core]] <http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#DOMStringList-length>
[[DOM]] の仕様書の [[HTML]] 版では、定義する[[属性]]の名前の部分にこの例のようなマークがなされており、
[[スタイル・シート]]で背景が黄色に指定されています。
同様に定義する[[メソッド]]や[[定数]]は別の色になっています。
[CODE(HTMLa)[[[class]]]] 属性と[[スタイル・シート]]を効果的に利用した例であると言えるでしょう。
この例のように [CODE(HTMLe)[[[code]]]] でマークする内容が実際にどのような種類の[Q[コード]]であるのか
[CODE(HTMLa)[[[class]]]] で記述しておくと、
[[スタイル・シート]]や[[スクリプト]]で利用する時に便利です。
[33]
[CITE@en[SPARQL Protocol for RDF]]
<http://www.w3.org/TR/2006/WD-rdf-sparql-protocol-20060125/>
この[[文書]]では[[スタイル・シート]]により[CODE(HTMLe)@en[[[code]]]][[要素]]に[[下線]]を引いています。
[[#comment]]
** メモ
[22] 最近の W3C の Note を見ていると、マーク付け文書の素片が
[CODE(HTMLe)[code]] でマークされていたりします。
Texinfo は [CODE[@code]] をプログラムに限定していますし、
HTML の仕様書でも半分くらいはプログラムと限定していますけど、
マークにも応用するくらいは許されてもよさそうなものです。
同様にプロトコル要素の素片 (たとえば HTTP のメッセージの一部、
[[言語札]]、[[媒体型]]、更に言えば [[URI参照]]や[[ファイル名]])
にも適用するのも良いかもしれませんが、
これは議論の余地があるかもしれません。
[[#comment]]
* @code 命令 (GNU Texinfo)
[5] GNU Texinfo の [DFN[[CODE[@code]]]] 命令は、
[[プログラム]]片 (構文的字句全体) を示します。
<http://www.gnu.org/software/texinfo/manual/texinfo/texinfo.html#code>
[CODE[@code]] が相応しい例:
- プログラムの[[式]]
- プログラムの[[変数名]]
- プログラムの[[関数名]]
- [[プログラム言語]]の[[鍵語]]
- プログラム言語風の言語 (例: Texinfo) の[[命令]]
[CODE[@code]] が相応しくない例:
- [[シェル]]の命令名 → [CODE[@[[command]]]]
- シェルのオプション (単独) → [CODE[@[[option]]]]
- シェル命令全体は [CODE[@code]] より [CODE[@[[samp]]]]
の方が良いこともある。
- [[環境変数]] → [CODE[@[[env]]]]
- 構文的字句より小さな単位の文字列片・文字 → [CODE[@[[samp]]]]
- 打鍵文字列 → [CODE[@[[kbd]]]]
使用例:
- [SAMP[@code{@@code}]]
- [SAMP[The function returns @code{nil}.]]
[6] 印刷版では[[タイプライター]]風に出力します。
Info では[[単引用符]]で括って出力します。
[7] [CODE[@[[command]]]], [CODE[@[[option]]]],
[CODE[@[[env]]]] は新しい命令で、以前は
[CODE[@code]] や [CODE[@samp]] が使われていました。
* [CODE[c]] 要素、 [CODE[m]] 要素
[29] [CITE@ja[サイト生成用 XML の仕様 — [[Avendia]]]], [TIME[2023-01-03T03:25:42.000Z]], [TIME[2023-04-08T06:06:56.154Z]] <http://ziphil.com/other/other/10.html#c>
>ソースコードに関連する文字列を表示するときに用いる。 [CODE[c]] 要素は実際のソースコード中に現れる文字列を引用するときに用い、 [CODE[m]] はそれ以外のソースコードに関連する文字列に対して用いる。
* メモ
[28]
[[DTBook]]
にも
[CODE[code]]
があります。
[40]
[CITE@en[Exception Codes - WHATWG Wiki]] ([CODE[2007-09-25 18:06:18 +09:00]] 版) <http://wiki.whatwg.org/wiki/Exception_Codes>
[41] [CITE[ObjectCodeAttribute - doctype - The object code attribute - Project Hosting on Google Code]]
([TIME[2010-03-14 14:34:07 +09:00]] 版)
<http://code.google.com/p/doctype/wiki/ObjectCodeAttribute>
[42] [CITE@en-us[code Property (APPLET, OBJECT, HTMLObjectElement Constructor)]]
([TIME[2010-03-14 14:34:24 +09:00]] 版)
<http://msdn.microsoft.com/en-us/library/ms533575(VS.85).aspx>
[43] [CITE[ncsa-mosaic/CHANGES at master · alandipert/ncsa-mosaic]]
( ([TIME[2014-04-07 05:40:04 +09:00]] 版))
<https://github.com/alandipert/ncsa-mosaic/blob/master/CHANGES#L1026>
[4] [CITE@en[Editorial: mark up code blocks with their language and <code>]]
([[Zirro]]著, [TIME[2018-07-24 05:11:25 +09:00]])
<https://github.com/whatwg/html/commit/a6e54621c0491ef633b0f3c4bd1f71fe72a722d8>
[25] [CITE@en[Use <code> element inside the <pre> elements with code examples · Issue #3764 · whatwg/html]]
([TIME[2018-07-26 16:57:16 +09:00]])
<https://github.com/whatwg/html/issues/3764>
[26] [CITE@en[Add <code> element inside applicable <pre> elements by Zirro · Pull Request #3768 · whatwg/html]]
([TIME[2018-07-26 16:58:14 +09:00]])
<https://github.com/whatwg/html/pull/3768>
[27] [CITE@en[Meta: update some syntax highlighting stuff]]
([[domenic]]著, [TIME[2018-08-14 02:46:21 +09:00]])
<https://github.com/whatwg/html/commit/e92c28db5a8ad0ccb3c40028315af82da63cd79e>