Hello World
Spiga

写给《程序员》杂志社:那些你们早该知道的东西

2012-07-30 01:42 by 老赵, 17410 visits

缘起

最近我写了一篇文章投给《程序员》杂志社,“开源”专题。我写的是关于Jscex的内容,自然十分用心,再加上看了不少之前编辑让我提些意见建议的文章,因此我对于这期的内容还是很有信心的。我是一个对文章阅读体验有极高要求的人,无论是作为文章的读者还是文章的作者,也经常对各种样式混乱的博客表示不满。我也算是《程序员》的长期读者,知道它在代码展示方面有很多不足之处,之前也时常向相关人等(例如刘江总编)提出不少建议。这次既然涉及到我的文章,我自然会加倍小心,千叮咛万嘱咐,也主动配合编辑的工作。我反复的询问编辑对于代码提交方式的需求,对方说要提供代码的截图,最好需要着色。于是我为每一幅代码都提供了高清的截图。有多高清?在Retina屏幕的帮助下,图片像素高达3360x2100,当时我还在微博上笑谈到“这次总不会模糊了吧”。保险起见,我还为每一段代码增加了PDF矢量格式

令人遗憾的是,在编辑发给我的PDF中这段代码是这样的:

我顿时就愤怒了。清晰度先姑且不谈,编辑说是因为这是压缩后的PDF,实际印刷出来会很清晰。但是,代码为什么会变成这样?我的高清截图哪儿去了?即使由于种种原因这种截图无法使用,那么矢量的PDF呢?我并不是心疼我花在准备代码上的时间,我心疼的是整篇文章的阅读体验。假如我看到一篇这样的文章,我基本就会随手丢在一旁,糟糕的阅读体验会让我没有心情关注内容。在我看来,我的文章就这么被毁了。

即便编辑对此表示歉意,但于事无补。同时我发现《程序员》杂志社从编辑到排版人员,居然会不了解一些已经被广为接受的知识,甚至可以说是“常识”。为了让今后的文章可以“免遭毒手”,我当时立刻表示要为《程序员》杂志社单独写一篇文章补补课。编辑和排版人员不能因为“不写代码”而忽视这些基础内容,因为这对你们来说就是所谓的“行业”或者说“领域”知识。就好比我现在是金融行业的程序员,就不能因为我“只是个写代码的”而对基础金融常识视而不见。

没有这么多理由。

代码样式

上面这段代码犯了一个最最基本的错误:使用了“非等宽字体”。例如,您能看出上面这段代码使用了几个作为缩进?有人说是4.5格,这估计是看着第一个缩进数出来的,您不妨再数下if (compare(与上一行代码相差了几个字符。这就是因为在非等宽字体里,不同的字符是不同的宽度,空格就显得特别窄,而小写l和大写W的宽度会差好几倍。但是在等宽字体中,无论是什么字符都是相同宽度,例如World的五个字符。代码排版一定要使用“等宽字体”,也就是每个字符都是相同的宽度,这样代码才能显得优雅整洁,对齐良好。

例如我博客上的代码都优先使用Windows自带的Consolas字体:

或是Mac自带的Monaco字体:

不过等宽字体只是必要条件,还不够充分,例如Courier New是一种等宽字体,但并不适合用于编写代码。请看这个表达式:

假如您的答案是1234,则说明您落入了Courier New的陷阱。这里第二个数字并非11111,而是一个长整型的1111,因为它最后一个字母是小写字母L,而不是数字1。但是换作是Consolas就会一清二楚:

Monaco也有明显区别:

同样需要区分的还有数字0和大写字母O等等,这点对于非等宽字体来说反而不是问题,但在选择等宽字体时就需要注意区分度,让人可以一眼看清究竟是什么样的代码。适合用于编写程序的字体有很多,而且几乎都是现成的,我们完全不需要自行挖掘。

代码样式虽然简单,但往往就是是否专业的分水岭。不管你是多么优秀的程序员,一旦使用了非等宽字体编写代码,我就会认为你至少在这个方面显得不专业。当然,你可以说是你的个人习惯,我也会尊重你的选择,因为这只会影响你一个人。但是,作为一个出版社,一个媒体,是要将一段代码展现给千万大众阅读的,如果还使用非等宽字体就是一种罪过了。其实《程序员》杂志之前的代码也至少会使用等宽字体,不知道为什么这次就这么堕落了,还堕落在我这个极其重视阅读体验的人头上。

文档格式

我不知道《程序员》内部使用什么格式提交文本,就我感觉来说他们十分喜欢Word,我拿到的所有的文档都是Word格式的。我这次提交了Markdown格式及其导出的HTML文件,编辑的反馈居然是“排版人员不知道如何使用”,最后的文章也完全丢失了所有的内嵌代码格式。好吧,那么我们就一点点来说。

对于一篇文章来说,Word其实很不利于排版。因为Word自带大量样式,这些显然不能直接使用。而且,并非所有人都会使用Word进行排版,因此我们经常能看到一些格式混乱的Word文档。有经验的同学会使用Word的“大纲视图”来编写代码,最终设定各个节点的格式,一篇文章的布局就搞定了,完全不需要手动设置每一行每一段。

从这个方面来说,其实HTML是个很好的格式,排版人员应该很容易使用才对。HTML文档本身其实不包括任何样式,样式都是由CSS决定的。HTML节点都有各自的“语义”,例如用<h1></h1><h6></h6>来表示标题,<p></p>来表示自然段落,<code></code>来表示代码,<ol></ol><ul></ul>来表示有序或无需的列表,一篇使用HTML提交的文章,其文档的结构已经一清二楚,剩下的只是如何表示每个元素的问题。

但是“HTML标签”终究不太适合直接用来编写文档,因为人们需要花额外的精力来表达文档结构,而并非全身心投入到文档内容里。如果使用一些所见即所得的工具来编写HTML,又容易出现样式混乱的情况。我目前见过的最好的,最干净,最不容易产生混乱代码的HTML所见即所得编辑器便是Windows Live Writer,这这可能是因为它的目标是为了编写博客这样的文章内容,因此只提供了相当有限的样式设置功能,并能自动清理混乱的HTML代码。这其实也是我们写技术文章的要求:结构清楚,不需要复杂的样式。所以,我其实很推荐各位使用Windows Live Writer来编写文章——假如不那么“技术”的话。

对于技术人员来说,或者文章中涉及大量代码,可能更好的选择是Markdown格式。Markdown是专为程序员打造的文档格式,它的特点是容易编写,容易阅读。使用Markdown我们可以很轻易地表达出文档的各种结构,例如段落,列表,甚至代码:

# 一级标题

## 二级标题

段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一。

段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二段落二。

    // 缩进四格即是代码    
    var compareAsync = function (x, y, callback) {
        setTimeout(function () {
            callback(x - y);
        }, 50)
    }

还可以引用:

> 引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一引用一
>
> 引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二引用二

以及列表:

1. 有序列表项1
2. 有序列表项2
3. 缩进四格还可以嵌套
    * 无序列表项1
    * 无序列表项2

使用Markdown格式一般是为了生成HTML(它还支持内嵌HTML代码),因此例如上面的内容会自动生成<h1></h1><h2></h2><p></p><pre><code></code></pre><blockquote></blockquote><ol></o><ul></ul>等元素,但是从编写上来说Markdown格式无疑更为方便。同时,Markdown格式可以使用普通的文本编辑器打开,并直接阅读,基本没有障碍。正因为这些好处,Markdown格式已经在编程领域运用地越来越广泛,例如StackOverflow的回复,自然也有我的博客回复等等。我建议,假如您认为自己是一个专业程序员,就尽快掌握Markdown格式吧。

值得一提地是,Markdown还支持在段落内方便地嵌入代码:

Step类库提供了一个`Step`函数。

它生成的HTML代码会自动为第二个Step用上<code></code>标签,因此样式也会有所不同,例如在我的博客上:

还记得代码的基本规则吗?没错,便是“等宽字体”。文章的内嵌代码也是代码,也要使用等宽字体。遗憾地是,尽管我不断向编辑强调这一点,尽管我提供的Markdown格式和HTML里面都体现了普通文本和内嵌代码的区别,最终《程序员》杂志还是不加分辨地进行排版。

总结

虽然这篇文章是因《程序员》而起,也是特地写给《程序员》的编辑和排版人员的,但是这种业余的排版风格并非他们一家的专利。例如“电子工业出版社”的《HTML 5实验室:Canvas世界》一书,其中所有的代码排版也是混乱不堪,此外我也不提这不知道是“太太乐鸡精”还是“香飘飘奶茶”风格的封面了。尽管书中写了不少Jscex的内容,我还是实在不好意思向别人推荐这本书,因为看上去实在是太山寨了。

说实话我很难想象,国内的出版媒体会堕落到这种地步,经历了那么多年,连一些基本的要求都做不好。其实这并不仅仅是出版社的问题,读者和作者也有一定的责任,为什么那么多年来就没人指出?为什么作者不讲究点“品味”不爱惜自己的辛勤成果?到底怎样才能让我们的媒体变得专业?我不知道,但至少从现在开始,我会努力盯住我所看得到的地方。《程序员》杂志自然是一个,希望你们不会让我失望。

不对,是“继续”失望。

Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名赵劼(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言

Add your comment

66 条回复

  1. HgG
    66.175.220.*
    链接

    HgG 2012-07-30 03:04:55

    看上去是Courier New,可能没有关掉排版软件(还是InDesign吗?)的自动kerning。

  2. HgG
    66.175.220.*
    链接

    HgG 2012-07-30 03:24:10

    打错了,想说Calibri来着。 还记错了Calibri的性质,确实不是等宽。

  3. liancheng
    175.25.240.*
    链接

    liancheng 2012-07-30 09:56:18

    赞同文章中的各种做法。但对Markdown的流行表示忧心。

    Markdown虽然比较简单易学,但它的语义不足以很好地表达文档结构,尤其是中文。例如一个段落切成两部分,中间插入一个列表,段落的下半部分在排版时不应该首行缩进。这样的版式,Markdown就搞不定,只能表达成上下两个独立段落中间插入一个列表,进而导致一个不该出现的首行缩进。Sphinx所使用的reStructuredText则可以通过.. compound:很好地表达这一语义。

    当然有复杂样式要求时可以直接内嵌HTML,但这种情况下HTML内不能内嵌Markdown标记。对于段落级别的样式而言,非常不方便。

  4. 链接

    Neekey 2012-07-30 09:57:57

    从老赵的文章中学到了很多,作为程序员,一直以来对于字体之类的细节还真的没怎么在意,羞愧。不过非常同意您的观点“读者和作者也有责任”。

  5. deerchao
    119.124.57.*
    链接

    deerchao 2012-07-30 10:14:24

    放弃吧,对国内的公司要求专业素质,本身就是错误的期待。

  6. nining
    121.8.254.*
    链接

    nining 2012-07-30 10:16:08

    呃。。感觉你有点上纲上线。。。唉

  7. adow
    114.223.133.*
    链接

    adow 2012-07-30 10:17:37

    同意 Markdown 是最适合的技术文档书写格式,即使不输出成html,也足够清晰的看懂了。

  8. 链接

    Shaun 2012-07-30 10:18:26

    1、老赵是格式控。

    2、那个高清代码截图确实够大。

    3、非等宽字体确实是无法忍受。但是我记得我给《程序员》投稿的时候,他们就直接用的我给他们的Word文档里面的等宽代码字体。

    4、代码有点模糊也挺好的,有点像篆刻里面的破残,看着就这么有沧桑感。

  9. 链接

    麒麟.NET 2012-07-30 10:37:02

    有些书的代码甚至用Times New Roman,CLR via C#就是这样

  10. ZhangCoder
    122.157.47.*
    链接

    ZhangCoder 2012-07-30 10:55:32

    强烈赞同,国内的出版社很少把代码排版当回事儿,听说他们的排版工作都是外包出去的。看的书中排版质量好的,大都是作者抗议的结果。

  11. okilove
    219.142.31.*
    链接

    okilove 2012-07-30 11:00:21

    csdn论坛本身做的水平,已经被广大码农吐槽N多年了~《程序员》估计也是一脉相传

  12. 老赵
    admin
    链接

    老赵 2012-07-30 11:06:07

    @Shaun

    我提供的不是Word,是Markdown加HTML,还有按照要求给的高清截图和额外的PDF,结果他们就不会用了,唉……

  13. 老赵
    admin
    链接

    老赵 2012-07-30 11:08:11

    @liancheng

    的确Markdown有时候会有限制,我也能体会到,不过我感觉基本够用,而且它的关键在于直接可读,几乎不用额外标识符直接表示结构。

  14. anti
    210.22.88.*
    链接

    anti 2012-07-30 11:16:46

    我是很鄙视csdn的几个领导,大家可以查查csdn密码泄露时刘江同志还在兴高采烈的发着微博,似乎一切与自己无关,每天刘江只会从hacknews看些文章写一两句微博自以为国际人士,蒋只会养身练太极拳,这两个人除了到处旅游外,估计自己从不上自家网站,每天看看hn发几个心灵鸡汤自己缺从未将将鸡汤内容用于改进自家网站,记得右耳朵当时因刘江耻笑韩寒让他关注自己csdn网站,刘江这小子居然来句:提我家单位干嘛?

    一个从不上自家网站,密码泄露时蒋和范凯好歹都发微博做些解释,刘江同志还在无关痛痒的过着和他单位无关的小日子,这种人做领导,可想而之!

  15. Ray
    110.53.94.*
    链接

    Ray 2012-07-30 11:21:58

    和IT相关的杂志社,应概要知道这些轻量级标记语言,不懂至少应该知道如何搜索吧。图一的 bubble sort 有个小问题,第二层循环应为 j < array.length - i - 1

  16. cqwang
    222.67.26.*
    链接

    cqwang 2012-07-30 11:32:29

    这事情高德纳不是已经做过一遍了。。。。

  17. 老赵
    admin
    链接

    老赵 2012-07-30 11:42:48

    @Ray

    唉,还真是。我是直接从Jscex示例里拷出来的代码,没仔细看,这么写在JS里还不会出错……

  18. 链接

    GotGit 2012-07-30 11:45:03

    和 liancheng 的看法一致:reStructuredText 和 AsciiDoc 在中文文档撰写和出版上都比 Markdown 有优势。

    Markdown、reStructuredText 和很多轻量级标记语言要在标记文本块的前后添加空格,以便标识语法能被正确解析,结果是在普通文本和标识文本间添加一个的空格,这个空格在中文排版中是多余的。出版过程中在删除多余空格时有可能误删有用字符,导致审校过程非常痛苦。

    而使用reStructuredText标记语言,可以使用反斜线让空白字符在输出中不出现。如:

    而使用\ **reStructuredText**\ 标记语言,可以使用\ *反斜线*\ 让空白字符在输出中\ **不出现**\ 。
    

    无空白续行也是一例。在 http://www.worldhello.net/gotgithub/appendix/markups.html 页面中搜素“不留白”。

  19. 老赵
    admin
    链接

    老赵 2012-07-30 11:56:02

    @GotGit

    什么叫做“要在标识文本前后添加空格”?

    还有其实我之前说了,Markdown不是用来排版的,是用来编写和阅读的,或者说,其实Markdown就是生成HTML结构的。

  20. 翁玉礼
    222.55.193.*
    链接

    翁玉礼 2012-07-30 12:34:10

    程序员 我已经有大概两年没看了,的确阅读体验上需要提高了。

    另:建议老赵文章中的链接改成打开新窗口。

  21. web凡
    192.102.204.*
    链接

    web凡 2012-07-30 13:20:39

    《HTML 5实验室:Canvas世界》那本书的代码排版确实太混乱了,基本的对齐都没有做到,让人几乎没法读下去。

  22. 新号外
    124.162.23.*
    链接

    新号外 2012-07-30 13:35:13

    Consolas字体的确非常漂亮,不过,Windows XP并没有自带。

  23. coanor
    210.22.80.*
    链接

    coanor 2012-07-30 13:52:27

    直接上LaTex。不会用LaTeX的编辑,就不要投了。

  24. xslidian
    183.210.8.*
    链接

    xslidian 2012-07-30 14:03:26

    以代码风格来判断出版商是文艺向还是理性向十拿九稳。如果一本信息教科书没有出现行内等宽字体,不论作者多有声望,肯定是老生常谈的废话选集。(没有用斜体标示变量的理工科书籍同样不可原谅。幸运的是这块有国标约束。)

    目前国内大厂牌 IT 书籍中,只有人民邮电出版社一家的书值得掏银子。

    要求他们改用新语法排版的确不现实,但至少应该学会用非常明显的样式功能吧。我用学校机房的 Word 2003 折腾报告时就完全靠定义和应用样式排版,回到宿舍输出为 pdf 再打印,成品效果可以和 XHTML+CSS 媲美。

    顺便赞下博主用了大量引号,对应西文的首字母大写,可读性很强。很多报刊在引用网络言论时将夹杂特殊字符的昵称混杂在正文中,看起来非常刺眼。

  25. 链接

    GotGit 2012-07-30 14:23:54

    @老赵

    从编写和阅读上讲,无论用 Markdown、reST 还是 Asciidoc 都好,胜过 word、HTML。 看了 @liancheng 的评论后,感到所见略同。

    Markdown 对内联字符误解析问题

    我说 “要在标识文本前后添加空格”,这是一个标识语言实现的严谨程度问题。 Markdown 语法欠严谨,导致 GitHub为了避免 Markdown 将像下面这个单词

    do_this_and_do_that_and_another_thing
    

    中的作为单词一部分的下划线解析为Markdown语法标记,开发了自己的解析器:http://github.github.com/github-flavored-markdown/

    你网站的 Markdown 解析器明显不能处理这种情况,显示为:dothisanddothatandanother_thing

    但是要求标记文本块前后添加空格,又使得转换后的 HTML 等输出出现不必要的空格字符。reST的解决方案正如我前一篇回复中说的那样,用反斜线作为转义字符,添加在标记文本块前后的空格前。如:

    而使用\ **reStructuredText**\ 标记语言,可以使用\ *反斜线*\ 让空白字符在输出中\ **不出现**\ 。
    

    一个段落中文本折行和续行问题

    更为重要的是:段落中文本折行问题。虽然Markdown等标记语言会把这些行组合成一个段落,但是手工折行处留了一个空格。这对于英文的处理是正确的,但对于中文则是错误的。下面段落中【换行n】处进行了手工折行,和后面文本的衔接处多了一个空格。

    大段的段落,人工添加换行(如 72 个字符处换行)有很多【换行1】 优点:便于版本控制(基于行比较)和变更之间的差异比较;【换行2】 避免编辑器在过长的行自动折行时的Bug(我遇到过vim折行导致窜行的bug);【换行3】 美观。

    reST 支持用反斜线转义,非常帅

    reST 要求所标识的文本块前后有空格,避免像 do_this_and_do_that_and_another_thing 被误标识。 但是为了避免文本块前后的空格输出,可用反斜线转义。同样段落中的折行也可在行尾添加转义符, 将多行文本无空格续行。

    标记语言的选择问题

    Markdown 的流行是因为解析器运行效率比 reST 高,且更为流行的 Ruby 中有多种实现,而 reST 仅在 Python 中实现。

    我出版的一本实体书和开源电子书,写作过程都使用 reST,而非 Markdown,除了语法更丰富、解析更严谨等上述原因,还因为 sphinx 这一工具非常方便。之前回复提供的一个链接是对我使用过和感兴趣的标记语言的汇总,供参考。

  26. 躺着读书
    183.62.221.*
    链接

    躺着读书 2012-07-30 14:24:42

    缺乏的是“专业精神”

    国内出版业有方正飞腾,业内通用的标准。前段时间被查商业贿赂了,业界哗然。 还和业内人士讨论过,那人感觉就是方正飞腾大杀三方,无敌。

    我早说了嘛,技术类图书真的不一样的,不是你们搞排版的就能越俎代庖的。

  27. liancheng
    175.25.240.*
    链接

    liancheng 2012-07-30 14:30:21

    @GotGit

    关于“Markdown及很多轻量级标记语言要在标识文本前后添加空格”这句,还真是冤枉Markdown了。Markdown是可以不留白的,就你所举的reST的例子而言,在Markdown中可以直接写成:

    而使用**reStructuredText**标记语言,可以使用*反斜线*让空白字符在输出中**不出现**。
    

    效果如下:

    而使用reStructuredText标记语言,可以使用反斜线让空白字符在输出中不出现

    无空白续行倒确实是个很头疼的问题,为了避免不必要的空白,要么一个段落写作一行,这么做的缺点是对于很长的段落,做文本diff的时候没法看;要么在每行末尾加空白转义符(前提是该标记语言支持)。

  28. 老赵
    admin
    链接

    老赵 2012-07-30 14:55:58

    @GotGit, @liancheng

    原来换行连在一起是为了满足这样的需求啊……

  29. 链接

    GotGit 2012-07-30 15:09:11

    @liancheng

    的确我写第一条评论时,误以为 Markdown 和 reST 都要求标记块前后留白。 所以第二条评论从另外一个角度写,就能够自圆其说了。 ;)

  30. 胡扯
    182.18.7.*
    链接

    胡扯 2012-07-30 18:48:31

    你这不是胡扯吗? 你让人家编辑的小女孩使用 md 格式? 你以为人人都是程序员啊!!!

  31. Cat Chen
    216.157.85.*
    链接

    Cat Chen 2012-07-30 19:28:41

    其实 Word 能做到样式分离的。你可以把 Word 样式表完全改掉,只是没有 cascading 的支持而已。我的 Word 版简历就是先对内容上样式,再对样式定外观的。这跟先定 class,再给 class 增加 rules 一样。

  32. 老赵
    admin
    链接

    老赵 2012-07-30 19:32:06

    @胡扯

    不懂什么叫做行业知识的一边去,如果你是做非技术出版的编辑,我绝对不要求你懂什么叫做代码啊着色啊HTML啊MD。

    你以为人人都像你只会写程序啊?

  33. 老赵
    admin
    链接

    老赵 2012-07-30 19:33:36

    @Cat Chen

    什么叫先对内容上样式?就是为内容指定结构吗?我一般都是在大纲视图下写内容,然后套样式。

  34. 链接

    hua zhong Tong 2012-07-30 21:49:33

    我用word也是喜欢用大纲然后定义几个样式直接套用方便,刚我翻了下“cuda范例精解——通用CUDA编程(影印版)”书中的代码风格很像是Consolas字体的,看起来就是舒服啊。

  35. kinogam
    183.62.38.*
    链接

    kinogam 2012-07-31 09:01:21

    最近在写js单元测试的故事,比较痛苦的是故事的构思,没有太多的关注排版和阅读体验……向老赵学习下~

  36. Lyic
    218.87.236.*
    链接

    Lyic 2012-07-31 10:24:25

    LeTeX也不是一款相当出色的排版软件吗?好多学术出版社都接受把。

  37. Cat Chen
    216.157.85.*
    链接

    Cat Chen 2012-07-31 10:36:11

    @老赵

    我的意思是,Word 的那个样式选项跟 CSS 一样。如果你把一级标题都设置为 H1 样式,之后你修改 H1 样式就全部都跟着变。只是国内很多用 Word 排版的熟练工连这都不用,而是宁愿训练动手的速度。

  38. 老赵
    admin
    链接

    老赵 2012-07-31 11:00:03

    @Lyic

    如果他们能专业到接受LeTeX的话,我不信他们会不知道md,不知道代码的字体要求,不知道文章内部会内嵌代码……

  39. DeathKnight
    60.191.2.*
    链接

    DeathKnight 2012-07-31 13:30:04

    应该让他们推出online pdf版,接受大家的批判,这样也许他们很快就学会了,不会再拿打印说事哈哈.

  40. name5566
    180.168.46.*
    链接

    name5566 2012-07-31 14:17:03

    从老赵的 BLOG 就可以看出老赵对于这些问题非常重视。

    Markdown 是一个好东西,简单、语法清晰易读,不过转换 Markdown 到 HTML(或者其他的文件格式)的工具并不是特别给力,转换出来不够美观。

  41. name5566
    180.168.46.*
    链接

    name5566 2012-07-31 14:45:48

    老赵 BLOG 中的代码缩进是写的 4 个空格吗,不是 1 个 tab?

  42. 老赵
    admin
    链接

    老赵 2012-07-31 22:42:46

    @name5566

    Markdown只负责生成结构,你要美观是自己附加上CSS的事情,跟Markdown无关的。

    还有缩进显然应该用空格啊,这个难道还需要讨论么……

  43. tokimeki
    114.34.164.*
    链接

    tokimeki 2012-08-02 02:07:07

    縮進的問題,我個人認為把代碼從 IDE 貼到瀏覽器上時應該要自動轉成空白字元,從瀏覽器上貼回 IDE 時應該要自動做 Smart Ident 處理。

    不過目前為止好像沒有這麼自動化...

  44. 老赵
    admin
    链接

    老赵 2012-08-02 09:46:13

    @tokimeki

    在我看来两边都应该是选项,而不是强制的……

  45. liancheng
    124.205.129.*
    链接

    liancheng 2012-08-05 13:55:45

    @老赵

    针对Markdown的问题,专门吐槽了一篇,谨供参考 :-)

  46. shell
    114.83.134.*
    链接

    shell 2012-08-05 14:32:43

    较真了!哈哈!

  47. 老赵
    admin
    链接

    老赵 2012-08-05 16:21:10

    @liancheng

    不错不错,说到底Markdown是用来写内容的,写好以后直接看,直接生成简单HTML。

    但它不是用来排版的。

  48. myers
    183.15.54.*
    链接

    myers 2012-08-06 22:32:16

    专业

    不过,人家投稿须知里面都说了请使用word文件格式.

    具体杂志是怎么排版的
    他们也该写篇文章说明下了。呵呵。

  49. Roy
    60.247.127.*
    链接

    Roy 2012-08-07 15:05:33

    编辑说:我为了方便排版用QQ截图截的……

  50. lee
    119.80.141.*
    链接

    lee 2012-08-08 22:51:20

    我喜欢苛刻的人,也害怕苛刻的人。

  51. 链接

    airwolf2026 2012-08-10 13:00:58

    嘻嘻.我也喜欢console 字体.好舒服啊

  52. 链接

    airwolf2026 2012-08-13 10:15:52

    @liancheng

    你的文章搬家了?404了

  53. welpher.yu
    202.100.231.*
    链接

    welpher.yu 2012-08-16 10:56:00

    排版这些知识还是要学习的

  54. gekowa
    111.167.207.*
    链接

    gekowa 2012-08-18 14:20:55

    技术强势, 但是还要注意保持平常心, 为人谦逊才好. 你现在有点狂了, 稍微有点看不惯.

  55. dkmilan
    202.95.211.*
    链接

    dkmilan 2012-08-27 10:49:51

    理工科内容的报纸杂志最好还好还是用有理工科背景的编辑,否则容易闹笑话

  56. finanglish
    119.98.164.*
    链接

    finanglish 2012-09-02 19:10:54

    我不是做技术的,但真心欣赏博主的完美追求,这是进步真正的动力。女人生来就有美化社会的功能,美女当然是最值得欣赏的,我也喜欢看美女,真正令人赏心悦目。

  57. PunCha
    125.98.160.*
    链接

    PunCha 2012-09-04 17:30:44

    代码的字体还是Consolas好用

  58. shenfeng
    118.186.12.*
    链接

    shenfeng 2012-09-21 10:10:56

    非常同意这片文章的看法。 我做了个开源的RSS reader,对您这篇文章的显示:"http://rssminer.net/demo#read/414/375853?p=1&s=newest"

    因为有很多其它的RSS源并不注意排版,以及各方面的原因(比如把相对的图片路径改成了绝对路径等),做了一些处理。还麻烦您看看还有可以什么地方可以改进一些。 谢谢。

  59. D瓜哥
    211.141.83.*
    链接

    D瓜哥 2012-12-24 17:46:44

    很好!

    很多地方的排版,尤其是是代码的排版很难看!我自己在做博客的时候,也认为文章的排版(含代码的排版)也是一种艺术!文章不仅要漂亮,排版也要美观!所以,我博客上的文章都是自己一点一点使用Dreamweaver排出来的,代码使用SyntaxHighlighter显示。发现有点费劲,也挺耗时;不过,排的版比较统一,也没有多余的代码。不知 @老赵 是怎么排的?直接使用MD吗?代码怎样显示和排版的?

    另外,从大家的回复也认识到,看来做为一个码农,还自己做个人博客,有必要学习一种“轻量级标记语言”,替换掉笨重的Dreamweaver。

  60. D瓜哥
    211.141.83.*
    链接

    D瓜哥 2012-12-24 17:51:08

    @老赵 提个建议,在评论的图片下面显示IP地址,IP比较长,和评论内容重叠。看着不太舒服。看能否修正一下。

  61. 老赵
    admin
    链接

    老赵 2012-12-25 19:06:46

    @D瓜哥

    估计你用了XP下的Chrome?XP下的Chrome有个bug,没法显示更小的文字,其实我的这个文字是足够小的,换个操作系统换个浏览器就没问题了。

  62. 链接

    葛伟 2013-06-08 16:48:28

    学习了:

    1. 使用等宽字体,最好就用默认的,
    2. 做出版的要专业,懂得排版的重要性。
  63. 链接

    Eric Han 2013-12-23 15:56:58

    我跟博主壹样,对博客文章的样式排版也有着非常苛刻的要求,喜欢你的博客排版,看了你这篇文章,感觉你比我在这方面的要求还要高出不少。支持这样的做法。

    原本还想转载下你的文章的,由于博主对文章排版的要求真心高,我自问达不到这麽高的境界,就不转了,发個文章链接给你宣传下算了,让网友们来原作观看比较好。

  64. Eric Han
    116.226.215.*
    链接

    Eric Han 2015-08-31 11:53:04

    程序员杂志去年底已经停止发行纸质刊物了,现在貌似只发行电子刊,可惜我用的安卓手机,而它那个安卓客户端界面实在是太不堪了,所以现在已经不看那个了

  65. xigua
    35.241.94.*
    链接

    xigua 2021-04-13 23:07:52

    体彩排列5 图片像素高达3360x2100,当时我还在微博上笑谈到“这次总不会模糊了吧”。保险起见,北京快3 我还为每一段代码增加了PDF矢量格式。

  66. amel
    35.215.165.*
    链接

    amel 2023-08-04 14:17:03

    那少女手中竹棒连挥,将余下的十几头山羊赶到身后,说道:“你为甚么杀我山羊?”声音又娇嫩,也含有几分愤怒。 那杀羊吴士将溅着羊血的长剑福彩3D 幸运飞艇 在空中连连虚劈,笑道:“小姑娘,我要将你也这样劈为两半!” 范蠡叫道:“姑娘,你快过来,他们喝醉了酒

发表回复

登录 / 登录并记住我 ,登陆后便可删除或修改已发表的评论 (请注意保留评论内容)

昵称:(必填)

邮箱:(必填,仅用于Gavatar

主页:(可选)

评论内容(大于5个字符):

  1. Your Name yyyy-MM-dd HH:mm:ss

使用Live Messenger联系我