忆SyCms【2006年】模板处理之1-初步的构想

在写CMS(内容管理系统)的时候,就想着,能够像VS那样,高亮一些自定义的在HTML里面的标签语句,定义一些可以通过后端代码去处理的一些自定义标签。如下所示:

图一

 

当前想的时候,就想到了以下几个需要处理的问题:

1,展示,如何展示出来,能够快速的找到标签。

2,要有编号,左边的。能够知道多少行。

3,可以在上面单击右键,这样就能够根据标签情况出现不同的菜单。

4,针对显示出来的标签,需要如图一样高亮展示出来,这样可以方便的查看。

5,显示出来的标签,是不能单独进行修改的,要依赖于右键菜单(或者是左键双击打开标签),针对删除钱及回格删除键,操作到标签的时候。要把整个标签删除掉。

6,这是HTML代码标签展示,针对可视化展示的时候。标签运行出来的结果,如何简单的能够展示出来。如下图所示:

图二

7,标签的复用。

当前开始制作的时候,就想到了这些针对模板可视化标签管理的几个问题,那时候想太多也不现实,针对标签可视化(代码可视化和模板浏览可视化)的几个问题,一个一个的去实验,找方法,确定这个问题的可行性。

问题的简单思路及解答。

1,如何展示出来,如图一所示的标签后面高亮显示,一直在想,怎么能够实现这个高亮显示呢?那时候也在网上去搜索查看各种编辑器,想使用iframe和div的可编辑属性,但想了想,我这不需要展示图片及其它可视展示,不太好处理,处理的东西太多,所以想想。还是使用textarea控件进行设计吧。

确定好了使用的控件之后,现在就是要解决,那选中的效果如何解决呢?那肯定是HTML代码展示出来的。可是textarea的展示和html代码展示,在文字字母数字换行等处理上肯定会不一样,之后想到了html代码里面有一个控件是pre它的显示是跟textarea基本完全一致(之后的使用过程中会出现不太一样的问题,那是因为加了代码高亮的关系),那pre里面能不能使用html代码呢?确定好二个方向之后,后面的问题就是对这二个控件实现上面的方法,进行各种属性及功能的测试了。

2,左边的编号是挺简单的,  在处理1问题的时候。监听事件的时候。把编号输出就行了。只是要注意效率及不要重复输出就行了。

3,右键菜单,菜单菜单这个有好多是都可以实现的,获得单击位置也不难,那就是单击的时候。要解释单击的是什么地方,是不是有选中的自定义标签,有没有选中的标签,是在处理1的时候,只要是单击标签的任何位置。都要选中标签,并且记录下用户当前选中的是什么标签,XML属性解析出来用户标签的属性类型,即可。

4,这个问题在处理1要使用什么方法展示的时候。一并测试解决了。

5,这个就是会在3的时候,记录标签信息的时候。也记录了这个标签在textarea中的起始和结束位置。并且在textarea的时候监听键盘事件,确定是否是有选中标签,并且光标的当前位置是否在选中标签的范围之内。

6,这个问题就是结束后端C#代码解析的时候。加上一些特殊的标识,交给前端去作展示的时候,判断特殊标识是否存在。

7,复用这个问题就是不管什么语言,哪怕是自定义的标签语言,也需要有判断,循环等相关标签的定义,是否能够标签套用标签,当标签自己套用自己的时候。最大嵌套、递归的深度是多少。

 

以上就是当时针对模板处理的时候的问题及想法思想解决。只提到了思路,并没有具体的代码展示,因为思路及方向出来了。针对方向和思路去想方法解决一个一个问题就行了。当然思路方法也跟了解的知识面有关,你了解的越全提出的解决问题思路及方法越好。上面的只是自己在处理的时候的思路,并不能说是好的只能说是自己当时采用的思路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值