Configuration

Configuration parameters: [~]

  • docs_folder - a path to a folder which will contain all generated documents.

NOTE be careful, all files in the docs_folder will be replaced by documentation files. [~]

  • project_path - an entry point for the parser [~]

  • files_patterns - unix style pathname patterns for matching files which will be parsed. [~]

  • repository_host - an http url which will be used for creating a link to a file in a repository. For example, if you want to add links to your files for each section you can pass a value like https://github.com/user_name/project_name/blob/master. It will be used for creating an url like this https://github.com/user_name/project_name/blob/master/path/to/your/file.txt. [~]

  • comment_start_string - a string which marks the start of a comments block. Example: /**

  • comment_prefix - a comment line prefix. Example: *

  • comment_end_string - a string which marks the end of a comments block. Example: */ [~]

mdbook - if true generates documentation in format of mdBook. book_name - a name of the result book. book_build_dir - a directory that contains the build result. [~]

Fundoc will read all the configuration parameters from the fundoc.json config file which should be placed into the working directory of the programm's proccess (generally, it's a root of a poject) [~]

You can diable parsing for a part of your file or a whole file by adding this comment: fundoc-disable. If you wan't to turn fundoc on few lines below just add this comment: fundoc-enable.

In case when you don't write the enable-comment all text from disable comment until the end of the file will be ignored [~]

Syntax

@Article <Article name> is for marking documentation sections to tell in which articale this section should be merged. You can use markdown syntax in documentation sections.

Example:

/**
 * @Article How it works
 *
 * # Title of the article
 *
 * Some text
 */
fn main() {}

[~]

@FileArtcile allows you to mark a whole file is a source of documentation for a specified article.

Example:

/**
* @FileArticle How it works
*/

/**
 * Documentation for `main`
 */
fn main() {}

/**
 * Documentation for `parse_files`
 */
fn parse_files() {}

In that case all comments from a file will be parsed in the same way if they were marked with @Article How it works

If you want to exclude some comment from parsing you need to use @Ignore attribute in that section.

Example:

/**
* @FileArticle How it works
*/

/**
 * Documentation for `main`
 */
fn main() {}

/**
 * @Ignore
 * This comment will be ignored.
 */
fn parse_files() {}

[~]

@Ignore is for ignoring a marked documentation section. [~]

@CodeBlockStart <Programming Language> and @CodeBlockEnd allow to include code from a current file as an example.

Example:


#![allow(unused)]
fn main() {
/**
* @Article Usage examples
* Here you can see a function call:
* @CodeBlockStart rust
*/
calc_size(item)
/**
* @CodeBlockEnd
*/
}

[~]