Difference between revisions of "Documentation/Description"

From Slicer Wiki
Jump to: navigation, search
m (Text replacement - "https?:\/\/wiki.slicer.org\/slicerWiki\/index.php\/([^ ]+) " to "https://www.slicer.org/wiki/$1")
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
=Naming convention=
 
=Naming convention=
 
*For matter of consistency, both page have been renamed:
 
*For matter of consistency, both page have been renamed:
**Module:EndUserDocumentationTemplate-Documentation-4.0 -> Documentation/4.0/Modules/YOURMODULENAME
+
**Module:EndUserDocumentationTemplate-Documentation-4.0 -> '''Documentation/4.0/Modules/YOURMODULENAME'''
 
**Modules:GradientAnisotropicFilter-Documentation-4.0 -> Documentation/4.0/Modules/GradientAnisotropicDiffusion
 
**Modules:GradientAnisotropicFilter-Documentation-4.0 -> Documentation/4.0/Modules/GradientAnisotropicDiffusion
 
*The main documentation page has also been renamed from "Documentation-4.0" to "Documentation/4.0"
 
*The main documentation page has also been renamed from "Documentation-4.0" to "Documentation/4.0"
*All module documentation page for a given version of Slicer Y.Z should be named according to the following pattern: Documentation/X.Y/Modules/MODULENAME
+
*All module documentation page for a given version of Slicer Y.Z should be named according to the following pattern: '''Documentation/X.Y/Modules/MODULENAME'''
 
 
  
 
=Category=
 
=Category=
 
The following link will list all modules belonging to the Documentation/4.0/Modules category: http://wiki.slicer.org/slicerWiki/index.php?title=Category:Documentation/4.0/Modules
 
The following link will list all modules belonging to the Documentation/4.0/Modules category: http://wiki.slicer.org/slicerWiki/index.php?title=Category:Documentation/4.0/Modules
 
*The template "Documentation/4.0/module-footer" takes care of including the documentation page in the appropriate category. See [3]
 
*The template "Documentation/4.0/module-footer" takes care of including the documentation page in the appropriate category. See [3]
*The following page will list all element from the given category: http://wiki.slicer.org/slicerWiki/index.php/Category:Documentation-4.0-Modules
+
*The following page will list all element from the given category: https://www.slicer.org/wiki/Category:Documentation-4.0-Modules*"category" is a parameter of the "module-footer" template.
*"category" is a parameter of the "module-footer" template.
 
 
*For CLI module, as explained on the template itself [1], it's recommended to use the template "Documentation/4.0/module-cli-category" that can extract the category from the XML module description. See [4].
 
*For CLI module, as explained on the template itself [1], it's recommended to use the template "Documentation/4.0/module-cli-category" that can extract the category from the XML module description. See [4].
 
*Using the provided module category, the module will also be added to the category "Documentation/4.0/Modules/<MainCategory" and "Documentation/4.0/Modules/<MainCategory.SubCategory>". For example:
 
*Using the provided module category, the module will also be added to the category "Documentation/4.0/Modules/<MainCategory" and "Documentation/4.0/Modules/<MainCategory.SubCategory>". For example:
Line 19: Line 17:
  
 
=Versioning:=
 
=Versioning:=
 
+
*All pages and template associated with version X.Y of Slicer are located under the page prefix: Documentation/X.Y
  a) All pages and template associated with version X.Y of Slicer are located under the page prefix: Documentation/X.Y
+
*From any documentation page or template, doing so allows to easily extract the current version using the template "documentation/version". **See [7]
 
+
**In other word, assuming the current page is "Documentation/4.2" adding {{documentation/version}} in the source will return 4.2.
  b) From any documentation page or template, doing so allows to easily extract the current version using the template "documentation/version". See [7]
+
*Following each release of Slicer, this approach will allow us to:
  In other word, assuming the current page is "Documentation/4.2" adding {{documentation/version}} in the source will return 4.2.
+
**minimize the work required after a documentation set is duplicated
 
+
**easily reference the different documentation sets
  c) Following each release of Slicer, this approach will allow us to:
+
**automate the duplication of these pages. Let's note that the mediawiki extensions like "Duplicator" [8] or "Multiplicator" [9] could be useful.
        -- minimize the work required after a documentation set is duplicated
+
*"Long life" of past documentation will also be ensured. Indeed, each time the documentation will be duplicated, a complete set of category, template and documentation page will be created. You will find below what the list of pages and templates could like after 4.2 is released:
        -- easily reference the different documentation sets
 
        -- automate the duplication of these pages. Let's note that the mediawiki extensions like "Duplicator" [8] or "Multiplicator" [9] could be useful.
 
 
 
  d) "Long life" of past documentation will also be ensured. Indeed, each time the documentation will be duplicated, a complete set of category, template and documentation page will be created. You will find below what the list of pages and templates could like after 4.2 is released:
 
 
       [...]
 
       [...]
 
       Documentation/4.0/Modules/Add
 
       Documentation/4.0/Modules/Add
Line 57: Line 51:
 
       Template:Documentation/4.2/module-header
 
       Template:Documentation/4.2/module-header
 
       Template:Documentation/4.2/module-footer
 
       Template:Documentation/4.2/module-footer
 +
*Separation of information and representation
 +
**This could be done with the help of few convenient custom templates:
 +
**See http://wiki.slicer.org/slicerWiki/index.php?title=Category:Templates:Documentation/4.0
 +
*It allow to tune / update how documentation look like for a given documentation set.
  
4) Separation of information and representation
+
=Developer information=
 
+
*For each module, the list of bugs, associated tests, list of classes, developer notes .. should be automatically collected. This could be achieved with the help of the "module-developerinfo" template.
  a) This could be done with the help of few convenient custom templates:
+
*Every module should include the template "Documentation/X.Y/module-developerinfo". See [10]
        See http://wiki.slicer.org/slicerWiki/index.php?title=Category:Templates:Documentation/4.0
+
*As of today, this template is a placeholder/stub. As soon as, functionality will be implemented all module including that template will automatically display the wanted information.
 +
*This implies:
 +
**In mantis, bug should be assigned a category / tag and product version
 +
**In CDash, tests should be labeled with both the ModuleName and the Slicer version. Then, using the webapi we should be able to obtain the list of tests, coverage, etc ...
 +
**Status of the "Ron rules" could be semi-automatically generated: coverage, number of test, amount of documentation, style, ...
 +
=Categorizing=
 +
*The list of category is currently manually generated. This is not sustainable. Given the new page structure. These lists could be automatically generated.
 +
*Mediawiki offers some nice feature to manage category. Let's use them.
  
 +
=Documentation packaging in Slicer=
 +
*Since a template "module-section" have been introduced, there is now a placeholder that will allow to refine how sections are identified and will ease the integration in a future Slicer Assistant module.
 +
**See https://www.slicer.org/wiki/Template:Documentation/4.0/module-section =Critical details=
 +
*A module should be identified consistently in both the source and the documentation. GradientAnisotropicFilter !=  GradientAnisotropicDiffusion
 +
*If a name is incorrect, it should be fixed/updated at the source ! Not just in the documentation.
  
  b) It allow to tune / update how documentation look like for a given documentation set.
+
=ToDo=
 +
*Look at wiki like "http://techbase.kde.org" .. I think we could inspire from what they did and improve the "user friendliness" of slicer wiki
 +
*Add "EmailObfuscator"[11] or "EmailAddressImage"[12] extension to mediawiki that will be used inside the "contact" template [13]
 +
*Setup a mechanism so that current "Documentation Set" follow Slicer source trunk could be duplicated and "frozen"
 +
*Implement "developerinfo"
  
 
   
 
   
5) Developer information
+
* Please, review both the template [1] and GradientAnisotropicDiffusion [2] documentation and let me know what you think.
 
+
**[1] https://www.slicer.org/wiki/Documentation/4.0/Modules/YOURMODULENAME**[2] https://www.slicer.org/wiki/Documentation/4.0/Modules/GradientAnisotropicDiffusion**[3] http://wiki.slicer.org/slicerWiki/index.php?title=Template:Documentation/4.0/module-footer&action=edit
  a) For each module, the list of bugs, associated tests, list of classes, developer notes .. should be automatically collected. This could be achieved with the help of the "module-developerinfo" template.
+
**[4] https://www.slicer.org/wiki/Template:Documentation/4.0/module-cli-category**[5] http://wiki.slicer.org/slicerWiki/index.php?title=Category:Documentation/4.0/Modules/Filtering
 
+
**[6] http://wiki.slicer.org/slicerWiki/index.php?title=Category:Documentation/4.0/Modules/Filtering.Denoising
  b) Every module should include the template "Documentation/X.Y/module-developerinfo". See [10]
+
**[7] https://www.slicer.org/wiki/Template:Documentation/version**[8] http://www.mediawiki.org/wiki/Extension:Duplicator
 
+
**[9] http://www.mediawiki.org/wiki/Extension:Multiplicator
  c) As of today, this template is a placeholder/stub. As soon as, functionality will be implemented all module including that template will automatically display the wanted information.
+
**[10] https://www.slicer.org/wiki/Template:Documentation/4.0/module-developerinfo**[11] http://www.mediawiki.org/wiki/Extension:EmailObfuscator
 
+
**[12] http://www.mediawiki.org/wiki/Extension:EmailAddressImage
d) This implies:
+
**[13] http://wiki.slicer.org/slicerWiki/index.php/Template:Documentation/4.0/contact
        -- In mantis, bug should be assigned a category / tag and product version
 
        -- In CDash, tests should be labeled with both the ModuleName and the Slicer version. Then, using the webapi we should be able to obtain the list of tests, coverage, etc ...
 
        -- Status of the "Ron rules" could be semi-automatically generated: coverage, number of test, amount of documentation, style, ...
 
 
 
 
 
6) Categorizing
 
 
 
  a) The list of category is currently manually generated. This is not sustainable. Given the new page structure. These lists could be automatically generated.
 
 
 
  b) Mediawiki offers some nice feature to manage category. Let's use them.
 
 
 
 
 
7) Documentation packaging in Slicer
 
 
 
  a) Since a template "module-section" have been introduced, there is now a placeholder that will allow to refine how sections are identified and will ease the integration in a future Slicer Assistant module.
 
 
 
See http://wiki.slicer.org/slicerWiki/index.php/Template:Documentation/4.0/module-section
 
 
 
 
 
8) Critical details:
 
 
 
    a) A module should be identified consistently in both the source and the documentation. GradientAnisotropicFilter !=  GradientAnisotropicDiffusion
 
 
 
    b) If a name is incorrect, it should be fixed/updated at the source ! Not just in the documentation.
 
 
 
 
 
9) ToDo
 
 
 
  a) Look at wiki like "http://techbase.kde.org" .. I think we could inspire from what they did and improve the "user friendliness" of slicer wiki
 
 
 
  b) Add "EmailObfuscator"[11] or "EmailAddressImage"[12] extension to mediawiki that will be used inside the "contact" template [13]
 
 
 
  c) Setup a mechanism so that current "Documentation Set" follow Slicer source trunk could be duplicated and "frozen"
 
 
 
  d) Implement "developerinfo"
 
 
 
 
Please, review both the template [1] and GradientAnisotropicDiffusion [2] documentation and let me know what you think.
 
 
 
Thanks
 
Jc
 
 
 
 
 
[1] http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.0/Modules/YOURMODULENAME
 
 
 
[2] http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.0/Modules/GradientAnisotropicDiffusion
 
 
 
[3] http://wiki.slicer.org/slicerWiki/index.php?title=Template:Documentation/4.0/module-footer&action=edit
 
 
 
[4] http://wiki.slicer.org/slicerWiki/index.php/Template:Documentation/4.0/module-cli-category
 
 
 
[5] http://wiki.slicer.org/slicerWiki/index.php?title=Category:Documentation/4.0/Modules/Filtering
 
 
 
[6] http://wiki.slicer.org/slicerWiki/index.php?title=Category:Documentation/4.0/Modules/Filtering.Denoising
 
 
 
[7] http://wiki.slicer.org/slicerWiki/index.php/Template:Documentation/version
 
 
 
[8] http://www.mediawiki.org/wiki/Extension:Duplicator
 
 
 
[9] http://www.mediawiki.org/wiki/Extension:Multiplicator
 
 
 
[10] http://wiki.slicer.org/slicerWiki/index.php/Template:Documentation/4.0/module-developerinfo
 
 
 
[11] http://www.mediawiki.org/wiki/Extension:EmailObfuscator
 
 
 
[12] http://www.mediawiki.org/wiki/Extension:EmailAddressImage
 
 
 
[13] http://wiki.slicer.org/slicerWiki/index.php/Template:Documentation/4.0/contact
 

Latest revision as of 14:54, 27 November 2019

Home < Documentation < Description

Naming convention

  • For matter of consistency, both page have been renamed:
    • Module:EndUserDocumentationTemplate-Documentation-4.0 -> Documentation/4.0/Modules/YOURMODULENAME
    • Modules:GradientAnisotropicFilter-Documentation-4.0 -> Documentation/4.0/Modules/GradientAnisotropicDiffusion
  • The main documentation page has also been renamed from "Documentation-4.0" to "Documentation/4.0"
  • All module documentation page for a given version of Slicer Y.Z should be named according to the following pattern: Documentation/X.Y/Modules/MODULENAME

Category

The following link will list all modules belonging to the Documentation/4.0/Modules category: http://wiki.slicer.org/slicerWiki/index.php?title=Category:Documentation/4.0/Modules

  • The template "Documentation/4.0/module-footer" takes care of including the documentation page in the appropriate category. See [3]
  • The following page will list all element from the given category: https://www.slicer.org/wiki/Category:Documentation-4.0-Modules*"category" is a parameter of the "module-footer" template.
  • For CLI module, as explained on the template itself [1], it's recommended to use the template "Documentation/4.0/module-cli-category" that can extract the category from the XML module description. See [4].
  • Using the provided module category, the module will also be added to the category "Documentation/4.0/Modules/<MainCategory" and "Documentation/4.0/Modules/<MainCategory.SubCategory>". For example:
    • Documentation/4.0/Modules/Filtering see [5]
    • Documentation/4.0/Modules/Filtering.Denoising see [6].
  • Ideally, it would be great if the category associated with loadable module (interactive module) could also be extracted from a unique location. Doing so would avoid to maintain the category attribute both in the source and in the documentation.

Versioning:

  • All pages and template associated with version X.Y of Slicer are located under the page prefix: Documentation/X.Y
  • From any documentation page or template, doing so allows to easily extract the current version using the template "documentation/version". **See [7]
    • In other word, assuming the current page is "Documentation/4.2" adding Description in the source will return 4.2.
  • Following each release of Slicer, this approach will allow us to:
    • minimize the work required after a documentation set is duplicated
    • easily reference the different documentation sets
    • automate the duplication of these pages. Let's note that the mediawiki extensions like "Duplicator" [8] or "Multiplicator" [9] could be useful.
  • "Long life" of past documentation will also be ensured. Indeed, each time the documentation will be duplicated, a complete set of category, template and documentation page will be created. You will find below what the list of pages and templates could like after 4.2 is released:
      [...]
      Documentation/4.0/Modules/Add
      Documentation/4.0/Modules/GradientAnisotropicDiffusion
      Documentation/4.0/Modules/Threshold
      Documentation/4.0/Modules/YOURMODULENAME
      [...]
      Documentation/4.2/Modules/Add
      Documentation/4.2/Modules/GradientAnisotropicDiffusion
      Documentation/4.2/Modules/Threshold
      Documentation/4.2/Modules/YOURMODULENAME
      [...]
      Category:Documentation/4.0/Modules
      Category:Documentation/4.0/Modules/Filtering
      Category:Documentation/4.0/Modules/Filtering.Denoising
      [...]
      Category:Documentation/4.2/Modules
      Category:Documentation/4.2/Modules/Filtering
      Category:Documentation/4.2/Modules/Filtering.Denoising
      [...]
      Template:Documentation/4.0/module-cli-description
      Template:Documentation/4.0/module-header
      Template:Documentation/4.0/module-footer
      [...]
      Template:Documentation/4.2/module-cli-description
      Template:Documentation/4.2/module-header
      Template:Documentation/4.2/module-footer

Developer information

  • For each module, the list of bugs, associated tests, list of classes, developer notes .. should be automatically collected. This could be achieved with the help of the "module-developerinfo" template.
  • Every module should include the template "Documentation/X.Y/module-developerinfo". See [10]
  • As of today, this template is a placeholder/stub. As soon as, functionality will be implemented all module including that template will automatically display the wanted information.
  • This implies:
    • In mantis, bug should be assigned a category / tag and product version
    • In CDash, tests should be labeled with both the ModuleName and the Slicer version. Then, using the webapi we should be able to obtain the list of tests, coverage, etc ...
    • Status of the "Ron rules" could be semi-automatically generated: coverage, number of test, amount of documentation, style, ...

Categorizing

  • The list of category is currently manually generated. This is not sustainable. Given the new page structure. These lists could be automatically generated.
  • Mediawiki offers some nice feature to manage category. Let's use them.

Documentation packaging in Slicer

  • Since a template "module-section" have been introduced, there is now a placeholder that will allow to refine how sections are identified and will ease the integration in a future Slicer Assistant module.
  • A module should be identified consistently in both the source and the documentation. GradientAnisotropicFilter != GradientAnisotropicDiffusion
  • If a name is incorrect, it should be fixed/updated at the source ! Not just in the documentation.

ToDo

  • Look at wiki like "http://techbase.kde.org" .. I think we could inspire from what they did and improve the "user friendliness" of slicer wiki
  • Add "EmailObfuscator"[11] or "EmailAddressImage"[12] extension to mediawiki that will be used inside the "contact" template [13]
  • Setup a mechanism so that current "Documentation Set" follow Slicer source trunk could be duplicated and "frozen"
  • Implement "developerinfo"