From 3816226ba519824cfaa1ab62826da217c544d8aa Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Sun, 25 Oct 2026 21:52:31 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=96=87=E6=A1=A3=E5=B1=9E=E6=80=A7):=20?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E5=B1=9E=E6=80=A7=E8=AF=BB=E5=86=99=E5=8F=8A?= =?UTF-8?q?=E5=89=8D=E5=90=8E=E7=AB=AF=E5=AD=97=E6=AE=B5=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/webui/index.html | 30 +++++++++++++++--------------- assets/webui/ofdgo.js | 36 ++++++++++++++++++------------------ internal/webui/webui.go | 14 +++++++------- 3 files changed, 40 insertions(+), 40 deletions(-) diff --git a/assets/webui/index.html b/assets/webui/index.html index 4c96d76..5c94be5 100644 --- a/assets/webui/index.html +++ b/assets/webui/index.html @@ -495,13 +495,13 @@
关键词
文档属性 - - - + + +
扩展属性
@@ -849,18 +849,6 @@
文档属性
- - - + + +
扩展属性
diff --git a/assets/webui/ofdgo.js b/assets/webui/ofdgo.js index 37c66d0..98f910f 100644 --- a/assets/webui/ofdgo.js +++ b/assets/webui/ofdgo.js @@ -15,7 +15,7 @@ const SCROLL_SEGMENT_SIZE = 1000000; const OBJECT_CLIPBOARD_TYPE = "application/x-ofdgo-objects"; const RESOURCE_KINDS = [["Font", "字体"], ["Image", "图片"], ["Audio", "音频"], ["Video", "视频"], ["Attachment", "附件"], ["ColorSpace", "色彩"], ["DrawParam", "样式"]]; const SETTINGS_KINDS = [["bookmarks", "书签"], ["actions", "动作"], ["templates", "模板"], ["layers", "图层"], ["extensions", "扩展"]]; -const INFO_FIELDS = ["title", "author", "subject", "abstract", "docId", "docUsage", "cover", "creationDate", "modDate", "creator", "creatorVersion"]; +const INFO_FIELDS = ["title", "author", "subject", "abstract", "creationDate", "modDate", "creator", "creatorVersion", "docId", "docUsage", "cover"]; const STATUS = { ready: "选择 OFD、PDF 文件", opening: "正在打开文档", @@ -345,20 +345,20 @@ const el = { infoPanel: document.querySelector("#infoPanel"), infoForm: document.querySelector("#infoForm"), infoTitle: document.querySelector("#infoTitle"), - infoCustomRows: document.querySelector("#infoCustomRows"), - infoCustomAdd: document.querySelector("#infoCustomAdd"), infoAuthor: document.querySelector("#infoAuthor"), infoSubject: document.querySelector("#infoSubject"), infoAbstract: document.querySelector("#infoAbstract"), - infoDocId: document.querySelector("#infoDocId"), - infoDocUsage: document.querySelector("#infoDocUsage"), - infoCover: document.querySelector("#infoCover"), + infoKeywordRows: document.querySelector("#infoKeywordRows"), + infoKeywordAdd: document.querySelector("#infoKeywordAdd"), infoCreationDate: document.querySelector("#infoCreationDate"), infoModDate: document.querySelector("#infoModDate"), infoCreator: document.querySelector("#infoCreator"), infoCreatorVersion: document.querySelector("#infoCreatorVersion"), - infoKeywordRows: document.querySelector("#infoKeywordRows"), - infoKeywordAdd: document.querySelector("#infoKeywordAdd"), + infoDocId: document.querySelector("#infoDocId"), + infoDocUsage: document.querySelector("#infoDocUsage"), + infoCover: document.querySelector("#infoCover"), + infoCustomRows: document.querySelector("#infoCustomRows"), + infoCustomAdd: document.querySelector("#infoCustomAdd"), infoCancel: document.querySelector("#infoCancel"), infoStatus: document.querySelector("#infoStatus"), paragraphPanel: document.querySelector("#paragraphPanel"), @@ -607,20 +607,20 @@ const el = { refreshAppButton: document.querySelector("#refreshAppButton"), metaFile: document.querySelector("#metaFile"), metaTitle: document.querySelector("#metaTitle"), - conversionNotice: document.querySelector("#conversionNotice"), - conversionWarnings: document.querySelector("#conversionWarnings"), + metaAuthor: document.querySelector("#metaAuthor"), metaSubject: document.querySelector("#metaSubject"), metaAbstract: document.querySelector("#metaAbstract"), - metaDocId: document.querySelector("#metaDocId"), - metaDocUsage: document.querySelector("#metaDocUsage"), - metaCover: document.querySelector("#metaCover"), metaKeywords: document.querySelector("#metaKeywords"), - metaCustomData: document.querySelector("#metaCustomData"), - metaAuthor: document.querySelector("#metaAuthor"), metaCreationDate: document.querySelector("#metaCreationDate"), metaModDate: document.querySelector("#metaModDate"), metaCreator: document.querySelector("#metaCreator"), metaCreatorVersion: document.querySelector("#metaCreatorVersion"), + metaDocId: document.querySelector("#metaDocId"), + metaDocUsage: document.querySelector("#metaDocUsage"), + metaCover: document.querySelector("#metaCover"), + metaCustomData: document.querySelector("#metaCustomData"), + conversionNotice: document.querySelector("#conversionNotice"), + conversionWarnings: document.querySelector("#conversionWarnings"), metaType: document.querySelector("#metaType"), metaVersion: document.querySelector("#metaVersion"), metaSignatures: document.querySelector("#metaSignatures"), @@ -12677,13 +12677,13 @@ function renderMeta(keepDetails = false) { for (const [field, value] of [ [el.metaSubject, doc.subject || ""], [el.metaAbstract, doc.abstract || ""], - [el.metaDocId, doc.docId || ""], - [el.metaDocUsage, doc.docUsage || ""], - [el.metaCover, doc.cover || ""], [el.metaCreationDate, formatDocumentTime(doc.creationDate)], [el.metaModDate, formatDocumentTime(doc.modDate)], [el.metaCreator, doc.creator || ""], [el.metaCreatorVersion, doc.creatorVersion || ""], + [el.metaDocId, doc.docId || ""], + [el.metaDocUsage, doc.docUsage || ""], + [el.metaCover, doc.cover || ""], ]) { field.textContent = value; field.parentElement.hidden = !value; diff --git a/internal/webui/webui.go b/internal/webui/webui.go index 81271cf..82963ef 100644 --- a/internal/webui/webui.go +++ b/internal/webui/webui.go @@ -84,18 +84,18 @@ type pageBoxInfo struct { // DocumentMetadata 文档描述,供信息展示与包内文档管理共用 type DocumentMetadata struct { - DocID string `json:"docId"` Title string `json:"title"` Author string `json:"author"` Subject string `json:"subject"` Abstract string `json:"abstract"` + Keywords []string `json:"keywords,omitempty"` CreationDate string `json:"creationDate"` ModDate string `json:"modDate"` - DocUsage string `json:"docUsage"` - Cover string `json:"cover"` - Keywords []string `json:"keywords,omitempty"` Creator string `json:"creator"` CreatorVersion string `json:"creatorVersion"` + DocID string `json:"docId"` + DocUsage string `json:"docUsage"` + Cover string `json:"cover"` CustomData []ofdgo.CustomData `json:"customData,omitempty"` } @@ -104,9 +104,9 @@ type DocumentMetadata struct { // 返回: DocumentMetadata 界面元数据 func documentMetadata(info ofdgo.DocInfo) DocumentMetadata { metadata := DocumentMetadata{ - DocID: info.DocID, Title: info.Title, Author: info.Author, Subject: info.Subject, Abstract: info.Abstract, - CreationDate: info.CreationDate, ModDate: info.ModDate, DocUsage: info.DocUsage, Cover: info.Cover, - Keywords: slices.Clone(info.Keywords), Creator: info.Creator, CreatorVersion: info.CreatorVersion, + Title: info.Title, Author: info.Author, Subject: info.Subject, Abstract: info.Abstract, Keywords: slices.Clone(info.Keywords), + CreationDate: info.CreationDate, ModDate: info.ModDate, Creator: info.Creator, CreatorVersion: info.CreatorVersion, + DocID: info.DocID, DocUsage: info.DocUsage, Cover: info.Cover, } if info.CustomDatas != nil { metadata.CustomData = slices.Clone(info.CustomDatas.CustomData)