Fluid主题的个性化拓展
本文最后更新于:9 个月前
目前博客个性化进度
- 完成了配色修改,了解了一下配置项写法和CSS的修改方式
- 标签云并没有达到理想的状态,但也足矣
目标功能玩法
添加网站运行时间
- 已完成,按照相关教程即可
归档页面—-TimeLine
echart实现数据统计可视化
在线实验项目
- 机器学习
- 模型部署到云端
- 制作API调用
- 通过实验室的某一功能指定实现,以下方式可行?
- 上传文件
- 表单输入,传递参数,点击发送
修改Markdown样式,优化视觉效果
- 根据配置模拟为Typora的主题Mo dark
- 公式使用问题
测试Latex语法的支持效果,以及检测BUG,hexo的LaTeX效果不如Typora,多行公式需要用
\begin{aligned} ... \end{aligned}
,换行符\\
和定位符&
。添加了这些代码内容后,渲染正常如下代码块折叠实现
打开文章默认代码折叠
通过折叠代码按钮可以实现代码的折叠与打开
实现步骤:
- 找到copy-btn所在位置,看能否通过js添加折叠代码块按钮
- 写脚本
使用Echarts制图
- [x] 完成
制作仿造GitHub的日历图
1️⃣制图
- 先使用hexo-tag-echarts 插件写入md文件中制作简单的图表(制图)
2️⃣绑定数据
- 先将数据获取并渲染到
about
页面中
- 通过
ejs
注入的方式,插入到about
的html样式
中,通过site.posts
变量获取所有文章的信息
- 在.md中直接插入
JavaScript
脚本,通过获取页面指定DOM元素形成数据集合,然后自定义function
方法对图标的数据进行初始化和更新
1 |
|
不足
- 是一种间接的途径获取的数据集合,因为通过EJS注入元素后我将这些直接渲染的数据设置了隐藏,然后再通过
document.getElementsByClassName()
来存储
但这是一种取巧的办法,因为对于fluid主题的开发我并不完全明白其完整的工作机制,只通过一些时间摸索出以下结论
- EJS是为了更快捷方便的在模板中生成HTML代码,可以通过简单的标签来引用变量
- HEXO博客中的一些变量只能通过EJS语句来调用和访问,不能通过
JavaScript
代码来获取
- 生成的echarts图并不能即时适配屏幕大小,不够毕竟热点图在电脑这样的设备下选择横向展示,移动设备上可以采取纵向显示(待完善)
改进优化
1️⃣使用iframe
嵌入写好的图表页面,但需要调整好页面的大小,适应主题模板的样式
1 |
|
- 缺陷
不能借助ejs引用全局变量,在html中不能这样,因为自定义的html都设置了跳过渲染,也就不会启用EJS语法
因此这种方法只能用于引入一些静态页面,不能访问网站内部的变量
2️⃣绘制的图表并不具备自适应界面的大小而随之变化,需要添加如下代码
网站数据统计制图
1️⃣方案
- 使用旭日图,这种相当于饼状图和柱状图的结合,能够更加形象的体现父类与子类的层级关系,以及各父类之间的统计量上的差别
- 使用饼状图,将各分类文章数、文章数量、各标签对应的文章数、文章的访问量、网站访问量都统计下来【南丁格尔图,比较形象】
2️⃣思路
- 需要单独建立一个页面,专门设置为统计数据的展示
- 如何打通这个流程,一个新的页面渲染,要获取到后台的数据,并且是注册在导航栏中的页面
3️⃣具体操作
- 需要注册一个
analyzer
模板,建立文件有analyzer.ejs
,在全局变量_pages/variables
中添加对应要设置的一些样式信息(可忽略),然后在config.fluid.yml
中增加一栏专门设置这些信息,也可以不这样做,直接沿用博客中其他相似的模板配置 在generator/pages.js
中添加渲染生成analyzer
页面的代码- 在
analyzer.ejs
引入博客全局变量site.categories、site.tags
等快速渲染至模板中,然后在analyzer/index.md
中仿造我的关于页面那样,进行echarts
的制图
问题
经过研究,在
generator/pages.js
中添加生成指定页面的代码能够正常实现其功能的前提是: 该页面是不需要渲染Markdown文件内容的页面,由于我需要创建的数据统计页面和
about
本质上是一种,需要通过创建自定义页面的方法来渲染 因此在这一步我走了弯路,没有弄清机制,导致思考方向错误。
自定义页面的生成很简单,只需要执行以下代码
1 |
|
- 使用指定页面生成与否的方式如下写法,需要加载数据和布局,并指定生成index.html
1 |
|
- 我本想通过上述代码尝试能否控制
about
页面的显示,但通过测试,这串代码丝毫不起作用,不过方法还是有的,要想取消about
的显示,在主题配置文件中修改导航栏菜单的配置选项、去掉about
的字段,让我们无法通过导航栏打开(但这丝毫不影响我们通过URL直接访问)
1 |
|
默认配置信息
- CSS样式
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!