hexo多主题切换
今天看到一个朋友在github上面的issue
大概问题就是怎么在不同的电脑上面使用
git有个这么个东西Submoudle中文叫做子模块
具体使用教程看这里Git-工具-子模块
这里只说怎么搞hexo多主题切换和换电脑啥的
开始
首先分两种情况
1. 主题的出了配置文件 或者其他文件没有DIY过,都是直接clone原来的主题作者的
2. 主题的CSS JS 文件自己改过
没有修改主题源码
如果没有修改主题源码那就按照下面的步骤来作
备份主题配置文件
文件在
themes/主题名字/_config.yml
没错就是他,如果你修改了默认的配置,就拷贝到另外的目录
删除主题文件
没啥说的 删除对应的主题文件,也可以直接删除themes文件夹
建立子模块
在主目录执行下面命令
git submodule add <主题的git地址> themes/<主题名字>
添加完之后 会在主git目录下面生成一个.gitmoudles文件
获得主题文件
执行完上面的步骤之后主题并不会自动clone到对应的目录
要clone到本地 只需要在博客的git主目录执行
git submodule update --init --recursive
这个时候主题就会直接下载到对应的文件夹
恢复
这个就简单了 刚才备份的主题配置文件覆盖回去就行了
好了这样就设置完了
命令
下次更新主题文件就直接执行
git submodule update
即可
更改过主题源代码
上面的看完再看这个,这个就更简单了
fork主题源代码
找到你喜欢的主题,点击Github的fork,然后就会在你自己的代码库出现一份主题的代码
建立本地子模块
跟上面一样的步骤建立
只不过在添加子模块的时候把命令
git submodule add <主题的git地址> themes/<主题名字>
这里的主题git地址换成你自己库的地址
git submodule add git@github.com:luodaoyi/hexo-theme-next.git themes/next
后面的设置跟前面一模一样
提交自己的主题更改
按照没有修改过主题的步骤弄完 恢复好了主题设置检查没啥问题之后
然后进入主题代码的目录
cd themes/主题名字
提交主题的更改
git add .
git commit -m "剥离主题"
git push -u origin master
然后在自己的分支上面跟随原主题作者的更新 处理合并 生成的时候直接pull到本地就行
为啥要这样做
为啥要这样做 多费劲
这样做的有点有几个
- 首先主题设置跟站点设置分离,主题本身就是模块化的为啥非要搞到一起
- 以后可以随便换主题玩更改站点配置里面的主题名字即可
- 可维护性很好
- 方便换电脑
多主题切换
按照上的做法可以设置很多套主题
一套主题对应一套主题配置 可以备份到主题文件里面
随时切换主题
切换主题的时候只需要更改站点配置里面对应的主题名字就行了
换电脑了
这个更简单 换了新电脑 配置好git环境和 Node.js 环境
这个时候只需要clone一分自己的源代码到本地
在本地执行
npm install -g hexo-cli
npm install
git submodule update --init --recursive
好了搞定了
hexo多主题切换的更多相关文章
- Android 主题切换 小结
前言 我们用手机的时候经常看到 设置里面有夜间模式和白天模式来更换APP的主题,以前以为很简单,但是实际做起来还是有各种不完美,那么我们也要去了解各种解决方案来丰富我们的知识,现在我们就来看看各种优劣 ...
- windows phone主题切换(换肤)
之前项目做了个主题切换的功能,最后客户没来得及出第二套界面给放弃了,默哀中... 为了不让它就这样流产了,就放博客共享吧. 首先说明下原理:这个切换是通过重写资源字典里指定的样式,在运行的过程中加载指 ...
- Android主题切换方案总结
所谓的主题切换,就是能够根据不同的设定,呈现不同风格的界面给用户,也就是所谓的换肤. 1.将主题包(图片与配置)存到SD卡上(可通过下载或手动放入指定目录),在代码里强制从本地文件创建图片与配置文字大 ...
- extjs folder is lost解决方法 和 FineUI主题切换时 iframe内的内容主题不变的解决方法
错误原因:extjs包和FineUI版本不一致 或者是 webconfig配置中 没有设置为任何人可访问 解放方法下载和FineUI版本相同的extjs包就ok了 解决方法:FineUI主题切换时 ...
- Hexo 官方主题 landscape-plus 优化
博主喜欢简洁大方的Hexo主题,看了不下100个主题之后,最终选择了 landscape-plus 主题(针对中国大陆地区,对Hexo官方主题landscape进行优化后的版本).更多Hexo主题资源 ...
- iOS开发之App主题切换完整解决方案(Swift版)
本篇博客就来介绍一下iOS App中主题切换的常规做法,当然本篇博客中只是提到了一种主题切换的方法,当然还有其他方法,在此就不做过多赘述了.本篇博客中所涉及的Demo完全使用Swift3.0编写完成, ...
- CI框架主题切换的功能
CI框架主题切换的功能 本人接触到这个框架不就,属于菜鸟 , 公司现在用CI框架做项目 ,老大要做一个主题切换的功能,说明功能的要求我的脑子里瞬间有几个想法. 脑子里最简单的就是设置全局变量 如 : ...
- hexo next主题为博客添加分享功能
title: hexo next主题为博客添加分享功能 date: 2018-01-06 20:20:02 tags: [hexo博客, 博客配置] categories: hexo next主题配置 ...
- Android主题切换—夜间/白天模式探究
现在市面上众多阅读类App都提供了两种主题:白天or夜间. 上述两幅图片,正是两款App的夜间模式效果,所以,依据这个功能,来看看切换主题到底是怎么实现的(当然现在github有好多PluginThe ...
随机推荐
- 第一课 C语言简明教程
1序言: 1与Java.C#等高级语言相比,C语言使用简单但是也非常重要更容易出错,到目前为止基本上操作系统的内核代码超过百分之九十使用C语言完成,因此学好C语言是学好计算机这门课程的基础,特别是进入 ...
- redis---在CentOS6.5下安装与配置
本文详细介绍redis单机单实例安装与配置,服务及开机自启动.如有不对的地方,欢迎大家拍砖o(∩_∩)o (以下配置基于CentOS release 6.5 Final, redis版本3.0.2 [ ...
- springmvc国际化资源文件
spring配置文件中添加 <!-- 配置国际化资源文件 --> <bean id="messageSource" class="org.springf ...
- HDU - 2819 Swap (二分图匹配-匈牙利算法)
题意:一个N*N的01矩阵,行与行.列与列之间可以互换.要求变换出一个对角线元素全为1的矩阵,给出互换的行号或列号. 分析:首先一个矩阵若能构成对角线元素全为1,那么矩阵的秩为N,秩小于N的情况无解. ...
- 负载均衡集群ipvsadm命令及基本用法
ipvsadm是LVS在应用层的管理命令,我们可以通过这个命令去管理LVS的配置.需要使用yum单独安装. 基本用法: ipvsadm COMMAND [protocol] service-addre ...
- ubuntu 刚更改默认python3版本后更新包等
一般来说ubuntu 刚更改为python3为默认版本后要进行一下更新包等等的内容(当然不更新一下也是可以的,最好更新一下,第一次更新较慢) 使用下面两行代码: sudo apt-get update ...
- jQuery多功能日历插件 带事件记录功能
在线演示 本地下载
- 智能指针 auto_ptr、scoped_ptr、shared_ptr、weak_ptr
什么是RAII? RAII是Resource Acquisition Is Initialization的简称,是C++语言的一种管理资源.避免泄漏的惯用法. RAII又叫做资源分配即初始化,即:定义 ...
- SQLite教程
SQLite教程 http://www.runoob.com/sqlite/sqlite-date-time.html SQLite管理工具http://www.sqliteexpert.com/do ...
- Linux内核优化项
net.ipv4.ip_forward = #该文件内容为0,表示禁止数据包转发,1表示允许 net.ipv4.conf.default.rp_filter = #是否忽略arp请求 net.ipv4 ...