MarkdownMaker is a simple application to make markdown documentation. Markdown is is a simple markup language to write formatted documents, widely used e.g. in GitHub. MarkdownMaker is not a replacement of Doxygen or other document generators; MarkdownMaker purpose and approach is different: it generates markdown only annotated comments and ignores everything else. Therefore where Doxygen is better for generating comprehensive documentation of source code, MarkdownMaker generates only explicit documentation and is therefore it is suitable for interface (API) and introductionary (README) documentation. Also, unlike those other generators, MarkdownMaker just generates markdown.
mdmaker <-q> <-o OUTFILE> <INFILES>
- mdmaker Since the executable may have been wrapped into bundle, the actual callable name may vary.
- -q , Quiet, no UI, suitable for toolchains.
- -o OUTPUT, Write output to given file, if not given, Save as dialog is shown upon exit. If OUTPUT is null nothing is written and no dialog is shown.
- INFILES, One or more files that are scanned for markdown annotations. Multiple files are joined as a single output in input order. If input is a markdown file (*.md), that is added as-is.
Markdown section starts with /∗∗ ( C comment with an extra asterisk). Section ends to ∗/ (C comment ends). If section line starts with a *, that is omitted.
The section can include markdown language. There it is possible to use code,
italic and other items
-
@toc, generates table of contents. Items are pointing to @namespace, @class and @function tokens in this document.
-
@scope, starts a generic scope. Scopes are used to divide markdown content.
-
@scopeend, ends any scope (i.e. also namespace and class scope)
-
@namespace NAME, generates a namespace header and starts a scope.
-
@class NAME, generates a class header and starts a scope.
-
@function NAME, just name, no return value or parameters, , generates a function header. The actual function name string is generated from the function declaration that is expected to found immediately after this markdown section.
-
@templateparam NAME description, generates a template parameter header.
-
@param NAME description, generates a parameter header.
-
@return description, generates a description header.
-
@brief, adds a general one-liner
-
@date, injects a current date.
-
@style TOKEN STYLE-DESCRIPTION, let redefine styles. The STYLE-DESCRIPTION is generated markdown syntax, where %1 represents token's content.
-
@raw RAW-TEXT, Normally the inserted text is HTML escaped, but that can be bypassed using raw token and RAW-TEXT is HTML interpreted as-is
-
@eol, after @raw can join lines and then @eol is used to insert an explicit newline and end the @raw content.
-
@ignore, The line is ignored from output.
- @{
unicode-code}, MarkdownMaker replaces a givenunicode-codewith its Unicode character (Hexadecimal values start with 'x'). That let to use characters not otherwise allowed in C/C++ source files.
Using Style
###### *Axq is published under GNU LESSER GENERAL PUBLIC LICENSE, Version 3*
###### *Copyright Markus Mertama 2018*, generated at Thu Mar 12 00:07:43 2020
_____
Using Raw
@raw + __@return decription__, generates a description header.
@eol
Using to declare a function
template <typename ...Args>
/**
* @function tie
* Apply list values to arguments
* @param ParamList object to read from
* @param list of out parameters to read values to
*
*
* Example:
```
stream.each<Axq::ParamList>([this](const Axq::ParamList& pair){
QString key; int count;
Axq::tie(pair, key, count);
print("\"", key, "\" exists ", count, " times\");
...
```
*
*/
void tie(const ParamList& list, Args& ...args) {
_getValue<0, Args...>(list, args...);
}
See AxqLib documentation ...and its source ...and this source , Axq is also used for implementation of this utility.