diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json
index 88cdff822..7a89b446b 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -1,4 +1,9 @@
{
+ "cardShowAnswer": "Show Answer",
+ "cardRatingAgain": "Again",
+ "cardRatingHard": "Hard",
+ "cardRatingGood": "Good",
+ "cardRatingEasy": "Easy",
"pdfIsLoading": "PDF is loading, please try again later",
"addToDeck": "Add to Deck...",
"quickMakeCard": "Quick make card",
diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json
index c8deb17d0..355d504cd 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -1,5 +1,10 @@
{
"pdfIsLoading": "El PDF se está cargando, inténtalo de nuevo más tarde",
+ "cardShowAnswer": "Afficher la réponse",
+ "cardRatingAgain": "Otra vez",
+ "cardRatingHard": "Difícil",
+ "cardRatingGood": "Bueno",
+ "cardRatingEasy": "Fácil",
"addToDeck": "Agregar a la plataforma...",
"quickMakeCard": "Tarjeta de creación rápida",
"allAttrs": "Todos los nombres de atributos y valores de atributos",
diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json
index 8593f3840..cc0092c78 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -1,4 +1,9 @@
{
+ "cardShowAnswer": "Afficher la réponse",
+ "cardRatingAgain": "Encore",
+ "cardRatingHard": "Difficile",
+ "cardRatingGood": "Bien",
+ "cardRatingEasy": "Facile",
"pdfIsLoading": "Le PDF est en cours de chargement, veuillez réessayer plus tard",
"addToDeck": "Ajouter au deck...",
"quickMakeCard": "Carte de création rapide",
diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json
index d5f6d5121..787762a05 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -1,5 +1,10 @@
{
"pdfIsLoading": "PDF 正在加載中,請稍後再試",
+ "cardShowAnswer": "顯示答案",
+ "cardRatingAgain": "重來",
+ "cardRatingHard": "困難",
+ "cardRatingGood": "一般",
+ "cardRatingEasy": "輕鬆",
"addToDeck": "添加到卡包...",
"quickMakeCard": "快速制卡",
"allAttrs": "所有屬性名和屬性值",
diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json
index 90a8896cf..41c29c9f5 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -1,5 +1,10 @@
{
"pdfIsLoading": "PDF 正在加载中,请稍后再试",
+ "cardShowAnswer": "显示答案",
+ "cardRatingAgain": "重来",
+ "cardRatingHard": "困难",
+ "cardRatingGood": "一般",
+ "cardRatingEasy": "轻松",
"addToDeck": "添加到卡包...",
"quickMakeCard": "快速制卡",
"allAttrs": "所有属性名和属性值",
diff --git a/app/src/assets/scss/business/_card.scss b/app/src/assets/scss/business/_card.scss
index 815511628..d8084680c 100644
--- a/app/src/assets/scss/business/_card.scss
+++ b/app/src/assets/scss/business/_card.scss
@@ -24,7 +24,7 @@
width: 90%;
& > div {
- font-size: 46px;
+ font-size: 32px;
display: block;
line-height: 46px;
margin-bottom: 4px;
diff --git a/app/src/card/openCard.ts b/app/src/card/openCard.ts
index 569bef18f..7d314ea19 100644
--- a/app/src/card/openCard.ts
+++ b/app/src/card/openCard.ts
@@ -54,35 +54,35 @@ export const openCardByData = (cardsData: ICard[], html = "") => {
${window.siyuan.languages.noDueCard}
-
+
diff --git a/app/src/mobile/util/initFramework.ts b/app/src/mobile/util/initFramework.ts
index 6497ee3f7..dffcbfca4 100644
--- a/app/src/mobile/util/initFramework.ts
+++ b/app/src/mobile/util/initFramework.ts
@@ -128,7 +128,7 @@ export const initFramework = () => {
closePanel();
});
initEditorName();
- if (window.siyuan.config.newbie) {
+ if (window.siyuan.config.openHelp) {
mountHelp();
}
const transactionTipElement = document.getElementById("transactionTip");
diff --git a/app/src/types/index.d.ts b/app/src/types/index.d.ts
index a4776a015..b8baeb851 100644
--- a/app/src/types/index.d.ts
+++ b/app/src/types/index.d.ts
@@ -413,7 +413,7 @@ declare interface IConfig {
api: {
token: string
}
- newbie: boolean
+ openHelp: boolean
system: {
networkProxy: {
host: string
diff --git a/app/src/util/onGetConfig.ts b/app/src/util/onGetConfig.ts
index db7b34fcb..921244ab2 100644
--- a/app/src/util/onGetConfig.ts
+++ b/app/src/util/onGetConfig.ts
@@ -176,7 +176,7 @@ export const onGetConfig = (isStart: boolean) => {
resizeDrag();
}, 200);
});
- if (window.siyuan.config.newbie) {
+ if (window.siyuan.config.openHelp) {
mountHelp();
}
addGA();
diff --git a/kernel/api/extension.go b/kernel/api/extension.go
index c7d0a4810..7b6124b99 100644
--- a/kernel/api/extension.go
+++ b/kernel/api/extension.go
@@ -30,6 +30,7 @@ import (
"github.com/88250/lute"
"github.com/88250/lute/ast"
"github.com/88250/lute/parse"
+ "github.com/gabriel-vasile/mimetype"
"github.com/gin-gonic/gin"
"github.com/siyuan-note/filelock"
"github.com/siyuan-note/logging"
@@ -80,7 +81,7 @@ func extensionCopy(c *gin.Context) {
continue
}
fName := path.Base(u.Path)
- fName = util.FilterUploadFileName(fName)
+
f, err := file[0].Open()
if nil != err {
ret.Code = -1
@@ -96,10 +97,19 @@ func extensionCopy(c *gin.Context) {
}
ext := path.Ext(fName)
- fName = fName[0 : len(fName)-len(ext)]
+ originalExt := ext
+ if "" == ext || strings.Contains(ext, "!") {
+ // 改进浏览器剪藏扩展转换本地图片后缀 https://github.com/siyuan-note/siyuan/issues/7467
+ if mtype := mimetype.Detect(data); nil != mtype {
+ ext = mtype.Extension()
+ }
+ }
if "" == ext && bytes.HasPrefix(data, []byte("