PUBLICAN(1)

πŸ“¦
version 4.3.2 Β· 2 versions
, in fedora 43

πŸ’– PUBLICAN(1) πŸ’–

okay bestie, welcome to publican β€” the User Contributed Perl Documentation one, aka the whole entire manual for the publican tool. grab a boba, we're doing this. πŸ§‹βœ¨


✨ NAME ✨

publican β€” a DocBook XML publishing tool. that's it, that's the vibe. it publishes things, DocBook XML things, and it slays while doing it. πŸ‘‘


🌸 VERSION 🌸

This document describes publican version 4.0. yes, four point oh. iconic behavior.


πŸ¦‹ SYNOPSIS πŸ¦‹

so here's how you talk to her:

publican <command options>

publican <action> <action options>

πŸ’… Command Options

  • --help β€” Display help message. she'll tell you what's up.
  • --man β€” Display the man page. (you're literally reading it rn, hi πŸ™ˆ)
  • --help_actions β€” Display a list of valid actions. the menu of options, fr fr.
  • -v β€” Display the version of Publican. little lowercase v, big knowledge.

πŸ‘‘ Valid actions are:

  • add_revision β€” Add an entry to the revision history
  • build β€” Transform XML to other formats (pdf, html, html-single, drupal-book, etc)
  • clean β€” Remove all temporary files and directories
  • clean_ids β€” Run clean ids for source XML
  • clean_set β€” Remove local copies of remote set books
  • copy_web_brand β€” Copy a brand's installed web content to another site
  • create β€” Create a new book, set, or article
  • create_brand β€” Create a new brand
  • create_site β€” Create a new WebSite in the supplied location.
  • help_config β€” Display help text for the configuration file
  • install_book β€” Install a book in to a WebSite.
  • install_brand β€” Install a brand to the supplied location
  • lang_stats β€” report PO statistics
  • migrate_site β€” Migrate a website DataBase from Publican < 3 to Publican 3.
  • package β€” Package a language for shipping
  • print_banned β€” Print a list of banned DocBook tags
  • print_known β€” Print a list of QA'd DocBook tags
  • print_tree β€” Print a tree of the xi:includes
  • print_unused β€” Print a list of unused XML files
  • print_unused_images β€” Print a list of unused Image files
  • remove_book β€” Remove a book from a WebSite.
  • rename β€” Rename a publican book
  • report β€” Print a readability report for the source text.
  • site_stats β€” Report on the contents of a WebSite
  • trans_drop β€” Snapshot the source language for use in translation.
  • update_db β€” Add or remove database entries. Used for processing pre-build books, such as when building packages.
  • update_po β€” Update the PO files
  • update_pot β€” Update the POT files
  • update_site β€” Update an existing sites templates.
  • zt_pull β€” Pull translations from Zanata.
  • zt_push β€” Push translations to Zanata.
Run: bin/publican <action> --help for details on action usage 🫢

🌈 INTERFACE 🌈

bestie, this is the big one. every single action, every single flag, all of it. buckle up. πŸŽ€

πŸ’œ add_revision

Add an entry to the revision history. like leaving a little note in the group chat but, y'know, for your book's version history.

Options:

  • --help β€” Display help message
  • --config=s β€” Use a nonstandard config file
  • --common_config=s β€” Override path to Common_Config directory
  • --common_content=s β€” Override path to Common_Content directory
  • --nocolours β€” Disable ANSI colourisation of logging.
  • --quiet β€” Disable all logging.
  • --brand_dir=s β€” Directory to source brand files from.
  • --lang=<LANG> β€” The language the XML will be written in
  • --revnumber=<REVNUMBER> β€” Revision number to use for a revision.
  • --date=<DATE> β€” Date to use for a revision.
  • --member=<MEMBER> β€” An entry to be added to the revision. Can be specified multiple times.
  • --firstname=<FIRSTNAME> β€” firstname to use for a revision.
  • --surname=<SURNAME> β€” surname to use for a revision.
  • --email=<EMAIL> β€” email to use for a revision.

πŸ”₯ build

Transform XML to other formats (pdf, html, html-single, drupal-book, etc). this is THE moment, the main character action, the glow-up from XML to literally anything else. ✨

Options:

  • --help β€” Display help message
  • --config=s β€” Use a nonstandard config file
  • --common_config=s β€” Override path to Common_Config directory
  • --common_content=s β€” Override path to Common_Content directory
  • --nocolours β€” Disable ANSI colourisation of logging.
  • --quiet β€” Disable all logging.
  • --brand_dir=s β€” Directory to source brand files from.
  • --formats=<FORMATS> β€” Comma-separated list of formats, for example: html,pdf,html-single,html-desktop,txt,epub
  • --langs=<LANGS> β€” Comma-separated list of languages, for example: en-US,de-DE,all
  • --publish β€” Set up built content for publishing
  • --embedtoc β€” Embed the web site TOC object in the generated HTML
  • --distributed_set β€” This flag tells publican the data being processed is a distributed set. Note: do not use distributed_set on the command line. Publican uses this flag when calling itself to process distributed sets. This is the only safe way this flag can be used.
  • --novalid β€” Do not run the DTD validation
  • --src_dir=<SRC_DIR> β€” Directory to source publican files from.
  • --pdftool=<PDFTOOL> β€” Override the tool to use when creating PDFs. Valid options are wkhtmltopdf and fop.
  • --pub_dir=<PUB_DIR> β€” Directory to publish files to. Defaults to publish.
bestie. real talk. do not use distributed_set on the command line. Publican uses it when it calls itself to process distributed sets, and that is the only safe way it can be used. respect the flag's boundaries. πŸ™ˆ

πŸŽ€ clean

Remove all temporary files and directories. spring cleaning but make it terminal. 🧹✨

Options:

  • --help β€” Display help message
  • --config=s β€” Use a nonstandard config file
  • --common_config=s β€” Override path to Common_Config directory
  • --common_content=s β€” Override path to Common_Content directory
  • --nocolours β€” Disable ANSI colourisation of logging.
  • --quiet β€” Disable all logging.
  • --brand_dir=s β€” Directory to source brand files from.
  • --pub_dir=<PUB_DIR> β€” Directory to publish files to. Defaults to publish.

πŸ¦„ clean_ids

Run clean ids for source XML. tidying up the IDs like a lil organizational queen. πŸ’…

Options:

  • --help β€” Display help message
  • --config=s β€” Use a nonstandard config file
  • --common_config=s β€” Override path to Common_Config directory
  • --common_content=s β€” Override path to Common_Content directory
  • --nocolours β€” Disable ANSI colourisation of logging.
  • --quiet β€” Disable all logging.
  • --brand_dir=s β€” Directory to source brand files from.

🌸 clean_set

Remove local copies of remote set books. bye bestie, you're not local anymore. 😭

Options:

  • --help β€” Display help message
  • --config=s β€” Use a nonstandard config file
  • --common_config=s β€” Override path to Common_Config directory
  • --common_content=s β€” Override path to Common_Content directory
  • --nocolours β€” Disable ANSI colourisation of logging.
  • --quiet β€” Disable all logging.
  • --brand_dir=s β€” Directory to source brand files from.

🌟 copy_web_brand

Copy a brand's installed web content to another site. sharing is caring, no cap. 🫢

Options:

  • --help β€” Display help message
  • --config=s β€” Use a nonstandard config file
  • --common_config=s β€” Override path to Common_Config directory
  • --common_content=s β€” Override path to Common_Content directory
  • --nocolours β€” Disable ANSI colourisation of logging.
  • --quiet β€” Disable all logging.
  • --brand_dir=s β€” Directory to source brand files from.
  • --brand=<BRAND> β€” The brand to use
  • --site_config=<SITE_CONFIG> β€” WebSite configuration file to use or create.
  • --old_site_config=<OLD_SITE_CONFIG> β€” WebSite configuration file to use when copying content between sites.

πŸ‘‘ create

Create a new book, set, or article. birthing a whole new piece of content, main character energy only. ✨

Options:

  • --help β€” Display help message
  • --config=s β€” Use a nonstandard config file
  • --common_config=s β€” Override path to Common_Config directory
  • --common_content=s β€” Override path to Common_Content directory
  • --nocolours β€” Disable ANSI colourisation of logging.
  • --quiet β€” Disable all logging.
  • --brand_dir=s β€” Directory to source brand files from.
  • --name=<NAME> β€” The name of the book, article, set, or brand
  • --version=<VERSION> β€” The version of the product
  • --edition=<EDITION> β€” The edition of the book, article, or set
  • --product=<PRODUCT> β€” The name of the product
  • --brand=<BRAND> β€” The brand to use
  • --lang=<LANG> β€” The language the XML will be written in
  • --type=<TYPE> β€” The type (book, article, or set)
  • --dtdver=<DTDVER> β€” The version of the DocBook DTD to use

πŸ’œ create_brand

Create a new brand. aesthetic time. 🎨

Options:

  • --help β€” Display help message
  • --config=s β€” Use a nonstandard config file
  • --common_config=s β€” Override path to Common_Config directory
  • --common_content=s β€” Override path to Common_Content directory
  • --nocolours β€” Disable ANSI colourisation of logging.
  • --quiet β€” Disable all logging.
  • --brand_dir=s β€” Directory to source brand files from.
  • --name=<NAME> β€” The name of the book, article, set, or brand
  • --lang=<LANG> β€” The language the XML will be written in

🌈 create_site

Create a new WebSite in the supplied location. building your own little corner of the internet, obsessed. πŸ’–

Options:

  • --help β€” Display help message
  • --config=s β€” Use a nonstandard config file
  • --common_config=s β€” Override path to Common_Config directory
  • --common_content=s β€” Override path to Common_Content directory
  • --nocolours β€” Disable ANSI colourisation of logging.
  • --quiet β€” Disable all logging.
  • --brand_dir=s β€” Directory to source brand files from.
  • --site_config=<SITE_CONFIG> β€” WebSite configuration file to use or create.
  • --db_file=<DB_FILE> β€” Override default database file.
  • --toc_path=<TOC_PATH> β€” Override the default TOC path.
  • --tmpl_path=<TMPL_PATH> β€” Override the default template path.
  • --lang=<LANG> β€” The language the XML will be written in

🧚 help_config

Display help text for the configuration file. the config file got its own help text, she's that important. πŸ’…

Options:

  • --help β€” Display help message
  • --config=s β€” Use a nonstandard config file
  • --common_config=s β€” Override path to Common_Config directory
  • --common_content=s β€” Override path to Common_Content directory
  • --nocolours β€” Disable ANSI colourisation of logging.
  • --quiet β€” Disable all logging.
  • --brand_dir=s β€” Directory to source brand files from.

πŸ› οΈ install_book

Installs a book into a WebSite. Yes bestie, it's literally what it says on the tin. πŸ’–

Options:

  • --help β€” prints the help message, your lil safety net 🫢
  • --config=s β€” use a config file that isn't the standard one
  • --common_config=s β€” override the path to the Common_Config directory
  • --common_content=s β€” override the path to the Common_Content directory
  • --nocolours β€” turns OFF the ANSI colourisation of logging (so your terminal stays monochrome, boring but valid)
  • --quiet β€” kills all logging. silence. 🀫
  • --brand_dir=s β€” the directory to source brand files from
  • --site_config=<SITE_CONFIG> β€” the WebSite configuration file to use, or to create if it doesn't exist yet ✨
  • --lang=<LANG> β€” the language the XML will be written in

πŸŽ€ install_brand

Installs a brand to the location you hand it. Drop the brand off, no questions asked. πŸ’…

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from
  • --path=<PATH> β€” literally /path/to/install/to, the exact spot it goes πŸ‘‘
  • --web β€” install the web content for a brand
  • --pub_dir=<PUB_DIR> β€” directory to publish files to. defaults to publish.

πŸ“Š lang_stats

Reports PO statistics, no cap. Numbers, counts, the whole tea. πŸ“

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from
  • --lang=<LANG> β€” the language the XML will be written in

πŸ¦‹ migrate_site

Migrates a website DataBase from Publican < 3 to Publican 3. It's giving glow-up, it's giving era change. ✨

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from
  • --site_config=<SITE_CONFIG> β€” WebSite configuration file to use or create

πŸ“¦ package

Packages a language for shipping. Wrapping it up cute so it can travel. 🎁

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from
  • --lang=<LANG> β€” the language the XML will be written in
  • --desktop β€” create a desktop package instead of a web package
  • --brew β€” push the SRPM to brew 🍺
  • --scratch β€” use scratch instead of a tag build
  • --short_sighted β€” create the package without using the version in the package name
  • --binary β€” build a binary rpm when running package
  • --wait β€” wait for brew to finish building (patience era πŸ™ˆ)
  • --pub_dir=<PUB_DIR> β€” directory to publish files to. defaults to publish.

Prints a list of banned DocBook tags. The naughty list, fr fr. πŸ’€

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from

Prints a list of QA'd DocBook tags β€” the ones that already passed the vibe check. 🌈

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from

Prints a tree of the xi:includes. Look at the branches bestie, they're so organized. 🌸

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from

Prints a list of unused XML files. The ones nobody invited to the party. 😭

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from

Prints a list of unused Image files. Same energy as above but for the pictures. πŸŽ€

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from

❌ remove_book

Removes a book from a WebSite. Un-inviting it, respectfully. πŸ’”

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from
  • --site_config=<SITE_CONFIG> β€” WebSite configuration file to use or create
  • --lang=<LANG> β€” the language the XML will be written in

πŸ’« rename

Renames a publican book. New name, new era, same content. ✨

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from
  • --name=<NAME> β€” the name of the book, article, set, or brand
  • --product=<PRODUCT> β€” the name of the product
  • --version=<VERSION> β€” the version of the product

πŸ“– report

Prints a readability report for the source text. It's judging your sentences (lovingly). πŸ‘‘

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from

πŸ“ˆ site_stats

Reports on the contents of a WebSite. The whole site's stats, the receipts. 🧚

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from
  • --site_config=<SITE_CONFIG> β€” WebSite configuration file to use or create

πŸ“Έ trans_drop

Snapshots the source language for use in translation. Literally a little photo of your text for the translators. πŸ’–

Options:

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from

πŸ—„οΈ update_db

Adds or removes database entries. Used for processing pre-build books, such as when building packages.

Options for this one πŸ’…

  • --help β€” show the help message, like a little manual for the manual 🫢
  • --config=s β€” use a config file that is not the standard one
  • --common_config=s β€” override the path to the Common_Config directory
  • --common_content=s β€” override the path to the Common_Content directory
  • --nocolours β€” turn OFF the ANSI colourisation of logging (sad, but okay)
  • --quiet β€” disable all logging, silence era πŸŽ€
  • --brand_dir=s β€” directory to source brand files from
  • --site_config=<SITE_CONFIG> β€” the WebSite configuration file to use or create
  • --add β€” add a database entry βž•
  • --del β€” delete a database entry πŸ—‘οΈ
  • --lang=<LANG> β€” the language the XML will be written in
  • --product=<PRODUCT> β€” the name of the product
  • --version=<VERSION> β€” the version of the product
  • --name=<NAME> β€” the name of the book, article, set, or brand
  • --formats=<FORMATS> β€” comma-separated list of formats, for example: html,pdf,html-single,html-desktop,txt,epub
  • --subtitle=<SUBTITLE> β€” sub title for a book
  • --abstract=<ABSTRACT> β€” abstract for a book
  • --product_label=<PRODUCT_LABEL> β€” product label for a book
  • --version_label=<VERSION_LABEL> β€” version label for a book
  • --name_label=<NAME_LABEL> β€” name label for a book
  • --sort_order=<SORT_ORDER> β€” order to sort a book
  • --book_version=<BOOK_VERSION> β€” the version number of the book being installed
  • --book_src_lang=<BOOK_SRC_LANG> β€” the language this translation is based on

update_po πŸ¦‹

Update the PO files. Translation upkeep, bestie, it's giving multilingual ✨

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from
  • --langs=<LANGS> β€” comma-separated list of languages, for example: en-US,de-DE,all
  • --msgmerge β€” use gettext's msgmerge for POT/PO merging
  • --firstname=<FIRSTNAME> β€” firstname to use for a revision
  • --surname=<SURNAME> β€” surname to use for a revision
  • --email=<EMAIL> β€” email to use for a revision
  • --previous β€” keep previous msgid when fuzzy matches are detected in PO updates

update_pot πŸŽ€

Update the POT files. The template files, the blueprint era, no cap πŸ’–

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from

update_site 🌸

Update an existing site's templates.

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from
  • --site_config=<SITE_CONFIG> β€” WebSite configuration file to use or create

zt_pull 🧚

Pull translations from Zanata. Bringing the translations home, lowkey iconic 🫢

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from

zt_push ⭐

Push translations to Zanata. Sending your translations out into the world, main character energy fr fr ✨

  • --help β€” display help message
  • --config=s β€” use a nonstandard config file
  • --common_config=s β€” override path to Common_Config directory
  • --common_content=s β€” override path to Common_Content directory
  • --nocolours β€” disable ANSI colourisation of logging
  • --quiet β€” disable all logging
  • --brand_dir=s β€” directory to source brand files from

CONFIGURATION AND ENVIRONMENT 🌈

Publican needs access to wkhtmltopdf or Apache FOP if you wanna make PDF files. That's the vibe check for PDFs, bestie β€” no wkhtmltopdf, no FOP, no PDF, periodt πŸ’€


DEPENDENCIES πŸ‘‘

Here's the whole squad, the entire entourage, every single one of them:

Archive::Tar Archive::Zip Carp Config::Simple Cwd DBI DateTime DateTime::Format::DateParse Devel::Cover Encode File::Basename File::Copy::Recursive File::Find File::Find::Rule File::HomeDir File::Inplace File::Path File::Spec File::Which File::pushd Getopt::Long HTML::FormatText HTML::FormatText::WithLinks HTML::FormatText::WithLinks::AndTables HTML::TreeBuilder I18N::LangTags::List IO::String Lingua::EN::Fathom List::MoreUtils List::Util Locale::Language Locale::Maketext::Gettext Locale::Maketext::Lexicon Locale::Msgfmt Locale::PO Module::Build Pod::Usage Sort::Versions String::Similarity Syntax::Highlight::Engine::Kate Template Template::Constants Term::ANSIColor Test::More Test::Pod Test::Pod::Coverage Text::CSV_XS Text::Wrap Time::localtime XML::LibXML XML::LibXSLT XML::Simple XML::TreeBuilder version

Like… that's a LOT of friends and we love every single one of them πŸ₯ΉπŸ’œ


INCOMPATIBILITIES πŸ’€

None reported. Zero drama. We're unproblematic, and that's on periodt βœ‹βœ¨


BUGS AND LIMITATIONS πŸ›

The bug list lives at <https://bugzilla.redhat.com/buglist.cgi?product=Publican&query_format=advanced&resolution=--->.

If you spot a bug, or you're just dying for a feature, please report it to publican-list@redhat.com, or through the web interface at <https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Publican&component=publican&version=$version>. We wanna hear it, bestie 🫢

AUTHOR πŸŽ€

Jeff Fearn <jfearn@redhat.com> β€” icon, legend, the moment πŸ‘‘


okay so that's the whole page, bestie, you made it to the end πŸŽ‰ and yeah, this was written for perl v5.42.0, dated 2025-07-25, and it's the PUBLICAN(1) manual β€” go forth and document, slay πŸ’…πŸ’–βœ¨

πŸ“¦ where this page comes from