我的这套VuePress主题你熟悉吧

最近熬了很多个夜晚, 踩坑无数, 终于写出了用VuePress驱动的主题.

只需体验三分钟,你就会跟我一样,爱上这款主题.

vuepress-theme-indigo-material, 已经发布到npm, 请客官享用~~

介绍

vuepress-theme-indigo-material 的原主题是hexo-theme-indigo, github 的 star 数高达2042, fork 的有451个, 它在静态博客网站中的应用处处可见.在这里首先感谢原作者.

然而它的定位是仅支持 IE10+ 等现代浏览器。既然不需要支持老版本浏览器, 在前端发展迅猛的今天, 已经有许多技术能够让网址更快, 所以我用VuePress来重写了它. 其实 indigo 的原作者已经在用 vuepress 重写了, 但是项目一直没有进展, 所以我接过了这个任务, 最后重写的效果是挺满意的.

可以看看下面,本主题在我的有 51 篇博客笔记下, 部署在 github page, 在手机 4G 网络下的加载速度gif 图,网页加载速度非常快,更快的是,网页加载完成后,此后每个页面的打开速度,都是仿佛在点击本地文件.

具体感受可以点击我的博客网站来亲身感受, 部署在 github page 下, 国内请可以点击码云的 page 地址

正如VuePress文档所说:

每一个由 VuePress 生成的页面都带有预渲染好的 HTML,也因此具有非常好的加载性能和搜索引擎优化(SEO)。

用 Lighthouse 来测试网站中, SEO 一直都是100 ,打包后的大小也比起原主题小了许多.

巧妙之处

加载快的原因还在于是先在本地编译中把数据写进相应的 js 文件,

fs.writeFile(`${dataPath}/search.js`,`export default ${JSON.stringify(search, null, 2)};`,error => {if (error)return console.log('写入搜索search文件失败,原因是' + error.message);console.log('写入搜索search文件成功');}
);
复制代码

然后在网页被打开时, 在 vue.js 的生命周期 created 中, 结合 webpack 的 import()语法导入相应存放数据的 js 文件.

created() {import(/* webpackChunkName: "search" */ "Data/search.js").then(search => {this.search = search.default;});},
复制代码

webpack 会把代码分割,按需去利用 jsonp 去请求 js 文件, 这样我们就能在本地编译时整理所需的数据, 然后模拟了 web APP 开发的流程, 页面先到达呈现, 数据后请求.而不用怕我们所需要的数据和网页一起一次发过来,让网页加载速度缓慢

最后利用 vue 强大的 MVVM, 因为数据都有了, 此后的页面几乎是立即渲染, 即点即开.

这是我探索出来对没有后端的静态网站的一种很好的性能优化.

您换主题的理由

  • 更快更小,
  • 改进我在一年的的使用中感受到的原主题一些交互和外观, 例如删除分享功能, 移除了打赏功能, 增加移动端文章目录导航等等
  • 更加容易自定义, vuepress 的主题和插件很灵活,只要您会 Vue, 就能利用相关知识修改原主题, 和平时工作中写的页面和 APP 差不多
  • 居于本地数据的全文搜索
  • 拥抱 vue, 然后能享用它的生态, 例如组件库, 本主题就利用了 element ui
  • 享用 vuepress 的 Markdown 拓展 , 例如在 Markdown 中 使用 Vue,自定义文章摘要
  • 理论上非常好的 SEO
  • 兼容 hexo 原主题写的 markdwon 文件, 不用修改即可搬迁移到本主题, 前提是您原来文件有遵守原主题的规则, 例如在文件顶部有包含 YAML front matte
---
title: 【读书笔记】《JavaScript权威指南》第7章数组
date: 2018-11-08 04:10:03
tags: [读书笔记, 《JavaScript权威指南》]
---
复制代码
  • 已经发布到 npm, 只需要下载即可, 还提供一套模板文件结构, 下载依赖后立即可以使用, 还提供了相关操作的 shell 文件,双击即可,几分钟就能有自己的博客
  • 内置评论功能
  • ......

浏览器兼容性

由于博客面向的群体比较都是技术人员, 所以本主题只在最新版的谷歌浏览器和火狐浏览器测试无误

vuepress 默认有编译一些对老版本浏览器的兼容, 具体控制请看它官网配置

我写了很详细的文档, 赶快去体验一下vuepress-theme-indigo-material吧, 如果觉得不错, 您能给我一个star吗?

github地址:github.com/zhhlwd/vuep…

转载于:https://juejin.im/post/5c6dc6465188256559172860

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/536930.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/536930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

两年Java工作经验应该会些什么技术

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

centos 6 mysql 5.7.13 编译安装_Centos 6.5 下面 源码编译 安装 Mysql 5.7.13

安装软件依赖包yum -y install gcc gcc-c ncurses ncurses-devel cmake下载软件包cd /usr/local/srcwget https://downloads.mysql.com/archives/get/file/mysql-5.7.13.tar.gz --no-check-certificate下载 boost 库,MySQL 5.7.5 开始Boost库是必需的cd /usr/loca…

LeetCode 237. 删除链表中的节点(Python3)

题目: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 -- head [4,5,1,9],它可以表示为: 示例 1: 输入: head [4,5,1,9], node 5 输出: [4,1,9…

使用Uniapp随手记录知识点

使用uniapp随手记录知识点 1 组件内置组件扩展组件 2 vuex状态管理使用流程mapState 辅助函数gettersMutation 1 组件 内置组件 内置组件内主要包含一些基础的view button video scroll-view等内置基础组件,满足基础场景 扩展组件 扩展组件是uniapp封装了一些成…

一年Java经验应该会些什么

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

mysql查询各类课程的总学分_基于jsp+mysql的JSP学生选课信息管理系统

运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。IDE环境: Eclipse,Myeclipse,IDEA都可以硬件环境: windows 7/8/10 2G内存以上(推荐4G,4G以上更好)可以实现: 学生,教师角色的…

80端口占用分析

SQL Server 2008 里面的组件——SQL Server Reporting Services (MSSQLSERVER)。是 SQL Server 的日志系统,就是他好端端的突然占用了80端口,而且对于普通人来讲,这个组件的作用没啥用,关掉也是节约资源。 关闭服务 ReportServer …

三年java经验应该会什么?

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

python call agilent com_PyVISA通过RS232(USB)与安捷伦34970A通信时出现超时错误

这是我第一次尝试使用Pyvisa,以便使用RS232连接(使用USB端口)与Agilent 34970A进行通信。在这就是发生在我身上的事情,插入基本的第一行:IN: import visaIN: rmvisa.ResourceManager()IN: print rm.list_resources()(uASRL4::INSTR,)IN: inst…

python加法运算符可以用来连接字符串并生成新字符串_中国大学MOOCPython语言入门网课答案...

中国大学MOOCPython语言入门网课答案表达式int(40.5)的值为____________。表达式160.5的值为____________________。python程序只能使用源代码进行运行,不能打包成可执行文件。python语句list(range(1,10,3))执行结果为___________________。pip命令也支持扩展名为.…

全是满满的技术文档

*************************************话不多说-先上教程 ********************************** 完整躺赚教程(不需任何技术,照做就能赚钱):点击此处获取 提取码&#xff1a;6666 被动收入教程(需要一定的技术,会搭建服务器,会发布项目<教程里面会教你>):点击此处获取 提…

JavaScript面试的完美指南(开发者视角)

2019独角兽企业重金招聘Python工程师标准>>> 摘要&#xff1a; 面试季手册。 原文&#xff1a;javascript 面试的完美指南(开发者视角)作者&#xff1a;前端小智Fundebug经授权转载&#xff0c;版权归原作者所有。 为了说明 JS 面试的复杂性&#xff0c;首先&#x…

电脑上mysql数据库无法登录_无法远程登入MySQL数据库的几种解决办法MySQL综合 -电脑资料...

方法一&#xff1a;尝试用MySQL Adminstrator GUI Tool登入MySQL Server&#xff0c;Server却回复错误讯息&#xff1a;Host 60-248-32-13.HINET-IP.hinet.net is not allowed to connect to thisMySQL server这个是因为权限的问题&#xff0c;处理方式如下&#xff1a;shell&g…

如何优化 App 的启动耗时?

原文&#xff1a;iOS面试题大全 iOS 的 App 启动主要分为以下步骤&#xff1a; 打开 App&#xff0c;系统内核进行初始化跳转到 dyld 执行。这个过程包括这些步骤&#xff1a;1&#xff09;分配虚拟内存空间&#xff1b;2&#xff09;fork 进程&#xff1b;3&#xff09;加载 M…

windows qt 不能debug_linux配置vlc-qt

vlc-qt 是基于vlc库&#xff0c;用于开发音频视频应用&#xff0c;性能优秀。vlc-qt/vlc-qt​github.com使用vlc-qt首先需要编译vlc-qt &#xff08;windows可以下载使用编译好的&#xff0c;但是只能用在release模式&#xff09;&#xff08;在windows系统中&#xff09;使用w…

idou老师教你学Istio 27:解读Mixer Report流程

1、概述 Mixer是Istio的核心组件&#xff0c;提供了遥测数据收集的功能&#xff0c;能够实时采集服务的请求状态等信息&#xff0c;以达到监控服务状态目的。 1.1 核心功能 •前置检查&#xff08;Check&#xff09;&#xff1a;某服务接收并响应外部请求前&#xff0c;先通过E…

mysql删除密码代码_mysql 用户新建、受权、删除、密码修改

mysql 用户新建、授权、删除、密码修改首先要声明一下&#xff1a;一般情况下&#xff0c;修改MySQL密码&#xff0c;授权&#xff0c;是需要有mysql里的root权限的。注&#xff1a;本操作是在WIN命令提示符下&#xff0c;phpMyAdmin同样适用。用户&#xff1a;phplamp 用户数…

KindEditor 上传漏洞致近百个党政机关网站遭植入

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; >>> 2月21日消息&#xff0c;近日&#xff0c;安恒明鉴网站安全监测平台和应急响应中心监测发现近百起党政机关网站被植入色情广告页面&#xff0c;分析发现被植入色情广告页面的网站都…

php mysql登陆页面完整代码_求助:PHP实现登陆注册的代码是什么啊(主要是数据库那块)?...

思路&#xff1a;注册&#xff1a;获取前台表单数据->数据库连接->判断数据是否存在&#xff0c;存在输出提示&#xff0c;不存在则向数据库插入表单传来的值->如果sql执行失败输出错误&#xff0c;成功功输出注册成功登陆&#xff1a;获取前台表单数据->数据库连接…

Insql 1.8.2 发布,轻量级 .NET ORM 类库

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; >>> Insql 是一个轻量级的.NET ORM 类库。对象映射基于 Dapper, Sql 配置灵感来自于 Mybatis。 TA 的追求&#xff1a;简洁、优雅、性能与质量 TA 的宗旨&#xff1a;让你用起来感觉到…