文章计数和站点计数

在 MarkEditor 右下角是有文章计数的。

那么在网站上如何调用计数接口,最好能够分别将文章、分类文章、标签文章、站点总文章计数分别都算出来的。

是否有什么接口可以使用?

2017-09-23 12:00 from Willin Wang
Comments
Write a Comment
  • @Willin Wang, https://blog.shuiba.co/bitcron-count-code

  • 顺带问一下@Hepo ,有没计算字数的接口?

  • 我说的就是文章字数的统计

  • 柚子 reply

    同问计算日志字数的显示接口!!!

  • ## Input Pug

    ```pug

    span= '你好'.match(new RegExp("\[^\x00-\xff\]","g")) || []).length

    ```

    ## Expected HTML

    ```html

    <span>2</span>

    ```

    ## Actual HTML

    Error:

    error message: expected token ',', got 'RegExp'

    ## Additional Comments

    <!-- Please give us any additional details we'll need in order to understand the issue here -->

    also tried:

    ```js

    .match(/[^\x00-\xff]/g)

    .match(/\[^\x00-\xff\]/g)

    .match(new RegExp("[^\x00-\xff]","g")

    ```

    all cannot work

  • python 语法:

    no filter named 'regex_replace'

    <span>{{ 'localhost:80' | regex_replace('^(?P<host>.+):(?P<port>\\d+)$', '\\g<host>, \\g<port>') }}</span>

  • Hepo reply

    @Willin Wang, @水八口 @柚子

    增加了字符类型数据的 words 这个属性, 具体文档 https://api.bitcron.com/read/basic#toc_4

    比如统计一篇文章的字数 post.raw_content.words

    @Willin Wang, span= '你好'.match(new RegExp("\[^\x00-\xff\]","g")) || []).length 这个语法在 Bitcron 中不行的, 我们的基本环境是 Python,不是 JS or Node... regex_replace 虽然是 Jinja2 的语法,但这个 filter 也不存在于 API 系统中。

    比较简单的方法就是 span= '你好'.length 或者比较下 span='你好 hello world'.length 与 span= '你好 hello world'.words

    :)

    • @Hepo 谢谢!

      请问字数统计的上限是多少?大概是我的字数太多(?),计算出来的值是-1。有没有可能转变为30.5K字这样的格式?谢谢!

      https://blog.shuiba.co/

      文字总数在页脚

      • Hepo reply

        @水八口 当然会有限制,以免性能问题出现,照理说不可能碰到这种情况。

        呃, {{'{0:,}'.format((d.get_data(types="post", return_count=false, with_page=false,fields=["raw_content"],limit=99999)|map(attribute="raw_content")|join('')).words)}}字

        这是 非常 非常 非常 非常 非常 错误的处理方式,为了获得一个并不是那么重要的属性,页面每一次渲染就将网站内的几乎所有数据都遍历了一次,如果不是 Bitcron 系统的cache 机制, 有可能直接在没有完成渲染的时候被系统直接 timeout....

        btw, 另外 site 和 post 上增加了两个属性 text_words & text_length, 可以直接调用。 :)

      • Hepo reply

        @水八口 换句话说, span= site.text_words 类似的调用就可以了。 :)

        • @Hepo 明白了,谢谢!

        • @Hepo site.text_words可以用,但是post.text_words不行,post.raw_content.words可以。如果是一个意思的话,留一个就好了吧?

          网址:https://theme-ordinary.bitcron.com/

          侧边栏字数显示为0字。

          代码:span= ('{0:,}'.format(post.text_words or 0)) + '字'