我想知道是否有办法去除 EE 模板系统创建的额外空白并生成“更漂亮”的标记。
我喜欢让我的模板保持可读性。我经常在多年后重返工作岗位,不得不跟随其他开发人员的工作,或者作为团队的一员工作,当一切都井井有条并嵌套时,这会更容易。
问题是 EE 保留了所有的制表符和换行符,当你有很多条件等时,它会导致丑陋的代码。例如,这个:
<div class="
event {if event_all_day}all_day{/if}
{if event_multi_day}multi_day{/if}
{if event_first_day}first_day{/if}
{if event_last_day}last_day{/if}
{if all_day_event_index_difference > 0}index_difference_{all_day_event_index_difference}{/if}
">
{if event_multi_day}
<a href="{path='calendar_main/event'}/{event_id}/">{event_title}</a>
{if:else}
<a href="{path='calendar_main/event'}/{if edited_occurrence}{event_parent_id}{if:else}{event_id}{/if}/" title="{event_title}">{event_title}</a>
{/if}
</div>
渲染成这样:
<div class="
event all_day
multi_day
">
<a href="http://www.downtownmuncie.org/calendar_main/event/1832/">Minnetrista Glass Show</a>
</div>
围绕 EE 标签的每个制表符和换行符都被保留,所以我在<div>
和之间留了一英里的空白</div>
。
性能方面,这并不意味着什么。文件大小的增加可能存在争议,但可以忽略不计。在尝试使用 Firebug 浏览代码时,这也是一个障碍。
但最重要的是,它看起来很草率。
一个建议是相应地调整模板,如下所示:
<div class="event {if event_all_day}all_day {/if}{if event_multi_day}multi_day {/if}{if event_first_day}first_day {/if}{if event_last_day}last_day {/if}{if all_day_event_index_difference > 0} index_difference_{all_day_event_index_difference}{/if}">
{if event_multi_day}<a href="{path='calendar_main/event'}/{event_id}/">{event_title}</a>{if:else}<a href="{path='calendar_main/event'}/{if edited_occurrence}{event_parent_id}{if:else}{event_id}{/if}/" title="{event_title}">{event_title}</a>{/if}
</div>
这不是一个真正可行的解决方案。考虑到整洁的模板和整洁的代码之间的选择,我不得不选择前者。
有没有办法两者兼得?
泰