2016-04-06 151 views
2

我想为jekyll呈现不同的桌面和移动html。我需要这样的东西:检测用户代理jekyll

{% if is_mobile %} 
    <!-- mobile html --> 
{% else %} 
    <!-- desktop html --> 
(% endif %} 

很显然,我可以只使用JavaScript在浏览器中,以确定这一点,但我不希望渲染手机额外的HTML。

也许我可以创建一个jekyll插件并注册液体标签,但是如何才能访问用户代理?无论如何,我可以访问HTTP请求参数吗?

+0

Jekyll是一个静态网站生成器 - 所以用户只能看到生成的页面没有FrontMatter或液体模板或任何 - 只有服务的输出。您必须使用JavaScript,因为有人已经在下面回答了。 – michaPau

回答

0

由于您使用的是Jekyll,我猜你没有使用后端,这通常是你如何处理用户代理。

也许你最好的办法是使用简单的Javascript访问navigator.userAgent变量。

此处了解详情:Getting the User Agent with JavaScript

0

在你的布局,你可以使用:

<div class="mobile">{% include mobile.html %}</div> 
<div class="desktop">{% include desktop.html %}</div> 

那么你应该让JS决定显示哪一个,因为液体具有对用户代理的访问权限。