raytaylorlin / hexo-theme-raytaylorism

一款Material Design风格的hexo主题
MIT License
472 stars 111 forks source link

加入Ctrl+F快捷键调出搜索框,建议加入wordcount插件 #103

Closed ibrucekong closed 6 years ago

ibrucekong commented 6 years ago

模拟一个场景:在博客中找东西时,当在页面滚动到底部,但是并没有找到时,又不想再返回最顶部,所以就可以考虑加一个全局搜索,以下代码是我的方法。 在themes\raytaylorism\layout_partial\plugin\main_javascript.ejs中加入以下代码,用来触发Ctrl+F全局搜索:

// 添加Ctrl+F快捷键调出搜索框
document.onkeydown = function(e) {
        var keyCode = e.keyCode || e.which || e.charCode;
        var ctrlKey = e.ctrlKey || e.metaKey;
        if(ctrlKey && keyCode == 70) {
            $('.menu-search.modal-trigger ').click();
            e.preventDefault();
            return false;
        }

        if (keyCode) return true;
}

另外,是不是可以考虑在博客中加入wordcount插件,对每一篇博客加上阅读时间建议、文章字数? 我本地在readtimes.ejs中加入

<span class="post-count"><%= wordcount(post.content) %></span>
<span class="post-count"><%= min2read(post.content) %></span>

但是一直报错:post is not defined.

注:统计总字数没有问题

<span class="post-count"><%= totalcount(site) %></span>
raytaylorlin commented 6 years ago

Ctrl+F是浏览器默认的搜索快捷键,不建议打破用户习惯,当然如果自用的话,你完全可以自行扩展功能

关于post未定义的问题,post是从上层传入的关于文章数据的变量,并非全局变量,可以在引用readtime.ejs的模板中看看有没有这个变量并将其传入

Mic-JasonTang commented 5 years ago

这样传入就好。<%- partial('post/word', {post: item}) %>