
By William Jeffrey Rankin, Sat Nov 29 2025
Have you just downloaded Hua and are wondering how to get started? Here's how you can create your first article!
First, copy and paste the code of this minimal article into a file named hua-first.md. Put the file in Hua's content directory.
Next, open entries.csv in Hua's root directory in a text editor and add this line at the end of the file:
000050,My First Article!,hua-first.md,tag|another,11/29/2025,Author Name,mailto:someone@email.com
Now open meta.csv and add this line (this step is optional, by the way):
000050|tag, article, Hua|This is my first article!
You're nearly there! Open a command shell or terminal, navigate to your Hua directory, and type the following:
pwsh hua.ps1 example.cfg
The output will look something like this. Don't worry about the errors (unless it mentions your article specificially) — these are present to demonstrate Hua's error handling.
Content file error. File (ID: 000047) is empty. Skipping.
Content file error. File (ID: 000045) is empty. Skipping.
Entries file error. There is an entry (ID: 000040) without a filename. Skipping.
Entry content error. Entry content file path set as .\content\missing-2.md. Skipping.
Entry content error. Entry content file path set as .\content\missing-1.html. Skipping.
Related article error in 000020. Article ID 000017 does not exist. Ignoring.
Entries file error. There is an entry without an ID. Skipping.
Finally, open the blog directory. It will contain the newly generated file, hua-first.html. The article will also appear in index.html, the tagged with files, and archive.html. That's it!
By William Jeffrey Rankin, Sun Aug 3 2025
Revision 294 of Hua supports automatic generation of related articles. Simply append one or more IDs to the appropriate article in the entries file. Here's an example from this blog:
00165,planet-rs Improvements,prs-improvements.md,development|astronomy,Sat Jul 26 2025,William Jeffrey Rankin,mailto:jeffrey.rankin@me.com,00031|00032|00090
Articles are listed in the same order they appear in the entry. Hua will display (and log) a warning should the related article ID not exist in the entries file:
Related article error in 000020. Article ID 000017 does not exist. Ignoring.
By William Jeffrey Rankin, Sat Jul 26 2025
I've made a few improvements to my shell-script interface for aa (Stephen L. Moshier's astronomical almanac program):
XML is now included among the output formats (csv, html, xml, ps, raw, and table). It's specified just like any of the others:
jrankin@Callisto: ~/planet-rs $ ./planet-rs.sh Sun.txt xml -4 EDT
<?xml version="1.0" encoding="UTF-8"?>
<rs input_file="/tmp/planet-rs-year.QTaHZtMVQ">
<day>
<date>10/01/2025</date>
<rise>07:33 EDT</rise>
<set>19:18 EDT</set>
</day>
<day>
<date>10/02/2025</date>
<rise>07:34 EDT</rise>
<set>19:16 EDT</set>
</day>
<day>
<date>10/03/2025</date>
<rise>07:35 EDT</rise>
<set>19:15 EDT</set>
</day>
...
An XSLT is included (fmt-html.xsl) to transform the XML to HTML.
The shell script year.sh outputs all formats (and all objects) for the designated year (if year is not specified, current year is output). Example usage and output:
jrankin@Callisto: ~/planet-rs $ ./year.sh
Generating JAN files...
...for 0 (csv)
...for 0 (raw)
...for 0 (html)
...for 0 (table)
...for 0 (ps)
...for 0 (ps to pdf)
...for 0 (xml)
...for 2 (csv)
...for 2 (raw)
...for 2 (html)
...for 2 (table)
...for 2 (ps)
...for 2 (ps to pdf)
...for 2 (xml)
...
Files are output to directory by format and named according to (YYYY)-(MMM)-(object).(format).
planet-rs.tar.gz, 5.8K
By William Jeffrey Rankin, Sat May 10 2025
This PowerShell script uses the systeminfo command to produce an HTML report (sample) containing system information. It also calculates the system's uptime. By default, only a subset of attributes from systeminfo are included in the report. To include more, simply modify the following line:
$attrs = 'System Model:', 'System Manufacturer:', 'OS Name:', 'OS Version:', 'System Boot Time:', 'Total Physical Memory:', 'Available Physical Memory:'
In the example below, the script generates a file called report.html. If no output filename is specified, the script generates output.html.
pwsh ./sysinfoweb.ps1 report.html
SysInfoWeb.zip, 1.7K
By William Jeffrey Rankin, Sat Mar 22 2025
I recently upgraded my TeX Live installation from 2024 to 2025. My method differs slightly from the upgrade instructions on the TeX Live web site, but I've had no issues doing it this way the past few years. Rather than copying the installation to a new directory, I simply move it (I have limited space on my Linux VM and the TeX Live install is nearly 12 gigabytes). To start:
cd /usr/local/texlive
sudo mv 2024 2025
Next, modify paths to reflect the location of TeX Live to /usr/local/2025. For me, this means modifying my .bashrc and using visudo to update the path for sudoers.
Now, download the update-tlmgr-latest.sh script provided on the upgrade instructions page, make it executable, and run it.
Finally, upgrade as usual using sudo tlmgr update --list and sudo tlmgr update --all. That's it, you're done!