管理用hexo写的博客的内容源码(md)

96
九彩拼盘
2014.06.01 19:57* 字数 638

在github上用hexo写博客的朋友会用碰到这样的问题:部署好博客(hexo deploy)后,发现在github上看到的是生成好的静态站(html,css,js),但不包括博客内容的源码(md)。

那么,如何要在多台电脑上管理这个博客呢?

我的解决方案是:新建了一个github项目,专门来放博客内容源码,记做方案1。但这样比较烦的是,要进行新建或修改文章时:

  1. 更新博客源码的项目,然后将源码拷贝到博客项目
  2. 在博客项目中,新建或修改文章,并部署
  3. 将博客项目中的博客源码拷贝到博客源码项目
  4. 提交博客源码项目

看着都麻烦那~~~

后来,发现了grunt-gh-pages这个基于grunt的包。grunt-gh-pages的功能是,可以自动的将master下的某些内容发布到某个分支。所以,我换了个的思路。通过新建个blog_source分支来放博客内容源码。记做方案2。

具体是:

  1. 先更新blog_source分支的内容,将blog_source分支内容拷贝到master分支中对应的地方
  2. 在博客项目中,新建或修改文章,并部署
  3. master分支的博客源码和配置拷贝到blog_source分支
  4. 提交blog_source分支

方案2和方案1的不同的地方是,方案2可通过使用Grunt来自动化的实现将博客内容源码管理,而方案1是手动的。下面描述下用Grunt来实现方案2的第三步:

  1. 删除上一次发布博客生成的临时文件夹。grunt-contrib-clean可以实现这个功能。
  2. 把博客的源码和其他一些需管理的配置信息都复制到build文件夹下。grunt-contrib-copy可以实现这个功能。
  3. build文件夹下的内容放到blog_source分支。grunt-gh-pages可以实现这个功能。

Gruntfile.js 的中的配置如下,完整的Gruntfile.js这里

grunt.initConfig({
        'clean':{
            files: ['.grunt','build']
        },
        'copy': {
            source: {
                'src': ['source/**/*'],
                'dest': 'build/',
            },
            config: {
                'src': [
                    'package.json',
                    'Gruntfile.js',
                    '_config.yml'
                ],
                'dest': 'build/config/'
            },
            theme: {
                'src': [
                    'themes/pacman/_config.yml'
                ],
                'dest': 'build/theme/',
                expand: true, 
                flatten: true
            },
            readme:{
                'src': [
                    'README.md'
                ],
                'dest': 'build/'
            }
        },
        'gh-pages': {
            options: {
                base: 'build',
                branch: 'blog_source' 
            },
            src: ['**']
        }
    });
grunt.registerTask('bac_src', ['clean','copy','gh-pages']);

这样,每次新建或修改完博客,就可以通过 执行grunt bac_src来将博客内容源码放到blog_source分支。

当然,方案2的第一步,也可以用Grunt来自动化搞定。

大家有更好的 “管理用hexo写的博客的内容源码”的方法吗?请告诉我XD

🐋 Web 前端
Web note ad 1