word-games-theme 0.8.0 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_data/header/en/data.json +4 -0
- data/_data/wordgames/en/4_letter_words_with_these_letters_and_a_blank.json +1 -0
- data/_includes/section/home.html +8 -4
- data/_includes/section/home2.html +9 -3
- data/_layouts/default.html +2 -0
- data/_layouts/page.html +11 -0
- data/_layouts/page2.html +12 -1
- data/assets/css/home.css +71 -0
- data/assets/js/X-letter.js +126 -8
- data/assets/js/wordScrabble.js +3 -3
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 365f974085302d1308d6b085887b28c5e0eea6802bfb87af6560dbe57c91ae19
|
4
|
+
data.tar.gz: fc5713197ce42b4869e1ff9cbfc218cf84413493d04d31de9df16345a3c2d3b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc89d748df6b1a3dfff361dc4c4713cdc2680fbac866757d12304dcfecff5b3a6044e7bddc190cc50a8a793127cff0eeb48ab5f8c1fbb2219813008514e43423
|
7
|
+
data.tar.gz: 614d760ab3ef31eccf42e790ce52a3e608d1b8dbac5a3743f0d3b1f7509109d79a7fcdf7963d027c65836bd979fd1a2918e0c83278777bd686f9deee38812aa5
|
data/_data/header/en/data.json
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
{"filewords":{"name":"","data":[{"word":"","x":"","gameName":""}]},"filepath":{},"title":"4 letter words with these letters and a blank- The most useful word finder tool ","h1":"Here's the full list of 4 letter words with these letters and a blank","h2":"Find all 4 letter words with these letters and a blank","meta":"Find words using a combination of letters and blanks words using a combination of letters and blanks without any constrain. Use our advanced word search tool and get your desired result.","featureNo":"02","feature_title":"Features","blogNo":"03","blog_title":"Blog","FaqNo":"04","Faq_title":"FAQ","aboutNo":"05","about_title":"About","featureList":[{"feature_heading":"","feature_text":"","fa_class":"../assets/images/star.svg"},{"feature_heading":"","feature_text":"","fa_class":"../assets/images/star.svg"},{"feature_heading":"","feature_text":"","fa_class":"../assets/images/star.svg"},{"feature_heading":"","feature_text":"","fa_class":"../assets/images/star.svg"},{"feature_heading":"","feature_text":"","fa_class":"../assets/images/star.svg"},{"feature_heading":"","feature_text":"","fa_class":"../assets/images/star.svg"}],"faqList":[{"Question":"","Answer":""}]}
|
data/_includes/section/home.html
CHANGED
@@ -20,10 +20,14 @@
|
|
20
20
|
<div class="serachSection">
|
21
21
|
<div class="position-relative serachBox">
|
22
22
|
<form action="/result" id='form' method="GET">
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
<div style="position: relative;">
|
24
|
+
<input style="border-radius: {{CustomColor.inputFieldBorder}}" type="text"
|
25
|
+
placeholder="Enter up to 15 letters?" class="txtBox" value='' name="search" maxlength="15"
|
26
|
+
required autocomplete="off">
|
27
|
+
<span class="focus-border">
|
28
|
+
<i></i>
|
29
|
+
</span>
|
30
|
+
</div>
|
27
31
|
<input style="border-radius: {{CustomColor.inputFieldBorder}};
|
28
32
|
background-color: {{CustomColor.inputButtonBg}};" type="submit" class="serachBtn" id="serach"
|
29
33
|
value>
|
@@ -19,9 +19,15 @@
|
|
19
19
|
<div class="serachSection">
|
20
20
|
<div class="position-relative serachBox">
|
21
21
|
<form action="{{page.url}}/result" id='form' method="GET">
|
22
|
-
<
|
23
|
-
|
24
|
-
|
22
|
+
<div style="position: relative;">
|
23
|
+
<input style="border-radius: {{CustomColor.inputFieldBorder}}" type="text"
|
24
|
+
placeholder="Enter up to 15 letters?" class="txtBox" value='' name="search" maxlength="15"
|
25
|
+
required autocomplete="off">
|
26
|
+
<span class="focus-border">
|
27
|
+
<i></i>
|
28
|
+
</span>
|
29
|
+
</div>
|
30
|
+
|
25
31
|
<input
|
26
32
|
style="border-radius: {{CustomColor.inputFieldBorder}}; background-color: {{CustomColor.inputButtonBg}};"
|
27
33
|
type="submit" class="serachBtn" id="serach" value>
|
data/_layouts/default.html
CHANGED
@@ -57,8 +57,10 @@
|
|
57
57
|
<script defer src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js"></script>
|
58
58
|
<script>
|
59
59
|
let txtBox = document.querySelector('.txtBox')
|
60
|
+
let focusBorder = document.querySelector('.focus-border')
|
60
61
|
txtBox.focus()
|
61
62
|
txtBox.addEventListener('input', (e) => {
|
63
|
+
focusBorder.classList.remove("focus-border")
|
62
64
|
e.target.value = e.target.value.replace(/[^a-zA-Z? ]/g, "")
|
63
65
|
let rangeOfBlankTile = '{{ page.blanktilerange }}'
|
64
66
|
if (rangeOfBlankTile === "") {
|
data/_layouts/page.html
CHANGED
@@ -59,6 +59,17 @@
|
|
59
59
|
|
60
60
|
<link rel="stylesheet"
|
61
61
|
href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.5.0/font/bootstrap-icons.min.css" />
|
62
|
+
<script src="//cdnjs.cloudflare.com/ajax/libs/webfont/1.6.28/webfontloader.js"></script>
|
63
|
+
<script>WebFont.load({ google: { families: ['Poppins:400&display=swap'] } })</script>
|
64
|
+
<script>
|
65
|
+
(function () {
|
66
|
+
d = document;
|
67
|
+
c = d.createElement('link');
|
68
|
+
c.href = '//cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css';
|
69
|
+
c.rel = 'stylesheet';
|
70
|
+
d.head.appendChild(c);
|
71
|
+
})();
|
72
|
+
</script>
|
62
73
|
<script data-range="{{page.blanktilerange}}" src="/assets/js/wordScrabble.js"></script>
|
63
74
|
<script defer src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
|
64
75
|
<script defer src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js"></script>
|
data/_layouts/page2.html
CHANGED
@@ -57,7 +57,18 @@
|
|
57
57
|
|
58
58
|
<link rel="stylesheet"
|
59
59
|
href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.5.0/font/bootstrap-icons.min.css" />
|
60
|
-
<script src="/
|
60
|
+
<script src="//cdnjs.cloudflare.com/ajax/libs/webfont/1.6.28/webfontloader.js"></script>
|
61
|
+
<script>WebFont.load({ google: { families: ['Poppins:400&display=swap'] } })</script>
|
62
|
+
<script>
|
63
|
+
(function () {
|
64
|
+
d = document;
|
65
|
+
c = d.createElement('link');
|
66
|
+
c.href = '//cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css';
|
67
|
+
c.rel = 'stylesheet';
|
68
|
+
d.head.appendChild(c);
|
69
|
+
})();
|
70
|
+
</script>
|
71
|
+
<script src="/assets/js/X-letter.js" data-letter="{{page.letter}}" data-ablank="{{page.ablank}}"></script>
|
61
72
|
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
|
62
73
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js"></script>
|
63
74
|
{% include Monumetric/Monumetric.html %}
|
data/assets/css/home.css
CHANGED
@@ -55,6 +55,77 @@ input:-webkit-autofill:active {
|
|
55
55
|
outline: none;
|
56
56
|
position: relative;
|
57
57
|
}
|
58
|
+
|
59
|
+
.txtBox~.focus-border:before,
|
60
|
+
.txtBox~.focus-border:after {
|
61
|
+
content: "";
|
62
|
+
position: absolute;
|
63
|
+
top: 0;
|
64
|
+
right: 0;
|
65
|
+
width: 0;
|
66
|
+
height: 2px;
|
67
|
+
background-color: #000;
|
68
|
+
transition: .5s;
|
69
|
+
transition-delay: 0.2s;
|
70
|
+
z-index: 9;
|
71
|
+
}
|
72
|
+
.txtBox~.focus-border:after {
|
73
|
+
top: auto;
|
74
|
+
bottom: 0;
|
75
|
+
right: auto;
|
76
|
+
left: 0;
|
77
|
+
transition-delay: 0.6s;
|
78
|
+
}
|
79
|
+
.txtBox:focus~.focus-border:before,
|
80
|
+
.txtBox:focus~.focus-border:after,
|
81
|
+
.has-content.txtBox~.focus-border:before,
|
82
|
+
.has-content.txtBox~.focus-border:after {
|
83
|
+
width: 100%;
|
84
|
+
transition: .5s;
|
85
|
+
transition-delay: 0.6s;
|
86
|
+
}
|
87
|
+
|
88
|
+
.txtBox:focus~.focus-border:after,
|
89
|
+
.has-content.txtBox~.focus-border:after {
|
90
|
+
transition-delay: 0.2s;
|
91
|
+
}
|
92
|
+
|
93
|
+
.txtBox:focus~.focus-border i:before,
|
94
|
+
.txtBox:focus~.focus-border i:after,
|
95
|
+
.has-content.txtBox~.focus-border i:before,
|
96
|
+
.has-content.txtBox~.focus-border i:after {
|
97
|
+
height: 100%;
|
98
|
+
transition: 0.2s;
|
99
|
+
}
|
100
|
+
|
101
|
+
.txtBox:focus~.focus-border i:after,
|
102
|
+
.has-conten.txtBox~.focus-border i:after {
|
103
|
+
transition-delay: 0.4s;
|
104
|
+
}
|
105
|
+
.txtBox~.focus-border i:before,
|
106
|
+
.txtBox~.focus-border i:after {
|
107
|
+
content: "";
|
108
|
+
position: absolute;
|
109
|
+
top: 0;
|
110
|
+
left: 0;
|
111
|
+
width: 2px;
|
112
|
+
height: 0;
|
113
|
+
background-color: #000;
|
114
|
+
transition: .5s;
|
115
|
+
}
|
116
|
+
|
117
|
+
.txtBox~.focus-border i:after {
|
118
|
+
left: auto;
|
119
|
+
right: 0;
|
120
|
+
top: auto;
|
121
|
+
bottom: 0;
|
122
|
+
transition-delay: 0.4s;
|
123
|
+
}
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
|
58
129
|
/* ravi */
|
59
130
|
.txtBox::placeholder {
|
60
131
|
/* Chrome, Firefox, Opera, Safari 10.1+ */
|
data/assets/js/X-letter.js
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
const getScript=document.currentScript
|
4
4
|
const letterLen = getScript.dataset.letter
|
5
5
|
|
6
|
+
const ablank = getScript.dataset.ablank
|
7
|
+
|
6
8
|
let errorMsg = document.querySelector('.errorMsg')
|
7
9
|
let script = document.currentScript
|
8
10
|
let wordCount = document.querySelector('.wordCount')
|
@@ -24,6 +26,16 @@ tab_link_wrapper.style.display = "none"
|
|
24
26
|
let txtBox = document.querySelector('.txtBox')
|
25
27
|
txtBox.focus()
|
26
28
|
txtBox.value = serachValue
|
29
|
+
|
30
|
+
|
31
|
+
if(ablank){
|
32
|
+
if(!serachValue.includes("?")){
|
33
|
+
if(serachValue.length < letterLen){
|
34
|
+
serachValue = serachValue + '?'
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
27
39
|
txtBox.addEventListener('input', (e) => {
|
28
40
|
let rangeOfBlankTile = script.dataset.range
|
29
41
|
e.target.value = e.target.value.replace(/[^a-zA-Z? ]/g, '')
|
@@ -80,6 +92,7 @@ const getData = async (serachValue) => {
|
|
80
92
|
getData(serachValue.toLowerCase())
|
81
93
|
|
82
94
|
function x_with_letters(data) {
|
95
|
+
console.log(data);
|
83
96
|
if (typeof data === 'string') {
|
84
97
|
errorMsg.innerHTML = 'No words found'
|
85
98
|
wordCount.innerHTML = `<strong>Found 0 words with letters ${serachValue.split(
|
@@ -93,7 +106,7 @@ function x_with_letters(data) {
|
|
93
106
|
if (letterLen) {
|
94
107
|
filterData = data.filter((item) => item.length == letterLen)
|
95
108
|
}
|
96
|
-
|
109
|
+
|
97
110
|
|
98
111
|
if (prefixValue) {
|
99
112
|
filterData = filterData.filter((item2) =>
|
@@ -316,8 +329,42 @@ function sortPointsby(sortValue, data, i) {
|
|
316
329
|
})
|
317
330
|
})
|
318
331
|
const result = newArray.map((item) => {
|
319
|
-
|
320
|
-
|
332
|
+
var text1 = serachValue.replace('?', '')
|
333
|
+
var text2 = item.words
|
334
|
+
var text3 = item.words
|
335
|
+
function findIndex(str, char) {
|
336
|
+
const strLength = str.length
|
337
|
+
const indexes = []
|
338
|
+
let newStr = str
|
339
|
+
while (newStr && newStr.indexOf(char) > -1) {
|
340
|
+
indexes.push(newStr.indexOf(char) + strLength - newStr.length)
|
341
|
+
newStr = newStr.substring(newStr.indexOf(char) + 1)
|
342
|
+
newStr = newStr.substring(newStr.indexOf(char) + 1)
|
343
|
+
}
|
344
|
+
return indexes
|
345
|
+
}
|
346
|
+
let chars = text1.split('')
|
347
|
+
let indexs = []
|
348
|
+
chars.map((i) => {
|
349
|
+
let findIndexes = findIndex(text3, i)
|
350
|
+
if (findIndexes.length > 0) {
|
351
|
+
text3 = text3.split('')
|
352
|
+
text3[findIndexes] = '$'
|
353
|
+
text3 = text3.join('')
|
354
|
+
indexs = [...indexs, ...findIndexes]
|
355
|
+
}
|
356
|
+
})
|
357
|
+
let itemHtml = ''
|
358
|
+
text2.split('').map((itemValue, index) => {
|
359
|
+
let check = indexs.find((i) => i === index)
|
360
|
+
if (check !== undefined) {
|
361
|
+
itemHtml += `${itemValue}`
|
362
|
+
} else {
|
363
|
+
itemHtml += `<span class='highlight'>${itemValue}</span>`
|
364
|
+
}
|
365
|
+
})
|
366
|
+
return `<a class="anchor__style" title="Lookup ${item} in Dictionary" target="_blank" href="/word-meaning?search=${item.words}">
|
367
|
+
<li>${itemHtml}
|
321
368
|
<span class="points" value="${item.points}" style="position:relative; top:4px; font-size:12px"> ${item.points}</span>
|
322
369
|
</li></a>`
|
323
370
|
})
|
@@ -336,7 +383,6 @@ function sortPointsby(sortValue, data, i) {
|
|
336
383
|
`
|
337
384
|
}
|
338
385
|
}
|
339
|
-
|
340
386
|
// sort by aplhabets
|
341
387
|
function sortby(sortBool, data, i) {
|
342
388
|
if (sortBool) {
|
@@ -349,8 +395,44 @@ function sortby(sortBool, data, i) {
|
|
349
395
|
for (let i = 0; i < item.length; i++) {
|
350
396
|
sum += ScrabbleLetterScore[item[i]] || 0 // for unknown characters
|
351
397
|
}
|
352
|
-
|
353
|
-
|
398
|
+
|
399
|
+
var text1 = serachValue.replace('?', '')
|
400
|
+
var text2 = item
|
401
|
+
var text3 = item
|
402
|
+
function findIndex(str, char) {
|
403
|
+
const strLength = str.length
|
404
|
+
const indexes = []
|
405
|
+
let newStr = str
|
406
|
+
while (newStr && newStr.indexOf(char) > -1) {
|
407
|
+
indexes.push(newStr.indexOf(char) + strLength - newStr.length)
|
408
|
+
newStr = newStr.substring(newStr.indexOf(char) + 1)
|
409
|
+
newStr = newStr.substring(newStr.indexOf(char) + 1)
|
410
|
+
}
|
411
|
+
return indexes
|
412
|
+
}
|
413
|
+
let chars = text1.split('')
|
414
|
+
let indexs = []
|
415
|
+
chars.map((i) => {
|
416
|
+
let findIndexes = findIndex(text3, i)
|
417
|
+
if (findIndexes.length > 0) {
|
418
|
+
text3 = text3.split('')
|
419
|
+
text3[findIndexes] = '$'
|
420
|
+
text3 = text3.join('')
|
421
|
+
indexs = [...indexs, ...findIndexes]
|
422
|
+
}
|
423
|
+
})
|
424
|
+
let itemHtml = ''
|
425
|
+
text2.split('').map((itemValue, index) => {
|
426
|
+
let check = indexs.find((i) => i === index)
|
427
|
+
if (check !== undefined) {
|
428
|
+
itemHtml += `${itemValue}`
|
429
|
+
} else {
|
430
|
+
itemHtml += `<span class='highlight'>${itemValue}</span>`
|
431
|
+
}
|
432
|
+
})
|
433
|
+
|
434
|
+
return `<a class="anchor__style" title="Lookup ${item} in Dictionary" target="_blank" href="/word-meaning?search=${item}">
|
435
|
+
<li>${itemHtml}
|
354
436
|
<span class="points" value="${sum}" style="position:relative; top:4px; font-size:12px"> ${sum}</span>
|
355
437
|
</li></a>`
|
356
438
|
})
|
@@ -378,8 +460,44 @@ function sortby(sortBool, data, i) {
|
|
378
460
|
for (let i = 0; i < item.length; i++) {
|
379
461
|
sum += ScrabbleLetterScore[item[i]] || 0 // for unknown characters
|
380
462
|
}
|
381
|
-
|
382
|
-
|
463
|
+
|
464
|
+
var text1 = serachValue.replace('?', '')
|
465
|
+
var text2 = item
|
466
|
+
var text3 = item
|
467
|
+
function findIndex(str, char) {
|
468
|
+
const strLength = str.length
|
469
|
+
const indexes = []
|
470
|
+
let newStr = str
|
471
|
+
while (newStr && newStr.indexOf(char) > -1) {
|
472
|
+
indexes.push(newStr.indexOf(char) + strLength - newStr.length)
|
473
|
+
newStr = newStr.substring(newStr.indexOf(char) + 1)
|
474
|
+
newStr = newStr.substring(newStr.indexOf(char) + 1)
|
475
|
+
}
|
476
|
+
return indexes
|
477
|
+
}
|
478
|
+
let chars = text1.split('')
|
479
|
+
let indexs = []
|
480
|
+
chars.map((i) => {
|
481
|
+
let findIndexes = findIndex(text3, i)
|
482
|
+
if (findIndexes.length > 0) {
|
483
|
+
text3 = text3.split('')
|
484
|
+
text3[findIndexes] = '$'
|
485
|
+
text3 = text3.join('')
|
486
|
+
indexs = [...indexs, ...findIndexes]
|
487
|
+
}
|
488
|
+
})
|
489
|
+
let itemHtml = ''
|
490
|
+
text2.split('').map((itemValue, index) => {
|
491
|
+
let check = indexs.find((i) => i === index)
|
492
|
+
if (check !== undefined) {
|
493
|
+
itemHtml += `${itemValue}`
|
494
|
+
} else {
|
495
|
+
itemHtml += `<span class='highlight'>${itemValue}</span>`
|
496
|
+
}
|
497
|
+
})
|
498
|
+
|
499
|
+
return `<a class="anchor__style" title="Lookup ${item} in Dictionary" target="_blank" href="/word-meaning?search=${item}">
|
500
|
+
<li>${itemHtml}
|
383
501
|
<span class="points" value="${sum}" style="position:relative; top:4px; font-size:12px"> ${sum}</span>
|
384
502
|
</li></a>`
|
385
503
|
})
|
data/assets/js/wordScrabble.js
CHANGED
@@ -354,7 +354,7 @@ function sortPointsby(sortValue, data) {
|
|
354
354
|
itemHtml += `<span class='highlight'>${itemValue}</span>`
|
355
355
|
}
|
356
356
|
})
|
357
|
-
return `<a class="anchor__style" title="Lookup
|
357
|
+
return `<a class="anchor__style" title="Lookup ${item} in Dictionary" target="_blank" href="/word-meaning?search=${item.words}">
|
358
358
|
<li>${itemHtml}
|
359
359
|
<span class="points" value="${item.points}" style="position:relative; top:4px; font-size:12px"> ${item.points}</span>
|
360
360
|
</li></a>`
|
@@ -426,7 +426,7 @@ function sortby(sortBool, data) {
|
|
426
426
|
sum += ScrabbleLetterScore[item[i]] || 0 // for unknown characters
|
427
427
|
}
|
428
428
|
|
429
|
-
return `<a class="anchor__style" title="Lookup
|
429
|
+
return `<a class="anchor__style" title="Lookup ${item} in Dictionary" target="_blank" href="/word-meaning?search=${item.toLowerCase()}">
|
430
430
|
<li>${itemHtml}
|
431
431
|
<span class="points" value="${sum}" style="position:relative; top:4px; font-size:12px"> ${sum}</span>
|
432
432
|
</li></a>`
|
@@ -489,7 +489,7 @@ function sortby(sortBool, data) {
|
|
489
489
|
sum += ScrabbleLetterScore[item[i]] || 0 // for unknown characters
|
490
490
|
}
|
491
491
|
|
492
|
-
return `<a class="anchor__style" title="Lookup
|
492
|
+
return `<a class="anchor__style" title="Lookup ${item} in Dictionary" target="_blank" href="/word-meaning?search=${item.toLowerCase()}">
|
493
493
|
<li>${itemHtml}
|
494
494
|
<span class="points" value="${sum}" style="position:relative; top:4px; font-size:12px"> ${sum}</span>
|
495
495
|
</li></a>`
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: word-games-theme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- manpreet-appscms
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -76,6 +76,7 @@ files:
|
|
76
76
|
- _data/header/en/data.json
|
77
77
|
- _data/theme/colors.json
|
78
78
|
- _data/wordfinderstrategy/en/how-to-use-5-letter-word-finder-to-score-high-in-scrabble-words-with-friends.json
|
79
|
+
- _data/wordgames/en/4_letter_words_with_these_letters_and_a_blank.json
|
79
80
|
- _data/wordgames/en/anagram_word_finder.json
|
80
81
|
- _data/wordgames/en/eight_letter_word_finder.json
|
81
82
|
- _data/wordgames/en/eleven_letter_word_finder.json
|