DUTORY主页 [非官方|爱好者]

2009年9月5日

Dutory 0.3 Gromit 发布

Posted by: TZH In: Dutory Beta - Dutory 版本

Dutory是一款方便易用的个人Blog程序,其特性包括: 

基于强大高效的ASP.NET 2.0平台
完全可视化编辑,所见即所得
自带相册,支持建立独立页面
支持主题界面切换及导入导出
支持Windows Live Writer,Word 2007等离线写作软件

升级:
升级了TinyMCE编辑器,修正了原编辑在IE8下的错位
对后台管理界面做了修改
加入了置顶文章的功能
修正了评论列表的错误


更新:
Bin目录下的dll文件
Common下所有文件
默认主题


下载

点击下载 Dutory Gromit 0.3.3498.15822.rar

 

更新方法

将除/App_Data/dutory.db数据库之外的文件全部上传覆盖即可!

2009年5月15日

CSS BUG顺口溜

Posted by: TZH In: Dutory Docs - Dutory 资料

一、IE边框若显若无,须注意,定是高度设置已忘记;

二、浮动产生有缘故,若要父层包含住,紧跟浮动要清除,容器自然显其中;

三、三像素文本慢移不必慌,高度设置帮你忙;

四、兼容各个浏览须注意,默认设置行高可能是杀手;

五、独立清除浮动须铭记,行高设无,高设零,设计效果兼浏览;

六、学布局须思路,路随布局原理自然直,轻松驾驭html,流水布局少hack,代码清爽,兼容好,友好引擎喜欢迎。

七、所有标签皆有源,只是默认各不同,span是无极,无极生两仪—内联和块级,img较特殊,但也遵法理,其他只是改造各不同,一个*号全归原,层叠样式理须多练习,万物皆规律。

八、图片链接排版须小心,图片链接文字链接若对齐,padding和vertical-align:middle要设定,虽差微细倒无妨。

九、IE浮动双边距,请用display:inline拘。

十、列表横向排版,列表代码须紧靠,空隙自消须铭记。

屏蔽IE浏览器(也就是IE下不显示)

*:lang(zh) select {font:12px  !important;} /*FF,OP可见,特别提醒:由于Opera最近的升级,目前此句只为FF所识别*/
select:empty {font:12px  !important;} /*safari可见*/
这里select是选择符,根据情况更换。第二句是MAC上safari浏览器独有的。
仅IE7与IE5.0可以识别
*+html  select {}
当面临需要只针对IE7与IE5.0做样式的时候就可以采用这个HACK。
仅IE7可以识别
*+html  select {…!important;}
当面临需要只针对IE7做样式的时候就可以采用这个HACK。
IE6及IE6以下识别
* html  select {}
这个地方要特别注意很多博客都写成了是IE6的HACK其实IE5.x同样可以识别这个HACK。其它浏览器不识别。
html/**/ >body  select {}
这句与上一句的作用相同。
仅IE6不识别,屏蔽IE6
select { display /*屏蔽IE6*/:none;}
这里主要是通过CSS注释分开一个属性与值,注释在冒号前。
仅IE6与IE5不识别,屏蔽IE6与IE5
select/**/ { display /*IE6,IE5不识别*/:none;}
这里与上面一句不同的是在选择符与花括号之间多了一个CSS注释。不屏蔽IE5.5
仅IE5不识别,屏蔽IE5
select/*IE5不识别*/ {}
这一句是在上一句中去掉了属性区的注释。只有IE5不识别,IE5.5可以识别。
盒模型解决方法
selct {width:IE5.x宽度; voice-family :"\"}\""; voice-family:inherit; width:正确宽度;}
盒模型的清除方法不是通过!important来处理的。这点要明确。
清除浮动
select:after {content:"."; display:block; height:0; clear:both; visibility:hidden;}
在Firefox中,当子级都为浮动时,那么父级的高度就无法完全的包住整个子级,那么这时用这个清除浮动的HACK来对父级做一次定义,那么就可以解决这个问题。
截字省略号
select { -o-text-overflow:ellipsis; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; }
这个是在越出长度后会自行的截掉多出部分的文字,并以省略号结尾,很好的一个技术。只是目前Firefox并不支持。
只有Opera识别
@media all and (min-width: 0px){ select {……} }
针对Opera浏览器做单独的设定。

以上都是写CSS中的一些HACK,这些都是用来解决局部的兼容性问题,如果希望把兼容性的内容也分离出来,不妨试一下下面的几种过滤器。这些过滤器有的是写在CSS中通过过滤器导入特别的样式,也有的是写在HTML中的通过条件来链接或是导入需要的补丁样式。

IE5.x的过滤器,只有IE5.x可见
@media tty {
i{content:"\";/*" "*/}} @import 'ie5win.css'; /*";}
}/* */
IE5/MAC的过滤器,一般用不着
/*\*//*/
    @import "ie5mac.css";
/**/
IE的if条件Hack
<!--[if IE]> Only IE <![endif]-->
所有的IE可识别
<!--[if IE 5.0]> Only IE 5.0 <![endif]-->
只有IE5.0可以识别
<!--[if gt IE 5.0]> Only IE 5.0+ <![endif]-->
IE5.0包换IE5.5都可以识别
<!--[if lt IE 6]> Only IE 6- <![endif]-->
仅IE6可识别
<!--[if gte IE 6]> Only IE 6/+ <![endif]-->
IE6以及IE6以下的IE5.x都可识别
<!--[if lte IE 7]> Only IE 7/- <![endif]-->
仅IE7可识别

以上内容可能并不全面,欢迎大家能和我一起把这些技巧都汇总起来,为以后工作的查询提供一个方便,同时在这里感谢那些研究出这些HACK的作者们。

以前发布过一个大鸟的版本的Dutory模板文件详解,今天终于发现官方出了官方的《Dutory模板文件及标签详解》,感谢zx.asd啊!

1.Dutory模板文件夹里,一般来说模板文件有7个:

index.html 首页、列表页布局

single.html 文章页布局

page.html 独立页面、相册页面布局

header.html 顶部标题等布局

footer.html 底部版权等布局

comment.html 评论显示和发表评论

widget.html 侧栏布局
(某些主题还可能会有widget2.html-widget5.html,属于多侧栏型的)


2.模板文件对应的标签,这里标签都是在index.html,page.html,single.html中被引用的

$header()$ : 头部模板文件header.html
$footer()$ : 底部模板文件footer.html
$widget()$ : 侧栏模板widget.html
$comment()$ : 评论显示和发表框comment.html


3.公共标签变量

$blog.title$ : 当前页面的标题(系统会自动合成)
$blog.name$ : 博客名称
$blog.intro$ : 博客简介
$blog.url$ : 博客地址
$blog.themeurl$ : 博客当前使用的主题所在的目录
$blog.header$ : 在header.html中,代表头部除了css、标题、编码之外的所有内容
$blog.footer$ : 在footer.html中,统计代码部分;
$blog.copyright$ : blog的版权,可以在后台设置内容
$blog.adminurl$ : 博客的管理地址
$blog.rss$ : 博客的Rss Feed Url
$blog.commentsrss$ : 博客的最新评论的Rss Feed Url

4.文章标签详解

5.评论标签详解

6.侧栏、模块标签详解
【还在不断完善中。】
默认IIS7是指定的集成管道的进程池,所以程序会出错

很多的.net程序在WIN03(IIS6)下运行正常,改为Win08(IIS7)下就不正常,就是这个原因


截图
20081224_5656f4312b0459dff660SIMP0z7wbUX7.jpg
解决方法

1.将空间的进程池指定为经典托管管道模式的进程池

2.或是移除web.config里的这一节,如下:  
代码:
<httpModules>
        <add type="Dutory.Portal.ModulePortal,Dutory.Portal" name="ModulePortal"/>
</httpModules>
移除这一节的后果就是不能在后台打开虚拟静态页面功能。

首先要确定一下空间是.net 2.0或.net 3.5的空间,.net 1.0的空间是不行的.

1.一个原始的DT的web.config文件是这样的,如果是新空间则不需要修改直接上传到根目录就好了。

代码:

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
        <appSettings>
                <add key="Dutory_Container_AssemblyName" value="Dutory.Core.SQLite"/>
                <add key="Dutory_Container_TypeName" value="Dutory.Core.SQLite.Container"/>
                <add key="Dutory_RewriteConfig_FileName" value="~/rewrite.config"/>
                <add key="Dutory_Subdirectory" value=""/>
        </appSettings>
        <connectionStrings/>
        <system.web>
                <globalization culture="zh-CN"  fileEncoding="utf-8" requestEncoding="utf-8"  responseEncoding="utf-8"  />
                <pages buffer="true" enableViewState="false" maintainScrollPositionOnPostBack="false" validateRequest="false"/>
                <httpModules>
                        <add type="Dutory.Portal.ModulePortal,Dutory.Portal" name="ModulePortal"/>
                </httpModules>
        </system.web>
</configuration>

2.如果空间已有web.config文件,需要追加到原有文件里的部份是

代码:
<add key="Dutory_Container_AssemblyName" value="Dutory.Core.SQLite"/>
<add key="Dutory_Container_TypeName" value="Dutory.Core.SQLite.Container"/>
<add key="Dutory_RewriteConfig_FileName" value="~/rewrite.config"/>
<add key="Dutory_Subdirectory" value=""/>

这部份追加进<appSettings>节点里,如果没有appSettings节点,就要建一个

代码:
<httpModules>
<add type="Dutory.Portal.ModulePortal,Dutory.Portal" name="ModulePortal"/>
</httpModules>

这部份追加进<system.web>里,如果有<httpModules>,那只加中间的一行就行了。

3.需要变通的部份是

代码:
<globalization culture="zh-CN"  fileEncoding="utf-8" requestEncoding="utf-8"  responseEncoding="utf-8"  />

如果原来的web.config里这一部份指定的是gb2312的话,那么就要在你安装DT的目录里的web.config加上这一节

Dutory的一些模板标签

简单的根据已有的主题整理了一下标签部分的内容,有些可能不够准确,欢迎补充:
$header()$                  头部模板文件header.html部分的内容
$widget()$                   侧栏模板widget.html部分的内容
$widget2()$                侧栏模板widget2.html部分的内容
$widget3()$                侧栏模板widget3.html部分的内容
$widget4()$                侧栏模板widget4.html部分的内容
$widget5()$                侧栏模板widget5.html部分的内容
$footer()$                    底部模板文件footer.html部分的内容
$navbar.content$       导航栏

$blog.title$               博客名
$blog.intro$              博客简介
$blog.url$                博客地址
$blog.themeurl$    博客当前使用的主题所在的目录

$blog.header$         在header.html中,代表头部除了css、标题、编码之外的所有内容
$blog.footer$           在footer.html中,统计代码部分,属性为display:none;
$blog.copyright$      blog的版权,可以在后台设置内容

$mod_pagebar()$       分页条 ,在模板index.html使用


$bulletin.name$       公告的标题“Bulletin”
$bulletin.content$    后台模块公告设置的内容
$it.id$                           文章的ID号,在模板中使用  <div class="post" id="post-$it.id$"> 或者 <div id="comment-$it.id$">
$it.previouslink.hrefname$     带有链接的上一篇文章名
$it.nextlink.hrefname$             带有链接的下一篇文章名
$it.url$                                    文章的链接地址
$it.name$                              文章名
$it.times.day$                       文章发布时间
$it.times.monthnameabbr$        发布时间之月份
$it.times.day$                                 发布时间之日期
$it.hreftagsname$                         带有链接的tag名
$it.author.displayname$              文章作者的显示名称----如果后台没有设置昵称则显示账号,如果设置昵称则显示昵称


$it.hrefcatalogname$                     带有链接的分类名
$it.commentcount$                        当前文章的评论数目

$it.content$                                    在page.html ,表示独立页面的文章包含的内容
$it.content$                                    在comment.html,表示 评论的内容
$it.content$                                    在single.html,表示文章的内容

$it.classname$                                    评论所在class名,特点是alt和空相互交替 可以对评论进行分别的class样式设置,获取更好的页面效果。
$it.hrefname$                                       带有链接的评论者名称
$it.createtime$                                    评论发表的时间
$mod_commentspagebar()$          评论的分页条

$blog.sendcomment$                     相当于 博客地址/cmd/sendcomment.aspx

$blog.guest_name$                        用于comment.html 表示留言者的姓名,有cookie功能
$blog.guest_email$                        用于comment.html 表示留言者的email,有cookie功能
$blog.guest_url$                              用于comment.html 表示留言者的网址,有cookie功能

$comments.name$                       文字“Recent Comments”
$comments.content$                     留言的内容调用

$aboutme.name$                       文字“About Me”
$aboutme.content$                    后台模块关于我“About Me”的内容

$previous.name$                       文字“Recent Posts”
$comments.content$                最新发表的内容
类似的还有:
$模块ID.name$                           模块标题
$模块ID.content$                         模块内容

$blog.rss$                                   文章RSS订阅地址
$blog.commentsrss$               评论rss订阅地址

$blog.login$                                博客登陆地址

StringTemplate模板语法说用

StringTemplate的语法是以$xxxx$来进行分割的. stringtemplate关键写是区分大小写的.

属性引用

在模板中,这个是最常用的一个属性.用于显示文字.如下:
你的邮件地址: $email$
替换属性名为email的值.

字段引用

如果一个属性名称是对象或集合.可以用 属性名称.字段名 访问字段值
例如:
你的姓名: $人.姓名$
你的邮件: $人.邮件$

自定义属性字段名
格式: $属性名:{it.字段名}$

解决Dutory后台 TinyMCE编辑器内文本行距过密的办法

TinyMCE 支持调用时指定一个自己的样式文件来控制 TinyMCE 辑辑区的样式.
看源代码, 猪指定的这个文件的位置是 admin/css/content.css (居然位置在这里而不是和其它后台样式表放在一起, 似乎猪只顾 Copy 代码没顾及到这个细节)
这个文件默认是不存在的, 需要自己创建.
建好后在文件中写入以下样式:  
代码:
.mceContentBody {
        font-size:1em;
        line-height:160%;
}
.mceContentBody p {
        margin:0 0 15px 0;
        padding:0 0 0 0;
}
进入后台编辑文章, 刷新或清空浏览器缓存. 行距加大了.
注意: 那个 font-size:1em; 根据你自己的需要定。

ZBlog数据,WordPress数据导入进Dutory的方法

1.先把Z-Blog的数据导出成XML文件保存在本地。请用这个插件导出数据。

WP请在后台直接导出XML数据保存。

2.在本机打开DT的bin目录下的Dutory.Tools.exe文件,如果本机没有装.net 2.0环境,需要到这里下载

3.先点“创建”建一个新数据库或指向一个已存在的数据库。

4.选择好XML数据文件,点“转换”就可以了。

5.把转换好的数据库放入你的dutory的App_Data目录就好了。

20081128_4d449463ea559a92879fsgsocf94waA8.png

注意:
*如果提示xml文件非法,你需要用其它的编辑器去除掉不能一些显示的问题字符。

很早以前其实就已经发现了这个问题,Dutory作为ASPX程序,沿袭了Dutory的DNA,——只能在根目录安装,不能在子目录安装,现在终于解决这个问题了,大家可以更好的使用Dutory了!再次感谢asd.zx!

1.将DT的Bin目录和web.config上传至空间的根目录。

2.假设你要把DT装在blog目录,那就把剩下的目录和文件全上传至blog目录。

3.新建一个web.config上传至blog目录。
内容如下:
代码:
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
        <appSettings>
                <add key="Dutory_Subdirectory" value="blog"/>
        </appSettings>
</configuration>
4.如果你在继续在其它的目录也装DT还要重复2,3步,只是别忘改相关的值。

今天才发现Dutory的论坛合并入了ZBlog的BBS,原来的帖子都已经清空了,板块也进行了调整,很多人都对这个神秘的程序表示了很大的兴趣,由于一向深居简出、沉默低调的asd.zx,因而这个原本就神秘的Dutory就更加让人感到神秘。

看看叶子最新写的关于Dutory介绍的文章吧:

好久没来论坛了,发现论坛多了个Dutory版块.以前再叶子的博客看到几篇文章,发出来大家看一把.也算解惑一哈吧!
今天给大家讲讲一些关于dutory的东西,名字的来历,未来的发展,等等等等~~~
以下的博文可以称之为zx访谈录,因为是根据zx与叶子的聊天记录整理出来的,其中会引用一些zx的原话,对dutory或者对zx乃至对zblog有兴趣的朋友不妨一看。

说到dutory,首先要解释一下这个名字。Dutory是一个自创词,在词典里是查不到的。这仅仅是一个名字,无任何特殊意义,但有其特殊来源。

在最初决定做这个程序的时候,zx与我曾就命名问题做过多次讨论,zx想做一个全新的程序,不想留任何zblog的影子,所以名字中尽量回避“z”这个字母,同时我们都不喜欢类似“XXblog”这样的名字,我们需要想一个全新的词,不论在字面或深层次的意义都不能有任何歧义。而且考虑到将来的发展,这个名字要是别人没用过的,可以注册顶级域名的,一个自创的合成词是最符合以上条件的。

期间我们想过很多,但都一一否决了。之后zx想到在06年底曾做过一个.net的程序,叫datura,不过半途而废了,于是就想了一个与datura比较接近的名字,这就是dutory这个名字的来历了。私底下我们更多的是用简称“DT”

许多人都曾问过为什么选择用.net来编写这个新程序,我也曾问过zx相关问题,zx的回答有点臭屁,令人摸不着头脑,以下引用zx的原话“.net是技术,技术是用来提升生产力,实现更多美好的想法的”。按我平日与zx的交流中,以我的理解,可能是因为zx在计划做这个程序的时候是打算摆脱以往zblog固有的模式,用不同的思维方式架构一个不同的程序,所以会选择了asp以外的方法。至于非要我们说asp、.net、php、cgi以及其他等等哪种更优哪种更合适,似乎这并不重要。实不论哪种语言的优劣,没有绝对优势的东西,只有你好好的利用他,发挥他的优点。选择.net可能是偶然的,但我相信DT必然会是一个优秀blog程序。

Zx心目中希望把DT打造成什么样子呢?他将会有那些特色、功能呢?zx说“我心中的DT是真正打造给每一个人使用的程序,更方便,更好用”在DT的开发过程中我也多次反复地提醒他作为一个广泛应用的程序,用户体验很重要,友好的操作和界面是很必要的。很多人在拿pjblog和zblog做比较时多数会提到:pj的后台操作很简便、很友好,因为更多的是所见即所得的编辑模式,所以更利于新手的操作和熟悉这个程序。Zblog虽然相对pj自由度更高,可定制性强,但是后台编辑时都是直接面对大片代码,对于一个不熟悉代码的非专业人士和一般新手来说是一个令人望而却步的门槛,这是zb的致命伤,也是为什么一直以来zb用户的人丁并非兴旺的原因之一。

现在在做DT的时候zx已经充分考虑到用户体验了。在这几天的DT测试中,我感觉到了后台操作的简便与强大。这一点,在今后DT发布后,大家可以自己去体会一下。

DT是一个不需要插件的程序,他所有的功能都在主程序里展现出来了,如果有其他额外的功能需求都可以通过修改模版来实现。这是目前为止我所了解到的DT的一个最大特色的地方。
1. 提交表单form的id必须为“commentform”

2. 表单里的提交按钮的id要是“submitbutton”,否则无法出现验证提问。

Dutory.Core.dll里的类结构图

Search

Flickr PhotoStream

    flickrRSS probably needs to be setup

About

« 2010年1月 »
     12
3456789
10111213141516
17181920212223
24252627282930
31      

Search

Statistics

文章:88篇
评论:8条 (4条Spam)
相册:1个 (20张图片)
主题:0remix主题