gold-plating the bikeshed: a style guide for the Ardour manual.
This commit is contained in:
parent
19ee4b8d24
commit
f6c0d65cd8
192
STYLE_GUIDE
Normal file
192
STYLE_GUIDE
Normal file
@ -0,0 +1,192 @@
|
||||
*Style guide for the Ardour manual*
|
||||
|
||||
|
||||
|
||||
1. Rationale
|
||||
============
|
||||
|
||||
The Ardour manual should be consistent across different media, and it should
|
||||
be easily updatable when Ardour's behaviour changes.
|
||||
The markup should be semantic - looks are determined in the CSS, and only
|
||||
there. If you feel you must compromise the markup in order to obtain a
|
||||
certain look: don't do it. Accept the look.
|
||||
Alternatively, edit the CSS, but be careful not to make matters worse
|
||||
elsewhere.
|
||||
|
||||
|
||||
1.1 visual markup
|
||||
-----------------
|
||||
|
||||
<b>,<i>,<u>,<font> or any other purely visual elements are not used in
|
||||
the Ardour manual.
|
||||
What you really mean is an <em>phasis or a <strong> emphasis.
|
||||
If you feel that some special terms should always be green and underlined, the
|
||||
approach of choice is this:
|
||||
<span class="my_important_keyword">foobar</span>
|
||||
and then add
|
||||
.my_important_keyword {
|
||||
text-decoration: underline;
|
||||
color: #004400;
|
||||
background-color: #eeffee;
|
||||
}
|
||||
to apps.css.
|
||||
If you add a new class with semantic meaning, document it below, under
|
||||
"Custom classes".
|
||||
|
||||
|
||||
2. Format and Validation
|
||||
========================
|
||||
|
||||
The Ardour manual has been converted to valid XHTML 1.0. That means it must
|
||||
be valid XML, with all tags closed properly. The reason for this extra
|
||||
complication is that XML can be more easily checked and automatically
|
||||
refactored than plain HTML, which eases maintenance.
|
||||
|
||||
|
||||
3. Custom classes
|
||||
=================
|
||||
|
||||
We use the class attribute for some aspects of styling (such as to float an
|
||||
image left or right in a text paragraph), and also for more fine-grained
|
||||
semantic markup than core XHTML allows.
|
||||
|
||||
Any XHTML element can include a class attribute. If you need to add a class
|
||||
attribute to a word or a few words which don't have an element of their own,
|
||||
use <span class="my_new_category">foo bar</span>.
|
||||
If you need to apply a class to several block-level elements such as
|
||||
paragraphs or lists, enclose them in a <div>..</div>. Wherever possible,
|
||||
create semantic classes rather than visual ones.
|
||||
|
||||
.left: make an element float left in the surrounding paragraph.
|
||||
.right: make an element float right in the surrounding paragraph.
|
||||
|
||||
|
||||
4. Element use
|
||||
==============
|
||||
|
||||
|
||||
4.1 Main structural elements
|
||||
----------------------------
|
||||
|
||||
<h1>..<h6>
|
||||
A <h1/> heading is added by the Ruby framework, so it should not be used in
|
||||
the manual page itself. If you feel you need another <h1>, start a new
|
||||
subpage.
|
||||
Heading levels must not be skipped. Any sub-heading must be exactly one
|
||||
level below its predecessor. Do not abuse headings to style a head line.
|
||||
|
||||
<p>
|
||||
Every snippet of text should be enclosed in a block level element. The
|
||||
default choice is <p>, the plain paragraph.
|
||||
|
||||
|
||||
4.1 Inline markups
|
||||
------------------
|
||||
|
||||
<dfn>
|
||||
encloses a newly introduced term that is being explained. Use for the first
|
||||
occurrence of the main concept of every manual page, or the first occurrence
|
||||
of a new concept after a sub-heading if necessary.
|
||||
|
||||
<abbr>
|
||||
is used to explain an abbreviation such as <abbr title="Linux Audio
|
||||
Developers Simple Plugin API">LADSPA</abbr>. Browsers will usually pop up the
|
||||
definition when the user hovers over the word, and it can easily be
|
||||
extracted via CSS for printing.
|
||||
Use only for the first occurrence of every new abbreviation.
|
||||
|
||||
<em>
|
||||
is used to emphasize a word. Commonly rendered as italics.
|
||||
Use only if its a truly ad-hoc, one-off situation. For anything else,
|
||||
consider adding a new semantic markup with <span class="foo">.
|
||||
|
||||
<strong>
|
||||
is used to strongly emphasize a word. Commonly rendered in bold.
|
||||
See above for usage.
|
||||
|
||||
<br />
|
||||
A line-break can sometimes be used to structure a paragraph, or to split a
|
||||
longish heading. Never use spurious <br/>s at the end of paragraphs or to
|
||||
control the spacing of sections. If you're unhappy with those, fix the CSS
|
||||
(which fixes the entire manual in one go!)
|
||||
|
||||
|
||||
4.2 Lists
|
||||
---------
|
||||
|
||||
<ul>,<ol>
|
||||
Use the unordered list for information snippets that do not have an implied
|
||||
order. The ordered list should always be used when a sequence of actions is
|
||||
described. Within the lists, each item must be enclosed in <li> tags.
|
||||
Lists cannot be included in <p>aragraphs. Close the paragraph first.
|
||||
|
||||
<dl>
|
||||
Definition lists are for technical terms <dt> and their definition <dd>. Do
|
||||
not abuse them for anything else.
|
||||
|
||||
|
||||
4.3 Quotations
|
||||
--------------
|
||||
|
||||
<blockquote>
|
||||
is used when an entire paragraph is quoted. Must contain a
|
||||
cite="http://mysource.net/foo.pdf" attribute. Do not abuse to indent a
|
||||
paragraph!
|
||||
|
||||
<cite>,<q>
|
||||
For inline citations, the <cite>W3C</cite> recommends to <q
|
||||
cite="http://www.w3.org/TR/xhtml1/dtds.html">use the cite and q
|
||||
elements</q>.
|
||||
|
||||
|
||||
4.4 Keyboard/Controller interaction
|
||||
------------------------------------
|
||||
|
||||
<kbd>
|
||||
Any keys or key combinations, mouse buttons, or controllers should be marked
|
||||
with this element.
|
||||
E.g.:
|
||||
"Press <kbd>F</kbd> to fit all tracks to the height of the Editor window."
|
||||
"Move <kbd>Fader 1</kbd> on your MIDI controller to bind it.
|
||||
"
|
||||
Since modifier keys are not cross-platform and Ardour makes a point of
|
||||
abstracting them, do not hard-code "Alt", "Cmd" and friends, use
|
||||
class="modN"
|
||||
instead.
|
||||
So if you want the user to press Ctrl-N on Linux, that's actually <kbd
|
||||
class="mod1">N</kbd>. It will render as "Ctrl+N" for you, and as "Cmd+N" for
|
||||
your Mac-using friend. Nice, uh?
|
||||
|
||||
For anything you want the user to type, use <kbd> as a block-level element.
|
||||
|
||||
<code>
|
||||
is only used for program code, or the content of configuration files etc. Do
|
||||
not abuse to style keys or user input, use <kbd> instead.
|
||||
|
||||
<samp>
|
||||
is only used for the textual output of any code, never for anything the user
|
||||
types or presses.
|
||||
|
||||
|
||||
4.5 Images
|
||||
----------
|
||||
|
||||
<img>
|
||||
The image tag must contain a 'src="/images/yourimage.png"' element and a
|
||||
descriptive 'alt="A short textual description of the image content"'
|
||||
element.
|
||||
|
||||
|
||||
5. Typography
|
||||
=============
|
||||
|
||||
* Avoid any typographical quotation marks to highlight terms or express any
|
||||
kind of subtle inflection, use semantic markup instead.
|
||||
* The hyphen is used to for compound words such as this well-advised example.
|
||||
* Do not hyphenate words at line breaks.
|
||||
* For breaks in thought — such as this splendid example — use
|
||||
the long em-dash.
|
||||
* For ranges of values, use the en-dash: Monday – Friday, 0 –
|
||||
11.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user