Writing an Application Manual/en: Difference between revisions

From KDE UserBase Wiki
(Updating to match new version of source page)
 
(Importing a new version from external source)
 
(12 intermediate revisions by the same user not shown)
Line 16: Line 16:
** Appname/Manual/Bug reports
** Appname/Manual/Bug reports
** Appname/Manual/Get involved #link to techbase etc
** Appname/Manual/Get involved #link to techbase etc
If some of your sections grow too large, you can place subsections on separate pages. It might look like this:
* Appname/Manual # Your Contents page
** Appname/Manual/An Introduction to Appname
** Appname/Manual/Configuration Choices
** Appname/Manual/The First Time you use Appname
** Appname/Manual/''section 1''
*** Appname/Manual/''section 1''/''subsection 1''
*** Appname/Manual/''section 1''/''subsection 2''
and so on.
{{Info|The page names do not have to follow the structure of the document closely! In the above example you could simply use Appname/Manual/''subsection 2'' instead of Appname/Manual/''section 1''/''subsection 2'' and similarly for sub-subsections (as long as this procedure does not produce duplicate names {{Smiley}}).}}
{{Remember|Try to keep page names short and avoid long paths. Overly long page names are cumbersome to type when you link to them, and they don't look good on the wiki pages. And always remember: The page names and their structure have no influence on the finished handbook whatsoever! It is entirely determined by the headings in the actual text.}}
In order for the automatically generated Docbook to have the same contents page as the one you make on UserBase, and for links to work in the Docbook there are a couple or guidelines, that must be followed:
* The Docbook Table of Contents will list all sections and subsections regardless of whether they have a page of their own. On the other hand, subsubsections won't be listed in the Docbook TOC even though they have a page of their own.
* All pages should have a heading at the very top, either a section (== ... ==), a subsection (=== ... ===), or a subsubsection (==== ... ====), otherwise the Docbook structure will be messed up.
* The title of the section/subsection must exactly match the page name, otherwise Docbook links won't work.
* Subsection titles must be written like this: <code>==='' '''title''' ''===</code>, even if it is the top level on a page. Otherwise the Docbook structure will be messed up. Similarly, if you have a very long subsection with subsubsections on pages of their own, these pages must have their titles written like this: <code>===='' '''title''' ''====</code>.
* Subsubsections that should not appear in the contents page and should not appear on a page of its own in the Docbook must be level 4 or below, i.e ==== or more.
* Links to pages in the manual must exactly match the page name (i.e. no links via redirects!)
* If you link to a subsection of a page, you must have an anchor at the target location. Failing that will mess up Docbook links as well as translations.
{{Note|1=Every subsection (===) gets a page of its own in the Docbook, even if it is part of a longer page on UserBase. This means that a section (==) that contain a number of subsections, but no text before the first subsection gets a Docbook page that contains nothing but links to the subsections.}}
{{Remember|1=If at some point you decide to change the title of the main (sub)section of a page (the first headline), it is important that you also change the name of the page accordingly, and also that all links to that page are modified to match the new name.}}


{{Remember|1=<span  style="color:red;">Please do not use any kind of punctuation in your page names</span> &mdash; punctuation like question marks or periods creates serious problems for the wiki software, in particular for the translation system.}}
{{Remember|1=<span  style="color:red;">Please do not use any kind of punctuation in your page names</span> &mdash; punctuation like question marks or periods creates serious problems for the wiki software, in particular for the translation system.}}
Line 21: Line 56:
You will need a scratchpad to experiment with section headings/pages.  You can use either your UserTalk page, or the discussion pages attached to the area where you are working.  It's helpful if you remove anything no longer required, once the job is completed.
You will need a scratchpad to experiment with section headings/pages.  You can use either your UserTalk page, or the discussion pages attached to the area where you are working.  It's helpful if you remove anything no longer required, once the job is completed.


==Contents==
== Developing a Manual ==
 
While developing your manual it is usually best to keep it separate from the regular UserBase content. Some prefer to edit their drafts as subpages of their Talk: page. We also have a special <tt>Draft:</tt> namespace for this purpose.
 
To create the content page of your manual, simply write <tt><nowiki>http://userbase.kde.org/Draft:</nowiki>'''''Appname/Manual'''''</tt> in the address line of your browser, or place the <nowiki>[[Draft:Appname/Manual]]</nowiki> link in a page and then click it. Either way you will be taken to a page telling you that the page does not exist, but that you can create it clicking a link.
 
===Contents===


* Once you have made the decisions (that can be a lengthy procedure), create appropriate links on the Contents page.    It is, of course, possible to insert a section later if you find you've missed something.
* Once you have made the decisions (that can be a lengthy procedure), create appropriate links on the Contents page.    It is, of course, possible to insert a section later if you find you've missed something.


==Building your Manual==
===Building your Manual===


* Use the red links to create the page, and write up a section at a time.
* Use the red links to create the page, and write up a section at a time.
Line 41: Line 82:
* Make application name formatting consistent (avoid using '''Amarok'''s, do use '''Amarok's''').
* Make application name formatting consistent (avoid using '''Amarok'''s, do use '''Amarok's''').


* Ensure that '''all''' images are in PNG format (you can use JPEG (.jpeg, not .jpg) as well, but in this case you should convert your images to PNG later.  Save work by converting them before you start [[Image:Smiley.png|16px]].
* Ensure that '''all''' images are in PNG format (you can use JPEG as well, but in this case they should be converted to PNG by the script).  Save work by converting them before you start [[Image:Smiley.png|16px]].


<!--{{-->* Remove all non-printable characters from image names.}}
<!--{{-->* Remove all non-printable characters from image names.}}
==== Formatting considerations ====
In order for your manual to be translatable into Docbook format there are some restrictions on formatting that should be observed.
* [[Special:myLanguage/Toolbox#Notes and Warnings|Notes and Warnings]] do not support alternative titles in Docbook. Don't write something like <br /><code><nowiki>{{Remember|2=Don't Forget This!|1=You can use...}}</nowiki></code><br />The <code>2=...</code> part has no meaning in Docbook and the program transforming the wiki page to Docbook might get very confused. Just write<br /><code><nowiki>{{Remember|1=You can use...}}</nowiki></code>
* [[Special:myLanguage/Toolbox#Embed a Video|Embed a Video]] has some limitations in its current implementation: Only YouTube and Vimeo are supported and only one value (the id of the video) can be passed as argument.
=== Searching your manual ===
At some point, you may need to find something that you wrote earlier, but can't remember where. Using the wiki search box may not be ideal unless the string you search for is very specific. You can get much better control over searches using the DPL extension. For example, to find the pages in your manual containing a certain string, you can add the following to any page:
{{Input|1=<nowiki>
<DPL>
  titlematch = %Appname/Manual%
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  namespace = | Draft
  include = *
  includematch = /string to search for/
  includemaxlength = 0
  resultsheader = Manual Pages:
  format = ,\n* [[%PAGE%|%TITLE%]]\n,,
</DPL>
</nowiki>}}
You can find more examples on using DPL on [[User:Claus_chr/DPL]].
{{Note|1=If You are working on the Amarok manual be aware that some of the pages deviate from the normal naming convention. To find matches on all Amarok manual pages use
{{Input|1=titlematch = %Amarok/QuickStartGuide%{{!}}%Amarok/Manual%}}
(Note that there can be no space characters on either side of the '{{!}}' character)
}}


==Preparing the Manual for Translation==
==Preparing the Manual for Translation==


* The steps for markup editing can be found on [[Special:myLanguage/Edit Markup|Preparing a Page for Translation]].  Please adhere to that guide, since old markup styles may not still be relevant.
* The steps for markup editing can be found on [[Special:myLanguage/Edit Markup|Preparing a Page for Translation]].  Please adhere to that guide, since old markup styles may not still be relevant.
== Producing a DocBook manual ==
Once your manual is written you can have it transformed into a DocBook manual, so that your work can be used like an ordinary KDE handbook. The procedure is described in [[Special:myLanguage/How_To_Convert_a_UserBase_Manual_to_Docbook|this page]].


[[Category:Contributing]]
[[Category:Contributing]]

Latest revision as of 20:20, 29 August 2018

Notes

Manuals will be included as sub-pages of the main application page. For brevity, I will refer to that main page as Appname. The structure, therefore would be something like:

  • Appname
    • Appname/Hints and Tips
  • Appname/Manual # Your Contents page
    • Appname/Manual/An Introduction to Appname
    • Appname/Manual/Configuration Choices
    • Appname/Manual/The First Time you use Appname
    • Appname/Manual/section 1
    • Appname/Manual/section xxx
    • Appname/Manual/Hints and Tips
    • Appname/Manual/Troubleshooting
    • Appname/Manual/Bug reports
    • Appname/Manual/Get involved #link to techbase etc

If some of your sections grow too large, you can place subsections on separate pages. It might look like this:

  • Appname/Manual # Your Contents page
    • Appname/Manual/An Introduction to Appname
    • Appname/Manual/Configuration Choices
    • Appname/Manual/The First Time you use Appname
    • Appname/Manual/section 1
      • Appname/Manual/section 1/subsection 1
      • Appname/Manual/section 1/subsection 2

and so on.

Information

The page names do not have to follow the structure of the document closely! In the above example you could simply use Appname/Manual/subsection 2 instead of Appname/Manual/section 1/subsection 2 and similarly for sub-subsections (as long as this procedure does not produce duplicate names ).


Remember

Try to keep page names short and avoid long paths. Overly long page names are cumbersome to type when you link to them, and they don't look good on the wiki pages. And always remember: The page names and their structure have no influence on the finished handbook whatsoever! It is entirely determined by the headings in the actual text.


In order for the automatically generated Docbook to have the same contents page as the one you make on UserBase, and for links to work in the Docbook there are a couple or guidelines, that must be followed:

  • The Docbook Table of Contents will list all sections and subsections regardless of whether they have a page of their own. On the other hand, subsubsections won't be listed in the Docbook TOC even though they have a page of their own.
  • All pages should have a heading at the very top, either a section (== ... ==), a subsection (=== ... ===), or a subsubsection (==== ... ====), otherwise the Docbook structure will be messed up.
  • The title of the section/subsection must exactly match the page name, otherwise Docbook links won't work.
  • Subsection titles must be written like this: === title ===, even if it is the top level on a page. Otherwise the Docbook structure will be messed up. Similarly, if you have a very long subsection with subsubsections on pages of their own, these pages must have their titles written like this: ==== title ====.
  • Subsubsections that should not appear in the contents page and should not appear on a page of its own in the Docbook must be level 4 or below, i.e ==== or more.
  • Links to pages in the manual must exactly match the page name (i.e. no links via redirects!)
  • If you link to a subsection of a page, you must have an anchor at the target location. Failing that will mess up Docbook links as well as translations.

Note

Every subsection (===) gets a page of its own in the Docbook, even if it is part of a longer page on UserBase. This means that a section (==) that contain a number of subsections, but no text before the first subsection gets a Docbook page that contains nothing but links to the subsections.


Remember

If at some point you decide to change the title of the main (sub)section of a page (the first headline), it is important that you also change the name of the page accordingly, and also that all links to that page are modified to match the new name.


Remember

Please do not use any kind of punctuation in your page names — punctuation like question marks or periods creates serious problems for the wiki software, in particular for the translation system.


You will need a scratchpad to experiment with section headings/pages. You can use either your UserTalk page, or the discussion pages attached to the area where you are working. It's helpful if you remove anything no longer required, once the job is completed.

Developing a Manual

While developing your manual it is usually best to keep it separate from the regular UserBase content. Some prefer to edit their drafts as subpages of their Talk: page. We also have a special Draft: namespace for this purpose.

To create the content page of your manual, simply write http://userbase.kde.org/Draft:Appname/Manual in the address line of your browser, or place the [[Draft:Appname/Manual]] link in a page and then click it. Either way you will be taken to a page telling you that the page does not exist, but that you can create it clicking a link.

Contents

  • Once you have made the decisions (that can be a lengthy procedure), create appropriate links on the Contents page. It is, of course, possible to insert a section later if you find you've missed something.

Building your Manual

  • Use the red links to create the page, and write up a section at a time.
  • Note on the Discussion page anything you will need to refer to later, such as links that can't yet be created.

Remember

It's important to be consistent, particularly in Manuals, so here are some general rules:
  • Take care with heading levels - we start at second level (Mediawiki uses top level for page-name), using ==
  • Make application name formatting consistent (avoid using Amaroks, do use Amarok's).
  • Ensure that all images are in PNG format (you can use JPEG as well, but in this case they should be converted to PNG by the script). Save work by converting them before you start .
  • Remove all non-printable characters from image names.


Formatting considerations

In order for your manual to be translatable into Docbook format there are some restrictions on formatting that should be observed.

  • Notes and Warnings do not support alternative titles in Docbook. Don't write something like
    {{Remember|2=Don't Forget This!|1=You can use...}}
    The 2=... part has no meaning in Docbook and the program transforming the wiki page to Docbook might get very confused. Just write
    {{Remember|1=You can use...}}
  • Embed a Video has some limitations in its current implementation: Only YouTube and Vimeo are supported and only one value (the id of the video) can be passed as argument.

Searching your manual

At some point, you may need to find something that you wrote earlier, but can't remember where. Using the wiki search box may not be ideal unless the string you search for is very specific. You can get much better control over searches using the DPL extension. For example, to find the pages in your manual containing a certain string, you can add the following to any page:

<DPL>
  titlematch = %Appname/Manual%
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  namespace = | Draft
  include = *
  includematch = /string to search for/
  includemaxlength = 0
  resultsheader = Manual Pages:
  format = ,\n* [[%PAGE%|%TITLE%]]\n,,
</DPL>

You can find more examples on using DPL on User:Claus_chr/DPL.

Note

If You are working on the Amarok manual be aware that some of the pages deviate from the normal naming convention. To find matches on all Amarok manual pages use
titlematch = %Amarok/QuickStartGuide%|%Amarok/Manual%
(Note that there can be no space characters on either side of the '|' character)


Preparing the Manual for Translation

Producing a DocBook manual

Once your manual is written you can have it transformed into a DocBook manual, so that your work can be used like an ordinary KDE handbook. The procedure is described in this page.