mkdoc(n)

πŸŽ€ NAME πŸŽ€

mkdoc β€” the source code documentation extractor/converter application. Also answering to mkdoc(n) when it's being fancy at a party. πŸ’…


✨ SYNOPSIS ✨

mkdoc --help

mkdoc --version

mkdoc --license

mkdoc input output ?--css cssfile?

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so bestie, this whole page is about mkdoc, an application that extracts documentation embedded inside source code files and turns it into something you can actually read. It doesn't care if your file is a .tcl or literally anything else β€” it's not picky, it's versatile. 🌈


πŸ’– COMMAND LINE πŸ’–

🫢 mkdoc --help

Prints a short help to standard output and then exits. That's it, that's the whole vibe. ✨

🫢 mkdoc --version

Prints its version number to standard output and exits. Number goes brrr, then it dips. πŸ’«

🫢 mkdoc --license

Prints its license to standard output and exits. Legal girlies, this one's for you. πŸ“œ

πŸ‘‘ mkdoc input output ?--css cssfile?

The main character command, fr fr. Here's the tea:

  • It reads the input file, extracts the embedded documentation, and writes it out to the output file. πŸ“
  • If the output file is not a .md file, the extracted documentation gets converted to HTML before being written.
  • When generating and writing HTML, the default CSS stylesheet can be overridden by specifying the path to a custom stylesheet via option --css.
  • If the input file is a .md file, it's expected to contain Markdown as-is, instead of Markdown embedded into code. No code-wrapping shenanigans there, just vibes.
  • On the other side, when the file is considered code, then the documentation is expected to be contained in all lines starting with the marker #'.
    • For script languages like Tcl, the # character of this marker means the documentation is contained in the so-flagged comments. πŸŽ€
    • For other languages, the marker and documentation may have to be embedded into multi-line comments.
Quick vibe check: --css only matters when you're making HTML. Markdown girlies, you don't need it.

🌸 EXAMPLES 🌸

# Create HTML manual for a CPP file using a custom style sheet
mkdoc sample.cpp sample.html --css manual.css

# Extract the documentation from code as simple Markdown, ready to be processed
# further, for example with pandoc, or similar
mkdoc sample.cpp sample.md

# Convert a Markdown file to HTML
mkdoc sample.md sample.html

Iconic behavior honestly. Look at that range. πŸ”₯


😭 BUGS, IDEAS, FEEDBACK 😭

This document, and the package it describes, will undoubtedly contain bugs and other problems. No cap, it's basically guaranteed. Please report such to the author of this package. Please also report any ideas for enhancements you may have for either package and/or documentation. The author genuinely wants to hear from you, bestie. 🫢


BSD License type:

The following terms apply to all files associated with the software unless explicitly disclaimed in individual files.

The authors hereby grant permission to use, copy, modify, distribute, and license this software and its documentation for any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in any distributions. No written agreement, license, or royalty fee is required for any of the authorized uses. Modifications to this software may be copyrighted by their authors and need not follow the licensing terms described here, provided that the new terms are clearly indicated on the first page of each file where they apply.

In no event shall the authors or distributors be liable to any party for direct, indirect, special, incidental, or consequential damages arising out of the use of this software, its documentation, or any derivatives thereof, even if the authors have been advised of the possibility of such damage. Like, all the damages. Every single flavor of damage. Not on them.

The authors and distributors specifically disclaim any warranties, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement. This software is provided on an "as is" basis, and the authors and distributors have no obligation to provide maintenance, support, updates, enhancements, or modifications. As-is means as-is, bestie. No glow-up promised.

RESTRICTED RIGHTS: Use, duplication or disclosure by the government is subject to the restrictions as set forth in subparagraph (c) (1) (ii) of the Rights in Technical Data and Computer Software Clause as DFARS 252.227-7013 and FAR 52.227-19.


🧚 CATEGORY 🧚

Text processing. Text processing. Text processing. (Said three times because it's true and also because it's fun.) πŸ’œ


Copyright (c) 2019-2022, Detlef Groth <detlef(at)dgroth(dot)de>


And that's the whole page, bestie!! This lil number ships as part of tcllib, rocking version 0.7.0, and yes, it's the mkdoc(n) manual page you've been reading this entire time. πŸŽ€βœ¨ Thanks for scrolling all the way down, you're a real one. Mwah. πŸ’…πŸ¦‹

πŸ“¦ where this page comes from