freenode/#lisp - IRC Chatlog
Search
3:36:14
aeth
sukaeto: On the other hand, nothing's stopping you from, rather than text-substituting, parsing that templating engine into your html->s-expression system and thus validate the HTML
3:39:27
aeth
sukaeto: #lispcafe also came up with a clever way of substituting something into a string. Basically, build a format string that takes in a keyword argument by collecting the variables and then removing the duplicates for the keywords, i.e. (&key foo bar baz ...) would be the lambda list but they might be encountered as foo bar foo foo baz bar ... in the template language
3:40:30
aeth
And since "hello, {{person}}!" seems wrong to a Lisper, it could be represented as (that-macro "hello, " person "!") which will then generate a function with one keyword argument, person.
3:41:27
aeth
Now, whether or not a design person would be able to tolerate (define-foo foo "<html> <body> Hello, " person "!") instead of an alternative is a different story...
3:42:04
aeth
I guess the point of this is that you get a ton of flexibility... at the expense of everyone probably preferring their own solution
3:51:55
pjb
you should not trust what comes out of #lispcafe. It's specifically designed for that, not trusting.
3:57:47
no-defun-allowed
Would you prefer the code written there then, pjb? http://clim.rocks/gilbert/blah2.lisp
3:59:29
sukaeto
yeah, my experience is that design people would rather just do PHPish stuff inlined directly into the HTML. So things like Jinja work out great for them.
4:00:14
sukaeto
granted, if you don't have a design person and you're stuck writing all your own HTML, then yeah. Having a sexpr representation and being able to work with it in code is great.
4:29:07
aeth
sukaeto: In fact, at least one person almost certainly made something like that when PHP was in style (although nowadays even PHP uses web frameworks with templates like Python and Ruby offer)
5:54:57
jeosol
mgsk: It didn't appear to work. Now I just do C-u M-x, then sbcl --dynamic-space-size 10000.