yogthos/Selmer

Quoted strings as tag arguments have their quotes escaped and preserved

Ouverte

#235 ouverte le 6 juil. 2020

 (11 commentaires) (0 réaction) (0 personne assignée)Clojure (121 forks)batch import
enhancementhelp wanted

Métriques du dépôt

Stars
 (1 042 étoiles)
Métriques de merge PR
 (Aucune PR mergée 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