HOME (Nederlands)     HOME (English)

Hypertxt tutorial

Voorbeelden - snelkoppelingen

Voorbeeld 1 simpele voorbeelden
Voorbeeld 2 gekleurde tekst
Voorbeeld 3 headers
Voorbeeld 4 & als escape-symbool
Voorbeeld 5 het % teken als bijzonder teken
Voorbeeld 6 het % teken letterlijk nemen
Voorbeeld 7 de functie
Voorbeeld 8 tabellen
Voorbeeld 9 invulformulieren
Voorbeeld 10 afbeeldingen
Voorbeeld 11 een animated gif
Voorbeeld 12 sans-serif tekst op achtergrondkleur beige
Voorbeeld 13 groene serif tekst
Beperkingen van hypertxt
Usage informatie
Historische versies
Compilatie van hypertxt
Literatuur
Contactadres

Het principe van hypertxt

De input van hypertxt is een tekstfile in het algemeen met de extensie ".cfg" waarvan het eerste symbool van elke regel bepaalt hoe de rest van die regel wordt geïnterpreteerd.

Niet alle mogelijkheden van hypertxt worden hier behandeld. Zie hiervoor de complete usage informatie verkregen door hypertxt zonder argument uit te voeren, hieronder weergegeven.

De volgende links werken in elk geval in Firefox. Je kunt de files downloaden.
Gebruik de ⇦ button om terug te keren naar deze pagina.
index.cfg voorbeeld1.cfg
voorbeeld2.cfg voorbeeld3.cfg
voorbeeld4.cfg voorbeeld5.cfg
voorbeeld6.cfg voorbeeld7.cfg
voorbeeld8.cfg voorbeeld9.cfg
voorbeeld10.cfg voorbeeld11.cfg
voorbeeld12.cfg voorbeeld13.cfg

Aanroepen van hypertxt

Hypertxt kent verschilende opties, hier beperken we ons tot -h waarmee HTML-pagina's gegenereerd worden.
De optie -b is hieraan gelijk met dit verschil dat de output geen HTML-file is maar beperkt is tot het <BODY> gedeelte daarvan.
Voer uit (aangepast an de situatie):

    mkdir ../html
    mkdir ../upload
    hypertxt -h naam.cfg W. > ../html/naam.html
    hypertxt -h naam.cfg Whttp://www.mywebsite.nl > ../upload/naam.html

Wil je alleen wat uit wilt proberen en gebruik je %W niet dan kan

    hypertxt -h test.cfg > test.html

of zelfs

    echo '....' | hypertxt -h - > test.html

natuurlijk ook.

Het kan zijn dat je hierbij een foutmelding ziet. Eén of meer cfg-files of files die daarin worden aangeroepen moeten dan aangepast worden.
Hypertxt stopt bij een fout. De output is dan niet bruikbaaar. De betekenis van de 85 mogelijke foutmeldingen is niet altijd direct helder.
Door het eind van ../html/naam.html in een teksteditor op te zoeken is meestal te achterhalen waar de schoen wringt.
Bekijk bij succes ../html/naam.html met Firefox.
Corrigeer zo nodig naam.cfg en voer hypertxt opnieuw uit.
Je kunt zo vaak je wilt correcties aanbrengen. Aan http://www.mywebsite.nl verandert nog niets.
Des gewenst kan ../html/naam.html aangeboden worden aan http://validator.w3.org/#validate_by_upload .
Geeft deze het groene licht dan voldoet ook ../upload/naam.html aan de W3C standaard en zal door alle browsers die zich immers ook conformeren aan deze HTML standaard correct worden weergegeven. Hoe dat precies gebeurt hangt af van de instellingen van de browser.
Tenzij je al te creatief bent, zal hypertxt een geldinge HTML-file opleveren.
Kies je een bijzonder effect, bij voorbeeld een tekstblok in vet cursief, dan wordt je geacht dat ook weer uit te zetten. Vergeet je dat dan zal hypertxt dat in de meeste gevallen voor jou doen aan het eind van de <BODY> tekst of aan het eind van een cel in een tabel. Daardoor voldoet de gegenereerde HTML-file weer aan de W3C norm.

Ten slotte kan ../upload/naam.html dan geupload worden zodat het op het internet te vinden is.
Dit kan op twee manieren, als je één van de 1000000+ klanten van One.com bent.
• Met de File Manager
Ga naar https://www.one.com/nl/ kies configuratiescherm en login met het e-mail adres en het (nieuwe) wachtwoord. Scroll naar beneden, kies File Manager en upload.
Let er op dat je de resultaten uit de directory ../upload, niet uit ../html gebruikt.
• Met ftp
Enable port 20 and 21 als je een firewall met port security gebruikt.
    ftp ftp.mywebsite.nl
>user mywebsite.nl
>passwrd ************

De belangrijkste commandos zijn: lcd, cd, pwd, !pwd, ls, !ls -l, prompt, mput, quit en niet te vergeten help.

FTP tutorial

Op het internet is uitleg over ftp te vinden.

De man-page zoals die ook op een UNIX/Linux computer staat
http://linux.about.com/od/commands/l/blcmdl1_ftp.htm
Uitleg met schermvoorbeelden
http://cs.baylor.edu/~donahoo/classes/tutorials/ftp/ftp.html
En het officiële protocol met Backus-Naur syntax
http://www.w3.org/Protocols/rfc959/

Make

Een website bestaat meestal uit meerdere HTML-bestanden, afbeeldingen (jpg- , png- of gif-bestanden) en documenten (meestal PDF-bestanden).
We kunnen dat in één keer voorbereiden met behulp van het programma make . In de praktijk blijkt de Cygwin of een Linux versie van make beter te voldoen dan de versie van UnxUtils , hoe nuttig doe ook zijn voor een Windows® PC.

Make verwerkt de instructies die in een makefile staan. In principe maakt make alleen die bestanden (targets) die niet up-to-date zijn. Wij laten make alle bestanden voor de website maken door te beginnen met twee lege directories (folders): ../html en ../upload .
Het enige verschil daartussen is dat ../html de website bevat die lokaal kan worden getest en gevalideerd door http://validator.w3.org/#validate_by_upload en dat ../upload de zelfde bestanden bevat die op internet kunnen worden gezet.
Een voorbeeld van zo'n makefile kunt u hier lezen.

Simpele voorbeelden

Voorbeeld 1 top
2grote header
tDit is platte tekst
icursief(italic)
bvet (bold)
3kleine header
i
b
tcursief vet
b
i
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html#1 TERUG

voorbeeld 1

In plaats van t als eerste symbool kan ook de Tab gebruikt worden. Gemakkelijk bij automatische indentatie, zoals bij vi.
Een spatie als eerste symbool is niet toegestaan.
Lege regels worden genegeerd.
Er wordt geen onderscheid gemaakt tussen Windows/DOS en UNIX/Linux stijl regelbeëindiging.
HTML (d.w.z. de browser) negeert het einde van de regel zelfs in zijn geheel en nieuwe regels op de webpage moeten dan ook altijd expliciet worden aangegeven, bijvoorbeeld met een break <br> , in de cfg-file een ; aangeduid optioneel gevolgd door een herhalingsteller (default 1) of door een header.

Er zijn een aantal shortcuts die het invoeren van frequent terugkerende structuren vereenvoudigen, zoals
ntekst equivalent aan tekst gevolgd door een break.
Mtekst equivalent aan een break, een bullet gevolgd door tekst.

De laatste regel beginnend met e maakt een (externe) link aan naar de aangegeven URL. De ondersteepte blauwe tekst is alles wat achter de spatie staat. Ontbreekt die dan wordt het volledige pad weergegeven.

De drie tekstregels worden in voorbeeld 1 dus achter elkaar weergegeven. We kunnen dat anders doen en tegelijk laten zien hoe je een stukje tekst een kleur geeft (default is zwarte tekst op een witte achtergrond, maar beide kunnen voor een gehele webpagina worden aangepast. zie Voorbeeld 12 en Voorbeeld 13 )

Voorbeeld 2 top
:color=red
trode tekst
;
took rood
:
;
tweer zwart
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html#2 TERUG

voorbeeld 2

Alternatieven

Headers

Headers worden het gemakkelijkst aangegeven het symbool 1 t/m 6 gevolgd door de tekst. Spaties direct achter dit cijfer hebben geen effect. Het is op deze manier niet mogelijk de header en afwijkende kleur te geven of er een hyperlink aan te koppelen.
Dit kan wel door de eigenlijke header in te sluiten tussen het cijfer wat de groote van de header aangeeft. Vergeet dan niet platte tekst vooraf te laten gaan door een t of Tab .
Tenslote is het nog mogelijk de HTML-code voor een header expliciet aan te geven.

Voorbeeld 3 top
1Header size 1
2Header size 2
3Header size 3
3
:color=red
<TAB>Header size 3 in rood
:
3
3
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html Header size 3 met link naar index.html
3
&<h3>Header size 3 ingevoerd als HTML-code</h3>
4Header size 4
5Header size 5
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html#3 TERUG

voorbeeld 3

& is voor hypertxt het escape symbool. Het kan gebruikt worden om bijzondere symbolen weer te geven, er zijn duizenden mogelijkheden.

Voorbeeld 4 top
&Politie &#9742; 0900-8844
;
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html#4 TERUG

voorbeeld 4

Hypertxt zal klinkers met diacritische tekens en dergelijke goed weergeven, dat wil zeggen automatisch omzetten naar de corresponderende HTML escape-sequence. Ook de karakters <, > en & worden omgezet omdat die in HTML een bijzondere betekenis hebben.
Zie hypertxt -e voor een eerste overzicht.

Hierarchische opbouw

Het is mogelijk in een cfg-file een andere cfg-file in te voegen. Zoals bij alle resursieve procedures moet je ook hier waken voor oneindige regressie.

Met hypertxt ... verbose verbose zie je precies wat er gebeurt.

Ook is het mogelijk een tekst-file "as is" of met interpretatie van het % teken op te nemen in de cfg-file.

Het % teken

Het % teken met één of meer daarop volgende tekens zal echter wordt door hypertxt geinterpreteerd worden, tenzij deze is uitgeschakeld. Het % teken zelf wordt dan ingevoerd als %%. Er zijn gevallen waarin dat niet nodig is, maar het is altijd veilg om dat zo te doen.
De meest gebruikte gevallen zijn:

Voorbeeld 5 top
atop top
;
%string
vanother string
n%%A wordt %A
n%%I wordt %I
n%%J wordt %J
n%%K wordt %K
n%%S wordt %S
n%%V wordt %V
n%%W wordt %W
n%%%% wordt het % teken zelf
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html#5 TERUG

voorbeeld 5

Een enkele & aan het begin van de regel heeft een ander effect namelijk het uit- en inschakelen van de bijzondere interpreatie van het % teken in de cfg-file.

Voorbeeld 6 top
2voorbeeld van werken met % teken
&
4%N
4%N
&
4%N
4%N
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html#6 TERUG

voorbeeld 6

Een bijzonder geval is een % teken gevolgd door een spatie of een % teken aan het eind van een regel. Deze worden altijd geïnterpreteerd als een enkel % teken. Merk op dat daar even goed %% mag staan.

De functie

Hypertxt kan precies één macrofunctie uitvoeren waarvan de definitie is ingesloten tussen F en E . Het is logisch de functiedefinitie bovenaan te zetten, maar dat hoeft niet.

De functie kan daarna onbeperkt aangeroepen worden ! gevolgd door 0, 1 of 2 argumenten. Het eerste argument is altijd één woord, het tweede kan uit meerdere woorden bestaan. De argumenten vervangen de escapesequences respectievelijk uit de functiedefinitie. Doordat ok de andere escapesequences in de functiedefinitie gebruikt kunnen worden, is het een krachtig hulpmiddel.

Voorbeeld 7 top
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html#7 TERUG
!Appels Appels zijn groen.
!Bananen Bananen zijn geel.
!Appels Appels zijn ook wel geel.
!Bananen Bananen zijn soms nog groen.
F
2%B
t%C
;
<TAB>Eet meer fruit!
E

voorbeeld 7

De huidige versie van hypertxt voorziet niet in conditional branching.

HTML-foefjes

Titel

Als je niets doet zal de browser de filenaam als titel gebruiken. Met T een titel kun je zelf een titel opgeven. De titel mag niet leeg zijn.

Favicon

Een favicon is een kleine (16x16 pixels) afbeelding in een speciaal format die gebruikt wordt in de history en bookmarks van de browser om de webpage beter terug te kunnen vinden.
De verwijzing naar een favicon moet in de tag <HEAD> van de HTML-file worden opgenomen. Bij voorbeeld met
H<link rel="shortcut icon" href="%W/favicon.ico" type="image/x-icon">

Met TheGimp http://www.gimp.org/downloads/ is een favicon.ico gemakkelijk te maken.
• Create New image van 16 bij 16 pixels.
• Ontwerp of kopieer je logo.
• Save met de extensie ".ico" als 32 bpp, uncompressed.

Commentaar

Soms is het handig een regel in een cfg-file tijdelijk niet te gebruiken of commentaar toe te voegen.
Dat kan door de regel met een # te beginnen.
Bedenk echter dat deze regel wel als HTML-commentaar (<!-- -->) in he gegenereerde HTML-file zal opduiken.
Wil je dat vermijden, dan kun deze regels uitfilteren:
    grep -v '^#' test.cfg | hypertxt -h - > test.html

Links en anchors

We hadden al in de voorbeelden gezien dat
eURL[#anchornaam]   [verwijzende tekst]
gebruikt kan worden om naar een willekeurige andere webpagina te verwijzen.
Let er daarbij op dat de URL volledig is, dus niet buienradar.nl maar http://www.buienradar.nl en dat er geen spaties in voor mogen komen. Gebruik %20 in plaats van een spatie is wel toegestaan.

Wordt een anchornaam gebruikt, dan moet die ook in de HTML-file te vinden zijn. We kunnen dit bereiken met
aunieke_anchornaam   [optionele tekst]

Binnen een document kan er ook eenvoudig naar verwezen worden met
lunieke_anchornaam   toelichtende tekst

In plaats van e kan ook tweemaal j gebruikt worden. Dat geeft meer mogelijkheden, bijvoorbeeld een aanklikbare afbeelding of bij het gebruik van JavaScript.
Ook kun je daarmee een website openen in een nieuwe tab:
jhttp://www.google.nl target="_blank"
tGoogle
j

Dit kan afgekort worden tot
jhttp://www.google.nl -
tGoogle
j

Tabellen

Een tabel kan met het hulpprogramma gawk --file=csv2cfg.awk gemaakt worden.
Dit zet een ; -separated tekstfile - een database dus - om in een cfg-file voor een HTMl-tabel.
Het lijkt daarmee op Text to Table van OpenOffice of Word®.
Alle regels in de cfg-file die de tabelstructuur bepalen beginnen met | .

Voorbeeld 8 top
tBoter, kaas en eieren
|t border=1
|r
|d
<TAB>o
|d
<TAB>x
|d
<TAB>x
|r
|d
+
|d
<TAB>o
|d
+
|r
|d
<TAB>x
|d
+
|d
<TAB>o
|e
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html#8 TERUG

voorbeeld 8

Formulieren

Invulformulieren ofwel HTML-forms worden door hypertxt ondersteund. De crux zit meer in de wijze waarop de formulieren verwerkt worden, bij voorkeur als e-mail.

Hierbij een onvolledig voorbeeld waarbij alleen een selectielijstje wordt aangeboden.

Voorbeeld 9 top
(
tKies je favoriete fruitsoort
{name=fruit
$=appels
$=bananen
$=peren
$=Ik haat fruit
}
)
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html#9 TERUG

voorbeeld 9

Afbeeldingen

Afbeeldingen zijn heel belangrijk. Het is dan ook heel gemakkelijk ze toe te voegen.

Voorbeeld 10 top
[Japanese-SearchAndRescue-29149126_us2_medium.jpg
;
tJapans nieuwste watervliegtuig
[Japanese-SearchAndRescue-29149126_us2_medium.jpg width="10%%" align=right
;
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html#10 TERUG

voorbeeld 10

Door het attribute width met een percentage schaalt de afbeelding mee met de grootte van het browser venster.
Het attribute align wordt in de handboeken afgeraden, maar het werkt wel.
Voor gecentreerde afbeeldingen doen we het anders. Hier een voorbeeld met een animated gif.
Voorbeeld 11 top
]
[jen_it_crowd_cropped.gif
]
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html#11 TERUG

voorbeeld 11

Pas op dat je ] en j niet door elkaar haalt.

Achtergrondkleur en voorkeursfont

Achtergrondkleur en voorkeursfont kunnen gedefinieerd worden als attributen van de <BODY> tag.
Bij ontbreken daarvan wordt de tekst zwart op wit weergegeven in het voorkeursfont van de browser.

Voorbeeld 12 top
Bstyle="font-family: Helvetica, Univers, sans-serif ; color:#008000"
2Hello World
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html#12 TERUG

voorbeeld 12

Voorbeeld 13 top
Bstyle="font-family: Times, Garamond, serif"
Bbgcolor=beige
2Hello World
ehttp://www.harmjschoonhoven.com/tutorial-nl/index.html#13 TERUG

voorbeeld 13

Tekst kan men laten inspringen door na een break ( ; ) no-break space[s] ( +[<count>] ) te gebruiken en/of door tekst op te nemen in de achtergrondkleur. Het laatste lijkt omslachtig maar geeft vaak een beter resultaat.

Beperkingen

top
Hypertxt levert een tamelijk primitief soort webpagina's zonder opmaakmodellen (CSS-files).
Het resultaat van niet al te ingewikkelde toepassingen van hypertxt zullen er niet flitsend uit zien.
De browser bepaalt hoe een HTML-file wordt geïnterpreteerd. Het is aan te bevelen er voor te zorgen dat de inhoud voor verschillende schermresoluties acceptabel wordt weergegeven. Zeker nu content steeds vaker op smartphones bekeken wordt.

Hypertxt levert van nature pagina's die zonder JavaScript bekeken kunnen worden. Het toevoegen van JavaScript, bij voorbeeld een Twitter-widget is zeker mogelijk. Het is zelfs heel eenvoudig door een @ gevolgd door de naam van de file met de gewenste HTML-code in de cfg-file op te nemen. Deze wordt dan door hypertxt vervangen door de letterlijke (HTML-)inhoud van deze file.

Een andere interessante toepassing hiervan is met hypertxt -b een cfg-file om te zetten naar HTML en deze op te nemen in een cfg-file op "hoger" niveau.
Op deze manier is het toch mogelijk meerdere functies F ... E in één resultaat te integreren.

Usage informatie

De Usage informatie zoals je die krijgt door hypertxt(.exe) zonder argument uit te voeren in cmd.exe .

USAGE: hypertxt -<option1> <HTML or XML-file>|- [<ARGUMENT> ..]
writes and retrieves text-strings to stdout. With "-" reads from stdin.
USAGE: hypertxt -<option2> <cfg-file> [<ARGUMENT> ..]
writes index-list or html-file with internal links to stdout.
USAGE: hypertxt -R <RTF-file>|- [<ARGUMENT> ..]
list textstrings found in Rich Text Format file.
USAGE: hypertxt -S <text-file>|- [<ARGUMENT> ..]
write summary of <text-file> to stdout.
USAGE: hypertxt -q <name>|<number> [v[erbose]]
write "<value>" (unquoted) to stdout.
USAGE: hypertxt -q - [v[erbose]]
write "<name><TAB><value><CR> ..." from "$QUERY_STRING" to stdout.
USAGE: hypertxt -Q <name>|<number> [v[erbose]]
write ""<value>"" (quoted) to stdout.
USAGE: hypertxt -Q - [v[erbose]]
write "<name>="<value>"<br><CR> ..." from "$QUERY_STRING" to stdout.
WHERE <value> is value of <name> or <number>th value (starting at 0)
found in "$QUERY_STRING", "%<hex><hex>" is replaced by one character.
With ARGUMENT verbose the "$QUERY_STRING" is written to stderr as is.
USAGE: hypertxt -e
lists HTML escape sequences as text to stdout.
USAGE: hypertxt -E
lists HTML escape sequences as webpage to stdout.
OPTION1:
I interpret <HTML-file> as text_column plus column remarks.
B list bold text from <HTML or XML-file>.
C list comments from <HTML or XML-file>.
H list head 1..6 from <HTML or XML-file>.
N list anything but comments from <HTML or XML-file>.
M print model of new HTML-file.
l list textstrings and tags.
r list textstrings and tags. Show tags in reverse video.
t list textstrings only. Skip non-ASCII characters.
i list textstrings and <IMG ...>.
T list tags only.
u list quoted URLs found in "<a href="URL">".
U list quoted URLs found in "<a href="URL">", precded by "#wget ".
W list quoted URLs found in "<a href="URL">", precded by "wget ".
x list textstrings only. Allow non-ASCII characters.
y list textstrings and tags. Allow non-ASCII characters.
OPTION2:
b write <BODY> part of html-file specified in <cfg-file> to stdout.
c read files specified in <cfg-file> and write index-list to stdout.
g write CGI serverside program specified in <cfg-file> to stdout.
That is the HTML body preceded by "Content-type: text/html"
plus an empty line and followed by an empty line.
h write html-file specified in <cfg-file> to stdout.
DOCTYPE "HTML 4.0 Transitional//EN" and "charset=iso-8859-1" is included.
Prudent use of this software will produce a document which upon validation
by http://validator.w3.org/#validate_by_upload will be found to be free of errors.
CFG:
<cfg-file> is a MSDOS or UNIX text-file where the first character
of every line determines its fate with the following syntax:

PRINTF-STYLE ESCAPE-SEQUENCES:
The following formatting is applied to all text, including filenames:
"%%" the "%" character.
"%<SPACE>" is not changed.
"%" at the end of a line is not changed.
"%A" replaced by <anchorname>.
"%B" replaced by <firstarg>. Used in and after FUNCTION[ call].
"%C" replaced by <secondarg>. Used in and after FUNCTION[ call].
"%D" date and time in English as f.e. "Wed Jun 30 21:49:08 1993".
"%F" counter of funtion-calls, starting at 1.
"%I" date as f.e. "30 juni 1993".
"%J" date and time as "YYYY-MM-DD hh:mm".
"%K" date as "YYYY-MM-DD".
"%L" If a list is created and a line matching <string> is found at a
multiple of <listperiod> in the list, "%L" is replaced by the line
at <listoffset> after the matching line, otherwise by "".
"%N" global counter N, starting at 1, incremented after every call.
"%P" replaced by <indexstring>, used by option "P" in <cfg-file> only.
"%Q<name>=" replaced by <value> found in "$QUERY_STRING". Default: "".
"%R<environment variable>=" replaced by its value. Default: "".
"%S" replaced by <string>.
"%T" replaced by <title>.
"%U" seconds remaining until Tue Jan 19 03:14:08 2038 (time 0x7fffffff+1).
"%V" replaced by <variable1>.
"%W" replaced by <variable2>.
"%X" global counter X, starting at 1.
"%Y" global counter Y, starting at 1.
"%Z" global counter Z, starting at 1.
"%_" replaced by <string> with spaces i.s.o. underscores.
Note: an optional minimum field width can be inserted after %.

SWITCHING REPLACEMENT:
"&" suspend (restore) replacement %% by %, %S by <string>, etcetera.

GENERAL:
"T<title>" for browser titlebar, favorites &c.
Default for -h,-g: basename of <cfg-file>. Default for -b: no title.
"H<text>" for -h: write literal <text> in "<HEAD> </HEAD>". "%%" is replaced by "%".
" for -g: write literal <text> before other output, but after title. "%%" is replaced by "%".
"B<arguments>" for -h: write <text> between "<BODY" and ">". "%%" is replaced by "%".
for -g: ignored.
" Examples of <arguments>:"vlink=<color>", "bgcolor=<color>".
"#<comment>" write <comment>.
"?<returnvalue>" force exit value of hypertxt.
Empty lines in <cfg-file> are ignored.

BASIC TEXT:
"<n><headertext>" for <n> in [1..6] write a header.
"<n>" for <n> in [1..6] open or close a header. Use this for coloured headers.
"0<headertext>" write a header as bold text.
"t<text>" write <text>.
"<TAB><text>" write <text>.
"M<text>" write break "<br>" bullet "&#8226;" <text>.
"M" write bullet "&#8226;".
"m<text>" write break "<br>" bullet "&#8226;" <text> followed by break "<br>".
"m" write bullet "&#8226;" followed by break "<br>".
"n<text>" write <text> followed by break "<br>".
"b<text>" write bold <text>.
"b" ... ["b"] (lines with single character) begin ... end bold style.
"c<text>" write typewriter <text>.
"c" ... ["c"] (lines with single character) begin ... end typewriter style.
"d<text>" write small(er) <text>.
"d" ... "D" (lines with single character) begin ... end small(er) text.
"d" ... "D" may be nested.
"G<text>" write big(ger) <text>.
"G" ... "g" (lines with single character) begin ... end big(ger) text.
"G" ... "g" may be nested.
The lettersize is treated as a continuous parameter. The tags are.
closed and restored around headers, forms and tables. The lettersize
is restored inside table captions, headers and data. Stacksize=40
"i<text>" write italic <text>.
"i" ... ["i"] (lines with single character) begin ... end italic style.
"]" ... "]" <center> ... </center>. Note: not allowed within "j".

STRUCTURAL HTML-ELEMENTS:
"=[<attributes>]" write begin of paragraph "<p>" with attributes (align).
Implies end of paragraph.
":<attributes>" begin "<font ... >" with attributes (color,face).
":" write "</font>" matching preceding "<font ... >".
";[<count>][ <attributes>]" write line break "<br>".
"-[<count>][ <attributes>]" write horizontal rule "<hr>".
"+[<count>]" or "+[+ ..]" write no-break spaces "&#160;".

ANCHORS AND LINKS:
N.B. Do not forget to escape "%" as "%%" in <URL>s.
N.B. The W3C validator requires "&" in <URL>s to be escaped as "&amp;".
"a<anchorname>[ <text>]" define internal link <anchorname>. Used by INDEX.
"a" stop selecting text from files for INDEX.
"l<name>[ <text>]" write link to internal link <name>.
"e<URL> <text>" write link to external link <URL> (without spaces).
"e<URL>" same as "e<URL> <URL>".
"h<partialURL>" same as "e[http://[www.]]<partialURL>",
ignored if <partialURL> is (after expansion of %) empty.
"j<URL>[ <script>]" begin link to external link <URL> (without spaces).
"j<URL> -" begin link to external link <URL> (without spaces),
add "target="_blank"" (i.e. open in new tab).
"j" end external link with an image, (Java)script, etc.
"[<filename>[ <attributes>]" .gif or .jpg file (without spaces) to display.
Useful attributes are: width="70%%" height="70%%" alt="...".
The required attribute alt="<filename>" is added by default.

LITERAL INSERTIONS:
In <literal text> "&","<" and non-printables are unchanged.
Note that %% is replaced by %, %S by <string>, etcetera.
"&<literal text>", but not "&", write <literal text>.
Examples: "&&copy;" for Copyright, "&&euml;" or "&&#235;" for "ë".
"<<literal text>" for -h: insert <literal text> before "<HTML>",
for -g: replace "Content-type: text/html" by <literal text>.
"><literal text>" for -h: insert <literal text> after "</HTML>",
for -g: replace trailing empty line by <literal text>.

INCLUDE TEXT FROM A FILE:
".<filename> [skip=<skip>[ last=[-]<last>]]"
"<filename>" can be relative or absolute.
to be included as is line by line in the output.
Note: "%" in "<filename>" should be escaped as "%%".
<filename> should be a readable file with plain text.
Lines commencing with a single "#" are ignored.
From lines commencing with "##" the first character is removed.
Default: include all lines (<skip>=0, <last>=0 i.e. EOF).
Negative <last> value skips lines at end of <file>.
"^<filename> [skip=<skip>[ last=<last>]]" include file with <literal text>.
Default: include all lines (<skip>=0, <last>=0 i.e. EOF).
"/<filename>" include the cfg-file <filename> recursively.
"@<filename> [skip=<skip>[ last=<last>]]" include HTML-file <filename>.
Note that %% is replaced by %, %S by <string>, etcetera.
Default: include all lines (<skip>=0, <last>=0 i.e. EOF).
Hint: make <filename> with "hypertxt -g" and use "skip=3".

(ONE) FUNCTION AND VARIABLES:
"F[UNCTION]" begin of function definition.
"E[NDFUNCTION]" end of function definition.
"%<string>" set the value of <string> explicitly.
"v<text>" set the value of the string <variable1> explicitly.
"w<text>" set the value of the string <variable2> explicitly.
"C<global counter><operation>[<value>]" with <global counter> N,X,Y or Z,
<operation> + - or =, Default: <value>=1.
"![<firstarg>[ <secondarg>]]" execute function. The argument is split
at the first space or TAB. No operation by default of FUNCTION.

USING A TEXT-DATABASE:
"L.<filename>" create a list consisting of ALL lines in <filename>.
Note: "%" in "<filename>" should be escaped as "%%".
"L=<listperiod>" a unique number, required when a list is defined.
"L<listoffset>" See %L . Default: 1 .

PREPARING AN INDEX:
"P[<prefix>]%P[<suffix>]" formats indextext for next file. Default: "%P".
"~" inserts no-break spaces in text for next file.
"S[tyle/][<minlength>/<maxacrolength>]" Default 6 5 .
<minlength> is minimum wordlength for INDEX (except for acronyms).
<maxacrolength> is maximum wordlength for INDEX (for acronyms only).
Moreover the following strings are rejected by INDEX:
"january"
"february"
"march"
"april"
"may"
"june"
"july"
"august"
"september"
"october"
"november"
"december"
"version"
"januari"
"februari"
"maart"
"mei"
"juni"
"juli"
"augustus"
"oktober"
"versie"
"s"
"et"
"al"

INSERTING AN INDEX:
"A[LPHABET]" write alphabetical index for the INDEX.
"A<alphabetfile>" write extendend alphabetical index for the INDEX.
<alphabetfile> contains all one- and two-letter combinations.
The first letter is cast to uppercase. The optional second
character, if it is a letter, is cast to lowercase.
"I[NDEX][#]" write alphabetical index for all words in selected files.
With "#" INDEX with numbers i.s.o. <name>s.
To activate selection use "!<string>"
or "%<string>" and "a<string>[ <string>]".
"I[NDEX][#]<filename>" INDEX restricted to entries in <filename>,
"J[b][i]" write words in index from subsequent selected files
in the indicated style. Default: regular.
With "b" INDEX with keywords in bold style.
With "i" INDEX with keywords in italic style.
"R[EPEATININDEX]<repeatdistance>:<name>[ <text>]" repeated link in INDEX>.
if the file exists. Lines commencing with "#" are ignored.
One entry per line, always in lower case, is expected.

HTML-TABLES:
"|t[<attributes>]" begin table. Terminated at end of <cfg-file>.
Tables may be nested up to 10 levels deep.
"|c[<attributes>]" begin caption in table. Terminated by new row, caption or end of table.
"|r[<attributes>]" begin row in table. Terminated by new row, caption or end of table.
"|h[<attributes>]" begin header cel in table. Terminated by end of row/table or new header/data cel.
"|d[<attributes>]" begin data cel in table. Terminated by end of row/table or new header/data cel.
"|e" end table.

HTML-FORMS:
"(<attributes>" begin "<form ... >" with attributes (method,action).
"*<attributes>" "<input ... >" with attributes (type,name,value).
"**<name> <value>" "<input type="hidden" ... >".
"{<attributes>" begin "<select ... >" with attributes (name,size,multiple).
"$=<text>" write <option>.
"$<file> [skip=<skip>[ last=[-]<last>]]" write <option>s listed in <file>.
"}" end select.
")" end form.

NOTES:
A <filename> both can be a simple filename or directory/filename.
For reasons of compatibility \ is replaced by / in names of files
which are read or written by hypertxt. This is an OS-dependent feature.
<maxwidth> defines characters per line output for <option1>. Default=64
<dotted> defines pattern of dotted lines. Default=5
<HTML-file> is read only. With "-" read from stdin.
In <cfg-file> and in read <file>s the maximum linelength is 2048.
In <cfg-file> the lines "T<title>" and "F".."E" may appear
at any position in the file.
Only one FUNCTION, one INDEX and one list can be defined.
Four variables are available: <name>, <string> <variable1> and <variable2>.
<name>s should be single words and uniquely defined, they are used by INDEX.
Special characters in the text are written as an escape-sequences "&#<n>;".
TABs in the text are written as "&#160;&#160;&#160;&#160;".
A useful attribute is "style=color:<colour>".
Attributes not consisting of [a-zA-Z-_.:] must be quoted with "s.
ARGUMENTS:
c[ontinue] skips a text-file when it is not found for <option2>.
d[otted/]<dotted> for <option1>. Default: 5 .
I[NDEXLIST] writes indexlist or wordcount to stdout.
m[axwidth/]<maxwidth> for <option1>. Default: 64 .
n[summary/]<number of words>. Default 15 .
r[elax] allow lines commencing with "}" in converted <RTF-file>.
S[tyle/]<minlength>/<maxacrolength> for word selection. Default 6 5 .
t[erse] remove empty lines from converted <RTF-file>.
Input may even be a plain text file.
v[erbose] writes progress report to stderr for <option2>.
v[erbose] v[erbose] writes progress while generating HTML-file to stderr.
V<variable1>. Initialise <variable1>. Default: "".
W<variable2>. Initialise <variable2>. Default: "".

RETURN VALUES:
0 no errors.
1 Output is usage or charset info.
2 Syntax error in commandline argument.
3 File reading error, "$QUERY_STRING" or other <environment variable>,
like "$REMOTE_ADDR" not found.
4 Runtime syntax error.
All return values can be overruled by "?<returnvalue>" in a <cfg-file>.
VERSION: May 28 2014

Copyright (C) 2011 by Harm J. Schoonhoven

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

top

Versies van hypertxt

top
In de sourcecode hypertxt.c is bijgehouden wat er tussen de verschillende versies van hypertxt is gewijzigd. Meestal is dat een kleine uitbreiding.

/** versions
** Created hypertxt.c 1994-07-10
** Greek alphabet 2011-01-24
** Cyrillic alphabet 2011-10-09
** d (and D) write small(er) <text> 2011-10-20
** MIT-licence 2011-12-01
** -F (readability) removed. 2011-12-01
** Euro sign in table escaped characters 2011-12-01
** Usage info rationalized. 2011-12-01
** Added support for %J besides %D and %K; 2011-12-03
** Checkquotes() added. 2011-12-03
** ARG V<text> added, changed V[ERBOSE] to I[NDEXLIST] 2011-12-12
** Removed /<filepath>,\<filepath> same as .<filepath> 2011-12-13
** /<filepath> interpret first character. 2011-12-13
** /<filepath> as genuine include file. 2011-12-22
** <big>,<small> as lettertype + push/pull stack. 2011-12-22
** Writehtml() case 'e' changed,'j' added,'u' removed. 2011-12-26
** Writehtml() case 'f', 'p', 's' removed. New 'h'. 2011-12-28
** Introduced firstarg, secondarg with %B and %C 2012-01-01
** Changed: ^ verbatim inclusion, @ idem with Format() 2012-01-01
** BOOL noformat - controlled by single character "&". 2012-01-06
** type="hidden" added. 2012-01-28
** Some clarifications in Usage(). 2012-03-29
** |t should not imply |e. Allow table-in-table. 2012-06-27
** Added support for %I besides %D etc. 2012-06-28
** Suppress spaces and CR for in hyperlink ('j'). 2012-08-09
** Statement on W3C Validator added. 2012-08-09
** HTMLFROM_PLAINTEXT: ignore lines commencing with #. 2012-10-18
** Insertion of space before </a> removed in Anchor(). 2012-11-04
** In Format() "%<SPACE>" is left unchanged. 2012-11-21
** Mangle / and \ in filenames (OS-dependent) 2013-01-11
** Writehtml() case ']' <center> ... </center> added. 2013-10-21
** Support "j<URL> -" to open link in new tab. 2014-05-27
**/

Compiliatie van hypertxt

top
Hopelijk vind je een gecomplieerde versie van hypertxt die up to date is ten opzichte van hypertxt.c voor het operating system dat je gebruikt. Zo niet dan moet je hypertxt (laten) compileren.
De source-code kan gevonden worden op http://www.harmjschoonhoven.com/download.html

Hypertxt.c is geschreven in algemeen beschaafd C. Wel geeft Visual Studio nogal wat warnings met name over sscanf(), maar bij nadere beschouwing blijkt dat vals alarm.

Microsoft Windows®

Download Visual Studio C++ Express edition van http://www.visualstudio.com/downloads/download-visual-studio-vs .
Compileer Hypertxt.c als Win32 Console Application zonder precompiled headers.

Linux (UNIX, Ubuntu etc.)

Compileer met
cc -O -s -Wall -I/usr/local/include -o /usr/local/bin/hypertxt hypertxt.c -lc -lm

Cygwin

Het hangt ervan af of je de 32-bits of 64-bits versie gebruikt. Compileer in beide gevallen met
cc -O -s -Wall -I/usr/local/include -o /usr/local/bin/hypertxt hypertxt.c -lc -lm
in de directory ~/scripts/src . Maar de resultaten zijn niet compatibel.

Literatuur

top
Chuck Musciano & Bill Kennedy, HTML & XHTML, O'Reilly 2001.
http://www.amazon.com/HTML-XHTML-Definitive-Guide-6th/dp/0596527322
Nederlandse vertaling ISBN 90 395 18157.

http://www.w3schools.com
"The World's largest web development site, educate yourself. 1000+ Examples!"

Meer algemene informatie is te vinden bij http://wiht.link/unix_programming

Contactadres

top
Mail adressen kunnen als volgt met het bekende symbool e worden ingevoerd als
emailto:info@harmjschoonhoven.com info@harmjschoonhoven.com
Herhaal daarbij altijd het mail-adres. Het werkt anders wel, maar het ziet er raar uit.

Voor vragen en opmerkingen info@harmjschoonhoven.com
Tutorial Version 2016-04-20 13:06. © Harm J. Schoonhoven

Valid HTML 4.0 Transitional


top