yogthos/Selmer

Quoted strings as tag arguments have their quotes escaped and preserved

Open

#235 ouverte le 6 juil. 2020

Voir sur GitHub
 (11 commentaires) (0 réactions) (0 assignés)Clojure (86 forks)batch import
enhancementhelp wanted

Métriques du dépôt

Stars
 (670 stars)
Métriques de merge PR
 (Merge moyen 39m) (4 PRs mergées en 30 j)

Description

Is it possible to have a quoted string as an argument to a tag, without the surrounding quotes being preserved in the output?

Selmer, as expected, does treat the quoted string as a single argument, but passes the string to the tag function with its quotes, escaped, as part of the string.

Or perhaps there's another notation which allows a string with spaces to be treated as a single argument?

(use 'selmer.parser)

(add-tag! :foo
  (fn [args context-map]
    (str "foo " (first args))))

(render "{% foo \"quux quuz\" %}" {})
=>"foo \"quux quuz\""

Using render-file removes the need to escape the quotes in the template file, but still introduces them in the output:

file.txt:

{% foo "quux quuz" %}
(render-file "file.txt" {})
=>"foo \"quux quuz\""

The {% safe %} tag has no discernible effect:

file.txt:

{% safe %}{% foo "quux quuz" %}{% endsafe %}
(render-file "file.txt" {})
=>"foo \"quux quuz\""

Guide contributeur