Skip to content

Commit a2b279a

Browse files
committed
Fix template string escaping
1 parent 489ed67 commit a2b279a

File tree

5 files changed

+12
-18
lines changed

5 files changed

+12
-18
lines changed

sample-web-site/Bin/VueJSWebForms.dll

512 Bytes
Binary file not shown.

src/My Project/AssemblyInfo.vb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
3131
' by using the '*' as shown below:
3232
' <Assembly: AssemblyVersion("1.0.*")>
3333

34-
<Assembly: AssemblyVersion("1.3.0.0")>
35-
<Assembly: AssemblyFileVersion("1.3.0.0")>
34+
<Assembly: AssemblyVersion("1.4.0.0")>
35+
<Assembly: AssemblyFileVersion("1.4.0.0")>

src/VueApp.vb

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,16 @@ Public Class App
3535
writer.WriteLine("<script type=""x-template"" id=""" & Name & "_template"">")
3636
writer.Write(x)
3737
writer.WriteLine("</script>")
38-
tp = "#" & Name & "_template"
38+
tp = "'#" & Name & "_template'"
3939
Else
40-
REM minimize whitepace
41-
x = x.Replace(vbCrLf, " ").Replace(vbLf, " ").Replace(vbCr, " ").Replace(vbTab, " ")
42-
While x.IndexOf(" ") > 0
43-
x = x.Replace(" ", " ")
44-
End While
45-
tp = x.Replace("\", "\\").Replace("'", "\'")
40+
tp = JSStringEncode(x)
4641
End If
4742

4843
writer.WriteLine("<div id=""" & Name & """></div>")
4944
writer.WriteLine("<script>")
5045
writer.WriteLine("var " & Name & "=new Vue({" & vbCrLf &
5146
" el: '#" & Name & "'," & vbCrLf &
52-
" template: '" & tp & "'," & vbCrLf &
47+
" template: " & tp & "," & vbCrLf &
5348
" data: " & DataJS & "," & vbCrLf &
5449
scrpt.Substring(1).Trim & ");")
5550
writer.WriteLine("</script>")

src/VueComponent.vb

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,14 @@ Public Class Component
5555
writer.WriteLine("<script type=""x-template"" id=""" & Name & "_template"">")
5656
writer.Write(x)
5757
writer.WriteLine("</script>")
58-
tp = "#" & Name & "_template"
58+
tp = "'#" & Name & "_template'"
5959
Else
60-
REM minimize whitepace
61-
x = x.Replace(vbCrLf, " ").Replace(vbLf, " ").Replace(vbCr, " ").Replace(vbTab, " ")
62-
While x.IndexOf(" ") > 0
63-
x = x.Replace(" ", " ")
64-
End While
65-
tp = x.Replace("\", "\\").Replace("'", "\'")
60+
tp = JSStringEncode(x)
6661
End If
6762

6863
writer.WriteLine("<script>")
6964
writer.WriteLine("Vue.component('" & Name & "', {" & vbCrLf &
70-
" template: '" & tp & "'," & vbCrLf &
65+
" template: " & tp & "," & vbCrLf &
7166
scrpt.Substring(1).Trim & ");")
7267
writer.WriteLine("</script>")
7368
End Sub

src/modHelpers.vb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@
6666
Return curFileVP.Substring(0, i + 1) & p
6767
End Function
6868

69+
Friend Function JSStringEncode(x As String) As String
70+
Return "'" & (x.Replace("\", "\\").Replace(vbCrLf, "\n").Replace(vbCr, "\n").Replace(vbLf, "\n").Replace(vbTab, "\t").Replace("'", "\'")) & "'"
71+
End Function
72+
6973
Friend Structure ParseVueFileResult
7074
Public Template As String
7175
Public Script As String

0 commit comments

Comments
 (0)