mirror of
https://gitlab.com/ansol/web-ansol.org.git
synced 2024-11-22 06:11:30 +00:00
Tenta meter checks às datas no CI
This commit is contained in:
parent
8a23c8f0f1
commit
ea4ed078ed
@ -2,6 +2,7 @@ image: klakegg/hugo:0.88.0-ext-ci # recommended image by Hugo: https://gohugo.io
|
|||||||
|
|
||||||
test:
|
test:
|
||||||
script:
|
script:
|
||||||
|
- ./checkdates.rb
|
||||||
- hugo
|
- hugo
|
||||||
except:
|
except:
|
||||||
- master
|
- master
|
||||||
|
36
checkdates.rb
Executable file
36
checkdates.rb
Executable file
@ -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
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
categories: []
|
layout: evento
|
||||||
metadata:
|
metadata:
|
||||||
event:
|
event:
|
||||||
location: Online
|
location: Online
|
||||||
|
@ -3,7 +3,7 @@ layout: evento
|
|||||||
title: Devops na Praia #2
|
title: Devops na Praia #2
|
||||||
metadata:
|
metadata:
|
||||||
event:
|
event:
|
||||||
location:
|
location: Wunderman Thompson Commerce - Edifício Transparente, Porto
|
||||||
site:
|
site:
|
||||||
url: https://www.eventbrite.pt/e/bilhetes-devops-na-praia-2-720753933417?aff=oddtdtcreator
|
url: https://www.eventbrite.pt/e/bilhetes-devops-na-praia-2-720753933417?aff=oddtdtcreator
|
||||||
date:
|
date:
|
||||||
|
Loading…
Reference in New Issue
Block a user