如何获得Jekyll Bootstrap的绝对路径

时间:2012-04-11 05:52:11

标签: twitter-bootstrap jekyll liquid

我尝试将facebook共享链接添加到jekyll引导程序页面,但是当添加FB将在我使用的{{ HOME_PATH }}共享中使用的href时。这结果是/的相对路径(但是FB不理解)。有没有人知道如何获得绝对路径而不必硬编码?

提供/

的代码
<a name="fb_share" type="button"
           share_url="{{ HOME_PATH }}">Share this event on Facebook</a>

1 个答案:

答案 0 :(得分:6)

不幸的是,不是通过杰基尔。 Jekyll是一个静态站点生成器,当它运行时,它生成整个站点为HTML / CSS / etc页面,没有服务器端动态内容。

然而,有一些解决方案:硬编码网址,但只在一个地方,所以很容易改变;或者,使用javascript将其设置为客户端。

Pure Jekyll / Liquid

添加一行

host: example.com

_config.yml,然后像

一样引用它
<a name="fb_share" type="button"
           share_url="http://{{ site.host }}/blah">Share this event on Facebook</a>

的Javascript

如果您正在使用jQuery,请将其放在启动脚本中(显然您可以在没有jQuery的情况下执行此操作,但这说明了该技术):

$('[name=fb_share]').each(function() {
    var $this = $(this);
    $this.attr('share_url', 
               $this.attr('share_url').replace('HOME_PATH', 
                                               document.location.host));
}

并拥有类似

的页面
<a name="fb_share" type="button"
           share_url="http://HOME_PATH/blah">Share this event on Facebook</a>

(JS解决方案可能需要一些技巧(如延迟加载Facebook JS),具体取决于Facebook提供的脚本何时/如何运行。)