by jjgod, for bbstpl-0.0.7
实际上,这个功能的处理方法——至少在目前——非常简单,BBS 模板系统仅仅
是按照请求读入文件,将其中的一些字符串替换为指定的变量,然后将它输出。
(bbstpl 会在下一个版本提供在一个模板中包含其他模板文件的功能,这样会进
一步简化模板文件的设计)
然而这个简单的功能可以实现足够复杂的功能,且不会造成什么效率的下降,也
不会影响灵活性。 事实上,所有的内容仍然在 C 程序中生成,只不过内容摆放
的格式由模板文件 (和与它们相关的 CSS 文件) 决定了。 现在可以非常方便地
修改 BBS 的 Web 界面,它有这么几个优点:
1. 不用担心对格式的编辑会不小心影响程序;
2. 输出一目了然,可以使用所见即所得编辑器进行编辑;
3. 编辑后不需要重新编译代码,立即可以看到设计的效果。
4. 在代码编写中可以专注于内容的处理。 而不用担心这段内容该用几号字,什
么颜色,缩进多少等芜杂的信息。
那么,如果我遇到一长串数据,中间不能隔断,又无法预测长度,一定要在其中
设置格式怎么办呢?
确实,这种情况并非不可能出现,比如说在 bbsdoc 中输出某个版面的帖子列表
时,如果设计人员把握不当,有可能需要直接设置其中的字体等格式信息。是否
这样就背离了我们的宗旨呢?并非如此,下面就有一个解决方案。
如前面所说,至少在现在这个系统并没有提供在模板中循环输出的功能,即便提
供了,仍然推荐使用现在这种方法。
我们知道,在网页设计中可以运用多种方法设置页面的格式,最简单也最直观的
方法是直接在 HTML 代码中书写,而还有一种功能强大的方法则是使用层叠式样
式表,通过它定义一系列的格式,然后在 HTML 中应用,这种方法有如下几个优
点:
1. 功能较直接书写 HTML 更为强大,效果也有过之;
2. 可以统一定义;统一修改,较为方便;
3. CSS 文件可以独立于 HTML,并给多个 HTML 文件重复使用。
究竟有多么强大?空口无凭,CSS Zen Garden 是一个例子:
http://csszengarden.com/
同样的内容,仅仅替换了 CSS 文件,外观的变化多大,你可以自己看看。
所以可以说,需要设置的格式使用 CSS 都可以办到。这里给出一个简单的例子,
假设我一定要在一段字符串内包含字体的信息,则我先在该模板引用的样式表文
件 (通常是 bbs.css) 中定义:
.quote {
color: #CCCCCC;
font-family: 宋体, Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
line-height: 125%;
}
以后我要在程序中使用这种格式的字体时,则可以在程序的输出中包含这样的标
记:
<font class="quote">这是一段引用信息。</font>
在任意的时候,如果我希望更改“这是一段引用信息。”的格式,不需要去修改
和重新编译程序,而只要修改 CSS 文件中关于 .quote 定义就可以了。
前面说过,CSS 的功能是非常强大的,详细的介绍可以参见 O'Reilly & Associate
的 Cascading Style Sheets: The Definitive Guide 一书,该书的中文译本由
中国电力出版社出版,名为《CSS 权威指南》。
编辑 CSS 推荐使用 TopStyle Pro 软件。
尽管如此,但仍然建议不要轻易使用自己定义的格式,而尽量把所有的格式都约
束在 HTML 原来的标记的范围内。
比如说在表格中的显示格式,统一在 td 的定义中; 链接的格式,统一在 a 的
各个定义中,等等,这样可以方便其他开发人员的理解和查阅。
如果一定要使用自己定义的格式 (CSS 标准中,默认格式的名称前面没有 .,而
自定义的格式前面有),最好标注上足够清晰的注释, 说明这段格式使用在何处,
有何用途。
如果还有什么问题,可以致信 gzjjgod@hotmail.com。
这里本来有一个附件 bbstpl-0.0.7.tar.bz2
但是目前CN BBS转信系统不转带有较大附件的信件,所以 YTHT BBS 去掉了.
--
FROM 211.66.100.83