aboutsummaryrefslogtreecommitdiff
path: root/_posts
diff options
context:
space:
mode:
authorclarkzjw <[email protected]>2018-01-18 05:45:32 +0000
committerclarkzjw <[email protected]>2018-01-18 05:45:32 +0000
commite86bd1e4e9e31a4582a6a130f90c44f022a9afd3 (patch)
tree412f0e53e17040d332ee1f755294aa8f93eddc3d /_posts
parentfd0afd9e9e9e8b87cf16ac5ae4cb0ab6be6b494d (diff)
downloadblog.jinwei.me-e86bd1e4e9e31a4582a6a130f90c44f022a9afd3.tar.gz
Thu Jan 18 05:45:32 UTC 2018
Diffstat (limited to '_posts')
-rw-r--r--_posts/2017/12/movies.html625
-rw-r--r--_posts/2018/01/new-blog.html431
2 files changed, 675 insertions, 381 deletions
diff --git a/_posts/2017/12/movies.html b/_posts/2017/12/movies.html
index 5062485..5264711 100644
--- a/_posts/2017/12/movies.html
+++ b/_posts/2017/12/movies.html
@@ -1,193 +1,442 @@
1 1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6<html xmlns="http://www.w3.org/1999/xhtml"> 2<html xmlns="http://www.w3.org/1999/xhtml">
7 <head> 3 <head>
8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
9 <title>2017观影记录 &#8212; Hello World</title> 5 <title>
10 <link rel="stylesheet" href="../../../_static/alagitpull.css" type="text/css" /> 6 2017观影记录 — Hello World
11 <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> 7 </title>
12 <link rel="stylesheet" href="../../../_static/flexboxgrid.min.css" type="text/css" /> 8 <link href="../../../_static/alagitpull.css" rel="stylesheet" type="text/css"/>
13 <link rel="stylesheet" href="../../../_static/git-pull.css" type="text/css" /> 9 <link href="../../../_static/pygments.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript"> 10 <link href="../../../_static/flexboxgrid.min.css" rel="stylesheet" type="text/css"/>
15 var DOCUMENTATION_OPTIONS = { 11 <link href="../../../_static/git-pull.css" rel="stylesheet" type="text/css"/>
16 URL_ROOT: '../../../', 12 <script type="text/javascript">
17 VERSION: '0.0', 13 var DOCUMENTATION_OPTIONS = { URL_ROOT: '../../../', VERSION: '0.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true, SOURCELINK_SUFFIX: '.txt' };
18 COLLAPSE_INDEX: false, 14 </script>
19 FILE_SUFFIX: '.html', 15 <script src="../../../_static/jquery.js" type="text/javascript">
20 HAS_SOURCE: true, 16 </script>
21 SOURCELINK_SUFFIX: '.txt' 17 <script src="../../../_static/underscore.js" type="text/javascript">
22 }; 18 </script>
23 </script> 19 <script src="../../../_static/doctools.js" type="text/javascript">
24 <script type="text/javascript" src="../../../_static/jquery.js"></script> 20 </script>
25 <script type="text/javascript" src="../../../_static/underscore.js"></script> 21 <link href="../../../_static/favicon.ico" rel="shortcut icon"/>
26 <script type="text/javascript" src="../../../_static/doctools.js"></script> 22 <link href="../../../genindex.html" rel="index" title="Index"/>
27 <link rel="shortcut icon" href="../../../_static/favicon.ico"/> 23 <link href="../../../search.html" rel="search" title="Search"/>
28 <link rel="index" title="Index" href="../../../genindex.html" /> 24 <link href="../../../_static/custom.css" rel="stylesheet" type="text/css"/>
29 <link rel="search" title="Search" href="../../../search.html" /> 25 <meta content="width=device-width, initial-scale=0.9, maximum-scale=0.9" name="viewport"/>
30 26 </head>
31 <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" /> 27 <body>
32 28 <div class="document">
33 29 <div class="documentwrapper">
34 <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> 30 <div class="bodywrapper">
35 31 <div class="body" role="main">
36 </head> 32 <div class="section" id="movie">
37 <body> 33 <span id="id1">
38 34 </span>
39 35 <h1>
40 36 2017观影记录
41 <div class="document"> 37 <a class="headerlink" href="#movie" title="Permalink to this headline">
42 <div class="documentwrapper"> 38
43 <div class="bodywrapper"> 39 </a>
44 <div class="body" role="main"> 40 </h1>
45 41 <table class="docutils field-list" frame="void" rules="none">
46 <div class="section" id="movie"> 42 <colgroup>
47<span id="id1"></span><h1>2017观影记录<a class="headerlink" href="#movie" title="Permalink to this headline">¶</a></h1> 43 <col class="field-name"/>
48<table class="docutils field-list" frame="void" rules="none"> 44 <col class="field-body"/>
49<col class="field-name" /> 45 </colgroup>
50<col class="field-body" /> 46 <tbody valign="top">
51<tbody valign="top"> 47 <tr class="field-odd field">
52<tr class="field-odd field"><th class="field-name">Publish Date:</th><td class="field-body">2017-12-30</td> 48 <th class="field-name">
53</tr> 49 Publish Date:
54</tbody> 50 </th>
55</table> 51 <td class="field-body">
56<p>2017年马上就结束了。掐指一算,2017年看了好多电影。包括线上和线下电影院的。</p> 52 2017-12-30
57<p>线下电影院观影记录(按时间顺序,以中国大陆上映时的片名为准):</p> 53 </td>
58<ul class="simple"> 54 </tr>
59<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%98%9F%E9%9A%9B%E5%A4%A7%E6%88%B0%E5%A4%96%E5%82%B3%EF%BC%9A%E4%BF%A0%E7%9B%9C%E4%B8%80%E8%99%9F">星球大战外传:侠盗一号</a> (Rogue One: A Star Wars Story)</li> 55 </tbody>
60<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%98%9F%E9%9A%9B%E9%81%8E%E5%AE%A2">太空旅客</a> (Passengers)</li> 56 </table>
61<li><a class="reference external" href="https://zh.wikipedia.org/zh-hans/%E9%99%8D%E4%B8%B4_(%E7%94%B5%E5%BD%B1)">降临</a> (Arrival)</li> 57 <p>
62<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%99%90%E5%88%B6%E7%B4%9A%E6%88%B0%E8%AD%A6%EF%BC%9A%E9%87%8D%E8%BF%94%E6%A5%B5%E9%99%90">极限特工:终极回归</a> (xXx: The Return of Xander Cage)</li> 58 2017年马上就结束了。掐指一算,2017年看了好多电影。包括线上和线下电影院的。
63<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%83%A1%E9%9D%88%E5%8F%A4%E5%A0%A1%EF%BC%9A%E6%9C%80%E7%B5%82%E7%AB%A0">生化危机6:终章</a> (Resident Evil: The Final Chapter)</li> 59 </p>
64<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E7%BE%85%E6%A0%B9_(%E9%9B%BB%E5%BD%B1)">金刚狼3:殊死一战</a> (Logan)</li> 60 <p>
65<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%94%BB%E6%AE%BC%E6%A9%9F%E5%8B%95%E9%9A%8A_(2017%E5%B9%B4%E9%9B%BB%E5%BD%B1)">攻壳机动队</a> (Ghost in the Shell)</li> 61 线下电影院观影记录(按时间顺序,以中国大陆上映时的片名为准):
66<li><a class="reference external" href="https://zh.wikipedia.org/zh-hans/%E7%8E%A9%E5%91%BD%E9%97%9C%E9%A0%AD8">速度与激情8</a> (The Fate of the Furious)</li> 62 </p>
67<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%8B%86%E5%BC%B9%E4%B8%93%E5%AE%B6_(%E7%94%B5%E5%BD%B1)">拆弹专家</a></li> 63 <ul class="simple">
68<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E5%A4%A7%E6%8A%A4%E6%B3%95">大护法</a></li> 64 <li>
69<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%88%B0%E7%8B%BC2">战狼2</a></li> 65 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%98%9F%E9%9A%9B%E5%A4%A7%E6%88%B0%E5%A4%96%E5%82%B3%EF%BC%9A%E4%BF%A0%E7%9B%9C%E4%B8%80%E8%99%9F">
70<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%98%9F%E9%9A%9B%E7%89%B9%E5%B7%A5%E7%93%A6%E9%9B%B7%E8%AB%BE%EF%BC%9A%E5%8D%83%E6%98%9F%E4%B9%8B%E5%9F%8E">星际特工:千星之城</a> (Valérian et la Cité des mille planètes)</li> 66 星球大战外传:侠盗一号
71<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E4%BD%88%E5%B1%80_(%E9%9B%BB%E5%BD%B1)">看不见的客人</a> (Contratiempo)</li> 67 </a>
72<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E8%8B%B1%E5%80%AB%E5%B0%8D%E6%B1%BA">英伦对决</a> (The Foreigner)</li> 68 (Rogue One: A Star Wars Story)
73<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%A8%A1%E7%8A%AF%E7%94%9F">天才枪手</a> (ฉลาดเกมส์โกง)</li> 69 </li>
74<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%87%91%E7%89%8C%E7%89%B9%E5%8B%99%EF%BC%9A%E6%A9%9F%E5%AF%86%E5%B0%8D%E6%B1%BA">王牌特工2:黄金圈</a> (Kingsman: The Golden Circle)</li> 70 <li>
75<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%B0%A3%E8%B1%A1%E6%88%B0_(%E9%9B%BB%E5%BD%B1)">全球风暴</a> (Geostorm)</li> 71 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%98%9F%E9%9A%9B%E9%81%8E%E5%AE%A2">
76<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%9D%B1%E6%96%B9%E5%BF%AB%E8%BB%8A%E8%AC%80%E6%AE%BA%E6%A1%88_(2017%E5%B9%B4%E9%9B%BB%E5%BD%B1)">东方快车谋杀案</a> (Murder on the Orient Express)</li> 72 太空旅客
77<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%9B%B7%E7%A5%9E%E7%B4%A2%E7%88%BE3%EF%BC%9A%E8%AB%B8%E7%A5%9E%E9%BB%83%E6%98%8F">雷神3:诸神黄昏</a> (Thor: Ragnarok)</li> 73 </a>
78<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E8%BF%BD%E6%8D%95_(2017%E5%B9%B4%E9%9B%BB%E5%BD%B1)">追捕</a></li> 74 (Passengers)
79<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%9C%80%E9%BB%91%E6%9A%97%E7%9A%84%E6%99%82%E5%88%BB">至暗时刻</a> (Darkest Hour)</li> 75 </li>
80<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E5%AF%BB%E6%A2%A6%E7%8E%AF%E6%B8%B8%E8%AE%B0">寻梦环游记</a> (Coco)</li> 76 <li>
81<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E8%87%B3%E7%88%B1%E6%A2%B5%E9%AB%98%C2%B7%E6%98%9F%E7%A9%BA%E4%B9%8B%E8%B0%9C">至爱梵高·星空之谜</a> (Loving Vincent)</li> 77 <a class="reference external" href="https://zh.wikipedia.org/zh-hans/%E9%99%8D%E4%B8%B4_(%E7%94%B5%E5%BD%B1)">
82<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E8%8A%B3%E5%8D%8E">芳华</a></li> 78 降临
83</ul> 79 </a>
84<p>线上观影记录(包括BT下载以及Netflix,包括电影/纪录片/部分美剧,不完全):</p> 80 (Arrival)
85<ul class="simple"> 81 </li>
86<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%93%B6%E7%BF%BC%E6%9D%80%E6%89%8B">Blade Runner</a> (1982)</li> 82 <li>
87<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%8A%80%E7%BF%BC%E6%AE%BA%E6%89%8B2049">Blade Runner 2049</a></li> 83 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%99%90%E5%88%B6%E7%B4%9A%E6%88%B0%E8%AD%A6%EF%BC%9A%E9%87%8D%E8%BF%94%E6%A5%B5%E9%99%90">
88<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E7%9C%9F%E7%88%B1%E8%87%B3%E4%B8%8A">Love Actually</a></li> 84 极限特工:终极回归
89<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E5%9C%B0%E7%90%83%E6%9C%AB%E6%97%A5%E6%88%B0">World War Z</a></li> 85 </a>
90<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%95%A6%E5%85%8B%E7%88%BE%E5%85%8B%E5%A4%A7%E8%A1%8C%E5%8B%95">Dunkirk</a></li> 86 (xXx: The Return of Xander Cage)
91<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E8%81%96%E6%AF%8D%E5%B3%B0_(%E9%9B%BB%E5%BD%B1)">Everst</a></li> 87 </li>
92<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%9C%B8%E7%8E%8B%E5%88%A5%E5%A7%AC_(%E9%9B%BB%E5%BD%B1)">霸王别姬</a></li> 88 <li>
93<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%B3%B0%E5%9D%A6%E5%B0%BC%E5%85%8B%E5%8F%B7_(1997%E5%B9%B4%E7%94%B5%E5%BD%B1)">Titanic</a></li> 89 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%83%A1%E9%9D%88%E5%8F%A4%E5%A0%A1%EF%BC%9A%E6%9C%80%E7%B5%82%E7%AB%A0">
94<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%9A%A7%E9%81%93_(%E9%9B%BB%E5%BD%B1)">隧道</a> (터널)</li> 90 生化危机6:终章
95<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E5%85%A8%E9%9D%A2%E6%94%BB%E4%BD%942%EF%BC%9A%E5%80%AB%E6%95%A6%E6%95%91%E6%8F%B4">London Has Fallen</a></li> 91 </a>
96<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%88%91%E5%8F%AA%E6%98%AF%E5%80%8B%E8%A8%88%E7%A8%8B%E8%BB%8A%E5%8F%B8%E6%A9%9F">出租车司机</a> (택시운전사)</li> 92 (Resident Evil: The Final Chapter)
97<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E7%9B%9C%E6%B5%B7%E8%B1%AA%E6%83%85">Ocean’s Eleven</a></li> 93 </li>
98<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E7%9E%9E%E5%A4%A9%E9%81%8E%E6%B5%B72%EF%BC%9A%E9%95%B7%E9%A9%85%E7%9B%B4%E5%85%A5">Ocean’s Twelve</a></li> 94 <li>
99<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E7%8B%99%E6%93%8A%E7%94%9F%E6%AD%BB%E7%B7%9A">Shooter</a></li> 95 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E7%BE%85%E6%A0%B9_(%E9%9B%BB%E5%BD%B1)">
100<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%A8%8E%E5%A3%AB%E5%87%BA%E4%BB%BB%E5%8B%99">Knight Day</a></li> 96 金刚狼3:殊死一战
101<li><a class="reference external" href="https://zh.wikipedia.org/wiki/2001%E5%A4%AA%E7%A9%BA%E6%BC%AB%E9%81%8A_(%E9%9B%BB%E5%BD%B1)">2001: A Space Odyssey</a></li> 97 </a>
102<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E5%B0%91%E6%95%B0%E6%B4%BE%E6%8A%A5%E5%91%8A_(%E7%94%B5%E5%BD%B1)">Minority Report</a></li> 98 (Logan)
103<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%9C%AB%E6%97%A5%E6%95%91%E6%9C%AA%E4%BE%86">Deep Impact</a></li> 99 </li>
104<li><a class="reference external" href="https://en.wikipedia.org/wiki/Area_51_(film)">Area 51</a></li> 100 <li>
105<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%9C%AB%E6%97%A5%E5%B4%A9%E5%A1%8C">San Andreas</a></li> 101 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%94%BB%E6%AE%BC%E6%A9%9F%E5%8B%95%E9%9A%8A_(2017%E5%B9%B4%E9%9B%BB%E5%BD%B1)">
106<li><a class="reference external" href="https://zh.wikipedia.org/wiki/I%E5%9E%8B%E8%B5%B7%E6%BA%90">I, Origin</a></li> 102 攻壳机动队
107<li><a class="reference external" href="https://en.wikipedia.org/wiki/Particle_Fever">Particle Fever</a></li> 103 </a>
108<li><a class="reference external" href="https://en.wikipedia.org/wiki/City_40_(film)">City 40</a></li> 104 (Ghost in the Shell)
109<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%80%AA%E5%A5%87%E7%89%A9%E8%AA%9E">Stranger Things</a></li> 105 </li>
110<li><a class="reference external" href="https://zh.wikipedia.org/wiki/%E7%BA%B8%E7%89%8C%E5%B1%8B">House Of Cards</a>, Season 1</li> 106 <li>
111</ul> 107 <a class="reference external" href="https://zh.wikipedia.org/zh-hans/%E7%8E%A9%E5%91%BD%E9%97%9C%E9%A0%AD8">
112<p>现在回忆一下,很多电影的质量其实很一般,属于看完之后走出电影院差不多就能忘记剧情的那种。这种电影很多都是所谓的「商业大片」,追求特效和画面,完全不考虑剧情的质量和观众的观影感受。</p> 108 速度与激情8
113<p>简单分析了一下,线下观影的统计</p> 109 </a>
114<img alt="2017movie" class="align-center" src="../../../_images/2017movie.png" /> 110 (The Fate of the Furious)
115<p>6月居然一部都没看,是因为工作太饱和了还是因为没有好看的电影呢?</p> 111 </li>
116</div> 112 <li>
117 113 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%8B%86%E5%BC%B9%E4%B8%93%E5%AE%B6_(%E7%94%B5%E5%BD%B1)">
118 114 拆弹专家
119 <div class="just-comments" 115 </a>
120 data-allowguests="true" 116 </li>
121 data-apikey="4bb18080-e236-4513-bd72-3a032f35d3bb"> 117 <li>
122 </div> 118 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E5%A4%A7%E6%8A%A4%E6%B3%95">
123 <script async defer src="https://just-comments.com/w.js"></script> 119 大护法
124 <script async defer src="https://buttons.github.io/buttons.js"></script> 120 </a>
125 <script async defer src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 121 </li>
126 </div> 122 <li>
127 </div> 123 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%88%B0%E7%8B%BC2">
128 </div> 124 战狼2
129 <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> 125 </a>
130 <div class="sphinxsidebarwrapper"> 126 </li>
131<p class="logo"> 127 <li>
132 <a href="../../../index.html"> 128 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%98%9F%E9%9A%9B%E7%89%B9%E5%B7%A5%E7%93%A6%E9%9B%B7%E8%AB%BE%EF%BC%9A%E5%8D%83%E6%98%9F%E4%B9%8B%E5%9F%8E">
133 <img class="logo" src="../../../_static/img/terminal-icon.png" alt="Logo"/> 129 星际特工:千星之城
134 130 </a>
135 </a> 131 (Valérian et la Cité des mille planètes)
136</p> 132 </li>
137 133 <li>
138 134 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E4%BD%88%E5%B1%80_(%E9%9B%BB%E5%BD%B1)">
139 135 看不见的客人
140 136 </a>
141 137 (Contratiempo)
142 138 </li>
143 139 <li>
144 140 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E8%8B%B1%E5%80%AB%E5%B0%8D%E6%B1%BA">
145<div class="relations"> 141 英伦对决
146<h3>Related Topics</h3> 142 </a>
147<ul> 143 (The Foreigner)
148 <li><a href="../../../index.html">Documentation overview</a><ul> 144 </li>
149 </ul></li> 145 <li>
150</ul> 146 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%A8%A1%E7%8A%AF%E7%94%9F">
151</div><h3>Projects</h3> 147 天才枪手
152 148 </a>
153<ul> 149 (ฉลาดเกมส์โกง)
154 <li><a href="https://github.com/clarkzjw/Dehaze">Dehaze</a> 150 </li>
155 </li> 151 <li>
156 <li><a href="https://github.com/clarkzjw/GuidedFilter">GuidedFilter</a> 152 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%87%91%E7%89%8C%E7%89%B9%E5%8B%99%EF%BC%9A%E6%A9%9F%E5%AF%86%E5%B0%8D%E6%B1%BA">
157 </li> 153 王牌特工2:黄金圈
158 <li><a href="https://github.com/clarkzjw/LumberJack">LumberJack</a> 154 </a>
159 </li> 155 (Kingsman: The Golden Circle)
160 <li><a href="https://github.com/clarkzjw/one-two-three...infinity">one-two-three...infinity</a> 156 </li>
161 </li> 157 <li>
162 <li><a href="https://github.com/clarkzjw/nginx-proxy-google">nginx-proxy-google</a> 158 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%B0%A3%E8%B1%A1%E6%88%B0_(%E9%9B%BB%E5%BD%B1)">
163 </li> 159 全球风暴
164 <li><a href="https://github.com/clarkzjw/brainfuck">brainfuck</a> 160 </a>
165 </li> 161 (Geostorm)
166</ul> 162 </li>
167 163 <li>
168<a class="github-button" href="https://github.com/clarkzjw" aria-label="Follow @clarkzjw on GitHub">Follow @clarkzjw</a> 164 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%9D%B1%E6%96%B9%E5%BF%AB%E8%BB%8A%E8%AC%80%E6%AE%BA%E6%A1%88_(2017%E5%B9%B4%E9%9B%BB%E5%BD%B1)">
169 165 东方快车谋杀案
170<a class="twitter-timeline" data-width="220" data-height="800" href="https://twitter.com/_clarkzjw">Tweets by 166 </a>
171 clarkzjw</a> 167 (Murder on the Orient Express)
172 168 </li>
173 </div> 169 <li>
170 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%9B%B7%E7%A5%9E%E7%B4%A2%E7%88%BE3%EF%BC%9A%E8%AB%B8%E7%A5%9E%E9%BB%83%E6%98%8F">
171 雷神3:诸神黄昏
172 </a>
173 (Thor: Ragnarok)
174 </li>
175 <li>
176 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E8%BF%BD%E6%8D%95_(2017%E5%B9%B4%E9%9B%BB%E5%BD%B1)">
177 追捕
178 </a>
179 </li>
180 <li>
181 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%9C%80%E9%BB%91%E6%9A%97%E7%9A%84%E6%99%82%E5%88%BB">
182 至暗时刻
183 </a>
184 (Darkest Hour)
185 </li>
186 <li>
187 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E5%AF%BB%E6%A2%A6%E7%8E%AF%E6%B8%B8%E8%AE%B0">
188 寻梦环游记
189 </a>
190 (Coco)
191 </li>
192 <li>
193 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E8%87%B3%E7%88%B1%E6%A2%B5%E9%AB%98%C2%B7%E6%98%9F%E7%A9%BA%E4%B9%8B%E8%B0%9C">
194 至爱梵高·星空之谜
195 </a>
196 (Loving Vincent)
197 </li>
198 <li>
199 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E8%8A%B3%E5%8D%8E">
200 芳华
201 </a>
202 </li>
203 </ul>
204 <p>
205 线上观影记录(包括BT下载以及Netflix,包括电影/纪录片/部分美剧,不完全):
206 </p>
207 <ul class="simple">
208 <li>
209 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%93%B6%E7%BF%BC%E6%9D%80%E6%89%8B">
210 Blade Runner
211 </a>
212 (1982)
213 </li>
214 <li>
215 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%8A%80%E7%BF%BC%E6%AE%BA%E6%89%8B2049">
216 Blade Runner 2049
217 </a>
218 </li>
219 <li>
220 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E7%9C%9F%E7%88%B1%E8%87%B3%E4%B8%8A">
221 Love Actually
222 </a>
223 </li>
224 <li>
225 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E5%9C%B0%E7%90%83%E6%9C%AB%E6%97%A5%E6%88%B0">
226 World War Z
227 </a>
228 </li>
229 <li>
230 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%95%A6%E5%85%8B%E7%88%BE%E5%85%8B%E5%A4%A7%E8%A1%8C%E5%8B%95">
231 Dunkirk
232 </a>
233 </li>
234 <li>
235 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E8%81%96%E6%AF%8D%E5%B3%B0_(%E9%9B%BB%E5%BD%B1)">
236 Everst
237 </a>
238 </li>
239 <li>
240 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%9C%B8%E7%8E%8B%E5%88%A5%E5%A7%AC_(%E9%9B%BB%E5%BD%B1)">
241 霸王别姬
242 </a>
243 </li>
244 <li>
245 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%B3%B0%E5%9D%A6%E5%B0%BC%E5%85%8B%E5%8F%B7_(1997%E5%B9%B4%E7%94%B5%E5%BD%B1)">
246 Titanic
247 </a>
248 </li>
249 <li>
250 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%9A%A7%E9%81%93_(%E9%9B%BB%E5%BD%B1)">
251 隧道
252 </a>
253 (터널)
254 </li>
255 <li>
256 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E5%85%A8%E9%9D%A2%E6%94%BB%E4%BD%942%EF%BC%9A%E5%80%AB%E6%95%A6%E6%95%91%E6%8F%B4">
257 London Has Fallen
258 </a>
259 </li>
260 <li>
261 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%88%91%E5%8F%AA%E6%98%AF%E5%80%8B%E8%A8%88%E7%A8%8B%E8%BB%8A%E5%8F%B8%E6%A9%9F">
262 出租车司机
263 </a>
264 (택시운전사)
265 </li>
266 <li>
267 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E7%9B%9C%E6%B5%B7%E8%B1%AA%E6%83%85">
268 Ocean’s Eleven
269 </a>
270 </li>
271 <li>
272 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E7%9E%9E%E5%A4%A9%E9%81%8E%E6%B5%B72%EF%BC%9A%E9%95%B7%E9%A9%85%E7%9B%B4%E5%85%A5">
273 Ocean’s Twelve
274 </a>
275 </li>
276 <li>
277 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E7%8B%99%E6%93%8A%E7%94%9F%E6%AD%BB%E7%B7%9A">
278 Shooter
279 </a>
280 </li>
281 <li>
282 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E9%A8%8E%E5%A3%AB%E5%87%BA%E4%BB%BB%E5%8B%99">
283 Knight Day
284 </a>
285 </li>
286 <li>
287 <a class="reference external" href="https://zh.wikipedia.org/wiki/2001%E5%A4%AA%E7%A9%BA%E6%BC%AB%E9%81%8A_(%E9%9B%BB%E5%BD%B1)">
288 2001: A Space Odyssey
289 </a>
290 </li>
291 <li>
292 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E5%B0%91%E6%95%B0%E6%B4%BE%E6%8A%A5%E5%91%8A_(%E7%94%B5%E5%BD%B1)">
293 Minority Report
294 </a>
295 </li>
296 <li>
297 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%9C%AB%E6%97%A5%E6%95%91%E6%9C%AA%E4%BE%86">
298 Deep Impact
299 </a>
300 </li>
301 <li>
302 <a class="reference external" href="https://en.wikipedia.org/wiki/Area_51_(film)">
303 Area 51
304 </a>
305 </li>
306 <li>
307 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%9C%AB%E6%97%A5%E5%B4%A9%E5%A1%8C">
308 San Andreas
309 </a>
310 </li>
311 <li>
312 <a class="reference external" href="https://zh.wikipedia.org/wiki/I%E5%9E%8B%E8%B5%B7%E6%BA%90">
313 I, Origin
314 </a>
315 </li>
316 <li>
317 <a class="reference external" href="https://en.wikipedia.org/wiki/Particle_Fever">
318 Particle Fever
319 </a>
320 </li>
321 <li>
322 <a class="reference external" href="https://en.wikipedia.org/wiki/City_40_(film)">
323 City 40
324 </a>
325 </li>
326 <li>
327 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E6%80%AA%E5%A5%87%E7%89%A9%E8%AA%9E">
328 Stranger Things
329 </a>
330 </li>
331 <li>
332 <a class="reference external" href="https://zh.wikipedia.org/wiki/%E7%BA%B8%E7%89%8C%E5%B1%8B">
333 House Of Cards
334 </a>
335 , Season 1
336 </li>
337 </ul>
338 <p>
339 现在回忆一下,很多电影的质量其实很一般,属于看完之后走出电影院差不多就能忘记剧情的那种。这种电影很多都是所谓的「商业大片」,追求特效和画面,完全不考虑剧情的质量和观众的观影感受。
340 </p>
341 <p>
342 简单分析了一下,线下观影的统计
343 </p>
344 <img alt="2017movie" class="align-center" src="../../../_images/2017movie.png"/>
345 <p>
346 6月居然一部都没看,是因为工作太饱和了还是因为没有好看的电影呢?
347 </p>
348 </div>
349 <div class="just-comments" data-allowguests="true" data-apikey="4bb18080-e236-4513-bd72-3a032f35d3bb">
174 </div> 350 </div>
175 <div class="clearer"></div> 351 <script async="" defer="" src="https://just-comments.com/w.js">
352 </script>
353 <script async="" defer="" src="https://buttons.github.io/buttons.js">
354 </script>
355 <script async="" charset="utf-8" defer="" src="https://platform.twitter.com/widgets.js">
356 </script>
357 </div>
176 </div> 358 </div>
177 <div class="footer"> 359 </div>
178 &copy;2013 - 2018, clarkzjw. 360 <div aria-label="main navigation" class="sphinxsidebar" role="navigation">
179 361 <div class="sphinxsidebarwrapper">
180 | 362 <p class="logo">
181 Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.6</a> 363 <a href="../../../index.html">
182 &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a> 364 <img alt="Logo" class="logo" src="../../../_static/img/terminal-icon.png"/>
183 365 </a>
184 | 366 </p>
185 <a href="../../../_sources/_posts/2017/12/movies.rst.txt" 367 <div class="relations">
186 rel="nofollow">Page source</a> 368 <h3>
369 Related Topics
370 </h3>
371 <ul>
372 <li>
373 <a href="../../../index.html">
374 Documentation overview
375 </a>
376 <ul>
377 </ul>
378 </li>
379 </ul>
380 </div>
381 <h3>
382 Projects
383 </h3>
384 <ul>
385 <li>
386 <a href="https://github.com/clarkzjw/Dehaze">
387 Dehaze
388 </a>
389 </li>
390 <li>
391 <a href="https://github.com/clarkzjw/GuidedFilter">
392 GuidedFilter
393 </a>
394 </li>
395 <li>
396 <a href="https://github.com/clarkzjw/LumberJack">
397 LumberJack
398 </a>
399 </li>
400 <li>
401 <a href="https://github.com/clarkzjw/one-two-three...infinity">
402 one-two-three...infinity
403 </a>
404 </li>
405 <li>
406 <a href="https://github.com/clarkzjw/nginx-proxy-google">
407 nginx-proxy-google
408 </a>
409 </li>
410 <li>
411 <a href="https://github.com/clarkzjw/brainfuck">
412 brainfuck
413 </a>
414 </li>
415 </ul>
416 <a aria-label="Follow @clarkzjw on GitHub" class="github-button" href="https://github.com/clarkzjw">
417 Follow @clarkzjw
418 </a>
419 <a class="twitter-timeline" data-height="800" data-width="220" href="https://twitter.com/_clarkzjw">
420 Tweets by clarkzjw
421 </a>
187 </div> 422 </div>
188 423 </div>
189 424 <div class="clearer">
190 425 </div>
191 426 </div>
192 </body> 427 <div class="footer">
428 ©2013 - 2018, clarkzjw. | Powered by
429 <a href="http://sphinx-doc.org/">
430 Sphinx 1.6.6
431 </a>
432 &amp;
433 <a href="https://github.com/bitprophet/alabaster">
434 Alabaster 0.7.10
435 </a>
436 |
437 <a href="../../../_sources/_posts/2017/12/movies.rst.txt" rel="nofollow">
438 Page source
439 </a>
440 </div>
441 </body>
193</html> \ No newline at end of file 442</html> \ No newline at end of file
diff --git a/_posts/2018/01/new-blog.html b/_posts/2018/01/new-blog.html
index ad472b7..da19248 100644
--- a/_posts/2018/01/new-blog.html
+++ b/_posts/2018/01/new-blog.html
@@ -1,198 +1,243 @@
1 1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6<html xmlns="http://www.w3.org/1999/xhtml"> 2<html xmlns="http://www.w3.org/1999/xhtml">
7 <head> 3 <head>
8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
9 <title>又一个新的博客 &#8212; Hello World</title> 5 <title>
10 <link rel="stylesheet" href="../../../_static/alagitpull.css" type="text/css" /> 6 又一个新的博客 — Hello World
11 <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> 7 </title>
12 <link rel="stylesheet" href="../../../_static/flexboxgrid.min.css" type="text/css" /> 8 <link href="../../../_static/alagitpull.css" rel="stylesheet" type="text/css"/>
13 <link rel="stylesheet" href="../../../_static/git-pull.css" type="text/css" /> 9 <link href="../../../_static/pygments.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript"> 10 <link href="../../../_static/flexboxgrid.min.css" rel="stylesheet" type="text/css"/>
15 var DOCUMENTATION_OPTIONS = { 11 <link href="../../../_static/git-pull.css" rel="stylesheet" type="text/css"/>
16 URL_ROOT: '../../../', 12 <script type="text/javascript">
17 VERSION: '0.0', 13 var DOCUMENTATION_OPTIONS = { URL_ROOT: '../../../', VERSION: '0.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true, SOURCELINK_SUFFIX: '.txt' };
18 COLLAPSE_INDEX: false, 14 </script>
19 FILE_SUFFIX: '.html', 15 <script src="../../../_static/jquery.js" type="text/javascript">
20 HAS_SOURCE: true, 16 </script>
21 SOURCELINK_SUFFIX: '.txt' 17 <script src="../../../_static/underscore.js" type="text/javascript">
22 }; 18 </script>
23 </script> 19 <script src="../../../_static/doctools.js" type="text/javascript">
24 <script type="text/javascript" src="../../../_static/jquery.js"></script> 20 </script>
25 <script type="text/javascript" src="../../../_static/underscore.js"></script> 21 <link href="../../../_static/favicon.ico" rel="shortcut icon"/>
26 <script type="text/javascript" src="../../../_static/doctools.js"></script> 22 <link href="../../../genindex.html" rel="index" title="Index"/>
27 <link rel="shortcut icon" href="../../../_static/favicon.ico"/> 23 <link href="../../../search.html" rel="search" title="Search"/>
28 <link rel="index" title="Index" href="../../../genindex.html" /> 24 <link href="../../../_static/custom.css" rel="stylesheet" type="text/css"/>
29 <link rel="search" title="Search" href="../../../search.html" /> 25 <meta content="width=device-width, initial-scale=0.9, maximum-scale=0.9" name="viewport"/>
30 26 </head>
31 <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" /> 27 <body>
32 28 <div class="document">
33 29 <div class="documentwrapper">
34 <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> 30 <div class="bodywrapper">
35 31 <div class="body" role="main">
36 </head> 32 <div class="section" id="newblog">
37 <body> 33 <span id="id1">
38 34 </span>
39 35 <h1>
40 36 又一个新的博客
41 <div class="document"> 37 <a class="headerlink" href="#newblog" title="Permalink to this headline">
42 <div class="documentwrapper"> 38
43 <div class="bodywrapper"> 39 </a>
44 <div class="body" role="main"> 40 </h1>
45 41 <table class="docutils field-list" frame="void" rules="none">
46 <div class="section" id="newblog"> 42 <colgroup>
47<span id="id1"></span><h1>又一个新的博客<a class="headerlink" href="#newblog" title="Permalink to this headline">¶</a></h1> 43 <col class="field-name"/>
48<table class="docutils field-list" frame="void" rules="none"> 44 <col class="field-body"/>
49<col class="field-name" /> 45 </colgroup>
50<col class="field-body" /> 46 <tbody valign="top">
51<tbody valign="top"> 47 <tr class="field-odd field">
52<tr class="field-odd field"><th class="field-name">Publish Date:</th><td class="field-body">2018-01-15</td> 48 <th class="field-name">
53</tr> 49 Publish Date:
54</tbody> 50 </th>
55</table> 51 <td class="field-body">
56<p>前段时间有朋友和我抱怨博客加载速度太慢了(。之前的博客架在Blogger上,为了让排版稍微美观一些,找了一个第三方的主题,加载了许多外部的 52 2018-01-15
57资源,导致网页载入速度非常慢。虽然我自己对于网站在国内的加载速度毫不在意,但是既然还有读者(少的可怜)在看,以及在这极少的读者中有用 53 </td>
58户提出了这个问题,那就得解决。前段时间无意中看到一个博客( <a class="reference external" href="https://www.git-pull.com/index.html">git-pull</a> ),觉得主题简洁而又美观,于是开始 54 </tr>
59着手改造自己的博客。</p> 55 </tbody>
60<p>这次用了「大名鼎鼎」的 <a class="reference external" href="http://www.sphinx-doc.org/en/stable/">Sphinx</a> ,一个软件开发过程中的文档生成工具来作为博客的静态网页生成引擎。 56 </table>
61上手Sphinx非常简单,sphinx-quickstart这个工具和一般的博客生成器一样,集成了很多功能,把Makefile都写好了,可以说是完全开箱即用了。 57 <p>
62Sphinx的默认主题是 <a class="reference external" href="https://alabaster.readthedocs.io/en/latest/">Alabaster</a> ,现在你看到的这个主题就是在Alabaster上修改而来的。</p> 58 前段时间有朋友和我抱怨博客加载速度太慢了(。之前的博客架在Blogger上,为了让排版稍微美观一些,找了一个第三方的主题,加载了许多外部的资源,导致网页载入速度非常慢。虽然我自己对于网站在国内的加载速度毫不在意,但是既然还有读者(少的可怜)在看,以及在这极少的读者中有用户提出了这个问题,那就得解决。前段时间无意中看到一个博客(
63<p>Sphinx的文档书写采用的是*.rst格式的文本,即 <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> ,而不是Markdown。相比 59 <a class="reference external" href="https://www.git-pull.com/index.html">
64之前,rst比Markdown的语法更加丰富/复杂,同时也提供了更加丰富的功能和可扩展性(虽然我估计我只能用到其中的20%甚至更少啦)。不清楚rst和 60 git-pull
65Emacs社区的 <a class="reference external" href="https://orgmode.org/">Org Mode</a> 相比哪一个的语法更加复杂呢。(</p> 61 </a>
66<p>建设博客离不开几件事情。首先当然就是部署运维啦。Sphinx通过Makefile可以生成静态html网页,托管静态html最方便的地方当然是GitHub Pages啦。 62 ),觉得主题简洁而又美观,于是开始着手改造自己的博客。
67最简单粗暴的方法是在本地的环境中写完rst文本,然后本地 make html 通过之后,将html推送到GitHub Pages中。但是这种方式的移植性不高,想写 63 </p>
68博客的话必须坐在自己的电脑前,同时依然存在一些手动的工作。所以当然选择Docker啦。但是这次用Docker的姿势和以往不同。平时我们用Docker的时候 64 <p>
69最终都是想要得到docker build的产物docker image,然后由image来进行部署。但是我们这次的目标是GitHub Pages,没法部署容器。所以我在 65 这次用了「大名鼎鼎」的
70Dockerfile中生成静态html网页,然后在构建的过程中将静态网页push到repo的gh-pages分支中。当然其实不用Docker也能做到这一点。写一个脚本, 66 <a class="reference external" href="http://www.sphinx-doc.org/en/stable/">
71然后在CI平台上执行脚本也行,就不做优劣对比了。</p> 67 Sphinx
72<p>值得一提的是,Docker在17.05-ce版本之后引入了multi stage build的功能,可以在Dockerfile中FROM多个基础镜像,在下一个stage可以直接使用 68 </a>
73之前stage构建出的产物。以我的博客这个项目为例。假如我是想通过image来部署,那么我最终的产物是静态html文件,那么我可能需要一个nginx的基础 69 ,一个软件开发过程中的文档生成工具来作为博客的静态网页生成引擎。上手Sphinx非常简单,sphinx-quickstart这个工具和一般的博客生成器一样,集成了很多功能,把Makefile都写好了,可以说是完全开箱即用了。Sphinx的默认主题是
74镜像。nginx:alpine 这个基础镜像很小,不到10MB,在Dockerfile里面将html文件COPY进去之后,最终得到的image也只有10MB左右的大小。但是 70 <a class="reference external" href="https://alabaster.readthedocs.io/en/latest/">
75之前我们为了得到静态html文件,可能得选用一个python的基础镜像,然后再apt/apk安装一些必要的编译工具,最终只是为了几百kb的html文件,但是 71 Alabaster
76构建的镜像已经上百MB了。有了multi stage build之后,这个问题便非常好地被解决了。看了下面的Dockerfile之后,整体思路就非常清晰了。目前我 72 </a>
77在本地写完rst文本,然后git push之后,CircleCI会自动进行Dockerfile的构建,然后将编译生成的静态html推送到gh-pages分支。</p> 73 ,现在你看到的这个主题就是在Alabaster上修改而来的。
78<div class="highlight-bash"><div class="highlight"><pre><span></span>FROM python:3.6.0 as builder 74 </p>
79LABEL <span class="nv">maintainer</span><span class="o">=</span>clarkzjw&lt;[email protected]&gt; 75 <p>
80RUN pip install virtualenv 76 Sphinx的文档书写采用的是*.rst格式的文本,即
81COPY requirements.txt /app/requirements.txt 77 <a class="reference external" href="http://docutils.sourceforge.net/rst.html">
82COPY bootstrap.py /app/bootstrap.py 78 reStructuredText
83RUN /app/bootstrap.py 79 </a>
84ADD . /app 80 ,而不是Markdown。相比之前,rst比Markdown的语法更加丰富/复杂,同时也提供了更加丰富的功能和可扩展性(虽然我估计我只能用到其中的20%甚至更少啦)。不清楚rst和Emacs社区的
85WORKDIR /app 81 <a class="reference external" href="https://orgmode.org/">
86RUN /bin/bash -c <span class="s2">&quot;source /app/.venv/bin/activate &amp;&amp; make html &amp;&amp; make rss &amp;&amp; cp rss.xml _build/html&quot;</span> 82 Org Mode
87 83 </a>
88 84 相比哪一个的语法更加复杂呢。(
89FROM alpine:latest 85 </p>
90RUN sed -i <span class="s1">&#39;s/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g&#39;</span> /etc/apk/repositories 86 <p>
91RUN apk add --update git openssh-client <span class="o">&amp;&amp;</span> rm -rf /var/cache/apk/* 87 建设博客离不开几件事情。首先当然就是部署运维啦。Sphinx通过Makefile可以生成静态html网页,托管静态html最方便的地方当然是GitHub Pages啦。最简单粗暴的方法是在本地的环境中写完rst文本,然后本地 make html 通过之后,将html推送到GitHub Pages中。但是这种方式的移植性不高,想写博客的话必须坐在自己的电脑前,同时依然存在一些手动的工作。所以当然选择Docker啦。但是这次用Docker的姿势和以往不同。平时我们用Docker的时候最终都是想要得到docker build的产物docker image,然后由image来进行部署。但是我们这次的目标是GitHub Pages,没法部署容器。所以我在Dockerfile中生成静态html网页,然后在构建的过程中将静态网页push到repo的gh-pages分支中。当然其实不用Docker也能做到这一点。写一个脚本,然后在CI平台上执行脚本也行,就不做优劣对比了。
92WORKDIR /html 88 </p>
93ENV <span class="nv">COMMIT_USER</span><span class="o">=</span><span class="s2">&quot;clarkzjw&quot;</span> 89 <p>
94ENV <span class="nv">COMMIT_EMAIL</span><span class="o">=</span><span class="s2">&quot;[email protected]&quot;</span> 90 值得一提的是,Docker在17.05-ce版本之后引入了multi stage build的功能,可以在Dockerfile中FROM多个基础镜像,在下一个stage可以直接使用之前stage构建出的产物。以我的博客这个项目为例。假如我是想通过image来部署,那么我最终的产物是静态html文件,那么我可能需要一个nginx的基础镜像。nginx:alpine 这个基础镜像很小,不到10MB,在Dockerfile里面将html文件COPY进去之后,最终得到的image也只有10MB左右的大小。但是之前我们为了得到静态html文件,可能得选用一个python的基础镜像,然后再apt/apk安装一些必要的编译工具,最终只是为了几百kb的html文件,但是构建的镜像已经上百MB了。有了multi stage build之后,这个问题便非常好地被解决了。看了下面的Dockerfile之后,整体思路就非常清晰了。目前我在本地写完rst文本,然后git push之后,CircleCI会自动进行Dockerfile的构建,然后将编译生成的静态html推送到gh-pages分支。
95ARG <span class="nv">GIT_TOKEN</span><span class="o">=</span><span class="s2">&quot;&quot;</span> 91 </p>
96RUN git config --global user.email <span class="nv">$COMMIT_EMAIL</span> <span class="o">&amp;&amp;</span> git config --global user.name <span class="nv">$COMMIT_USER</span> 92 <embed/>
97RUN git clone https://clarkzjw:<span class="nv">$GIT_TOKEN</span>@github.com/clarkzjw/blog.jinwei.me.git /html <span class="o">&amp;&amp;</span> git checkout gh-pages 93 <script src="https://gist.github.com/clarkzjw/0cb4e15794a5a132b12df9741e0cc1e0.js">
98COPY --from<span class="o">=</span>builder /app/_build/html /html 94 </script>
99RUN <span class="nb">echo</span> <span class="s2">&quot;`date`&quot;</span> &gt; /html/.lastmodify <span class="o">&amp;&amp;</span> git add -A <span class="o">&amp;&amp;</span> git commit -m <span class="s2">&quot;`date`&quot;</span> <span class="o">&amp;&amp;</span> git push origin gh-pages 95 <p>
100 96 另外一个问题是博客的RSS。由于Sphinx最初的设计是作为一个文档生成工具,目前市面上有的和Sphinx结合的RSS生成工具大致有:
101 97 </p>
102FROM nginx:alpine 98 <ul class="simple">
103COPY --from<span class="o">=</span>builder /app/_build/html /usr/share/nginx/html 99 <li>
104</pre></div> 100 Sphinx-contrib模块中的
105</div> 101 <a class="reference external" href="https://bitbucket.org/birkenfeld/sphinx-contrib/src/tip/feed/">
106<p>另外一个问题是博客的RSS。由于Sphinx最初的设计是作为一个文档生成工具,目前市面上有的和Sphinx结合的RSS生成工具大致有:</p> 102 feed
107<ul class="simple"> 103 </a>
108<li>Sphinx-contrib模块中的 <a class="reference external" href="https://bitbucket.org/birkenfeld/sphinx-contrib/src/tip/feed/">feed</a></li> 104 </li>
109<li>在sphinxcontrib.feed基础上开发的 <a class="reference external" href="https://github.com/junkafarian/sphinxfeed">sphinxfeed</a></li> 105 <li>
110<li>以及更新一点的 <a class="reference external" href="https://pypi.python.org/pypi/sphinxcontrib-newsfeed">sphinxcontrib-newsfeed</a></li> 106 在sphinxcontrib.feed基础上开发的
111</ul> 107 <a class="reference external" href="https://github.com/junkafarian/sphinxfeed">
112<p>其中sphinxcontrib.feed和sphinxfeed的功能性更新都停止在2011年,不兼容Python 3,GitHub上有几个fork,但是也基本没有太多的改进。至于 108 sphinxfeed
113sphinxcontrib-newsfeed,并不能生成符合RSS规范的输出。。。所以只好自己简单粗暴造一个轮子了!(至少生成的xml能被RSS阅读器认识。。。</p> 109 </a>
114<p>RSS 订阅地址是 <a class="reference external" href="https://blog.jinwei.me/rss">https://blog.jinwei.me/rss</a></p> 110 </li>
115<p>至于评论嘛。虽然博客流量小,2017年下来一年也没有10条评论,但是作为一个博客,这个功能还是必须得有!考察了目前市面上的评论方案,Disqus现在 111 <li>
116差不多可以算是一家独大了。但是十分不喜欢Disqus。一个页面要加载的无关的数据太多了。然后看到了 <a class="reference external" href="https://github.com/posativ/isso">Isso</a> , 第一印象还不错,但是需要自己单独部 112 以及更新一点的
117署。为了一年10条评论不到的数量级单独部署似乎成本略高。之前还见到了 <a class="reference external" href="https://staticman.net">Staticman</a> , 但是这个方案和GitHub的issue绑定,一个博客实例对应 113 <a class="reference external" href="https://pypi.python.org/pypi/sphinxcontrib-newsfeed">
118GitHub的一个repo,然后每篇文章的评论对应这个repo中的issue。但是我不太能接受,毕竟不能强制每个评论的用户都有GitHub帐号。 114 sphinxcontrib-newsfeed
119今天无意中看到了 <a class="reference external" href="https://just-comments.com/">just-comments</a> , 也是一个SaaS解决方案,但是非常地极简,决定先用着试试效果。(</p> 115 </a>
120<p>下一步,打算在博客中加入 <a class="reference external" href="https://css.hanzi.co/">漢字標準格式</a> 这套排版框架。毕竟现在的页面排版看起来怪怪的,以及并不美观。(</p> 116 </li>
121</div> 117 </ul>
122 118 <p>
123 119 其中sphinxcontrib.feed和sphinxfeed的功能性更新都停止在2011年,不兼容Python 3,GitHub上有几个fork,但是也基本没有太多的改进。至于sphinxcontrib-newsfeed,并不能生成符合RSS规范的输出。。。所以只好自己简单粗暴造一个轮子了!(至少生成的xml能被RSS阅读器认识。。。
124 <div class="just-comments" 120 </p>
125 data-allowguests="true" 121 <p>
126 data-apikey="4bb18080-e236-4513-bd72-3a032f35d3bb"> 122 RSS 订阅地址是
127 </div> 123 <a class="reference external" href="https://blog.jinwei.me/rss">
128 <script async defer src="https://just-comments.com/w.js"></script> 124 https://blog.jinwei.me/rss
129 <script async defer src="https://buttons.github.io/buttons.js"></script> 125 </a>
130 <script async defer src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 126 </p>
131 </div> 127 <p>
132 </div> 128 至于评论嘛。虽然博客流量小,2017年下来一年也没有10条评论,但是作为一个博客,这个功能还是必须得有!考察了目前市面上的评论方案,Disqus现在差不多可以算是一家独大了。但是十分不喜欢Disqus。一个页面要加载的无关的数据太多了。然后看到了
133 </div> 129 <a class="reference external" href="https://github.com/posativ/isso">
134 <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> 130 Isso
135 <div class="sphinxsidebarwrapper"> 131 </a>
136<p class="logo"> 132 , 第一印象还不错,但是需要自己单独部署。为了一年10条评论不到的数量级单独部署似乎成本略高。之前还见到了
137 <a href="../../../index.html"> 133 <a class="reference external" href="https://staticman.net">
138 <img class="logo" src="../../../_static/img/terminal-icon.png" alt="Logo"/> 134 Staticman
139 135 </a>
140 </a> 136 , 但是这个方案和GitHub的issue绑定,一个博客实例对应GitHub的一个repo,然后每篇文章的评论对应这个repo中的issue。但是我不太能接受,毕竟不能强制每个评论的用户都有GitHub帐号。今天无意中看到了
141</p> 137 <a class="reference external" href="https://just-comments.com/">
142 138 just-comments
143 139 </a>
144 140 , 也是一个SaaS解决方案,但是非常地极简,决定先用着试试效果。(
145 141 </p>
146 142 <p>
147 143 下一步,打算在博客中加入
148 144 <a class="reference external" href="https://css.hanzi.co/">
149 145 漢字標準格式
150<div class="relations"> 146 </a>
151<h3>Related Topics</h3> 147 这套排版框架。毕竟现在的页面排版看起来怪怪的,以及并不美观。(
152<ul> 148 </p>
153 <li><a href="../../../index.html">Documentation overview</a><ul> 149 </div>
154 </ul></li> 150 <div class="just-comments" data-allowguests="true" data-apikey="4bb18080-e236-4513-bd72-3a032f35d3bb">
155</ul>
156</div><h3>Projects</h3>
157
158<ul>
159 <li><a href="https://github.com/clarkzjw/Dehaze">Dehaze</a>
160 </li>
161 <li><a href="https://github.com/clarkzjw/GuidedFilter">GuidedFilter</a>
162 </li>
163 <li><a href="https://github.com/clarkzjw/LumberJack">LumberJack</a>
164 </li>
165 <li><a href="https://github.com/clarkzjw/one-two-three...infinity">one-two-three...infinity</a>
166 </li>
167 <li><a href="https://github.com/clarkzjw/nginx-proxy-google">nginx-proxy-google</a>
168 </li>
169 <li><a href="https://github.com/clarkzjw/brainfuck">brainfuck</a>
170 </li>
171</ul>
172
173<a class="github-button" href="https://github.com/clarkzjw" aria-label="Follow @clarkzjw on GitHub">Follow @clarkzjw</a>
174
175<a class="twitter-timeline" data-width="220" data-height="800" href="https://twitter.com/_clarkzjw">Tweets by
176 clarkzjw</a>
177
178 </div>
179 </div> 151 </div>
180 <div class="clearer"></div> 152 <script async="" defer="" src="https://just-comments.com/w.js">
153 </script>
154 <script async="" defer="" src="https://buttons.github.io/buttons.js">
155 </script>
156 <script async="" charset="utf-8" defer="" src="https://platform.twitter.com/widgets.js">
157 </script>
158 </div>
181 </div> 159 </div>
182 <div class="footer"> 160 </div>
183 &copy;2013 - 2018, clarkzjw. 161 <div aria-label="main navigation" class="sphinxsidebar" role="navigation">
184 162 <div class="sphinxsidebarwrapper">
185 | 163 <p class="logo">
186 Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.6</a> 164 <a href="../../../index.html">
187 &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a> 165 <img alt="Logo" class="logo" src="../../../_static/img/terminal-icon.png"/>
188 166 </a>
189 | 167 </p>
190 <a href="../../../_sources/_posts/2018/01/new-blog.rst.txt" 168 <div class="relations">
191 rel="nofollow">Page source</a> 169 <h3>
170 Related Topics
171 </h3>
172 <ul>
173 <li>
174 <a href="../../../index.html">
175 Documentation overview
176 </a>
177 <ul>
178 </ul>
179 </li>
180 </ul>
181 </div>
182 <h3>
183 Projects
184 </h3>
185 <ul>
186 <li>
187 <a href="https://github.com/clarkzjw/Dehaze">
188 Dehaze
189 </a>
190 </li>
191 <li>
192 <a href="https://github.com/clarkzjw/GuidedFilter">
193 GuidedFilter
194 </a>
195 </li>
196 <li>
197 <a href="https://github.com/clarkzjw/LumberJack">
198 LumberJack
199 </a>
200 </li>
201 <li>
202 <a href="https://github.com/clarkzjw/one-two-three...infinity">
203 one-two-three...infinity
204 </a>
205 </li>
206 <li>
207 <a href="https://github.com/clarkzjw/nginx-proxy-google">
208 nginx-proxy-google
209 </a>
210 </li>
211 <li>
212 <a href="https://github.com/clarkzjw/brainfuck">
213 brainfuck
214 </a>
215 </li>
216 </ul>
217 <a aria-label="Follow @clarkzjw on GitHub" class="github-button" href="https://github.com/clarkzjw">
218 Follow @clarkzjw
219 </a>
220 <a class="twitter-timeline" data-height="800" data-width="220" href="https://twitter.com/_clarkzjw">
221 Tweets by clarkzjw
222 </a>
192 </div> 223 </div>
193 224 </div>
194 225 <div class="clearer">
195 226 </div>
196 227 </div>
197 </body> 228 <div class="footer">
229 ©2013 - 2018, clarkzjw. | Powered by
230 <a href="http://sphinx-doc.org/">
231 Sphinx 1.6.6
232 </a>
233 &amp;
234 <a href="https://github.com/bitprophet/alabaster">
235 Alabaster 0.7.10
236 </a>
237 |
238 <a href="../../../_sources/_posts/2018/01/new-blog.rst.txt" rel="nofollow">
239 Page source
240 </a>
241 </div>
242 </body>
198</html> \ No newline at end of file 243</html> \ No newline at end of file
Powered by cgit v1.2.3 (git 2.41.0)