-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjavascript.js
155 lines (135 loc) · 13.1 KB
/
javascript.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
var kalevala = [ 'Mieleni minun tekevi, aivoni ajattelevi lähteäni laulamahan, saa\'ani sanelemahan, sukuvirttä suoltamahan, lajivirttä laulamahan. Sanat suussani sulavat, puhe\'et putoelevat, kielelleni kerkiävät, hampahilleni hajoovat.',
'Veli kulta, veikkoseni, kaunis kasvinkumppalini! Lähe nyt kanssa laulamahan, saa kera sanelemahan yhtehen yhyttyämme, kahta\'alta käytyämme! Harvoin yhtehen yhymme, saamme toinen toisihimme näillä raukoilla rajoilla, poloisilla Pohjan mailla.',
'Lyökämme käsi kätehen, sormet sormien lomahan, lauloaksemme hyviä, parahia pannaksemme, kuulla noien kultaisien, tietä mielitehtoisien, nuorisossa nousevassa, kansassa kasuavassa: noita saamia sanoja, virsiä virittämiä',
'vyöltä vanhan Väinämöisen, alta ahjon Ilmarisen, päästä kalvan Kaukomielen, Joukahaisen jousen tiestä, Pohjan peltojen periltä, Kalevalan kankahilta. Niit\' ennen isoni lauloi kirvesvartta vuollessansa; niitä äitini opetti väätessänsä värttinätä,',
'minun lasna lattialla eessä polven pyöriessä, maitopartana pahaisna, piimäsuuna pikkaraisna. Sampo ei puuttunut sanoja eikä Louhi luottehia: vanheni sanoihin sampo, katoi Louhi luottehisin, virsihin Vipunen kuoli, Lemminkäinen leikkilöihin.',
'Viel\' on muitaki sanoja, ongelmoita oppimia: tieohesta tempomia, kanervoista katkomia, risukoista riipomia, vesoista vetelemiä, päästä heinän hieromia, raitiolta ratkomia, paimenessa käyessäni, lasna karjanlaitumilla,',
'metisillä mättähillä, kultaisilla kunnahilla, mustan Muurikin jälessä, Kimmon kirjavan keralla. Vilu mulle virttä virkkoi, sae saatteli runoja. Virttä toista tuulet toivat, meren aaltoset ajoivat. Linnut liitteli sanoja, puien latvat lausehia.',
'Ne minä kerälle käärin, sovittelin sommelolle. Kerän pistin kelkkahani, sommelon rekoseheni; ve\'in kelkalla kotihin, rekosella riihen luoksi; panin aitan parven päähän vaskisehen vakkasehen. Viikon on virteni vilussa, kauan kaihossa sijaisnut.',
'Veänkö vilusta virret, lapan laulut pakkasesta, tuon tupahan vakkaseni, rasian rahin nenähän, alle kuulun kurkihirren, alle kaunihin katoksen, aukaisen sanaisen arkun, virsilippahan viritän, kerittelen pään kerältä, suorin solmun sommelolta?',
'Niin laulan hyvänki virren, kaunihinki kalkuttelen ruoalta rukihiselta, oluelta ohraiselta. Kun ei tuotane olutta, tarittane taarivettä, laulan suulta laihemmalta, vetoselta vierettelen tämän iltamme iloksi, päivän kuulun kunniaksi,',
'vaiko huomenen huviksi, uuen aamun alkeheksi. Noin kuulin saneltavaksi, tiesin virttä tehtäväksi: yksin meillä yöt tulevat, yksin päivät valkeavat; yksin syntyi Väinämöinen, ilmestyi ikirunoja kapehesta kantajasta, Ilmattaresta emosta.',
'Olipa impi, ilman tyttö, kave luonnotar korea. Piti viikoista pyhyyttä, iän kaiken impeyttä ilman pitkillä pihoilla, tasaisilla tanterilla. Ikävystyi aikojansa, ouostui elämätänsä, aina yksin ollessansa, impenä eläessänsä',
'ilman pitkillä pihoilla, avaroilla autioilla. Jop\' on astuiksen alemma, laskeusi lainehille, meren selvälle selälle, ulapalle aukealle. Tuli suuri tuulen puuska, iästä vihainen ilma; meren kuohuille kohotti, lainehille laikahutti.',
'Tuuli neittä tuuitteli, aalto impeä ajeli ympäri selän sinisen, lakkipäien lainehien: tuuli tuuli kohtuiseksi, meri paksuksi panevi. Kantoi kohtua kovoa, vatsantäyttä vaikeata vuotta seitsemän satoa, yheksän yrön ikeä;',
'eikä synny syntyminen, luovu luomatoin sikiö. Vieri impi veen emona. Uipi iät, uipi lännet, uipi luotehet, etelät, uipi kaikki ilman rannat tuskissa tulisen synnyn, vatsanvaivoissa kovissa; eikä synny syntyminen, luovu luomatoin sikiö.',
'Itkeä hyryttelevi; sanan virkkoi, noin nimesi: "Voi poloinen, päiviäni, lapsi kurja, kulkuani! Jo olen joutunut johonki: iäkseni ilman alle, tuulen tuuiteltavaksi, aaltojen ajeltavaksi näillä väljillä vesillä, lake\'illa lainehilla!',
'"Parempi olisi ollut ilman impenä eleä, kuin on nyt tätä nykyä vierähellä veen emona: vilu tääll\' on ollakseni, vaiva värjätelläkseni, aalloissa asuakseni, veessä vierielläkseni. "Oi Ukko, ylijumala, ilman kaiken kannattaja!',
'Tule tänne tarvittaissa, käy tänne kutsuttaessa! Päästä piika pintehestä, vaimo vatsanvääntehestä! Käy pian, välehen jou\'u, välehemmin tarvitahan!" Kului aikoa vähäisen, pirahteli pikkaraisen. Tuli sotka, suora lintu; lenteä lekuttelevi',
'etsien pesän sijoa, asuinmaata arvaellen. Lenti iät, lenti lännet, lenti luotehet, etelät. Ei löyä tiloa tuota, paikkoa pahintakana, kuhun laatisi pesänsä, ottaisi olosijansa. Liitelevi, laatelevi; arvelee, ajattelevi:',
'"Teenkö tuulehen tupani, aalloillen asuinsijani? Tuuli kaatavi tupasen, aalto vie asuinsijani." Niin silloin ve\'en emonen, veen emonen, ilman impi, nosti polvea merestä, lapaluuta lainehesta sotkalle pesän sijaksi, asuinmaaksi armahaksi.',
'Tuo sotka, sorea lintu, liiteleikse, laateleikse. Keksi polven veen emosen sinerväisellä selällä; luuli heinämättähäksi, tuoreheksi turpeheksi. Lentelevi, liitelevi, päähän polven laskeuvi. Siihen laativi pesänsä, muni kultaiset munansa:',
'kuusi kultaista munoa, rautamunan seitsemännen. Alkoi hautoa munia, päätä polven lämmitellä. Hautoi päivän, hautoi toisen, hautoi kohta kolmannenki. Jopa tuosta veen emonen, veen emonen, ilman impi, tuntevi tulistuvaksi, hipiänsä hiiltyväksi;',
'luuli polvensa palavan, kaikki suonensa sulavan. Vavahutti polveansa, järkytti jäseniänsä: munat vierähti vetehen, meren aaltohon ajaikse; karskahti munat muruiksi, katkieli kappaleiksi. Ei munat mutahan joua, siepalehet veen sekahan.',
'Muuttuivat murut hyviksi, kappalehet kaunoisiksi: munasen alainen puoli alaiseksi maaemäksi, munasen yläinen puoli yläiseksi taivahaksi; yläpuoli ruskeaista päivöseksi paistamahan, yläpuoli valkeaista, se kuuksi kumottamahan;',
'mi munassa kirjavaista, ne tähiksi taivahalle, mi munassa mustukaista, nepä ilman pilvilöiksi. Ajat eellehen menevät, vuoet tuota tuonnemmaksi uuen päivän paistaessa, uuen kuun kumottaessa. Aina uipi veen emonen, veen emonen, ilman impi,',
'noilla vienoilla vesillä, utuisilla lainehilla, eessänsä vesi vetelä, takanansa taivas selvä. Jo vuonna yheksäntenä, kymmenentenä kesänä nosti päätänsä merestä, kohottavi kokkoansa. Alkoi luoa luomiansa, saautella saamiansa',
'selvällä meren selällä, ulapalla aukealla. Kussa kättä käännähytti, siihen niemet siivoeli; kussa pohjasi jalalla, kalahauat kaivaeli; kussa ilman kuplistihe, siihen syöverit syventi. Kylin maahan kääntelihe: siihen sai sileät rannat;',
'jaloin maahan kääntelihe: siihen loi lohiapajat; pä\'in päätyi maata vasten: siihen laitteli lahelmat. Ui siitä ulomma maasta, seisattelihe selälle: luopi luotoja merehen, kasvatti salakaria laivan laskemasijaksi, merimiesten pään menoksi.',
'Jo oli saaret siivottuna, luotu luotoset merehen, ilman pielet pistettynä, maat ja manteret sanottu, kirjattu kivihin kirjat, veetty viivat kallioihin. Viel\' ei synny Väinämöinen, ilmau ikirunoja. Vaka vanha Väinämöinen kulki äitinsä kohussa',
'kolmekymmentä keseä, yhen verran talviaki, noilla vienoilla vesillä, utuisilla lainehilla. Arvelee, ajattelevi, miten olla, kuin eleä pimeässä piilossansa, asunnossa ahtahassa, kuss\' ei konsa kuuta nähnyt eikä päiveä havainnut.',
'Sanovi sanalla tuolla, lausui tuolla lausehella: "Kuu, keritä, päivyt, päästä, otava, yhä opeta miestä ouoilta ovilta, veräjiltä vierahilta, näiltä pieniltä pesiltä, asunnoilta ahtahilta! Saata maalle matkamiestä, ilmoillen inehmon lasta,',
'kuuta taivon katsomahan, päiveä ihoamahan, otavaista oppimahan, tähtiä tähyämähän!" Kun ei kuu kerittänynnä eikä päivyt päästänynnä, ouosteli aikojansa, tuskastui elämätänsä: liikahutti linnan portin sormella nimettömällä,',
'lukon luisen luikahutti vasemmalla varpahalla; tuli kynsin kynnykseltä, polvin porstuan ovelta. Siitä suistui suin merehen, käsin kääntyi lainehesen; jääpi mies meren varahan, uros aaltojen sekahan. Virui siellä viisi vuotta, sekä viisi jotta kuusi,',
'vuotta seitsemän, kaheksan. Seisottui selälle viimein, niemelle nimettömälle, manterelle puuttomalle. Polvin maasta ponnistihe, käsivarsin käännältihe. Nousi kuuta katsomahan, päiveä ihoamahan, otavaista oppimahan, tähtiä tähyämähän.',
'Se oli synty Väinämöisen, rotu rohkean runojan kapehesta kantajasta, Ilmattaresta emosta.',
]
var lineSlider = document.getElementById("line-range");
var lineCount = document.getElementById("line-count");
lineCount.innerHTML = lineSlider.value * 10; // Display the default Line Slider value
// Update the current Line Slider value (each time you drag the Line Slider handle)
lineSlider.oninput = function() {
lineCount.innerHTML = this.value * 10;
}
function newKalevala() {
var startLine = [];
var startLine = Math.floor(Math.random() * (kalevala.length) );
var endLine = [];
// If the sum of the start line + number of lines to generate is less
// than the total number of lines... Set the end line as the final line,
// And set the start line number as the end line minus the number of lines
// to be generated, so that the slider always represents how many lines
// are generated.
if ( ( startLine + parseInt(lineSlider.value)) >= kalevala.length - 1 ) {
var startLine = (kalevala.length - 1) - parseInt(lineSlider.value);
var endLine = kalevala.length - 1;
} else {
var endLine = startLine + parseInt(lineSlider.value) - 1;
}
// console.log('Start line: ' + startLine);
// console.log('End line: ' + endLine);
// Get the array of line numbers to get, from start line to end line
var kalevalaRange = [];
for (var i = startLine; i <= endLine; i++) {
kalevalaRange.push(i);
}
if (kalevalaRange.length > 0) {
var generatedKalevala = [];
for (const [i, line] of kalevalaRange.entries()) {
// Capitalise the first character of the line.
kalevalaLineCapitalised = kalevala[line].charAt(0).toUpperCase() + kalevala[line].slice(1);
// Replace the last comma or semicolon of each line with a full stop.
// Add a full stop to the end of each line if it still doesn't have one.
kalevalaLine = kalevalaLineCapitalised.replace(/[,;:]\s*$/, "").replace(/([^.])$/, '$1.');
// If selected, start the generated text with 'Mieleni minun tekevi,',
// Unless it is the first line, which always starts with 'Mieleni minun tekevi,'.
if (document.getElementById('mieleni').checked && i == 0 && startLine != 0) {
kalevalaLine = 'Mieleni minun tekevi, ' + kalevalaLine.charAt(0).toLowerCase() + kalevala[line].slice(1);
}
// Add breaks after every 2nd line of array
// (= 20 lines of Kalevala per paragraph).
if( i % 2 == 0 ){
kalevalaLine = '<p>' + kalevalaLine.split("\n").join('</p><p>');
}
generatedKalevala += " " + kalevalaLine;
}
}
// Insert generated Kalevala excerpt
var kalevalaFinal = document.getElementById("kalevala");
kalevalaFinal.innerHTML = generatedKalevala;
// Reveal the container if it was previously hidden
var kalevalaContainer = document.getElementById("kalevala--container");
if (kalevalaContainer.classList.contains('transparent', 'collapsed')) {
kalevalaContainer.classList.remove('transparent', 'collapsed');
}
// Set up the line range as a nice string.
var lineSpan = document.getElementById('line-span');
// Calculate the start line
var startLineCalculated = (startLine * 10) + 1;
// Calculate the end line
if (endLine === 34) {
// If the end line is the very last line,
// set it to 344 as this is the final line
// of the poem in this JS.
var endLineCalculated = 344;
} else {
var endLineCalculated = (endLine + 1) * 10;
}
lineSpan.innerHTML = '<p>Generated lines ' + startLineCalculated + ' to ' + endLineCalculated + ' of Kalevala.</p>';
// Reveal the copy text button
var copyButton = document.getElementById("copy-button");
if (copyButton.classList.contains('transparent')) {
copyButton.classList.remove('transparent');
}
// Reveal the last Celtic knot pattern button
var copyButton = document.getElementById("celtic-knot--last");
if (copyButton.classList.contains('transparent', 'collapsed')) {
copyButton.classList.remove('transparent', 'collapsed');
}
}
// Initialise Copy Text button
function copyToClipboard(id) {
var from = document.getElementById(id);
var range = document.createRange();
window.getSelection().removeAllRanges();
range.selectNode(from);
window.getSelection().addRange(range);
document.execCommand('copy');
window.getSelection().removeAllRanges();
var tooltip = document.getElementById("tooltip__text");
tooltip.classList.remove('transparent');
tooltip.innerHTML = "Copied! 🇫🇮";
setTimeout(function(){
tooltip.classList.add("transparent");
}, 1500);
}