Datatekniikka ja viestintä - Web:

Emacsin HTML-moodi

Emacs-editorissa on versiosta 20 alkaen kätevä "sisäänrakennettu" HTML-moodi, joka nopeuttaa HTML:n kirjoittamista ja auttaa vähentämään näppäilyvirheitä. Seuraavassa on tiivistelmä siitä; selitykset ovat taulukon jälkeen.

lisättävä asia HTML-rakenne valikon kohta näppäily
linkin kohde <a name="?">?</a> HTML Name Anchor C-c C-c n
linkki <a href="http:?">?</a> HTML Href Anchor C-c C-c h
kuva<img src="?"> HTML Image C-c C-c i
kappaleen alku <p> HTML Paragraph C-c RET
pakotettu rivinvaihto <br> HTML Line Break C-c C-j
aiheen vaihtuminen <hr> HTML Horizontal Rule C-c C-c -
numeroitu lista <ol><li>?</ol> HTML Ordered List C-c C-c o
numeroimaton lista <ul><li>?</ul> HTML Unordered List C-c C-c u
asetusnappi <input type="checkbox" name="?" value="?" ?>? HTML Checkboxes C-c C-c c
listan alkio <li> HTML List Item C-c C-c l
1. tason otsikko <h1>?<h1> HTML Heading 1 C-c 1
2. tason otsikko <h2>?<h2> HTML Heading 2 C-c 2
3. tason otsikko <h3>?<h3> HTML Heading 3 C-c 3
4. tason otsikko <h4>?<h4>   C-c 4
valintanappeja <input type="radio" name="?" value="?" ?>?   C-c C-c r
elementti yleisesti <?>?</?> SGML Insert Tag C-c C-t

Taulukon järjestys ei ole kovin looginen, mutta se on tehty alkuosaltaan samaksi kuin HTML-valikossa. Näppäilyt tuntuvat aluksi hankalilta muistaa, mutta useimmiten käytettävät alkavat C-c C-c ja sitten tulee kirjain, joka jotenkin vastaa rakenteen nimeä tai koodia, esim. n=name, h=href, i=image jne.

Selityksiä

Lukijan oletetaan osaavan Emacsin peruskäytön ja tuntevan HTML-kieltä, tai ainakin opiskelevan näitä asioita.

Erityisesti Windows-käyttäjien kannattaa tutustua dokumenttiin Emacs Windowsiin, joka kertoo erityisesti Emacs 20:n hankkimisesta ja asentamisesta Windows-koneeseen. Siinä on myös linkkejä yleisiin tietoihin Emacsista.

Emacsin vanhemmissa versioissa saattaa olla html-helper-moodi, joka on monelta osin erilainen kuin HTML-moodi.

Emacs menee automaattisesti HTML-moodiin, kun käsiteltävän tiedoston nimi on .html- tai .htm-loppuinen. Emacs-moodin toimintoja voidaan käyttää joko näppäinyhdistelmillä tai HTML- tai SGML-alasvetovalikon kautta. Valikon kautta voi suorittaa vain osan toiminnoista. Sarakkeessa "HTML-rakenne" merkki "?" tarkoittaa, että Emacs erikseen kysyy kyseiseen kohtaan tulevan datan tai sitten jättää kursorin siihen kohtaa, jotta voit kirjoittaa siihen mitä haluat.

Taulukossa viimeisenä mainittu toiminto (C-c C-t, yleinen elementin lisääminen) on huomattavan "älykäs". Jos esimerkiksi vastaat kysymykseen Tag: kirjoittamalla form, Emacs kysyy seuraavaksi, mitä määritteitä haluat elementtiin liittää. Se kysyy ensin Attribute:, johon vastataan määritteen nimellä (esim. action), jonka jälkeen Emacs kysyy, minkä arvon haluat sille antaa (Value:), ja vastauksen saatuaan kysyy toisen attribuutin nimeä jne. Tämä jatkuu, kunnes vastaat kysymykseen Attribute: painamalla returnia; silloin Emacs automaattisesti tekee esim. seuraavan:

<form action="http://www.cs.tut.fi/cgi-bin/run/~jkorpela/echo.cgi">

<input type="submit" value="">
</form>

Emacs siis automaattisesti kirjoittaa form-elementtiin valmiiksi input type="submit" -elementin, johon tarvitsee vain kirjoittaa haluttu value-määritteen arvo.

Huomaa, että img-elementtiin tarvittava pakollinen alt-määrite on lisättävä "käsin". Sama koskee width- ja height-määritettä, jotka ovat usein hyvin suositeltavia.

Lomakkeisiin sijoitettavien asetusnappien (checkbox, "ruksauslaatikko") toteuttaminen on kätevää HTML-moodissa, vaikka toiminta aluksi voikin tuntua oudolta. Toiminta perustuu siihen, että joukko asetusnappeja kuuluu loogisesti yhteen eli niillä on sama name-määrite. Emacs kysyy ensin ensimmäisen input type="checkbox" -elementin nimen, sitten sille arvon, halutaanko se oletusarvoisesti ruksatuksi (checked) ja tekstiselityksen, jolle oletusarvo on sama kuin elementin arvo, ynnä vielä sen, halutaanko perään rivinvaihto; sen jälkeen Emacs kysyy seuraavalle asetusnapille arvoa (nimeksi se olettaa saman kuin aiemmalle) jne., kunnes arvon kyselemiseen (Value:) vastataan pelkällä returnilla.

Lomakkeisiin sijoitettavien valintanappien ("radiopainike", radio button) kirjoittaminen sujuu samaan tapaan kuin asetusnappien.

Englanninkielisen kuvauksen HTML-moodista saa (silloin kun ollaan kyseisessä moodissa) käskyllä M-x describe-mode.