1

我想将以下内容添加到我的 ikiwiki 中所有 HTML 页面的所有标题中。

<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Tangerine">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Romanesco">
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,800,400italic,600italic,700italic' rel='stylesheet' type='text/css'/>
<link href='https://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,600,700,800,400italic,600italic,700italic' rel='stylesheet' type='text/css'/>
<link href='https://fonts.googleapis.com/css?family=PT+Sans:400,600,700,800,400italic,600italic,700italic' rel='stylesheet' type='text/css'/>

我尝试在自定义中添加这些行,templates/page.tmpl.mdwn但每次部署 wiki 时,都不会添加这些行。

我究竟做错了什么?

4

2 回答 2

1

$git_repo/templates创建一个名为的文件,该文件page.tmpl/usr/share/ikiwiki/templates/page.tmpl-- 或该文件在本地系统中的任何位置。

然后,您可以修改$git_repo/templates/page.tmpl以添加您想要的任何内容。

于 2016-07-12T07:51:12.687 回答
0

我在 HTML 上添加了opengraph数据使用插件的所有页面:

#!/usr/bin/perl

package IkiWiki::Plugin::opengraph;

use warnings;
use strict;
use IkiWiki 3.00;

our $VERSION = '0.1.4';

sub import {
    hook(type => "pagetemplate", id => "opengraph", call => \&opengraph_tags);
}

sub opengraph_tags {
    my %args = @_;
    ${args}{template}->param('OPENGRAPH' => 1);
    my ${title} = pagetitle(${args}{destpage});
    my ${url} = urlto(${args}{destpage}, 'index', '1');
    my ${image} = urlto('logo.png', 'index', '1');
    my ${type} = pagetype(${args}{destpage});
    my ${opengraph_title} = ${title} || ${config}{'opengraph_title'} || "ikiwiki";
    my ${opengraph_description} = ${config}{'opengraph_description'} || "ikiwiki";
    my ${opengraph_type} = ${type} || ${config}{'opengraph_type'} || "website";
    my ${opengraph_image} = ${image} || ${config}{'opengraph_image'} || "http://ikiwiki.info/logo/ikiwiki.png";
    my ${opengraph_url} = ${url} || ${config}{'opengraph_url'} || "http://ikiwiki.info/";
    my ${opengraph_tags} =<<EOF;
<meta property="og:title" content="${opengraph_title}">
\t<meta property="og:description" content="${opengraph_description}"/>
\t<meta property="og:type" content="${opengraph_type}">
\t<meta property="og:image" content="${opengraph_image}">
\t<meta property="og:url" content="${opengraph_url}">
EOF
    ${args}{template}->param('OPENGRAPH_TAGS' => ${opengraph_tags})
}

1;

然后在page.tmpl我添加了:

<TMPL_IF OPENGRAPH>
<TMPL_VAR OPENGRAPH_TAGS>
</TMPL_IF>

您可以使用相同的方法将元素动态添加到 HTML页面的部分,或者您可以做一个更简单但更难维护的方法,即直接在page.tmpl文件上编写 HTML。


关于 page.tmpl

文档

模板文件与模板页面的不同之处在于它们的扩展名为 .tmpl。Ikiwiki 广泛使用模板文件来生成 html。它们可以包含通常不允许出现在 wiki 页面上的 html。

模板文件默认位于 /usr/share/ikiwiki/templates;templatedir 设置可用于首先搜索另一个目录。自定义模板文件也可以放在 wiki 源代码的“templates/”目录中——放置在那里的文件会覆盖 templatedir 中的文件。

确保您正在修改的page.tmpl文件存储在模板目录下。在wiki.setup文件中查找此选项:

# additional directory to search for template files
templatedir: /usr/share/ikiwiki/templates
于 2019-08-31T02:42:28.583 回答