我想将以下内容添加到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时,都不会添加这些行。
我做错了什么?
发布于 2016-07-12 07:51:12
在$git_repo/templates中,创建一个名为page.tmpl的文件,它是/usr/share/ikiwiki/templates/page.tmpl的副本--或者该文件在本地系统中的位置。
然后,您可以修改$git_repo/templates/page.tmpl以添加您想要的任何内容。
发布于 2019-08-31 02:42:28
我使用插件将开图数据添加到所有页面的HTML上:
#!/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/ Template中;可以使用templatedir设置首先搜索另一个目录。定制的模板文件也可以放在wiki源文件的“template /”目录中--放在那里的文件覆盖了templatedir中的模板/目录。
确保正在修改的page.tmpl文件存储在模板目录下。请注意wiki.setup文件上的此选项:
# additional directory to search for template files
templatedir: /usr/share/ikiwiki/templateshttps://stackoverflow.com/questions/37857449
复制相似问题