BuildCart - Release Notes


Copyright 2023-2024 by The Software Samurai.
On the web: http://www.SoftwareSam.us/
Software released under GNU GPL3, and documentation released under FDL1.3
This document describes version 0.0.01 of BuildCart.


Description

The Build Cartouche (‘BuildCart’) utility is a GNU/Linux console application which can be used to convert any block of text into a formatted text block enclosed within a border.

This application was designed under Fedora Linux and is built using the GNU C compiler,
version 13.3.1 or higher (C++17 support required).
If you are not using GCC, then verify that your compiler fully supports the C++17 standard.



Cartouche: A type of shen ring, which is an oval border surrounding and protecting its contents. This was originally used to enclose the name of an Egyptian royal person. Later the word cartouche was used to describe the area of a map enclosing the name of the cartographer. Thus, using the cartouche in your documents makes you royalty (or at least a cartographic artist). Welcome to BuildCart, your Royalness!


Building From Source



Operational Overview

The BuildCart application's user interface is “fire-and-forget”; that is, application control is entirely through the specified command-line options, and direct user interaction is not required.

The source text may be specified directly on the command line, or may be read from a file.
Text may be pre-formatted, meaning that the cartouche border will be drawn around the text without modifying the text in any way. Alternatively, the text can be automatically reformatted to fit within a specified column width and row height, and the cartouche border will then be drawn around the reformatted block.
The application accepts source text up to 16Kbytes of UTF-8 data. This is equivalent to at least one full typewritten page of text.

Output is written to the terminal window, which may then be highlighted using the mouse, and copied (SHIFT+CTRL+C) to the clipboard. It may then be pasted into any open document, presumably the source document for your documentation project.
Optionally, the output may also be written to a target file.

It is recommended that the generated object be placed in one of the Texinfo block text constructs; either a “@verbatim” block or an “@example” block.
Note that in the example shown here, the generated cartouche object is used for non-HTML output, while the HTML output takes advantage of the automatically-generated cartouche object created through the Texi macro “CartHtml” defined in the author's Infodoc package.

@ifnothtml @example ┌────────────────────────────────────────────────┐ │ Outside of a dog, a book is man's best friend. │ │ Inside of a dog, it's too dark to read. │ │ -- Groucho Marx │ └────────────────────────────────────────────────┘ @end example @end ifnothtml @ifhtml @CartHtml{Outside of a dog, a book is man's best friend. Inside of a dog, it's too dark to read. – Groucho Marx} @end ifhtml


The current BuildCart release is a stand-alone application; however, this functionality will be integrated into the Infodoc Styles package once the algorithm is stable.

This application relies heavily on our gString text-analysis tool which parses the source data, reformats the data to the specified dimensions, and then almost effortlessly draws the border around the text block.
For a full discussion of the gString class, please see the documentation for the author's NcDialog API package, or the stand-alone gString text-analysis-and-formatting package. gString Documentation


Command-line Options

Invocation:    bcart [OPTIONS]




Notes on the current release of “BuildCart”

The files included in this release.
BuildCart/ // Source code directory BuildCart.hpp // Application class definition BuildCart.cpp // Application source code gString.hpp // Text analysis engine (definition) gString.cpp // Text analysis engine (implementation) Makefile // Build the 'bcart' application README // Package description, release notes

Note: The change log is located in the header of “BuildCart.cpp”.



  These notes are adapted from the “README” file included with the application archive.
  Thank you, and we hope you enjoy using this application!  — Software Sam

(Yes, this is an HTML cartouche!)