From 4e564b086a3cd5096b5d993f7e53b17574caf5db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= Date: Wed, 2 Dec 2020 00:16:10 +0100 Subject: Update style --- Makefile | 2 +- index.html | 36 +++++++++---------- mh | 119 ------------------------------------------------------------- 3 files changed, 19 insertions(+), 138 deletions(-) delete mode 100755 mh diff --git a/Makefile b/Makefile index 6709bbf..c5ad251 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,2 @@ index.html: ../master/mht.1 - mandoc -T html -O fragment $< > $@ + man -T html -O fragment $< | sed 's/

+

mht
troff for HTML
-

+

@@ -21,7 +21,7 @@
mht
-

+

mht is a utility that generates HTML from troff(1) source code.

While mht is named like a troff macro @@ -30,7 +30,7 @@ requests.

-

+

This section describes the various types of requests supported by mht. On the left side are the name and arity of each request, separated by a slash. On the right side is the HTML expansion of each @@ -44,24 +44,24 @@ This section describes the various types of requests supported by outside of the area delimited by braces ({...}) is removed when two of the same contiguous element requests are placed next to one another.

-

+

br/0
<br/>
-

+

Qp/0
<blockquote>{<p>%</p>}</blockquote>
-

+

Pp/0
<p>%</p>
@@ -76,8 +76,8 @@ This section describes the various types of requests supported by
-

+

Au/1
<meta name="author" content="\$1"/>
@@ -136,16 +136,16 @@ This section describes the various types of requests supported by
-

+

mht is written by John Ankarström <john (at) ankarstrom.se>.
- +
- +
December 2, 2020Linux 5.4.72-0-ltsLinux 5.4.72-0-lts
diff --git a/mh b/mh deleted file mode 100755 index cae73bf..0000000 --- a/mh +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/perl - -use v5.12; -use warnings; - -use Text::ParseWords qw/quotewords/; - - -# 1 Definitions - - -# 1.1 Global program state - -my $empty = ''; # currently buffered empty lines -my $opel = ''; # currently opened element - - -# 1.2 Elements - -# 1.2.1 Block elements -my %blels = ( - Pp_0 => '

%

', - Qp_0 => '

%

', - Pr_0 => '
%
', - Sh_0 => '

%

', - Sh_1 => '%', - Ti_0 => '%', -); - -# 1.2.2 Inline elements -my %inels = ( - Au_1 => '', - Bd_0 => '\\$3\\$1\\$2', - br_0 => '
', - Cd_0 => '\\$3\\$1\\$2', - Cs_1 => '', - Em_0 => '\\$3\\$1\\$2', - Hy_0 => '\\$1', - Im_0 => '\\$2', - It_0 => '\\$3\\$1\\$2', - St_0 => '\\$3\\$1\\$2', - Tt_0 => '\\$3\\$1\\$2', - Ul_0 => '\\$3\\$1\\$2', -); - - -# 1.3 Subroutines - -# 1.3.1 Handle element request -sub request { - my ($el, $args) = @_; - my @argv = quotewords('\s+', 0, $args); - my $n = @argv; - my $elkey = "${el}_$n"; - - if (exists $blels{$elkey}) { - # Clear empty line buffer - $empty = ''; - - # Close currently open block element, open new - if (exists $blels{$opel}) { - print end($blels{$opel}) . "\n"; - $opel = ''; - } - $opel = $elkey; - - print interpol(start($blels{$elkey}), @argv) . "\n"; - } elsif (exists $inels{$elkey}) { - print interpol($inels{$elkey}, @argv) . "\n"; - } else { - print STDERR "Error: $el/$n not implemented\n"; - exit 1; - } -} - -# 1.3.2 Interpolate \$n parameters -sub interpol { - my $s = shift; - my $i = 1; - my $arg; - while ($arg = shift) { - $s =~ s/\\\$$i/$arg/g; - $i++; - } - return $s; -} - -# 1.3.3 Retrieve first portion of block element string -sub start { - return (split '%', shift)[0]; -} - -# 1.3.4 Retrieve second portion of block element string -sub end { - return (split '%', shift)[1]; -} - - -# 2 Program - - -# 2.1 Translate mh source text to HTML -while (<>) { - chomp; - if (/^\.([A-Za-z][a-z])\s*(.*)/) { - request($1, $2); - } elsif ($_ eq '') { - $empty .= "\n"; - } else { - print $empty; $empty = ''; - print "$_\n"; - } -} - -# 2.2 Close currently open block element -if (exists $blels{$opel}) { - print end($blels{$opel}) . "\n"; - $opel = ''; -} -- cgit v1.2.3