Bläddra i källkod

Merge remote-tracking branch 'origin/dev' into dev

Vanessa 1 år sedan
förälder
incheckning
aa5acf39cf
5 ändrade filer med 41 tillägg och 21 borttagningar
  1. 3 3
      .github/CONTRIBUTING.md
  2. 3 3
      .github/CONTRIBUTING_zh_CN.md
  3. 1 1
      app/package.json
  4. 7 7
      app/pnpm-lock.yaml
  5. 27 7
      kernel/model/flashcard.go

+ 3 - 3
.github/CONTRIBUTING.md

@@ -16,10 +16,10 @@ Install pnpm: `npm install -g pnpm`
 
 Set the Electron mirror environment variable and install Electron:
 
-* macOS/Linux: `ELECTRON_MIRROR=https://cnpmjs.org/mirrors/electron/ pnpm install electron@25.9.0 -D`
+* macOS/Linux: `ELECTRON_MIRROR=https://cnpmjs.org/mirrors/electron/ pnpm install electron@26.3.0 -D`
 * Windows:
     * `SET ELECTRON_MIRROR=https://cnpmjs.org/mirrors/electron/`
-    * `pnpm install electron@25.9.0 -D`
+    * `pnpm install electron@26.3.0 -D`
 
 NPM mirror:
 
@@ -30,7 +30,7 @@ NPM mirror:
 
 On the desktop, go to the app folder to run:
 
-* `pnpm install electron@25.9.0 -D`
+* `pnpm install electron@26.3.0 -D`
 * `pnpm run dev`
 * `pnpm run start`
 

+ 3 - 3
.github/CONTRIBUTING_zh_CN.md

@@ -18,11 +18,11 @@
 
 * macOS/Linux: 
  ```
- ELECTRON_MIRROR=https://cnpmjs.org/mirrors/electron/ pnpm install electron@25.9.0 -D
+ ELECTRON_MIRROR=https://cnpmjs.org/mirrors/electron/ pnpm install electron@26.3.0 -D
  ```
 * Windows:
     * `SET ELECTRON_MIRROR=https://cnpmjs.org/mirrors/electron/`
-    * `pnpm install electron@25.9.0 -D`
+    * `pnpm install electron@26.3.0 -D`
 
 NPM 镜像:
 
@@ -32,7 +32,7 @@ NPM 镜像:
 
 桌面端进入 app 文件夹运行:
 
-* `pnpm install electron@25.9.0 -D`
+* `pnpm install electron@26.3.0 -D`
 * `pnpm run dev`
 * `pnpm run start`
 

+ 1 - 1
app/package.json

@@ -53,7 +53,7 @@
     "clean-webpack-plugin": "^4.0.0",
     "css-loader": "^6.7.1",
     "dayjs": "^1.11.5",
-    "electron": "25.9.0",
+    "electron": "26.3.0",
     "electron-builder": "^24.6.3",
     "encoding": "^0.1.13",
     "esbuild-loader": "^3.0.1",

+ 7 - 7
app/pnpm-lock.yaml

@@ -7,7 +7,7 @@ settings:
 dependencies:
   '@electron/remote':
     specifier: ^2.0.11
-    version: 2.0.11(electron@25.9.0)
+    version: 2.0.11(electron@26.3.0)
 
 devDependencies:
   '@types/node':
@@ -32,8 +32,8 @@ devDependencies:
     specifier: ^1.11.5
     version: 1.11.5
   electron:
-    specifier: 25.9.0
-    version: 25.9.0
+    specifier: 26.3.0
+    version: 26.3.0
   electron-builder:
     specifier: ^24.6.3
     version: 24.6.3
@@ -160,12 +160,12 @@ packages:
       - supports-color
     dev: true
 
-  /@electron/remote@2.0.11(electron@25.9.0):
+  /@electron/remote@2.0.11(electron@26.3.0):
     resolution: {integrity: sha512-PYEs7W3GrQNuhgiMHjFEvL5MbAL6C7m1AwSAHGqC+xc33IdP7rcGtJSdTP2eg1ssyB3oI00KwTsiSlsQbAoXpA==}
     peerDependencies:
       electron: '>= 13.0.0'
     dependencies:
-      electron: 25.9.0
+      electron: 26.3.0
     dev: false
 
   /@electron/universal@1.3.4:
@@ -1669,8 +1669,8 @@ packages:
     resolution: {integrity: sha512-YoVeFrGd/7ROjz4R9uPoND1K/hSRC/xADy9639ZmIZeJSaBnKdYx3I6LMPsY7CXLpK7JFgKQVzeZ/dk2br6Eaw==}
     dev: true
 
-  /electron@25.9.0:
-    resolution: {integrity: sha512-wgscxf2ORHL/8mAQfy7l9rVDG//wrG9RUQndG508kCCMHRq9deFyZ4psOMzySheBRSfGMcFoRFYSlkAeZr8cFg==}
+  /electron@26.3.0:
+    resolution: {integrity: sha512-7ZpvSHu+jmqialSvywTZnOQZZGLqlyj+yV5HGDrEzFnMiFaXBRpbByHgoUhaExJ/8t/0xKQjKlMRAY65w+zNZQ==}
     engines: {node: '>= 12.20.55'}
     hasBin: true
     requiresBuild: true

+ 27 - 7
kernel/model/flashcard.go

@@ -21,6 +21,7 @@ import (
 	"os"
 	"path/filepath"
 	"sort"
+	"strconv"
 	"strings"
 	"sync"
 	"time"
@@ -390,7 +391,7 @@ func GetNotebookDueFlashcards(boxID string, reviewedCardIDs []string) (ret []*Fl
 		return
 	}
 
-	cards, unreviewedCnt := getDeckDueCards(deck, reviewedCardIDs, treeBlockIDs)
+	cards, unreviewedCnt := getDeckDueCards(deck, reviewedCardIDs, treeBlockIDs, Conf.Flashcard.NewCardLimit, Conf.Flashcard.ReviewCardLimit)
 	now := time.Now()
 	for _, card := range cards {
 		blockID := card.BlockID()
@@ -415,7 +416,26 @@ func GetTreeDueFlashcards(rootID string, reviewedCardIDs []string) (ret []*Flash
 	}
 
 	_, treeBlockIDs := getTreeSubTreeChildBlocks(rootID)
-	cards, unreviewedCnt := getDeckDueCards(deck, reviewedCardIDs, treeBlockIDs)
+	newCardLimit := Conf.Flashcard.NewCardLimit
+	reviewCardLimit := Conf.Flashcard.ReviewCardLimit
+	// 文档级新卡/复习卡上限控制 Document-level new card/review card limit control https://github.com/siyuan-note/siyuan/issues/9365
+	ial := GetBlockAttrs(rootID)
+	if newCardLimitStr := ial["custom-riff-new-card-limit"]; "" != newCardLimitStr {
+		var convertErr error
+		newCardLimit, convertErr = strconv.Atoi(newCardLimitStr)
+		if nil != convertErr {
+			logging.LogWarnf("invalid new card limit [%s]: %s", newCardLimitStr, convertErr)
+		}
+	}
+	if reviewCardLimitStr := ial["custom-riff-review-card-limit"]; "" != reviewCardLimitStr {
+		var convertErr error
+		reviewCardLimit, convertErr = strconv.Atoi(reviewCardLimitStr)
+		if nil != convertErr {
+			logging.LogWarnf("invalid review card limit [%s]: %s", reviewCardLimitStr, convertErr)
+		}
+	}
+
+	cards, unreviewedCnt := getDeckDueCards(deck, reviewedCardIDs, treeBlockIDs, newCardLimit, reviewCardLimit)
 	now := time.Now()
 	for _, card := range cards {
 		blockID := card.BlockID()
@@ -485,7 +505,7 @@ func getDueFlashcards(deckID string, reviewedCardIDs []string) (ret []*Flashcard
 		return
 	}
 
-	cards, unreviewedCnt := getDeckDueCards(deck, reviewedCardIDs, nil)
+	cards, unreviewedCnt := getDeckDueCards(deck, reviewedCardIDs, nil, Conf.Flashcard.NewCardLimit, Conf.Flashcard.ReviewCardLimit)
 	now := time.Now()
 	for _, card := range cards {
 		blockID := card.BlockID()
@@ -506,7 +526,7 @@ func getDueFlashcards(deckID string, reviewedCardIDs []string) (ret []*Flashcard
 func getAllDueFlashcards(reviewedCardIDs []string) (ret []*Flashcard, unreviewedCount int) {
 	now := time.Now()
 	for _, deck := range Decks {
-		cards, unreviewedCnt := getDeckDueCards(deck, reviewedCardIDs, nil)
+		cards, unreviewedCnt := getDeckDueCards(deck, reviewedCardIDs, nil, Conf.Flashcard.NewCardLimit, Conf.Flashcard.ReviewCardLimit)
 		unreviewedCount += unreviewedCnt
 		for _, card := range cards {
 			blockID := card.BlockID()
@@ -874,7 +894,7 @@ func getDeckIDs() (deckIDs []string) {
 	return
 }
 
-func getDeckDueCards(deck *riff.Deck, reviewedCardIDs, blockIDs []string) (ret []riff.Card, unreviewedCount int) {
+func getDeckDueCards(deck *riff.Deck, reviewedCardIDs, blockIDs []string, newCardLimit, reviewCardLimit int) (ret []riff.Card, unreviewedCount int) {
 	ret = []riff.Card{}
 	dues := deck.Dues()
 
@@ -911,12 +931,12 @@ func getDeckDueCards(deck *riff.Deck, reviewedCardIDs, blockIDs []string) (ret [
 		fsrsCard := c.Impl().(*fsrs.Card)
 		if fsrs.New == fsrsCard.State {
 			newCount++
-			if newCount > Conf.Flashcard.NewCardLimit {
+			if newCount > newCardLimit {
 				continue
 			}
 		} else {
 			reviewCount++
-			if reviewCount > Conf.Flashcard.ReviewCardLimit {
+			if reviewCount > reviewCardLimit {
 				continue
 			}
 		}