Texinfo

Wikipediasta
Siirry navigaatioon Siirry hakuun
Texinfo
Esimerkki Texinfon tuottamasta dokumentista; GNU Texinfon manuaalin sivu 25.
Esimerkki Texinfon tuottamasta dokumentista; GNU Texinfon manuaalin sivu 25.
Luoja Richard Stallman
Bob Chassell
Kehittäjä Brian Fox[1]
Karl Berry
Kehityshistoria
Ensijulkaisu helmikuu 1986[2]
Vakaa versio 7.1 ()[3]
Kehitystilanne aktiivinen
Tiedot
Ohjelmistotyyppi ladontajärjestelmä
Alusta GNU/Linux, BSD
Ohjelmointikielet Perl, HTML, Raku, C, Makefile, Roff, Muut
Lisenssi GNU General Public License Versio 3
Aiheesta muualla
Verkkosivusto
Versiohallinta

Texinfo on merkintäkieli, jonka avulla yhdestä lähdekoodista voidaan luoda dokumentointia sekä verkkosivuille että tulostettavaan muotoon eri tiedostomuodoissa, kuten dvi, html, pdf, jne., sekä texinfon oma hypertekstimuoto, info). Texinfon kääntää saman niminen tietokoneohjelma, joka on julkaistu vapaana ohjelmistona. Texinfo yhdistetään Free Software Foundationin GNU-projektiin,[4] jonka ohjelmien virallinen dokumentointimuoto se on ollut. Texinfon kehitti Richard M. Stallman, joka on FSF:n ja GNU:n perustaja.

Texinfon päätarkoitus on helpottaa ohjelmisto-oppaiden kirjoittamista. Sillä voidaan luoda kaikki kirjan normaalit rakenteet, kuten luvut, aliluvut, viittaukset, taulukot ja sisällysluettelot. Lisäksi texinfo mahdollistaa hypertekstin koneella luettavaan dokumentaatioon. Paperitulosteiden muotoiluun Texinfo käyttää Donald Knuthin TeX-ohjelmaa, jonka makropaketti se itseasiassa on. Käyttämällä Texinfon eri kääntäjiä, on mahdollista päivittää useita dokumentointeja (kuten verkkosivu ja tulostettava manuaali) käyttäen ainoastaan yhtä lähdekoodia.

Texinfo tulisi lausua "tehinfo" - samoin kuin TeX-ladontajärjestelmän nimi, jossa X esittää kreikan kirjainta χ (khi). Kehittäjien mukaan "Texinfo" tulisi kirjoittaa isolla alkukirjaimella "T", mutta muuten pienillä kirjaimilla.

Tiedostotyypit[muokkaa | muokkaa wikitekstiä]

Jotta useita tiedostotyyppejä voidaan päivittää samanaikaisesti, editoimalla Texinfon (.texi) lähdekoodia, on tehty useita syntaksikääntäjiä, jotka voivat kääntää Texinfo-tiedoston muihin tiedostotyyppeihin. Useimmat tiedostot luodaan käyttämällä makeinfo-ohjelmaa, joka on osa GNU Texinfo -jakelua.

HTML
(luodaan komennolla makeinfo --html.) HTML on verkkosivujen merkintätapa, ja tätä tiedostotyyppiä voidaan käyttää netissä julkaistavan dokumentaation tekemiseen. Texinfon manuaalin mukaan makeinfo-ohjelma yrittää rajoittaa tiedoston tiettyyn HTML-merkintätavan osajoukkoon, jotta mahdollisimman monilla selaimilla voitaisiin lukea valmista dokumenttia.
DVI
(luodaan komennolla texi2dvi.) DVI on TeX-ladontajärjestelmän laitteistoriippumaton tiedostotyyppi, joka on tarkoitettu tulosteiden luomiseen ja voidaan muuttaa PostScript (ps-tiedostoksi).
PDF
(luodaan komennolla texi2dvi --pdf tai texi2pdf.) PDF-tiedostotyyppi perustuu PostScript-kieleen. Adobe Systems kehitti tiedostomuodon laitteistoriippumattomien tiedostojen muodoksi. Kuten PostScript-tiedosto, PDF-tiedosto voi esittää dokumentin lopullista ulkoasua ja on rajatta skaalattavissa. PDF-tiedostot on tarkoitettu laitteistoriippumattomiksi ja niitä voidaan katsella useilla ohjelmistoilla. Texinfo käyttää pdftex-ohjelmaa, TeX-varianttia, tuottaakseen PDF-tiedoston.
Docbook
(luodaan komennolla makeinfo --docbook.) Tämä on XML-kieleen perustuva merkintätapa tekniselle dokumentaatiolle, joka muistuttaa pääpiirteiltään Texinfoa. On myös mahdollista kääntää Docbook-tiedostoja Texinfo-tiedostoiksi käyttämällä docbook2X-ohjelmistoa.
XML
(luodaan komennolla makeinfo --xml.) Yleisiin käyttötarkoituksiin.
Info
(luodaan komennolla makeinfo.) Tämä on GNU:n dokumentaation tiedostotyyppi, joka sisältää navigointielementtejä tekstin eri kohtiin, ristiviittauksille, aliluvuille ja niin edelleen. Info-tiedostotyyppiä voi katsella info-ohjelmistolla tai GNU Emacsilla.

On huomattava, että Unixin manuaalisivuja ei voi tuottaa Texinfon kääntäjillä. Texinfoa käytetään, kun kirjoitetaan GNU-ohjelmistojen dokumentointia, jota tarvitaan yleensä Unix-tyyppisissä ympäristöissä, missä man-sivut ovat perinteinen dokumentointitapa. Man-sivuilla on tarkka rakenne ja niitä käytetään yleensä pikaoppaina, kun taas Texinfon avulla tehdyt dokumenttien on tarkoitus olla laajoja ja kattavia oppaita. Tämän vuoksi GNU ei näe syytä muuttaa Texinfo-sisältöä man-sivuiksi. Useille GNU-ohjelmille on olemassa man-sivut, jotka kehottavat lukijaa tutustumaan Info-sivuun.

Texinfo-lähdekoodi[muokkaa | muokkaa wikitekstiä]

Texinfo mahdollistaa dokumentin jäsentämisen kirjan tapaan, jolloin dokumentissa on lukuja, alilukuja, ristiviittauksia ja indeksejä. Lähdekoodi on lähes leipätekstiä, mutta teknisesti ottaen se on jäsenneltyä tekstiä, jota on jäsennetty komennoilla, jotka alkavat merkillä "@". Näyte lähdetiedostosta:

@ifnottex
@node Top
@top Short Sample

@insertcopying
@end ifnottex

@menu
* First Chapter::    The first chapter is the
                     only chapter in this sample.
* Index::            Complete index.
@end menu

Komennot merkitsevät rakennetta, kuten lukua, sekä erottavat lähdekoodista osia, joita tarvitaan vain tietyissä luotavissa tiedostotyypeissä.

Historia ja status[muokkaa | muokkaa wikitekstiä]

Texinfo on GNU-projektin virallinen dokumentaatiotapa. Texinfo on lisensoitu GNU General Public License -lisenssillä.

Texinfo-formaatin loi Richard M. Stallman, yhdistäessään tulostettavia tiedostoja tuottavan BoTeX-formaatin, joka oli käytössä MIT-yliopistolla, verkkosivuilla käytettävään Info-dokumentaatiojärjestelmään, joka käyttää hyperlinkkejä. Info on myös Stallmanin luoma ja perustuu TECO versioon Emacsista.[5][6] BoTeX perustui puolestaan aiempaan järjestelmään, jolla oli nimi Bolio (yhdistetään usein David A. Mooniin, ja jota käytettiin Lisp-tietokoneessa[7]), jota muokattiin käyttämään TeX-formaattia ulostulonaan. Robert Chassell auttoi Stallmania luomaan ensimmäisen kääntäjän Info-tiedostotyypin tekemiseen Emacs Lispiä varten. Texinfon ohjelmistokehitystä johti Brian Fox (versioon 3.8 asti), Karl Berry (versioon 5.2 asti), ja Gavin Smith (joulukuusta 2014 alkaen). Texinfo "perustuu löyhästi Brian Reidin Scribe-merkintäkieleen ja muihin merkintäkieliin, jotka olivat tyypillisiä sen syntyaikana".[8]

Info-ohjelman ja texinfon levinneisyyttä on haitannut se, että valtaosa GNU:n dokumentaatioista on levitetty GNU Free Documentation License -lisenssin alaisuudessa. Jotkut projektit, kuten Debian, pitävät GFDL:ää epävapaana lisenssinä sen sallimien pakollisten "muuttamattomien osioiden" ("invariant sections") vuoksi, eikä texinfo-dokumentaatiota toimiteta käyttöjärjestelmän mukana, eikä info-ohjelmaa asenneta.

Eric S. Raymond kertoi 2014 Stallmannin sanoneen, että Info-järjestelmä korvataan uudella kevyellä järjestelmällä, joka voi tuottaa tulosteita ja HTML-hypertekstiä. Korvaava järjestelmä olisi luultavasti AsciiDoc.[9]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. GNU's Who, The GNU Team has grown larger in the last few months: Brian Fox and Opus Goldstein have joined Jay Fenlason as the only employees of the Foundation. Most recently, Brian created a stand-alone texinfo formatter and browser..., February, 1988, GNU's Bulletin, vol. 1 no. 4
  2. Gnu Status, by Richard M. Stallman. 5. Documentation system. I now have a truly compatible pair of programs which can convert a file of texinfo format documentation into either a printed manual or an Info file. Documentation files are needed for many utilities., February 1986, G N U ' S B U L L E T I N, Volume 1 No.1
  3. (en) Texinfo 7.1 released, (viitattu ). Tieto on haettu Wikidatasta.
  4. What's GNU: Texinfo, Issue 6, Oct 01, 1994, By Arnold Robbins, Linux Journal
  5. GNU Texinfo Manual, Section 1.14 History
  6. Richard Stallman, January 8, 2012, post on emacs-devel mailing list: "...Info has existed since 1976 or so, in the original Emacs. At that time, Info files were written by hand, and everyone could edit system files on ITS."
  7. Daniel Weinreb and David A. Moon (January 1979), Lisp Machine Manual, Second Preliminary Version
  8. Texinfo
  9. https://lists.gnu.org/archive/html/groff/2014-02/msg00104.html

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]