Skip to content

Commit 2fff211

Browse files
Create index.html
> Created FantasyWordForge
1 parent bad34d8 commit 2fff211

1 file changed

Lines changed: 91 additions & 0 deletions

File tree

index.html

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
<script src="https://cdn.jsdelivr.net/gh/EpicAMPlifier/FantasyWordGenerator@latest/wordgen.js"></script>
2+
<style>
3+
.spinner{
4+
border: 4px solid #f3f3f3; /* Light grey */
5+
border-top: 4px solid #3498db; /* Blue */
6+
border-radius: 50%;
7+
width: 30px;
8+
height: 30px;
9+
animation: spin 1s linear infinite;
10+
display: inline-block;
11+
margin-left: 0px;
12+
}
13+
14+
@keyframes spin {
15+
0% { transform: rotate(0deg); }
16+
100% { transform: rotate(360deg); }
17+
}
18+
19+
#wordDisplay{
20+
white-space: pre-wrap;
21+
}
22+
</style>
23+
24+
<h1>Fantasy Word Generator</h1>
25+
<label for="style-input-field">Word Style:</label>
26+
<input type="text" placeholder="Language Code" id="style-input-field">
27+
<label for="number-input-field">Word Quantity</label>
28+
<input type="number" min="1" max="100" step="5" placeholder="1" id="number-input-field">
29+
<button id="submitButton" onclick="getFormValues()">Generate</button>
30+
<br>
31+
<input type="checkbox" id="paraBox" onclick="toggleBoxes()">Paragraph Mode</input>
32+
<input type="checkbox" id="advBox" onclick="toggleBoxes()">Advanced Options</input>
33+
<br>
34+
<label id="advLabel" for="style-input-field" hidden>Article Title:</label>
35+
<input type="text" placeholder="Title" id="title-input-field" hidden>
36+
<br>
37+
<br>
38+
<hr>
39+
<h2>Generated Text:</h2>
40+
<div id="loadSpinner" class="spinner" style="display: none;"></div>
41+
<div id="wordDisplay">...</div>
42+
<script>
43+
const wordDisplayDiv = document.getElementById('wordDisplay');
44+
const wordQInput = document.getElementById('number-input-field');
45+
const wordLangInput = document.getElementById('style-input-field');
46+
const advBox = document.getElementById('advBox');
47+
const advField = document.getElementById('title-input-field');
48+
const spinner = document.getElementById("loadSpinner");
49+
let spacer = "\n";
50+
let wordQ = 1;
51+
let langCode = 'en';
52+
53+
function getFormValues() {
54+
wordDisplayDiv.innerHTML = '';
55+
wordQ = parseInt(wordQInput.value) || 1;
56+
langCode = wordLangInput.value;
57+
generateResultsHTML();
58+
}
59+
60+
async function createResult(title, lang) {
61+
spinner.style.display = "inline-block";
62+
WordGen.letterLimit = 10;
63+
WordGen.sliceMax = 2000;
64+
const result = await WordGen.create(title, lang);
65+
66+
wordDisplayDiv.innerHTML = '';
67+
for (let i = 0; i < wordQ; i++) {
68+
let finalResult = result();
69+
wordDisplayDiv.textContent += finalResult + spacer;
70+
spinner.style.display = "none";
71+
}
72+
}
73+
74+
function toggleBoxes() {
75+
const advIsChecked = document.getElementById('advBox').checked;
76+
document.getElementById('title-input-field').hidden = !advIsChecked;
77+
document.getElementById('advLabel').hidden = !advIsChecked;
78+
79+
const paraIsChecked = document.getElementById('paraBox').checked;
80+
spacer = paraIsChecked ? " " : "\n";
81+
}
82+
83+
function generateResultsHTML() {
84+
let title = 'Hotel';
85+
86+
if (advBox.checked && advField.value) {
87+
title = advField.value;
88+
}
89+
createResult(title, langCode);
90+
}
91+
</script>

0 commit comments

Comments
 (0)