-
-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Date plugin: Format the date from frontmatter exactly as I specified it #555
Comments
As an idea, you can preprocess the pages to change the date: 2024-01-18 20:44:58
timezone: Asia/Bangkok And then process the pages assigning the correct timezone. Lume 2 uses Temporal polyfill (in Let me know if you can solve it with this. If it works fine, maybe this could be a Lume plugin (Some people ask me about using different timezones in multilanguage sites). |
@oscarotero Thanks for replying. Yes, that'd work too, with the added benefit of documentation in the frontmatter. But if not, would it be improper to suggest that Lume provides the frontmatter as a part of the
As "raw" as possible, meaning, no Or do you consider it leaky? |
That's no easy. The date parsing is not performed by Lume, but by yaml parsed https://deno.land/[email protected]/front_matter/mod.ts |
I have only just started using Lume an ran into the same challenge that original timezone offsets do not make it into the page's I believe it happens in: Line 30 in f973940
> extractYaml(`---
date: '2016-01-01T15:42:00.001+11:00'
---
`)
{
frontMatter: "date: '2016-01-01T15:42:00.001+11:00'",
body: "",
attrs: { date: "2016-01-01T15:42:00.001+11:00" }
} Lume is using Temporal.ZonedDateTime.from("2016-01-01T15:42:00+11:00[Australia/Sydney]") A date with offset It would be great if Lume either preserved the original unparsed date (or whole plain front_matter object) in the page data or provide a hook for parsing it. A |
@kollhof Nice find, I didn't know Lume was using Temporal internally. Out of curiosity, how do you plan on formatting the timezone-aware dates in your markup? I'd love for this end-to-end flow to work:
|
Lume uses Temporal internally to parse the date: 2016-01-01T15:42:00.001+11:00 # parsed by @std/yaml
date: '2016-01-01T15:42:00.001+11:00' # parsed by lume What Lume does is to normalize the Date parsing to match yaml behavior in those cases in which the date is not parsed by yaml: i.e. if it's exported as a quoted date, if has a special value like As an idea, you can use a different named variable to store the date as you want. For example, tz_date: '2016-01-01T15:42:00.001+11:00' Then, you can create a preprocessor to parse the date as you want and even modify the |
Interesting, I was not aware of the yaml parser doing that, thanks. |
Enter your suggestions in details:
Hi! Not sure I'm holding this wrong, but I've got a (deceivingly simple) date problem.
Request
I want the specified date and time from my Markdown frontmatter to show in the built site. Currently, all dates and times are formatted in UTC (or whatever
TZ
is on the machine building the site).Use case
For the
date
field in my posts' frontmatter, I use my current local time with time zone offset. Like this:Note the included timezone offset.
When formatting that in the templates, I want that date and time to show. It works on my machine (classic!), but when building on CI for deploying, dates are showing in UTC.
Using the format string
PPP — HH:mm
:when I want:
I just want whatever I input as the formatted output 😄
I've read about setting the
TZ
var when building withlume
, but I can't do that, since the local time for each post might vary (I might post across timezones).Also, I can't do my own hacky date parsing and formatting, since I don't have access to the raw frontmatter record on the
Page
data: I only have the already parseddate: Date
.Maybe this is out of scope for Lume, but I thought I'd ask. Thanks for a never ending great job ❤️
Info
Related:
The text was updated successfully, but these errors were encountered: