Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
像函数一样重复html块_Html_Content Management System - Fatal编程技术网

像函数一样重复html块

像函数一样重复html块,html,content-management-system,Html,Content Management System,我通过建立自己的个人网站来学习html、css和内容管理,但我在这些方面的经验都很少。困扰我的一件事是我不得不重复一段“html代码”。例如,在我的网站上,我可能有一个块,看起来像: <div class="talk"> <a href="link"> title <div class="info"> subtext </div> </a> </div> 其中,链接、标题和子文

我通过建立自己的个人网站来学习html、css和内容管理,但我在这些方面的经验都很少。困扰我的一件事是我不得不重复一段“html代码”。例如,在我的网站上,我可能有一个块,看起来像:

<div class="talk">
  <a href="link">
    title
    <div class="info">
      subtext
   </div>
  </a>
</div>

其中,
链接、标题
子文本
是唯一更改的元素。作为一个程序员,这看起来像一个有三个参数的函数:
talk(link,title,subtext)
,我将通过保留一个单独的文本文件或包含所有条目的数据库和一个程序来实现这一点,该程序将数据和HTML格式“编译”为最终产品。事实上,这就是我现在用一个简单的python脚本和BeautifulSoup所做的。虽然我有一种感觉,有很多工具可以做这类事情,但是有太多的选择和系统,我甚至不知道我到底在寻找什么(Grunt、bower、Ruby on Rails、SASS、HMAL、Handlebar等等)。这不是一个建议请求,一个可接受的答案可能涉及任何框架,但我更喜欢简单而不是强大


做这件事的标准方法是什么?使用上面的代码块的最小工作示例是什么?

既然您要求提供一个实时示例,下面是一个PHP示例:

news_print.php 将从PHP脚本生成纯HTML

PHP引擎将从命令行而不是web服务器调用,其输出将存储在文件中而不是发送回浏览器,仅此而已


当然你会有一些不同。例如,如果脱机使用PHP,则所有特定于web的信息(如调用方URL、cookie等)都将不可用。另一方面,您将能够使用命令行参数和环境变量。

虽然可能是有保证的,但如果没有评论,否决和接近投票是没有建设性的。请帮助我改进这个问题,如果您认为不清楚,请要求进一步澄清。任何像PHP这样的服务器端语言都可以。这是生成冗余内容的最常见和最实用的方法。通常的方法是让web服务器运行脚本语言,但没有什么可以阻止您将大多数脚本语言用作脱机编译器。(顺便说一句,投票人不是我)。简短的回答是否定的。没有本地html支持来复制代码块。你需要一个预处理器。正如你所说,有很多选择。如果你不喜欢构建自己的代码,你也可以使用CMS。我推荐wordpress、expression engine或concrete5。@badAdviceGuy我明白了,我没有考虑渲染服务器端和客户端之间的区别。虽然不在SO的FAQ范围内,但您能推荐任何标准预处理器吗?这些建议可以让我自己搜索。谢谢,这是一个很好的例子,我可以学习和借鉴。欢迎来到激动人心的网络编程世界:)
function output_some_news ($link, $title, $subtext)
{
    echo
"<div class='talk'>
     <a href='$link'>
         $title
        <div class='info'>
            $subtext
       </div>
     </a>
 </div>";
}

// this is just for show. Usually the data come from a database or data file
$topics = array (
    array ("http://celebslife.com", "Breaking news", "Justin Bieber just grew a second neuron"),
    array ("http://nerds.org"     , "New CSS draft available", "We won't be forced to use idiotic lists to implement menus in a foreseeable future"));

function output_news ($topics)
{
    foreach ($topics as $topic)
    {
        output_some_news  ($topic[0], $topic[1], $topic[2]);
    }
}
<?php include 'news_print.php'; ?>

<div class='news'>
    <?php output_news($topics); ?>
</div>
C:\dev\php\news> php news.php > news.html