-
Notifications
You must be signed in to change notification settings - Fork 54
/
document.html
349 lines (318 loc) · 16.9 KB
/
document.html
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Entry.css</title>
<meta name="Keywords" content="Entry.css,css,vertical rhythm,baseline,中文文章,博客样式,中文排版"/>
<meta name="Description" content="Entry.css 中文文章样式,帮助你快速搭建中文博客主题。"/>
<meta name="viewport" content="initial-scale=1,user-scalable=no,maximum-scale=1,width=device-width">
<link rel="stylesheet" href="assets/prism.css" />
<link rel="stylesheet/less" type="text/css" href="src/debug.config.less">
<script src="assets/less-1.3.3.min.js"></script>
<!--
<link rel="stylesheet" href="bin/entry.css" />
-->
</head>
<body>
<div class="entry">
<h1>Entry.css文档</h1>
<ul>
<li><a href="#overview">概述</a></li>
<li>
<a href="#block">块级元素</a>
<ul>
<li><a href="#p">段落和换行</a></li>
<li><a href="#header">标题</a></li>
<li><a href="#list">列表</a></li>
<li><a href="#blockquote">区块引用</a></li>
<li><a href="#precode">代码区块</a></li>
<li><a href="#hr">分隔线</a></li>
<li><a href="#table">表格</a></li>
</ul>
</li>
<li>
<a href="#span">行内元素</a>
<ul>
<li><a href="#link">链接</a></li>
<li><a href="#em">强调</a></li>
<li><a href="#code">代码</a></li>
<li><a href="#img">图片及视频</a></li>
<li><a href="#otherInline">其他</a></li>
</ul>
</li>
<li>
<a href="#other">外部内容</a>
<ul>
<li><a href="#inlineiframe">行内iframe按钮</a></li>
<li><a href="#codepenio">codepen.io</a></li>
<li><a href="#jsfiddle">jsfiddle</a></li>
<li><a href="#speakerDeck">Speaker Deck</a></li>
</ul>
</li>
<li><a href="#config">配置及使用</a></li>
<li><a href="#acknowledgement">感谢</a></li>
</ul>
<hr/>
<h2 id="overview">概述</h2>
<p>Entry.css提供一种<em>可配置</em>的、<em>更适合阅读</em>的<strong>中文文章样式</strong>,满足一般的博客文章展示需求。它使用了<a href="http://www.lesscss.net/">Less css</a>。推荐使用<a href="http://daringfireball.net/projects/markdown/">markdown</a>来书写文章,然后转换成HTML。它有如下优点:</p>
<ul>
<li>符合<a href="http://blog.justfont.com/2012/08/%E7%B6%B2%E9%A0%81%E6%8E%92%E7%89%88%EF%BC%9A%E6%B9%AF%E5%93%81%EF%BC%8D%EF%BC%8D%E5%9E%82%E7%9B%B4%E7%9A%84%E9%9F%BB%E5%BE%8B/" target="_blank">垂直的韵律(Vertical Rhythm)</a>,更适合阅读。</li>
<li>针对中文文章样式定制</li>
<li>可自定义</li>
</ul>
<p>它分为左、右和居中三种排版方式。默认为居中,通过在<a href="#config">less的配置</a>中修改<code>@layout</code>值来使用不同的排版布局(左中右)。它还提供了可选的多栏模式(multi-column),不过此特性还在开发中,且各个主流浏览器支持不够好。故不推荐使用。</p>
<h2 id="block">块级元素</h2>
<h3 id="p">段落和换行</h3>
<p>段落的HTML只使用<code>div</code>和<code>p</code>。它们的行高、行首是否缩近两个中文字都可以自定义。换行也可以使用<code>br</code>标签实现。每行默认宽度可容纳40中文字左右,确保一行之内断句较少,适宜阅读。</p>
当然也有这种没有用标签包裹起来的文字。
<h3 id="header">标题</h3>
<p>文章内部标题共分为四种,使用<code>h1</code>标签作为一级标题,<code>h2</code>作为二级标题,<code>h3</code>标签作为三级标题,<code>h4</code>、<code>h5</code>或<code>h6</code>标签作为四级标题。并支持标题的自动编号!</p>
<h1>样例</h1>
<h2>样例样例</h2>
<h3>样例样例样例</h3>
<h4>样例样例样例样例</h4>
<p>样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例样例</p>
<h3 id="list">列表</h3>
<p>列表样式分为有序列表<code>ol</code>和无序列表<code>ul</code>两种,这两种可以相互嵌套。没有对列表样式做过多的修改,还是使用浏览器默认样式。</p>
<p>列表的嵌套样式如下:</p>
<ul>
<li>第一层无序列表
<ul>
<li>第二层无序列表
<ul>
<li>第三层无序列表</li>
<li>第三层无序列表</li>
</ul>
</li>
<li>第二层无序列表</li>
</ul>
</li>
<li>第一层无序列表</li>
</ul>
<ol>
<li>第一层有序列表
<ol>
<li>第二层有序列表
<ol>
<li>第三层有序列表</li>
<li>第三层有序列表</li>
</ol>
</li>
<li>第二层有序列表</li>
</ol>
</li>
<li>第一层有序列表</li>
</ol>
<ul>
<li>第一层无序列表
<ol>
<li>第二层有序列表
<ul>
<li>第三层无序列表</li>
<li>第三层无序列表</li>
</ul>
</li>
<li>第二层有序列表</li>
</ol>
</li>
<li>第一层无序列表</li>
</ul>
<h3 id="blockquote">区块引用</h3>
<p>区块引用只使用<code>blockquote</code>标签。它们的样式没有过多地修饰,只是使用了不同于主文字体的字体,默认为楷体。并且左侧加了颜色比字体颜色稍淡的边框。区块引用的样例如下:</p>
<blockquote>
人生不过是一个行走的影子,一个在舞台上指手划脚的笨拙的怜人,登场片刻,便在无声无息中悄然退去,这是一个愚人所讲的故事,充满了喧哗和骚动,却一无所指。 <small><cite>麦克白</cite></small>
</blockquote>
<h3 id="precode">代码区块</h3>
<p>代码区块样式使用<code>pre</code>标签作为容器,且内部可选地嵌入<code>code</code>标签。这里使用了<a href="http://prismjs.com/">prism</a>来实现代码高亮。</p>
<pre class="language-markup"><code><link rel="stylesheet" href="assets/prism.css" />
<pre><code class="language-javascript">
console.log('Test');
</code></pre>
<script src="assets/prism.css"></script></code></pre>
<h3 id="hr">分割线</h3>
<p>分割线样式只能使用hr标签。分割线样式在边缘部分使用CSS3的<code>linear-gradient</code>样式做了渐变处理,所以部分浏览器会不支持。</p>
<h3 id="table">表格</h3>
<p>表格的样式如下:</p>
<table>
<caption>Entry.css 支持的浏览器</caption>
<thead>
<tr>
<th>浏览器型号</th>
<th>版本号</th>
</tr>
</thead>
<tbody>
<tr>
<td>IE</td>
<td>9+</td>
</tr>
<tr>
<td>Chrome</td>
<td>14+</td>
</tr>
<tr>
<td>Firefox</td>
<td>4+</td>
</tr>
<tr>
<td>Safari</td>
<td>5+</td>
</tr>
<tr>
<td>Opera</td>
<td>11+</td>
</tr>
<tr>
<td>Mobile Safari</td>
<td>iOS 6+</td>
</tr>
</tbody>
</table>
<h2 id="span">行内元素</h2>
<h3 id="link">链接</h3>
<p>连接的样式可以自定义链接颜色,且鼠标hover之后下划线不会和中文粘连在一起。例如:<a href="#">普通链接</a>。</p>
<h3 id="em">强调</h3>
<p><b>强调的样式</b>可以使用<code>strong</code>、<code>u</code>、<code>b</code>或<code>em</code>标签,<code>strong</code>表示语义与样式双重强调,后两者表示样式上的强调。<code>b</code>、<code>bold</code>标签是加粗的样式,<code>em</code>标签则有<em>着重号</em>。<code>u</code>标签的样式是直线下划线,相邻之间也有<u>0.125em</u><u>的间隔</u></p>
<h3 id="code">代码</h3>
<p>代码的行内样式使用<code>code</code>标签,你也可以自定义字体和颜色。</p>
<h3 id="img">图片及视频</h3>
<p>图片样式对<code>img</code>标签没有特别设置,但是对<code>figure</code>标签做了设置。样例如下:</p>
<figure>
<img src="140x140.gif" alt="这里是一段话" />
<figcaption>
这里是一段话
</figcaption>
</figure>
<p>对<code>img</code>标签做了(不超过容器的)限宽,如下:</p>
<img src="assets/950x150.gif" alt="这里是一段话" />
<p>同时也支持<code>video</code>标签,如下:</p>
<video poster="http://www.html5rocks.com/en/tutorials/video/basics/star.png" controls>
<source src="http://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
<source src="http://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.webm" type='video/webm; codecs="vp8, vorbis"' />
<source src="http://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.ogv" type='video/ogg; codecs="theora, vorbis"' />
</video>
<h3 id="otherInline">其他行内样式</h3>
<ol>
<li>
<p><em>书名号</em>使用<code>cite</code>标签,例如:</p>
<blockquote><cite>冰与火之歌</cite>是一部很棒的魔幻小说!<br/>
<cite>Hamlet</cite>也是一部很棒的小说!</blockquote>
</li>
<li>
<p><em>缩写</em>使用<code>abbr</code>标签,例如:</p>
<blockquote><abbr title="javascript">js</abbr> 的全称是javascript,鼠标放上去看看title值。</blockquote>
</li>
<li>
<p><em>定义</em>使用<code>dfn</code>标签,例如:</p>
<blockquote><dfn>HTML</dfn> 是超文本标记语言</blockquote>
</li>
<li>
<p><em>标记</em>使用<code>mark</code>标签,例如:</p>
<blockquote>在这句话里面把<mark>这几个字</mark>高亮下吧~</blockquote>
</li>
<li>
<p><em>行内引用</em>使用<code>q</code>标签,例如:</p>
<blockquote>在这句话里面把<q>这几个字</q>引用下吧~</blockquote>
</li>
<li>
<p><em>旁注</em>使用<code>small</code>标签,例如:</p>
<blockquote>
单人间 399 元 <small>含早餐,不含税</small>
</blockquote>
</li>
<li>
<p><em>上下标</em>使用<code>sup</code>标签作下标、<code>sub</code>标签作上标,例如:</p>
<blockquote>
10<sup>5</sup> 与 a<sub>1</sub><sup>2</sup>
</blockquote>
</li>
</ol>
<h2 id="other">外部内容</h2>
<h3 id="inlineiframe">行内iframe按钮</h3>
<div>例如github的非官方按钮:
<iframe src="http://ghbtns.com/github-btn.html?user=zmmbreeze&repo=Entry.css&type=watch"
allowtransparency="true" frameborder="0" scrolling="0" width="60" height="20"></iframe>
<iframe src="http://ghbtns.com/github-btn.html?user=zmmbreeze&repo=Entry.css&type=fork"
allowtransparency="true" frameborder="0" scrolling="0" width="60" height="20"></iframe>
<iframe src="http://ghbtns.com/github-btn.html?user=zmmbreeze&type=follow"
allowtransparency="true" frameborder="0" scrolling="0" width="180" height="20"></iframe>
</div>
<h3 id="codepenio">codepen.io</h3>
<div>
因为codepen.io的iframe宽度为100%,所以会根据父元素的宽度自适应iframe的宽度,且忽略掉iframe的max-width设置。所以必须使用一个div包裹它的embed代码。
<pre class="codepen" data-height="300" data-type="result" data-href="guLfC" data-user="zmmbreeze"><code></code></pre>
<script async src="http://codepen.io/assets/embed/ei.js"></script>
</div>
<h3 id="jsfiddle">jsfiddle</h3>
<iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/zmmbreeze/8de8h/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
<h3 id="speakerDeck">Speaker Deck</h3>
<div>
因为speaker deck会根据父元素的宽度自适应iframe的宽度,且忽略掉iframe的max-width设置,所以必须使用一个<code>div</code>包裹它的embed代码。
<script async class="speakerdeck-embed" data-id="5085eadcae6235000201e95f" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script>
</div>
<h2 id="config">配置及使用</h2>
<p>Entry.css是基于less css开发的,提供了些基本配置项。首先安装<a href="http://nodejs.org/">nodejs</a>和<a href="https://npmjs.org/">npm</a>。然后运行如下命令安装less</p>
<pre>npm install less -g</pre>
<p>配置文件在src目录下的<code>config.less</code>文件中。</p>
<h3>自定义步骤:</h3>
<ol>
<li>配置文件位于src目录下,文件名以config.less结尾。打开默认的配置文件<code>default.config.less</code>然后修改,或者新建一个配置文件<code>my.config.less</code>。</li>
<li>自定义文章容器的CSS选择器。如当HTML结构如下时:
<pre><code class="language-markup"><article class="post">
<!-- 内容 -->
</article></code></pre>
则自定义选择器为<code>.post</code>,如下:
<pre><code class="language-css">@import "entry.less";
// 自定义文章容器的CSS选择器
.post{
.ext-entry;
}</code></pre>
</li>
<li>自定义配置:布局、大小、颜色、字体等等,<code>config.less</code>文件中有详细的描述。</li>
<li>运行命令<code>lessc src/my.config.less > bin/my.css</code>,生成my.css文件就可以被用到你的博客样式中。如果你设计了不错的配色,欢迎<code>pull request</code>。</li>
<li>「可选」如果你希望外部资源(例如图片)也保持合理高度(vertical rhythm),那么可以想这份文档一样使用src目录下的<code>baseline.js</code>。</li>
</ol>
<h2 id="acknowledgement">感谢</h2>
<p>Entry.css参考、使用很多其他库和工具:</p>
<ul>
<li><a href="https://github.com/necolas/normalize.css">normalize.css</a></li>
<li><a href="http://twitter.github.com/">Bootstrap</a></li>
<li><a href="http://ethantw.net/projects/han/">漢字標準格式(han.css)</a></li>
<li><a href="http://www.lesscss.net/">less</a></li>
<li><a href="https://github.com/jkeyes/baseline">Baseliner</a></li>
<li><a href="https://github.com/daneden/Baseline.js">Baseline.js</a></li>
</ul>
<div id="disqus_thread"></div>
</div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'entrycss'; // required: replace example with your forum shortname
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
<script src="assets/prism.js"></script>
<script src="assets/baseliner.js"></script>
<script src="src/baseline.js"></script>
<script>
window.onload = function() {
baseline.init('.entry img, .entry video', 16);
var baseliner = new Baseliner(16);
}
</script>
<script>// ga
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-36422454-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>