I've a few useful custom blocks that use JavaScript to do some of the computation so I'm looking to sacrifice a bit of speed and convert them into pure Snap! so that my projects don't require JS to be enabled
This is my first one - it takes a URL and replaces any special characters with it's %xx equivalent
Data on which characters need encoding taken from HTML URL Encoding
Project with block ProjectName=encodeURL
or just the block itself
<blocks app="Snap! 6, https://snap.berkeley.edu" version="1"><block-definition s="encode URL %'text'" type="reporter" category="operators"><header></header><code></code><translations>pt:o valor com chave _ em _
</translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>lst</l></list></block><block s="doSetVar"><l>lst</l><block s="reportTextSplit"><l>0,%00
1,%01
2,%02
3,%03
4,%04
5,%05
6,%06
7,%07
8,%08
9,%09
10,%0a
11,%0b
12,%0c
13,%0d
14,%0e
15,%0f
16,%10
17,%11
18,%12
19,%13
20,%14
21,%15
22,%16
23,%17
24,%18
25,%19
26,%1a
27,%1b
28,%1c
29,%1d
30,%1e
31,%1f
127,%7f
128,%80
129,%81
130,%82
131,%83
132,%84
133,%85
134,%86
135,%87
136,%88
137,%89
138,%8a
139,%8b
140,%8c
141,%8d
142,%8e
143,%8f
144,%90
145,%91
146,%92
147,%93
148,%94
149,%95
150,%96
151,%97
152,%98
153,%99
154,%9a
155,%9b
156,%9c
157,%9d
158,%9e
159,%9f
160,%a0
161,%a1
162,%a2
163,%a3
164,%a4
165,%a5
166,%a6
167,%a7
168,%a8
169,%a9
170,%aa
171,%ab
172,%ac
173,%ad
174,%ae
175,%af
176,%b0
177,%b1
178,%b2
179,%b3
180,%b4
181,%b5
182,%b6
183,%b7
184,%b8
185,%b9
186,%ba
187,%bb
188,%bc
189,%bd
190,%be
191,%bf
192,%c0
193,%c1
194,%c2
195,%c3
196,%c4
197,%c5
198,%v6
199,%c7
200,%c8
201,%c9
202,%ca
203,%cb
204,%cc
205,%cd
206,%ce
207,%cf
208,%d0
209,%d1
210,%d2
211,%d3
212,%d4
213,%d5
214,%d6
215,%d7
216,%d8
217,%d9
218,%da
219,%db
220,%dc
221,%dd
222,%de
223,%df
224,%e0
225,%e1
226,%e2
227,%e3
228,%e4
229,%e5
230,%e6
231,%e7
232,%e8
233,%e9
234,%ea
235,%eb
236,%ec
237,%ed
238,%ee
239,%ef
240,%f0
241,%f1
242,%f2
243,%f3
244,%f4
245,%f5
246,%f6
247,%f7
248,%f8
249,%f9
250,%fa
251,%fb
252,%fc
253,%fd
254,%fe
255,%ff
36,%24
38,%26
43,%2b
44,%2c
47,%2f
58,%3a
59,%3b
61,%3d
63,%3f
64,%40
32,%20
34,%22
60,%3c
62,%3e
35,%23
37,%25
123,%7b
125,%7d
124,%7c
92,%5c
94,%5e
126,%7e
91,%5b
93,%5d
96,%60</l><l><option>csv</option></l></block></block><block s="doReport"><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><script><block s="doDeclareVariables"><list><l>lookup result</l></list></block><block s="doSetVar"><l>lookup result</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="value"/></block><block s="reportUnicode"><block var="each char"/></block></block></autolambda><list><l>value</l></list></block><block var="lst"/></block></block><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="lookup result"/><l></l></block><block var="each char"/><block s="reportListItem"><l><option>last</option></l><block var="lookup result"/></block></block></block></script><list><l>each char</l></list></block><block s="reportTextSplit"><block var="text"/><l><option>letter</option></l></block></block></block></block></script></block-definition></blocks>