fpdoc(1)
π fpdoc(1) β NAME π
okay so this is fpdoc from the Free Pascal manual, and it's literally the FPC Pascal unit documentation generator. that's the whole vibe. it takes your units and makes docs. periodt. β¨
π¦ SYNOPSIS π¦
fpdoc --input=inputcommand [--output=output] [--format=fmt]
[--descr=descriptionfile] [--package=packagename] [options]
πΈ Description πΈ
bestie. listen. fpdoc scans a Free Pascal unit source file and generates documentation for it, no cap. π
the docs can come out in various formats (currently HTML and LaTeX), and it can read various description files which contain the description for the various symbols found in the unit file. it's giving "your code, but with lore". π«Ά
π Usage π
you can invoke fpdoc with, as the only required arguments, the input and package arguments. it should at least contain:
- the name of the unit file for which documentation should be generated, and
- the name of the package to which the unit belongs.
that's it. that's the minimum. iconic. π
π Options π
fpdoc has several options, most of them optional β defaults will be used in most cases, so don't stress. π
--contentβ this tellsfpdocto generate a content file. a content file contains a list of all the possible anchors (labels) in the generated documentation file, and it can be used to create cross-links in documentation for different units, using the--importoption. π--cputarget=valueβ tellsfpdocwhich CPU to generate documentation for. it simply defines the appropriate CPU macros. that's all, no drama. π»--descr=descfileβ specifies the name of a description file descfile that contains the actual documentation for the unit. and yes, you can give this option several times, for several description files. π--descr-dir=dirβ specifies the name of a directory with XML description files, named dir. this option can be given several times, for several description directories. it's equivalent to specifying all files in the directory with the--descroption. it's the "select all" of description files, honestly. ποΈ--dont-trimβ tellsfpdocnot to trim whitespace in the XML files. by default, whitespace is trimmed from the input, which can have undesirable side-effects in for instancePREtags. so if your formatting looks weird, this is the girl. π--dry-runβ tellsfpdocnot to generate any output, but just parse all input. this can be used with the verbose option to check what errors remain in the documentation, or what is still missing. it's the "just checking in" option. π--format=fmtβ specifies the format fmt in which the documentation will be generated. currently, the following formats are known:chmβ CHM with 8.3 conforming filenames, for windows mostly.dxmlβ Delphi compatible XML output.htmβ HTML with 8.3 conforming filenames.htmlβ HTML with long filenames.ipfβ IPF output (OS/2 format, can be used withdocviewfromfpGUI).xhtmlβ XHTML with long filesnames.latexβ LaTex, which uses thefpc.stystyle used by the Free Pascal documentation.manβ man page output (unix manual pages, one page per identifier).rtfβ RTF output.txtβ Plain text output.xml-structβ Structured XML.
--helpβ show a command-line option summary. the classic. π--hide-protectedβ by default, the documentation will include descriptions and listings ofprotectedfields and methods in classes or objects. this option changes this behaviour; if it is specified, no documentation will be generated for these methods. > heads up bestie: public methods or properties that refer to these protected methods will then have a dangling (i.e. unavailable) link. so like, broken link era. π--html-search=linkβ adds an entry for an HTML search page at location link in the headers of the generated HTML pages. there is no search page provided β this should be made and provided by the user. you gotta bring your own. π«‘--import=impfileβ imports a content file impfile from another documentation set. this can be used to resolve references to elements within this other documentation file; π--input=cmdβ tellsfpdocwhat input file should be used. the argument cmd can be just a filename, but can also be a complete compiler command-line with options that concern the scanning of the pascal source: defines, include files, syntax options, as they would be specified to the free pascal compiler when compiling the file. if a complete command is used, then it should be enclosed in single or double quotes, so the shell will not break them in parts. and you can specify multiple input commands β they will be treated one by one, and documentation will be generated for each of them. multitasking queen. π--input-dir=dirβ tellsfpdocto add all.pasand.ppfiles in the directory named cmd as input files to the documenter. this is equivalent to specifying all files in the directory with the--inputcommand. π--lang=languageβ sets the language for the output file. this will mainly set the strings used for the headers in various parts of the documentation files (by default they're in english). currently, valid options are:deβ German.frβ French.nlβ Dutch.
--latex-extension=extβ sets the extension to use for the LaTeX file to ext. the default is.tex(with.(dot) included). don't forget the dot, babe. π--latex-highlightβ switches on an internal latex syntax highlighter. > this is not yet implemented. by default, syntax highlighting is provided by the syntax package that comes withfpc. so it's giving "coming soon" energy. π§--mo-dir=dirβ tellsfpdocwhere to look for the translation files that can be used to internationalizefpdoc's output. π--ostarget=valueβ tellsfpdocwhich operating system to generate documentation for. it simply defines the appropriate operating system macros. π₯οΈ--output=nameβ tellsfpdocwhere the output file should be generated. how this option is interpreted depends on the format that is used:- for
latex, name is interpreted as the filename for the tex file. - for all other formats, name is interpreted as the directory where all documentation files will be written. the directory will be created if it does not yet exist. standard this equals the package name. β¨
- for
--package=packagenameβ specifies the package name. all units will be documented as part of packagename, which is also the default output filename or directory. only documentation nodes inside a package node with this name will be considered when documenting. very main character of it. π--parse-implβ (Experimental) try to parse the implementation of a unit too. this can be used for syntax checking. π§ͺ--project=fileβ tellsfpdocto read all options from a project file. this is an XML file β please see the documentation for more information about the format for this file. π--show-privateβ by default, no documentation is generated for private methods or fields. this option causesfpdocto generate documentation for these methods as well. privacy? gone. π--verboseβ by default,fpdocis sparse with output. this tellsfpdocto generate some more information about what it is doing. yapper mode: activated. π£οΈ--warn-no-nodeβ if this option is specified,fpdocwill emit a warning if it does not find a description node for an identifier it is documenting. it's the friend who tells you when something's missing. π«Ά--write-project=fileβ if this option is specified,fpdocwill write afpdocproject file (to the specified file name) that corresponds to the command-line options given. save your settings, bestie. πΎ
π SEE ALSO π
and that's the whole page, babe π this one shipped with the Free Pascal crew and is dated 9 march 2002 β old but iconic, fr fr. go document something. πβ¨π¦
π¦ where this page comes from
- debian bookworm: fp-utils-3.2.2 3.2.2+dfsg-20 Β· GPL-2.0-or-later
- debian trixie: fp-utils-3.2.2 3.2.2+dfsg-46 Β· GPL-2.0-or-later
- ubuntu jammy: fp-utils-3.2.2 3.2.2+dfsg-9ubuntu1 Β· GPL-2.0-or-later
- ubuntu noble: fp-utils-3.2.2 3.2.2+dfsg-32 Β· GPL-2.0-or-later
- ubuntu questing: fp-utils-3.2.2 3.2.2+dfsg-46
- ubuntu resolute: fp-utils-3.2.2 3.2.2+dfsg-49 Β· GPL-2.0-or-later
- ubuntu stonking: fp-utils-3.2.2 3.2.2+dfsg-51 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms