WP 2 TXP

使用酷软本来应该扮酷,这可能是很少人写字宣传 TXP (Textpattern ) 的原因,虽然很长时间以来它的全球使用者都在1-2万。当然我也出于人之恶在好为人师的考量,所谓教程一概略过,因此现在看官应该调整心情至八卦状态。

欲工其事必利其器,完美的软件永远都好像在不可达到的彼岸,但这是我最接近的一次。年初我尝试了许多东西,Jesse 误导我说它是 Ruby on Rails 的产品 —— 使用 Textile 编辑格式的 RoR 产品目前我知道 tsing 使用的 mephistoblog,而第一个八卦是 Textile 和 Textpattern 系出同门(Dean Allen),而世界上第一个(至少是之一)提供 RoR 支持的主机服务商就是和 TXP 关系暧昧的 TextDrive。

TXP 的精髓是它的语义模型(Textpattern Semantic Model |Zh/TW ),这个称呼暗示了它是有点需要正襟危坐或者道貌岸然地学习一番, 我的体会是要理解 这张图 的几个部分。对于 Wp Like 软件(我把大多数软件都这样称呼)的使用者来说就是在分类之上加了一个叫做“Sections”的层,如果把 “Wp 的分类->post” 树状结构加上 Tag(游离之外的简单 Page 略过),形成的是一个二维平面结构,乘上 Sections 之后就变成了立体的三维矩阵(在 TXP 中 KEYWORD=TAG)。

这是一个开头,大多数软件即便实现类似结构之后已经停步不前,TXP 将它很好的利用起来。 Sections x Categories x Keyword (内容结构) 的三维矩阵中任何一个节点都可以独立地以多种形式表现出来,比如说首页、缩减在次要位置、或者一片随机状态的云……

这里可能会有人说,我用 XX 经过 YY 也是可以的,我知道,我还知道高手可以用写字板上网,插播强调的是,眼下八卦的是软件的基础结构,不仅是功能上可以实现,还是设计者设计时的考虑。Wp Like 在设计时没有这个考虑,实现它除了插件就是修改源码。MT/TypePad 中“blog”和“分类”是相关而不是独立的。而这之后我还不知道有哪个轻量级的软件能做到这点,要知道 TXP 当前版本解压后也只有 800 KB。

进而,TXP 的设计者没有走向“易用性”,Sections、Page、Form、Style 的表现结构强调的是用户可以简单地、逻辑清晰地、基于浏览器地为站点的不同部分以不同的形式表现,这几乎就是为页面设计的手工艺者量身订制 —— Sections 选择一个 Page,Page 中套用各种预定或自行制定的 Form,而这一 Section 可以采用任何 Style,且不说自带的 CSS 编辑器简单好用,单是基于浏览器这一点就很值得推崇,之前我们怎么做呢?好像需要上传一个脚本文件,然后在定制时“link”上这个文件,还有相应的 .CSS,逻辑只在你的脑中,能看到的只是长长的页面列表。

“Sections”的存在和上面说的2种结构都只是在常见脚本语言之上的封装,没错,言及 Weblog 的本质就是内容与形式相分离的易用性封装,区别只是它封装成了什么样子。如果把“link”的形式比作函数调用,那么 TXP 就更倾向于面向对象,这就是 C 和 C++ 的区别,当然封装的复杂度不能这样比。

结构就说到这里,“功能函数”总是要自己写的,程序员对此可能不屑一顾,多一层解释多耗一份资源,是啊,吹毛求疵地说水木社区就是用 C 写的,你拿来和 RoR 相比现在就可以换台了。

“txp:”的标签功能就是这多出来的一次解析,且不说丰富的标签属性可以大大简化代码长度,它开放的六种“if…else”标签的灵活度据懒懒猫说 已经接近了直接编辑 php(我完全不懂网络编程),因为不能在同一个嵌套中使用相同的标签,姑且认为支持了6层嵌套,6层意味什么?我用6层 if..else 写过 C 的 ISODATA 算法(实际不用这么多,只是我爱好 if..else)。更重要的是,思考可重用性和运行效率之间的平衡是一件非常有趣的事情,Godbit 开放了它们写得很好的源码

好像话题过于沉重了,我知道的“严肃”话题仅此而已,有些有趣的小片段:

  • 最为遭人诟病的缺陷是没有原生的 Trackback 支持,官方解释是出于慎重考虑 TB 功能只能给这个遍地垃圾的星球多添一些 spam,并且这一功能“plugin and hacks needed, often fails”。我觉得国内的局面还不到这个地步,损失是有的,偶尔我也会 ping 别人。
  • 还是为了防止 spam,留言机制需要“预览->发布”,这样已经可以在不用邮箱和验证码的的前提下防止绝大多数的垃圾,缺点是多载一次页面。暴露你的邮箱还是多载一次?见仁见智了。
  • 插件是用 base64 加密后的文本直接贴上去,觉得比 FTP 快得多。
  • 把站点保持在“debug”状态可以在解析后的 html 源码后面看到整个解析的过程,从而找出可能拥有的功能错误。(现在这里不在“debug”,不用看了),这是他们论坛 里说的,这个论坛非常可爱。
  • 每篇 Post 2 个类别,内带的“Related post”优先考虑第一个类别,我觉得这个比较符合逻辑。
继续八卦,我对你能把这么变态的长文读到现在相当的感动。

也许你发现了,TXP 的使用者大多都把枪口指向 Wp,后者因为要面对 MT 这样更加强势的对手貌似很少回应,Google 趋势表明 如果把 Wp 的用户数量比作中国,那么 TXPer 的数量就是特立尼达和多巴哥,国内用户数你看看豆瓣的 TXP 小组 就知道了,根据 Vick “用的人多就是丑陋”之学说,也许我将持续地贯彻这一主题。可能会有 Wp 的使用者疑惑为什么在导入的部分这么多软件没有支持,却有 TXP,我忘了在什么地方看到这两个东西有过在同一实验室的亲密接触。今年愚人节的时候还一起开过玩笑

尽管 TXP 的大小是 Wp 的一半,后者依然更容易使用,其实连 MT 都比 TXP 容易使用。我不知道 Wp 之前人们是否知道点击一下鼠标就可以完整地换一个样式,但是应该有很多人受益于 Wp + Wp Like 这样的“内容与形式相分离”的结构,尽管所有软件目前都是这样提倡的,但是大多数人永远站在容易的东西一边(反过来说也行),我觉得 Wp 的整个设计都倾向于让人容易使用,Hooks、Actions、Filters 的机制就如此。而 TXP 虽然也是这样声称的,但是它的样式依然存储在数据库里面,这样你可以把整个站点端着满大街跑,除了图片,今后要把图片也弄进去,人生就彪悍了。

“内容与形式相分离”是不是就是要把形式剔除出数据库?我觉得不是,因为手工艺者可能同样重视他们的样式作品,这样同样也是内容的一部分。

当然还有更多的不满~~

  • Wp 速度慢,缓存也快不到哪去;
  • 非常不喜欢所见即所得的编辑器,尽管后来我知道可以禁用;
  • 可惜在禁用之前,Wp 已经制造出了大量的“br/”;
  • 我不喜欢被插件插,目前这个还是纯洁的;
  • 我做的样式很难看但是我还是喜欢自己做,我觉得 Wp 的样式做起来不方便,TypePad/MT/beta.blogger 那样连样式都可视化操作更是垃圾;
  • 这篇《不使用 Wp 作为 CMS 的五个理由》 (5 Reasons Not to Use WordPress As a CMS)我 100% 同意;
  • 再不行咱玩的就是出位这样说无解了吧。

你为什么还没有换台?—!

最后,找几个牛人支持我的选择,这是一种惯用的伎俩。

  • Firefox 的图标设计者 Proph3t :“最重要的,逻辑(合理的)!”
  • 06年 Bloggies 最佳设计奖得主 Joshuaink :“更快的运行,更小的消耗 ……”
  • 9rules 成员 SonSpring :“如果你想拥有完整的功能,可以自架 Wp,但是有了自架的技术,为什么不用 TXP?”

19 Responses to "WP 2 TXP"

  1. Textpattern我也很喜欢,只是目前没有用到的地方,我喜欢“特立尼达和多巴哥”,“中国”还没人家厉害呢;等到MT变成“印度”我就找个“摩纳哥”去用。

    Vick  PM Tue Oct 17  #
  2. 如果看世界杯,中国确实不如特立尼达和多巴哥。如果 TXP 能像MT 一样生成静态页面就更好了。

    — di  PM Tue Oct 17  #
  3. 没看完后面部分呢,谁说MT的设计是可视化操作了?只是有简易的模式供人套用;毕竟如你这般“疯狂”的家伙总是不多的吧,商业使用的话MT要比WP更具优势,因为可定制性更强。

    “民用”的话因为WP较容易,无论是插件(我现在也讨厌插件,觉得程序如果好何必安这种其实没有太大价值的东西)还是模版都是层次比较清楚的,不容易出现太大问题,新人一样容易上手,还有大量的模版作者及插件作者每天都疯狂的“贡献”,流行也是必然的。(使用MT的网页设计师很少有提供模版分享的,这点比较奇怪)

    不过这个Textpattern被你用了,别人再用是不是也不够酷了?呵呵。

    Cool site!Thanks!

    Vick  PM Tue Oct 17  #
  4. 它当然不能像DW那样“可视化”,哎,我就知道我说了马桶的坏话你肯定不会保持沉默的~~这个不争了,输赢都不能让6A把设计改咯。

    对,WP的流行是必然,我也非常的清楚。正如你上次说的,国内外流行的东西不一样,cool 就很难说了,何况我还没有多少发挥它的灵活性。

    — di  PM Tue Oct 17  #
  5. hello there, i while surfing the web….i came to your side. and i was sinply amazed. your wp you actually used ( for wordpress ). and im here and comenting this new theme, because im interested in using your old for my own.
    if this would be possible, or in any other way, it would be nice if you could mail me a short answer back. or here :)
    happy to hear from you, tom

    — tom  AM Wed Oct 18  #
  6. Thank you for your interest . Do you mean the “blackmaple” ?

    If so I need some time to amend it ~~ for a little bug n personal setting .

    — di  AM Wed Oct 18  #
  7. oh my god this is so nice from you….thanx a lot, i would hug you if i could!

    this theme and reading the content makes so much fun, you cant imagine. and i say it twice, this theme rocks, and with this – my feets,
    they are dancing the happydance right now hehe.

    and now i owe you a favour, and dont be to shy to write me back. i could send you some nice postcards from austria, or a lovely book, or a karaoke cd ( with austrian folk music )

    to add there a “readme” is wonderful, it helps a lot. especially using
    this with photoshop.

    tom, the happiest austrian at the moment

    — tom  AM Fri Oct 20  #
  8. 分析得不错。使用 Textpattern 如果不用手工编写网页代码实在是浪费了(当然,目前想不手工也不可以)。Textpattern 可能更适合网页设计者,WP 适合拿来就用的 Blogger 吧。Textpattern 从来都宣称自己是 CMS,而不仅仅是一个 Weblog 工具。比如图片和文件的管理就是 WP 所缺少的。很多使用 Textpattern 的网站都设计的很漂亮,当初选择使用也是受了 Jon HicksJenny 的影响。还有,Textpattern 的论坛是我见过的最好的论坛。

    playpiggy  PM Sun Oct 22  #
  9. @playpiggy 你的站点是我见到的国内最早用 TXP 的貌似,嘿嘿

    — di  PM Sun Oct 22  #
  10. 第一次發現txp就被它的輕巧及容易上手深深吸引
    而且程式本身的功能就夠多元
    除非特殊需要,不然並不用特別安裝什麼外掛
     
    只是我仍然無法捨棄pingback及trackback這東西
    所以這幾天都在替TXP撰寫 pingback + trackback + xmlrpc
    直到此時才開始深入的研究 txp 核心
    不過並不太喜歡它的程式碼
     
    例如我不太能理解為什麼TXP要把 table tr td form input也用函式包起來
    這麼做並不會提高效能
     
    另一個重要的問題是.外掛執行’時間點’沒API
    一定要等他的預定動作執行完才會開始運行外掛的代碼
    當然可以透過更改核心解決這個問題
    但未來升級會比較麻煩...
     
    儘管如此,這些仍然不會影響我改用txp的決心 :) 哈!

    Beata  AM Fri Oct 27  #
  11. @懒懒猫 我本打算看着你换过来,不过后来你没有消息,我不用什么复杂的东西,就先用了,哈哈。

    ping 一些特殊站点,比如technorati,我在txp_article里面加了几句,他们的xml/rpc包上半年出来,我目前也在用,trackback 没有可能是有一点麻烦~~

    后面你说的两点我有一些体会,这个回复框就包着预览函数,DIY 的时候我花了很长时间找到这个错误,外挂没用,但是4.0.4肆出我看了一下升级步骤,确实比其他的麻烦。

    — di  AM Fri Oct 27  #
  12. @Beata, di
    你们是在讨论一个问题吗?源码我可是看不懂。你们说的函式函数是指 txp 标签吗?用 txp 标签生成 input 之类的内容是为了多语言的需要,建一套模版就可以在不同的语言下使用。如果只是做自己的网站的确没必要这样做。

    @di
    升级只需要把 config.php 之外的文件全部替换就可以了啊。

    playpiggy  PM Fri Oct 27  #
  13. @playpiggy txp标签还是很方便的,毕竟就是设计师也不一定很懂php。只是它有些地方包含的隐藏函数难以理解,比如说#cpreview就内建在回复表单中,如果如我之前在表单外套一个form,就很容易出错。

    升级我可能理解错了,见笑:)

    — di  PM Fri Oct 27  #
  14. 4.0.4 的默认模版里已经没有你说的问题了,而且 #cpreview 在哪儿出现都可以定制了,记得以前好像是不可以的。

    playpiggy  PM Fri Oct 27  #
  15. 谢谢,原来我见过有国外的网站 hack 到别的地方,不过没研究怎么做的。

    — di  PM Fri Oct 27  #
  16. to di
    阿~這陣子忙著做佈景
    剩下一些未完成,要等我的外掛做好才會續製佈景
    trackback 及 pingback 昨天剛完成
    不過只先釋出 tradckback 的部份
    目前 sending 的php代碼還不是很完美,但還是可以發送出去
    要等我把txp全部整理完畢才有時間做修正了

    另外還有雜七雜八的功能必須再寫php掛上去
    so~要再等等吧

    to playpiggy
    上篇說的不是給樣板使用的html元件
    而是定義在 lib/txplib_html.php 給php程式使用的函式
    用於輸出html代碼
    其它還有些函式諸如只輸出php內建函式這類的東西
    因為要多繞一層自訂函式,所以執行效相對而言會比較差

    去除掉這些函式的話,我想TXP應該會比現在的體積更迷你。

    Beata  AM Sat Oct 28  #
  17. >是4.0.4肆出我看了一下升级步骤,确实比其他的麻烦。
     
    我比你幸運多了,剛翻譯完 txp 標籤 v4.0.4 就恰好釋出
    沒來你這兒逛還真不知道他們有推出 xmlrpc
    害我之前在那邊傻不楞登的coding只有pingback功能的xmlrpc
    想想還覺得挺有趣的...

    Beata  PM Sat Oct 28  #
  18. @Beata 哈哈主要是我不会 Web 编程,搜索引擎用得比较多。你还是相当令我佩服地

    — di  AM Sun Oct 29  #
  19. 我想看来我也得研究一下Textpattern 了. 听起来貌似很神奇.

    fen  AM Thu Nov 02  #

Commenting is closed for this article.