時間:2023-07-27 23:30:02 | 來源:網站運營
時間:2023-07-27 23:30:02 來源:網站運營
思源筆記折騰記錄-效果更好一點的發(fā)布:cms指的是內容管理系統(tǒng),可以用來管理網站的各種文件、數(shù)據(jù)、乃至其他信息。
let 文檔內容 = await noobApi.核心api.exportPreview( { "id": 文檔數(shù)據(jù).id } )
/api/getDoc
{id:<塊id>size:102400mode:0}
let 文檔內容 = await noobApi.核心api.exportPreview( { id: 文檔數(shù)據(jù).id, } )
let 文檔內容 = await noobApi.核心api.getDoc( { id: 文檔數(shù)據(jù).id, mode:0, size:102400 } )
index.php //主模板文件,所有主題都需要它style.css //樣式表文件,不可缺少,并包含主題的信息標題rtl.css //如果網站語言的文本方向是從右到左,則會自動包含從右到左的樣式表comments.php //評論模板。page.php //訪問者請求單個頁面時使用頁面模板,這些頁面是內置模板。home.php //默認情況下,主頁模板是首頁。如果您沒有將WordPress設置為使用靜態(tài)首頁,則此模板用于顯示最新帖子。header.php //頭部模板文件通常包含您網站的文檔類型,元信息,樣式表和腳本的鏈接以及其他數(shù)據(jù)。footer.php //公共底部模板sidebar.php //側邊欄模板single.php中 //日志模板。archive.php //歸檔模板,如果分類標簽頁沒有模板的話,會使用這個模板category.php //分類頁模板tag.php //標簽頁模板search.php中 //搜索結果模板用于顯示訪問者的搜索結果。404.php //當WordPress無法找到與訪問者請求匹配的帖子,頁面或其他內容時,將使用404模板functions.php //增加WordPress功能
let 渲染結果 = new DOMParser().parseFromString(docTemplate, "text/html"); 渲染結果.getElementById('content').innerHTML = 文檔數(shù)據(jù).content
//這個就隨便導出一個文檔就行了let 默認模板路徑 = 代碼片段路徑 + 'publishTemplate/default/doc.html'async function 渲染頁面內容(req,res,渲染結果){ let 塊id = req.params.blockID let 頁面數(shù)據(jù) = await 獲取數(shù)據(jù)(塊id) 渲染結果.getElementById('publish-content').innerHTML = 頁面數(shù)據(jù).content console.log(渲染結果) return 渲染結果}let 默認渲染管線 = 生成管線渲染器([渲染頁面內容],默認模板路徑)
export function 生成管線渲染器(渲染管線, 模板路徑) { return async (req, res) => { //這里是告訴瀏覽器,我返回的是一個html頁面 res.writeHead(200, { "Content-Type": "text/html;charset=utf-8" }); let 渲染結果 = new DOMParser().parseFromString(fs.readFileSync(模板路徑), "text/html"); //這里是一個循環(huán),不斷地把渲染結果和請求喂給它們,所以渲染管線中的每一步也都可以跳出去,直接響應請求 for await (let 渲染函數(shù) of 渲染管線) { try { //如果渲染結果沒有這個函數(shù)說明它不是數(shù)據(jù)了 if (!渲染結果.querySelector) { let tempdoc = new DOMParser().parseFromString( 渲染結果, "text/html" ); 渲染結果 = tempdoc; } if (渲染結果.完成) { return 渲染結果; } if (渲染函數(shù) instanceof Function) { 渲染結果 = (await 渲染函數(shù)(req, res, 渲染結果)) || ""; } let 文字渲染結果 = ""; try { 文字渲染結果 = 渲染結果.querySelector("body").innerHTML; } catch (e) { 文字渲染結果 = 渲染結果; let tempdoc = new DOMParser().parseFromString( 文字渲染結果, "text/html" ); 渲染結果 = tempdoc; console.error(e); } } catch (e) { console.error(e); continue; } } //如果有結果就返回結果 try { if (渲染結果) { res.end(渲染結果.documentElement.innerHTML) } else { res.end('渲染出錯,沒有有效的結果') } } catch (e) { 渲染結果 = null console.error(e) } //萬一我們這里對它還有其他操作呢 return 渲染結果 }}
async function 獲取文檔內容(塊id) { let stmt = `select * from blocks where id in (select root_id from blocks where id = "${塊id}" )` let 文檔數(shù)據(jù) = (await noobApi.核心api.sql({ stmt: stmt }))[0] let 文檔內容 = await noobApi.核心api.getDoc( { id: 文檔數(shù)據(jù).id, mode: 0, size: 102400 } ) return 文檔內容}
<link rel="stylesheet" type="text/css" id="themeDefaultStyle" href="stage/build/export/base.css?2.5.2" /> <link rel="stylesheet" type="text/css" id="themeStyle" href="appearance/themes/daylight/theme.css?2.5.2" />
發(fā)布應用.use('/', async (req, res, next) => { console.log(req)//首頁重定向到幫助文檔首頁,你也可以自己選一個 req.url == '/' ? res.redirect('/20200812220555-lj3enxa') : null next()})發(fā)布應用.use('/:blockID', 默認渲染管線)
發(fā)布應用.use('/appearance',express.static(代碼片段路徑 + 'publishTemplate/default/appearance'))發(fā)布應用.use('/stage',express.static(代碼片段路徑 + 'publishTemplate/default/stage'))
express.static
方法的作用就是把某個文件夾當成靜態(tài)文件夾掛在路徑下面,所以用了它之后就可以訪問到對應的文件了.本文使用 文章同步助手 同步
關鍵詞:發(fā)布,效果,筆記,折騰,記錄