Docpad:生成php输出文件

时间:2014-05-17 11:16:42

标签: docpad

我使用Docpad为标准的LAMP托管网站生成静态文件。我想实现密码访问其中一个页面,所以我的目的是使用带有this password_protect脚本的php页面。

我已经设置了我的docpad&#39; layout&#39;要将<?php include...添加到相关网页,并使用.php作为特定文档的后缀,但我得到的输出是.html

我对这些文档的看法是,Docpad认为php是一个预处理器,而不是输出类型,所以我可以轻松做些什么来节省自己在部署时手动重命名文件?

2 个答案:

答案 0 :(得分:1)

是的,这有点奇怪。我认为basename之后的扩展名是输出扩展名。这为我修好了。将其放在docpad config file中的事件或plugin中的方法中。

  writeBefore: (opts) ->
    {collection, templateData} = opts
    collection.forEach (file,index) ->
      ext = file.get('extensions')[0]
      if ext == 'php'
        outDirPath = file.get('outDirPath') 
        basename = file.get('basename')
        outFilename = basename + '.php'
        file.set('outPath', outDirPath + '/' + outFilename)

答案 1 :(得分:0)

您使用的是DocPad布局吗?似乎(至少现在)布局扩展优先于资源扩展。也许使用带有php扩展的布局可以解决问题。

如何为多个分机使用一种布局

如果您不想复制布局文件(这会破坏布局的目的),您可以创建一个指向父布局的符号链接,就像这样(在List<List<I>>文件夹中的linux上):< / p>

List<List<I>> collections before:
    -List<A>
    -List<C>
    -List<B>

List<List<I>> collections after:
    -List<B>  // B has 0 dependency to B or C.
    -List<A>  // A has 1 dependency to B.
    -List<C>  // C has 1 dependency to A.

不要忘记事后更新php文件前端的layout属性!