diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0813c24..9db5120 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,6 +2,7 @@ image: klakegg/hugo:0.88.0-ext-ci # recommended image by Hugo: https://gohugo.io test: script: + - ./checkdates.rb - hugo except: - master diff --git a/checkdates.rb b/checkdates.rb new file mode 100755 index 0000000..0334a1d --- /dev/null +++ b/checkdates.rb @@ -0,0 +1,36 @@ +#!/usr/bin/env ruby + +require 'yaml' +require 'date' + +class YAMLFrontMatter + PATTERN = /\A(---\r?\n(.*?)\n?^---\s*$\n?)/m.freeze + + class << self + def extract(content) + if content =~ PATTERN + [YAML.load(Regexp.last_match(2), permitted_classes: [Symbol, Date, Time]), content.sub(Regexp.last_match(1), "")] + else + [{}, content] + end + end + end +end + +Dir["content/eventos/*/index.md"].each do |filename| + metadata, _ = YAMLFrontMatter.extract(File.read(filename)) + + raise "#{filename}: wrong layout: #{metadata["layout"]}" unless metadata["layout"] == "evento" + raise "#{filename}: no title" unless metadata.keys.include?("title") + raise "#{filename}: no metadata" unless metadata.keys.include?("metadata") + + raise "#{filename}: no event location" unless metadata.dig("metadata", "event", "location") + + start = metadata.dig("metadata", "event", "date", "start") + finish = metadata.dig("metadata", "event", "date", "finish") + + raise "#{filename}: no event start date" unless start + raise "#{filename}: no event finish date" unless finish + + raise "#{filename}: time paradox: #{start} - #{finish}" unless start.to_time <= finish.to_time +end diff --git a/content/eventos/2021-08-21-foss4g-2021/index.md b/content/eventos/2021-08-21-foss4g-2021/index.md index 2b1e8d3..198d447 100644 --- a/content/eventos/2021-08-21-foss4g-2021/index.md +++ b/content/eventos/2021-08-21-foss4g-2021/index.md @@ -1,5 +1,5 @@ --- -categories: [] +layout: evento metadata: event: location: Online diff --git a/content/eventos/2023-10-12-devops-na-praia/index.md b/content/eventos/2023-10-12-devops-na-praia/index.md index 541502a..d609028 100644 --- a/content/eventos/2023-10-12-devops-na-praia/index.md +++ b/content/eventos/2023-10-12-devops-na-praia/index.md @@ -3,7 +3,7 @@ layout: evento title: Devops na Praia #2 metadata: event: - location: + location: Wunderman Thompson Commerce - EdifĂ­cio Transparente, Porto site: url: https://www.eventbrite.pt/e/bilhetes-devops-na-praia-2-720753933417?aff=oddtdtcreator date: