tools @ 22 March 2007, “No Comments”

为了能够在blog里显示代码,一直没有找到理想的解决方案,因为没能满足以下三个要求:

  1. 能够根据语法高亮或者着色;
  2. 不在代码里添加内嵌的css代码;
  3. 没有副作用(比如第二点,在代码里直接插入渲染的代码,要修改可能就比较麻烦),包括增加服务器的压力;

今天找到一个满意的方案:google-code-prettify,很好地满足了前面三个要求,使用方法很简单

当然,如果在RSS阅读器里看代码,是看不到语法着色的(这是第二个要求的代价);如果浏览器关掉了Javascript,也看不到(这是第三个要求的代价)。

例子:

PHP:


require_once 'Url/PathVars.class.php';
...
require_once 'View/SearchPage.class.php';

class Controller_Dispatcher
{
	public static function handle_request($url)
	{
		$pv = new Url_PathVars('/');
		
		// TODO:this is ugly, got to change it
		if (substr(strtolower($pv->fragment), 0, 8) == '/search?')
		{
			self::handle_search_request($pv);
			return;
		}
		switch ( strtolower($pv->fetchByIndex(0)) )
		{
			case '':
				self::handle_default_home_request($pv);
				break;
			case 'people':
				self::handle_people_scope_request($pv);
				break;
		...
	}
}

Javascript:

window.addEventListener(
		"load", 
		function() 
		{
			twsstopper = new TWSStopper(window);
			window.twsstopper = twsstopper;
			twsstopper.startUp(window);

		    var appcontent = window.document.getElementById("appcontent");
		    if (appcontent) 
			{
    		    if (!appcontent.TimeWastingSiteStopper) 
				{
        		    appcontent.TimeWastingSiteStopper = true;
	            	appcontent.addEventListener("DOMContentLoaded", twsstopper.onAction, false);
    	    	}
			}
		}, 
		false);

bash:

cd $TMP_DIR

if [ -f "chrome.manifest" ]; then
  echo "Preprocessing chrome.manifest..."
  # You think this is scary?
  #s/^(content\s+\S*\s+)(\S*\/)$/\1jar:chrome\/$APP_NAME\.jar!\/\2/
  #s/^(skin|locale)(\s+\S*\s+\S*\s+)(.*\/)$/\1\2jar:chrome\/$APP_NAME\.jar!\/\3/
  #
  # Then try this! (Same, but with characters escaped for bash :)
  sed -i -r s/^\(content\\s+\\S*\\s+\)\(\\S*\\/\)\\s*$/\\1jar:chrome\\/$APP_NAME\\.jar!\\/\\2/ chrome.manifest
  sed -i -r s/^\(skin\|locale\)\(\\s+\\S*\\s+\\S*\\s+\)\(.*\\/\)\\s*$/\\1\\2jar:chrome\\/$APP_NAME\\.jar!\\/\\3/ chrome.manifest

  # (it simply adds jar:chrome/whatever.jar!/ at appropriate positions of chrome.manifest)
fi

BAT?:

xcopy build\skin build\chrome\skin /i /e
...
rmdir /s /q build\locale
rmdir /s /q build\skin
 
cd build\chrome
7z a -tzip "%x%.jar" * -r -mx=0
cd ..\..

一直热情支持OpenID的Zola在呼吁给OpenID起个中文名,因为:

OpenID是为广大网民服务的,支持OpenID能让服务提供者和网民都得到好外,需要推广才能让广大网民尽早享受到这一个新东西。

像一个场景:在网吧,去问一个正在玩跑跑卡丁车的人有没有OpenID,他会怎么想?如果我问他”有没有可以作为用户名的网址”会不会更容易让他明白我在问什么?

Zola的另一个理由是不能让又(我为什么说又呢?)一个词被垃圾译法给劫持(这字眼是俺用的)了。

伍岭老师(真的是老师)认为没有必要

用户最关心的,是服务是否满足需要,而不是好听的名字;服务有效,再生造的外文词汇也可以琅琅上口;服务低能,再典雅的中文名字也玷污口舌。

更何况OpenID这个单词本身已经足够便于理解,而但凡连这个词都理解不了的用户根本不会关心OpenID。

我还没想好OpenID在大陆的推广和发展是否需要中文名,倒是刚刚想到一句台词:

“IP卡,IC卡,IQ卡,统统告诉我密码。”

《天下无贼》里这句台词出现的时候,大家都笑了。

笑了就说明大家都听懂了。

是否要给OpenID一个中文名,如果要的话用什么,我想还是依靠大众的智慧(The wisdom of crowds)来决定吧。OpenID的推广,有个准确的约定的中文名称也许重要,但更重要的还是用中文来准确、清晰、简单、易懂地解释给普通网民,即使他只是个“在网吧正在玩跑跑卡丁车的人” 。

谁来试试看?:-)

Blogging @ 06 March 2007, “2 Comments”

Hello blogsphere! This is a test.

你好,网志空间!这是一个测试。

试试看不同字体格式blog entry(X)HTML markup长啥样子。

先拍张快照,然后再放上来。

上面那句话的代码如下:

试试看<strong>不同</strong><span style=”font-family: 黑体; font-size: 16pt”>字体</span><span style=”color: #365f91″><strong>格式</strong></span><span style=”font-family: Constantia; font-size: 14pt”>blog entry</span><span style=”font-family: Lucida Console”>(X)HTML markup</span>长啥样子。

初步使用感觉还不错。

缺憾一:Blog post的URL直接用encoded了的标题,比如这篇的就是:http://www.yining.org/2007/03/06/%e6%b5%8b%e8%af%95%e7%94%a8word2007%e5%86%99blog/ ,如果能提供一个选项填写用户自定义的permalink(比如WP里的post slug)就好了。

贴图:

给图加个影子 – 不成功…

先玩到这吧,土鳖抗铁牛。