-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpelican-blog-1.html
More file actions
159 lines (148 loc) · 9.22 KB
/
Copy pathpelican-blog-1.html
File metadata and controls
159 lines (148 loc) · 9.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<!DOCTYPE html>
<html lang="zh">
<head>
<title>A Ordinary Boy, A Marvelous Toy | 把你的blog从octopress迁移到pelican吧(1)</title>
<meta charset="utf-8" />
<meta http-equiv="cache-control" content="no-cache" />
<link rel="stylesheet" type="text/css" href="/theme/css/base.css" />
<meta name="author" value="cosmoslx" />
<meta name="description" value="在很久很久之前有一个用 octopress 在 github pages 上搭建的 blog, octopress 提供使用 markdown 的方式来写 blog, 非常的方便 , 而且默认提供的功能和模板也足够的强大 。 然而唯一的缺陷是是使用 Ruby 及 Rake 来配置和部署 , 简单看了一下 , 感觉比较不易读 , 要自定义以及扩展起来比较麻烦 , 而且产生 blog 的目录结构也复杂不够直观 。 如果有一个同样支持 markdown 同时可以提供相同功能 , 而更易用的 Python 版本 octopress 那多好啊 。 于是一小心发现到基于 Python 的 pelican 这个项目就马上感觉就是这个了 , 于是就有了本次的迁移 。" />
<meta name="keywords" value="python,pelican,blog" />
</head>
<body>
<header class="site highlight">
<h1 class="stamp lrot bs"><a href="/">A Ordinary Boy</a></h1>
<h1 class="stamp rrot rfloat"><a href="http://github.com/cosmoslx/blog">A Marvelous Toy</a></h1>
</header>
<div class="site clearfix">
<nav class="lfloat">
<ul class="links">
<li>
<a class="stamp" href="/category/life.html">Life</a>
</li>
<li>
<a class="stamp" href="/category/play.html">Play</a>
</li>
<li class="active">
<a href="/category/tech.html">Tech</a>
</li>
</ul>
<ul class="social rfloat">
<li><a title="about me" href="http://about.me/cosmoslx"></a></li>
<li><a title="github" href="http://github.com/cosmoslx"></a></li>
<li><a href="/feeds/atom.xml" class="feed" type="atom+xml"></a></li>
</ul>
</nav> <section class="content">
<h1 class="stamp">把你的blog从octopress迁移到pelican吧(1)</h1>
<div class="body">
<article>
<footer>
<ul class="socialbtn">
<li></li>
<li></li>
</ul>
Sun 04 January 2015
<address>
<img width="20" height="20" src="http://gravatar.com/avatar/b41ce38811954c2eb6009af0c131f4aa"></img>
<a href="/author/cosmoslx.html">cosmoslx</a>
</address>
<ul class="tags"><lh>tags:</lh><li><a href="/tag/python.html">python</a></li><li><a href="/tag/pelican.html">pelican</a></li><li><a href="/tag/blog.html">blog</a></li></ul> </footer>
<div class="content">
<p> 在很久很久之前有一个用 <a href="http://octopress.org">octopress</a> 在 github pages 上搭建的 blog, octopress 提供使用 markdown 的方式来写 blog, 非常的方便 , 而且默认提供的功能和模板也足够的强大 。
然而唯一的缺陷是是使用 Ruby 及 Rake 来配置和部署 , 简单看了一下 , 感觉比较不易读 , 要自定义以及扩展起来比较麻烦 , 而且产生 blog 的目录结构也复杂不够直观 。
如果有一个同样支持 markdown 同时可以提供相同功能 , 而更易用的 Python 版本 octopress 那多好啊 。
于是一小心发现到基于 Python 的 <a href="http://blog.getpelican.com/">pelican</a> 这个项目就马上感觉就是这个了 , 于是就有了本次的迁移 。</p>
<h1>pelican 的特性 </h1>
<p> 说说我认为 pelican 的优点 :</p>
<ol>
<li> 由 Python 实现 , 配置文件简单清晰 , 主题基于 Jinja, 扩展方便 </li>
<li> 官方提供 <a href="https://github.com/getpelican/pelican-plugins">pelican-plugins</a> 及 <a href="https://github.com/getpelican/pelican-themes">pelican-themes</a>, 提供大量已有的插件和主题 , 懒人必备 </li>
<li> 目录结构清晰 , 没有复杂的层次结构 </li>
<li> 默认使用 make 来自动化提交 , 更通用 , 相比 rake, 更易于自定义和改进 </li>
</ol>
<p> 然而相比于 octopress 的缺点也不是没有 , 首先是默认主题就没有 octopress 功能完整和好用 , 同时默认安装如果要布置到 github pages 上还需要自己手动配置 。 接下来我会说说 <a href="http://docs.getpelican.com/en/3.5.0/settings.html"> 官方文档 </a> 中没有提到的上述的配置 。 </p>
<h1>pelican 的安装 </h1>
<p> 在官方文档的 <a href="http://docs.getpelican.com/en/3.5.0/quickstart.html"> 安装指南 </a> 有的东西 , 我这里就不再重重复 。</p>
<p> 总的来说安装其实很简单 , 直接使用 <code>pip install pelican</code> 即可 。</p>
<p> 然后使用 <code>pelican-quickstart</code> 命令在当前目录下建立一个初始的目录结构 , 如下 </p>
<div class="highlight"><pre>├── content
├── develop_server.sh
├── fabfile.py
├── Makefile
├── output
├── pelicanconf.py
└── publishconf.py
</pre></div>
<p> 其中 <code>pelicanconf.py</code> 是本地测试使用的配置 , 而 <code>publishconf.py</code> 则是使用 <code>make publish</code> 对外发布时使用的配置 。
<code>content</code> 用于存放 markdown 和相关静态文件的源目录 , 所生成的静态网站将会输出到 <code>output</code> 目录中 。</p>
<h1>pelican 的配置运行 </h1>
<p> 我们可以直接在 <code>content</code> 目录下 , 建立一个 <code>test.md</code> 文件作为实验 , 输入如下内容 :</p>
<div class="highlight"><pre><span class="n">Title</span><span class="o">:</span> <span class="n">My</span> <span class="n">First</span> <span class="n">Article</span>
<span class="n">Date</span><span class="o">:</span> <span class="mi">2014</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span> <span class="mi">10</span><span class="o">:</span><span class="mi">20</span>
<span class="n">Category</span><span class="o">:</span> <span class="n">Test</span>
<span class="n">Tags</span><span class="o">:</span> <span class="n">Hello</span><span class="o">,</span> <span class="n">Lift</span>
<span class="n">This</span> <span class="k">is</span> <span class="n">the</span> <span class="n">first</span> <span class="n">article</span> <span class="k">in</span> <span class="n">the</span> <span class="n">blog</span><span class="o">.</span>
</pre></div>
<p> 现在就可以使用命令 <code>make devserver</code> 来启动一个本地默认可以访问的 http://localhost:8000 测试 http 服务器 , 并通过默认测试配置 <code>pelicanconf.py</code> 来生成的 blog 的静态网页 。</p>
<p>Ok, 到此为此 ,pelican 就正式配置运行起来啦 , 下次将会说一下具体 <code>pelicanconf.py</code> 和 <code>publishconf.py</code> 的配置 , 特有功能 , 插件以及主题的使用 。</p>
<br /><hr />
<!-- <p>This post is part 1 of the "把你的blog从octopress迁移到pelican吧" series:</p> -->
<p>本篇是《把你的blog从octopress迁移到pelican吧》系列中的第1篇:</p>
<ol class="parts">
<li class="active">
<a href='/pelican-blog-1.html'>把你的blog从octopress迁移到pelican吧(1)</a>
</li>
<li >
<a href='/pelican-blog-2.html'>把你的blog从octopress迁移到pelican吧(2)</a>
</li>
</ol>
</div><!-- /.entry-content -->
<div class="comments">
<h2>Comments</h2>
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_identifier = "pelican-blog-1.html";
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://cosmoslx-blog.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
</div>
</article>
</div>
</section>
<footer class="site clearfix bs">
<section class="lfloat">
<ul>
<lh>categories</lh>
<li><a href="/category/life.html">Life</a></li>
<li><a href="/category/play.html">Play</a></li>
<li><a href="/category/tech.html">Tech</a></li>
</ul>
</section>
<section class="lfloat">
<ul>
<lh>pages</lh>
</ul>
</section>
<section class="rfloat">
<small>
<p>site generated by <a href="https://github.com/getpelican/pelican">pelican</a></p>
<p>theme by <a href="https://github.com/demianbrecht">demian brecht</a></p>
<p>备案号:<a href="https://beian.miit.gov.cn/" target="_blank">粤ICP备2021059169号-1</a></p>
</small>
</section>
</footer> </div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-58180786-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>