diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a7852e69f0a0e056d2891530cd54665b6f96c8fd..d6067e06b3659918614c634d011715cce5055096 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,4 @@ stages: - - test - deploy trigger: @@ -9,25 +8,6 @@ trigger: script: - "curl -X POST -F token=$GITLAB_TOKEN -F ref=master https://git.ok1kvk.cz/api/v3/projects/72/trigger/builds" -basictest: - stage: test - script: - - node --version - - npm --version - - npm install - - node index.js --contentdir sitegin/tests/content --staticdir sitegin/tests/static --builddir build --noserver - -unittest: - stage: test - script: - - node --version - - npm --version - - npm install - - npm test - artifacts: - paths: - - coverage - cache: paths: - node_modules diff --git a/sitegin/tags.js b/sitegin/tags.js index bf8a32de047d7356df68ba83002938020220f26e..b81d174e36128adc70aad9b5e3b85ae7e1177b29 100644 --- a/sitegin/tags.js +++ b/sitegin/tags.js @@ -10,26 +10,24 @@ var toURL = function(url) { module.exports = function(obj) { console.log('Build step: Tags'); return new Promise(function(resolve, reject) { - var tags = []; - var tagPages = {}; + var tags = [{ + text: 'Všechny ÄŤlánky a aktuality', + url: 'tag/vse', + }]; + var tagPages = { + 'tag/vse': [], + }; obj.pages.forEach(function(article) { - if(!article.metadata.tags && !article.metadata.notarticle) { - article.metadata.tags = [ 'ÄŚlánek' ]; + if(!article.metadata.tags) { + article.metadata.tags = []; } if(article.metadata.tags) { - if(!article.metadata.notarticle) { - var hasarticletag = false; - article.metadata.tags.forEach(function(tag) { - if(toURL(tag) == 'clanek') hasarticletag = true; - }) - if(!hasarticletag) article.metadata.tags.push('ÄŚlánek'); - } var ntags = []; article.metadata.tags.forEach(function(tag) { tag = { text: tag, - url: toURL(tag) + url: 'tag/'+toURL(tag) } ntags.push(tag); if(tags.map(function(e) { return e.url; }).indexOf(tag.url) < 0) @@ -37,6 +35,12 @@ module.exports = function(obj) { if(tagPages[tag.url] === undefined) tagPages[tag.url] = []; tagPages[tag.url].push(article) }) + + if(!article.metadata.notarticle) { + ntags.push(tags[0]) + tagPages[tags[0].url].push(article) + } + article.metadata.tags = ntags; } }); @@ -44,7 +48,8 @@ module.exports = function(obj) { obj.tags = []; if(!Array.isArray(obj.redirects)) obj.redirects = []; - var generateTagPages = function(file, pageList) { + var generateTagPages = function(tag, pageList, subtags) { + const file = tag.url var pg = {}; pg.type = 'redirect'; pg.file = file; @@ -80,6 +85,8 @@ module.exports = function(obj) { tagPage.file = file+'/'+p; tagPage.type = 'tag'; + tagPage.tag = tag; + tagPage.subtags = subtags; tagPage.metadata.firstpage = firstpage; tagPage.metadata.prevpage = prevpage; tagPage.metadata.prevurl = prevurl; @@ -104,8 +111,59 @@ module.exports = function(obj) { }); } + const gen = (arr) => arr.map(a => ({ text: a, url: 'tag/'+toURL(a) })) + const subtags = { + 'tag/konstrukce': gen([ + 'Konstrukce pro začáteÄŤnĂky', + 'HAM konstrukce', + 'Konstrukce s mikroprocesorem', + ]), + 'tag/stalo-se': gen([ + 'Akce pro veĹ™ejnost', + 'Napsali o nás', + 'OcenÄ›nĂ', + 'Soutěž', + 'SK', + 'Radioklub', + ]), + 'tag/programovani': gen([ + 'C/C++', + 'Javascript', + 'LaTeX', + 'Nástroje', + ]), + 'tag/mikroprocesory': gen([ + 'AVR', + 'Periferie', + 'Knihovny', + ]), + 'tag/technicke-clanky': gen([ + 'Eagle', + ]), + 'tag/zavody': gen([ + 'HF', + 'VHF', + ]), + 'tag/aktuality': gen([ + 'Pozvánky', + 'Stalo se', + 'Závody', + ]), + 'tag/clanky': gen([ + 'ProgramovánĂ', + 'Mikroprocesory', + 'Konstrukce', + 'TechnickĂ© ÄŤlánky', + 'ZajĂmavosti', + ]), + 'tag/vse': gen([ + 'Aktuality', + 'ÄŚlánky', + ]) + } tags.forEach(function(tag) { - generateTagPages('tag/'+tag.url, tagPages[tag.url]) + + generateTagPages(tag, tagPages[tag.url], subtags[tag.url]) }) resolve(obj); }) diff --git a/theme/sass/style.scss b/theme/sass/style.scss index b89627cc730be181777c3ef8e44afec1c7048e4b..6df5fdcbf08c9bc57f96907a5315f004b387c248 100644 --- a/theme/sass/style.scss +++ b/theme/sass/style.scss @@ -70,7 +70,7 @@ footer.page-footer { } #content, #search { padding-bottom: 20px; - padding-top: 104px; + padding-top: 70px; margin: 0 auto; } html, body { @@ -171,6 +171,10 @@ nav.subnav li { right: 0; } +.breadcrumb, .breadcrumb:last-child { + color: rgba(0, 0, 0, 0.7); +} + .search-icon svg, .menu-icon svg { height: 64px; width: 30px; diff --git a/theme/templates/article.html.nunj b/theme/templates/article.html.nunj index a4b88712e49248fd9f2ef19ced8166dd491b4334..4a80f3914a6313b8d2219c1e684675c333197b14 100644 --- a/theme/templates/article.html.nunj +++ b/theme/templates/article.html.nunj @@ -32,6 +32,7 @@ {% block content %} <div class="section container" id="content"> + <div class="row"> </div> <div class="metadata"> <h2 id="title">{{ metadata.title }}</h2> {% if not metadata.nodate %} @@ -50,8 +51,8 @@ {% endif %} <div class="tags"> {% for tag in metadata.tags %} - {% if tag.url != "clanek" %} - <a href="{{ config.baseurl }}/tag/{{ tag.url }}"><div class="chip">{{ tag.text }}</div></a> + {% if tag.url != "tag/vse" %} + <a href="{{ config.baseurl }}/{{ tag.url }}/1/"><div class="chip">{{ tag.text }}</div></a> {% endif %} {% endfor %} </div> diff --git a/theme/templates/partials/base.html.nunj b/theme/templates/partials/base.html.nunj index 6ea4e8438599548df7d43386852433a9f95eb2d0..795c0e7bd87c489e8ef796b41cdeabd8117b19f1 100644 --- a/theme/templates/partials/base.html.nunj +++ b/theme/templates/partials/base.html.nunj @@ -48,7 +48,7 @@ {{ svgs.menu("#fff",false) }} </a> <div style="z-index: 2" class="brand-logo"> - <a id="logo-container" href="{{ config.baseurl }}/tag/clanek/1/" > + <a id="logo-container" href="{{ config.baseurl }}/tag/vse/1/" > <img class="hide-on-small-and-up" src="{{ config.baseurl }}/theme/icon56.png"> <img class="hide-on-med-and-up hide-on-ultra-small" src="{{ config.baseurl }}/theme/logo56.png"> <img class="hide-on-small-only" src="{{ config.baseurl }}/theme/logo64.png"> diff --git a/theme/templates/partials/list.html.nunj b/theme/templates/partials/list.html.nunj index a69b000a24d32ca63898c8f72e5c95bdae5c6a93..8832bad337faf1e7d737ce09a6479c378efe4da9 100644 --- a/theme/templates/partials/list.html.nunj +++ b/theme/templates/partials/list.html.nunj @@ -1,6 +1,16 @@ {% import "partials/svgs.html.nunj" as svgs %} <div id=content class=container> <div class="section"> + <div class="row"> + <div class="col"> + <a class="breadcrumb">{{ tag.text }}</a> + {% if subtags %} + {% for subtag in subtags %} + <a href="{{ config.baseurl }}/{{ subtag.url }}" class="chip">{{ subtag.text }}</a> + {% endfor %} + {% endif %} + </div> + </div> <div class="row"> {% for page in content %} <div class="col s12 m6 l4"><!-- s12 m6 l4-->