From 55e96d50df8e10c30e1e6ca8909f6f736f225d2f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Isabella=20Sko=C5=99epov=C3=A1?= <isabella@skorepova.info>
Date: Wed, 6 Nov 2019 19:23:28 +0100
Subject: [PATCH] =?UTF-8?q?P=C5=99echylov=C3=A1n=C3=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 content/authors.json                    | 13 +++++++++++++
 sitegin/parseHugo.js                    | 20 ++++++++++++++++++--
 theme/templates/article.html.nunj       |  4 ++--
 theme/templates/partials/list.html.nunj |  2 +-
 4 files changed, 34 insertions(+), 5 deletions(-)
 create mode 100644 content/authors.json

diff --git a/content/authors.json b/content/authors.json
new file mode 100644
index 00000000..c689d3f9
--- /dev/null
+++ b/content/authors.json
@@ -0,0 +1,13 @@
+[
+    { "name": "Martin VĂ­tek", "gender": "M" },
+    { "name": "Isabella Skořepová", "gender": "F" },
+    { "name": "Vláďa, OK1FIK", "gender": "M" },
+    { "name": "Jirka, OK1UBO", "gender": "M" },
+    { "name": "Michal, OK1WMR", "gender": "M" },
+    { "name": "Zdeněk, OK1ZES", "gender": "M" },
+    { "name": "MĂ­ra, OK7KM", "gender": "M" },
+    { "name": "Administrator", "gender": "M" },
+    { "name": "Vašek Král", "gender": "M" },
+    { "name": "Petr, OK1WPN", "gender": "M" },
+    { "name": "OK1GP, OK1UBO", "gender": "M" }
+]
diff --git a/sitegin/parseHugo.js b/sitegin/parseHugo.js
index a7163744..ccb20cdf 100644
--- a/sitegin/parseHugo.js
+++ b/sitegin/parseHugo.js
@@ -1,8 +1,10 @@
 const toml = require('toml')
 const moment = require('moment')
 const jsesc = require('jsesc')
+const fs = require('fs')
+const path = require('path')
 
-const readPageWorker = (content_, obj) => {
+const readPageWorker = (content_, obj, authors) => {
   let content = content_
   if (content === undefined) throw new Error('content is undefined')
   const headLength = content.indexOf('\n') + 1
@@ -30,15 +32,29 @@ const readPageWorker = (content_, obj) => {
     // eslint-disable-next-line no-param-reassign
     obj.metadata.published = moment(obj.metadata.published)
   }
+  if (obj.metadata.author) {
+    const author = obj.metadata.author
+    // eslint-disable-next-line no-param-reassign
+    obj.metadata.author = authors.get(author) || { name: author }
+  }
   return obj
 }
 
 module.exports = obj => {
   console.log('Build step: ParseHugo')
+  const authors = new Map()
+  JSON.parse(
+    fs.readFileSync(
+      path.join(obj.config.options.contentdir, 'authors.json'),
+      'utf8',
+    ),
+  ).forEach(author => {
+    authors.set(author.name, author)
+  })
   return new Promise(resolve => {
     const pages = []
     obj.pages.forEach(page => {
-      pages.push(readPageWorker(page.content, page))
+      pages.push(readPageWorker(page.content, page, authors))
     })
     // eslint-disable-next-line no-param-reassign
     obj.pages = pages
diff --git a/theme/templates/article.html.nunj b/theme/templates/article.html.nunj
index 3a330ea7..892857c1 100644
--- a/theme/templates/article.html.nunj
+++ b/theme/templates/article.html.nunj
@@ -45,8 +45,8 @@
         <a class="author" style="color: #a2a2a2; display: block" class="black-text" target="_blank" href="https://git.ok1kvk.cz/ok1kvk.cz/content/tree/master/articles/{{file | replace("clanek/","") | replace(r/\/$/, "")}}.md">
           {% if metadata.published %}
             <span style="color: #626262">{{ metadata.published | date("D. M. YYYY") }}</span>
-            napsal
-            <span style="color: #626262">{{ metadata.author }}</span>
+            napsal{% if metadata.author.gender == "F" %}a{% endif %}
+            <span style="color: #626262">{{ metadata.author.name }}</span>
           {% else %}
             Článek nebyl publikován
           {% endif %}
diff --git a/theme/templates/partials/list.html.nunj b/theme/templates/partials/list.html.nunj
index 87e2277d..bb1d6f22 100644
--- a/theme/templates/partials/list.html.nunj
+++ b/theme/templates/partials/list.html.nunj
@@ -39,7 +39,7 @@
               </div>
               <div class="clear"></div>
               <div style="padding: 10px;" class="head-info">
-                <span style="color: #a2a2a2; text-align: left;display: inline-block;width: 75%;">{{ page.metadata.published | date("D. M. YYYY") }} napsal {{ page.metadata.author }}</span><!--
+                <span style="color: #a2a2a2; text-align: left;display: inline-block;width: 75%;">{{ page.metadata.published | date("D. M. YYYY") }} napsal{% if page.metadata.author.gender == "F" %}a{% endif %} {{ page.metadata.author.name }}</span><!--
                 --><a style="text-align: right;display: inline-block;width: 25%;" href="{{ config.baseurl }}/{{ page.file }}">Číst&nbsp;dál</a>
               </div>
             </div>
-- 
GitLab