[common lisp] generowanie html

0

mam pytanie, jak moge generowac zrodlo html w common lisp?

Jak na razie uruchomienie pliku html.lisp poprzez

clisp html.lisp

daje rezultat:

*** - EVAL: undefined function HTML

zrodlo pliku to:

(defvar *my-counter* 0)  ; initialize counter variable.

(html (:html
          (:head (:title "My Document"))
          (:body (:h1 "My Document")
            "Hello AllegroServe, the time is "
            (:prin1 (get-universal-time))

            (incf *my-counter*) ; evaluated but not printed
)))
0

Wszystko fajnie, tylko gdzie masz załadowany moduł z makrami od generowania html-a?

0

pardon, ale nie wiem jak to zrobic :(

0

Hmm, zalezy to od tego, w czym masz ten modul opisany. Jesli instalowales pod linuxem przez system pakietow to na 99.99% bedzie to ASDF, w tym wypadku pod SBCL'em po prostu (require 'nazwa-modulu), a pod innymi to, jak podaje manual ASDFa, w swoim pliku inicjalizacynym daj cos w rodzaju:

(setf asdf:*central-registry*
  '(*default-pathname-defaults*
    #p"/home/me/cl/systems/"
    #p"/usr/share/common-lisp/systems/"))

a potem w programie:

(asdf:operate 'asdf:load-op 'nazwa-modulu)

Pod winda to niestety ci nie powiem, przez brak linkow symbolicznych (przynajmniej do XP, Vista podobniez juz to umie) z ustawieniem ASDFa bedziesz mial wiecej pier***enia niz dziwka pracoholiczka. Jak to zrobic inaczej to niestety nie mam pojecia, szczegolnie ze nie podales co to za modul i w czym opisany.

0
CL-USER> (require :cl-who)
NIL
CL-USER> (use-package :cl-who)
T
CL-USER> (with-html-output-to-string (s nil :prologue t :indent t)
	   (:html 
	    (:body :bgcolor "white"
		   (:h1 "Hello, world!"))))
			 

"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">

<html>
  <body bgcolor='white'>
    <h1>
      Hello, world!
    </h1>
  </body>
</html>"

1 użytkowników online, w tym zalogowanych: 0, gości: 1