article-flag

文章

药!药!切克闹!

这是一篇并不存在的文章,说不存在,主要是因为它只作为一篇 flag,这篇文章是我在构建博客中应用一个小 hack 的产物,如有雷同,不胜荣幸。

为什么要采用这个 hack

首先声明:hack 不安全,应用需谨慎

起因

想着遍历一次,就遍历出每年的文章数(当然遍历两次很容易实现)。但是,我想到的所有不应用 hack 的方法,都无法实现,遂,退而求其次,用 hack 吧。

可乘之机

发现每次遍历文章时,都是按时间顺序、规则遍历的(总是从最新的文章开始),这就有了可乘之机。

<ul>
{% capture post_year_now_head %}{{ site.time | date: '%Y' }}{% endcapture %}
{% assign per_year_total = 0 %}
{% for post in site.categories.articles %}
    {% capture post_year_article_head %}{{ post.date | date: '%Y' }}{% endcapture %}
    {% if post_year_now_head == post_year_article_head %}
        {% capture per_year_total %}{{ per_year_total | plus:1 }}{% endcapture %}
    {% else %}        
        <li>
            <a class="pointer" href="#{{ post_year_now_head }}">
                <span>{{ post_year_now_head }}</span>
                <span>({{ per_year_total }})</span>
            </a>
        </li>
        {% assign post_year_now_head = post_year_article_head %}
        {% assign per_year_total =1 %}
    {% endif %}
{% endfor %}
</ul>

不让liquid运行,包裹其中 {\% raw %} “加 "\" ,防止运行” {\% endraw %}

诞生

但这并不完结,发现最后一年的文章是遍历不出来的,这就需要做一篇很久以前的文章则作为 hack flag,于是这篇文章就诞生了。

PHP随机显示图片(目录不限深度) »

留下一句吧