Author/speakers can link to member page
If author/speaker is a member's name (or short name, or alias), a link to the members' page will be set.
This commit is contained in:
parent
f85edcc5f0
commit
306155b571
10 changed files with 39 additions and 9 deletions
|
|
@ -5,7 +5,7 @@ kind: page
|
|||
<p>Hier finden sich ein paar Infos zu einigen unserer Mitglieder.</p>
|
||||
|
||||
<% @items.select { |i| i[:kind] == 'member' }.each do |member| %>
|
||||
<h2><a id="<%= member[:title] %>"><%= member[:title] %></a></h2>
|
||||
<h2 id="<%= html_escape(member_short_name(member)) %>"><%= member[:title] %></h2>
|
||||
<ul>
|
||||
<% if member[:pgp] %>
|
||||
<li>PGP-Key: <a href="https://sks-keyservers.net/pks/lookup?op=get&search=<%= member[:pgp] %>"><%= member[:pgp] %></a></li>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
-----
|
||||
title: Leibi (Stefan Leibfarth)
|
||||
title: Stefan 'Leibi' Leibfarth
|
||||
shortName: Leibi
|
||||
aliases:
|
||||
- Stefan Leibfarth (Leibi)
|
||||
kind: member
|
||||
pgp: "0xE5CEBB2AC1354426"
|
||||
url: https://stefan.leibfarth.org/
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
-----
|
||||
title: Princess
|
||||
title: Andrea 'Princess' Wardzichowski
|
||||
shortName: Princess
|
||||
kind: member
|
||||
pgp: "0x9E5343DB80CE19A7"
|
||||
url: http://blog.querulantin.de/
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
-----
|
||||
title: Rince
|
||||
title: Hanno 'Rince' Wagner
|
||||
shortName: Rince
|
||||
kind: member
|
||||
pgp: "0xA75723A176CDE3460449956A7C3192F14CF2D85A"
|
||||
url: http://blog.rince.de/
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
-----
|
||||
title: Skyr
|
||||
title: Stefan 'Skyr' Schlott
|
||||
shortName: Skyr
|
||||
aliases:
|
||||
- Stefan Schlott
|
||||
kind: member
|
||||
pgp: "0xFDF44AE875FD7074"
|
||||
url: http://stefan.ploing.de/
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ Hier die letzten Postings ihrer privaten Blogs (die Links führen direkt auf die
|
|||
<h2 itemprop="name"><a itemprop="url" href="<%= post[:url] %>"><%= post[:title] %></a></h2>
|
||||
<ul class="unstyled inline">
|
||||
<li><i class="fas fa-calendar"></i> <time itemprop="dateCreated" datetime="<%= post[:date].strftime("%Y-%m-%d") %>"><%= post[:date].strftime("%d.%m.%Y") %></time></li>
|
||||
<li><i class="fas fa-pencil"></i> <%= post[:user] %></li>
|
||||
<li><i class="fas fa-pencil"></i> <%= member_link(post[:user]) %></li>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<p>
|
||||
<ul class="unstyled inline">
|
||||
<li><i class="fas fa-calendar-alt" title="Datum"></i> <time itemprop="dateCreated" datetime="<%= @item[:created_at].strftime("%Y-%m-%d") %>"><%= @item[:created_at].strftime("%d.%m.%Y") %></time></li>
|
||||
<% if @item[:author] %><li><i class="fas fa-pencil-alt" title="Autor"></i> <%= @item[:author] %></li><% end %>
|
||||
<% if @item[:author] %><li><i class="fas fa-pencil-alt" title="Autor"></i> <%= member_link(@item[:author], false) %></li><% end %>
|
||||
<% if @item[:refers_to] %><li><i class="fas fa-cogs" title="Zugehöriges Projekt"></i> <a href="<%= @items[sanitize_path(@item[:refers_to])].path() %>"><%= @items[sanitize_path(@item[:refers_to])][:title] %></a></li><% end %>
|
||||
<li><i class="fas fa-bookmark" title="Permalink"></i> <a itemprop="url" href="<%= item.path() %>">Permalink</a></li>
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<ul>
|
||||
<% @item[:speakers].each do |speaker| %>
|
||||
<li itemprop="performer" itemscope itemtype="http://schema.org/Person">
|
||||
<span itemprop="name"><%= speaker[:name] %></span><% if speaker[:affiliation]%> (<%= speaker[:affiliation] %>)<% end %>
|
||||
<span itemprop="name"><%= member_link(speaker[:name], false) %></span><% if speaker[:affiliation]%> (<%= speaker[:affiliation] %>)<% end %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<p>
|
||||
<ul class="unstyled inline">
|
||||
<li><i class="fas fa-calendar-alt"></i> <time itemprop="dateCreated" datetime="<%= @item[:created_at].strftime("%Y-%m-%d") %>"><%= @item[:created_at].strftime("%d.%m.%Y") %></time></li>
|
||||
<% if @item[:author] %><li><i class="fas fa-pencil-alt"></i> <%= @item[:author] %></li><% end %>
|
||||
<% if @item[:author] %><li><i class="fas fa-pencil-alt"></i> <%= member_link(@item[:author]) %></li><% end %>
|
||||
<% if @item[:refers_to] %><li><i class="fas fa-cogs"></i> <a href="<%= @items[sanitize_path(@item[:refers_to])].path() %>"><%= @items[sanitize_path(@item[:refers_to])][:title] %></a></li><% end %>
|
||||
<li><i class="fas fa-bookmark"></i> <a itemprop="url" href="<%= item.path() %>">Permalink</a></li>
|
||||
</ul>
|
||||
|
|
|
|||
22
lib/members.rb
Normal file
22
lib/members.rb
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
def find_member(name)
|
||||
name = name.downcase
|
||||
return items.find { |i| i[:kind] == 'member' and (
|
||||
i[:title].downcase == name or
|
||||
(i[:shortName] and i[:shortName].downcase == name) or
|
||||
(i[:aliases] and i[:aliases].map { |a| a.downcase }.include?(name) )
|
||||
) }
|
||||
end
|
||||
|
||||
def member_short_name(member)
|
||||
return member[:shortName] || member[:title]
|
||||
end
|
||||
|
||||
def member_link(name, short=true)
|
||||
member = find_member(name)
|
||||
if member
|
||||
shortName = member_short_name(member)
|
||||
return "<a href=\"/members/\##{html_escape(shortName)}\">#{short ? shortName : member[:title]}</a>"
|
||||
else
|
||||
return name
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue