美文网首页
(收录)Hexo Landscape主题的字体和JS库优化

(收录)Hexo Landscape主题的字体和JS库优化

作者: 偷天神猫 | 来源:发表于2015-10-21 09:38 被阅读3535次

    博文原地址:The Bloom of Youth | 锦瑟华年

    Hexo博客系统的作者来自台湾,因此在这个系统中也使用了一些不符合大陆实际情况的服务,除了留言板、分享按钮等无关大雅的东西之外,直接影响网站打开速度和呈现效果的东西就是来自Google的字体和JavaScript库了,由于Google在大陆基本处于被阻断的状态,所以我们有必要对其中涉及Google服务的地方进行替换。另外,如果使用Windows系统访问,会发现页面上的字体默认为宋体,丑陋的字体也严重影响了访客浏览的体验,我们也需要对跨平台的字体呈现效果进行优化。

    Hexo的Landscape主题对Google的引用主要有2个,第一是使用了在Google上托管的jQuery库,第二是使用了Google的Source Code Pro字体。在Google被封锁后,大部分网友推荐使用360的CDN,也就是useso.com的库,但我经过测试后发现360的CDN在国外的访问速度极慢。网友之所以推荐360的CDN,是因为它可以简单的直接替换Google的服务,只需要改一下域名,URL的其余部分都无需改动。而我发现提供jQuery的国内互联网厂商比比皆是,而提供Google Code Pro字体的除了360还没有找到。因此我希望能够将这两个问题分别解决,而不是用useso一替换了之。

    jQuery库的优化

    国内提供jQuery的互联网公司很多,大家耳熟能详的互联网公司基本都免费提供了常用JS库的CDN加速服务。在我的测试中,百度的服务的速度在国内国外都比较理想,因此这里将jQuery替换成百度的。另外,我还希望在百度的服务暂时不可用时,能够以网站上自带的jQuery作为备份。

    我们要修改的是themes/landscape/layout/_partial/after-footer.ejs
    这个文件,将17行的

    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    

    替换为如下代码:

    <script src="http://apps.bdimg.com/libs/jquery/2.0.3/jquery.min.js"></script>
    <script type="text/javascript">
    //<![CDATA[
    if (typeof jQuery == 'undefined') {
    document.write(unescape("%3Cscript src='/js/jquery-2.0.3.min.js' type='text/javascript'%3E%3C/script%3E"));
    }
    // ]]>
    </script>
    

    这里不但将Google的jQuery替换成了百度的,随后还进行了一个判断,如果获取百度的jQuery失败,则使用本网站自己的jQuery。为了让这段代码有效,我们要去jQuery官方下载合适版本的jQuery并将其放到themes/landscape/source/js/目录下,我将其命名为jquery-2.0.3.min.js。

    还有一点需要特别注意,那就是jQuery这个文件在hexo生产博客时会被解析,因此一定要将jQuery文件开头处的//@ sourceMappingURL=jquery-2.0.3.min.map这一行代码删去,否则会导致博客无法生成。

    跨平台字体优化

    为了能在各个平台上都显示令人满意的字体,我们要修改CSS文件中的字体设置,列出多个备选的字体,操作系统会依次尝试,使用系统中已安装的字体。我们要修改的是
    themes/landscape/source/css/_variables.styl这一文件,将其中第22行

    font-sans = "Helvetica Neue", Helvetica, Arial, sans-serif
    

    改成如下内容:

    font-sans = "Helvetica Neue", "Helvetica", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans CN", "WenQuanYi Micro Hei", Arial, sans-serif
    

    其中海维提卡(Helvetica)、Arial是英文字体,前者一般存在于苹果电脑和移动设备上,后者一般存在于Windows系统中。冬青黑体(Hiragino Sans GB)、思源黑体(Source Han Sans CN)、文泉驿米黑(WenQuanYi Micro Hei)是中文字体,冬青黑体从OS X 10.6开始集成在苹果系统中,文泉驿米黑在Linux的各大发行版中均较为常见,而思源黑体是近期Google和Adobe合作推出的一款开源字体,很多电脑上也安装了这一字体。这样一来,在绝大部分操作系统中就可以显示美观的字体了。

    代码等宽字体优化

    Hexo默认的等宽字体是Google的Source Code Pro,我认为为了一个等宽字体去牺牲网站的访问速度实在是有点不值得,而且系统中也会提供一些较为美观的等宽字体。所以相比于绞尽脑汁去获取Google的等宽字体,不如弃用这个在国内残念的字体,然后用与之前类似的方法来列出备选的系统自带字体。要编辑的文件同样是themes/landscape/source/css/_variables.styl这一文件,将其中第24行

    font-mono = "Source Code Pro", Consolas, Monaco, Menlo, Consolas, monospace
    

    改成如下内容:

    font-mono = Consolas, Monaco, Menlo, monospace
    

    最后我们要删除引用Google字体的代码,要编辑的文件是themes/landscape/layout/_partial/after-footer.ejs,将其中的下列代码删除。

    <link href="http://fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
    

    重新生成博客,一切都和谐了。

    相关文章

      网友评论

          本文标题:(收录)Hexo Landscape主题的字体和JS库优化

          本文链接:https://www.haomeiwen.com/subject/cixthttx.html