Author: mbrohl
Date: Tue Apr 10 21:24:31 2018 New Revision: 1828857 URL: http://svn.apache.org/viewvc?rev=1828857&view=rev Log: Improved: added the first draft of the documentation guidelines. Added: ofbiz/ofbiz-framework/trunk/docs/asciidoc/documentation_guidelines.adoc ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/ ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/article.adoc ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/source.java (with props) Added: ofbiz/ofbiz-framework/trunk/docs/asciidoc/documentation_guidelines.adoc URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/docs/asciidoc/documentation_guidelines.adoc?rev=1828857&view=auto ============================================================================== --- ofbiz/ofbiz-framework/trunk/docs/asciidoc/documentation_guidelines.adoc (added) +++ ofbiz/ofbiz-framework/trunk/docs/asciidoc/documentation_guidelines.adoc Tue Apr 10 21:24:31 2018 @@ -0,0 +1,627 @@ +//// +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +//// += Apache OFBiz Documentation Guidelines +The Apache OFBiz Project +Release 17.12 +:imagesdir: ./images +ifdef::backend-pdf[] +:title-logo-image: image::OFBiz-Logo.svg[Apache OFBiz Logo, pdfwidth=4.25in, align=center] +:source-highlighter: rouge +endif::[] + +== Intro + +This guideline serves as a general styleguide and collection of examples of how we are documenting the project. +This intentionally is not a complete user manual but lists the subset of functionality and formatting options we +want to use. + +For further reference and more examples see + +* Official Asciidoc User Guide +footnote:[http://asciidoc.org/userguide.html] +* Asciidoc Writers Guide +footnote:[https://asciidoctor.org/docs/asciidoc-writers-guide/]. +* Asciidoc Quick Reference +footnote:[https://asciidoctor.org/docs/asciidoc-syntax-quick-reference/] +* Asciidoc Recommended Practices +footnote:[https://asciidoctor.org/docs/asciidoc-recommended-practices/] + +If you want to help with the documentation of the project, see wiki page +footnote:[https://cwiki.apache.org/confluence/display/OFBIZ/OFBiz+Documentation+Team] for further information and +how we are organised. + +== General rules + +=== Document configuration + +Documents who will be published standalone (e.g. developer manual, user manual) should contain a common configuration +so that the output ist generated in the same way for all documents. + +[NOTE] +This is not necessary for documents which will only be included in parent documents. These documents will inherit the +configuration from the parent. + +This ist the proposed configuration: + +---- +The Apache OFBiz Project // <1> +Release 17.12 // <2> +:imagesdir: ./images // <3> +ifdef::backend-pdf[] // <4> +:title-logo-image: image::OFBiz-Logo.svg[Apache OFBiz Logo, pdfwidth=4.25in, align=center] // <5> +:source-highlighter: rouge // <6> +endif::[] // <7> +---- +<1> author +<2> target release, indicates for which release this documentation is valid +<3> global definition of the image directory +<4> begin block of configurations only for pdf rendering +<5> define the title logo image +<6> use the Rouge source code highlighter +<7> end block of configurations only for PDF rendering + +The following configuration options are set globally in the Gradle build file. +They are not configured in the document itself and are listed for reference only: + +.build.gradle +---- +'doctype': 'book', // <1> +'experimental': '', // <2> +'icons': 'font', // <3> +'sectnums': '', // <4> +'chapter-label': '', // <5> +'toc': '', // <6> +'toclevels': '5' // <7> +---- +<1> doctype book +<2> allow experimental features like keyboard shortcuts +<3> make font awesome icons available +<4> number chapters and sections automatically +<5> do not prefix the chapters +<6> insert a table of contents +<7> max levels to show in the table of contents + +=== Apache License Header + +Each .adoc file must contain the Apache license header (put between "//// license... ////"). You can just copy the +following block: +---- +//// +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +//// +---- + +=== File name conventions + +We will be implementing a consistent naming standard for the documentation content files. +Filenames will be in lower case and extension will be `.adoc`. + +Each guide will be named after the component / module name (e.g. humanres.adoc, accounting.adoc, manufacturing.adoc, +party.adoc etc). +Lower level files that are in the include directory will include a prefix/shortname indicating the component name, +separated by dashes (e.g `hr-intro.adoc`, `hr-glossary.adoc`, etc.) +Similar pages will have consistent naming. We will have several intro, glossary, FAQ, settings, security pages, +so the naming format will be ([shortname]-intro, [shortname]-glossary, [shortname]-faq, [shortname]-settings, +[shortname]-security etc.) + +.For Human Resources this will be as follows: +[example] +==== + humanres.adoc + |- hr-intro.adoc + |- hr-employee-evaluations.adoc + |- hr-glossary.adoc + |- hr-employee-positions.adoc + |- hr-employees.adoc + |- hr-employments.adoc + |- hr-performance-review.adoc + |- hr-positions.adoc + |- hr-qualifications.adoc + |- hr-recruitment.adoc + |- hr-skills.adoc + |- hr-resumes.adoc + |- hr-training.adoc + |- hr-leave.adoc + |- hr-security.adoc + |- hr-global-settings.adoc +==== + + +=== General formatting + +* It is recommended to write one sentence per line and/or manually break the line after approximately 80 to 120 lines. +* Section titles will use asymmetric atx style + + (e.g. `== This is an example of an Asymmetric Section Title`) +* When including another file using the `include` directive, please ensure that there is a blank line between each + include line. + + +== Text formatting + +=== Quoted Text + +Words and phrases can be formatted by enclosing inline text with quote characters: + +.Emphasized text + +Word phrases enclosed in 'single quote characters' (acute accents) or _underline characters_ are emphasized. + +.Strong text +Word phrases *enclosed in asterisk characters* are rendered in a strong font (usually bold). + +.Monospaced text +Word phrases +enclosed in plus characters+ are rendered in a monospaced font. +Word phrases `enclosed in backtick characters` (grave accents) are also rendered in a monospaced font but in this case +the enclosed text is rendered literally and is not subject to further expansion (see inline literal passthrough). + +.âSingle quoted textâ +Phrases enclosed with a `single grave accent to the left and a single acute accent to the right' are rendered in single +quotation marks. + +.âDouble quoted textâ +Phrases enclosed with ``two grave accents to the left and two acute accents to the right'' are rendered in quotation marks. + +.Unquoted text +Placing #hashes around text# does nothing, it is a mechanism to allow inline attributes to be applied to otherwise unformatted text. + + +=== Paragraphs + +You can indicate special information with an eye catching symbol. Please don't overuse this (less is more). + +---- +[TIP] +This is a tip or idea. +---- + +[TIP] +This is a tip or idea. + +You can also have multiple lines and empty lines inside the paragraph using a whitespace and a plus sign: + +---- +[TIP] +This is a tip or idea. + +This is another idea. + + + +More ideas... +---- + +[TIP] +This is a tip or idea. + +This is another idea. + + + +More ideas... + +---- +[NOTE] +This is an information note. +---- + +[NOTE] +This is an information note. + +---- +[IMPORTANT] +This indicates important information. +---- + +[IMPORTANT] +This indicates important information. + +---- +[WARNING] +This is a warning or something to pay attention to. +---- + +[WARNING] +This is a warning or something to pay attention to. + +---- +[CAUTION] +This is something you should treat with caution. +---- + +[CAUTION] +This is something you should treat with caution. + +---- +[normal] +This is a Normal paragraph. +---- + +[normal] +This is a Normal paragraph. + +---- +[literal] +This is a Literal paragraph. +---- + +[literal] +This is a Literal paragraph. + +---- +[quote] +This is a Quote paragraph. +---- + +[quote] +This is a Quote paragraph. + +---- +[listing] +This is a Listing paragraph. +---- + +[listing] +This is a Listing paragraph. + +---- +[abstract] +This is an Abstract paragraph. +---- + +[abstract] +This is an Abstract paragraph. + +---- +[comment] +This is a Comment paragraph. It does not show up in the rendered text ;-) +---- + +[comment] +This is a Comment paragraph. It does not show up in the rendered text ;-) + +---- +[example] +This is a Example paragraph. +---- + +[example] +This is a Example paragraph. + +---- +[sidebar] +This is a Sidebar paragraph. +---- +[sidebar] +This is a Sidebar paragraph. + +---- +[source] +This is a Source paragraph. See Code formatting for further examples. +---- + +[source] +This is a Source paragraph. See Code formatting for further examples. + +.This indicates a simple description headline +This is the text for the simple description headline + +.This indicates an example inside a block +==== +Just a simple block example. +==== + + +== Code formatting + +Asciidoc and the used highlighter provide support for code syntax highlighting of several programming languages +and formats. The following are examples for code which is widely used within OFBiz. + +.Java source code formatting + [source,java] + ---- + public class Foo { + public String bar; + public String bar() { + return bar; + } + } + ---- + +Renders to + +[source,java] +---- +public class Foo { + public String bar; + + public String bar() { + return bar; + } +} +---- + +.Java source code formatting (numbered) +[source,java,numbered] +---- +public class Foo { + public String bar; + + public String bar() { + return bar; + } +} +---- + +.Java source code formatting (with explanation callouts) +[source,java] +---- +public class Foo { + public String bar; # <1> + + public String bar() { + return bar; # <2> + } +} +---- +<1> Declares the `bar` field +<2> Returns the `bar` value + + +.Groovy +[source,groovy] +---- +selected = UtilHttp.parseMultiFormData(parameters) +selected.each { row -> + payment = from("Payment").where("paymentId", row.paymentId).queryOne() + if (payment) { + payments.add(payment) + } +} +context.payments = payments +---- + + +.XML document +[source,xml] +---- +<author id="1"> + <personname> + <firstname>Lazarus</firstname> + <surname>het Draeke</surname> + </personname> +</author> +---- + +.Cascading Stylesheet (CSS) +[source,css] +---- +body { + background: transparent url(/images/ofbiz_logo.png) no-repeat scroll left top; + color: #000; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: .75em; + line-height: 1.5em; + padding: 50px 0 0; + bgcolor: #ffffcc; +} +---- + +.Javascript +[source,javascript] +---- +function msg(){ + alert("Hello OFBiz"); +} +---- + +.JSON +[source,json] +---- +{ + "id": 1, + "name": "A green door", + "price": 12.50, + "tags": ["home", "green"] +} +---- + +.Properties files +[source,properties] +---- +foo = bar +---- + +.SQL +[source,sql] +---- +SELECT * FROM FOO; +---- + +.HTML +[source,html] +---- +<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en"> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + </head> + <body style="background-color: rgb(255, 255, 255);"> + <h1>Headline</h1> + </body> +</html> +---- + + +== Importing files or file includes + +You can import files via the include macro. +This also works for source code includes. +To use ---- in your listing use the [listing] style before that. +The following example imports a file formatted as Java source code. + +[source,java] +---- +include::resource/source.java[] +---- + +=== Using leveloffset + +Via the `leveloffset` attribute you can change the section offset, for example a `=` section will become `==` if you +add the following statement `:leveloffset: 1`. +Use `:leveloffset: 0` to reset the offset. + +=== Importing files partially + +It is also possible to include files partially. +For this mark the part of the file to be included with a tag like the following: + +.article.adoc +---- +# tag::tagname[] +This should be included! +# end::tagname[] +This text will not be included! +---- + +and include the file with the tagname in the brackets like this: + + include::resource/article.adoc[tags=tagname] + +The result would be + +---- +include::resource/article.adoc[tags=tagname] +---- + +=== Importing images + +You can import images with +---- +image:: +---- + +For the HTML output you can add the alt text within the brackets []. +If the image is located in the images folder then the import would look like this: + + image::OFBiz-Logo.svg[Apache OFBiz Logo, pdfwidth=3.0in, align=left] + +Result: + +image::OFBiz-Logo.svg[Apache OFBiz Logo, pdfwidth=3.0in, align=left] + +Please notice that the images folder is specified in the document header configuration +and hence not provided here again. + +The import of an image with `image::` will add the image in a new line. +If you want to add an image inline then use the macro `image:` + + This is just a text image:OFBiz-Logo.svg[Apache OFBiz Logo, width=40%] to show inline images. + +Result: + +This is just a text image:OFBiz-Logo.svg[Apache OFBiz Logo, width=40%] to show inline images. + +=== Keyboard shortcuts + +You can also define keyboard shortcuts with the `kbd` macro. + + kbd:[Alt+F11] - Toggle Full Screen Mode in the Eclipse IDE + +The result is the following: + +kbd:[Alt+F11] - Toggle Full Screen Mode in the Eclipse IDE + +The result will be different depending on the rendering (PDF, HTML). + +=== Using inline icons + +You can also add the `:icons: font` directive to the top of your document, which allows you to use the icons +from http://fortawesome.github.io/Font-Awesome/icons/ directory via a marco. +---- +icon:comment[] This is a comment icon +icon:file[] And a file icon +icon:battery-full[] And a battery icon +---- + +.The output looks like the following +[example] +icon:comment[] This is a comment icon + +icon:file[] And a file icon + +icon:battery-full[] And a battery icon + +== How to write a... + +=== FAQ or Glossary + +FAQ's and glossaries should be written as a labeled list. +For hyperlinking, they should also have an ID which can be linked within a list. + +For example +---- +<<faq_entry_1,FAQ entry 1>> +<<faq_entry_2,FAQ entry 2>> + +[#faq_entry_1] +FAQ entry 1:: +This is entry #1 in our example FAQ. + +[#faq_entry_2] +FAQ entry 2:: +This is entry #2 in our example FAQ. +---- + +Renders to + +<<faq_entry_1,FAQ entry 1>> + +<<faq_entry_2,FAQ entry 2>> + +[#faq_entry_1] +FAQ entry 1:: +This is entry #1 in our example FAQ. + +[#faq_entry_2] +FAQ entry 2:: +This is entry #2 in our example FAQ. + + +== Asciidoc FAQ + +=== How to reset Heading Counter in Asciidoc + +You can deactivate the counter for a section: +---- +:sectnums!: + +== Preface + +:sectnums: + +== First Chapter +---- + + Added: ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/article.adoc URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/article.adoc?rev=1828857&view=auto ============================================================================== --- ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/article.adoc (added) +++ ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/article.adoc Tue Apr 10 21:24:31 2018 @@ -0,0 +1,4 @@ +# tag::tagname[] +This should be included! +# end::tagname[] +This text will not be included! \ No newline at end of file Added: ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/source.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/source.java?rev=1828857&view=auto ============================================================================== --- ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/source.java (added) +++ ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/source.java Tue Apr 10 21:24:31 2018 @@ -0,0 +1 @@ +System.out.println("Hello"); \ No newline at end of file Propchange: ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/source.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/source.java ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/ofbiz-framework/trunk/docs/asciidoc/resource/source.java ------------------------------------------------------------------------------ svn:mime-type = text/plain |
Free forum by Nabble | Edit this page |