Conversation
- Add _data/events.yml with seed data (3 LF events + 2 third-party) - Replace events listing template with month-by-month calendar grid - Vanilla JS for month navigation with current month auto-select - Color-coded badges: blue (Linux Foundation), green (Third Party) - Scrollable chronological event list with past events greyed out - Calendar shows event names on day cells - Responsive SCSS styles consistent with site design Signed-off-by: Madelyn Olson <madelyneolson@gmail.com>
Signed-off-by: Madelyn Olson <madelyneolson@gmail.com> Remove extra file Signed-off-by: Madelyn Olson <madelyneolson@gmail.com>
2fbde8f to
9afd399
Compare
|
Can we at a minimum link to this event calendar from the front page so it’s discoverable? |
stockholmux
left a comment
There was a problem hiding this comment.
I could pick apart this Javascript all day long but I will refrain: there are a ton of little non-ideal bits and gotchas but there is lots of worse JS in the wild (and this isn't, like, a critical thing). The parseInt w/o radix is a real bug though, you should use Number instead.
My main issue here is that you're creating two different sources for the events (and maintaining long YAML in git is annoying with merge conflicts, IMHO).
Instead of a YAML file, we could have each event as a .md file in /content/events with all the metadata in the front matter (which can either be TOML or YAML or JSON, Zola doesn't care). For third party events., render is just set to false so it won't create a page.
Then, you just loop over section.pages as in the current version to create your events collection.
One other note: creating the calendar via JS is a little suboptimal. The SEO value is definitely reduced (although this isn't as deadly as it was a few years back).
This was intentional, because some events don't really deserve a md file. It seems dumb to make a dummy page for sake of making a dummy page. I'd rather invert it and have the yaml build out the events markdown if we think it's so important to not duplicate. |
I think you misunderstand, setting |
This doesn't work exactly the way you think it does, but I'll see what I can do. |
- Replace parseInt() with Number() to avoid radix bug - Remove IIFE, use DOMContentLoaded for DOM safety - Update event colors from old template colors to site theme - Fix calendar centering with symmetric padding - Add comment to events.yml about dual data source Signed-off-by: Madelyn Olson <madelyneolson@gmail.com>
Remove _data/events.yml and source all event data from markdown frontmatter in content/events/. Each event page now has event_type, location, and location_url in its [extra] section. Third-party events use extra.external_url to link externally instead of to a local page. This eliminates the need to maintain event data in two places. Signed-off-by: Madelyn Olson <madelyneolson@gmail.com>
Signed-off-by: Madelyn Olson <madelyneolson@gmail.com>
Signed-off-by: Madelyn Olson <madelyneolson@gmail.com>
e8ccf11 to
d35da17
Compare
So Render = false does not let them show up in section pages. The simple solution was just to redirect it to the remote URL, which we have. Maybe still useful if we want to track the line with google analytics? |
|
I'm OK with the current version as it is; we still need to figure out the following items in the next iteration:
|
|
@stockholmux ping |
stockholmux
left a comment
There was a problem hiding this comment.
Overall this is fine. If you're going to do a meta refresh, might as well not render the entire page.
I toyed around with the render= false bit and indeed, it didn't act as I thought it would. Most other SSG (Hugo, Jekyll) have a way to let a page exist in the parent loops but not render HTML. Weird.
I suspect that there is a way to do it but we're just missing it. Nonetheless, the way it is done right now won't do heinous harm, just maybe a little inefficient.
Signed-off-by: Madelyn Olson <madelyneolson@gmail.com>
|
@stockholmux Done, gtg? |
Description
Created a very simple JS driven calendar for the event page and make the events more YAML driven. There are two types of events: Valkey first party (hosted by LF) and Third Party events. Still missing all of the "Valkey was here" events, easy to add as a followup, but wanted to get alignment here first.
I'm not sold on the data layout, maybe there is a better strategy, but just started with this.
AI notice: Most of the CSS and Javascript was AI generated by Claude but I looked over and fixed the stuff I understood.
** New image**
Check List
--signoffBy submitting this pull request, I confirm that my contribution is made under the terms of the BSD-3-Clause License.