Comments (7)
Hey all, I'd like to take a crack at this one.
from templ.
I think we want to avoid making users use backticks. Someone should be able to copy/paste HTML without amendments into a templ file.
from templ.
Nice. I'd love a PR on it. Crack on mate! 😀
If you don't have time, just say, and I'll get to it.
from templ.
Please provide a reproducible example, with instructions of what to run, and explain what you expect to happen, and what is actually happening.
from templ.
so in the repo https://github.com/zmzlois/templ-repro I have provided two example, where regular expression is working in test.ts
, but it will cause parsing failure in templ
from templ.
I understand the issue. This isn't related directly to regex but how we represent string attributes.
In HTML, this is a valid attribute: pattern="/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/i"
Or a minimal reprod, this is valid HTML too: pattern="\s"
HTML spec states that an attribute value can contain anything except for a "
or a &
. So an unescaped \
is in-fact valid. But, we generate these strings directly to Go strings without escaping, where a backslash on it's own is invalid.
So I believe that the solution here, is to Go string escape constant string attributes(replace \
with \\
). We shouldn't change the behaviour of expressions, since they are go strings, and follow go escaping rules.
from templ.
Question for the group here. If we start escaping constant string attributes I believe that will be a breaking change because someone previously could have done
templ input() {
<input pattern="\\s" />
}
which would have resulted in <input pattern="\s">
. With escaping this would become <input pattern="\\s">
I've got a branch here that demonstrates how to make the current state of the project generate the (https?|ftp):\/\/[^\s/$.?#].[^\s]*
pattern from the start of this thread.
Do we want to avoid making users use a backtick string like this or is this an acceptable workaround?
from templ.
Related Issues (20)
- Templ formatting breaks imports at v0.2.747 HOT 7
- Composable templates do not render properly in tests HOT 1
- App freeze using air proxy HOT 1
- templ-vscode "Request textDocument/codeAction failed" HOT 2
- Streaming Not Working
- [Proposal] Improve embedding components HOT 2
- proposal: Go comments within HTML tags HOT 1
- Raw go errors if block ends with a comment
- LSP crashes after being started by kakoune-lsp HOT 4
- How to prevent cache HOT 1
- .templ file with only script elements leads to unused import HOT 1
- Anyway to instantiate a templ once per rendering context? HOT 4
- performance: templ parse takes a long time and uses high CPU when unclosed void elements are used HOT 8
- Little typo in streaming documentation
- bug: `templ generate --watch --proxy` triggers 2 browser reload events HOT 1
- bug: ambiguous child/string expression grammar HOT 4
- bug: go to definition causes error in Neovim v0.10.x HOT 11
- LSP - gopls command error HOT 3
- bug: ComponentScript rendered even when 'if condition' fails HOT 1
- GoToDef .Templ templ() instead of .go func () HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from templ.