Package: grails.doc

## [Groovy] Class DocPublisher

- grails.doc.DocPublisher

-     class DocPublisher
      extends java.lang.Object

  Coordinated the DocEngine the produce documentation based on the gdoc format.

  See Also:
    DocEngine
  Authors:
    Graeme Rocher
  Since:
    1.2

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `private static java.lang.String` | `TOC_FILENAME` |
    `private groovy.util.AntBuilder` | `ant` | The AntBuilder instance to use
    `private java.io.File` | `apiDir` | Directory containing the project's API documentation.
    `private boolean` | `asciidoc` |
    `private java.lang.String` | `authors` | The authors of the documentation
    `private org.radeox.engine.context.BaseRenderContext` | `context` |
    `private java.lang.String` | `copyright` | The copyright message
    `private java.io.File` | `css` | The directory containing any CSS to use (will override defaults) *
    `private java.lang.Object` | `customMacros` |
    `private java.lang.String` | `encoding` | The encoding to use (default is UTF-8)
    `private org.radeox.api.engine.WikiRenderEngine` | `engine` |
    `private java.util.Properties` | `engineProperties` | Properties used to configure the DocEngine
    `private java.io.File` | `fonts` | The directory containing any fonts to use (will override defaults) *
    `private java.lang.String` | `footer` | The footer to include
    `private java.io.File` | `images` | The directory containing any images to use (will override defaults) *
    `private java.io.File` | `js` | The directory containing any Javascript to use (will override defaults) *
    `private java.lang.String` | `language` | The language we're generating for (gets its own sub-directory).
    `private java.lang.String` | `license` | The documentation license
    `private java.lang.String` | `logo` | HTML markup that renders the left logo
    `private java.lang.Object` | `output` |
    `private java.io.File` | `propertiesFile` | The properties fie to populate the engine properties from
    `private java.lang.String` | `sourceRepo` | The source repository
    `private java.lang.String` | `sponsorLogo` | HTML markup that renders the right logo
    `private java.io.File` | `src` | The source directory of the documentation
    `private java.io.File` | `style` | The directory cotnaining any templates to use (will override defaults) *
    `private java.lang.String` | `subtitle` | The subtitle of the documentation
    `private java.io.File` | `target` | The target directory to publish to
    `private java.lang.String` | `title` | The title of the documentation
    `private java.lang.String` | `translators` | The translators of the documentation (if any)
    `private java.lang.String` | `version` | The version of the documentation
    `private java.io.File` | `workDir` | The temporary work directory

  - ### Properties Summary

    Properties
    Type | Name and description
    --- | ---
    `static java.lang.String` | `TOC_FILENAME`
    `groovy.util.AntBuilder` | `ant` The AntBuilder instance to use
    `java.io.File` | `apiDir` Directory containing the project's API documentation.
    `boolean` | `asciidoc`
    `java.lang.String` | `authors` The authors of the documentation
    `java.lang.String` | `copyright` The copyright message
    `java.io.File` | `css` The directory containing any CSS to use (will override defaults) *
    `java.lang.String` | `encoding` The encoding to use (default is UTF-8)
    `java.util.Properties` | `engineProperties` Properties used to configure the DocEngine
    `java.util.Properties` | `engineProperties`
    `java.io.File` | `fonts` The directory containing any fonts to use (will override defaults) *
    `java.lang.String` | `footer` The footer to include
    `java.io.File` | `images` The directory containing any images to use (will override defaults) *
    `java.io.File` | `js` The directory containing any Javascript to use (will override defaults) *
    `java.lang.String` | `language` The language we're generating for (gets its own sub-directory).
    `java.lang.String` | `license` The documentation license
    `java.lang.String` | `logo` HTML markup that renders the left logo
    `java.lang.Object` | `output`
    `java.io.File` | `propertiesFile` The properties fie to populate the engine properties from
    `java.lang.String` | `sourceRepo` The source repository
    `java.lang.String` | `sponsorLogo` HTML markup that renders the right logo
    `java.io.File` | `src` The source directory of the documentation
    `java.io.File` | `style` The directory cotnaining any templates to use (will override defaults) *
    `java.lang.String` | `subtitle` The subtitle of the documentation
    `java.io.File` | `target` The target directory to publish to
    `java.lang.String` | `title` The title of the documentation
    `java.lang.String` | `translators` The translators of the documentation (if any)
    `java.lang.String` | `version` The version of the documentation
    `java.io.File` | `workDir` The temporary work directory

  - ### Constructor Summary

    Constructors
    Constructor and description
    `DocPublisher ()`
    `DocPublisher (java.io.File src, java.io.File target, java.lang.Object out)`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `private java.lang.String` | `calculateLanguageDir(java.lang.Object startPath, java.lang.Object endPath)`
    `` | `private java.lang.String` | `calculatePathToResources(java.lang.String pathToRoot)`
    `` | `private void` | `catPublish()`
    `` | `private void` | `flattenKeys(java.util.Map<java.lang.String, java.lang.Object> flatConfig, java.util.Map currentMap, java.util.List<java.lang.String> path, boolean forceStrings)`
    `` | `java.util.Properties` | `getEngineProperties()` Returns the engine properties.
    `` | `private java.lang.Object` | `initContext(java.lang.Object context, java.lang.Object path)`
    `` | `protected void` | `initialize()`
    `` | `private java.lang.String` | `injectPath(java.lang.String source, java.lang.String path)`
    `` | `private java.lang.Object` | `overrideAliasesFromToc(java.lang.Object node)`
    `` | `void` | `publish()`
    `` | `void` | `registerMacro(java.lang.Object macro)` Registers a custom Radeox macro.
    `` | `void` | `setEngineProperties(java.util.Properties p)` Sets the engine properties.
    `` | `private java.lang.Object` | `unpack(java.util.Map args)`
    `` | `protected java.lang.Object` | `verifyToc(java.io.File baseDir, java.lang.Object gdocFiles, java.lang.Object toc)` Checks the table of contents (a tree of UserGuideNodes) for duplicate section/alias names and invalid file paths.
    `` | `private java.lang.Object` | `verifyTocInternal(java.io.File baseDir, java.lang.Object section, java.lang.Object existing, java.lang.Object gdocFiles, java.lang.Object pathElements)`
    `` | `void` | `writeChapter(java.lang.Object section, groovy.text.Template layoutTemplate, groovy.text.Template sectionTemplate, java.io.File guideSrcDir, java.lang.String targetDir, java.lang.Object fullContents, java.lang.Object vars)`
    `` | `java.lang.String` | `writePage(java.lang.Object section, groovy.text.Template layoutTemplate, groovy.text.Template sectionTemplate, java.io.File guideSrcDir, java.lang.String targetDir, java.lang.String subDir, java.lang.Object path, java.lang.Object level, java.lang.Object vars)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class java.lang.Object` | `java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()`

- - ### Field Detail

    - #### private static final java.lang.String TOC_FILENAME

    - #### private groovy.util.AntBuilder ant

      The AntBuilder instance to use

    - #### private java.io.File apiDir

      Directory containing the project's API documentation.

    - #### private boolean asciidoc

    - #### private java.lang.String authors

      The authors of the documentation

    - #### private org.radeox.engine.context.BaseRenderContext context

    - #### private java.lang.String copyright

      The copyright message

    - #### private java.io.File css

      The directory containing any CSS to use (will override defaults) *

    - #### private java.lang.Object customMacros

    - #### private java.lang.String encoding

      The encoding to use (default is UTF-8)

    - #### private org.radeox.api.engine.WikiRenderEngine engine

    - #### private java.util.Properties engineProperties

      Properties used to configure the DocEngine

    - #### private java.io.File fonts

      The directory containing any fonts to use (will override defaults) *

    - #### private java.lang.String footer

      The footer to include

    - #### private java.io.File images

      The directory containing any images to use (will override defaults) *

    - #### private java.io.File js

      The directory containing any Javascript to use (will override defaults) *

    - #### private java.lang.String language

      The language we're generating for (gets its own sub-directory). Defaults to ''

    - #### private java.lang.String license

      The documentation license

    - #### private java.lang.String logo

      HTML markup that renders the left logo

    - #### private java.lang.Object output

    - #### private java.io.File propertiesFile

      The properties fie to populate the engine properties from

    - #### private java.lang.String sourceRepo

      The source repository

    - #### private java.lang.String sponsorLogo

      HTML markup that renders the right logo

    - #### private java.io.File src

      The source directory of the documentation

    - #### private java.io.File style

      The directory cotnaining any templates to use (will override defaults) *

    - #### private java.lang.String subtitle

      The subtitle of the documentation

    - #### private java.io.File target

      The target directory to publish to

    - #### private java.lang.String title

      The title of the documentation

    - #### private java.lang.String translators

      The translators of the documentation (if any)

    - #### private java.lang.String version

      The version of the documentation

    - #### private java.io.File workDir

      The temporary work directory

  - ### Property Detail

    - #### static final java.lang.String TOC_FILENAME

    - #### groovy.util.AntBuilder ant

      The AntBuilder instance to use

    - #### java.io.File apiDir

      Directory containing the project's API documentation.

    - #### boolean asciidoc

    - #### java.lang.String authors

      The authors of the documentation

    - #### java.lang.String copyright

      The copyright message

    - #### java.io.File css

      The directory containing any CSS to use (will override defaults) *

    - #### java.lang.String encoding

      The encoding to use (default is UTF-8)

    - #### java.util.Properties engineProperties

      Properties used to configure the DocEngine

    - #### java.util.Properties engineProperties

    - #### java.io.File fonts

      The directory containing any fonts to use (will override defaults) *

    - #### java.lang.String footer

      The footer to include

    - #### java.io.File images

      The directory containing any images to use (will override defaults) *

    - #### java.io.File js

      The directory containing any Javascript to use (will override defaults) *

    - #### java.lang.String language

      The language we're generating for (gets its own sub-directory). Defaults to ''

    - #### java.lang.String license

      The documentation license

    - #### java.lang.String logo

      HTML markup that renders the left logo

    - #### java.lang.Object output

    - #### java.io.File propertiesFile

      The properties fie to populate the engine properties from

    - #### java.lang.String sourceRepo

      The source repository

    - #### java.lang.String sponsorLogo

      HTML markup that renders the right logo

    - #### java.io.File src

      The source directory of the documentation

    - #### java.io.File style

      The directory cotnaining any templates to use (will override defaults) *

    - #### java.lang.String subtitle

      The subtitle of the documentation

    - #### java.io.File target

      The target directory to publish to

    - #### java.lang.String title

      The title of the documentation

    - #### java.lang.String translators

      The translators of the documentation (if any)

    - #### java.lang.String version

      The version of the documentation

    - #### java.io.File workDir

      The temporary work directory

  - ### Constructor Detail

    - #### DocPublisher()

    - #### DocPublisher(java.io.File src, java.io.File target, java.lang.Object out)

  - ### Method Detail

    - #### private java.lang.String calculateLanguageDir(java.lang.Object startPath, java.lang.Object endPath)

    - #### private java.lang.String calculatePathToResources(java.lang.String pathToRoot)

    - #### private void catPublish()

    - #### private void flattenKeys(java.util.Map<java.lang.String, java.lang.Object> flatConfig, java.util.Map currentMap, java.util.List<java.lang.String> path, boolean forceStrings)

    - #### java.util.Properties getEngineProperties()

      Returns the engine properties.

    - #### private java.lang.Object initContext(java.lang.Object context, java.lang.Object path)

    - #### protected void initialize()

    - #### private java.lang.String injectPath(java.lang.String source, java.lang.String path)

    - #### private java.lang.Object overrideAliasesFromToc(java.lang.Object node)

    - #### void publish()

    - #### void registerMacro(java.lang.Object macro)

      Registers a custom Radeox macro. If the macro has an 'initialContext' property, it is set to the render context before first use.

    - #### void setEngineProperties(java.util.Properties p)

      Sets the engine properties. Allows clients to override the defaults.

    - #### private java.lang.Object unpack(java.util.Map args)

    - #### protected java.lang.Object verifyToc(java.io.File baseDir, java.lang.Object gdocFiles, java.lang.Object toc)

      Checks the table of contents (a tree of UserGuideNodes) for duplicate section/alias names and invalid file paths.

      Returns:
        `false` if any errors are detected.

    - #### private java.lang.Object verifyTocInternal(java.io.File baseDir, java.lang.Object section, java.lang.Object existing, java.lang.Object gdocFiles, java.lang.Object pathElements)

    - #### void writeChapter(java.lang.Object section, groovy.text.Template layoutTemplate, groovy.text.Template sectionTemplate, java.io.File guideSrcDir, java.lang.String targetDir, java.lang.Object fullContents, java.lang.Object vars)

    - #### java.lang.String writePage(java.lang.Object section, groovy.text.Template layoutTemplate, groovy.text.Template sectionTemplate, java.io.File guideSrcDir, java.lang.String targetDir, java.lang.String subDir, java.lang.Object path, java.lang.Object level, java.lang.Object vars)