Skip to content
Snippets Groups Projects
Unverified Commit 84ce937c authored by Isabella Skořepová's avatar Isabella Skořepová
Browse files

Feature parity

parent 9f612cb8
No related branches found
No related tags found
No related merge requests found
Showing
with 82 additions and 256 deletions
...@@ -40,10 +40,8 @@ To je to mezi ```` ``` ```` a ```` ``` ```` ;) ...@@ -40,10 +40,8 @@ To je to mezi ```` ``` ```` a ```` ``` ```` ;)
* image - titulní obrázek článku. Tento by měl být umístěn v static/images/leads/OBRAZEK.png, * image - titulní obrázek článku. Tento by měl být umístěn v static/images/leads/OBRAZEK.png,
nebo ve složce článku. Preferujte png nebo ve složce článku. Preferujte png
* tags - Seznam tagů * tags - Seznam tagů
* [author] - Počátek sekce pojednávající o autorovi, pokud chybí je vytvořena z git historie * author - jméno autora
* name - jméno autora * published - datum publikace, pokud chybí článek nebude vyvěšen
* [date]
* creation - datum vytvoření
* nodate=true - indikuje, že by se nemělo zobrazovat datum vytvoření * nodate=true - indikuje, že by se nemělo zobrazovat datum vytvoření
## Standartní kategorie: ## Standartní kategorie:
......
...@@ -7,7 +7,7 @@ perex_e = " ...@@ -7,7 +7,7 @@ perex_e = "
Každý správný radioamatér zajisté vyrábí plošné spoje častěji, než zalévá květiny na zahradě, a právě pro něj je určený program EAGLE z dílny CADsoft, pro tvorbu plošných spojů. Proč se v dnešní době "zdržovat" návrhem plošným spojů na papír a pracným ručním překreslováním, když je k dispozici software, který veškerou práci udělá za Vás a to velmi rychle a jednoduše. Do karet nám, radioamatérům, hraje i licence - freeware, který je ve verzi Light pro amatérské použití zdarma a může tak být volně používán! Každý správný radioamatér zajisté vyrábí plošné spoje častěji, než zalévá květiny na zahradě, a právě pro něj je určený program EAGLE z dílny CADsoft, pro tvorbu plošných spojů. Proč se v dnešní době \"zdržovat\" návrhem plošným spojů na papír a pracným ručním překreslováním, když je k dispozici software, který veškerou práci udělá za Vás a to velmi rychle a jednoduše. Do karet nám, radioamatérům, hraje i licence - freeware, který je ve verzi Light pro amatérské použití zdarma a může tak být volně používán!
. .
" "
+++ +++
......
...@@ -3,7 +3,7 @@ title = "Provozní aktiv 3/2008" ...@@ -3,7 +3,7 @@ title = "Provozní aktiv 3/2008"
tags = ["Aktuality", "Stalo se", "Závody", "Rozbité články"] tags = ["Aktuality", "Stalo se", "Závody", "Rozbité články"]
published = "2008-03-16T15:14:16.000Z" published = "2008-03-16T15:14:16.000Z"
author = "Michal, OK1WMR" author = "Michal, OK1WMR"
perex_e = " Po dobrodružném I. Subregionálu jsme se těšili "klidný" provozní aktiv na VKV. Počasí bylo, alespoň v sobotu, nádherné. Postavili jsme náš 14m vysoký stožár s 17el. M2. Během závodu jsme navázali 112 spojení a nejdelší bylo se stanicí G0KPW na vzdálenost 813 km a dosáhli tedy celkového počtu 32 471 bodů... . ." perex_e = " Po dobrodružném I. Subregionálu jsme se těšili \"klidný\" provozní aktiv na VKV. Počasí bylo, alespoň v sobotu, nádherné. Postavili jsme náš 14m vysoký stožár s 17el. M2. Během závodu jsme navázali 112 spojení a nejdelší bylo se stanicí G0KPW na vzdálenost 813 km a dosáhli tedy celkového počtu 32 471 bodů... . ."
+++ +++
......
...@@ -11,7 +11,7 @@ perex_e = " ...@@ -11,7 +11,7 @@ perex_e = "
Náš radioklub uspořádal 9. 7. 2008 "hon na lišku" pro účastníky letního tábora nedaleko obce Liboc. Náš radioklub uspořádal 9. 7. 2008 \"hon na lišku\" pro účastníky letního tábora nedaleko obce Liboc.
. .
. .
......
...@@ -4,7 +4,7 @@ tags = ["Aktuality", "Stalo se", "Akce pro veřejnost", "Rozbité články"] ...@@ -4,7 +4,7 @@ tags = ["Aktuality", "Stalo se", "Akce pro veřejnost", "Rozbité články"]
published = "2008-08-14T05:32:13.000Z" published = "2008-08-14T05:32:13.000Z"
author = "Michal, OK1WMR" author = "Michal, OK1WMR"
perex_e = " perex_e = "
Náš radioklub uspořádal 21. 7. 2008 "hon na lišku" pro účastníky příměstského tábora pořádaného Mateřským centrem v Karlových Varech Náš radioklub uspořádal 21. 7. 2008 \"hon na lišku\" pro účastníky příměstského tábora pořádaného Mateřským centrem v Karlových Varech
. .
. .
......
...@@ -4,7 +4,7 @@ tags = ["Články", "Konstrukce", "Konstrukce pro začátečníky", "Rozbité č ...@@ -4,7 +4,7 @@ tags = ["Články", "Konstrukce", "Konstrukce pro začátečníky", "Rozbité č
published = "2008-11-27T17:27:50.000Z" published = "2008-11-27T17:27:50.000Z"
author = "Michal, OK1WMR" author = "Michal, OK1WMR"
image = "02.jpg" image = "02.jpg"
perex_e = "Jednoduchý světelný had s možností regulace rychlosti "běhu" perex_e = "Jednoduchý světelný had s možností regulace rychlosti \"běhu\"
světla. Kde rychlost udává známý časovač 555, který je napojen do obvodu 4017, světla. Kde rychlost udává známý časovač 555, který je napojen do obvodu 4017,
známého také jako Johnsonův čítač/dělič. Na jeho výstupy jsou napojeny LED. známého také jako Johnsonův čítač/dělič. Na jeho výstupy jsou napojeny LED.
Hodnota C1 je 1uF. Na plošném spoji jsou LED v jednoduché řadě, ale diody by Hodnota C1 je 1uF. Na plošném spoji jsou LED v jednoduché řadě, ale diody by
......
...@@ -7,7 +7,7 @@ perex_e = "Od počátků radiového provozu, který tehdy využíval výhradně ...@@ -7,7 +7,7 @@ perex_e = "Od počátků radiového provozu, který tehdy využíval výhradně
telegrafní signály, měli operátoři snahu zrychlit vysílání použitím telegrafní signály, měli operátoři snahu zrychlit vysílání použitím
zkratek pro některé často se opakující ustálené fráze. Tak vzniklo zkratek pro některé často se opakující ustálené fráze. Tak vzniklo
několik soustav kódů, nejznámější je tzv. Q-kód charakterisovaný několik soustav kódů, nejznámější je tzv. Q-kód charakterisovaný
skupinou tří písmen, z nichž první je "Q". skupinou tří písmen, z nichž první je \"Q\".
Q-kód je univerzální a používá ho většina služeb. Některé služby si Q-kód je univerzální a používá ho většina služeb. Některé služby si
vyvinuly vlastní kódy, např. N-kód, Z-kód, které lépe odpovídají jejich vyvinuly vlastní kódy, např. N-kód, Z-kód, které lépe odpovídají jejich
potřebám. potřebám.
...@@ -177,8 +177,8 @@ Zpráva všem radioamatérům. ...@@ -177,8 +177,8 @@ Zpráva všem radioamatérům.
QSV QSV
Vyšlete sérii "VVV"(na kmitočtu ...... kHz). Vyšlete sérii \"VVV\"(na kmitočtu ...... kHz).
Mám vyslat sérii "VVV"(na kmitočtu ...... kHz)? Mám vyslat sérii \"VVV\"(na kmitočtu ...... kHz)?
QSX QSX
...@@ -218,8 +218,8 @@ Mám se naladit přesně na váš kmitočet? ...@@ -218,8 +218,8 @@ Mám se naladit přesně na váš kmitočet?
Otázku vytváříme doplněním otazníku za kód, např. QTH?. Otázku vytváříme doplněním otazníku za kód, např. QTH?.
V radioamatérské praxi se vžilo i používání přeneseného (zobecněného) výzanamu Q-kódů, např. QSO znamená obecněji "radioamatérské spojení", QTH ""umístění stanice", QRO "velký výkon", a řekne-li někdo ve fonickém spojení, že jde "do V radioamatérské praxi se vžilo i používání přeneseného (zobecněného) výzanamu Q-kódů, např. QSO znamená obecněji \"radioamatérské spojení\", QTH \"\"umístění stanice\", QRO \"velký výkon\", a řekne-li někdo ve fonickém spojení, že jde \"do
kvéerelu", nejde o nic hrozného (krom jazykové stránky), mluvčí tak chce kvéerelu\", nejde o nic hrozného (krom jazykové stránky), mluvčí tak chce
vyjádřit, že jde do zaměstnání. vyjádřit, že jde do zaměstnání.
Zdroj - ČRK Zdroj - ČRK
Více zde" Více zde"
......
...@@ -3,7 +3,7 @@ title = "Radioklub v Mladé Frontě - říjen 2013" ...@@ -3,7 +3,7 @@ title = "Radioklub v Mladé Frontě - říjen 2013"
tags = ["Aktuality", "Stalo se", "Napsali o nás", "Rozbité články"] tags = ["Aktuality", "Stalo se", "Napsali o nás", "Rozbité články"]
published = "2013-11-15T19:23:09.000Z" published = "2013-11-15T19:23:09.000Z"
author = "Míra, OK7KM" author = "Míra, OK7KM"
perex_e = "V deníku Mladá Fronta vyšel dne 21. 10. 2013 článek s názvem Mladý modelář nebo mechanik, to jsou v kraji "ohrožené druhy". Autor článku udělal rozhovor také s vedoucím našeho kroužku. Celý článek si můžete přečíst uvnitř naší krátké zprávy.. A Celuto perex_e = "V deníku Mladá Fronta vyšel dne 21. 10. 2013 článek s názvem Mladý modelář nebo mechanik, to jsou v kraji \"ohrožené druhy\". Autor článku udělal rozhovor také s vedoucím našeho kroužku. Celý článek si můžete přečíst uvnitř naší krátké zprávy.. A Celuto
......
...@@ -4,7 +4,7 @@ tags = ["Aktuality", "Stalo se", "Napsali o nás"] ...@@ -4,7 +4,7 @@ tags = ["Aktuality", "Stalo se", "Napsali o nás"]
published = "2015-12-10T19:44:10.000Z" published = "2015-12-10T19:44:10.000Z"
author = "Míra, OK7KM" author = "Míra, OK7KM"
image = "vikend.png" image = "vikend.png"
perex_e = "V úterý, 8. prosince 2015 byl odvysílán další díl pořadu Víkend na TV Nova, na téma "S hlavou v oblacích". Radioklub a jeho pracoviště na Blatenském vrchu jste mohli vidět během jedné z reportáží. Záznam najdete v našem článku." perex_e = "V úterý, 8. prosince 2015 byl odvysílán další díl pořadu Víkend na TV Nova, na téma \"S hlavou v oblacích\". Radioklub a jeho pracoviště na Blatenském vrchu jste mohli vidět během jedné z reportáží. Záznam najdete v našem článku."
+++ +++
......
...@@ -5,7 +5,7 @@ published = "2015-05-20T15:51:21.000Z" ...@@ -5,7 +5,7 @@ published = "2015-05-20T15:51:21.000Z"
author = "Jirka, OK1UBO" author = "Jirka, OK1UBO"
perex_e = " perex_e = "
Krátce po svých osmdesátinách, dne 20. 4. 2015, zemřel dlouholetý člen našeho radioklubu Petr Pohanka, narozen 11. 3. 1935, ex OK1FKV, ex DIG 4865, člen Veterán Rádio Klubu a klubu přátel telegrafie, držitel DIG Trophy a CW Plakette. Petr se od mládí věnoval fotografii, ke které přičichl už během studia na Vyšší zdravotní škole, kde v roce 1953 absolvoval obor rentgenový laborant, jehož součástí byl i kurs lékařské fotografie. Současně jej ale zajímala i výtvarná fotografie. Krátce po svých osmdesátinách, dne 20. 4. 2015, zemřel dlouholetý člen našeho radioklubu Petr Pohanka, narozen 11. 3. 1935, ex OK1FKV, ex DIG 4865, člen Veterán Rádio Klubu a klubu přátel telegrafie, držitel DIG Trophy a CW Plakette. Petr se od mládí věnoval fotografii, ke které přičichl už během studia na Vyšší zdravotní škole, kde v roce 1953 absolvoval obor rentgenový laborant, jehož součástí byl i kurs lékařské fotografie. Současně jej ale zajímala i výtvarná fotografie.
Ve druhé polovině 50. let založil a vedl fotokroužek při domě kultury v Chomutově, v roce 1957 se stal členem krajského fotoklubu v Teplicích a absolvoval dvouletý kurs výtvarné fotografie u prof. Jána Šmoka. V roce 1960 se stal členem Svazu českých fotografů a v následujícím desetiletí se podílel na řadě výstav doma i v zahraničí. Konec slibně se rozvíjející fotografické kariéry nastal v roce 1972, kdy Petr Pohanka neprozřetelně vystavil "nevhodnou" fotografii z oslav 1. máje a byl "odměněn" zákazem publikování, a když pak při stěhování do Říčan nešťastně přišel o stovky negativů, na fotografování zanevřel a začal se věnovat radioamatérství. Ve druhé polovině 50. let založil a vedl fotokroužek při domě kultury v Chomutově, v roce 1957 se stal členem krajského fotoklubu v Teplicích a absolvoval dvouletý kurs výtvarné fotografie u prof. Jána Šmoka. V roce 1960 se stal členem Svazu českých fotografů a v následujícím desetiletí se podílel na řadě výstav doma i v zahraničí. Konec slibně se rozvíjející fotografické kariéry nastal v roce 1972, kdy Petr Pohanka neprozřetelně vystavil \"nevhodnou\" fotografii z oslav 1. máje a byl \"odměněn\" zákazem publikování, a když pak při stěhování do Říčan nešťastně přišel o stovky negativů, na fotografování zanevřel a začal se věnovat radioamatérství.
" "
+++ +++
......
[git]
mergeMessage=["See merge request ","(Autoexportováno z Joomly)","(Autoexportován z Joomly)","[publish]"]
...@@ -16,7 +16,7 @@ cli.main(function(args, options) { ...@@ -16,7 +16,7 @@ cli.main(function(args, options) {
}) })
}) })
var sitegin = function(config) { function sitegin(config) {
const options = config.options const options = config.options
require('./sitegin/sitegin')({ require('./sitegin/sitegin')({
watch: !options.noserver && !options.nowatch, watch: !options.noserver && !options.nowatch,
...@@ -131,7 +131,7 @@ var sitegin = function(config) { ...@@ -131,7 +131,7 @@ var sitegin = function(config) {
}) })
} }
var copyStaticFiles = function(builddir, staticdir, themedir) { function copyStaticFiles(builddir, staticdir, themedir) {
// STATIC FILES // STATIC FILES
const fsextra = require('node-fs-extra') const fsextra = require('node-fs-extra')
fsextra.copy( fsextra.copy(
...@@ -159,15 +159,18 @@ var copyStaticFiles = function(builddir, staticdir, themedir) { ...@@ -159,15 +159,18 @@ var copyStaticFiles = function(builddir, staticdir, themedir) {
) )
} }
var rendersass = function(builddir, themedir) { function rendersass(builddir, themedir) {
// SASS // SASS
const sass = require('node-sass') const sass = require('node-sass')
const fs = require('filendir') const fs = require('fs')
const mkdirp = require('mkdirp')
sass.render({ file: `${themedir}/sass/style.scss` }, function(err, result) { sass.render({ file: `${themedir}/sass/style.scss` }, function(err, result) {
if (err === null) { if (err === null) {
console.log('compiled sass') console.log('compiled sass')
fs.writeFile(`${builddir}/theme/style.css`, result.css) mkdirp(`${builddir}/theme`, () => {
fs.writeFile(`${builddir}/theme/style.css`, result.css, () => {})
})
} else console.log('error ', err) } else console.log('error ', err)
}) })
} }
const fs = require('fs')
const data = require('../ok1kvk.cz/data.json')
function tomlPrimitive(obj) {
if (Array.isArray(obj)) return `[${obj.map(tomlPrimitive).join(', ')}]`
if (typeof obj === 'string') {
return `"${obj.replace(/"/g, '\\"')}"`
}
if (typeof obj === 'boolean') return `${obj}`
throw new Error(`Unknown ${JSON.stringify(obj)}`)
}
function tomlObject(obj) {
let ret = ''
for (const [key, value] of Object.entries(obj)) {
if (value === null || value === undefined) continue
ret += `${key} = ${tomlPrimitive(value)}\n`
}
return ret
}
function authorRewrite(author) {
if (author === 'Jakub Skořepa') return 'Isabella Skořepová'
if (author === 'Michal Rybka') return 'Michal, OK1WMR'
if (author === 'Mira, OK7KM') return 'Míra, OK7KM'
return author
}
for (const page of data.pages) {
const tags = page.metadata.tags.filter(
t => t.text !== 'Všechny články a aktuality',
)
const text = `+++\n${tomlObject({
title: page.metadata.title,
tags: tags.length > 0 ? tags.map(t => t.text) : null,
nodate: page.metadata.nodate,
notarticle: page.metadata.notarticle,
published: page.metadata.date.creation,
author: authorRewrite(page.metadata.author.name),
image: page.metadata.image,
perex: page.metadata.perex,
perex_e: page.metadata.perex_e,
})}+++\n\n${page.content}`
fs.writeFileSync(page.filename, text, 'utf-8')
}
/*
* Add date: {creation, modification, modified} and author: {name, email}
* to metadata if not already present
*/
const nodegit = require('nodegit')
const path = require('path')
const moment = require('moment')
// Returns promise for patch of single commit
const gitShow = (repo, commitData) => {
let commit
let tree
let parentTree
return nodegit.Revparse.single(repo, commitData.commit)
.then(obj => nodegit.Commit.lookup(repo, obj.id()))
.then(_commit => {
commit = _commit
if (commit.parentcount() < 1) return null
return commit.getParents(1)
})
.then(parents => {
if (parents === null) return null
return parents[0].getTree()
})
.then(_parentTree => {
parentTree = _parentTree
return commit.getTree()
})
.then(_tree => {
tree = _tree
return nodegit.Diff.treeToTree(repo, parentTree, tree, null)
})
.then(diff => diff.patches())
.then(patches => [patches, commitData])
}
const gitlog = repo => {
const map = () =>
Promise.resolve().then(() => commit => {
const author = commit.author()
const sha = commit.sha()
return {
commit: sha,
author: {
name: author.name(),
email: author.email(),
},
date: commit.date(),
message: commit.message(),
}
})
return repo.getHeadCommit().then(commit =>
new Promise((resolve, reject) => {
commit
.history()
.on('end', resolve)
.on('error', reject)
.start()
}).then(commits => map().then(log => commits.map(log))),
)
}
const getFilesHistory = (repo, _startCommitMessage) => {
let startCommitMessage = _startCommitMessage
if (!Array.isArray(startCommitMessage) && startCommitMessage !== undefined) {
startCommitMessage = [startCommitMessage]
}
return Promise.resolve()
.then(() => gitlog(repo))
.then(log => {
const promises = []
for (let i = 0; i < log.length; i += 1) {
promises.push(gitShow(repo, log[i]))
}
return Promise.all(promises)
})
.then(diffs => {
const filehistory = {}
diffs.forEach(data => {
const commit = data[1]
const diff = data[0]
diff.forEach(entry => {
const p = path.normalize(entry.newFile().path())
if (filehistory[p] === undefined) {
filehistory[p] = []
}
filehistory[p].push(commit)
})
})
return filehistory
})
.then(log => {
const sorter = (a, b) => {
const rhs = a.date
const lhs = b.date
return lhs > rhs ? 1 : lhs < rhs ? -1 : 0
}
for (const file of Object.keys(log)) {
log[file].sort(sorter)
}
return log
})
.then(log => {
if (startCommitMessage === undefined) return log
function mergeCommit(commits) {
let r
commits.reverse()
commits.forEach(commit => {
if (r === undefined)
startCommitMessage.forEach(matcher => {
if (commit.message.indexOf(matcher) > -1) r = commit
})
})
commits.reverse()
return r
}
for (const file of Object.keys(log)) {
// eslint-disable-next-line no-param-reassign
log[file].mergeCommit = mergeCommit(log[file])
}
return log
})
}
module.exports = obj => {
console.log('Build step: GitInfo')
const pathToRepo = path.resolve(obj.config.sourceDir)
return new Promise((resolve, reject) =>
nodegit.Repository.open(pathToRepo)
.catch(() => {
resolve(obj)
})
.then(repo => getFilesHistory(repo, obj.config.git.mergeMessage))
.then(hist => {
if (obj.config.options.debugarticle !== null) {
const log = hist[obj.config.options.debugarticle]
log.forEach(commit => {
console.log(
` ${commit.date} ${
commit.author.email
}\t${commit.message.replace(/\n([^]*)$/, '')}`,
)
})
console.log()
console.log(
` Starting commit: ${log.mergeCommit.message.replace(
/\n([^]*)$/,
'',
)}`,
)
}
return hist
})
.then(filesHistory => {
obj.pages.forEach(article => {
const file = path.relative(pathToRepo, article.filename)
const commits = filesHistory[file]
if (commits !== undefined) {
commits.sort((a, b) => b.date - a.date)
const newestCommit = commits[0]
const oldestCommit = commits[commits.length - 1]
const { mergeCommit } = commits
// eslint-disable-next-line no-param-reassign
if (article.metadata.date === undefined) article.metadata.date = {}
if (article.metadata.date.creation === undefined) {
if (mergeCommit === undefined) {
console.log(
`[Warning] Article ${file} does not have merge commit.`,
)
// eslint-disable-next-line no-param-reassign
article.metadata.date.creation = moment()
} else {
// eslint-disable-next-line no-param-reassign
article.metadata.date.creation = mergeCommit.date
}
}
// eslint-disable-next-line no-param-reassign
article.metadata.date.modification = newestCommit.date
if (article.metadata.author === undefined) {
// eslint-disable-next-line no-param-reassign
article.metadata.author = {}
}
if (article.metadata.author.name === undefined) {
// eslint-disable-next-line no-param-reassign
article.metadata.author.name = oldestCommit.author.name
}
if (article.metadata.author.email === undefined) {
// eslint-disable-next-line no-param-reassign
article.metadata.author.email = oldestCommit.author.email
}
// eslint-disable-next-line no-param-reassign
article.commits = commits
} else {
console.log(`[Warning] Article ${file} is not in git repository.`)
}
})
return obj
})
.then(o => {
resolve(o)
})
.catch(e => {
reject(e)
}),
)
}
...@@ -26,9 +26,9 @@ const readPageWorker = (content_, obj) => { ...@@ -26,9 +26,9 @@ const readPageWorker = (content_, obj) => {
console.log(`${obj.filename}: Failed to parse metadata`) console.log(`${obj.filename}: Failed to parse metadata`)
throw e throw e
} }
if (obj.metadata.date && obj.metadata.date.creation) { if (obj.metadata.published && obj.metadata.published) {
// eslint-disable-next-line no-param-reassign // eslint-disable-next-line no-param-reassign
obj.metadata.date.creation = moment(obj.metadata.date.creation) obj.metadata.published = moment(obj.metadata.published)
} }
return obj return obj
} }
......
...@@ -9,7 +9,6 @@ module.exports = jobs => ...@@ -9,7 +9,6 @@ module.exports = jobs =>
'readFiles', 'readFiles',
'parseHugo', 'parseHugo',
'parseRedirects', 'parseRedirects',
'gitInfo',
'markdown', 'markdown',
'urls', 'urls',
'sitemap', 'sitemap',
......
...@@ -5,7 +5,6 @@ module.exports = config => ...@@ -5,7 +5,6 @@ module.exports = config =>
.registerMultiple( .registerMultiple(
config, config,
['config', './config'], ['config', './config'],
['gitInfo', './gitInfo'],
['markdown', './markdown'], ['markdown', './markdown'],
['parseHugo', './parseHugo'], ['parseHugo', './parseHugo'],
['print', './print'], ['print', './print'],
......
...@@ -54,10 +54,12 @@ module.exports = function tagsJob(obj) { ...@@ -54,10 +54,12 @@ module.exports = function tagsJob(obj) {
obj.redirects.push(pg) obj.redirects.push(pg)
pageList.sort((a, b) => { pageList.sort((a, b) => {
if (a.metadata.date === undefined) return -1 if (a.metadata.published === b.metadata.published) return 0
if (b.metadata.date === undefined) return 1 if (a.metadata.published === undefined) return -1
const rhs = a.metadata.date.creation if (b.metadata.published === undefined) return 1
const lhs = b.metadata.date.creation const rhs = a.metadata.published
const lhs = b.metadata.published
return lhs > rhs ? 1 : lhs < rhs ? -1 : 0 return lhs > rhs ? 1 : lhs < rhs ? -1 : 0
}) })
let c = 0 let c = 0
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
{% block head %} {% block head %}
<meta property="og:type" content="article" /> <meta property="og:type" content="article" />
<meta property="article:published_time" content="{{ metadata.date.creation | date }}" /> <meta property="article:published_time" content="{{ metadata.published | date }}" />
{% if metadata.image %} <meta property="og:image" content="{{ metadata.image | absURL( canonicalURL ) }}" /> {% endif %} {% if metadata.image %} <meta property="og:image" content="{{ metadata.image | absURL( canonicalURL ) }}" /> {% endif %}
<meta property="og:description" content="{% if metadata.perex %}{{metadata.perex}}{% else %}{% if metadata.perex_e %}{{metadata.perex_e | truncate}}{% else %}{% if content %}{{ content | striptags | truncate }}{% endif %}{% endif %}{% endif %}" /> <meta property="og:description" content="{% if metadata.perex %}{{metadata.perex}}{% else %}{% if metadata.perex_e %}{{metadata.perex_e | truncate}}{% else %}{% if content %}{{ content | striptags | truncate }}{% endif %}{% endif %}{% endif %}" />
...@@ -43,15 +43,12 @@ ...@@ -43,15 +43,12 @@
<h2 id="title">{{ metadata.title }}</h2> <h2 id="title">{{ metadata.title }}</h2>
{% if not metadata.nodate %} {% if not metadata.nodate %}
<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"> <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.date %} {% if metadata.published %}
<span style="color: #626262">{{ metadata.date.creation | date("D. M. YYYY") }}</span> <span style="color: #626262">{{ metadata.published | date("D. M. YYYY") }}</span>
napsal napsal
<span style="color: #626262">{{ metadata.author.name }}</span> <span style="color: #626262">{{ metadata.author }}</span>
{% if (metadata.date.modification | date("D. M. YYYY")) != (metadata.date.creation | date("D. M. YYYY")) %}
naposledy upraveno <span style="color: #626262">{{ metadata.date.modification | date("D. M. YYYY") }}</span>
{% endif %}
{% else %} {% else %}
Článek není v gitu Článek nebyl publikován
{% endif %} {% endif %}
</a> </a>
{% endif %} {% endif %}
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
</div> </div>
<div class="clear"></div> <div class="clear"></div>
<div style="padding: 10px;" class="head-info"> <div style="padding: 10px;" class="head-info">
<span style="color: #a2a2a2; text-align: left;display: inline-block;width: 75%;">{{ page.metadata.date.creation | date("D. M. YYYY") }} napsal {{ page.metadata.author.name }}</span><!-- <span style="color: #a2a2a2; text-align: left;display: inline-block;width: 75%;">{{ page.metadata.published | date("D. M. YYYY") }} napsal {{ 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> --><a style="text-align: right;display: inline-block;width: 25%;" href="{{ config.baseurl }}/{{ page.file }}">Číst&nbsp;dál</a>
</div> </div>
</div> </div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment