Является ли плохой практикой создание языка шаблонов, который не является действительным HTML или PHP (Stacy CMS)? - PullRequest
0 голосов
/ 10 апреля 2011

Это язык шаблонов Stacy (сверхлегкая HTML / PHP 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?

Ответы [ 4 ]

5 голосов
/ 10 апреля 2011

Это плохая практика, так как не действует ни HTML, ни PHP?

Пока конечный результат , генерируемый механизмом шаблонов, является действительным HTML, с этим нет принципиальной проблемы. Сам шаблон никогда не будет показан конечному пользователю, только результат.

Однако этот тип синтаксиса нарушит подсветку HTML IDE или может вызвать проблемы при редактировании файла шаблона с помощью редактора WYSIWYG. Если вы делаете это много (или не программирующее лицо редактирует шаблоны), возможно, вам лучше поискать движок с HTML-совместимым форматом шаблонов (хотя я не могу вспомнить ни одного из них голова.)

Это определенно способ работы большинства шаблонизаторов.

2 голосов
/ 10 апреля 2011

Если он отображается как действительный HTML для конечного пользователя, все должно быть в порядке.

Это похоже на файл шаблона, те: и @ будут заменены контентом из CMS.

1 голос
/ 10 апреля 2011

На самом деле это не недействительная разметка, просто она не делает того, что вы ожидаете.

Возможно, наличие системы шаблонов, которая не похожа на HTML или PHP, - хорошая вещь - у вас меньше шансовслучайно забыть разобрать его или случайно разобрать дважды.

0 голосов
/ 10 апреля 2011

Дело в том, что эти '@' - это переменные, которые заменяются действительным контентом на стороне сервера вашим приложением до того, как ваш веб-сервер его обслуживает.Это означает, что когда браузер запрашивает веб-сервер, он возвращает страницу с соответствующим контентом, подключенным там, где были '@', и он никогда не видит '@' '
, если вы хотите увидеть это в действии простосравните шаблон страницы в исходном коде вашего приложения с исходным кодом страницы в вашем браузере

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...