网站内容保护(先看下小网站一般会存在哪些内容需要维护配置?)

优采云 发布时间: 2021-11-30 10:09

  网站内容保护(先看下小网站一般会存在哪些内容需要维护配置?)

  文章长篇大论,慎入

  随着网络应用的丰富和发展,网站往往跟不上海量信息衍生和商业模式变革的步伐。处理信息更新和维护往往需要大量的时间、人力和物力。——引自《百科全书》

  小公司,小网站由于人员和技术问题,都处于内容管理“怜吃而弃”的境地:内容维护往往会打乱开发者的节奏,但他们不没有精力去思考 投资于解决类似问题的统一方法。

  需要维护哪些运营内容

  在开始之前,我们先来看看小网站中通常存在哪些需要维护和配置的内容:

  现状

  遇到这些内容维护,好的小公司可能会从头开始同步建立配置发布管理功能。其他的可能因为deadline被编码死了,通过release解决,只有在release频繁的时候才做配置发布管理功能。

  因为是后台管理页面,一般这个配置页面比较简单,甚至缺少验证。只有人肉才能在线查看效果,判断配置是否正确。

  作为有抱负的攻城狮,应该积极拒绝这样的重复性工作,通过工具或流程改善生活。

  cms是什么

  很久以前,内容管理已经成为一个重要的应用领域,随着时间和技术的发展,cms的功能也越来越强大。

  cms简单的说就是内容管理系统(Content Management System),主要解决用户在网站建设和信息发布中的常见问题和需求。操作学员可以使用它对网站的内容进行更新、修改、审核和发布,提高信息发布的效率和准确性;它的技术核心思想是将内容管理和设计分开。

  行业cms系统

  由于篇幅原因,我不想比较和介绍行业内的相关系统。我只想概述相关类型。

  可视化车站建设,例如

  从小公司的需求和运营的专业水平来看,像云峰碟这样基于组件化页面的cms平台运营成本很高。此外,组件开发和维护成本也很高。小公司也非常昂贵。难有业务开发需求,可以沉淀自己的组件模块。所以除非你一开始不打算投资网站服务建设,你只需要搭建一个网站门面,就会用到类似的可视化建站服务。

  在接下来的页面中,我们仍然以实现“传统的cms系统”为目标,并考虑如何做得更好

  上诉

  那么肖网站对内容管理有什么用?

  但是,虽然内容配置管理有保障,但文章在“新闻”、“帮助”、“关于我们”页面开头提到的内容相似,字段一致。您是否每次都必须创建类似的配置?管理,然后在web应用中创建相关页面,然后发布应用?

  目标

  基于诉求,首先明确需要完成的网站内容管理小目标

  通过配置自动生成“配置表”,降低开发投资成本,保证发布质量,体验成本,小层次关系和表格设计

  通过内容,对数据模型进行抽象,主要分为以下三层:

  

  cms-guanxi.png

  成分

  最底层的组件,收录基于jsonschema-form-vue的表单相关配置,可以使用版本管理,让配置升级更安全。

  {

id: Schema.Types.ObjectId,

name: String, // 配置名称

version: String, // 版本号

jsonSchema: String, // JSONSchema

definition: String, // Form Definition

histories: Array, // 历史记录

author: String, // 用户

createdAt: Date, // 创建时间

modifiedAt: Date // 修改时间

}

  模块

  该模块是操作内容编辑单元,基于组件表单配置生成表单,可以保存草稿和发布数据,用于预览和在线内容

  {

id: Schema.Types.ObjectId,

name: String, // 模块名称

title: String, // 模块标题

siteId: Schema.Types.ObjectId, // 所属站点ID

pageId: Schema.Types.ObjectId, // 页面ID

componentId: Schema.Types.ObjectId, // 组件ID

componentVersion: String, // 组件版本号

model: {}, // 配置数据

draft: {}, // 配置草稿

status: Number, // 状态 0: 配置更新, 1: 内容更新, 2: 发布审核

online: Boolean,

histories: Array, // 历史记录

author: String, // 用户

createdAt: Date, // 创建时间

modifiedAt: Date // 修改时间

}

  为什么不直接将表单配置放在模块中,而是添加这一层组件呢?这主要是因为模块和组件之间存在“多对一”关系。一种形式配置可以在多个模块中使用;另外,上面提到的相似页面会复制相似的模块。如果将表单配置放在模块表中,过程中会出现重复数据,以后配置升级也很难同步。

  页

  页面是浏览器中看到的页面,主要用于保存模块的关联关系。一个页面上可能有多个独立的模块

  {

id: Schema.Types.ObjectId,

name: String, // 页面名称

url: String, // 页面url

realUrl: String, // 页面实际url

useRoute: Boolean, // 是否启用路由规则

router: String, // 路由规则

siteId: Schema.Types.ObjectId, // 所属站点ID

modules: String, // 模块

owner: String, // 用户

createdAt: Date, // 创建时间

modifiedAt: Date // 修改时间

}

  为什么会有网址和实际网址?这个主要考虑下面的“可视化编辑”功能,需要请求真实页面,所以页面复制发布时,需要根据“页面路由”生成实际的url

  因为数据模型的核心是配置和内容,所以选择文档数据库MongoDB

  整体设计

  把数据模型抽象出来,我们先看看cms需要通过设计提供哪些功能

  

  cms-jiagou.png

  在设计上,cms遵循以下原则:

  所以:

  Web应用访问只需要改变以下几点:

  过程

  通过这个过程,可以更清楚的了解cms的作用

  

  cms-process.png

  创建组件配置

  前端本地开发静态页面后,首先mock内容完成数据模板的分离;那么就可以使用JSON2JSONSchema工具快速生成JSONSchema结构,根据jsonschema-form-vue文档生成组件配置

  

  cms-step1.png

  创建内容模块并引用对应的组件配置(内容模块为运营内容维护单元);如果有初始数据,可以填入操作;将moduleId复制到web应用中,调用对应的方法获取cms数据;然后,web应用发布后,开发工作就完成了,以后的内容维护就交给运维同学了。

  模块内容的操作和维护有两种方式:

  3.1 通过模块名称查找模块进行编辑

  3.2 通过页面编辑进行可视化编辑,见下

  确认内容编辑无误后,保存预览

  预览确认没有问题后,审核发布,内容上线

  至此,cms最基本的功能已经完成;无需因副本内容更改而重新启动应用程序。

  更多的

  下面几页最后介绍一下“页面复制”和“可视化编辑”功能

  关于页面复制

  对于上面提到的新闻公告、关于我们,或者一些风格相似的活动页面,您需要提供一个快速复制创建一个新页面,然后修改页面内容。

  主要思路如下:

  可视化编辑

  最后,必须完成一些看似科技感十足的功能,才能提供cms系统的档次,直接符合前沿。

  有了模块编辑功能后,可视化编辑就是如何获取编辑后的数据并实时渲染页面预览。同时预览页面可以识别可编辑模块并显示可编辑,引起操作点击修改的欲望:

  这样,立即提供一个等级

  至此,文章 结束。在工作的过程中,找出工作流中更多你不喜欢处理但又不得不处理的重复性任务,思考如何使用工具和流程。妥善处理;使事情变得简单和可重复;这个思考和执行的过程,不仅可以提升你的设计和技术能力,还能增加公司对你的依赖,在升职加薪的路上。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线