2010-03-08 119 views
3

如何將Unicode字符串CSS插入CleverCSS將unicode字符串插入到CleverCSS中

尤其是,人們怎麼可能用CleverCSS產生以下CSS:

li:after { 
    content: "\00BB \0020"; 
} 

我已經想通了CleverCSS的解析規則,但我只想說,我認爲明智的排列都失敗了,例如:

li: 
    content: "\\00BB \\0020" // becomes content: 'BB 0' 

編輯:我的其他例子和我的文章的其餘部分沒有保存。我只想說我缺少更多的例子。

我很感激任何想法和意見。

布賴恩

編輯:我注意到,插入Unicode就是問題之一(一旦你開始上傳CSS用UTF-8編碼它的罰款)。引用字符的包裝是另一個,我解決了一些瘋狂的喜歡:

content: "'".string() + " ".string() ».string() + "'".string() 

希望可以幫助別人。

+0

@Alconja - 感謝您的修復。 – 2010-03-11 01:11:39

回答

2

這可能很愚蠢,但爲什麼還要打擾轉義序列,只需鍵入/粘貼實際字符? "A CSS style sheet is a sequence of characters from the Universal Character Set"

這對眼睛來說很容易,在維護現有代碼時特別有用。

或者是CleverCSS不支持Unicode?

+0

好的建議 - 我也試過。但是,在CleverCSS中放入'»'會導致CSS中出現'?'。不知道爲什麼。 – 2010-03-16 15:12:14

+0

啊哈。這工作,但我不得不把'內容類型:'文本/ CSS; ; charset = utf-8''在CSS的頭文件中。 – 2010-03-16 15:16:33

1

在查看代碼(CleverCSS 0.1)時,看起來部分正則表達式_r_string(定義於第414行)是您需要啓動的地方。這用於定義其他幾個RE,包括在解析規則中使用的_string_re(第1374行)。這導致我們process_string()(行1359),其中看起來像它是爲了接受Unicode。

不幸的是,手工構建的解析器往往會變得有點奇怪,代碼並不完全在註釋中游動。如果你真的需要這樣做,我會把重點放在process_string()上,並在那裏放置一些打印語句之前/之後,看看你是否能夠理解這些內容和結果。

你也可以嘗試賄賂原作者用啤酒或???祝你好運。

+0

聽起來像頭痛。 :)感謝您的運氣。 – 2010-03-09 16:46:25