本文原文地址:使用Pelican在Github(国外线路访问)和Coding(国内线路访问)同步托管博客

介绍: Github Pages 禁用了百度爬虫,因此百度搜索引擎经常抓取不到在Github上托管的博客链接。本文介绍一种可行的解决方法:

  • 注册Coding用来托管一份和Github上一样的博客仓库专门服务国内的索引
  • 配置DNS解析,将国内的线路解析到Coding,国外的线路解析到Github
  • 配置Pelican,支持一键将同一份本地博客仓库同时发布到Github和Coding


一、《Pelican+Github博客搭建详细教程》


按照标题链接给出的教程先搭建出一个基于Github托管的博客系统。接下来将说明如何将博客同步到Coding。


二、在Coding创建一个新的项目


  1. Coding首页进行注册并登陆,创建项目的方法与Github类似,不同之处在于coding新建的公开项目名和用户名相同,而不像Github那样是<用户名>.github.io。创建完成后,生成的新的项目链接应该类似于:https://coding.net/<usrname>/<username>.git
  2. 将本地SSH公钥拷贝到coding。操作同样与Github类似。由于本地已经为Github生成了一个公钥,这里只用cd进入~/.ssh文件夹查看一个名为id_rsa.pub文件的内容,类似于如下。我们只拷贝邮箱之前的所有内容到coding的公钥管理页面。
ssh-rsa AAAAfafjIJGOF+FDA。。(省略)。。Ksap Heriam@users.noreply.github.com

三、将仓库拷贝到Coding


  1. 进入Pelican的output目录下的本地博客仓库,打开.git/config,修改远程仓库,将 origin 改为 github,并添加 coding:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "github"]
url = git@github.com:Heriam/heriam.github.io.git
fetch = +refs/heads/*:refs/remotes/github/*
[remote "coding"]
url = git@git.coding.net:Heriam/heriam.git
fetch = +refs/heads/*:refs/remotes/coding/*
[branch "master"]
remote = origin
merge = refs/heads/master
  1. 然后将仓库 push 到 Coding上,在Coding新建一个 coding-pages 分支:
git push -u coding master:coding-pages
  1. 这时登录Coding就可以看到博客内容已经被拷贝到coding-pages分支。

四、配置域名


  1. 登录到网站的域名解析管理页面(我用的是DNSPOD,后来转向Cloudxns),然后添加两条域名解析记录:
@       CNAME  国内  coding.me
www CNAME 国内 coding.me
  1. 在Coding 上“项目管理”中找到“自定义域名/Pages”,添加要绑定的域名,比如我是 jiang-hao.comwww.jiang-hao.com。注意这些域名也就是我们刚刚在dnspod中设置的解析域名。

五、配置Pelican实现同步提交


设置一键上传:(如有疑问参见《Pelican+Github博客搭建详细教程》第三部分第4点)打开根目录下的Makefile文件,修改以下三个地方:

  • OUTPUTDIR
OUTPUTDIR=$(BASEDIR)/output/<username>.github.io    #本地博客仓库路径
  • publish
publish:
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
  • github: publish
github: publish
cd $(OUTPUTDIR) ; git add . ; git commit -am '<添加自己的备注>' ; git push github master:master ; git push coding master:coding-pages

这样 ,通过`make github`命令就能一键发布博客更新到Github和Coding了。

使用Pelican在Github(国外线路访问)和Coding(国内线路访问)同步托管博客的更多相关文章

  1. MAC下利用Github 、hexo、 多说、百度统计 建立个人博客指南

    1.前期准备: (1)注册github账号 (2)安装xcode (3)安装node.js 2.创建repository: (1)开个github的个人主页,点击创建仓库按钮 New reposito ...

  2. 如何在github上搭建一个免费的 无限流量的静态网页博客Github pages

    前言: 看到很多相关的教程,但是在实际操作的时候还是遇见了不少问题,这里记录分享一下我的操作流程.免费空间用过很多,博客也用过一些,听说了github后就想试着玩一下这个静态库,感觉挺不错的,操作也比 ...

  3. 不再忍受龟速 Github,你也可以试试在云开发上部署个人博客!

    Hexo 是被大家广泛使用的静态博客系统, 除了在 Github Pages 部署以外,现在你有了一个新的选择,那就是使用云开发静态网站功能来部署啦! 云开发(CloudBase)是一款云端一体化的产 ...

  4. 托管博客到coding或者github

    1. 部署网站到github的pages服务 参考: <在Github上面搭建Hexo博客(一):部署到Github> <Hexo搭建独立博客,托管到Github和Coding上教程 ...

  5. Pelican+Github博客搭建详细教程

    操作系统:Mac OS / Linux 工具集: 1.Pelican--基于Python的静态网页生成器 2.马克飞象--Evernote出的Markdown文本编辑器 3.GoDaddy--域名供应 ...

  6. Gridea+GitHub搭建个人博客

    某日闲余时间看到一篇介绍Gridea博客平台的文章,大概看了一下觉得此平台还不错,随即自己进入Gridea官网瞅了瞅.哇,这搭建过程也太简单了吧,比Hexo博客搭建要容易很多,而且还有后台管理客户端, ...

  7. 可能是最详细的 Hexo + GitHub Pages 搭建博客的教程

    前言:博主目前大三,Web 前端爱好者.写博客的好处,不是为了写而写,而是一个记录思想的过程.不要考虑它能带给你什么,而是你自己从中收获了什么. 最近刚好有空,于是就参照网上的各种教程,搭建了一个博客 ...

  8. Hexo + GitHub Pages搭建博客

    搭建 Node.js 环境 为什么要搭建 Node.js 环境? – 因为 Hexo 博客系统是基于 Node.js 编写的 Node.js 是一个基于 Chrome V8 引擎的 JavaScrip ...

  9. 基于 Hexo + GitHub Pages 搭建个人博客(三)

    一.添加扫描二维码关注功能 打开 themes 目录下的 next 主题配置文件,找到 Wechat Subscriber 标签,将该标签下的配置改成如下形式: # Wechat Subscriber ...

随机推荐

  1. C++中的数组问题

    C++中的数组问题 1. 数组赋值与初始化 (1)直接初始化: ]={,,}: (2)遍历访问初始化: ;i< ;i++) //直接读入,或者用别的数组,以及别的(i+1)等. (3)内存操作函 ...

  2. 来回最短路POJ3268

    这个题得主要考点在于给你的图是去了再回来得有向图,如何模块化解决呢就是转变图的方向,我们根据初始得放心求出每个点到x得最短路,然后转变所有路得方向再求出所有点到x得最短路,最后一相加就是最后的来回了~ ...

  3. 如何实现让你的网站支持Google Roboto Font

    最近在写一个移动端的web项目,designer设计的页面效果图就是使用Google Roboto Font.The Roboto Font 是Google为Android 4.0 Ice-Cream ...

  4. 【cocos2d-x + Lua(1) 绑定Lua并使用tolua++】

    为什么要使用Lua进行游戏开发?转载请注明出处http://www.cnblogs.com/zisou/p/cocos2dx-lua1.html 上面一个问题我觉得在我们使用Lua之前需要深入思考的, ...

  5. 关于jdbc编程的几点需要注意的地方

    代码 private void logDataDb(ArrayList<ReceiveData> datas) { Connection conn = null; PreparedStat ...

  6. Day 9 函数的初识1

    def my_len(): l1 = [1,2,3,5,6] print(111) print(222) return print(333)print(my_len()) 一.函数的定义1.遇到ret ...

  7. 通过修改EIP寄存器实现32位程序的DLL注入

    功能:通过修改EIP寄存器实现32位程序的DLL注入 <如果是64位 记得自己对应修改汇编代码部分> 原理:挂起目标进程,停止目标进程EIP的变换,在目标进程开启空间,然后把相关的指令机器 ...

  8. 一次对webshell的后门的查看

    本文作者i春秋作家——非主流 昨天晚上突发奇想的想去看看github上面tennc的webshell收集项目中的shell有没有漏洞,比如未授权啊啥的,结果找半天都没找到...但是机缘巧合下,居然给我 ...

  9. call、apply、bind的异同

    一.call.apply.bind的异同 JavaScript中函数可以通过3种方法改变自己的this指向,它们是call.apply.bind.它们3个非常相似,但是也有区别.下面表格可以很直观看出 ...

  10. 使用 spring.profiles.active 及 @profile 注解 动态化配置内部及外部配置

    引言:使用 spring.profiles.active 参数,搭配@Profile注解,可以实现不同环境下(开发.测试.生产)配置参数的切换 一.根据springboot的配置文件命名约定,结合ac ...