布罗格的烘培机

Firefox、Opera、Safari下有的页面会出错,原因是以前的HTML数据不规范所致。

[<<] [<] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [>] [>>]

Z-Blog模板标签列表及相关说明

对Z-Blog模板的修改也快做完了,还是采用的直接Replace的方式(没有技术含量的那种)。之前还试过XSLT模板,发现很好但速度慢还有点难推广。而在模板中实现逻辑功能就觉得太费力,虽然有现成的ASP模板类,我还是愿意用最简单的,至于XSLT模板就留给自己了。

系统常量区

ZC_BLOG_VERSION
引用:<#ZC_BLOG_VERSION#>

ZC_BLOG_LANGUAGE
引用:<#ZC_BLOG_LANGUAGE#>

ZC_BLOG_HOST
引用:<#ZC_BLOG_HOST#>

ZC_BLOG_TITLE
引用:<#ZC_BLOG_TITLE#>

ZC_BLOG_SUBTITLE
引用:<#ZC_BLOG_SUBTITLE#>

ZC_BLOG_NAME
引用:<#ZC_BLOG_NAME#>

ZC_BLOG_SUB_NAME
引用:<#ZC_BLOG_SUB_NAME#>

ZC_BLOG_CSS
引用:<#ZC_BLOG_CSS#>

ZC_BLOG_COPYRIGHT
引用:<#ZC_BLOG_COPYRIGHT#>

ZC_BLOG_MASTER
引用:<#ZC_BLOG_MASTER#>

ZC_CONTENT_MAX
引用:<#ZC_CONTENT_MAX#>


语言资源区

ZC_MSG001-ZC_MSGxxx
引用:<#ZC_MSGxxx#>
这里xxx就要引用的字符串资源的最后3位数字


文件缓存区

分别引用INCLUDE目录下的文件内容
<#CACHE_INCLUDE_TAGS#>
<#CACHE_INCLUDE_STATISTICS#>
<#CACHE_INCLUDE_PREVIOUS#>
<#CACHE_INCLUDE_NAVBAR#>
<#CACHE_INCLUDE_MISC#>
<#CACHE_INCLUDE_LINK#>
<#CACHE_INCLUDE_FAVORITE#>
<#CACHE_INCLUDE_COMMENTS#>
<#CACHE_INCLUDE_CATALOG#>
<#CACHE_INCLUDE_CALENDAR#>
<#CACHE_INCLUDE_AUTHORS#>
<#CACHE_INCLUDE_ARCHIVES#>


数据区

BlogTitle:当前页的标题
引用:<#BlogTitle#>

文章基本数据:
<#article/id#>
<#article/level#>
<#article/title#>
<#article/intro#>
<#article/content#>
<#article/posttime#>
<#article/commnums#>
<#article/viewnums#>
<#article/trackbacknums#>
<#article/trackback_url#>
<#article/url#>

文章分类数据:
<#article/category/id#>
<#article/category/name#>
<#article/category/intro#>
<#article/category/order#>
<#article/category/count#>
<#article/category/url#>

文章作者数据:
<#article/author/id#>
<#article/author/name#>
<#article/author/level#>
<#article/author/email#>
<#article/author/homepage#>
<#article/author/count#>
<#article/author/url#>

文章Tag数据:
<#article/tag/id#>
<#article/tag/name#>
<#article/tag/intro#>
<#article/tag/order#>
<#article/tag/count#>
<#article/tag/url#>

文章评论数据:
<#article/comment/id#>
<#article/comment/name#>
<#article/comment/url#>
<#article/comment/email#>
<#article/comment/posttime#>
<#article/comment/content#>
<#article/comment/count#>

文章引用数据:
<#article/trackback/id#>
<#article/trackback/name#>
<#article/trackback/url#>
<#article/trackback/tile#>
<#article/trackback/posttime#>
<#article/trackback/content#>
<#article/trackback/count#>

文章页面导航条数据:
<#article/nav_l/url#>
<#article/nav_l/name#>
<#article/nav_r/url#>
<#article/nav_r/name#>

翻页条数据:
<#pagebar/page/url#>
<#pagebar/page/number#>




时间及格式区

文件生成时的当前时间
<#BLOG_CREATE_TIME#>

<#article/posttime/longdate#>
<#article/posttime/shortdate#>
<#article/posttime/longtime#>
<#article/posttime/shorttime#>
<#article/posttime/year#>
<#article/posttime/month#>
<#article/posttime/monthname#>
<#article/posttime/day#>
<#article/posttime/weekday#>
<#article/posttime/weekdayname#>
<#article/posttime/hour#>
<#article/posttime/minute#>
<#article/posttime/second#>


标签列表为有限集,超出以上列表系统将不会替换。

我的Tags列表

今天花了2、3个小时时间坐在电脑前一个日志接一个的编辑,将我原来没加上标签的文章全部过了一遍。

再参考了
http://www.flickr.com/photos/tags/
http://www.blogbus.com/tags/
两个页面,做了自己的tags列表,没和七夜、明月星光做的一样,而是用字体的大小表达标签的使用程序,感觉更直观一点,吼吼。

我的Tags列表
http://www.rainbowsoft.org/zblog/tags.asp

看见没,我的BLOG最大的标签居然是“软件程序”^_^

PS:duduwolf终于更换了空间,希望他的这次运气比较好,呵呵。

Z-Blog XSLT 预览版(已停止下载)

title做了两天的XSLT的模板体系终于有成果了,如果速度上过的去的话,其实XSTL做模板是很不错的,在数据控制输出方面有着非常大的优势,彻底的分离了数据与排版,让程序的结构更加明析有条理。不可否认,XSLT模板的编制难度比较大,当要制定界面时就需要扎实的基本功了,将模板分治为各个功能模块,善于运用template、include指令等都可以让模板的易用性提高。

部分修改:
1.新设了TPage类,控制所有页面的生成、输出、保存;
2.TPage类即可以保存为HTML文件,也可以直接Response.Writel输出;
3.为每个页面都定制了一个XSTL模板,由TPage类选择调用;
4.系统内部数据生成为XML格式排列,与XSTL模板配套;
5.移除了原Z-Blog上的缓存机制,目前首页列表页均要使用数据库连接;

摘录了《对J2EE项目的一些体会》一段话:

...
另外,XML+XSLT也是一种方案。将数据直接用XML形式表现出来,绕过Entity bean,然后再用XSLT模版转化成最终界面。XML与XSLT之间属于模式匹配式的松散耦合,可以避免强类型语言方法调用带来的参数类型、个数、顺序限制,做到彻底地数据与界面分离;同时XML形式的数据集在app server中可以按照合适的方案进行缓冲,避免频繁访问数据库,抵销XSLT转换引入的性能负担。同时XML和XSLT是业界广泛采纳的标准,如果今后采用不同的体系结构(如从J2EE移植到.Net或者相反),表现层的XSLT形式的界面可以重用。JSP或ASP就没有这种可能。问题在于首先要管理关系型数据到层次型XML数据的映射,其次如果没有一个好的工具,创建、维护XSLT也是很费时费力的事情。我现在的项目正在朝这个方向努力,希望能做一个象Delphi那样好用的,基于XSLT的HTML界面控件开发、管理、使用环境。
...

这段话里说了几个重要的问题:如何将数据库的数据排列成XML的格式,还有就是XSLT的使用上。另外XSLT转换的效益也值得关注。

下载:
http://www.rainbowsoft.org/zblog/upload/Z-Blog_XSLT_Preview.rar
本版本仅作技术性的预览用,请不要正式使用。

奇怪字符导致XML解析出错及Z-Blog的最终调整设想

http://www.rainbowsoft.org/Untitled.xml
一个奇怪的XML档,终于找到问题所在。原以为是XMLDOM的问题,后来才查清是特殊字符所至。

注意看XML里面的文字,有一些字符是不能显示的。用EditPlus另存为一个新的文件,经过编辑又还原后结果XML就正常了。拿到UE里用文本比较器一看,找到了原因。为了试验,在WinHex中直接输入它们的16进制代码,居然不能保存,说是文件非法。

title
有问题的XML文件,标注出来的就是那些字符的16进制代码

title
将那些字符全换掉以后,XML文档解析正常了

title
这条留言就是罪魁祸首,我已经删除了它

平时在ASP脚本里操作、生成XML文件均是用的MS的XMLDOM组件,连atom_lib.asp也不例外。但在使用atom_lib库生成“数据备份”的XML文件时发现一个非常严重的问题:生成的atom格式的XML文件都是格式不正确的,用IE打开一般会在第2、3行的2万多列发生解析错误,用脚本也读取错误,用Access、Excel打开都会报错,惟有Mozilla可以正确的解析该档。

在万般无奈的情况下,只好重写了atom_lib.asp文件,将原来使用MS.XMLDOM组件的语句全部拿掉,改用字符串拼接XML文档,没想到用改完后的atom_lib库再次生成数据备份文件,这回发现生成的XML文件格式正常,脚本和软件都可以读取并解析,还是真应了一句老话:简单就是美

问题产生的原因可能是XMLDOM本身缺陷,在负载小的情况下(产生几十K至几百K数据)一般是没有问题,同样用原atom_lib.asp库生成的atom.xml文件就没问题,但是一次输出几M的XML文档时,就会出现破坏格式的编码。为什么Mozilla Firefox仍然能正确的解析这样的文件呢,可能它用的是其它类型的DOM解析器,能够略过这种编码。



关于Z-Blog的调整上,目前仍在修改模板系统,XSLT模板制作起来相当费力,还要不断看相关的XSLT、XPath的资料以克服备所遇见的问题。XSLT最大的麻烦就是不但语法要正确,而且语义也要正确

在页面静态化后,分页时将会采取倒序排列以减少可能生成的页面数量,并且首页列表固定且不分页。

在数据结构调整上会新建一个TPage类,专负责页面的输出及保存,将原来在TArticle类中的相应功能转至TPage类。让TArticle和TArticleList生产生XML数据节点,由TPage加载XSLT模板,同时接收有效的数据节点,转换并输出或是保存成HTML文档。

也就是说在常规的表现层和内容层之间又插入了一个控制层,当然它还是模板,但是XSLT的配置的复杂性和使用的灵活性上是其它模板所不能相比的。

这里是一个基本修改好的XSLT格式的单日志模板,还没进行优化和重整的,可以先了解一下。
http://www.rainbowsoft.org/zblog/upload/single.xsl

相应的数据层的XML格式:

<blog>
  <data>
    <article>
       文章的具体数据
       <id>1</id>
       <title>标题</title>
       ...
       <comment>评论</comment>
       ...
       <comment>评论</comment>
    </article>
    <article>...</article>
    <article>...</article>
    <article>...</article>
  </data>
  <common>
    这里块是系统的常量与变量
    <variable name="ZC_BLOG_VERSION">1.3 Beta4 Build 50729</variable>
    <variable name="ZC_CONTENT_MAX">1000</variable> 
    <variable name="ZC_MSG001">名称</variable> 
    <variable name="ZC_MSG002">密码</variable> 
    ......
    <variable name="ZC_MSG143">数据导出</variable>  
  </common>
</blog>

ASP模板技术一二三

这几天一直在考虑模板的问题,由于以前对模板技术不精的缘故所以Z-Blog的模板实现不太好。鉴于要在8月份过完之前结束Z-Blog的开发,所以开始了对模板系统的改造。


1.简单的模板实现
直接用Replace替换{$变量},这是最简单的,用正则表达式所达到的效果会更好的。加载文档,替换变量,输出并保存文件,套用一句话:这东西做起来“一点技术含量都没有”。

相关文章:
Template和JSP技术
蓝色理想 - ASP TO HTML WITH TEMPLATE


2.包含逻辑功能的模板实现
PHP下有PHPLIB Template和FastTemplate,用模板类解析特定的字特串实现逻辑控制。在PHP的世界中已经十分成熟,也有人在ASP下做了仿制的类,可以实现相应的功能,不过我对这种技术不太感冒。

相关文章:
使用模板实现ASP代码与页面分离
ASP打造内容管理系统之模板技术乱谈
在PHP世界中选择最合适的模板


3.以XML+XSLT为基础的模板实现
以XSLT做模板的应用相当丰富,如果在Z-Blog中用XSTL做模板转换XML数据源,生成HTML文件,估计是可行的,况且我在平日对XML十分喜欢,亲睐有加,试一试也可以。可能效率不高,运行时间比较长,对不熟悉XML和XSLT语法的人来说采用XSLT做模板修改起来难度会大一点,希望不会有人向我扔臭鸡蛋。看来又要恶补XML、XSLT、XPath...

相关文章:
变革性的Java Web模板技术
[<<] [<] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [>] [>>]
­

Powered by Zdevo 1.0.3125.32067,Template by Nagrand.

分类

­