Closed konnokai closed 2 months ago
目前解決方法
server\src\server\services\hexo-service.ts#L260
const res = docs.map((pageDoc) => {
const page: BriefPage = transformPageToBrief(transformPage(pageDoc))
page.__page = true // 強制設定值上去
delete page.content
delete page._content
delete page.raw
delete page.more
return page
})
server\src\server\services\hexo-service.ts#L271
async getPageBySource(source: string): Promise<Page> {
const hexo = await this._hexoInstanceService.getInstance()
const docs = hexo.locals.get("pages").toArray().map(toPage)
const doc = docs.find((item) => item.source === source)
if (!doc || isAsset(doc)) throw new PostOrPageNotFoundError("page")
const res = transformPage(doc)
doc.__page = true // 強制設定值上去
this._logService.log("get page by source", source)
return res
}
不過有時候會遇到請求 getPageBySource
時一樣遺失 __page
屬性的問題,但重整一次就好
client\src\api\entities.ts#L17
export const ZIPage = z.object({
__page: z.boolean().default(true), // 強制設定為 ture
})
client\src\api\entities.ts#L22
export const ZIPost = z.object({
slug: z.string(),
published: z.boolean(),
categories: z.string().array(),
tags: z.string().array(),
__post: z.boolean().default(true), // 既然 page 都改了那就順便改 post 的
})
在 server 端 patch 下 __page
和 __post
是个好主意。
@konnokai 在 #41 用 Server patch 修复了一下。如果可以最好了,如果不行就得采用 Client 修复了。
我用你的配置尝试下没有发现什么问题:
錯誤說明
使用 Hexo 內建的![image](https://user-images.githubusercontent.com/4331068/232746375-6a5087fd-6bf6-4773-b997-db09355f1669.png)
landscape
主題請求http://localhost:4000/proxy/hexo/pages
時正常當主題改用![image](https://user-images.githubusercontent.com/4331068/232746563-afc4eebe-7034-4161-99f5-6be34e3945d5.png)
aurora
後__page
屬性消失網頁顯示的錯誤訊息![20230418_181031_chrome](https://user-images.githubusercontent.com/4331068/232746662-55c9c3bf-35e6-4ca3-900f-facbda0f9ff2.png)
且在建立新的 page 時 Hexo 會出現錯誤 (這個錯誤不管使用![image](https://user-images.githubusercontent.com/4331068/232747107-3f672ab4-08a8-4b58-8256-a5c66adde038.png)
landscape
或是aurora
主題都會出現,但使用landscape
主題的話重整頁面後 page 會出現在網頁上)已知情況
使用![image](https://user-images.githubusercontent.com/4331068/232751715-9403e0a2-18bd-42d9-8c9b-d380aa9975ca.png)
aurora
主題時,src\server\services\hexo-service.ts#L253
中的docs
跟res
變數已無__page
屬性不使用![image](https://user-images.githubusercontent.com/4331068/232753345-fbf3bddc-4938-4b1e-b6a3-b3e8f194473f.png)
.map(toPage)
直接輸出hexo.locals.get("pages")
的情況亦同猜測
aurora
主題在 generate 階段時將某個東西給移除掉了,或是沒有把__page
屬性補上備註
由於
aurora
主題原作者已停止開發,目前本人有自行 fork 該專案修改,也會追查此問題的導致的原因跟協助處理使用版本