Skip to content

Commit

Permalink
Added support for multiple profiles in about page (alshedivat#1243)
Browse files Browse the repository at this point in the history
Addresses alshedivat#963.

Supports two setups: getting profile text from page content.

```markdown
---
layout: about
title: about
permalink: /
subtitle: <a href='#'>Affiliations</a>. Address. Contacts. Moto. Etc.

profiles:
  # if you want to include more than one profile, just replicate the following block
  # and create one content file for each profile inside _pages/
  - align: right
    image: prof_pic.jpg
    # content: about_einstein.md
    image_circular: false # crops the image to make it circular
    more_info: >
      <p>555 your office number</p>
      <p>123 your address street</p>
      <p>Your City, State 12345</p>

news: true  # includes a list of news items
selected_papers: true # includes a list of papers marked as "selected={true}"
social: true  # includes social icons at the bottom of the page
---

Write your biography here. Tell the world about yourself. Link to your favorite [subreddit](http://reddit.com). You can put a picture in, too. The code is already in, just name your picture `prof_pic.jpg` and put it in the `img/` folder.

Put your address / P.O. box / other info right below your picture. You can also disable any these elements by editing `profile` property of the YAML header of your `_pages/about.md`. Edit `_bibliography/papers.bib` and Jekyll will render your [publications page](/al-folio/publications/) automatically.

Link to your social media connections, too. This theme is set up to use [Font Awesome icons](http://fortawesome.github.io/Font-Awesome/) and [Academicons](https://jpswalsh.github.io/academicons/), like the ones below. Add your Facebook, Twitter, LinkedIn, Google Scholar, or just disable all of them.
```

Or getting profile text from `content` (useful when having multiple
profiles).

```markdown
---
layout: about
title: about
permalink: /
subtitle: <a href='#'>Affiliations</a>. Address. Contacts. Moto. Etc.

profiles:
  # if you want to include more than one profile, just replicate the following block
  # and create one content file for each profile inside _pages/
  - align: right
    image: prof_pic.jpg
    content: about_einstein.md
    image_circular: false # crops the image to make it circular
    more_info: >
      <p>555 your office number</p>
      <p>123 your address street</p>
      <p>Your City, State 12345</p>
  - align: left
    image: prof_pic.jpg
    content: about_einstein.md
    image_circular: false # crops the image to make it circular
    more_info: >
      <p>555 your office number</p>
      <p>123 your address street</p>
      <p>Your City, State 12345</p>

news: true  # includes a list of news items
selected_papers: true # includes a list of papers marked as "selected={true}"
social: true  # includes social icons at the bottom of the page
---
```

Which looks like this:

![image](https://user-images.githubusercontent.com/31376482/223251956-aec09f92-55c4-4a17-8ab6-0b30da0970cc.png)

---------

Signed-off-by: George Araújo <[email protected]>
Signed-off-by: George Araujo <[email protected]>
  • Loading branch information
george-gca authored and hgchen committed Dec 2, 2023
1 parent 2c0c73d commit d65a7dd
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 4 deletions.
6 changes: 3 additions & 3 deletions _layouts/about.html
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ <h1 class="post-title">
alt=page.profile.image
cache_bust=true -%}
{% endif -%}
{%- if page.profile.address %}
<div class="address">
{{ page.profile.address }}
{%- if page.profile.more_info %}
<div class="more-info">
{{ page.profile.more_info }}
</div>
{%- endif %}
</div>
Expand Down
49 changes: 49 additions & 0 deletions _layouts/profiles.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
layout: default
---

<!-- about.html -->
<div class="post">

<article>
{% if page.profiles -%}
{% for profile in page.profiles %}
{% unless forloop.first %}
<hr>
{% endunless %}
<div class="profile float-{%- if profile.align == 'left' -%}left{%- else -%}right{%- endif -%}">
{%- if profile.image %}
{%- assign profile_image_path = profile.image | prepend: 'assets/img/' -%}

{% if profile.image_circular %}
{%- assign profile_image_class = "img-fluid z-depth-1 rounded-circle" -%}
{% else %}
{%- assign profile_image_class = "img-fluid z-depth-1 rounded" -%}
{% endif %}

{% include figure.html
path=profile_image_path
class=profile_image_class
alt=profile.image -%}
{% endif -%}
{%- if profile.more_info %}
<div class="more-info">
{{ profile.more_info }}
</div>
{%- endif %}
</div>

<div class="clearfix">
{% if profile.content -%}
{% capture profile_content %}{%- include_relative {{ profile.content }} %}{% endcapture %}
{{ profile_content | markdownify }}
{%- else -%}
{{ content }}
{%- endif %}
</div>

{% endfor %}
{%- endif %}
</article>

</div>
5 changes: 5 additions & 0 deletions _pages/about_einstein.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Write your biography here. Tell the world about yourself. Link to your favorite [subreddit](http://reddit.com). You can put a picture in, too. The code is already in, just name your picture `prof_pic.jpg` and put it in the `img/` folder.

Put your address / P.O. box / other info right below your picture. You can also disable any these elements by editing `profile` property of the YAML header of your `_pages/about.md`. Edit `_bibliography/papers.bib` and Jekyll will render your [publications page](/al-folio/publications/) automatically.

Link to your social media connections, too. This theme is set up to use [Font Awesome icons](http://fortawesome.github.io/Font-Awesome/) and [Academicons](https://jpswalsh.github.io/academicons/), like the ones below. Add your Facebook, Twitter, LinkedIn, Google Scholar, or just disable all of them.
28 changes: 28 additions & 0 deletions _pages/profiles.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
layout: profiles
title: people
permalink: /people/
subtitle: <a href='#'>Affiliations</a>. Address. Contacts. Moto. Etc.
nav: true
nav_order: 6

profiles:
# if you want to include more than one profile, just replicate the following block
# and create one content file for each profile inside _pages/
- align: right
image: prof_pic.jpg
content: about_einstein.md
image_circular: false # crops the image to make it circular
more_info: >
<p>555 your office number</p>
<p>123 your address street</p>
<p>Your City, State 12345</p>
- align: left
image: prof_pic.jpg
content: about_einstein.md
image_circular: false # crops the image to make it circular
more_info: >
<p>555 your office number</p>
<p>123 your address street</p>
<p>Your City, State 12345</p>
---
2 changes: 1 addition & 1 deletion _sass/_base.scss
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ blockquote {
.profile {
width: 100%;

.address {
.more-info {
margin-bottom: 5px;
margin-top: 5px;
font-family: monospace;
Expand Down

0 comments on commit d65a7dd

Please sign in to comment.