diff --git a/css/feminitives.css b/css/feminitives.css index b7d7205..60794c1 100644 --- a/css/feminitives.css +++ b/css/feminitives.css @@ -22,11 +22,17 @@ margin: 0; } +#definition-help { + text-align: justify; + font-size: 16px; +} + #definition-dict { text-align: center; height: 20px; font-size: 18px; margin-top: 25px; + margin-bottom: 25px; } #definition-image { diff --git a/gofem.html b/gofem.html index 09cde9a..7971d73 100644 --- a/gofem.html +++ b/gofem.html @@ -16,7 +16,7 @@

Феминизатор v1.0

- +
@@ -26,7 +26,7 @@
- + diff --git a/js/feminitives.js b/js/feminitives.js index 068d0f7..ef93476 100644 --- a/js/feminitives.js +++ b/js/feminitives.js @@ -1,7 +1,19 @@ // [ ] TODO: vk.com // [ ] TODO: валидация +// [ ] TODO: справка // [ ] TODO: ссылки на примеры +//Иерархия элементов на странице +var HTML = { + container: "", + _select: function(element) { return document.getElementById(this.container + "-" + element); }, + input: function() { return this._select("word"); }, + dict: function() { return this._select("dict"); }, + content: function() { return this._select("content"); }, + full: function() { return this._select("full"); }, + image: function() { return this._select("image"); } +} + var FEM = {}; //Правила создания феминитивов @@ -129,14 +141,12 @@ function construct_feminitive(stem, ending, gap) { } //Сохранение изображения с феминитивом -function download_image(container) { - html2canvas(document.getElementById(container), { +function download_image() { + html2canvas(HTML.image(), { onrendered: function (canvas) { var a = document.createElement('a'); a.href = canvas.toDataURL(); - a.download = document.getElementById(container - .replace(/-.*$/,"-content")) - .innerHTML + '.png'; + a.download = HTML.content().innerHTML + '.png'; a.click(); } }); @@ -166,7 +176,7 @@ function make_feminitives(word) { } //Запрос значения слова в викисловаре -function get_wiktionary(term, container) { +function get_wiktionary(term) { var cors_url = "https://cors.now.sh/"; var wiki_url = cors_url + "https://ru.wiktionary.org/w/index.php?title=" + term + "&action=raw"; @@ -219,7 +229,7 @@ function get_wiktionary(term, container) { console.log(true_definition); console.log(article); - document.getElementById(container).innerHTML = article; + HTML.full().innerHTML = article; } xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); @@ -235,26 +245,29 @@ function get_wiktionary(term, container) { } //Создание и вывод феминитива -function tr(container) { - document.getElementById(container + "-dict").innerHTML = ""; +function tr() { + HTML.dict().innerHTML = ""; //Исходное слово - var wd = document.getElementById(container + "-word").value.trim().split(" ")[0]; + var wd = HTML.input().value.trim().split(" ")[0]; //Вывод дефиниции - get_wiktionary(wd, container + "-full"); + get_wiktionary(wd); var feminitives = make_feminitives(wd); //Вывод информации - document.getElementById(container + "-dict").innerHTML = feminitives[1].join(" | "); - document.getElementById(container + "-content").innerHTML = feminitives[0].replace(/(.)/, s => s.toUpperCase()); + HTML.dict().innerHTML = feminitives[1].join(" | "); + HTML.content().innerHTML = feminitives[0].replace(/(.)/, s => s.toUpperCase()); } //Инициализация с разбором адресной строки function init(container) { + //Задание базового id для всех элементов + HTML.container = container; + //Конвертирование по нажатию - document.getElementById(container).addEventListener("keyup", function(event) { + HTML.input().addEventListener("keyup", function(event) { event.preventDefault(); if (event.keyCode == 13) { tr(container); @@ -274,7 +287,7 @@ function init(container) { } if (window.location.search.substring(1)) { - document.getElementById(container + "-word").value = decodeURIComponent(querySt("word").replace(/\+/g," ")); + HTML.input().value = decodeURIComponent(querySt("word").replace(/\+/g," ")); tr(container); } }