Merge branch 'master' into dev
# Conflicts: # .github/workflows/deploy-pages.yml # README.md # components.d.ts # index.html # package.json # pnpm-lock.yaml # src/App.vue # src/components/Backgorund.vue # src/components/Setting.vue # src/components/toolbar/FeedbackModal.vue # src/components/toolbar/index.vue # src/pages/dict/components/WordDictDetail.vue # src/pages/practice/practice-word/Typing.vue # src/pages/practice/practice-word/TypingWord.vue # src/stores/base.ts # src/stores/setting.ts
This commit is contained in:
20
.github/ISSUE_TEMPLATE/功能请求---feature-request.md
vendored
20
.github/ISSUE_TEMPLATE/功能请求---feature-request.md
vendored
@@ -1,20 +0,0 @@
|
||||
---
|
||||
name: 功能请求 | Feature request
|
||||
about: 创建一个功能请求 | Create a feature request
|
||||
title: 功能请求 | Feature request
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
1、描述
|
||||
请尽可能详细描述您需要的特性。
|
||||
|
||||
2、这个功能解决了什么问题?
|
||||
请尽可能详尽地说明这个需求的用例和场景
|
||||
|
||||
1. Description
|
||||
Please provide as detailed a description as possible of the features you need.
|
||||
|
||||
2. What problem does this feature solve?
|
||||
Please provide as detailed a description of the use cases and scenarios for this requirement as possible
|
||||
33
.github/ISSUE_TEMPLATE/单词错误---word-error.md
vendored
33
.github/ISSUE_TEMPLATE/单词错误---word-error.md
vendored
@@ -1,33 +0,0 @@
|
||||
---
|
||||
name: 单词错误 | Word error
|
||||
about: 创建一个单词释义错误、音标错误的报告 | Create a report of incorrect word definitions and phonetic
|
||||
errors
|
||||
title: 单词错误 | Word error
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
1、词典名字
|
||||
在这里填写词典名字
|
||||
|
||||
2、单词
|
||||
在这里填写单词
|
||||
|
||||
3、错误内容
|
||||
在这里填写错误内容
|
||||
|
||||
4、截图
|
||||
可以直接按Ctrl + V 复制在这里(复制成功后会显示一串地址)
|
||||
|
||||
1. Dictionary name
|
||||
Fill in the dictionary name here
|
||||
|
||||
2. Words
|
||||
Fill in the words here
|
||||
|
||||
3. Error content
|
||||
Fill in the incorrect content here
|
||||
|
||||
4. Screenshot
|
||||
You can directly press Ctrl+V to copy here (a string of addresses will be displayed after successful copying)
|
||||
24
.github/ISSUE_TEMPLATE/问题报告---bug-report-.md
vendored
24
.github/ISSUE_TEMPLATE/问题报告---bug-report-.md
vendored
@@ -1,24 +0,0 @@
|
||||
---
|
||||
name: '问题报告 | Bug report '
|
||||
about: '创建一个问题报告 | Create a bug report '
|
||||
title: '问题报告 | Bug report '
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
### 注意:请确认问题可以在浏览器的 无痕模式 下复现,而不是自己安装的其他插件或脚本导致的
|
||||
|
||||
1、描述
|
||||
在这里填写问题描述
|
||||
|
||||
2、截图
|
||||
可以直接按Ctrl + V 复制在这里(复制成功后会显示一串地址)
|
||||
|
||||
### Note: Please confirm that the problem can be reproduced in the browser's traceless mode, rather than being caused by other plugins or scripts installed by yourself
|
||||
|
||||
1. Description
|
||||
Fill in the problem description here
|
||||
|
||||
2. Screenshot
|
||||
You can directly press Ctrl+V to copy here (a string of addresses will be displayed after successful copying)
|
||||
6
Dockerfile
Normal file
6
Dockerfile
Normal file
@@ -0,0 +1,6 @@
|
||||
FROM node
|
||||
COPY . /root/typing-word
|
||||
WORKDIR /root/typing-word
|
||||
EXPOSE 3000
|
||||
RUN npm install
|
||||
CMD ["npm", "start"]
|
||||
24
README.md
24
README.md
@@ -10,13 +10,16 @@
|
||||
<a href="https://github.com/zyronon/type-word/blob/master/LICENSE"><img src="https://img.shields.io/github/license/zyronon/type-word" alt="License"></a>
|
||||
<a><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg"/></a>
|
||||
<a><img src="https://img.shields.io/badge/Powered%20by-Vue-blue"/></a>
|
||||
<a href="https://hellogithub.com/repository/eb70616d65604458908fc1736e7d41fc" target="_blank"><img src="https://abroad.hellogithub.com/v1/widgets/recommend.svg?rid=eb70616d65604458908fc1736e7d41fc&claim_uid=k5e4ZAqRjJEGzCW&theme=small" alt="Featured|HelloGitHub" /></a>
|
||||
</p>
|
||||
|
||||
<div align=center>
|
||||
<a href="https://trendshift.io/repositories/14139" target="_blank" class="trendshift-badge"><img src="https://trendshift.io/api/badge/repositories/14139" alt="TypeWords | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||
</div>
|
||||
|
||||
## 📸 在线访问
|
||||
|
||||
Github Pages: <https://typing-word.ttentau.top>(国内推荐访问这个)
|
||||
|
||||
Netlify: <https://typing-words.netlify.app/>(需要翻墙)
|
||||
Github Pages: <https://2study.top>
|
||||
|
||||
## 🛠 功能列表
|
||||
|
||||
@@ -57,22 +60,9 @@ API 等词库。 尽可能满足大部分用户对背单词的需求,也非常
|
||||
- 王陆雅思王听力语料库
|
||||
- 日语常见词、N1 ~ N5
|
||||
|
||||
## 📗 API 词库
|
||||
|
||||
- JavaScript API、Node.js API、Java API、Linux Command、C#: List API
|
||||
|
||||
词库均来源于(除文章以外):[qwerty-learner](https://github.com/RealKai42/qwerty-learner/)
|
||||
|
||||
如果您需要背诵其他词库,欢迎在 Issue 中提出
|
||||
|
||||
## 🎙 功能与建议
|
||||
|
||||
目前项目处于开发初期,新功能正在持续添加中,如果你对软件有任何功能与建议,欢迎在 Issues 中提出
|
||||
如果你也喜欢本软件的设计思想,欢迎提交 pr,非常感谢你对我们的支持!
|
||||
|
||||
### 灵感来源
|
||||
|
||||
[qwerty-learner](https://github.com/RealKai42/qwerty-learner/) 很喜欢作者的这个项目,但是它没有背单词所必备的 **生词本、错词本、已掌握** 的功能,可能是作者反复强调和提醒这个项目是“**为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件**”而不是一个“**背单词**”的软件吧,尽管绝大多数用户都是用它来背单词😂😂😂。
|
||||
|
||||
本项目参考其思路使用 Vue 重写了,并添加了 **生词本、错词本、已掌握** 、 **文章练习** 等功能
|
||||
|
||||
|
||||
|
||||
26
index.html
26
index.html
@@ -14,19 +14,19 @@
|
||||
})();
|
||||
</script>
|
||||
<script>
|
||||
var _hmt = _hmt || [];
|
||||
(function () {
|
||||
var hm = document.createElement("script");
|
||||
if (location.href.includes('netlify.app')) {
|
||||
hm.src = "https://hm.baidu.com/hm.js?d77525f1ad23698a2f34f54ff69c7750";
|
||||
} else if (location.href.includes('github.io')) {
|
||||
hm.src = "https://hm.baidu.com/hm.js?d77525f1ad23698a2f34f54ff69c7750";
|
||||
} else {
|
||||
hm.src = "https://hm.baidu.com/hm.js?c558fd8cc39d4cc233a9db44ff5b6e3f";
|
||||
}
|
||||
var s = document.getElementsByTagName("script")[0];
|
||||
s.parentNode.insertBefore(hm, s);
|
||||
})();
|
||||
if (!location.href.includes('localhost')
|
||||
&& !location.href.includes('192.168')
|
||||
&& !location.href.includes('172.16')
|
||||
&& !location.href.includes('10.0')
|
||||
) {
|
||||
var _hmt = _hmt || [];
|
||||
(function () {
|
||||
var hm = document.createElement("script");
|
||||
hm.src = "https://hm.baidu.com/hm.js?3dae52fcd5375a19905462e4ad3eb54e";
|
||||
var s = document.getElementsByTagName("script")[0];
|
||||
s.parentNode.insertBefore(hm, s);
|
||||
})();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
140
src/components/HostNotice.vue
Normal file
140
src/components/HostNotice.vue
Normal file
@@ -0,0 +1,140 @@
|
||||
<script setup lang="ts">
|
||||
|
||||
import BaseButton from "@/components/BaseButton.vue";
|
||||
import {watch} from "vue";
|
||||
import {useSettingStore} from "@/stores/setting.ts";
|
||||
|
||||
let settingStore = useSettingStore()
|
||||
let show = $ref(false)
|
||||
|
||||
function toggleNotice() {
|
||||
show = false
|
||||
}
|
||||
|
||||
watch(() => settingStore.load, (n) => {
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
if (params.get('from') === 'redirect') {
|
||||
show = true
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<transition name="right">
|
||||
<div class="HostNotice" v-if="show">
|
||||
<div class="notice">
|
||||
<div>检查到您是通过老域名 typing-word.ttentau.top 访问的本网站,特此弹窗提示!</div>
|
||||
<p>老域名已不再续费,7天后过期将无法访问,请更换为新域名 <span class="active"><a href="https://2study.top">2study.top</a></span>
|
||||
访问</p>
|
||||
</div>
|
||||
<div class="wrapper">
|
||||
<BaseButton size="large" @click="toggleNotice">关闭</BaseButton>
|
||||
</div>
|
||||
</div>
|
||||
</transition>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
.right-enter-active,
|
||||
.right-leave-active {
|
||||
transition: all .5s ease;
|
||||
}
|
||||
|
||||
.right-enter-from,
|
||||
.right-leave-to {
|
||||
transform: translateX(110%);
|
||||
}
|
||||
|
||||
.HostNotice {
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
z-index: 2;
|
||||
font-size: 20rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
background: var(--color-second-bg);
|
||||
padding: 30rem;
|
||||
border-radius: 12rem;
|
||||
width: 500rem;
|
||||
color: var(--color-font-1);
|
||||
line-height: 1.5;
|
||||
border: 1px solid var(--color-item-border);
|
||||
box-shadow: var(--shadow);
|
||||
|
||||
.notice {
|
||||
margin-top: 30rem;
|
||||
}
|
||||
|
||||
.active {
|
||||
color: var(--color-main-active);
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
.collect {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
.href-wrapper {
|
||||
display: flex;
|
||||
font-size: 16rem;
|
||||
align-items: center;
|
||||
gap: 10rem;
|
||||
|
||||
.round {
|
||||
color: var(--color-font-1);
|
||||
border-radius: 50rem;
|
||||
padding: 10rem 10rem;
|
||||
padding-left: 20rem;
|
||||
gap: 30rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background: var(--color-main-bg);
|
||||
|
||||
.href {
|
||||
font-size: 14rem;
|
||||
}
|
||||
}
|
||||
|
||||
.star {
|
||||
color: var(--color-main-active);
|
||||
}
|
||||
|
||||
.right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.collect-keyboard {
|
||||
margin-top: 20rem;
|
||||
font-size: 16rem;
|
||||
|
||||
span {
|
||||
margin-left: 10rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.close-wrapper {
|
||||
right: var(--space);
|
||||
top: var(--space);
|
||||
position: absolute;
|
||||
font-size: 14rem;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
color: var(--color-font-1);
|
||||
gap: 10rem;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user