WikiPages

This page is an extension of the Help:Editing page and gives common guidelines for writing and updating the FreeCAD wiki documentation. It summarizes several discussions and brainstorming sessions.

Before starting

 * This wiki documentation is based on MediaWiki, the same software that powers Wikipedia. If you have contributed to Wikipedia, editing FreeCAD wiki pages should be easy.
 * Contrary to Wikipedia, the FreeCAD wiki is write-protected to avoid spam. You must request an account on the forum.
 * If you have never used wiki software before, please read Help:Editing to become familiar with the markup that is used.
 * For advanced use of the wiki software, see MediaWiki Help:Contents. Not all features of MediaWiki are available in this FreeCAD wiki, but many are.
 * We like to keep the documentation easy to read, so avoid using complex features. Keep it simple.
 * Use a sandbox to test your code, for example, FreeCADDocu:Sandbox or a particular page with your name Sandbox:Yourname.
 * Please be aware of the translations. The FreeCAD wiki uses automated translation support to provide pages in many languages. For every page multiple language versions can exist. On many pages you will see tags like  and many single tags like  . The latter are created by the translation system. They link the headers and paragraphs to their translated versions. You should not change them as that would destroy those links. It is however fine to move paragraphs or change wording as long as the tags stay with them. If you remove a header or a paragraph you should also remove the tag belonging to it. Please be aware that changes to existing headers and paragraphs affect the current translations. Your changes should be worth it. Do not worry when adding new material because the system will add new tags automatically after your edits. For more information see Localisation and the original Mediawiki:Extension:Translate page.

Concise descriptions
When describing FreeCAD functionality try to be concise and to the point. Describe what FreeCAD does, not what FreeCAD does not do. There might be exceptions for justifying why FreeCAD does not support a certain functionality, for instance, to explain how FreeCAD is different from other CAD systems.

Centralized information
Avoid duplicating the same information in different places. Insert the information in a new page, and link to this page from other pages that require this information.

Do not use transclusion of pages (Help:Editing#Templates and transcluding pages), as this makes the wiki difficult to translate. Use only the templates described below in #Templates.

Styling
Templates are used for styling the text used in the help pages.

There is a template for styling menu commands, like, another template to style keys to be pressed, like , another template to show a Boolean value , etc. This allows the documentation to have a consistent look and feel, as well as being able to be translated without much effort. Please get familiar with the #Templates section before writing help pages.

Temporary flags
If you are working on a large page it is advised that you mark the page either as work-in-progress or as unfinished. This assures that the Wiki admins don't mark your page as ready for translation while you are still frequently change it.

To flag a page, simply add either   or    as first line to a page. With   you invite everybody to join and finish the page while with     you will do the work and others should give you some time.

Once the work is done, please don't forget to remove the flags!

Examples
You can quickly get familiar with the structure and style of the FreeCAD wiki by looking at the following pages, which can be considered reference pages for the rest of the FreeCAD documentation.
 * Draft ShapeString
 * Draft Line

General
You should normally not use a = header = section for a page, since the page title is automatically added.

The User hub provides a Table of Contents; this is used as the main reference for automatically building the offline help you can reach from FreeCAD, as well as the offline PDF documentation.

The Template:Docnav is used to link to the page before and the page after, according to the structure of the Table of Contents. See #Templates for a list of all templates.

Page names
Page names should be short, and they should use "sentence case", as opposed to "title case". This is the style used by Wikipedia for their articles.

Essentially, all words except the first one and proper names, should be in lowercase.


 * Tutorial on the construction of AeroCompany airplanes
 * Tutorial On The Construction Of AeroCompany Airplanes

a previous convention was to use title case; every word should begin with a capital letter, unless they are articles, prepositions, conjunctions, or other grammatical particles, that is, "of, on, in, a, an, and", etc. There are many pages using this style, but this is discouraged for new pages. This is discussed in the forum thread (Lowercase links) Use a lower case title for a wiki page.

Page names for workbenches and tools
The top level workbench page must have the format XYZ Workbench, where XYZ is the name of the workbench. See Workbench pages for the content.

Pages describing the tools (Gui Commands) of the workbench must have the format XYZ Tool, where Tool is the name of the specific tool. See Command (tool) pages for the content.


 * Bad name
 * Working with architectural objects
 * Working with architectural walls
 * Drafting 2D objects
 * Tool: building a line between two points


 * Good name
 * Arch Workbench
 * Arch Wall
 * Draft Workbench
 * Draft Line

Links
You should use the original link name for the links whenever possible. This clarifies the referenced page in printed or offline documentation. You must avoid the usage of non-meaningful words for the link.


 * Bad link
 * For more information on this topic, click here.


 * So-so link
 * For more information on this topic, refer to drafting 2D objects.


 * Good link
 * For more information on this topic, see how to draft 2D objects in the Draft Workbench.

Page navigation
Navigation links help the user to browse through the wealth of information in this wiki. Consider the use of following to make browsing more fun to the reader:


 * "top" links. For long pages, you could go back to the table of contents.
 * "back" links. This allows to get back to a certain issue. A back link is much ore useful than the browsers "back" button because it contains structural information. A backlink could lead you up one stage on the hierarchy of information. For example see the External Workbenches: from wherever you arrive an a page about an external workbench you might want to see what other workbenches are available.

See the next section on how to do these links.

Top page links
Just use type the following at the place where you want the top link.

top

You could put it at the end of each chapter. Make sure to have an empty line before, so it stays free of the last paragraph.


 * Note 1: If you know the MediaWiki platform you might note that this works even without defining "top" as a link target using  . This only works of course if the "top" is not used for other things. 
 * Note 2: Should you think that is useful you can just start to practice a bit by putting a "top" link at the end of every section of this really long page.

top

Back links
For a back link you have 2 choices:
 * go back to the top of another page
 * go back to a certain section of another page

The preferred format for a link is:

name of page

To translate this line:

nom de la page

Note that for the part before the '|' character, the actual link, case is relevant. If your page name is 'Name_of_page' the link will fail if you type 'Name_of_Page' (upper case 'P'). Before the '|' character all spaces should be replaced by underscores ('_'). This is to assist translators using translation software, without the underscores the link would be translated by the software which is undesirable.

To link to a certain section you just add the section name (i.e. the headline text) after a '#' sign behind the page name. Example:

WikiPages

To translate this line:

WikiPages

Within the same page you can omit the page name, e.g.  gives Top page links.

top

Workbench pages
Every page of a workbench should start with:
 * the name of the workbench,
 * an image of the look of the workbench (menu and toolbar in their default position), and
 * a description of what the workbench is used for

See #Screen capture for conventions on including images.

Command (tool) pages
The command pages describing workbench tools should not be too long, they should only explain what a command can do and what it can't, and how to use it. You should keep pictures and examples to a minimum; tutorials can expand on how to use the tool and provide step-by-step details.

Limitations and shortcomings should be documented right in the command page, possibly under a "restrictions" or "limitations" section.

Please refer to the Gui Command page for specific indications on how these commands should be presented, and use the GuiCommand model to start filling the information where appropriate.

Tutorials
A well written tutorial should teach the user how to achieve certain practical results quickly. It shouldn't be extremely long, but it should include a sufficient amount of step-by-step instructions and pictures to guide the user on using different tools.

A series of tutorials in which each increases in complexity could be helpful to explore basic, intermediate, and expert tools in one or more workbenches.

See the tutorial guidelines for a basic idea on how to set up a tutorial.

See some examples
 * Tutorials, already written and accessible from the sidebar,
 * FreeCAD tutorial - Unofficial tutorial blog, for other example tutorials.

As FreeCAD evolves, some tutorials may become too old for modern versions of the program, so it is important to mention the version or limitations of the tools used in that specific version of the tutorial.

Expressions
You should avoid colloquial generic expressions as "a couple". Please re-phrase as "some" if an indeterminate number, or use the correct quantity.

Conciseness
Try to avoid repetitions to keep descriptions short.

Bad description
PartDesign Workbench: the PartDesign Workbench is a workbench for part design that aims to provide tools for modelling complex solid parts.

Good description
PartDesign Workbench: aims to provide tools for modelling complex solid parts.

Templates
Styling of FreeCAD wiki pages is achieved through the usage of templates (Help:Editing). Please only use the templates listed in the tables below; doing this will allow re-styling the entire wiki by updating the template, and help achieve a standardized look and feel across all pages. Only for special cases should you use HTML tags directly.

You can see the complete list of defined templates by accessing Special:PrefixIndex/Template:. However, not all templates listed there are used for styling the text, and others are deprecated; please use only the ones in the tables below.

Click on the template link to see the usage instructions for the template, and to see its implementation. Templates are a powerful feature of the MediaWiki software; you should be an experienced wiki user if you wish to propose additions and modifications to existing templates. If implemented incorrectly, templates make it difficult to translate pages into other languages, so their use should be limited to text formatting; page transclusion should be avoided. See MediaWiki Help:Templates to learn more.

Simple styling templates
These templates accept a simple text parameter, and format it with a particular style.

More complex templates
These templates require more input parameters, or produce a block of text with a particular format.

Deprecated templates
To have a global view on the chromatic aspect, see Basic Graphic Template.

Code
Code must be styled using the Code template. The description of such code should follow afterwards. Accentuation should be strictly used only on the word or lines that must be accentuated.

Python code should adhere to the general recommendations established by PEP8: Style Guide for Python Code. In particular, parentheses should immediately follow the function name, and a space should follow a comma. This makes the code more readable.

Example of good code description

 * Creates an angular dimension from the given point, the  containing  and, and passing through point.
 * Returns the newly created object.

Graphics
Images and screenshots are necessary to produce a complete documentation of FreeCAD. Images are particularly useful to illustrate examples and tutorials.

General
Avoid thumbnails and resizing bitmap pictures (downsizing or upscaling). Pictures should be shown in their original size, so they present sufficient detail and are readable if they include text. The exception to this are SVG images, which can be scaled to any desired size without losing detail.

Avoid animated pictures (GIF) in the general Gui Command help pages. Animations and videos should be reserved for tutorials not intended to be used as offline PDF documentation.

Pictures must be uploaded through the Special:Upload page.

Name
Give a meaningful name to your image. If you have a picture that showcases the characteristics of a particular command, you should use the same name as the command with at the end.
 * For the command Draft Offset the image should be called Draft Offset example.jpg.
 * For the command Arch Space the image should be called Arch Space example.jpg.

Screen capture
Recommended sizes for screen captures are:
 * Native 400x200 (or width=400 and height<=200), for Gui Command pages, to allow the picture to fit in the left part of the page, and for other standard snapshots.
 * Native 600x400 (or width=600 and height<=400), for Gui Command pages, when you really need a bigger picture, and still allow the picture to fit in the left part of the page, and for other standard snapshots.
 * Native 1024x768 (or width=1024 and height<=768), only for full screen images.
 * Smaller sizes are possible when showing details, however use native resolution, not resizing or thumbnails, unless you have a very good reason to do so.
 * Avoid larger resolutions, as they won't be very portable to other kinds of display or in the printed PDF documentation.

You shouldn't depend on any particular configuration of your desktop or operating system when you show screenshots. You should use visual defaults of the FreeCAD interface whenever possible.

To create a screen capture you can use the default options provided by your OS or use one of these macros: Macro Snip and  Macro Screen Wiki.

Text
To ease documentation translations, take separate pictures of the interface and the 3D model viewport. The picture of the 3D model can be reused in every translation, while a translator can take a picture of the localized interface if necessary.

If your screen capture contains text use the same resolution of the original interface in FreeCAD so that text is readable.

Bad sizing for reading text


In the second picture the text is less clear and there are visual artifacts due to rescaling the original width from 307px to 190px.

Icons and graphics
Refer to the Artwork page for all artwork and icons that have been created for FreeCAD, which can be immediately reused in documentation pages. If you would like to contribute with icons, please read the Artwork Guidelines.

Translations
As per general consensus, the reference page in the wiki is the English page, which should be created first. If you want to change or add content to a page, you should do it to the English page first, and only once the update is completed, port the modification to the translated page.

The FreeCAD wiki supports a translation extension that allows managing translations between pages easier; for details, see Localisation Translating the wiki.

Other useful resources are:
 * ISO language codes to identify the two-letter code for a particular language that you want to translate to.
 * Country flags to identify a country's flag for use in relevant localized pages.
 * Google Translate for help with translating languages.
 * Deepl translator for help with translating languages.

Setting GuiCommand
translated:

Setting template
translated:

Setting link
translated:

or:

translated:

Setting Docnav
To localize the Template:Docnav navigation bar, see this thread in the forum Docnav previous/next.

Essentially, a new translated template needs to be created, Template:Docnav/it.

The translated template should include the appropriate localized links as the 'previous' and 'next' parameters, together with the translated text:

The translated template should include the appropriate localized links as the 'previous' and 'next' parameters with icon, together with the translated text:

Also includes the appropriate language category

If the localized category is not included in the translated template, the translated template will remain in the default English category.

Using special pages

 * Special:LonelyPages lists those pages that are not linked from other pages in the FreeCAD wiki, therefore nobody can access these pages. If you find any in your native language, try to create the connection that exists in the English version of the page, otherwise no one can read them.
 * Special:UncategorizedPages lists pages without an assigned category, therefore they do not appear when you browse the wiki by categories. Assign a category.
 * Special:WantedPages lists pages that are called in a page, but that do not exist. These are shown as red links in the text. Deprecated and very annoying.
 * Others Wanted (files and templates)
 * Special:WantedCategories lists categories that are used in a page, but that do not exist. They can be created immediately by clicking on the red link. Skip.
 * Special:Categories lists all categories in the wiki. They allow you to compare the number of pages inside a translated category, which should preferably match then number of pages inside the English language category.
 * Special:ListRedirects lists all redirected pages. If there is any red links, something does not work well. Investigate which link is missing. Light blue links lead to pages outside the site, no problem.
 * Special:RecentChanges lists the most recent changes done to the wiki, including the pages changed, the number of changes to a particular page, whether these were additions or subtractions, and the user responsible.
 * Special:LanguageStats shows translation statistics for all message groups for a single language. Shows the parts not translated in a given language, only for those pages marked for translation. To see what has not been translated, set the language code and press Show statistics. It also contains the link to see what has been recently translated into that language. Note: if entering the English code en shows pages, it is likely that the original page contains markup errors, with the exception of the sidebar.
 * Special:PageTranslation lists all pages marked for translation, and those unmarked but that have translation tags. Only administrators can mark pages for translation.
 * Category:Pages to delete: lists all pages that should be deleted because they were created by mistake, are obsolete, or no longer necessary.

Rename pages
Since FreeCAD is a project under permanent development, it is necessary to revise the Wiki pages. One task is hereby to check if the file and page names are still following the conventions. If a workbench changed for example a component name, the Wiki page describing it must be renamed. Thi can only be done by Wiki administrators. To inform them, open a topic in the Wiki forum and list the necessary renaming in this form:

old name                    new name OLD_PAGE_NAME   NEW_PAGE_NAME ...

Move files
To rename files it is in many cases to move them. That means they will become a new file under a new name while its content remains.

To move a file, go to its page ( https://www.freecadweb.org/wiki/File:***.*** ) and click at the upper right on the menu More and select there the appearing menu Move. This opens a page with all info on how to perform a movement.

Delete files and pages
In case you need to delete a file, go to its page ( https://www.freecadweb.org/wiki/File:***.*** ) and edit it. No matter if the page is blank or not, add this command as first element to the page:   and describe below why this should be deleted. Additonally, open a topic in the Wiki forum.

For pages the procedure is the same.

Robots
Head to WikiRobots to find instructions on how to set up and use robots to automate repetitive tasks on the FreeCAD Wiki.

Discussion
The Development/Wiki subforum in the FreeCAD forum provides a dedicated space for discussing improvements on the wiki topics and appearance. Direct your questions and suggestions there.

English
See Glossary.

Other languages

 * Italiano
 * Français
 * Deutsch