Skip to content

ageldama/doqumen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

doqumen

Yet another Lisp documentation generator, but it's way more dumber than others.

Generate documentation of your Common Lisp system into single output file.

  1. Write docstrings in any format you want to.
  2. Place text files anywhere in the output.
  3. Can support any docstring, input text, output format. (... all you need to do is hack this!)

Table of Contents

  1. doqumen
  2. Table of Contents
  3. Introduction
    1. Rationale
    2. Getting Started
    3. Syntax
  4. Hacking
    1. Other than Markdown?
    2. Your Own Custom Sections
  5. Supporting
  6. License
  7. APIs
    1. PACKAGE: DOQUMEN
      1. FUNCTION: ->KEYWORD
      2. FUNCTION: ->ONE-LINE-STRING
      3. FUNCTION: ->UPCASE
      4. FUNCTION: API-REFS->TOC
      5. FUNCTION: API-REFS-SORT-TOC-PACKAGES-TEXT-LEXICO
      6. FUNCTION: API-REFS-SORT-TOC-PACKAGES
      7. FUNCTION: API-REFS-SORT-TOC-SYMBOLS-TEXT-LEXICO
      8. FUNCTION: API-REFS-SORT-TOC-SYMBOLS
      9. FUNCTION: BUILD-DOC
      10. FUNCTION: BUILD-TOC
      11. FUNCTION: BYTES-TO-HEX
      12. FUNCTION: CODE-STRING-IN-MARKDOWN
      13. FUNCTION: CODE-STRING
      14. FUNCTION: COPY-FILE-INTO-STREAM
      15. FUNCTION: DIRECTORY-PN
      16. FUNCTION: ENCLOSE-AS-CODE-MARKDOWN
      17. FUNCTION: ESCAPE-CODE-TEXT-FOR-MARKDOWN
      18. FUNCTION: ESCAPE-TEXT-FOR-MARKDOWN
      19. FUNCTION: EXPAND-API-REFS-FOR-TOC
      20. FUNCTION: EXTRACT-FILE-TITLE
      21. FUNCTION: EXTRACT-FIRST-HEADING-FROM-MARKDOWN-FILE
      22. FUNCTION: FIND+APPLY
      23. FUNCTION: GATHER-API-REFS
      24. FUNCTION: INIT-LOGGER
      25. FUNCTION: MERGE-PN-WITH-ASDF-SYSTEM-PATH
      26. FUNCTION: PRINT-ANCHOR
      27. FUNCTION: PRINT-API-REF
      28. FUNCTION: PRINT-API-REFS-AS-MARKDOWN
      29. FUNCTION: PRINT-FOOTER-MARKDOWN
      30. FUNCTION: PRINT-FOOTER
      31. FUNCTION: PRINT-HTML-ANCHOR
      32. FUNCTION: PRINT-SECTIONS
      33. FUNCTION: PRINT-TOC-AS-MARKDOWN
      34. FUNCTION: PRINT-TOC
      35. FUNCTION: REMOVE-NEWLINES
      36. FUNCTION: REPR-STRING-IN-MARKDOWN
      37. FUNCTION: REPR-STRING
      38. FUNCTION: ROOT-SECTIONS
      39. FUNCTION: SAFE-STRING-IN-MARKDOWN
      40. FUNCTION: SAFE-STRING
      41. FUNCTION: SEED-PLIST
      42. FUNCTION: SLUGIFY+MD5HEX
      43. FUNCTION: SLUGIFY
      44. FUNCTION: SPLIT-SYMBOL-AND-ARGS
      45. FUNCTION: SYMBOL-SCOPE
      46. FUNCTION: SYSTEM-DEFINITION-DIR
      47. FUNCTION: TOC-FOOTER
      48. GENERIC-FUNCTION: PRINT-API-REF-BODY-AS-MARKDOWN
      49. MACRO: TOC-APPENDF
      50. METHOD: NODE-INFO-LIST ((NODE CFFI-BITFIELD))
      51. METHOD: NODE-INFO-LIST ((NODE CFFI-ENUM))
      52. METHOD: NODE-INFO-LIST ((NODE CFFI-FUNCTION))
      53. METHOD: NODE-INFO-LIST ((NODE CFFI-SLOT))
      54. METHOD: NODE-INFO-LIST ((NODE CFFI-STRUCT))
      55. METHOD: NODE-INFO-LIST ((NODE CFFI-TYPE))
      56. METHOD: NODE-INFO-LIST ((NODE CFFI-UNION))
      57. METHOD: NODE-INFO-LIST ((NODE CLASS-NODE))
      58. METHOD: NODE-INFO-LIST ((NODE CLASS-SLOT-NODE))
      59. METHOD: NODE-INFO-LIST ((NODE FUNCTION-NODE))
      60. METHOD: NODE-INFO-LIST ((NODE GENERIC-FUNCTION-NODE))
      61. METHOD: NODE-INFO-LIST ((NODE MACRO-NODE))
      62. METHOD: NODE-INFO-LIST ((NODE METHOD-NODE))
      63. METHOD: NODE-INFO-LIST ((NODE OPERATOR-NODE))
      64. METHOD: NODE-INFO-LIST ((NODE STRUCT-NODE))
      65. METHOD: NODE-INFO-LIST ((NODE STRUCT-SLOT-NODE))
      66. METHOD: NODE-INFO-LIST ((NODE TYPE-NODE))
      67. METHOD: NODE-INFO-LIST ((NODE VARIABLE-NODE))
      68. METHOD: NODE-INFO-LIST (NODE)
      69. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-BITFIELD)) API-REF OUT-STREAM)
      70. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-ENUM)) API-REF OUT-STREAM)
      71. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-FUNCTION)) API-REF OUT-STREAM)
      72. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-SLOT)) API-REF OUT-STREAM)
      73. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-STRUCT)) API-REF OUT-STREAM)
      74. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-TYPE)) API-REF OUT-STREAM)
      75. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-UNION)) API-REF OUT-STREAM)
      76. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CLASS)) API-REF OUT-STREAM)
      77. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CLASS-SLOT)) API-REF OUT-STREAM)
      78. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL FUNCTION)) API-REF OUT-STREAM)
      79. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL GENERIC-FUNCTION)) API-REF OUT-STREAM)
      80. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL MACRO)) API-REF OUT-STREAM)
      81. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL METHOD)) API-REF OUT-STREAM)
      82. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL STRUCT)) API-REF OUT-STREAM)
      83. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL STRUCT-SLOT)) API-REF OUT-STREAM)
      84. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL TYPE)) API-REF OUT-STREAM)
      85. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL VARIABLE)) API-REF OUT-STREAM)
      86. METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE T) API-REF OUT-STREAM)
      87. METHOD: TYPE-KEYWORD ((NODE CFFI-BITFIELD))
      88. METHOD: TYPE-KEYWORD ((NODE CFFI-ENUM))
      89. METHOD: TYPE-KEYWORD ((NODE CFFI-FUNCTION))
      90. METHOD: TYPE-KEYWORD ((NODE CFFI-SLOT))
      91. METHOD: TYPE-KEYWORD ((NODE CFFI-STRUCT))
      92. METHOD: TYPE-KEYWORD ((NODE CFFI-TYPE))
      93. METHOD: TYPE-KEYWORD ((NODE CFFI-UNION))
      94. METHOD: TYPE-KEYWORD ((NODE CLASS-NODE))
      95. METHOD: TYPE-KEYWORD ((NODE CLASS-SLOT-NODE))
      96. METHOD: TYPE-KEYWORD ((NODE CONDITION-NODE))
      97. METHOD: TYPE-KEYWORD ((NODE FUNCTION-NODE))
      98. METHOD: TYPE-KEYWORD ((NODE GENERIC-FUNCTION-NODE))
      99. METHOD: TYPE-KEYWORD ((NODE MACRO-NODE))
      100. METHOD: TYPE-KEYWORD ((NODE METHOD-NODE))
      101. METHOD: TYPE-KEYWORD ((NODE STRUCT-NODE))
      102. METHOD: TYPE-KEYWORD ((NODE STRUCT-SLOT-NODE))
      103. METHOD: TYPE-KEYWORD ((NODE TYPE-NODE))
      104. METHOD: TYPE-KEYWORD ((NODE VARIABLE-NODE))
      105. METHOD: TYPE-KEYWORD (NODE)
      106. VARIABLE: *ANCHOR-URI-ENCODE-FUNC*
      107. VARIABLE: *API-REF-ANCHOR-PREFIX*
      108. VARIABLE: *API-REFS*
      109. VARIABLE: *API-REFS-ANCHOR*
      110. VARIABLE: *API-REFS-HEADING*
      111. VARIABLE: *API-REFS-SORT-TOC-PACKAGES-FUNC*
      112. VARIABLE: *API-REFS-SORT-TOC-SYMBOLS-FUNC*
      113. VARIABLE: *API-REFS-TITLE*
      114. VARIABLE: *CODE-STRING-FUNC*
      115. VARIABLE: *DOCPARSER-INDEX*
      116. VARIABLE: *OUT-STREAM*
      117. VARIABLE: *OUTPUT-PN*
      118. VARIABLE: *PRINT-ANCHOR-FUNC*
      119. VARIABLE: *PRINT-API-REFS-FUNC*
      120. VARIABLE: *PRINT-FOOTER-FUNC*
      121. VARIABLE: *PRINT-TOC-FUNC*
      122. VARIABLE: *REPR-STRING-FUNC*
      123. VARIABLE: *SAFE-STRING-FUNC*
      124. VARIABLE: *SECTION-FILE-TITLE-FUNC*
      125. VARIABLE: *SEED-PLIST*
      126. VARIABLE: *SEED-PROP-NAME*
      127. VARIABLE: *SEED-SYMBOL*
      128. VARIABLE: *SYSTEM-NAME*
      129. VARIABLE: *TOC*
      130. VARIABLE: *TOC-ANCHOR*
      131. VARIABLE: *TOC-HEADING*
      132. VARIABLE: *TOC-TITLE*

Introduction

Are you stupid enough just like me do? Goood. 🫠

Too lame to learn those Lisp libraries and tools? Sad. 😂

Then just use this unobtrusive tool. "Here your". 🔨

Rationale

I needed it, but I don't want to use anything else.

Getting Started

  1. Install it: Symlink doqumen.asd and (PROGN (ASDF:CLEAR-CONFIGURATION) (QL:QUICKLOAD :doqumen))

  2. Write seed-plist variable:

    (eval-when (:compile-toplevel :load-toplevel :execute)
      ;; Same keyword with name of ASDF-system:
      (setf (get :doqumen :doqumen)
            `(:sections (
                         ,#p"src/01-title.md"
                         :toc     ; <-- Place of TOC
                         (
                          ;; 1st item in a list is heading.
                          ,#p"src/02-intro.md"
                          ;; ...rests are subheadings:
                          ,#p"src/02-a-rationale.md"
                          ,#p"src/02-b-getting-started.md"
                          )
                         :api-ref ; Place API-Refs Here
                         :footer
                         ))))
  3. Write .md files you've mentioned in seed-plist, and docstrings.

  4. Generate: (DOQUMEN:BUILD-DOC :doqumen)

  5. Enjoy the output: docs/index.md

Syntax

  1. Attached property named :DOQUMEN is called "seed plist".

    1. could be specified with another property and at another symbol, with (BUILD-DOC :your-system-name :seed-prop-name :ANOTHER-PROP-NAME :seed-symb :OF-ANOTHER-SYMBOL)
  2. The seed plist has only one property :SECTIONS (currently)

  3. The :SECTIONS has a list as its' value in a sense of Lisp Plist

    1. for example: (:sections ( .... ))
  4. In the list of :SECTIONS, you could place one of:

    1. A pathname of text file.

      • Will be merged with pathname of .asd definition file,
      • Copied into the output file literally.
    2. Keywords: :TOC, :API-REF, :FOOTER

      • Doqumen has builtin supports above 3 keywords.

      • will place "Table of Contents", "API References", and the "Footer" in the output respectively.

      • Any other keywords could be placed, see "HACKS" section below.

    3. Nested list represents a section and its subsections.

      • for example, for a list of: (:A (:B :B-1 :B-2) :C)

      • will be rendered like:

        1. A
        2. B
           1. B-1
           2. B-2
        3. C
        

Hacking

By default, doqumen is:

  1. Emits a single output file.
  2. Assumes the output and the input text files and docstrings in Lisp code are all Markdown formatted.

But can be customized as you want to:

  1. Change the input, docstring, and the output formats as you want to.
  2. Print the link anchors or not.
  3. and Add custom sections in seed plist.

Other than Markdown?

If you want to use other than Markdown format for your docstrings, input text files, and the output text file, customize below variables:

  • *anchor-uri-encode-func*
  • *print-anchor-func*
  • *api-ref-anchor-prefix*
  • *code-string-func*
  • *repr-string-func*
  • *safe-string-func*
  • *api-refs-anchor*
  • *api-refs-heading*
  • *api-refs-title*
  • *print-api-refs-func*
  • *print-footer-func*
  • *print-toc-func*
  • *section-file-title-func*

Your Own Custom Sections

Do you Remember that :SECTIONS of seed plist has a few special sections like :TOC, :API-REF, and :FOOTER.

You could add your own custom sections, imagine :MEDITATE or something. By writing and exporting functions: DOQUMEN:PRINT-MEDITATE and DOQUMEN:TOC-MEDITATE.

Each function receives required arguments, for more detailed information, please read the code of DOQUMEN:PRINT-FOOTER and DOQUMEN:TOC-FOOTER and try your own hack. Yes, the :FOOTER is implemented in this way.

Also, you could pass any arbitrary additional arguments by writing this:

|MEDITATE (:TEA "Drank")|

The custom section functions PRINT-MEDITATE and TOC-MEDITATE would get ARGS as a list looks like (LIST ... :TEA "Drank").

Supporting

Enjoying this project? Consider supporting its growth via the Ethereum address in my profile.

License

Licensed under the MIT License

Please read the ./LICENSE

APIs

PACKAGE: DOQUMEN

FUNCTION: ->KEYWORD

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::VAL)
  • SETF? NIL

FUNCTION: ->ONE-LINE-STRING

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (DOQUMEN::VAL)
  • SETF? NIL

FUNCTION: ->UPCASE

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::VAL)
  • SETF? NIL

FUNCTION: API-REFS->TOC

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::API-REFS)
  • SETF? NIL

FUNCTION: API-REFS-SORT-TOC-PACKAGES-TEXT-LEXICO

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::PKGS)
  • SETF? NIL

FUNCTION: API-REFS-SORT-TOC-PACKAGES

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::SYMBS)
  • SETF? NIL

Non-destructively sort a list SYMBS with a function *API-REFS-SORT-TOC-PACKAGES-FUNC*, Sorting when the variable is non-NIL.

FUNCTION: API-REFS-SORT-TOC-SYMBOLS-TEXT-LEXICO

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::SYMBS)
  • SETF? NIL

FUNCTION: API-REFS-SORT-TOC-SYMBOLS

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::SYMBS)
  • SETF? NIL

Non-destructively sort a list SYMBS with a function of *API-REFS-SORT-TOC-SYMBOLS-FUNC*. Sorting when the function is non-NIL.

FUNCTION: BUILD-DOC

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (DOQUMEN::SYSTEM-NAME &KEY DOQUMEN::SEED-SYMBOL (DOQUMEN::SEED-PROP-NAME :DOQUMEN) (DOQUMEN::OUTPUT-FILE #P"docs/index.md"))
  • SETF? NIL

Build it!

FUNCTION: BUILD-TOC

  • SCOPE: INTERNAL
  • LAMBDA LIST: (&KEY DOQUMEN::SECTIONS)
  • SETF? NIL

FUNCTION: BYTES-TO-HEX

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::BYTES)
  • SETF? NIL

FUNCTION: CODE-STRING-IN-MARKDOWN

  • SCOPE: INTERNAL
  • LAMBDA LIST: (STRING)
  • SETF? NIL

Quote STRING as a code-string in Markdown format

FUNCTION: CODE-STRING

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (STRING)
  • SETF? NIL

Quote STRING as a code-literal in output format

FUNCTION: COPY-FILE-INTO-STREAM

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (DOQUMEN::IN-FILE DOQUMEN::OUT-STREAM)
  • SETF? NIL

Copy contents of pathname IN-FILE into OUT-STREAM

FUNCTION: DIRECTORY-PN

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::PN)
  • SETF? NIL

Directory pathname from PN

FUNCTION: ENCLOSE-AS-CODE-MARKDOWN

  • SCOPE: INTERNAL
  • LAMBDA LIST: (STRING)
  • SETF? NIL

FUNCTION: ESCAPE-CODE-TEXT-FOR-MARKDOWN

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::STR)
  • SETF? NIL

FUNCTION: ESCAPE-TEXT-FOR-MARKDOWN

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::STR)
  • SETF? NIL

FUNCTION: EXPAND-API-REFS-FOR-TOC

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::API-REFS)
  • SETF? NIL

FUNCTION: EXTRACT-FILE-TITLE

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (DOQUMEN::PN)
  • SETF? NIL

Extract the title of file of PN by using *SECTION-FILE-TITLE-FUNC*, if it's NIL, evaluate to just PN.

FUNCTION: EXTRACT-FIRST-HEADING-FROM-MARKDOWN-FILE

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::PN)
  • SETF? NIL

FUNCTION: FIND+APPLY

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (DOQUMEN::PREFIX DOQUMEN::SYM &KEY DOQUMEN::ARGS (DOQUMEN::PKG (FIND-PACKAGE :DOQUMEN)))
  • SETF? NIL

Find a function named SYM via SPLIT-SYMBOL-AND-ARGS

Applies ARGS with extra arguments from SPLIT-SYMBOL-AND-ARGS if any available.

FUNCTION: GATHER-API-REFS

  • SCOPE: INTERNAL
  • LAMBDA LIST: NIL
  • SETF? NIL

FUNCTION: INIT-LOGGER

  • SCOPE: INTERNAL
  • LAMBDA LIST: NIL
  • SETF? NIL

FUNCTION: MERGE-PN-WITH-ASDF-SYSTEM-PATH

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (DOQUMEN::PN DOQUMEN::SYSTEM-NAME)
  • SETF? NIL

Merged pathname PN (relative) with the system definition directory of SYSTEM-NAME

FUNCTION: PRINT-ANCHOR

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (DOQUMEN::TEXT DOQUMEN::ANCHOR-URI)
  • SETF? NIL

Print anchor to the output, unless *PRINT-ANCHOR-FUNC* is NIL

FUNCTION: PRINT-API-REF

  • SCOPE: EXTERNAL
  • LAMBDA LIST: NIL
  • SETF? NIL

Print API references to the output, unless *PRINT-API-REFS-FUNC* is NIL

FUNCTION: PRINT-API-REFS-AS-MARKDOWN

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::API-REFS)
  • SETF? NIL

print api-refs as markdown

FUNCTION: PRINT-FOOTER-MARKDOWN

  • SCOPE: INTERNAL
  • LAMBDA LIST: (&REST DOQUMEN::ARGS)
  • SETF? NIL

FUNCTION: PRINT-FOOTER

  • SCOPE: INTERNAL
  • LAMBDA LIST: (&REST DOQUMEN::ARGS)
  • SETF? NIL

FUNCTION: PRINT-HTML-ANCHOR

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::TEXT DOQUMEN::ANCHOR-URI)
  • SETF? NIL

FUNCTION: PRINT-SECTIONS

  • SCOPE: INTERNAL
  • LAMBDA LIST: (&KEY DOQUMEN::SECTIONS)
  • SETF? NIL

FUNCTION: PRINT-TOC-AS-MARKDOWN

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::TOC &KEY (DOQUMEN::LEVEL 1))
  • SETF? NIL

FUNCTION: PRINT-TOC

  • SCOPE: EXTERNAL
  • LAMBDA LIST: NIL
  • SETF? NIL

Print TOC to the output using *PRINT-TOC-FUNC*, if it isn't NIL.

FUNCTION: REMOVE-NEWLINES

  • SCOPE: INTERNAL
  • LAMBDA LIST: (DOQUMEN::S)
  • SETF? NIL

FUNCTION: REPR-STRING-IN-MARKDOWN

  • SCOPE: INTERNAL
  • LAMBDA LIST: (STRING)
  • SETF? NIL

Quote STRING as a value repr-string in Markdown format

FUNCTION: REPR-STRING

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (STRING)
  • SETF? NIL

Quote STRING as a value repr-literal in output format

FUNCTION: ROOT-SECTIONS

  • SCOPE: EXTERNAL
  • LAMBDA LIST: NIL
  • SETF? NIL

FUNCTION: SAFE-STRING-IN-MARKDOWN

  • SCOPE: INTERNAL
  • LAMBDA LIST: (STRING)
  • SETF? NIL

FUNCTION: SAFE-STRING

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (STRING)
  • SETF? NIL

Escap STRING in output format

FUNCTION: SEED-PLIST

  • SCOPE: EXTERNAL
  • LAMBDA LIST: NIL
  • SETF? NIL

Get seed plist

FUNCTION: SLUGIFY+MD5HEX

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (STRING)
  • SETF? NIL

FUNCTION: SLUGIFY

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (STRING)
  • SETF? NIL

FUNCTION: SPLIT-SYMBOL-AND-ARGS

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (DOQUMEN::SYMB &KEY (DOQUMEN::PKG *PACKAGE*) (DOQUMEN::PREFIX "") (DOQUMEN::SPACE-CHAR #\ ))
  • SETF? NIL

Split Symbol/Keyword SYMB by SPACE-CHAR => (VALUES SYMB REST-FORM)

(split-symbol-and-args :foo) ;=> (VALUES 'FOO NIL)

(split-symbol-and-args '|foo (list 'aaa 'bbb)|) ;=> (VALUES 'FOO (LIST 'AAA 'BBB))

The first symbol of result values will be interned in PKG and prefixed with PREFIX-string.

FUNCTION: SYMBOL-SCOPE

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (DOQUMEN::NAME DOQUMEN::PKG-NAME)
  • SETF? NIL

Scope of symbol NAME under PKG-NAME. Evaluates as one of :INTERNAL, :EXTERNAL, or :INHERITED

FUNCTION: SYSTEM-DEFINITION-DIR

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (DOQUMEN::SYSTEM-NAME)
  • SETF? NIL

Directory pathname of ASDF system, SYSTEM-NAME

FUNCTION: TOC-FOOTER

  • SCOPE: INTERNAL
  • LAMBDA LIST: (&REST DOQUMEN::ARGS)
  • SETF? NIL

GENERIC-FUNCTION: PRINT-API-REF-BODY-AS-MARKDOWN

  • SCOPE: INTERNAL
  • LAMBDA LIST: (TYPE DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL

MACRO: TOC-APPENDF

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (DOQUMEN::PLACE &KEY DOQUMEN::TEXT DOQUMEN::ANCHOR DOQUMEN::CHILDREN)
  • SETF? NIL

METHOD: NODE-INFO-LIST ((NODE CFFI-BITFIELD))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-BITFIELD))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE CFFI-ENUM))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-ENUM))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE CFFI-FUNCTION))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-FUNCTION))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE CFFI-SLOT))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-SLOT))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE CFFI-STRUCT))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-STRUCT))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE CFFI-TYPE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-TYPE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE CFFI-UNION))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-UNION))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE CLASS-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CLASS-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE CLASS-SLOT-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CLASS-SLOT-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE FUNCTION-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:FUNCTION-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE GENERIC-FUNCTION-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:GENERIC-FUNCTION-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE MACRO-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:MACRO-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE METHOD-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:METHOD-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE OPERATOR-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:OPERATOR-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE STRUCT-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:STRUCT-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE STRUCT-SLOT-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:STRUCT-SLOT-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE TYPE-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:TYPE-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST ((NODE VARIABLE-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:VARIABLE-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: NODE-INFO-LIST (NODE)

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (DOQUMEN::NODE)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-BITFIELD)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :CFFI-BITFIELD)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-ENUM)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :CFFI-ENUM)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-FUNCTION)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :CFFI-FUNCTION)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-SLOT)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :CFFI-SLOT)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-STRUCT)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :CFFI-STRUCT)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-TYPE)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :CFFI-TYPE)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CFFI-UNION)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :CFFI-UNION)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CLASS)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :CLASS)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL CLASS-SLOT)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :CLASS-SLOT)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL FUNCTION)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :FUNCTION)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL GENERIC-FUNCTION)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :GENERIC-FUNCTION)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL MACRO)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :MACRO)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL METHOD)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :METHOD)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL STRUCT)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :STRUCT)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL STRUCT-SLOT)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :STRUCT-SLOT)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL TYPE)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :TYPE)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE (EQL VARIABLE)) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE (EQL :VARIABLE)) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: PRINT-API-REF-BODY-AS-MARKDOWN ((TYPE T) API-REF OUT-STREAM)

  • SCOPE: INTERNAL
  • LAMBDA LIST: ((TYPE T) DOQUMEN::API-REF DOQUMEN::OUT-STREAM)
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE CFFI-BITFIELD))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-BITFIELD))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE CFFI-ENUM))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-ENUM))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE CFFI-FUNCTION))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-FUNCTION))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE CFFI-SLOT))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-SLOT))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE CFFI-STRUCT))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-STRUCT))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE CFFI-TYPE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-TYPE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE CFFI-UNION))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CFFI-UNION))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE CLASS-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CLASS-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE CLASS-SLOT-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CLASS-SLOT-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE CONDITION-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:CONDITION-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE FUNCTION-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:FUNCTION-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE GENERIC-FUNCTION-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:GENERIC-FUNCTION-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE MACRO-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:MACRO-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE METHOD-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:METHOD-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE STRUCT-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:STRUCT-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE STRUCT-SLOT-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:STRUCT-SLOT-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE TYPE-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:TYPE-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD ((NODE VARIABLE-NODE))

  • SCOPE: EXTERNAL
  • LAMBDA LIST: ((DOQUMEN::NODE DOCPARSER:VARIABLE-NODE))
  • SETF? NIL
  • QUALIFIERS: NIL

METHOD: TYPE-KEYWORD (NODE)

  • SCOPE: EXTERNAL
  • LAMBDA LIST: (DOQUMEN::NODE)
  • SETF? NIL
  • QUALIFIERS: NIL

VARIABLE: *ANCHOR-URI-ENCODE-FUNC*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: #'DOQUMEN:SLUGIFY+MD5HEX

VARIABLE: *API-REF-ANCHOR-PREFIX*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: "API-"

A prefix to be prepended to anchor URI of API reference entries

VARIABLE: *API-REFS*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: NIL

Generated API-references (internal data)

VARIABLE: *API-REFS-ANCHOR*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: "API-REFS"

VARIABLE: *API-REFS-HEADING*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: "# APIs"

VARIABLE: *API-REFS-SORT-TOC-PACKAGES-FUNC*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: #'DOQUMEN::API-REFS-SORT-TOC-PACKAGES-TEXT-LEXICO

VARIABLE: *API-REFS-SORT-TOC-SYMBOLS-FUNC*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: #'DOQUMEN::API-REFS-SORT-TOC-SYMBOLS-TEXT-LEXICO

VARIABLE: *API-REFS-TITLE*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: "APIs"

VARIABLE: *CODE-STRING-FUNC*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: #'DOQUMEN::CODE-STRING-IN-MARKDOWN

A function to be used to quote code-string

VARIABLE: *DOCPARSER-INDEX*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: NIL

VARIABLE: *OUT-STREAM*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: NIL

The output stream

VARIABLE: *OUTPUT-PN*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: NIL

The output, pathname

VARIABLE: *PRINT-ANCHOR-FUNC*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: #'DOQUMEN::PRINT-HTML-ANCHOR

VARIABLE: *PRINT-API-REFS-FUNC*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: #'DOQUMEN::PRINT-API-REFS-AS-MARKDOWN

VARIABLE: *PRINT-FOOTER-FUNC*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: #'DOQUMEN::PRINT-FOOTER-MARKDOWN

VARIABLE: *PRINT-TOC-FUNC*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: #'DOQUMEN::PRINT-TOC-AS-MARKDOWN

VARIABLE: *REPR-STRING-FUNC*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: #'DOQUMEN::REPR-STRING-IN-MARKDOWN

A function to be used to quote value repr-string

VARIABLE: *SAFE-STRING-FUNC*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: #'DOQUMEN::SAFE-STRING-IN-MARKDOWN

A function to be used to escape string for an output format

VARIABLE: *SECTION-FILE-TITLE-FUNC*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: #'DOQUMEN::EXTRACT-FIRST-HEADING-FROM-MARKDOWN-FILE

VARIABLE: *SEED-PLIST*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: NIL

The seed plist, an entry-data for doc-generation

VARIABLE: *SEED-PROP-NAME*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: NIL

A property name (a keyword) in *seed-symbol* to specify *seed-plist*

VARIABLE: *SEED-SYMBOL*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: NIL

A symbol/keyword which has a property named as *SEED-PROP-NAME*

VARIABLE: *SYSTEM-NAME*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: NIL

Currently specfied ASDF system name (keyword)

VARIABLE: *TOC*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: NIL

VARIABLE: *TOC-ANCHOR*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: "TOC"

VARIABLE: *TOC-HEADING*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: "# Table of Contents"

VARIABLE: *TOC-TITLE*

  • SCOPE: EXTERNAL
  • INITIAL-VALUE: "Table of Contents"

Generated with doqumen at 2026-05-18T23:55:56.446124+09:00 by https://github.com/ageldama

About

Yet another Lisp documentation generator, but it's way more dumber than others

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors