Archive for the “wordpress” Category

寂寞的时候做做搬运工,所以blog需要一个flash播放器,也不知道哪个好,看wordTube下载数多,于是相信群众。
在wordTube的配置里做了很多修改,最主要的就是把原来的Default size (W x H) 320×240改成400×320。但是杯具的发现修改后视频的大小依然是320×240。

看了一下,问题应该出在admin/functions.php的wt_add_media函数里,里面有伟大的硬编码

$act_width  = 320;
$act_height = 240;

也就是你加入meida的时候,它54了你的设置,320×240又回来了。

在lib/wordtube.class.php的ReturnMedia函数里有生成html的代码

$width  = ( $width  == 0 ) ? $this->options['media_width'] : $width;
$height = ( $height == 0 ) ? $this->options['media_height'] : $height;

结果这里$width和$height万年为320和240。简单粗暴的解决方法就是将其改成

$width  = $this->options['media_width'];
$height = $this->options['media_height'];

反正目前的问题解决了,其它bug暂且54。拿两个神作测试一下。

Comments 1 Comment »

wordpress提供有more标签,其作用就是在index里只显示文章的一部分,避免一页太长,点击链接后则可以看到全文。使用方法非常简单,在你想截断的地方加一个html注释

<!--more-->

就可以了。在mandigo主题里产生的超链接的文字为”Read the rest of this entry”,这是可以通过对主题代码的修改来个性化的。

个性化more标签我一直很想要的效果就是东方系列里载入过程的那段”少女祈祷中…”动画。不过我没有在网上找到其gif动画,自己尝试从东方花映冢中提取素材也以失败告终,所以就只好使用文字版的了。一个偶然的机会,我在这里意外发现了其flash动画版,而且颜色还正是我要的粉红色,真是踏破铁鞋无觅处 ,得来全不费工夫。当然虽然我无耻的rob了这个flash,但把它实际加到blog里还是要花点功夫的。这个flash动画不知为什么留了很奇怪的白边,而我不会flash,修改不能,向范叔求教,结果被鄙视了。然后考虑用工具把flash转成gif动画,再把多余的边剪掉,结果发现转换出来的gif变大了几十倍不说,效果也差很多,于是此路不通。最后想了一招,flash保留原样,在blog里通过css把多余的边“剪”掉。几经修改,最后html代码

<object
    style="margin: -40px -81px 0 -192px" standby="少女祈祷中..."
    data="http://watashi.ws/blog/wp-content/uploads/2009/12/NowLoading.swf"
    type="application/x-shockwave-flash" width="375" height="82">
    <param value="http://watashi.ws/blog/wp-content/uploads/2009/12/NowLoading.swf" name="movie">
    <param value="false" name="menu"><param value="high" name="quality">
    <param value="transparent" name="wmode">
</object>

的效果



比较满意。

最后把这个效果加到blog里去,实际加的时候把html和css分离开来。首先修改主题的Stylesheet (style.css),在最后加上

.more_flash {
    margin: -40px -81px 0 -192px;
}

然后修改主题的Main Index Template (index.php),

Comments No Comments »

我想我和我周围的许多人都会需要在blog中贴些代码以拼凑版面丰富内容,而没有高亮的代码是不能看的,于是再度求助于wordpress插件。比较好的代码语法高亮库有,GeSHi, SyntaxHighlighter 2.0google-code-prettify,他们也都有不只一个对应的wordpress插件,安装后就可以直接用了。这三个库各有千秋,我的体验如下:

首先是语言支持方面。GeSHi支持的语言太tm妈多了(有paper指出这里tm是对多的强调,避免歧义),其高亮也要比另外两个强大,可以识别更多的语法元素;google-code-prettify也支持不少语言,而且还有相当浮云的自动语言识别功能,可是对显示行号的支持不咋的;SyntaxHighlighter这方面要逊色一些,早先的版本连perl都不支持>_<,默认识别的语法元素也不那么多。

然后比较一下显示效果,SyntaxHighlighter无疑是大优势胜出,还有view source, copy source, print这样的浮云功能。另外两个风格比较接近,GeSHi的格式似乎丰富一些,不过有时候却反而显得有点乱,不过这些显示效果都可以通过修改css改进。最主要的一点,也是让我坚定选择SyntaxHighlighter的原因在于,SyntaxHighlighter能够处理自动换行,还可以在自动换行处加上标记。而其他两个把代码放在pre标签中,其结果就是当一行代码稍长的时候,右边部分会看不到,或者会把所在div撑大,结果破坏整个页面的结构!对此已有体会。

最后说一下扩展性。理论上三者都可以扩展,而SyntaxHighlighter的扩展一个新的语言是非常简单的。当然像GeSHi都支持那么多语言了,估计也用不着扩展了。此外SyntaxHighlighter也有着更多的属性可以配置。

比较之后,我选择了使用SyntaxHighlighter的插件SyntaxHighlighter Evolved。在setting页面你可以对行号,工具栏和tab宽度等设置,还可以选择eclipse, emacs等颜色主题。

最后用A + B Problem来测试一下效果。A + B Problem

Comments 4 Comments »

原文最初发表于2009年9月18日,并消失于地震

C

/* A + B Problem in C */
#include <stdio.h>

int main(void) {
	int a, b;

	while (scanf("%d%d", &a, &b) != EOF) {
		printf("%d\n", a + b);
	}

	return 0;
}

Comments 7 Comments »

要装扮一下自己的blog,最重要就是选择一个合适的主题。wordpress有着无数的免费与收费主题,但是要找到一个自己心满意足的却并非易事。当然如果你是一个css高手的话,自然能轻松搞定一切,可惜我不是,我只能找一个足够合适的主题作为一个高起点。首先当然是从wordpress的Free Themes Directory入手,很可惜,我在这里要么是搜不到满足我条件的主题,要么是安装后实际效果不理想。于是我开始求助搜索引擎,并搜到了更多的主题,依然很可惜,这些主题或者不符合我口味,或者定制性太差,或者同我blog内容结合在一起比较违和。最后,我开始用关键字搜一些同好用workpress架的blog,看看他们都用啥主题,企图rob一个合适的。搜寻过程拜到各种技术宅,包括自己写主题,插件的,还有自己做出一套华丽的素材的,无限orz。我就这样找啊找啊,找了整整三天之后,我才找到现在用的主题——mandigo

mandigo是一个在我看来非常不错的主题,首先它是fixed-width的,这样可以有效逃避自己精心打扮的blog在别人浏览器里崩掉的悲剧。它的定制性也不错,本身就有好几套不同的配色可以选择,还支持随机配色,不过我当然是毫不犹豫地选了现在的这个pink配色。最主要的还是对title和background图片个性化的支持。title的图片也支持随机功能,只要把备选图片放到指定目录下就可以了,都不用自己来实现了。

最后就是挑选背景图片了,总是搬运来搬运去的,也该到自己动动手的时候了。当然事实是我在自己的收藏,百度、google的搜索结果中都没能找到中意的。不过搜索中发现《东方活动写真馆》的截图主调确实和blog满搭配,于是自己用《东方活动写真馆》做一个。考虑到只用一张截图实在太单调了,于是用许多截图平铺起来。

首先获得截图,每秒钟来一张,利用mplayer可以轻松搞定。我写的比较圡,我想应该可以用一行脚本搞定的。

for i in `seq $1`
do
    mplayer -ss $i -noframedrop -nosound -vo png -frames 1 /media/temp/VIDEO_TS/VTS_02_1.VOB
    mv 00000001.png $i.png
done

然后利用imagemagick处理获得的截图,把过多的白边去掉,然后缩小图片并存成jpg。imagemagick是一个强大的图像处理工具,并且有很好的perl支持。

#!/usr/bin/perl -w

use strict;
use warnings;
use Image::Magick;

for my $file (@ARGV) {
    my $image = Image::Magick->new;
    $image->Read($file);
    $image->Crop(
        width => 700, height => 400,
        x => 80, y => 50);
    $image->Scale(
        width => 420, height => 240);
    $file =~ s/png$/jpg/;
    $image->Write($file);
}

最后随机选一些图片纵向平铺合成一张大的背景图片,依然通过perl脚本,借助imagemagick实现。这一步要人肉做的话不知有多痛苦……

#!/usr/bin/perl -w

use strict;
use warnings;
use Image::Magick;

sub randfile() {
    return sprintf '%08d.jpg', 15 + int rand 227;
}

srand;
my $n = 16;
my $size = sprintf '420x%d', 240 * $n;
print $size;
my $image = Image::Magick->new;
$image->Set(size => $size);
$image->Read('NULL:blank');
for (my $i = 0; $i < $n; ++$i) {
    my $img = Image::Magick->new;
    my $file = &randfile;
    print "$file\n";
    $img->Read($file);
    $image->Composite(
        image => $img, compose => 'Over',
        x => 0, y => 240 * $i);
}
$image->Write('gao2.jpg');

然后多随机几次,选个感觉最好的,上传并设置为blog的背景图片,大功告成^ ^

Comments 6 Comments »