feat: add multiple authors to a post (#677)

Resolves #675
This commit is contained in:
Michael Tan 2022-09-14 05:05:01 +08:00 committed by GitHub
parent b288587c1c
commit f1d9e99bc0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 16 deletions

View file

@ -57,24 +57,24 @@ tail_includes:
{% endif %} {% endif %}
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<!-- author --> <!-- author(s) -->
<span> <span>
{% capture author_name %}{{ site.data.authors[page.author].name | default: site.social.name }}{% endcapture %}
{% assign author_link = nil %}
{% if page.author %} {% if page.author %}
{% assign author_link = site.data.authors[page.author].url %} {% assign authors = page.author %}
{% elsif author_name == site.social.name %} {% elsif page.authors %}
{% assign author_link = site.social.links[0] %} {% assign authors = page.authors %}
{% endif %} {% endif %}
{{ site.data.locales[lang].post.written_by }} {{ site.data.locales[lang].post.written_by }}
<em> <em>
{% if author_link %} {% if authors %}
<a href="{{ author_link }}">{{ author_name }}</a> {% for author in authors %}
<a href="{{ site.data.authors[author].url }}">{{ site.data.authors[author].name }}</a>
{% unless forloop.last %}</em>, <em>{% endunless %}
{% endfor %}
{% else %} {% else %}
{{ author_name }} <a href="{{ site.social.links[0] }}">{{ site.social.name }}</a>
{% endif %} {% endif %}
</em> </em>
</span> </span>

View file

@ -48,7 +48,7 @@ tags: [bee]
The author information of the post usually does not need to be filled in the _Front Matter_ , they will be obtained from variables `social.name` and the first entry of `social.links` of the configuration file by default. But you can also override it as follows: The author information of the post usually does not need to be filled in the _Front Matter_ , they will be obtained from variables `social.name` and the first entry of `social.links` of the configuration file by default. But you can also override it as follows:
Add author information in `_data/authors.yml` (If your website doesn't have this file, don't hesitate to create one.) Adding author information in `_data/authors.yml` (If your website doesn't have this file, don't hesitate to create one).
```yaml ```yaml
<author_id>: <author_id>:
@ -58,15 +58,21 @@ Add author information in `_data/authors.yml` (If your website doesn't have this
``` ```
{: file="_data/authors.yml" } {: file="_data/authors.yml" }
And then set up the custom author in the post's YAML block:
And then use `author` to specify a single entry or `authors` to specify multiple entries:
```yaml ```yaml
--- ---
author: <author_id> author: <author_id> # for single entry
# or
authors: [<author1_id>, <author2_id>] # for multiple entries
--- ---
``` ```
> Another benefit of reading the author information from the file `_data/authors.yml`{: .filepath } is that the page will have the meta tag `twitter:creator`, which enriches the [Twitter Cards](https://developer.twitter.com/en/docs/twitter-for-websites/cards/guides/getting-started#card-and-content-attribution) and is good for SEO.
Having said that, the key `author` can also identify multiple entries.
> The benefit of reading the author information from the file `_data/authors.yml`{: .filepath } is that the page will have the meta tag `twitter:creator`, which enriches the [Twitter Cards](https://developer.twitter.com/en/docs/twitter-for-websites/cards/guides/getting-started#card-and-content-attribution) and is good for SEO.
{: .prompt-info } {: .prompt-info }
## Table of Contents ## Table of Contents