feat(版本管理): 统一版本与资源文件命名

This commit is contained in:
xiaoqidun committed 2026-10-10 22:07:14 +08:00
1 parent e6a8786f0c
commit d181d9edca
2 files changed
+4 -9

No files matched your search

+2 -4
View File
@@ -24,7 +24,6 @@ import (
"path" "path"
"slices" "slices"
"strconv" "strconv"
"strings"
) )
// DocumentVersions 获取当前编辑文档的版本信息,包含尚未写出的修改 // DocumentVersions 获取当前编辑文档的版本信息,包含尚未写出的修改
@@ -117,7 +116,7 @@ func (e *Editor) AddVersion(name string) (string, error) {
return 0, err return 0, err
} }
body := root.childAt("DocBody", reader.documentIndex) body := root.childAt("DocBody", reader.documentIndex)
location := packageAvailableName(reader, nil, path.Join(path.Dir(entry), "Versions", id+".xml")) location := packageAvailableName(reader, nil, path.Join(path.Dir(entry), "Versions", "Version_"+strconv.FormatInt(int64(index), 10)+".xml"))
attrs := ofdAttrs{{Name: xml.Name{Local: "ID"}, Value: id}} attrs := ofdAttrs{{Name: xml.Name{Local: "ID"}, Value: id}}
format := reader.Version() format := reader.Version()
if reader.versionInfo != nil && reader.versionInfo.Version != "" { if reader.versionInfo != nil && reader.versionInfo.Version != "" {
@@ -250,8 +249,7 @@ func (e *Editor) RenameVersion(id, name string) error {
if err != nil { if err != nil {
return 0, err return 0, err
} }
extension := path.Ext(version.Location) location := packageAvailableName(reader, nil, version.Location)
location := packageAvailableName(reader, nil, strings.TrimSuffix(version.Location, extension)+".edit"+extension)
body := root.childAt("DocBody", reader.documentIndex) body := root.childAt("DocBody", reader.documentIndex)
for _, node := range body.child("Versions").children { for _, node := range body.child("Versions").children {
if node.matchesOFD("Version") && node.attr("ID") == id { if node.matchesOFD("Version") && node.attr("ID") == id {
+2 -5
View File
@@ -20,7 +20,6 @@ import (
"encoding/xml" "encoding/xml"
"fmt" "fmt"
"maps" "maps"
"path"
"slices" "slices"
"strconv" "strconv"
"strings" "strings"
@@ -272,8 +271,7 @@ func (r *Reader) versionOutputChanges(ctx context.Context, changes map[string][]
reserved := maps.Clone(parts) reserved := maps.Clone(parts)
var pending []string var pending []string
allocate := func(name string) { allocate := func(name string) {
extension := path.Ext(name) target := packageAvailableName(r, reserved, name)
target := packageAvailableName(r, reserved, strings.TrimSuffix(name, extension)+".edit"+extension)
paths[name], reserved[target] = target, nil paths[name], reserved[target] = target, nil
pending = append(pending, name) pending = append(pending, name)
} }
@@ -452,8 +450,7 @@ func (r *Reader) versionManifest(parts map[string][]byte, paths map[string]strin
} }
name := version.Location name := version.Location
if shared[name] { if shared[name] {
extension := path.Ext(name) name = packageAvailableName(r, parts, name)
name = packageAvailableName(r, parts, strings.TrimSuffix(name, extension)+".edit"+extension)
entry, ok := parts["OFD.xml"] entry, ok := parts["OFD.xml"]
if !ok { if !ok {
entry, err = r.readFile("OFD.xml") entry, err = r.readFile("OFD.xml")