Modul:Chronik: Unterschied zwischen den Versionen

Aus FürthWiki

Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
local p = {}
local p = {}
local c = require("Modul:Common")
local c = require("Modul:Common")
local lf = require("Modul:LinkFormDatum")
local lfd = require("Modul:LinkFormDatum")
local ls = require("Modul:LinkSubformDatum")
local lsd = require("Modul:LinkSubformDatum")


function p.Eintrag(frame)
function p.Eintrag(frame)
Zeile 15: Zeile 15:
["Artikel"] = fulltitle
["Artikel"] = fulltitle
}
}
-- Wenn das Lemma eine Jahreszahl ist, merken
-- Wenn das Lemma eine Jahreszahl ist, merken
if istJahreszahl(titlename) then
if istJahreszahl(titlename) then
Zeile 21: Zeile 20:
     end
     end
     local data_date = dateParsing(args[1], year)
     local data_date = dateParsing(args[1], year)
     local all_data=merge_tables(data, data_date)
     local all_data = merge_tables(data, data_date)
return data_date["Startdatum"] .. ": " .. args[2] .. '<br>' ..
return data_date["Startdatum"] .. ": " .. args[2] .. '<br>' ..
tableToString(all_data)
tableToString(all_data)
Zeile 28: Zeile 27:
function dateParsing(s, year)
function dateParsing(s, year)
-- Parses a date down where s is the datestring and year can be nil or string
-- Parses a date down where s is the datestring and year can be nil or string
local d=split(s, '-')
-- Wenn s eine Zeitspanne ist, teile bei "-" oder "bis"
local dates=split(s, '-')
if len(d) == 1 then
if len(d) == 1 then
d=split(s, 'bis')
dates=split(s, 'bis')
end
end
local sds = checkYear(d[0], year)
-- Ist eine Zeitspanne wie "3. bis 5. Mai" angegeben, kopiere Monat aus Enddatum
local sds = checkYear(dates[0], year)
local sd=human_to_form_date(d[0])
local sd=human_to_form_date(d[0])
local data = {
local data = {
-- Erstmal das Startdatum schreiben
-- Erstmal das Startdatum schreiben
["SDstring"] = d[0],
["SDstring"] = dates[0],
["Startdatum"] = sd,
["Startdatum"] = sd,
["Startjahr"] = get_year(sd),
["Startjahr"] = get_year(sd),
Zeile 46: Zeile 50:
local ed=nil
local ed=nil
if len(d) == 2 then
if len(dates) == 2 then
-- War eine Zeitspanne angegeben gibt es ein Endatum
-- War eine Zeitspanne angegeben gibt es ein Endatum
ed=human_to_form_date(d[1])
ed=human_to_form_date(d[1])

Version vom 22. August 2025, 19:20 Uhr

local p = {}
local c = require("Modul:Common")
local lfd = require("Modul:LinkFormDatum")
local lsd = require("Modul:LinkSubformDatum")

function p.Eintrag(frame)
	local args = frame.args
	local title = mw.title.getCurrentTitle()
	local titlename = title.text
	local fulltitle = title.fullText
	local year
	local data = {
		["Beschreibung"] = args[2],
		["Thema"] = "Ereignis",
		["Artikel"] = fulltitle
	}
	-- Wenn das Lemma eine Jahreszahl ist, merken
	if istJahreszahl(titlename) then
		year = titlename
    end
    local data_date = dateParsing(args[1], year)
    local all_data = merge_tables(data, data_date)
	return data_date["Startdatum"] .. ": " .. args[2] .. '<br>' ..
		tableToString(all_data)
end

function dateParsing(s, year)
	-- Parses a date down where s is the datestring and year can be nil or string
	
	-- Wenn s eine Zeitspanne ist, teile bei "-" oder "bis"
	local dates=split(s, '-')
	if len(d) == 1 then
		dates=split(s, 'bis')
	end
	
	-- Ist eine Zeitspanne wie "3. bis 5. Mai" angegeben, kopiere Monat aus Enddatum 
	local sds = checkYear(dates[0], year)
	local sd=human_to_form_date(d[0])
	
	
	local data = {
		-- Erstmal das Startdatum schreiben
		["SDstring"] = dates[0],
		["Startdatum"] = sd,
		["Startjahr"] = get_year(sd),
		["Starttag"] = get_monthday(sd),
		["length"] = len(d),
		["year"] = year,
	}
	
	local ed=nil
	if len(dates) == 2 then
		-- War eine Zeitspanne angegeben gibt es ein Endatum
		ed=human_to_form_date(d[1])
		data["EDstring"] = d[1]
		data["Enddatum"] = ed
		data["Endjahr"] = get_year(ed)
		data["Endtag"] = get_monthday(ed)
	end
	return data
end

function checkYear(s, year)
	-- Wenn s nicht auf eine Jahreszahl endet, dann füge diese hinzu
    return s
end

function checkMonth(s, month)
	-- Aua
	return s
end

return p