[heuristiikka]
Lopputuloksena olevan sivun pitäisi muistuttaa (ainakin semanttisesti) sen raakatekstistä lähdemuotoa. Esimerkiksi *tähdet* sanan ympärillä merkitsisivät lihavointia, ja niin edelleen. Yhdistän ehkä seuraavan versioni txt2html:sta tähän wikiin.
(Asiaan liittyen: [strukturoitu teksti] on myös HTML:ksi konvertoitavaa raakatekstiä, mutta epäheuristista sellaista.)
Pari huomautusta:
* hierarkkiset listat ovat turhia * sisennykset ovat ongelmallisia * taulukoita ja esimuotoiltua tekstiä on hyvin vaikeaa tunnistaa kunnolla raakatekstistä
Olen muuten nyt tekemässä tällaista säätöä. Se eroaa vanhasta txt2html:stani siten, että se on hajotettu moneksi ohjelmaksi, joista tehdään [filtteriputki]. Tämä sallii enemmän säätöä ja kustomoitavuutta.
Tällä hetkellä elementtejä ovat: * [entify], joka muuntaa HTML:n kannalta erityiset merkit entiteeteiksi * litws, joka muuntaa [whitespace]n sellaiseksi, että se näyttää samalta HTML:ssä * normlbr, joka poistaa \r:t ja tyhjän rivien lopusta sekä turhat romauttaa useamman kuin yhden peräkkäisen tyhjän linjan * inlmarkup, joka muuntaa normaalit ''tehostuskeinot'' niitä vastaaviksi tageiksi * blkmarkup, joka päättelee kappaleen tyypin ja sen perusteella merkitsee ne block-tageilla.
Kaikille näille on yhteistä, että niiden prosessoinnilta voi suojata sivun osioita kirjoittamalla ne [[[:lla (ja) ]]]:lla alkavien rivien väliin. Kuitenkin, jos [[[:n perässä on utilin oma nimi, se prosessoi kyseiset rivit. Tällä tavoin käyttäjä voi itse määrittää, mitä filttereitä sovelletaan mihinkin osaan tekstiä. Lisäksi on filtteri rmescape, joka vain poistaa nämä rivit. (Se on myös ainoa filtteri, jolla on oikeus koskea kyseisiin riveihin.)
Tällä hetkellä kaikki ylläolevat ovat sed-skriptejä, paitsi
[entify], joka on C-ohjelma. blkmarkup saattaa kehittyessään
osoittautua tarpeelliseksi tehdä awk:lla tai jollain muulla
kehittyneemmällä. litws:lle ja normlbr:lle en itse asiassa ole keksinyt
järkevää käyttöä, sillä inhoan
:a ja haluan koskea lähdetekstiin
niin vähän kuin mahdollista, jotta siinä säilyy alkuperäinen muotoilu
lisättyjen tagien ohella.
Suunniteltuja filttereitä ovat: * ipreproc, joka sisällyttää [[kansio/tiedosto]]-notaatiolla kansio/tiedosto-tiedoston * wikilink, joka lisää WikiTyyppiset [linkit] (sekä mahdollisesti säätöjä kuten google: -notaation) * rmcomment, joka poistaa kommentit (blokit merkitty [[[ comment jne) (voisi yhdistää rmescapeen) (TEHTY) * extrmeta, joka etsii dokumentista metadatan * hdltable, joka tekee dokumentin otsikoista linkkiluettelon dokumentin alkuun * sekä mahdollisesti vielä jonkinlaisia yksinkertaisia ohjelmointikielitoteutuksia - varokaa vain...
Näille kaikille voisi ehkä vielä väsätä hallintaprosessin, joka ekstrahoi metadatasta tiedon, mitä kaikkia filttereitä pitää ajaa, ja ajaa ne.
[kategoria: projektit]