时间:2023-07-27 23:30:02 | 来源:网站运营
时间:2023-07-27 23:30:02 来源:网站运营
思源笔记折腾记录-效果更好一点的发布:cms指的是内容管理系统,可以用来管理网站的各种文件、数据、乃至其他信息。
let 文档内容 = await noobApi.核心api.exportPreview( { "id": 文档数据.id } )
/api/getDoc
{id:<块id>size:102400mode:0}
let 文档内容 = await noobApi.核心api.exportPreview( { id: 文档数据.id, } )
let 文档内容 = await noobApi.核心api.getDoc( { id: 文档数据.id, mode:0, size:102400 } )
index.php //主模板文件,所有主题都需要它style.css //样式表文件,不可缺少,并包含主题的信息标题rtl.css //如果网站语言的文本方向是从右到左,则会自动包含从右到左的样式表comments.php //评论模板。page.php //访问者请求单个页面时使用页面模板,这些页面是内置模板。home.php //默认情况下,主页模板是首页。如果您没有将WordPress设置为使用静态首页,则此模板用于显示最新帖子。header.php //头部模板文件通常包含您网站的文档类型,元信息,样式表和脚本的链接以及其他数据。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 = 文档数据.content
//这个就随便导出一个文档就行了let 默认模板路径 = 代码片段路径 + 'publishTemplate/default/doc.html'async function 渲染页面内容(req,res,渲染结果){ let 块id = req.params.blockID let 页面数据 = await 获取数据(块id) 渲染结果.getElementById('publish-content').innerHTML = 页面数据.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"); //这里是一个循环,不断地把渲染结果和请求喂给它们,所以渲染管线中的每一步也都可以跳出去,直接响应请求 for await (let 渲染函数 of 渲染管线) { try { //如果渲染结果没有这个函数说明它不是数据了 if (!渲染结果.querySelector) { let tempdoc = new DOMParser().parseFromString( 渲染结果, "text/html" ); 渲染结果 = tempdoc; } if (渲染结果.完成) { return 渲染结果; } if (渲染函数 instanceof Function) { 渲染结果 = (await 渲染函数(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 文档数据 = (await noobApi.核心api.sql({ stmt: stmt }))[0] let 文档内容 = await noobApi.核心api.getDoc( { id: 文档数据.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" />
发布应用.use('/', async (req, res, next) => { console.log(req)//首页重定向到帮助文档首页,你也可以自己选一个 req.url == '/' ? res.redirect('/20200812220555-lj3enxa') : null next()})发布应用.use('/:blockID', 默认渲染管线)
发布应用.use('/appearance',express.static(代码片段路径 + 'publishTemplate/default/appearance'))发布应用.use('/stage',express.static(代码片段路径 + 'publishTemplate/default/stage'))
express.static
方法的作用就是把某个文件夹当成静态文件夹挂在路径下面,所以用了它之后就可以访问到对应的文件了.本文使用 文章同步助手 同步
关键词:发布,效果,笔记,折腾,记录