<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SAY something (Posts about CJK-space-fix)</title><link>https://blog.sayuan.net/</link><description></description><atom:link href="https://blog.sayuan.net/categories/cjk-space-fix.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Mon, 10 Jan 2022 15:36:15 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>終於，新居落成</title><link>https://blog.sayuan.net/posts/finally-my-new-blog/</link><dc:creator>Shiao-An Yuan</dc:creator><description>&lt;h3&gt;塵埃落定&lt;/h3&gt;
&lt;p&gt;嚷著說要寫 blog 也差不多拖了一、兩年了，除了單純的因為我懶以外，找不到合適的
static blog generator 也是一大主因。為了讓 blog
能完全在自己的掌控之中，我必須選一個自己看得懂、改得動的語言所實作的
generator，因此我首先關注的是以 Python 實作的 &lt;a href="http://blog.getpelican.com/"&gt;Pelican&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;確認了 Pelican 有所有我需要的功能：支援 markdown 語法、能夠顯示 LaTex
語法、syntax highlight 當然也是必要的，還有其他 blog 必備的 tag, RSS, ……等等。
然後最後是，選一個看得順眼的 theme ……。糟糕，怎麼找不到合適的？&lt;/p&gt;
&lt;p&gt;我這個人除了懶以外，另一個缺點是龜毛，而且常常是龜毛在我沒有能力做得更好的地方。
我開始嘗試改寫 theme，當然沒有美術細胞的我，即使投入了不少時間，
卻仍然做不出能看的東西，間接導致我的部落格生涯遲遲無法展開。&lt;/p&gt;
&lt;p&gt;終於，不久前耳聞了另一套 Python 實作的 generator：
&lt;a href="http://getnikola.com/"&gt;Nikola&lt;/a&gt;，照慣例掃了一遍所有的 theme，終於看到一個讓我眼睛為之一亮的
theme: &lt;a href="http://www.damian.oquanta.info/posts/nikolas-zen-theme-finally-released.html"&gt;zen&lt;/a&gt;，也就是各位現在正在看著的 theme 了。
終於呀，原來相比起 generator 的功能，我真正需要的只是一個好看的 theme。 :)&lt;/p&gt;
&lt;p&gt;接下來就展示一下 Nikola 在數學公式和 code 的寫法以及其顯示在網頁上的效果吧。&lt;/p&gt;
&lt;h3&gt;Math&lt;/h3&gt;
&lt;p&gt;顯示數學公式其實就只是使用了 &lt;a href="http://www.mathjax.org/"&gt;MathJax&lt;/a&gt;，沒有什麼特別的地方。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;inline mathematics: \(e^{ix} = \cos x + i\sin x\)&lt;/p&gt;
&lt;p&gt;對應的寫法: &lt;code&gt;\\(e^{ix} = \cos x + i\sin x\\)&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;display mathematics: \[\sqrt{1+\sqrt[^p!]{1+a^2}}\]&lt;/p&gt;
&lt;p&gt;對應的寫法: &lt;code&gt;\\[\sqrt{1+\sqrt[^p\!]{1+a^2}}\\]&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Syntax Highlight&lt;/h3&gt;
&lt;p&gt;Syntax highlight 則是 &lt;a href="http://pythonhosted.org/Markdown/extensions/code_hilite.html"&gt;CodeHilite&lt;/a&gt; 和 &lt;a href="http://pythonhosted.org/Markdown/extensions/fenced_code_blocks.html"&gt;Fenced Code Blocks&lt;/a&gt; 的功勞。&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;HelloWorld&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello World!"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;對應的寫法：&lt;/p&gt;
&lt;pre&gt;```java
class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
```&lt;/pre&gt;

&lt;h3&gt;CJK-space-fix&lt;/h3&gt;
&lt;p&gt;最後來個置入式行銷介紹一下我自己開發的 &lt;a href="https://github.com/sayuan/CJK-space-fix/"&gt;CJK-space-fix&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;很多人在寫 markdown 或著其他格式的檔案時，會習慣在不超過 column 80 的位置
換行。例如：&lt;/p&gt;
&lt;pre&gt;
很多人在寫 markdown 或著其他格式的檔案時，會習慣在不超過 column 80 的位置
換行。例如：
&lt;/pre&gt;

&lt;p&gt;這在 Python-Markdown 會被處理成如下&lt;/p&gt;
&lt;pre&gt;
`&lt;p&gt;`很多人在寫 markdown 或著其他格式的檔案時，會習慣在不超過 column 80 的位置
換行。例如：`&lt;/p&gt;`
&lt;/pre&gt;

&lt;p&gt;然後顯示在瀏覽器上時，就會在 "位置" 和 "換行" 之間有一個多餘的空白，像是這樣：&lt;/p&gt;
&lt;pre&gt;
很多人在寫 markdown 或著其他格式的檔案時，會習慣在不超過 column 80 的位置 換行。例如：
&lt;/pre&gt;

&lt;p&gt;這在許多以空白作為單字分隔的語言中都不是問題，但是在中文卻會顯得很突兀。&lt;/p&gt;
&lt;p&gt;有些人的解決方式是編輯 markdown 時故意不換行；
也有些人是在編輯文章時，故意選在標點符號的位置換行。
當然也有其他人和我一樣用程式解決，但其他人都是在 "markdown 轉 html" 這段
做處理。我一直認為這是屬於瀏覽器的問題，而瀏覽器的問題就該在瀏覽器上被解決，
雖然短時間內各家瀏覽器都不會有解決方案，至少我可以自己寫段 javascript
來處理好這件事，於是這支 script 就誕生了。&lt;/p&gt;
&lt;h3&gt;What's next?&lt;/h3&gt;
&lt;p&gt;老實說，Nikola 也不是個讓我完全滿意的 generator，雖然說是支援
markdown，但找不到針對 markdown 的說明文件，很多功能我也都沒能試出來。
但要是再這樣挑三揀四，我想我大概永遠也沒有辦法開始 blogging 吧。
所以還是就先這樣吧！後續還有很多問題想要處理，像是站內搜尋、轉換至 HTML5、增加適當的 meta 標籤……等等。
不過我想最大的問題應該是我能堅持 blogging 多久吧？&lt;/p&gt;</description><category>CJK-space-fix</category><category>Markdown</category><category>mathjax</category><category>Nikola</category><category>static blog generator</category><guid>https://blog.sayuan.net/posts/finally-my-new-blog/</guid><pubDate>Wed, 29 Jan 2014 13:05:42 GMT</pubDate></item></channel></rss>