Есть ли парсер php, чтобы взять код уценки в стиле emmet и проанализировать его в html?Emmet Parser for PHP
Я нахожу, что пишу код как.
$htmlBlock .= '<div id="'.$myDivId.'">';
$htmlBlock .= '<ul>';
foreach($myArray as $listItem){
$htmlBlock .= '<li>' . $listItem . '</li>';
}
$htmlBlock .= '</ul>';
$htmlBlock .= '</div>';
echo $htmlBlock;
С некоторыми гнездованиями, условиями, атрибутами и классами это становится очень утомительным и сложным. Хуже всего помнить о закрытии тегов и вычислении, когда тег должен быть закрыт.
Я знаком с HEREDOC, но это тоже довольно грязно с вложенными циклами и условностями. Я хотел бы полностью исключить теги и синтаксис HTML. Если факт, я чувствую себя сумасшедшим даже для его написания.
Те, кто знаком с Эммет знают, что
#page>div.logo+ul#navigation>li*5>a{Item $}
разбирает в
<div id="page">
<div class="logo"></div>
<ul id="navigation">
<li><a href="">Item 1</a></li>
<li><a href="">Item 2</a></li>
<li><a href="">Item 3</a></li>
<li><a href="">Item 4</a></li>
<li><a href="">Item 5</a></li>
</ul>
Было бы гораздо проще написать
$emmet = #$myDivId ul li{$myArray}
Даже будучи способен напишите, это будет очень мило.
$emmet = #$myDivId ul
$emmet .= foreach ($myArray as $listItem) li{$listItem}
Я вижу много уценки анализаторов для PHP и Parsedown выглядит здорово, но я не хочу, чтобы изучать другой язык. Мне нравится вывод html в сокращенном синтаксисе.
Похоже на стилус, sass и менее проблем с css, но html был забыт. Что удивительно для меня, потому что HTML гораздо более многословный.
Я чувствую, что идеальным решением будет парсер php emmet, который позволяет использовать переменные. Кто-нибудь знает об одном? Если нет, я начну ретрансляцию Github и приступаю к работе.
Если Heredoc доставляет вам тяжело, вы пытались [** nowdoc **] (http://php.net/manual/en/language.types.string.php#language.types .string.syntax.nowdoc)? Похоже, что это сработает. –
Heredoc на самом деле лучше для моих целей. Но я все равно хочу использовать сокращенный синтаксис. – Bryan
вы можете захотеть заглянуть в HAML ... – mb21