Sto sviluppando una lingua dei modelli e ora sto cercando di decidere cosa dovrei fare con le virgolette. Sto pensando di avere 3 diversi tipi di citazioni che sono tutti gestiti in modo diverso:
backtick ' double quote " single quote '
expand variables ? yes no
escape sequences no yes ?
escape html no yes yes
I backtick
I backtick sono pensati per essere utilizzati per l'output di codice JavaScript o HTML senza caratteri di escape. Spesso è utile essere in grado di passare variabili in JS, ma potrebbe anche causare problemi con le cose che vengono trattate come variabili che non dovrebbero. Le mie variabili sono in stile PHP ( $var
) quindi sto pensando che potrebbe guastarsi con jQuery piuttosto male ... ma se disabilito l'espansione delle variabili con backtick, non sono sicuro di come inserire una variabile in un JS blocco di codice?
Virgolette singole
Non sono sicuro che le sequenze di escape come \n
debbano essere trattate come letterali o convertite. Trovo abbastanza raro che io voglia disabilitare le sequenze di escape, ma se lo fai, potresti usare i backtick. Quindi sono propenso a "sì" per questo, ma sarebbe contrario a come PHP lo fa.
Virgolette doppie
Sono piuttosto sicuro di voler abilitare tutto per questo.
Modificatori
Sto anche pensando di aggiungere modificatori come @
o r
davanti alla stringa che cambierebbe alcune di queste opzioni per abilitare qualche altra combinazione. Avrei bisogno di 9 virgolette diverse o 3 virgolette e 2 modificatori per ottenere ogni combinazione non avrei?
La mia lingua supporta anche i "filtri" che possono essere applicati contro qualsiasi "termine" (numero, variabile, stringa) in modo da poter scrivere sempre qualcosa di simile
"blah blah $var blah"|expandvars
o
"my string"|escapehtml
Pensieri? Cosa preferisci? Cosa sarebbe meno confuso / più intuitivo?