diff --git a/Library/Widgets/Calendar.md b/Library/Widgets/Calendar.md index 8dae9f3..417f9b8 100644 --- a/Library/Widgets/Calendar.md +++ b/Library/Widgets/Calendar.md @@ -11,17 +11,15 @@ function generate_calendar(calendarID, year, month) -- A specified year and month will always display that calendar. if year == 0 and month == 0 then local wantedMonth = clientStore.get("calendar:" .. calendarID) + editor.flashNotification(wantedMonth) -- Calculate year and month from the current date plus a month offset. if wantedMonth == nil then - wantedMonth = tonumber(os.date("%Y")) * 12 + tonumber(os.date("%m")) + wantedMonth = tonumber(os.date("%Y")) * 12 + (tonumber(os.date("%m"))-1) end year = (wantedMonth - (wantedMonth % 12)) / 12 - month = wantedMonth % 12 - if month == 0 then - month = 1 - end + month = wantedMonth % 12 + 1 end - + local events = query[[ from index.tag "event" where @@ -73,12 +71,12 @@ function generate_calendar(calendarID, year, month) for _, e in pairs(events) do local datematch = e.at.match( string.format("^%d-%02d-%02d( +[0-9]+:[0-9]+)?", year, month, day)) - if #datematch >= 2 and not datematch[2] then + if datematch and #datematch >= 2 and not datematch[2] then cellcontent = cellcontent .. string.format( [[
%s
]], e.ref, e.name ) - elseif #datematch >= 2 and datematch[2] then + elseif datematch and #datematch >= 2 and datematch[2] then cellcontent = cellcontent .. string.format( [[ @@ -166,75 +164,72 @@ end ```space-style .calendartable { border-collapse: collapse; - /* width: 500px; */ + + table { + border-color: var(--panel-border-color); + border: 2px solid #444; + border-collapse: collapse; + + th { + width: 14%; + padding: 3px; + text-align: left; + background-color: var(--panel-background-color); + color: #852624; + border: 1px solid #aaa; + } + + td { + width: 14%; + padding: 3px; + text-align: left; + vertical-align: top; + border: 1px solid #aaa; + + &.today { + background-color: #f6f3c2; + } + } + } + + a { + text-decoration-line: none; + color: var(--root-color); + + &.mark { + text-decoration-line: none; + color: var(--ui-accent-text-color); + } + } + + span.extramarker { + background-color: yellow; + } + + .event { + background-color: #2ca05a; + color: #fff; + border-radius: 4px; + padding: 4px 8px; + margin-top: 8px; + max-width: 200px; + white-space: normal; + overflow-wrap: normal !important; + word-break: normal !important; + + &.all-day { + background-color: #852624; + } + + .time { + font-weight: bold; + } + } + + .month-prev, + .month-next, + .month-now { + cursor: pointer; + } } - -.calendartable table { - border-color: var(--panel-border-color); - border: 2px solid #444; - border-collapse: collapse; -} - -.calendartable th { - width: 14%; - padding: 3px; - text-align: left; - background-color: var(--panel-background-color); - color: #852624; - border: 1px solid #aaa; -} - - -.calendartable td { - width: 14%; - padding: 3px; - text-align: left; - vertical-align: top; - border: 1px solid #aaa; -} - -.calendartable td.today { - background-color: #f6f3c2; -} - -.calendartable a { - text-decoration-line: none; - color: var(--root-color); -} - -.calendartable a.mark { - text-decoration-line: none; - color: var(--ui-accent-text-color); -} - -.calendartable span.extramarker { - background-color: yellow; -} - -.calendartable .event { - background-color: #2ca05a; - color: #fff; - border-radius: 4px; - padding: 4px 8px; - margin-top: 8px; - max-width: 200px; - white-space: normal; - overflow-wrap: normal !important; - word-break: normal !important; -} - -.calendartable .event.all-day { - background-color: #852624; -} - -.calendartable .event .time { - font-weight: bold; -} - -.calendartable .month-prev, -.calendartable .month-next, -.calendartable .month-now { - cursor: pointer; -} - ``` diff --git a/README.md b/README.md new file mode 100644 index 0000000..ac043f3 --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +# Calendar + +```lua +generate_calendar(idString, fixedYear, fixedMonth) +``` + +## Aktuell månad +Genererar en kalender med dagens datum, eller sparar senaste månaden med namnet "foo". Genereras en till kalender med samma namn visar den samma månad. + +```lua +generate_calendar("foo", 0, 0) +``` + +## Specifik månad +För att visa en kalender med enbart september 2025: +```lua +generate_calendar("fixed:1", 2025, 9) +``` + +## Events + +Events läggs till med: +```plaintext +* En text för eventet [at: 2025-09-10] #event +``` + +eller + +```plaintext +* En text för eventet [at: 2025-09-10 08:00] #event +``` \ No newline at end of file