添加字体链接到ikiwiki模板

时间:2016-06-16 11:09:29

标签: templates ikiwiki

我想将以下内容添加到我的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时,都不会添加这些行。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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 部分中动态添加元素,或者您可以采用更简单的方法,但难以维护,这很难直接在上编写HTML page.tmpl 文件。


关于page.tmpl

来自docs

  

模板文件不同于模板页面,因为它们具有   扩展名.tmpl。 Ikiwiki广泛使用模板文件来   生成html。它们可以包含通常不会   允许在Wiki页面上使用。

     

默认情况下,模板文件位于/ usr / share / ikiwiki / templates中。   templatedir设置可用于使另一个目录成为   首先搜索。定制的模板文件也可以放在里面   Wiki来源中的“ templates /”目录-放置在其中的文件   覆盖templatedir中的内容。

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

# additional directory to search for template files
templatedir: /usr/share/ikiwiki/templates