为自己的ASP网站系统构建一套标记语言

    作为动态网站在建设过程中难免遇到在线编辑文章的问题。HTML提供了一个textarea标记,但是实际上没有解决这个问题,因为从textarea的是纯文本。除非在输入的时候使用了HTML标记,否则在输出的时候将获得从头到尾毫无结构的一盘文字。WEB设计中通过DHTML构建一类所见即所得的在线编辑器对这个问题有了很好的解决。

  但是所见即所得并不是唯一的解决办法。笔者在上网过程中发现一些门户网站的在线编辑器非常有特色。它并不是所见即所得(但是提供了一个预览功能),而是一个textarea的文本域,但是又不支持HTML标记语言。而是有它自己的一套标记语言。


图1

图2
  笔者使用觉得非常流畅,总结其优点如下:

  第一, 它的标记不多,相对于HTML而言非常简单,而且通过回车可以自动生成段落,容易被一般用户所接受。笔者认为如果使用中文标记,可以被更多国内用户接受。

  第二, 相对所见即所得的编辑器而言用户更能掌握自己的文章结构,生成乱码少。

  第三, 可见性相对于HTML而言要好得多,加上预览功能后更佳。

  第四, 由于自己的标记语言不支持脚本,因而是更安全的.

  经过笔者一番思考和实践,现把构建这种属于自己的标记语言的方法公示:

  首先,我们为自己的网站确定一套简单而必要的标记语言。确定时把一些不必要的省略。拿我而言,我为自己的网站确定的标记语言如下:

  [图片]图片的网址[/图片]
  [大标题]文字内容[/大标题]
  [小标题]文字内容[/小标题] (考虑到用户可能会细分所以加上)
  [粗体]文字内容[/粗体]
  [斜体]文字内容[/斜体]
  [链接]网址[/链接]

  然后,提供一定的机制,让浏览器读懂我们的标记.那么,怎么让浏览器读懂我们自己确定的标记呢? 在内容显示的页面,我们需要写一个程序将我们的所有标记翻译成为标准的HTML标记,但是此前必须过滤掉用户输进来的HTML代码。

  第一步:过滤HTML代码.

  这个其实很简单,只要将所有的 “<” 标签替换为 “<” ,另外把所有 “>” 替换为 “>” 就可以了。在ASP中通过如下语句实现:

Content=replace(content,”<”,”<”)

Content=replace(content,”>”,”>”)

  (以上代码中,content是储存了我们要显示的内容的变量,下文中若出现也表示一样的意思。)

  第二步:将我们的标记翻译为HTML

  这个相对复杂一些,因为并不是简单的将所有[标签替换为<和]替换为>然后将里面的中文(比如图片)翻译为英文(比如IMG)就可以的。原因有两个:

  1 是我们的标记里面的内容,根据不同的分类需要做不同的处理:

  第一类,直接显示给用户的,比如:

[大标题]文字[/大标题]

  此时确实是只要将标签翻译成相应的英文,比如上面的标记翻译为<h1>文字</h1>就可以了.

  第二类,不直接呈现给用户的,比如:

[图片]图片网址[/图片]

  此时,标签中间的内容”图片网址”只是我们要显示的网址,在HTML中是作为<IMG>标签的SRC属性,而且这个标签在HTML中是不要结尾标签的.所以直接翻译的结果是肯定错误的.

  第三类,直接呈现同时又作为属性,比如:

  [链接]网址[/链接]

  2 是并非所有出项标记的地方都是要翻译的,比如,有时候用户需要用符号”[“和符号”]”来表现他们的内容,而这时候如果将这样的标记翻译为”<”和”>”肯定不是符合用户的心意的。

  分析了出现的问题,笔者将在下面给出编写程序的思路参考和一个参考的程序.

  由于不同的标签需要的翻译方式不一样,所以必须针对不同的标签,一个个的翻译.

  对于任何单个的标记,一篇文章内可能出现多此,也可能一次也不出现,程序应当从头到尾首先检查某一标记的开始标记(比如对”图片]图片地址[/图片]”是”[图片]”)出现的位置,一旦检查到了,然后从那个位置开始检查结束标记,如果也检查到了,则说明这是我们要的标记;如果结束标记没有检查到,那么说明那不是我们要的标记,而只是用户自己展示的内容。检查到之后,将标记翻译为HTML标记,并根据不同类型对标记中的内容作不同的处理.坐完以后从结束标记的位置又继续检查,直到文章结束。

  实际编写中,需要用到递归的思想.下面给出翻译[图片]图片地址[/图片]这个标记的范例程序.

Function TranslateImg(Str)
 Start=instr(str,”[图片]”) ‘检查标记的开始位置
 If start=0 then exit function ‘开始位置为0,表示没有这个标记,那么程序结束
 End=instr(start,str,”[/图片]” ‘检查继该开始位置之后所出现的结束标记位置
 If end=0 then exit function ‘结束标记出现位置为0,表示没有结束标记,程序结束
 MidStr=mid(str,start+4,end-start-4) ‘标记中间的内容
 ReplaceStr=mid(str,start,end-start+5) ‘标记中间的内容加上标记,作为将要替换的内容
 Str=replace(instr,ReplaceStr,”<img src=”&MidStr&”>”) ‘将标记翻译为HTML
 TranslateImg Str ‘递归执行该函数
End Function
  通过以上分析,相信读者能够通过自己的分析为自己的网站构建一套”MyHTML”标记语言了。

  在实际的开发中还会有一些课题需要攻破,比如:标记嵌套的处理;是在将用户提交到数据库之前就翻译还是待用户浏览文章从数据库中调出来时才翻译;为用户提供一些自动插入标记的按钮方便用户的操作体验登.本文仅作抛砖引玉之用希望引得读者一点欣赏。

时间: 2024-08-02 07:49:11

为自己的ASP网站系统构建一套标记语言的相关文章

为自己的ASP网站系统构建一套标记语言_实用技巧

作为动态网站在建设过程中难免遇到在线编辑文章的问题.HTML提供了一个textarea标记,但是实际上没有解决这个问题,因为从textarea的是纯文本.除非在输入的时候使用了HTML标记,否则在输出的时候将获得从头到尾毫无结构的一盘文字.WEB设计中通过DHTML构建一类所见即所得的在线编辑器对这个问题有了很好的解决. 但是所见即所得并不是唯一的解决办法.笔者在上网过程中发现一些门户网站的在线编辑器非常有特色.它并不是所见即所得(但是提供了一个预览功能),而是一个textarea的文本域,但是

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(35)-文章发布系统②-构建项目

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(35)-文章发布系统②-构建项目 注:阅读本文,需要阅读本系列的之前文章 代码生成器下载地址(文章开头处)  接下来我们建立数据库的表和各层的代码 我们只需要两张表,文章列表(MIS_Article)和类别表(MIS_Article_Category) USE [AppDB] GO /****** Object: Table [dbo].[MIS_Article] Script Date: 05/15/

Windows7系统下ASP网站的发布

  如何在Windows7环境下发布ASP网站?   1.搭建WEB服务器    控制面板--程序和功能--打开或关闭Windows服务,会弹出"Internet信息服务"的窗口,全选        点击确定,开始更新服务,更新完成之后,打开浏览器,在地址栏中输入"http://localhost/",出现IIS7欢迎界面,说明搭建WEB服务器成功.       2.发布的ASP网站   Web服务器已经搭建成功 ,那么接下来就开始介绍如何发布你的网站    打开控

专访曾宪杰:大型网站系统与Java中间件实践

摘要:淘宝近10年来历次技术飞跃的参与者.贡献者和带领者曾宪杰做客了CSDN社区问答栏目,担任第四期的嘉宾,带您了解大型网站系统与Java中间件的实践.在活动开始之前,我们采访到了曾老师,一窥他的技术和人生. 编者按:淘宝技术部总监.淘宝技术委员会Java分会会长曾宪杰将携他的新书<大型网站系统与Java中间件实践>做客我们社区问答栏目,担任第四期的问答嘉宾,届时会接受广大网友的提问,欢迎各位网友前来与淘宝网中间件大牛曾宪杰一起碰撞思想的火花.以下为采访正文:  淘宝技术部总监曾宪杰,他是淘宝

PHP开发的B2B电子商务开源网站系统哪个最好

中介交易 SEO诊断 淘宝客 云主机 技术大厅 在网络监管越来越严格的新形势下,电影.小说.音乐.私服等涉及版权或违法信息的垃圾站生存空间越来越小,这些网站要么在国内纷纷被关闭,要么移民在国外等着白名单彻底实施的那天就是死期来临的那一天.在目前新形势下,涌出大量的地方门户和B2C.C2C.B2B电子商务网站,特别是电子商务类成大家建站首选,而随着B2B商务网站的大量增加,B2B商务市场的竞争大大加剧,那么怎么样才能提升你的B2B电子商务网站的竞争力呢?从个人的精力.时间.资金来考虑,当然是要选择

创想商务B2B行业网站系统特色功能

创想商务B2B商务网系统,为企业与企业间信息展示与交互网站方面提供了优秀的解决方案.系统采用asp.net+MSsql构建,具有先进的模块功能和静态html生成技术,拥有地区与会员等级管理体系,该系统具备信息资讯.产品发布.公司信息.企业展示. 人才招聘.展会推荐.求购供应.产品订单等管理功能.系统高速.稳定.安全等特性.功能集中参考了包括阿里巴巴.等国内知名B2B商务网系统的优点,在系统代码与功能上作了大量的改进与突破. 网亚NET!B2B电子商务网建站系统,在行业门户发展上得到了良好的应用与

网站系统创建互动网站的常规步骤与方法

创建 现在咱们要做一个网站,只要求单纯静态页面设计的情况很少了,要么就是设计像易趣.淘宝这样的网络店铺页面,或者是博客页面.要创建一个完整的网站,大家都会应用一套ASP.PHP的网站系统,然后再在系统的基础上设计网站的页面.因此如今的网站页面设计方式就和以前完全不同了.目前应用得比较广泛的免费的网站系统程序包括动易的网站管理系统(http://www.asp163.net).动网新闻系统(http://www.aspsky.net),网站论坛以动网论坛最热门.这些系统只需要到官方网站免费下载后就

预防ASP网站被黑 彻底了解ASP木马

鉴于大部分网站入侵都是利用asp木马完成的,特写此文章以使普通虚拟主机用户能更好地了解.防范asp木马.也只有空间商和虚拟主机用户共同做好防范措施才可以有效防范asp木马! 一.什么是asp木马? 它其实就是用asp编写的网站程序,甚至有些asp木马就是由asp网站管理程序修改而来的. 它和其他asp程序没有本质区别,只要是能运行asp的空间就能运行它,这种性质使得asp木马非常不易被发觉.它和其他asp程序的区别只在于asp木马是入侵者上传到目标空间,并帮助入侵者控制目标空间的asp程序.要想

用网站系统创建互动网站的常规步骤与方法

创建 现在咱们要做一个网站,只要求单纯静态页面设计的情况很少了,要么就是设计像易趣.淘宝这样的网络店铺页面,或者是博客页面.要创建一个完整的网站,大家都会应用一套ASP.PHP的网站系统,然后再在系统的基础上设计网站的页面.因此如今的网站页面设计方式就和以前完全不同了.目前应用得比较广泛的免费的网站系统程序包括动易的网站管理系统(http://www.asp163.net).动网新闻系统(http://www.aspsky.net),网站论坛以动网论坛最热门.这些系统只需要到官方网站免费下载后就