1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/git9527-anki-awesome-select

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
back.html 8.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
git9527 Отправлено 05.03.2022 13:39 39057d4
<script>
// v1.0.0 - https://github.com/SimonLammer/anki-persistence/blob/eeb2e1a9e37c941dd63e1fe6c2a257f043c40e0d/script.js
if(void 0===window.Persistence){var _persistenceKey="github.com/SimonLammer/anki-persistence/",_defaultKey="_default";if(window.Persistence_sessionStorage=function(){var e=!1;try{"object"==typeof window.sessionStorage&&(e=!0,this.clear=function(){for(var e=0;e<sessionStorage.length;e++){var t=sessionStorage.key(e);0==t.indexOf(_persistenceKey)&&(sessionStorage.removeItem(t),e--)}},this.setItem=function(e,t){null==t&&(t=e,e=_defaultKey),sessionStorage.setItem(_persistenceKey+e,JSON.stringify(t))},this.getItem=function(e){return null==e&&(e=_defaultKey),JSON.parse(sessionStorage.getItem(_persistenceKey+e))},this.removeItem=function(e){null==e&&(e=_defaultKey),sessionStorage.removeItem(_persistenceKey+e)})}catch(e){}this.isAvailable=function(){return e}},window.Persistence_windowKey=function(e){var t=window[e],n=!1;"object"==typeof t&&(n=!0,this.clear=function(){t[_persistenceKey]={}},this.setItem=function(e,n){null==n&&(n=e,e=_defaultKey),t[_persistenceKey][e]=n},this.getItem=function(e){return null==e&&(e=_defaultKey),null==t[_persistenceKey][e]?null:t[_persistenceKey][e]},this.removeItem=function(e){null==e&&(e=_defaultKey),delete t[_persistenceKey][e]},null==t[_persistenceKey]&&this.clear()),this.isAvailable=function(){return n}},window.Persistence=new Persistence_sessionStorage,Persistence.isAvailable()||(window.Persistence=new Persistence_windowKey("py")),!Persistence.isAvailable()){var titleStartIndex=window.location.toString().indexOf("title"),titleContentIndex=window.location.toString().indexOf("main",titleStartIndex);titleStartIndex>0&&titleContentIndex>0&&titleContentIndex-titleStartIndex<10&&(window.Persistence=new Persistence_windowKey("qt"))}}
</script>
<div class="wrap-container">
<div class="body">
<div class="question">{{id}}.<span id="questionType" class="question-type"> </span>{{cloze:question}}</div>
<div class="options" id="back-options">
<li class="option"> </li>
<li class="option"> </li>
</div>
<div id="back-tag"></div>
</div>
<hr>
<script>
function showBackOptions() {
var _isNormalOption = isNormalOption()
var correctClass = _isNormalOption ? 'correct' : 'correct-light'
var wrongClass = _isNormalOption ? 'wrong' : 'wrong-light'
var shouldSelectClass = _isNormalOption ? 'should-select' : 'should-select-light'
var optionObjs = getOptionObjs()
var liList = ''
var isMulti = "{{answer}}".indexOf('||') > 0
for (var i in optionObjs) {
var _optionObj = optionObjs[i]
var _option = _optionObj.label
var _optionKey = _optionObj.key + ''
var _isSelected = isSelected(_optionKey)
var _isCorrect = isCorrectAnswer(_optionKey)
var _class = ''
if (isMulti) {
if (_isSelected && _isCorrect) {
_class = 'option ' + correctClass
} else if (!_isSelected && _isCorrect) {
_class = 'option ' + shouldSelectClass
} else if (_isSelected && !_isCorrect) {
_class = 'option ' + wrongClass
} else {
_class = 'option'
}
} else {
if (_isCorrect) {
_class = 'option ' + correctClass
} else {
_class = _isSelected ? 'option ' + wrongClass : 'option'
}
}
liList += "<li class='" + _class + "'>" + _option + "</li>"
}
document.getElementById("back-options").innerHTML = liList
}
function isCorrectAnswer(optionKey) {
return "{{answer}}".indexOf(optionKey) > -1
}
function isSelected(optionKey) {
if (!Persistence.isAvailable()) {
return false
}
return (Persistence.getItem('ANKI-SELECTED') || '').indexOf(optionKey) > -1
}
function getOptionObjs() {
var optionArray = '{{options}}'.trim().split("||")
var optionObjs = []
for (var i in optionArray) {
optionObjs.push({
key: Number.parseInt(i) + 1,
label: optionArray[i]
})
}
if (Persistence.isAvailable()) {
var optionsOrder = (Persistence.getItem('ANKI-OPTIONS-ORDER') || '').trim().split(',')
optionObjs = optionObjs.sort(function(a, b) {
return optionsOrder.indexOf(a.key + '') - optionsOrder.indexOf(b.key + '')
})
}
return optionObjs
}
function isNormalOption() {
if (Persistence.isAvailable()) {
return Persistence.getItem('ANKI-SETTINGS-NORMAL-OPTIONS') === '1'
} else {
return false
}
}
showBackOptions()
</script>
<div id="tips" class="tips">
</div>
</div>
<div id="notes-wrapper">
</div>
<div id="back-footer" class="footer">v3.16,作者:git9527</div>
<script>
function showTags () {
var tags = "{{Tags}}".trim()
if (!tags) return
tags = tags.split(' ')
var tagList = '<span class="tag-title">标签: </span>'
for (var tag of tags) {
if (tag) {
tagList += '<span class="single-tag">' + tag + '</span>'
}
}
document.getElementById("back-tag").innerHTML = tagList
}
function numberToAlpha(numbers) {
var optionsOrder = []
if (Persistence.isAvailable()) {
optionsOrder = Persistence.getItem('ANKI-OPTIONS-ORDER').trim().split(',')
}
var alphas = []
for (var i in numbers) {
var number = numbers[i]
if (number) {
if (optionsOrder.length === 0) {
alphas.push(String.fromCharCode(Number.parseInt(number) + 64))
} else {
alphas.push(String.fromCharCode(optionsOrder.indexOf(number) + 65))
}
}
}
alphas.sort()
return alphas.toString()
}
function showAnswers() {
var correctAnswers = numberToAlpha("{{answer}}".trim().split('||'))
var yourChoice = '未选择'
if (Persistence.isAvailable()) {
var selectedNumbers = (Persistence.getItem('ANKI-SELECTED') || '').trim().split(',')
yourChoice = numberToAlpha(selectedNumbers)
Persistence.setItem('ANKI-SELECTED', '')
var showQuestionType = Persistence.getItem('ANKI-SETTINGS-SHOW-QUESTION-TYPE') || '0'
if (showQuestionType === '1') {
document.getElementById('questionType').innerHTML = "{{answer}}".indexOf('||') > -1 ? '【多选】' : '【单选】'
} else {
document.getElementById('questionType').innerHTML = ' '
}
}
document.getElementById('tips').innerHTML = '正确选项:' + correctAnswers + '&nbsp;&nbsp;&nbsp;&nbsp;你的选项:' + yourChoice
}
function showNotes() {
if (document.getElementsByClassName('notes-container')[0].innerHTML) {
document.getElementById('notes-wrapper').style.display = 'block'
var totalHeight = window.innerHeight
var left = totalHeight - document.getElementsByClassName('wrap-container')[0].clientHeight - 140
if (left < 80) {
left = 80
}
var noteContainer = document.getElementsByClassName('notes-container')[0]
noteContainer.style.maxHeight = left + 'px'
noteContainer.style.display = 'block'
document.getElementsByClassName('notes-button-container')[0].style.display = 'none'
}
}
function showNoteButton() {
if (document.getElementsByClassName('notes-container')[0].innerHTML) {
document.getElementsByClassName('notes-button-container')[0].style.display = 'block'
document.getElementById('notes-wrapper').style.display = 'block'
}
}
function prepareNotes() {
document.getElementById('notes-wrapper').innerHTML = ' <hr>\n' +
' <div class="notes-button-container" onclick="showNotes()">\n' +
' <a href="javascript:showNotes();">显示解析</a>\n' +
' </div>\n' +
' <div class="notes-container"></div>'
document.getElementsByClassName('notes-container')[0].innerHTML = '{{notes}}'
if (Persistence.isAvailable()) {
if (Persistence.getItem('ANKI-SETTINGS-HIDE-NOTES') !== '1') {
showNotes()
} else {
showNoteButton()
}
} else {
showNotes()
}
}
function updateBackFooter() {
document.getElementById("back-footer").insertAdjacentHTML('beforeend', ',开源地址:<a href="https://github.com/git9527/anki-awesome-select">Github</a> | <a href="https://gitee.com/git9527/anki-awesome-select">Gitee</a>');
}
showTags()
showAnswers()
prepareNotes()
updateBackFooter()
</script>

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/git9527-anki-awesome-select.git
git@api.gitlife.ru:oschina-mirror/git9527-anki-awesome-select.git
oschina-mirror
git9527-anki-awesome-select
git9527-anki-awesome-select
master