WikiPages: Difference between revisions

From FreeCAD Documentation
(→‎Using special pages: Correct link)
(→‎Brainstorming: Correct link)
Line 431: Line 431:
{{VeryImportantMessage|All that follows is open to discussion. You can stop reading here if you don't intend to suggest modifications to the FreeCAD WikiPages style rules. You should discuss any wiki-related topic on the [[http://forum.freecadweb.org/viewforum.php?f=21 Development/Wiki subforum]]. Contributions are welcome.}}
{{VeryImportantMessage|All that follows is open to discussion. You can stop reading here if you don't intend to suggest modifications to the FreeCAD WikiPages style rules. You should discuss any wiki-related topic on the [[http://forum.freecadweb.org/viewforum.php?f=21 Development/Wiki subforum]]. Contributions are welcome.}}


See [[Sandbox:Wiki brainstorming]]. The information here was moved there to avoid cluttering this page.---[[User:Vocx|Vocx]] ([[User talk:Vocx|talk]]) 00:38, 2 November 2018 (UTC)
See [[Wiki brainstorming]]. The information here was moved there to avoid cluttering this page.---[[User:Vocx|Vocx]] ([[User talk:Vocx|talk]]) 00:38, 2 November 2018 (UTC)


== Terminology - Naming policy==
== Terminology - Naming policy==

Revision as of 02:05, 2 November 2018

This page gives common guidelines on the best practices to be followed when writing or updating FreeCAD documentation.

It also has the goal to bring together the threads that are dispersed in the forum and try to make order, being a single point of reference for FreeCAD documentation discussion and brainstorming, to better organize the wiki.

Before Starting

This wiki documentation is based on MediaWiki, the same software that powers Wikipedia. If you have contributed to Wikipedia before, editing FreeCAD wiki pages should be easy.

If you have never used wiki software before, head to Help:Editing to become familiar with the markup used to edit pages.

For advance usage of the wiki software, see MediaWiki Help:Contents. Not all features of MediaWiki are available in this FreeCAD wiki, but many of them are. We like to keep the documentation simple 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.

General Guidelines

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 File → Save, another template to style keys to be pressed, like Shift, another template to show a Boolean value true, 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.

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.

Structure

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.

Use: Tutorial on the construction of AeroCompany airplanes
Avoid: Tutorial On The Construction Of AeroCompany Airplanes

Note: 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 tools

The top level workbench page must have the format XYZ Workbench, where XYZ is the name of the workbench.

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

Bad name

Good name

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

Good link

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

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. Use Boiler NonCommand to fill in information that is not related to a command.

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

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.

Language

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.

Style

Templates

Styling of FreeCAD wiki pages is achieved through the usage of templates (Help:Editing#Templates_and_transcluding_pages). 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, and 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.

Template Appearance Description
Emphasis emphasis Use it to emphasize a piece of text.
KEY Alt Use it to indicate a keyboard key that needs to be pressed.
FALSE false Use it to indicate a False Boolean value, for example, as a property in the property editor.
TRUE true Use it to indicate a True Boolean value, for example, as a property in the property editor.
MenuCommand File → Save Use it to indicate the location of a command inside a particular menu.
FileName File name Use it to indicate a name of a file or directory.
SystemInput Type this text Use it to indicate user typed input text.
SystemOutput Output text Use it to indicate text output from the system.
Optional [Insert or not] Use it in programming descriptions to indicate a text or function argument that is optional.
Choice That } Use it in programming descriptions to indicate a choice between two values.
Incode import FreeCAD Use it to include in-line source code with a monospace font. It should fit in one line.
Variable TYPEMyAttribute Use it in programming descriptions to indicate a value or a parameter, optionally with a type in front of it.
PropertyView ViewColor Use it to indicate a View property in the property editor. View properties are like Line Color, Line Width, Point Color, Point Size, etc.
PropertyData DataPosition Use it to indicate a Data property in the property editor. Data properties are different for different types of objects.
Properties Title / TitleProperty Base Use it to indicate the title of a property group in the property editor. The title will not be included in the automatic table of contents.
PropertyTasks / TasksTag TASK Tasks Use it to indicate the argument for tasks.
TitleTasks ===Tasks Title=== Use it to indicate the title for tasks.
Version introduced in version 0.18 Use it to indicate that a particular feature is available only starting with a specific FreeCAD version.

More complex templates

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

Template Appearance Description
Prettytable This table Use it to format tables such as this one; additional table properties can be added.
Clear Use it to clear columns. Follow the definition of the template for a detailed explanation. It is often used to stop text from flowing next to unrelated images.
Code
import FreeCAD
Source code style. Use it to include multi-line code examples with a monospace font. The default language is Python, bur other languages can be specified.
Fake heading
Heading
Use it to create create a heading that will not be included automatically in the table of contents that is used for the offline documentation.
GuiCommand See Gui Command and GuiCommand model Use it to create a box with useful information to document workbench tools (GuiCommands) of FreeCAD.
Macro See example Macro FlattenWire Use it to create a box with useful information to document macros.
Docnav
Online Help Startpage
Feature list
Use it to create a bar with the words "next", "previous", and "index", and links to the appropriate articles, which is useful for navigating certain help pages which go in a particular sequence.
VeryImportantMessage
Important Message
Use it to create a highlighted box with a very important message. Use sparingly, only to indicate major problems in the functionality of the software, discontinuation of tools, and similar.
Softredirect Use it instead of the normal redirect, when you are redirecting to a special page (such as Media: or Category:), in which cases the normal redirect is disabled.
UnfinishedDocu

This documentation is not finished. Please help and contribute documentation.

GuiCommand model explains how commands should be documented. Browse Category:UnfinishedDocu to see more incomplete pages like this one. See Category:Command Reference for all commands.

See WikiPages to learn about editing the wiki pages, and go to Help FreeCAD to learn about other ways in which you can contribute.

Use it to create a highlighted box indicating an unfinished documentation page.
Quote

Cry "Havoc" and let slip the dogs of war.

—William Shakespeare, Julius Caesar, act III, scene I
Use it to create a box of text with a literal quote and reference.

Deprecated templates

Template Appearance Description
Click Deprecated Use it to superimpose an invisible link on an image. You should use the native wiki picture inclusion method instead.
DASH Deprecated Use it to show a multi-line text box for code, with colorful background. You should use the style you obtain starting the source line with a space.
Disambig Deprecated Use it a disambiguation message in a page.
Information Deprecated Use it to create a standardized table providing complete information about the file, including description of what it shows and how it was made, copyright status and source.
Languages Deprecated Use it to show available translations. It's been obsoleted with the new wiki, which handles translations and languages via a dedicated plugin.
Message Deprecated Use it show a block of text with a colorful background, to indicate a message of low importance.
Powerdocnavi, Devdocnavi, Userdocnavi Deprecated Use them to create navigation boxes for the user documentation, the power user documentation, and the developer documentation.
Screenshot Deprecated Use it to insert screenshots of the software. See #Screen capture instead.

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 bad code description

makeAngularDimension (center,[angle1,angle2],p3): creates an angular Dimension from the given center,
 with the given list of angles, passing through p3. Returns the newly created object.

Example of good code description

Dimension = makeAngularDimension(center, anglelist, p3)
Dimension = makeAngularDimension(center, [angle1, angle2], p3)
  • Creates an angular dimension from the given center point, the anglelist containing angle1 and angle2, and passing through point p3.
  • Returns the newly created Dimension 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.

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.

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.

Good sizing for reading text

PartDesign revolution parameters (original size, 307px)

Bad sizing for reading text

PartDesign revolution parameters (scaled to 190px)

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

Some tips for translators

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:

{{docnav/it|[[Installing/it|Installazione]]|[[Mouse Model/it|Navigazione 3D - Tipo di mouse]]}}

Also include the appropriate language category

[[Category:Template/it]]

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.

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.

Brainstorming

All that follows is open to discussion. You can stop reading here if you don't intend to suggest modifications to the FreeCAD WikiPages style rules. You should discuss any wiki-related topic on the [Development/Wiki subforum]. Contributions are welcome.

See Wiki brainstorming. The information here was moved there to avoid cluttering this page.---Vocx (talk) 00:38, 2 November 2018 (UTC)

Terminology - Naming policy

English

See Glossary

Other languages

Start Center

proposal to create the page:

See Sandbox:Start center. The information here was moved there to avoid cluttering this page.---Vocx (talk) 00:28, 2 November 2018 (UTC)

Sandbox for Macro Dimensions

See Sandbox:Macro dimensions. The information here was moved there to avoid cluttering this page.---Vocx (talk) 23:43, 1 November 2018 (UTC)

Sandbox for PartDesign Fillet

See Sandbox:PartDesign fillet. The information here was moved there to avoid cluttering this page.---Vocx (talk) 23:36, 1 November 2018 (UTC)