Posts

posts 是一个比较特殊的 Namespace,本质上是 get_data 函数获得的数据,为了便于实现博客,单独把 posts 作为一个独立的 Namespace。

直接调用

posts作为一个 namespace 存在之外,也可以直接被调用。示例:

for post in posts
    h2= post.title
    .content= post.content

此时返回的数据是 post 类型的 records,并且是按照时间倒序的。另外,视具体的 URL, posts 对应的含义如下:

  1. 如果默认 URL 带 GET 方式的参数s 的,则认为是以其关键词搜索的文章列表 (尚未支持);
  2. 如果URL 以/category/开始,则对应当前路径下的目录的子文章列表;
  3. 如果URL以/tags//tag/开始,则以其Tag 对应的文章列表。

post

Posts 作为一个列表,里面是由单个的 post 组成的,如果访问 posts.post 或者 post 的时候,自动回尝试根据当前页面的 URL 去匹配一个 post 类型的 record。


get_recent

作用: 获得最近发布的文章列表,该函数调用不会产生分页对象。
返回值类型: list
接收参数: <limit>
示例:

recent_posts = posts.get_recent(10)
recent_posts = posts.get_recent(limit=10)

get_recent_posts

get_recent

get_posts_by_tag

作用: 可以根据文章作者定义的文章 tag 获得文章列表,不会产生分页对象,返回记录数最多不超过 500。
返回值类型: list
接收参数: <tag, sort_by='-date'>

get_one

作用: 获得单篇日志
接收参数: path or url
返回类型: post or None
示例:

my_post = posts.get_one(path="hello.md")
my_post2 = posts.get_one(url="hello")

注意: 这里的url 是指文章作者指定的,而不是系统生成的(默认是以/post/开头)。

find_one

get_one

get_tag_url

传入一个参数 tag,获得对应的 tag 的 URL,一般用来构建 tag 页面的链接。

for tag in post.tags
    a(href=posts.get_tag_url(tag))= tag

如果需要,也可以自己来构建 tag 对应的 URL。

search (尚未支持)

作用: 可以进行全文检索,并获得对应的文章列表,并且会产生分页对象,名称为“search_posts”。
接受参数: <keywords, limit=30>
返回类型: list
示例:

my_posts = posts.search("名字")
my_posts2 = posts.search(keywords="Hello", limit=100)

注意: limit 可以不传入,默认为30,keywords 不可为空,否则返回一个空 list。

search_in_html

作用: 生成一个HTML的片段,将搜索的keyword作为GET的参数s传递,一般默认可以实现网站的全文检索。
接收参数:

  • base_url: 网站根域,也就是构建https://yourdomain.com/<base_url>?s=<keyword>这个URL用的,默认是/
  • under: 搜索针对的目录路径

set_min_per_page

可以限定获取文章列表时,保证每页数最小值;接受一个整数型参数。

categories

作用: 一般用作获取文章的分类列表
返回数据类型: list,每个元素为 Category 对象
规则对应: 获得根目录下1-2级的文件夹,并且每个文件夹需保证其所包含的文章数>=1.

注意: 最多返回300条数据,且不产生分类对象;比较复杂的场景,可以自行使用d.get_data构建数据获取的逻辑。

category

作用: 根据当前 URL,匹配到对应的文件夹目录
返回数据类型: Category对象None
示例说明: 当前 url 为 /xxx/hello, 忽略/xxx/第一层,取后续的路径去匹配一个文件夹。

cat = posts.cateogry
// 如果有一个目录名为`hello`, 则 cat 是一个文件夹数据对象,反之则是 None 值

next_one

(按照文章日期,推算发表日期晚于当前文章的上下文对象的)下一篇文章

previous_one

(按照文章日期,推算发表日期晚于当前文章的上下文对象的)上一篇文章

pre_one

previous_one