.. leading zeros are required for `frontmatter` to treat them as dates
rather than strings, apparently per the YAML specification.
This was done by script:
```py
import re
import datetime
import pathlib
import sys
import frontmatter
rx = re.compile(r'^(\s*)date_added:.*$', re.M)
for path_str in sys.argv[1:]:
print(path_str)
path = pathlib.Path(path_str)
post = frontmatter.load(path)
date_added = post.get("date_added", "")
if isinstance(date_added, datetime.date):
continue
if isinstance(date_added, str):
try:
date_added = datetime.datetime.strptime(date_added, "%Y-%m-%d")
except ValueError as exc:
print(f"Failed to parse date {date_added} in {path_str}: {exc}")
continue
date_added = date_added.date()
content = path.read_text("utf-8")
new_content = rx.sub(lambda m: f"{m.group(1)}date_added: {date_added}", content)
assert content != new_content
path.write_text(new_content, "utf-8")
```
1,018 B
1,018 B
| layout | board_id | title | name | manufacturer | board_url | board_image | date_added | family | features | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| download | e_fidget | E-Fidget Download | E-Fidget | 2231puppy |
|
e_fidget.jpg | 2023-01-04 | raspberrypi |
|
The E-Fidget is a new kind of fidget spinner. It uses haptic feedback in the form of 8 vibration motors to simulate the feeling of spinning while not moving at all. This provides several benefits, including being able to be "spun" from inside of a pocket to reduce distraction, and much lower noise levels. It's equipped with the venerable RP2040, and it's 100% OSHW! Includes 16 MBits (2 Megabytes) of external QSPI flash. It'll be available for purchase soon, or you can download the source files and order one today!
More Info
Purchase
Coming soon! In the meantime, you can download the design sources from the link above and make one yourself!