wpwmm4 - Web Page With Make and M4

Ezen témából kiindulva, mivel csak nem találtam olyan programot, ami az igényeimet közel 100%-ban lefedi, úgy döntöttem, csak megpróbálom a weboldal-generátort make és m4 programokra alapozva.

Több hónapos fejlesztés után (értsd: hetente átlagban 2-3 óra) egy egész jól használható állapotra sikerült hozni a fantáziadúsan wpwmm4-nek nevezett csodát (feloldását ld. a címben).

Néhány szóban a lehetőségei:

  • make használatával mindig csak a változott fájlokat fordítja
  • m4 használata
  • külső programok, szkriptek könnyű használata - így nem kell egy új nyelv-szerűséget megtanulni, hanem egy már ismert, "szeretett" nyelvet is lehet használni
  • hasonló szerkezetű, tartalmú fájlok automatikus generálása (pl. fájllista)
  • layout-ok használata

A saját honlapomat néhány napja már ez generálja (előtte jekyll volt), és ami esetleg érdekes ezzel kapcsolatban (azaz miket lehetett megoldani):

  • többszintű menü (JS nélkül)
  • képek megtekintésénél "előző"-"következő" gomb (amelyek működnek is)
  • hasonló szerkezetű, tartalmú oldalak automatikus generálása (letölthető PDF-ek)
  • évfolyamok, tanévek listájának automatikus generálása (versenyfeladatok)
  • a képekhez a thumbnail automatikusan generálódik (amennyiben szükséges)
  • a latex-hez kapcsolódó feljegyzések esetén a beillesztendő kép a latex-kód alapján automatikusan létrejön
  • syntax highlight

Maga a program forrása itt elérhető, a honlapom forrása pedig itt.

Akinek tetszik, használja bátran! Építő jellegű kritikát, hibajelentést, javaslatokat fogadok - de a sértődés jogát fenntartom :)

Hozzászólások

Tök jó, mert ha bezippeled, akkor se romlik az olvashatóság :D Mindenesetre érdekes. A saját programok 404-et dob. Amúgy gondoltál már arra, hogy a honlapodon kevésbé elrettentő színeket használj? :)

javaslat a kódhoz
-----------------

* http://pubs.opengroup.org/onlinepubs/9699919799/utilities/m4.html
* http://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html

a gnu- es egyeb -izmusok elkerulesehez

javaslat a tartalomhoz
----------------------

mi anno gimnaziumban csinaltunk egy hazi "dicsosegfalat" a szebb KoMaL/KoKeL megoldasoknak, mert a magaban a lapban megjeleno megoldasokon kivul azert szulettek otletesek iskolan belul is
ez nalunk akkor egy hirdetotablara valo kibokest jelentett, ez most lehetne nalatok a te honlapod :)

javaslat a kódhoz

Köszi, megolvasom őket. A cucc egyébként (Free/Net)BSD-féle make-kel működik, a GNU-félével nem. A fő eltérés a for-ciklusok szintaktikája. Hirtelen átfutva a make-es doksit, nem látom, hogy része lenne bármilyen ciklus - gondolom, ez az oka, hogy a különböző verziókban (BSD/GNU) máshogy kell írni.
Sajnos a for-ciklust nem tudom helyettesíteni semmivel, ami kiválthatná a funkcióját.
Az m4 esetén szerintem csak a -P opció, ami nem része a szabványnak, ui. kényelmesebbnek tartottam ezt, minthogy a "tartalomban" esetlegesen előforduló if, define, shift stb. szavakat folyamatosan quote-ok közé rakni (azaz `shift'-et írni - meg persze folyamatosan figyelni erre).

tartalom: sajnos igen alacsony számban vesznek részt a diákjaink a Kömal-ban, és sajnos igen mérsékelt sikerrel :( Szerintem a kémia is hasonló népszerűségnek örvend.
De ötletnek nem rossz, a viszonyainkhoz kellene valahogy adaptálni.

Az jutott utána eszembe, hogy egy külön fájlt generáltatok.
Azaz: a for-ciklusok leginkább azért kellenek, hogy egy változó (pl. ${TARGETS}) értékein végigmenjenek, és minden egyes értékre (fájlra) létrehozzon egy szabályt. Namost ha ezt úgy csinálnám, hogy egy targets.mk nevű fájlt hozatnék létre a Makefile-on belül (nyilván szabály segítségével, ha már make) egy szkripttel (amiben ugyebár lehet ciklus), és ezt a targets.mk fájlt include-olnám be a Makefile-ba, talán jó is lehet.
Ami necces lehet: nem tudom, hogyan lehet rábírni a make-et, hogy még egyszer (a generálás után) olvassa be a targets.mk fájlt - hacsak nem úgy, hogy újra futtatjuk a make-et.

A rekurzió is lehet egy jó ötlet, köszi!