2011-04-10 23 views
0

这是Stacy模板语言(超轻HTML/PHP CMS不使用数据库)创建不是有效的HTML或PHP(Stacy CMS)的模板语言是否是不好的做法?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
    <head> 
    <meta http-equiv="Content-type" content="text/html; charset=utf-8"> 
    <title>@title, @name's Portfolio </title> 
    <link rel="alternate" type="application/atom+xml" href="@root_path/?/feed/"> 
    <link rel="stylesheet" href="@root_path/public/docs/css/screen.css" type="text/css" media="screen"> 
    </head> 
    <body> 
    <div id="container"> 
     <h1 class="col three"> 
     <a href="@root_path">@name</a> 
     <strong>@profession</strong> 
     </h1> 
     <em class="col three">@email</em> 
     <hr> 
     :navigation 
     <div id="content" class="col eight"> 
     <p class="date col one">@date</p> 
     <div class="description col six"> 
      <h2 class="col six"><a href="@root_path">@title</a></h2> 
      @content 
     </div> 
     <hr> 
     <p id="project-count" class="col one"><em>&#8470;</em> @index/@siblings_count</p> 
     <p id="gallery-count" class="col one"> 
      <em>&#8470;</em> <span>1/1</span> 
     </p> 
     <div id="gallery-navigation" class="col three"> 
      <p><a href="#" id="next-image">Next image</a> <em>&rarr;</em></p> 
      <p><a href="#" id="previous-image">Previous image</a> <em>&larr;</em></p> 
     </div> 
     <div class="col four"> 
      if $siblings do 
      :next-page 
      :previous-page 
      endif 
     </div> 
     :media 
     </div> 

我不知道如果这些@:会产生某种问题?由于HTML和PHP无效,这是否是一种不好的做法?

+0

我假设'@ index'(和其他'@'-prefaced变量)的各种实例只是来自别处的值的占位符。它看起来像模板可以从这个模板输出有效的(x)html。参考:http://staceyapp.com/documentation/variable-types/variables/ – 2011-04-10 15:19:06

+0

@大卫托马斯是的,它是。所以只要输出结果是有效的HTML,这并不重要? – alexchenco 2011-04-10 15:19:59

+0

这个模板并不重要,因为这只是将信息插入其中的框架,然后输出到浏览器。有一些论据表明无效的html页面也有它们的位置,并不一定是个问题,这取决于它们的目的/使用情况。请参阅:http://stackoverflow.com/questions/994856/so-what-if-custom-html-attributes-arent-valid-xhtml,以及http://stackoverflow.com/questions/1337928/whats-the-point -of-valid-css-html(在许多其他许多...中)。 – 2011-04-10 15:22:22

回答

5

这是不好的做法,因为是不是有效的HTML或PHP?

只要最终结果模板引擎生成有效的HTML,没有根本的问题与此有关。模板本身永远不会显示给最终用户,只是结果。

但是,这种语法会破坏HTML IDE的高亮显示,或者在使用所见即所得编辑器编辑模板文件时可能会导致问题。如果你做了很多事情(或者让一个非编程人员编辑模板),那么最好找一个具有HTML兼容模板格式的引擎(尽管我无法想象我的顶部头)。

这绝对是大多数模板引擎运行的方式。

2

如果它显示为有效的HTML给最终用户,它应该没问题。

这看起来像一个模板文件,那些:和@将被来自CMS的内容替换。

1

这实际上不是无效的标记,它只是没有做你期望的。

可以说模板系统看起来不像HTML或PHP是一件好事 - 你不大可能忘记解析它,或者意外地解析它两次。

0

问题是这些'@'是你的应用程序在服务器端取代服务器端的有效内容之前,你的Web服务器曾经服务过它的变量。这意味着,当浏览器查询网络服务器时,它返回页面,并在其中插入适当的内容,其中“@”表示“@”,如果您想查看实际操作中的比较结果,则它永远不会看到“@”的
在您的应用程序的源代码中的页面模板与您的浏览器中的页面源代码

相关问题