summaryrefslogtreecommitdiff
path: root/test/xhelp/xhelp.xml
blob: b82339471610cd98d57bb571bbe051d4d5361e2c (plain)
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
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY yelp "<application>Yelp</application>">
]>
<article id="index" lang="en">
  <articleinfo> 
    <title>Help System Specification</title>

    <copyright>
      <year>2003</year>
      <holder>Shaun McCance</holder>
    </copyright>

    <authorgroup> 
      <author>
	<firstname>Shaun</firstname>
	<surname>McCance</surname> 
	<affiliation> 
	  <orgname>GNOME Documentation Project</orgname> 
	</affiliation> 
	<address><email>shaunm@gnome.org</email></address> 
      </author> 
    </authorgroup>

    <revhistory>
      <revision>
	<revnumber>Help System Specification 0.1</revnumber>
	<date>January 2004</date>
      </revision>
    </revhistory>

    <releaseinfo>
      This is a DRAFT specification for the freedesktop.org help system.
    </releaseinfo>
  </articleinfo>

  <section id="xhelp-introduction">
    <title>Introduction</title>

    <para>This DRAFT document defines a new system for installing a locating
    help files for applications and other components of the desktop.</para>

    <para>Documents are located and categorized dynamically by reading metadata
    files from standard locations.  The metadata files use the Desktop Entry
    format, which is defined by the
    <ulink url="http://www.freedesktop.org/Standards/desktop-entry-spec">Desktop
    Entry Specification</ulink> on freedesktop.org.</para>

    <para>A single metadata file describes one document.  There is no provision
    for describing multiple documents with a single metadata file.  This is true
    even of variations of the same document.  For instance, if a document is
    translated into multiple languages, a metadata file must be provided for
    each translation.  Variations of a single logical document are identified
    as such using the <property>ID</property> key, which is discussed in
    <xref linkend="xhelp-id"/>.</para>
  </section>

  <section id="xhelp-metadata">
    <title>Metadata File Format</title>

    <para>The metadata files use the Desktop Entry format.  However, this
    specification provides its own set of keys to describe a document.  Only
    those keys listed in this specification should be considered standard.
    For non-standard key usage, see <xref linkend="xhelp-extending"/>.</para>

    <para>Since this specification defines its own set of keys, a unique group
    header is necessary to identify Desktop Entry files.  Thus, Desktop Entry
    files for documentation must use the group header
    <property>[Documentation]</property>.</para>

    <para>Many keys allow arbitrary text for the value.  The values for these
    keys may contain any character from the following Unicode ranges:</para>

    <literallayout>[#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]</literallayout>

    <para>Additionally, the escape sequences <literal>\s</literal>,
    <literal>\n</literal>, <literal>\t</literal>, <literal>\r</literal>, and
    <literal>\\</literal> are supported, meaning ASCII space, newline, tab,
    carriage return, and backslash, respectively.  Note that these strings
    must be encoded in UTF-8, as well as the rest of the file.  The
    <literal>LegacyMixed</literal> encoding is not supported. Keys which
    accept this production for values will be specified as accepting
    UTF-8 strings.</para>

    <para>The following keys are defined for Desktop Entry files for
    documentation:</para>

    <variablelist>
      <varlistentry>
	<term><property>ID</property></term>
	<listitem><para>
	The <property>ID</property> key is a unique identifier for a document
	or set of documents.  Variations of the same logical document must
	use the same <property>ID</property>.  The <property>ID</property>
	key is discussed in detail in <xref linkend="xhelp-id"/>.
	</para></listitem>
      </varlistentry>

      <varlistentry>
	<term><property>Title</property></term>
	<listitem><para>
	The <property>Title</property> key provides the title of the document.
	This key accepts any UTF-8 string.
	</para></listitem>
      </varlistentry>

      <varlistentry>
	<term><property>Description</property></term>
	<listitem><para>
	The <property>Description</property> key provides a short description
	of the document.  The <property>Description</property> key is optional.
	This key accepts any UTF-8 string.
	</para></listitem>
      </varlistentry>

      <varlistentry>
	<term><property>Language</property></term>
	<listitem><para>
	The <property>Language</property> key provides the written language of
	the document.  The value of this field must be a valid language code as
	specified by ISO-639.  The value may be <literal>C</literal> for the
	POSIX locale.  This key is mandatory.
	</para></listitem>
      </varlistentry>

      <varlistentry>
	<term><property>ContentType</property></term>
	<listitem><para>
	The <property>ContentType</property> key provides the MIME type of the
	document.  This key is mandatory.  If the document is in an SGML or XML
	vocabulary, the properties <property>ContentTypeSystem</property> and
	<property>ContentTypeNamespace</property> may also be used to provide
	additional information about the file format.
	</para></listitem>
      </varlistentry>

      <varlistentry>
	<term><property>ContentTypeSystem</property></term>
	<listitem><para>
	The <property>ContentTypeSystem</property> key provides the system
	identifier of an XML or SGML document.  This may be used to specify
	the particular SGML or XML vocabulary used by the document when the
	MIME type is not sufficient.  The value of this field should be a URL,
	typically pointing to the DTD.  This key is optional.
	</para></listitem>
      </varlistentry>

      <varlistentry>
	<term><property>ContentTypeNamespace</property></term>
	<listitem><para>
	The <property>ContentTypeNamespace</property> key provides the namespace
	of the top-level element of an XML document.  This may be used to specify
	the particular XML vocabulary used by the document when the MIME type is
	not sufficient.  This key is optional.
	</para></listitem>
      </varlistentry>
    </variablelist>
  </section>

  <section id="xhelp-id">
    <title>The <property>ID</property> Key</title>
  </section>

  <section id="xhelp-extending">
    <title>Extending the Format</title>

    <para>If one particular party wishes to add a key for personal use, they
    should prefix the key with the string <property>X-PRODUCT</property>,
    i.e. <property>X-NewDesktop-Foo</property>, following the precedent
    set by other IETF and RFC standards.</para>

    <para> Alternatively, fields can be placed in their own group, where
    they may then have arbitrary key names. If this is the case, the group
    should follow the scheme outlined above, i.e. <property>[X-PRODUCT
    GROUPNAME]</property> or something similar. These steps will avoid
    namespace clashes between different yet similar environments.</para>
  </section>

</article>