Writing an Application Manual: Difference between revisions

From KDE Wiki Sandbox
No edit summary
No edit summary
 
(32 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Info|1=It's important to be consistent, particularly in Manuals, so here are some general rules:
<languages />
* Take care with heading levels - we start at second level (Mediawiki uses top level for page-name), using <nowiki>==</nowiki>
<translate>
* Make sure you refer frequently to this page, to [[Tasks_and_Tools|Tasks and Tools]] and to [[Typographical_Guidelines|Typographical Guidelines]]
==Notes== <!--T:1-->
* * Check if all table cells have space after the pipe character. This rule conforms with [http://en.wikipedia.org/wiki/Help:Table traditional wiki formatting].
* 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]].
* Remove all non-printable characters from image names.}}
 
 
==Notes==


<!--T:2-->
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:
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:


<!--T:3-->
* Appname
* Appname
** Appname/Hints and Tips
** Appname/Hints and Tips
Line 22: Line 17:
** Appname/Manual/Hints and Tips
** Appname/Manual/Hints and Tips
** Appname/Manual/Troubleshooting
** Appname/Manual/Troubleshooting
** Appname/Manual/Found a bug?
** Appname/Manual/Bug reports
** Appname/Manual/Get involved #link to techbase etc
** Appname/Manual/Get involved #link to techbase etc


<!--T:28-->
If some of your sections grow too large, you can place subsections on separate pages. It might look like this:
<!--T:29-->
* 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.
<!--T:40-->
{{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}}).}}
<!--T:41-->
{{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.}}
<!--T:30-->
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:
<!--T:31-->
* 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.
<!--T:32-->
* 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.
<!--T:33-->
* The title of the section/subsection must exactly match the page name, otherwise Docbook links won't work.
<!--T:34-->
* 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>.
<!--T:35-->
* 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.
<!--T:36-->
* Links to pages in the manual must exactly match the page name (i.e. no links via redirects!)
<!--T:37-->
* 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.
<!--T:38-->
{{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.}}
<!--T:39-->
{{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.}}
<!--T:4-->
{{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.}}
<!--T:5-->
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 == <!--T:21-->
 
<!--T:22-->
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.
 
<!--T:23-->
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=== <!--T:6-->


<!--T:7-->
* 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=== <!--T:8-->


<!--T:9-->
* 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.
<!--T:10-->
* Note on the Discussion page anything you will need to refer to later, such as links that can't yet be created.
* Note on the Discussion page anything you will need to refer to later, such as links that can't yet be created.


==Preparing the Manual for Translation==
<!--T:11-->
{{Remember|1=It's important to be consistent, particularly in Manuals, so here are some general rules:<!--}}-->
 
<!--T:12-->
* Take care with heading levels - we start at second level (Mediawiki uses top level for page-name), using <nowiki>==</nowiki>
 
<!--T:13-->
* Make sure you refer frequently to this page, to [[Special:myLanguage/Tasks_and_Tools|Tasks and Tools]] and to [[Special:myLanguage/Typographical_Guidelines|Typographical Guidelines]]
 
<!--T:14-->
* Check if all table cells have space after the pipe character. This rule conforms with [http://en.wikipedia.org/wiki/Help:Table traditional wiki formatting].
 
<!--T:15-->
* Make application name formatting consistent (avoid using '''Amarok'''s, do use '''Amarok's''').
 
<!--T:16-->
* 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]].
 
<!--T:17-->
<!--{{-->* Remove all non-printable characters from image names.}}
 
==== Formatting considerations ==== <!--T:44-->
 
<!--T:45-->
In order for your manual to be translatable into Docbook format there are some restrictions on formatting that should be observed.
 
<!--T:46-->
* [[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>
 
<!--T:47-->
* [[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 === <!--T:24-->
 
<!--T:25-->
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:
 
<!--T:26-->
{{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>}}
 
<!--T:27-->
{{Info|1=You can find more examples on using DPL on [[User:Claus_chr/DPL]]. An easier way to search for strings in a manual is to use the SearchPages template: To search for the string "timeline" in the Kdenlive manual enter <code><nowiki>{{SeatchPages|1=Kdenlive/Manual|2=[Tt]imeline}}</nowiki></code> in a page.<br /><br />Pro tip: You don't need to save the page to see the search results &mdash; just preview the page and cancel the "edit" when you have found what you were looking for.}}
 
<!--T:48-->
{{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== <!--T:18-->
 
<!--T:19-->
* 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 == <!--T:42-->


* The steps for markup editing can be found on [[EditMarkup|Preparing a Page for Translation]].  Please adhere to that guide, since old markup styles may not still be relevant.
<!--T:43-->
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]].  


<!--T:20-->
[[Category:Contributing]]
[[Category:Contributing]]
</translate>

Latest revision as of 11:41, 25 August 2019

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>
Information
You can find more examples on using DPL on User:Claus_chr/DPL. An easier way to search for strings in a manual is to use the SearchPages template: To search for the string "timeline" in the Kdenlive manual enter {{SeatchPages|1=Kdenlive/Manual|2=[Tt]imeline}} in a page.

Pro tip: You don't need to save the page to see the search results — just preview the page and cancel the "edit" when you have found what you were looking for.


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.