Docs: Filtering Posts with categories, tags, or other variables (#6399)
Merge pull request 6399
This commit is contained in:
parent
b11ad8ea77
commit
77bb9267ac
|
@ -78,7 +78,7 @@ digital assets along with your text content. While the syntax for linking to
|
||||||
these resources differs between Markdown and Textile, the problem of working
|
these resources differs between Markdown and Textile, the problem of working
|
||||||
out where to store these files in your site is something everyone will face.
|
out where to store these files in your site is something everyone will face.
|
||||||
|
|
||||||
There are a number of ways to include digital assets in Jekyll.
|
There are a number of ways to include digital assets in Jekyll.
|
||||||
One common solution is to create a folder in the root of the project directory
|
One common solution is to create a folder in the root of the project directory
|
||||||
called something like `assets` or `downloads`, into which any images, downloads
|
called something like `assets` or `downloads`, into which any images, downloads
|
||||||
or other resources are placed. Then, from within any post, they can be linked
|
or other resources are placed. Then, from within any post, they can be linked
|
||||||
|
@ -155,6 +155,51 @@ you wish to access the currently-rendering page/posts's variables (the
|
||||||
variables of the post/page that has the `for` loop in it), use the `page`
|
variables of the post/page that has the `for` loop in it), use the `page`
|
||||||
variable instead.
|
variable instead.
|
||||||
|
|
||||||
|
## Displaying post categories or tags
|
||||||
|
|
||||||
|
Hey, that's pretty neat, but what about showing just some of your posts that are
|
||||||
|
related to each other? For that you can use any of the [variables definable in
|
||||||
|
Front Matter](https://jekyllrb.com/docs/frontmatter/). In the "typical post"
|
||||||
|
section you can see how to define categories. Simply add the categories to your
|
||||||
|
Front Matter as a [yaml
|
||||||
|
list](https://en.wikipedia.org/wiki/YAML#Basic_components).
|
||||||
|
|
||||||
|
Now that your posts have a category or multiple categories, you can make a page
|
||||||
|
or a template displaying just the posts in those categories you specify. Here's
|
||||||
|
a basic example of how to create a list of posts from a specific category.
|
||||||
|
|
||||||
|
First, in the `_layouts` directory create a new file called `category.html` - in
|
||||||
|
that file put (at least) the following:
|
||||||
|
```html
|
||||||
|
---
|
||||||
|
layout: page
|
||||||
|
---
|
||||||
|
{% for post in site.categories[page.category] %}
|
||||||
|
<a href="{{ post.url | prepend: site.baseurl }}">
|
||||||
|
{{ post.title }}
|
||||||
|
</a>
|
||||||
|
<hr>
|
||||||
|
{% endfor %}
|
||||||
|
```
|
||||||
|
|
||||||
|
Next, in the root directory of your Jekyll install, create a new directory
|
||||||
|
called `category` and then create a file for each category you want to list. For
|
||||||
|
example, if you have a category `blog` then create a file in the new directory
|
||||||
|
called `blog.html` with at least
|
||||||
|
|
||||||
|
```text
|
||||||
|
---
|
||||||
|
layout: category
|
||||||
|
title: Blog
|
||||||
|
category: blog
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
In this case, the listing pages will be accessible at `{baseurl}/category/blog.html`
|
||||||
|
|
||||||
|
While this example is done with categories, you can easily extend your lists to
|
||||||
|
filter by tags or any other variable created with extensions.
|
||||||
|
|
||||||
## Post excerpts
|
## Post excerpts
|
||||||
|
|
||||||
Each post automatically takes the first block of text, from the beginning of
|
Each post automatically takes the first block of text, from the beginning of
|
||||||
|
|
Loading…
Reference in New Issue