SNOPEA(7)

📦
version 2.3.1 · 3 versions
, in fedora 43, fedora 44, opensuse-leap 16.0

💖 SNOPEA(7) 💖

okay bestie, so this is the page for snopea, from the CSNOBOL4 Manual — yes it's a whole section 7 situation, we love that for us 🫶


✨ NAME ✨

snopea — a little “Plain Old Documentation” format for SNOBOL4 🌸


🌈 DESCRIPTION 🌈

snopea is a simple-to-use markup language for writing docs about SNOBOL4, SNOBOL4 programs, and SNOBOL4 modules. it's inspired by perlpod(1), which is iconic of it honestly. the snopea(1) command translates snopea into *roff man(7) macro format or HTML. so you write once, you get a man page and a web page. slay. 💅

here's the vibe check on how a doc block starts: a line that starts with zero or more star/asterisk (*) characters followed by =pea signals the start of a block of documentation. everything from there until a =cut directive gets processed — and after that leading star/asterisk character removal happens, so you can keep your pretty commented-out blocks looking cute ✨

new paragraphs? blank line. that's it. that's the whole trick. 🎀


🦋 FORMATTING 🦋

  • B<text> — text comes out in bold. main character energy, literally.
  • I<text> — text comes out in italic.
  • C<text> — text comes out in constant width, iykyk, the code font.
  • L<url> — url gets formatted as an HTML link. 🔗

👑 DIRECTIVES 👑

okay so these are the directives, and there are a lot of them, but every single one matters, so we're going through all of them, no skipping, periodt.

  • =break — inserts a line break. 💥
  • =bull text — indicates a bullet item in a list.
  • =code — starts a block of code. lines inside get formatted in a constant-width font, and line breaks are preserved. so your spacing stays exactly how you wrote it 🫶
  • =cut — signals the end of a block of documentation. bye bestie 👋
  • =ecode — ends a =code block.
  • =etable — ends a table.
  • =item label — a list item with tag label.
  • =indent number — controls the indentation of =item paragraphs.
  • =nitem text — a numbered list item with tag label.
  • =row columns — a table row. columns is a tab separated list.
  • =sect name — declares man page section name.
  • =subsect name — declares man page subsection name.
  • =table tab stops — begins a table, setting tab stops, a sequence of positions in inches, each followed by i (ie; 1i 2i 3i).

⭐ SPECIAL CHARACTERS ⭐

these next ones are literally so important. the following sequences (an unholy mix of troff(1) and HTML, and yes that's a direct quote, it's giving chaotic collab) MUST be used for portable formatting. like, MUST must. no cap. 😤

  • `` — left double quote (“)
  • ´´ — right double quote (”)
  • &amp; — ampersand (&)
  • &pi; — greek lower-case pi (π)
  • &lt; — less than sign (<)
  • &gt; — greater than sign (>)
  • \e — backslash (\)
  • **\``** — accent grave (`` ``)
  • \' — apostrophe (')
  • \- — en-dash
  • \& — zero-width space
  • \| — thin space
  • \~ — non-breaking space
  • \= — equals-sign

💀 NOT CONFORMING TO 💀

inspired by — but NOT compatible with — the Perl POD format. so do not go assuming your POD knowledge transfers over, bestie, because it does not 🙈


🎀 AUTHOR 🎀

Philip L. Budne — thank you for your service, king 👑


🌸 SEE ALSO 🌸

snobol4(1), snopea(1), perlpod(1), perlpodspec(1).


and that's the whole page, bestie!! this was CSNOBOL4B 2.3.1, dated March 31, 2022 💜 go forth and document your SNOBOL4 like the icon you are ✨🦋💅

📦 where this page comes from