diff --git a/app/static/js/fillword.js b/app/static/js/fillword.js index ba249dd..573bb12 100644 --- a/app/static/js/fillword.js +++ b/app/static/js/fillword.js @@ -1,68 +1,44 @@ -let isRead = true; -let isChoose = true; -let reader = window.speechSynthesis; // 全局定义朗读者,以便朗读和暂停 -let current_position = 0; // 朗读文本的当前位置 -let original_position = 0; // 朗读文本的初始位置 -let to_speak = ""; // 朗读的初始内容 - +var isRead = true; +var isChoose = true; +const reader = window.speechSynthesis; // 全局定义朗读者,以便朗读和暂停 +//获取字符 function getWord() { - return window.getSelection ? window.getSelection() : document.selection.createRange().text; + return window.getSelection + ? window.getSelection() + : document.selection.createRange().text; } - -function fillInWord() { - let word = getWord(); - if (isRead) read(word); - if (!isChoose) return; - const element = document.getElementById("selected-words"); - element.value = element.value + " " + word; +//填充字符 +function fillingWord() { + let word = getWord(); + if (isRead) read(word); + if (!isChoose) return; + let element = document.getElementById("selected-words"); + element.value = element.value + " " + word; } - -document.getElementById("text-content").addEventListener("click", fillInWord, false); - -function makeUtterance(str, rate) { - let msg = new SpeechSynthesisUtterance(str); - msg.rate = rate; - msg.lang = "en-US"; // TODO: add language options menu - msg.onboundary = ev => { - if (ev.name == "word") { - current_position = ev.charIndex; - } - } - return msg; +document + .getElementById("text-content") + .addEventListener("click", fillingWord, false); +//朗读单词 +//@word 要朗读的单词 +function read(word) { + //关闭当前正在读的单词 + reader.cancel(); + //创建新的朗读任务 + let msg = new SpeechSynthesisUtterance(word); + reader.speak(msg); } - -const sliderValue = document.getElementById("rangeValue"); // 显示值 -const inputSlider = document.getElementById("rangeComponent"); // 滑块元素 -inputSlider.oninput = () => { - let value = inputSlider.value; // 获取滑块的值 - sliderValue.textContent = value + '×'; - if (!reader.speaking) return; - reader.cancel(); - let msg = makeUtterance(to_speak.substring(original_position + current_position), value); - original_position = original_position + current_position; - current_position = 0; - reader.speak(msg); -}; - -function read(s) { - to_speak = s.toString(); - original_position = 0; - current_position = 0; - let msg = makeUtterance(to_speak, inputSlider.value); - reader.speak(msg); -} - +//关闭正在读的单词 function onReadClick() { - isRead = !isRead; - if (!isRead) { - reader.cancel(); - } + let isRead = !isRead; + if (!isRead) { + reader.cancel(); + } } - +//取消当前选择 function onChooseClick() { - isChoose = !isChoose; + isChoose = !isChoose; } function stopRead() { - reader.cancel(); -} \ No newline at end of file + reader.cancel(); +} diff --git a/app/templates/userpage_get.html b/app/templates/userpage_get.html index b5e16aa..f210745 100644 --- a/app/templates/userpage_get.html +++ b/app/templates/userpage_get.html @@ -1,154 +1,265 @@ - - - - + + + + - {{ yml['header'] | safe }} - {% if yml['css']['item'] %} - {% for css in yml['css']['item'] %} - - {% endfor %} - {% endif %} - {% if yml['js']['head'] %} - {% for js in yml['js']['head'] %} - - {% endfor %} - {% endif %} + {{ yml['header'] | safe }} {% if yml['css']['item'] %} {% for css in + yml['css']['item'] %} + + {% endfor %} {% endif %} {% if yml['js']['head'] %} {% for js in + yml['js']['head'] %} + + {% endfor %} {% endif %} EnglishPal Study Room for {{ username }} - - -
-

English Pal for {{ username }} - {% if username == admin_name %} - 管理 + + +

+

+ English Pal for + {{ username }} + {% if username == admin_name %} + 管理 {% endif %} - 退出 - 重设密码 -

-{# {% for message in flashed_messages %}#} {# 根据user_service.userpage,取消了参数flashed_messages,因此注释了这段代码 #} -{# #} -{# {% endfor %}#} + 退出 + 重设密码 +

+ {# {% for message in flashed_messages %}#} {# + 根据user_service.userpage,取消了参数flashed_messages,因此注释了这段代码 + #} {# + + #} {# {% endfor %}#} - 下一篇 Next Article - {% if session.get('existing_articles') != None and session.get('existing_articles')["index"] !=0 %} - 上一篇 Previous Article - {% endif %} + + 下一篇 Next Article + + {% if session.get('existing_articles') != None and + session.get('existing_articles')["index"] !=0 %} + + 上一篇 Previous Article + + {% endif %} -

阅读文章并回答问题

-
+

阅读文章并回答问题

+
{% if today_article %} - -

Article added on: {{ today_article["date"] }}


-

-

{{ today_article["article_title"] }}


-

{{ today_article["article_body"] }}


-

{{ today_article['source'] }}


-

{{ today_article['question'] }}


- - -
-
- {% else %} - - {% endif %} -
- - 生词高亮 - 大声朗读 - 划词入库 -
-
-
- -
- + -
-

收集生词吧 (可以在正文中划词,也可以复制黏贴)

-
-
- - -
- {% if session.get['thisWord'] %} - - {% endif %} - - {% if d_len > 0 %} -

- 我的生词簿 - -

- -
- {% for x in lst3 %} - {% set word = x[0] %} - {% set freq = x[1] %} - {% if session.get('thisWord') == x[0] and session.get('time') == 1 %} - {% endif %} -

- {{ word }} - ( {{ freq }} ) - 熟悉 - 不熟悉 - 删除 -

- {% endfor %} + + + +
- - {% endif %} -
-{{ yml['footer'] | safe }} -{% if yml['js']['bottom'] %} - {% for js in yml['js']['bottom'] %} - - {% endfor %} -{% endif %} - - - +