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.
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):
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.
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 ☎ 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_anchornaamtoelichtende 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
|
.
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 "•" <text>.
"M" write bullet "•".
"m<text>" write break "<br>" bullet "•" <text> followed by break "<br>".
"m" write bullet "•" 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 " ".
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 "&".
"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.
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 "    ".
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
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.
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.
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.