Liang Ding 2023-03-22 10:57:11 +08:00
parent 9d9747c59c
commit 1db4f8103b
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
11 changed files with 54 additions and 48 deletions

View file

@ -1,8 +1,8 @@
{ {
"flashcardDailyNewCardLimit": "Daily New Card Limit", "flashcardNewCardLimit": "New Card Limit",
"flashcardDailyNewCardLimitTip": "If there are many new cards, you can set the number of daily new cards to review through this item", "flashcardNewCardLimitTip": "If there are many new cards, you can set the number of new cards to review through this item",
"flashcardDailyReviewCardLimit": "Daily Review Card Limit", "flashcardReviewCardLimit": "Review Card Limit",
"flashcardDailyReviewCardLimitTip": "If there are many review cards, you can set the number of daily review through this item", "flashcardReviewCardLimitTip": "If there are many review cards, you can set the number of review through this item",
"flashcardList": "List Carding", "flashcardList": "List Carding",
"flashcardListTip": "After enabling, the first list item of a list is recognized as a question, and the rest of the lite items are recognized as answers", "flashcardListTip": "After enabling, the first list item of a list is recognized as a question, and the rest of the lite items are recognized as answers",
"flashcardSuperBlock": "Super Block Carding", "flashcardSuperBlock": "Super Block Carding",

View file

@ -1,8 +1,8 @@
{ {
"flashcardDailyNewCardLimit": "Límite diario de tarjetas nuevas", "flashcardNewCardLimit": "Límite de tarjeta nueva",
"flashcardDailyNewCardLimitTip": "Si hay muchas tarjetas nuevas, puede establecer la cantidad de tarjetas nuevas diarias para revisar a través de este elemento", "flashcardNewCardLimitTip": "Si hay muchas tarjetas nuevas, puede establecer la cantidad de tarjetas nuevas para revisar a través de este elemento",
"flashcardDailyReviewCardLimit": "Límite de tarjeta de revisión diaria", "flashcardReviewCardLimit": "Revisar límite de tarjeta",
"flashcardDailyReviewCardLimitTip": "Si hay muchas tarjetas de revisión, puede establecer el número de revisión diaria a través de este elemento", "flashcardReviewCardLimitTip": "Si hay muchas tarjetas de revisión, puede establecer el número de revisión a través de este elemento",
"flashcardList": "Lista de tarjetas", "flashcardList": "Lista de tarjetas",
"flashcardListTip": "Después de habilitar, el primer elemento de una lista se reconoce como una pregunta, y el resto de los elementos básicos se reconocen como respuestas", "flashcardListTip": "Después de habilitar, el primer elemento de una lista se reconoce como una pregunta, y el resto de los elementos básicos se reconocen como respuestas",
"flashcardSuperBlock": "Carda de súper bloque", "flashcardSuperBlock": "Carda de súper bloque",

View file

@ -1,8 +1,8 @@
{ {
"flashcardDailyNewCardLimit": "Limite quotidienne de nouvelles cartes", "flashcardNewCardLimit": "Nouvelle limite de carte",
"flashcardDailyNewCardLimitTip": "S'il y a beaucoup de nouvelles cartes, vous pouvez définir le nombre de nouvelles cartes quotidiennes à examiner via cet élément", "flashcardNewCardLimitTip": "S'il y a beaucoup de nouvelles cartes, vous pouvez définir le nombre de nouvelles cartes à examiner via cet élément",
"flashcardDailyReviewCardLimit": "Limite quotidienne de la carte de révision", "flashcardReviewCardLimit": "Revoir la limite de la carte",
"flashcardDailyReviewCardLimitTip": "S'il y a plusieurs fiches d'avis, vous pouvez définir le nombre d'avis quotidiens via cet élément", "flashcardReviewCardLimitTip": "S'il y a plusieurs cartes d'avis, vous pouvez définir le nombre d'avis via cet élément",
"flashcardList": "Fiche de liste", "flashcardList": "Fiche de liste",
"flashcardListTip": "Après l'activation, le premier élément d'une liste est reconnu comme une question, et le reste des éléments légers sont reconnus comme des réponses", "flashcardListTip": "Après l'activation, le premier élément d'une liste est reconnu comme une question, et le reste des éléments légers sont reconnus comme des réponses",
"flashcardSuperBlock": "Carte Super Block", "flashcardSuperBlock": "Carte Super Block",

View file

@ -1,8 +1,8 @@
{ {
"flashcardDailyNewCardLimit": "每日新卡上限", "flashcardNewCardLimit": "新卡上限",
"flashcardDailyNewCardLimitTip": "如果新卡較多,可以通過該項設置新卡複習的數量", "flashcardNewCardLimitTip": "如果新卡較多,可以通過該項設置新卡複習的數量",
"flashcardDailyReviewCardLimit": "每日復習卡上限", "flashcardReviewCardLimit": "復習卡上限",
"flashcardDailyReviewCardLimitTip": "如果復習卡較多,可以通過該項設置每日復習的數量", "flashcardReviewCardLimitTip": "如果復習卡較多,可以通過該項設置復習的數量",
"flashcardList": "列表塊制卡", "flashcardList": "列表塊制卡",
"flashcardListTip": "啟用後支持列表塊制卡,列表的第一個列表項被識別為問題,子列表識別為答案", "flashcardListTip": "啟用後支持列表塊制卡,列表的第一個列表項被識別為問題,子列表識別為答案",
"flashcardSuperBlock": "超級塊制卡", "flashcardSuperBlock": "超級塊制卡",

View file

@ -1,8 +1,8 @@
{ {
"flashcardDailyNewCardLimit": "每日新卡上限", "flashcardNewCardLimit": "新卡上限",
"flashcardDailyNewCardLimitTip": "如果新卡较多,可以通过该项设置新卡复习的数量", "flashcardNewCardLimitTip": "如果新卡较多,可以通过该项设置新卡复习的数量",
"flashcardDailyReviewCardLimit": "每日复习卡上限", "flashcardReviewCardLimit": "复习卡上限",
"flashcardDailyReviewCardLimitTip": "如果复习卡较多,可以通过该项设置每日复习的数量", "flashcardReviewCardLimitTip": "如果复习卡较多,可以通过该项设置复习的数量",
"flashcardList": "列表块制卡", "flashcardList": "列表块制卡",
"flashcardListTip": "启用后支持列表块制卡,列表的第一个列表项被识别为问题,子列表识别为答案", "flashcardListTip": "启用后支持列表块制卡,列表的第一个列表项被识别为问题,子列表识别为答案",
"flashcardSuperBlock": "超级块制卡", "flashcardSuperBlock": "超级块制卡",

View file

@ -5,19 +5,19 @@ export const flashcard = {
genHTML: () => { genHTML: () => {
return `<label class="fn__flex b3-label"> return `<label class="fn__flex b3-label">
<div class="fn__flex-1"> <div class="fn__flex-1">
${window.siyuan.languages.flashcardDailyNewCardLimit} ${window.siyuan.languages.flashcardNewCardLimit}
<div class="b3-label__text">${window.siyuan.languages.flashcardDailyNewCardLimitTip}</div> <div class="b3-label__text">${window.siyuan.languages.flashcardNewCardLimitTip}</div>
</div> </div>
<span class="fn__space"></span> <span class="fn__space"></span>
<input class="b3-text-field fn__flex-center" id="dailyNewCardLimit" step="1" min="1" type="number"${window.siyuan.config.flashcard.dailyNewCardLimit ? " checked" : "" } value="${window.siyuan.config.flashcard.dailyNewCardLimit}"/> <input class="b3-text-field fn__flex-center" id="newCardLimit" step="1" min="1" type="number"${window.siyuan.config.flashcard.newCardLimit ? " checked" : "" } value="${window.siyuan.config.flashcard.newCardLimit}"/>
</label> </label>
<label class="fn__flex b3-label"> <label class="fn__flex b3-label">
<div class="fn__flex-1"> <div class="fn__flex-1">
${window.siyuan.languages.flashcardDailyReviewCardLimit} ${window.siyuan.languages.flashcardReviewCardLimit}
<div class="b3-label__text">${window.siyuan.languages.flashcardDailyReviewCardLimitTip}</div> <div class="b3-label__text">${window.siyuan.languages.flashcardReviewCardLimitTip}</div>
</div> </div>
<span class="fn__space"></span> <span class="fn__space"></span>
<input class="b3-text-field fn__flex-center" id="dailyReviewCardLimit" step="1" min="1" type="number"${window.siyuan.config.flashcard.dailyReviewCardLimit ? " checked" : ""} value="${window.siyuan.config.flashcard.dailyReviewCardLimit}"/> <input class="b3-text-field fn__flex-center" id="reviewCardLimit" step="1" min="1" type="number"${window.siyuan.config.flashcard.reviewCardLimit ? " checked" : ""} value="${window.siyuan.config.flashcard.reviewCardLimit}"/>
</label> </label>
<label class="fn__flex b3-label"> <label class="fn__flex b3-label">
<div class="fn__flex-1"> <div class="fn__flex-1">
@ -48,8 +48,8 @@ export const flashcard = {
flashcard.element.querySelectorAll("input").forEach((item) => { flashcard.element.querySelectorAll("input").forEach((item) => {
item.addEventListener("change", () => { item.addEventListener("change", () => {
fetchPost("/api/setting/setFlashcard", { fetchPost("/api/setting/setFlashcard", {
dailyNewCardLimit: parseInt((flashcard.element.querySelector("#dailyNewCardLimit") as HTMLInputElement).value), newCardLimit: parseInt((flashcard.element.querySelector("#newCardLimit") as HTMLInputElement).value),
dailyReviewCardLimit: parseInt((flashcard.element.querySelector("#dailyReviewCardLimit") as HTMLInputElement).value), reviewCardLimit: parseInt((flashcard.element.querySelector("#reviewCardLimit") as HTMLInputElement).value),
list: (flashcard.element.querySelector("#list") as HTMLInputElement).checked, list: (flashcard.element.querySelector("#list") as HTMLInputElement).checked,
superBlock: (flashcard.element.querySelector("#superBlock") as HTMLInputElement).checked, superBlock: (flashcard.element.querySelector("#superBlock") as HTMLInputElement).checked,
deck: (flashcard.element.querySelector("#deck") as HTMLInputElement).checked, deck: (flashcard.element.querySelector("#deck") as HTMLInputElement).checked,

View file

@ -393,8 +393,8 @@ declare interface IConfig {
key: string key: string
}, },
flashcard: { flashcard: {
dailyNewCardLimit: number newCardLimit: number
dailyReviewCardLimit: number reviewCardLimit: number
list: boolean list: boolean
superBlock: boolean superBlock: boolean
deck: boolean deck: boolean

View file

@ -95,12 +95,12 @@ func setFlashcard(c *gin.Context) {
return return
} }
if 1 > flashcard.DailyNewCardLimit { if 1 > flashcard.NewCardLimit {
flashcard.DailyNewCardLimit = 1 flashcard.NewCardLimit = 1
} }
if 1 > flashcard.DailyReviewCardLimit { if 1 > flashcard.ReviewCardLimit {
flashcard.DailyReviewCardLimit = 1 flashcard.ReviewCardLimit = 1
} }
model.Conf.Flashcard = flashcard model.Conf.Flashcard = flashcard

View file

@ -17,8 +17,8 @@
package conf package conf
type Flashcard struct { type Flashcard struct {
DailyNewCardLimit int `json:"dailyNewCardLimit"` // 每日新卡上限 https://github.com/siyuan-note/siyuan/issues/7695 NewCardLimit int `json:"newCardLimit"` // 新卡上限 https://github.com/siyuan-note/siyuan/issues/7695
DailyReviewCardLimit int `json:"dailyReviewCardLimit"` // 每日复习卡上限 https://github.com/siyuan-note/siyuan/issues/7703 ReviewCardLimit int `json:"reviewCardLimit"` // 复习卡上限 https://github.com/siyuan-note/siyuan/issues/7703
List bool `json:"list"` // 是否启用列表块制卡 https://github.com/siyuan-note/siyuan/issues/7701 List bool `json:"list"` // 是否启用列表块制卡 https://github.com/siyuan-note/siyuan/issues/7701
SuperBlock bool `json:"superBlock"` // 是否启用超级块制卡 https://github.com/siyuan-note/siyuan/issues/7702 SuperBlock bool `json:"superBlock"` // 是否启用超级块制卡 https://github.com/siyuan-note/siyuan/issues/7702
Deck bool `json:"deck"` // 是否启用卡包制卡 https://github.com/siyuan-note/siyuan/issues/7724 Deck bool `json:"deck"` // 是否启用卡包制卡 https://github.com/siyuan-note/siyuan/issues/7724
@ -26,8 +26,8 @@ type Flashcard struct {
func NewFlashcard() *Flashcard { func NewFlashcard() *Flashcard {
return &Flashcard{ return &Flashcard{
DailyNewCardLimit: 20, NewCardLimit: 20,
DailyReviewCardLimit: 200, ReviewCardLimit: 200,
List: true, List: true,
SuperBlock: true, SuperBlock: true,
Deck: false, Deck: false,

View file

@ -318,11 +318,11 @@ func InitConf() {
if nil == Conf.Flashcard { if nil == Conf.Flashcard {
Conf.Flashcard = conf.NewFlashcard() Conf.Flashcard = conf.NewFlashcard()
} }
if 1 > Conf.Flashcard.DailyNewCardLimit { if 1 > Conf.Flashcard.NewCardLimit {
Conf.Flashcard.DailyNewCardLimit = 20 Conf.Flashcard.NewCardLimit = 20
} }
if 1 > Conf.Flashcard.DailyReviewCardLimit { if 1 > Conf.Flashcard.ReviewCardLimit {
Conf.Flashcard.DailyReviewCardLimit = 200 Conf.Flashcard.ReviewCardLimit = 200
} }
if nil == Conf.AI { if nil == Conf.AI {

View file

@ -915,8 +915,14 @@ func getDeckDueCards(deck *riff.Deck) (ret []riff.Card) {
fsrsCard := c.Impl().(*fsrs.Card) fsrsCard := c.Impl().(*fsrs.Card)
if fsrs.New == fsrsCard.State { if fsrs.New == fsrsCard.State {
newCount++ newCount++
if newCount > Conf.Flashcard.NewCardLimit {
continue
}
} else { } else {
reviewCount++ reviewCount++
if reviewCount > Conf.Flashcard.ReviewCardLimit {
continue
}
} }
ret = append(ret, c) ret = append(ret, c)