Skip to content

Doxygen like generator for ArkScript and its modules

License

Notifications You must be signed in to change notification settings

ArkScript-lang/ArkDoc

Repository files navigation

ArkDoc release

licence code size

A documentation generator for ArkScript.

Dependencies

  • Python >= 3.9

Usage

git clone https://github.com/ArkScript-lang/ArkDoc.git
python3 -m venv venv
source ./venv/bin/activate
pip3 install -r requirements.txt

# set the log level
# if not given, defaults to INFO
export ARKDOC_LOGLEVEL=DEBUG

python3 -m arkdoc --help

Syntax

  • @brief <description>: a single brief declaration is expected
  • @param <name> <description>: multiple @param declaration can be written
  • @details <description>: a single detailled declaration is expected
  • =begin / code block / =end: a single code block (it can contain multiple lines) is expected
  • @author <url>,<url>,...: the url to the profiles of the authors must be separated by commas, spaces can be added
  • any line not starting with a @<keyword> will be ignored, unless it is enclosed in a =begin/=end bloc

Example

# @brief Iterate over a given list and run a given function on every element.
# @param _L the list to iterate over
# @param _func the function to call on each element
# @details The original list is left unmodified.
# =begin
# (import "List.ark")
# (let collection [1 2 5 12])
# (list:forEach collection (fun (element) {
#     (print element)
# }))
# =end
# @author https://github.com/SuperFola
(let list:forEach (fun (_L _func) {
    (mut _index 0)
    (while (< _index (len _L)) {
        (mut _element (@ _L _index))
        (_func _element)
        (set _index (+ 1 _index))
    })
}))

The project architecture

architecture of the project as bubbles, representing the folders and their subfolders/files