Geek是什么

Geek更多的是一种精神,一种态度,一种对技术的理解与信念。他们无法忍受丑陋的代码,拙劣的技术。他们思路开阔,技术娴熟,他们不甘平庸,追求完美。他们不会囿于常识,他们敢于突破。在常人眼中,他们不走寻常路,享受各种非主流的技术。但在他们自己眼中,这些又是那么得自然与优美。他们用自己的行为诠释着自己对于技术的理解,用那份固执传达着自己的信念。

他们掌握并热爱着技术,叛逆、执着,崇尚自由。

为什么不选择CSDN、Wordpress、Jekyll等技术

我在CSDN上发表博文被和谐了一次,就不会允许这种事发生第二次。

Wordpress上手容易、功能强大、插件丰富。但是在我看来,这些优点同时也是它的缺点:太笨重、太无脑、不够酷、无用功能太多、可定制的粒度不够小。我更喜欢简洁快速粗暴的博客系统。

Jekyll非常棒,可惜它基于Ruby。对于Python爱好者而言,基于Python的Pelican显然更加可口。

卧薪尝胆


我在搭建这个博客的过程中学到了很多很多有意思的技术。

搭建环境为Mac OS X/Linux,Windows下可能会麻烦一些。

搭建过程中会涉及到的技术名词如下:

  • Mac OS X
  • Python
  • Pip
  • Pelican
  • Jinja2
  • Github
  • Git
  • Makefile
  • Markdown
  • Mou
  • Google Analytics
  • Google Custom Search
  • Google Webmasters
  • Picasa
  • Disqus
  • Rss
  • Sitemap
  • Godaddy
  • Dnspod
  • A记录

若对任何一个技术名词有疑问,请翻墙Google it.

初见端倪


开始动手。

Github入门指南

请参考http://blog.csdn.net/duxinfeng2010/article/details/8654690

使用Github Pages创建个人博客

Github为每一个用户分配了一个二级域名username.github.io,用户为自己的二级域名创建主页很简单,只需要在Github下创建一个名为username.github.io的版本库,并向其master分支提交网站静态页面即可。

  • 登陆Github,创建一个名为username.github.io的版本库(将username替换成自己的Github账户名)。
  • 点击Setting,选择一个自己喜欢的模板,最后点击发布public按钮。
  • 耐心等待一段时间(不超过10分钟),登陆http://username.github.io,会发现自己的个人博客已经生成。

安装Pelican和Markdown

pip install pelican
pip install markdown

搭建骨架

mkdir blog
cd blog
pelican-quickstart

根据提示一步步输入相应的配置项,不知道如何设置的接受默认即可,后续可以通过编辑pelicanconf.py文件更改配置)

以下是生成的目录结构:

blog/
├── content              # 存放输入的源文件
│   └── (pages)          # 存放手工创建的静态页面
├── output               # 生成的输出文件
├── develop_server.sh    # 方便开启测试服务器
├── Makefile             # 方便管理博客的Makefile
├── pelicanconf.py       # 主配置文件
└── publishconf.py       # 主发布文件,可删除

进入output把自己刚刚建好的username.github.io版本库clone下来:

cd output
git clone git@github.com:username/username.github.io.git

开始写博文

在content目录下用Markdown语法来写一篇文章,最好选择专业的Markdown编辑器,在Mac OS X下推荐使用Mou,在Linux/Windows下请Google。

用Markdown写博文截图如下: 

左半边是正在用markdown写的博文,右边是即时预览效果。

写完后,执行以下命令,即可在本机http://127.0.0.1:8000看到效果。

make publish
make serve

若要一键上传到Github,需要修改Makefile两处地方:

publish:
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)github: publish
cd OUTPUTDIR ; git add . ;  git commit -am 'your comments' ; git push

以后写完文章执行make github就可以一键部署了。

如虎添翼


我们已经能成功地用markdown写出博文并部署到github了,但这远远不够。

管理图片

我觉得使用云相册比本地图片要方便的多,我使用Picasa来维护blog的所有图片。

挑选主题

安装主题,比如bootstrap2:

git clone https://github.com/getpelican/pelican-themes.git
cd pelican-themes
pelican-themes -i bootstrap2

选择主题,在pelicanconf.py中添加

THEME = 'bootstrap2'

安装第三方评论系统

在Disqus上申请一个站点,记牢Shortname。 在pelicanconf.py添加

DISQUS_SITENAME = Shortname

添加Google Analytics

去Google Analytics申请账号,记下跟踪ID。 在pelicanconf.py添加

GOOGLE_ANALYTICS = 跟踪ID

Google Analytics极其强悍,截图说明一切: 

使用Google Webmasters

在Google Webmasters上注册即可。

这个就是Google站长工具,使用它的目的是为了让博客被Google更好的收录,比如手动让Googlebot抓取、提交Robots、更新Sitemap等等,各方面完爆百度站长工具。

截图如下: 

添加插件

git clone git://github.com/getpelican/pelican-plugins.git

比如我要使用sitemap,在pelicanconf.py里配置如下

PLUGIN_PATH = u"pelican-plugins"
PLUGINS = ["sitemap"]
SITEMAP = {"format": "xml","priorities": {"articles": 0.7,"indexes": 0.5,"pages": 0.3,},"changefreqs": {"articles": "monthly","indexes": "daily","pages": "monthly",}
}

使用Google站内搜索

请参考http://www.codenut.net/post/2013-06-30-cse

申请独立域名

  • 在Godaddy上用支付宝花购买为期一年的顶级域名,并去修改Nameservers为这两个地址:f1g1ns1.dnspod.net、f1g1ns2.dnspod.net。
  • 在Dnspod上添加新域名,并申请一条A记录指向Github Pages的ip:207.97.227.245;
  • 在Pelican主目录新建CNAME文件,添上刚刚申请的域名,如我的www.lizherui.com

登峰造极


最后,如果感觉还不够味儿,可以参考Pelican官方文档和这个博客的完整源码。

Pelican : http://docs.getpelican.com/en/3.2

Source Code : https://github.com/lizherui/lizherui.github.io

Have fun!

一步一步打造Geek风格的技术博客相关推荐

  1. 如何搭建一个拥有个人域名又带点Geek味的独立博客

    本文首发于个人博客:Lam's Blog - 如何搭建一个拥有个人域名又带点Geek味的独立博客,文章由MarkDown语法编写,可能不同平台渲染效果不一,如果有存在排版错误图片无法显示等问题,烦请移 ...

  2. 使用 GitHub, Jekyll 打造自己的免费独立博客

    使用 GitHub, Jekyll 打造自己的免费独立博客 GitHub是一个代码托管网站,现在很多开源项目都放在GitHub上. 利用GitHub,可以让全球各地的程序员们一起协作开发.GitHub ...

  3. html简洁风格的个人博客网站模板(源码)

    文章目录 1.设计来源 1.1 博客首界面 1.2 个人简介界面 1.3 日常记录界面 1.4 文章列表界面 1.5 文章信息界面 2.结构源码 2.1 目录结构 2.2 源代码 源码下载 作者:xc ...

  4. GitHub Pages + Hexo + NexT + Typora + WhatsNote打造完美个人知识共享博客

    GitHub Pages + Hexo + NexT + Typora + WhatsNote打造完美个人知识共享博客 一.目标 二.理念 三.准备工作 1. 工具 2. 过程 四.实现过程 1. 搭 ...

  5. youleb多风格响应式博客wordpress主题模板

    介绍: youleb多风格响应式wordpress主题模板,13种配色风格,功能强大,非常适合博客类型网站使用. 内置产品或作品展示页面,HTML5+CSS3,SEO代码布局CSS/JS压缩,体积小功 ...

  6. 博客园——打造不一样的个人博客

    最近跑去博客园写文章了,一个原因是觉得博客园阅读体验更好,阅读时没有太多的干扰,可以定制主题界面,给人感觉更加舒适.这是我在博客园的博客首页. 点击跳转到我的博客园 主题美化方案 博客园默认或者官方提 ...

  7. php pacs,DICOM医学图像处理:WEB PACS初谈四,PHP DICOM Class – 只要踏出一步,路就在前方——zssure – CSDN博客...

    背景: 预告了好久的几篇专栏博文一直没有整理好,主要原因是早前希望搭建的WML服务器计划遇到了问题.起初以为参照DCMTK的官方文档wwwapp.txt结合前两天搭建的WAMP服务器可以顺利的实现WM ...

  8. python 动态执行条件判断_【人生苦短,我学 Python】基础篇——条件判断与循环语句(Day12)_不积跬步,无以至千里!-CSDN博客...

    原文作者:AI 菌 原文标题:[人生苦短,我学 Python]基础篇--条件判断与循环语句(Day12) 发布时间:2021-02-08 23:17:06 写在前面:大家好!我是[AI 菌],一枚爱弹 ...

  9. Visual Studio Code 使用 ESLint 增强代码风格检查 - gyzhao - 博客园

    前言 在团队协作开发中,为了统一代码风格,避免一些低级错误,应该设有团队成员统一遵守的编码规范.很多语言都提供了Lint工具来实现这样的功能,JavaScript也有类似的工具:ESLint.除了可以 ...

最新文章

  1. 2020-09-25C++学习笔记引用2:二级指针形参与指针形参的使用方法和区别重难点,主看综合代码(1、指针形参2、引用形参3、二级指针形参4、指针引用形参)
  2. 探究Softmax的替代品:exp(x)的偶次泰勒展开式总是正的
  3. FJ的字符串java问题_蓝桥杯VIP试题 之 基础练习 FJ的字符串- JAVA
  4. 最长公共子序列(信息学奥赛一本通-T1265)
  5. 假设以带头结点的循环链表表示队列_数据结构·链表(C实现)
  6. 带你认识7种云化测试武器
  7. slotformatcombinations_R15 38.331 无线资源控制(RRC)协议规范.pdf
  8. python和c 的区别-python和c语言的主要区别总结
  9. Android StickHeaderRecyclerView - 让recyclerview头部固定
  10. Matlab 调用refprop(64位环境)和物性函数使用说明
  11. html点击按钮跳转到另一个界面_网页制作:一个简易美观的登录界面
  12. Zephry Uart Device详解
  13. YIT-CTF—隐写术
  14. IMO模型编程思维法(Input-Model-Output)
  15. 海昇智:拼多多推广创意图如何才能做好?
  16. 手机服务器异常修复,手机服务器异常
  17. SQL Server获取姓名拼音
  18. Mac电脑 zsh: command not found: vue
  19. clear 方法的解释及用法
  20. 苹果mac可引导系统镜像下载

热门文章

  1. Linux虚拟内存和进程虚拟地址空间简述
  2. SNMP功能开发简介 四 net-snmp动态监听自定义端口
  3. js 到 jsp 传输数据
  4. python画小猪乔治_小孩挑食难搞定?试下猪肉这样炒,简单5步超下饭,比牛肉还香嫩...
  5. 每三个数换行 用C语言表示,关于换行符:使用fscanf()读取每行3个数字的文件,为什么“%d%d%d%* c”和“%d%d%d”一样好?...
  6. php beego,MixPHP 2.2 / Beego 1.12 数据库查询性能对比
  7. 基于psr规范php框架,PHP-PSR规范
  8. 文本编辑器实现打开文件、保存文件、文件另存为、新建文件、软件关闭的功能
  9. c打印char* 数据_JAVA基础篇(数据类型)
  10. ajax error 400 4,jquery - ajax error 400 bad request - Stack Overflow