From: Kevin Rosenberg
Subject: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <slrnaobc9s.i4j.kevin@boa.b9.com>
Hello Lispers,

I have made my LML (Lisp Markup Language) package available for
download with usage governed by the LLGPL license. You can download
the source from the LML web site (http://lml.b9.com/).

I use this package to generate all of my web pages. This includes my
Debian package maintainence page (http://b9.com/debian.html) which is
automatically generated from a database of package information.

Cheers!

--
       Kevin Rosenberg        |  .''`.  ** Debian GNU/Linux **
  http://b9.com/debian.html   | : :' :      The  universal
  GPG signed and encrypted    | `. `'      Operating System
     messages accepted.       |   `-    http://www.debian.org/

From: Adam Warner
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <am4lbj$2jbda$1@ID-105510.news.dfncis.de>
Hi Kevin Rosenberg,

> Hello Lispers,
> 
> I have made my LML (Lisp Markup Language) package available for download
> with usage governed by the LLGPL license. You can download the source
> from the LML web site (http://lml.b9.com/).

The DNS entry (if it exists) hasn't propagated yet Kevin.

> I use this package to generate all of my web pages. This includes my
> Debian package maintainence page (http://b9.com/debian.html) which is
> automatically generated from a database of package information.

It's a great looking page. Though the generated source could do with a few
newlines!

Thank you very much for adopting ilisp. I'm glad you took the initiative
to make the CVS version available.

Regards,
Adam
From: Adam Warner
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <am5k8f$2rjqn$1@ID-105510.news.dfncis.de>
Adam Warner wrote:

> Hi Kevin Rosenberg,
> 
>> Hello Lispers,
>> 
>> I have made my LML (Lisp Markup Language) package available for download
>> with usage governed by the LLGPL license. You can download the source
>> from the LML web site (http://lml.b9.com/).
> 
> The DNS entry (if it exists) hasn't propagated yet Kevin.

Just to let you know that it has now.

You seem to have made a mistake on the source code licenses. They do not
appear to be LLGPL as indicated above:

downloads.cl: GNU General Public License v2
files.cl: GNU General Public License v2
lml.cl: GNU General Public License v2
lml.system: GNU General Public License v2
package.cl: GNU General Public License v2
stdsite.cl: GNU General Public License v2
utils.cl: No copyright notice

(grep -i -r 'GPL' *)

Regards,
Adam
From: Kevin Rosenberg
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <slrnaojugr.2ga.kevin@boa.b9.com>
In article <··············@ID-105510.news.dfncis.de>, Adam Warner wrote:
>> The DNS entry (if it exists) hasn't propagated yet Kevin.
> Just to let you know that it has now.

Thanks, Adam.

> You seem to have made a mistake on the source code licenses. They do not

The source is GPL'd, sorry for the mistake in the announcement.

> utils.cl: No copyright notice

I'll fix that -- thanks!

--
       Kevin Rosenberg        |  .''`.  ** Debian GNU/Linux **
  http://b9.com/debian.html   | : :' :      The  universal
  GPG signed and encrypted    | `. `'      Operating System
     messages accepted.       |   `-    http://www.debian.org/
From: Hannah Schroeter
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <ammvfr$ut$2@c3po.schlund.de>
Hello!

Kevin Rosenberg  <·····@rosenberg.net> wrote:
>In article <··············@ID-105510.news.dfncis.de>, Adam Warner wrote:
>>> The DNS entry (if it exists) hasn't propagated yet Kevin.
>> Just to let you know that it has now.

>Thanks, Adam.

>> You seem to have made a mistake on the source code licenses. They do not

>The source is GPL'd, sorry for the mistake in the announcement.

Do you really intend the viral implications of GPL'ed library (like)
code?

>[...]

Kind regards,

Hannah.
From: Kevin Rosenberg
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <slrnaojulh.2ga.kevin@boa.b9.com>
In article <··············@ID-105510.news.dfncis.de>, Adam Warner wrote:
> It's a great looking page. Though the generated source could do with a few
> newlines!

Thanks. That's a run-time switch that can be set in the source code.

--
       Kevin Rosenberg        |  .''`.  ** Debian GNU/Linux **
  http://b9.com/debian.html   | : :' :      The  universal
  GPG signed and encrypted    | `. `'      Operating System
     messages accepted.       |   `-    http://www.debian.org/
From: Kevin Rosenberg
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <slrnaok1pk.3fn.kevin@boa.b9.com>
In article <··············@ID-105510.news.dfncis.de>, Adam Warner wrote:
> Thank you very much for adopting ilisp. I'm glad you took the initiative
> to make the CVS version available.

You're quite welcome. Let me know if you encounter any issues with the
Debian packaging.

--
       Kevin Rosenberg        |  .''`.  ** Debian GNU/Linux **
  http://b9.com/debian.html   | : :' :      The  universal
  GPG signed and encrypted    | `. `'      Operating System
     messages accepted.       |   `-    http://www.debian.org/
From: Friedrich Dominicus
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <87r8fttevu.fsf@fbigm.here>
Kevin Rosenberg <·····@rosenberg.net> writes:

> Hello Lispers,
> 
> I have made my LML (Lisp Markup Language) package available for
> download with usage governed by the LLGPL license. You can download
> the source from the LML web site (http://lml.b9.com/).
May I ask what the differences are between your package and htmlgen? 

Regards
Friedrich
From: Kevin Rosenberg
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <slrnaojukc.2ga.kevin@boa.b9.com>
In article <··············@fbigm.here>, Friedrich Dominicus wrote:
> May I ask what the differences are between your package and htmlgen? 

Hello Friedrich,

I haven't used htmlgen in a long time, so I can be mistake.

But, I don't believe that htmlgen allows arbitrary lisp forms inside
of an html generating macro.

--
       Kevin Rosenberg        |  .''`.  ** Debian GNU/Linux **
  http://b9.com/debian.html   | : :' :      The  universal
  GPG signed and encrypted    | `. `'      Operating System
     messages accepted.       |   `-    http://www.debian.org/
From: Dmitri Ivanov
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <amea1g$316n$1@news.aha.ru>
Kevin Rosenberg <·····@rosenberg.net> wrote in message
·························@boa.b9.com...
| In article <··············@fbigm.here>, Friedrich Dominicus wrote:
| > May I ask what the differences are between your package and htmlgen?
|
| Hello Friedrich,
|
| I haven't used htmlgen in a long time, so I can be mistake.
|
| But, I don't believe that htmlgen allows arbitrary lisp forms inside
| of an html generating macro.

The recent version of htmlgen does allow arbitrary lisp forms to be
evaluated inside a html macro body.
---
Sincerely,
Dmitri Ivanov
www.aha.ru/~divanov
From: Friedrich Dominicus
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <87ptv9nlvy.fsf@fbigm.here>
Kevin Rosenberg <·····@rosenberg.net> writes:

> In article <··············@fbigm.here>, Friedrich Dominicus wrote:
> > May I ask what the differences are between your package and htmlgen? 
> 
> Hello Friedrich,
> 
> I haven't used htmlgen in a long time, so I can be mistake.
> 
> But, I don't believe that htmlgen allows arbitrary lisp forms inside
> of an html generating macro.

Hm I don't think that's right:
eccerpt:

       ((:td :valign "top") ;;:nowrap "nowrap")
        (dolist (section product-list)
          (html
           ((:div :class "menucaption") (:princ (first section))))
          (dolist (entry (second section))
            (html
             ((:img :alt "" :src "/images/bulletsqred.gif"))
             ((:a :href (first entry)) (:princ (second entry)))
             (:br)))))
This seem to look quite ok to me.

Regards
Friedrich
From: Kevin Rosenberg
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <slrnaom6i2.37b.kevin@boa.b9.com>
In article <··············@fbigm.here>, Friedrich Dominicus wrote:
>> But, I don't believe that htmlgen allows arbitrary lisp forms inside
>> of an html generating macro.
> Hm I don't think that's right:
>        ((:td :valign "top") ;;:nowrap "nowrap")
>         (dolist (section product-list)
>           (html
>            ((:div :class "menucaption") (:princ (first section))))
>           (dolist (entry (second section))
>             (html
>              ((:img :alt "" :src "/images/bulletsqred.gif"))
>              ((:a :href (first entry)) (:princ (second entry)))
>              (:br)))))


I don't see any lisp code inside of the (:td) (:div) (:img) (:a)
forms. I only see lisp execution forms inside of the (:princ).

With LML, this could be written as

(td :valign "top""
  (dolist (section product-list)
    (div-c menucaption (lml-print (first-section)))
    (dolist (entry (second section))
      (img :src "/images/bulletgred.gif")
      (a :href (first entry) (second-entry))
      (br))))
    
--
       Kevin Rosenberg        |  .''`.  ** Debian GNU/Linux **
  http://b9.com/debian.html   | : :' :      The  universal
  GPG signed and encrypted    | `. `'      Operating System
     messages accepted.       |   `-    http://www.debian.org/
From: Tim Bradshaw
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <ey3fzw4lruj.fsf@cley.com>
* Kevin Rosenberg wrote:

> I don't see any lisp code inside of the (:td) (:div) (:img) (:a)
> forms. I only see lisp execution forms inside of the (:princ).

I think the whole thing is inside the top-level :TD:

((:td :valign "top") ;;:nowrap "nowrap")
 ...
 )

- the closing paren at the end of the line is commented out.
I assume that the macro that this is coming from works the same way as
mine (in fact the syntax is very similar) where:

    (:x ...) is an element with no body or attributes;
    ((:x ...) ...) is an element with attributes and a body;
    anything else is Lisp, and there's a local macro to drop you back
    into HTML.

The macro works out what to do by checking for keywords in the cars or
caars of forms.

--tim
From: Kevin Rosenberg
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <slrnaomeo3.7ju.kevin@boa.b9.com>
In article <···············@cley.com>, Tim Bradshaw wrote:
> - the closing paren at the end of the line is commented out.

Thanks, Tim, I missed that.

Best,

--
       Kevin Rosenberg        |  .''`.  ** Debian GNU/Linux **
  http://b9.com/debian.html   | : :' :      The  universal
  GPG signed and encrypted    | `. `'      Operating System
     messages accepted.       |   `-    http://www.debian.org/
From: Friedrich Dominicus
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <87fzw4n03z.fsf@fbigm.here>
Kevin Rosenberg <·····@rosenberg.net> writes:

> In article <··············@fbigm.here>, Friedrich Dominicus wrote:
> >> But, I don't believe that htmlgen allows arbitrary lisp forms inside
> >> of an html generating macro.
> > Hm I don't think that's right:
> >        ((:td :valign "top") ;;:nowrap "nowrap")
> >         (dolist (section product-list)
> >           (html
> >            ((:div :class "menucaption") (:princ (first section))))
> >           (dolist (entry (second section))
> >             (html
> >              ((:img :alt "" :src "/images/bulletsqred.gif"))
> >              ((:a :href (first entry)) (:princ (second entry)))
> >              (:br)))))
> 
> 
> I don't see any lisp code inside of the (:td) (:div) (:img) (:a)
Not correct see 
((:a :href (first entry) .....

this is inside the :a stuff. 

The description of htmlgen says this:
    *  string -  A string is simply written (using princ) to the
output stream.   Thus the string could contain embedded html
commands. 
    * keyword symbol -  The keyword must name a known html operator.
The result is that the associated html markup command is sent to the
output stream.  The mapping of keyword to html command is trivial --
the print name of the keyword is the html command.  So :p  emits <p>. 
    * list beginning with a keyword symbol - This names an html
operator that may or may not have an associated inverse operator
beginning with "/".  The typical result of this form is to emit the
associated html markup command, then process the items in the list in
the same way as the forms are processed, and then emit the inverse
markup command.  Thus (:i "foo") emits <i>foo</i>.      There is a
special case when a single element list is given (see below for
details).  Also there are some special keywords that are commands to
the html macro rather than markup commands.  They are described
below. 
    * list beginning with a list beginning with a keyword symbol -
This is used to specify markup commands that have parameters.  For
example 
      ((:a href "/foo/bar.html") "the link") turns into <a
href="/foo/bar.html">the link</a>.    The arguments are in plist form:
a sequence of names and values.  The names are not evaluated, they
should be symbols or strings.   We often use keyword symbols for the
names since that looks more lisp-like and reduces the number of
symbols we create.   The values are evaluated and printed with a
function that escapes characters with special meaning in html : <, >,
&, ".   If the value is a symbol with a zero length print name, then
something special is done:  The name alone is printed without a
following equal sign.  For example: ((:option :size 4 :selected '||)
"foo") generates <option size="4" selected>foo</option>.    This form
of valueless argument is illegal html but in some older browsers it's
the required syntax. 
    * anything else  - everything else is simply evaluated in the
normal lisp way and the value thrown away. 

I would argue that allows arbitrary intermixing.

Regards
Friedrich
From: Kevin Rosenberg
Subject: Re: ANNOUNCE: LML (Lisp Markup Language) Available
Date: 
Message-ID: <slrnaomt22.dd2.kevin@boa.b9.com>
In article <··············@fbigm.here>, Friedrich Dominicus wrote:
> Not correct see 
> ((:a :href (first entry) .....

You're quite right.

> I would argue that allows arbitrary intermixing.

Effectively done. I agree.

--
       Kevin Rosenberg        |  .''`.  ** Debian GNU/Linux **
  http://b9.com/debian.html   | : :' :      The  universal
  GPG signed and encrypted    | `. `'      Operating System
     messages accepted.       |   `-    http://www.debian.org/