.. 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")
```
31 lines
1,018 B
Markdown
31 lines
1,018 B
Markdown
---
|
|
layout: download
|
|
board_id: "e_fidget"
|
|
title: "E-Fidget Download"
|
|
name: "E-Fidget"
|
|
manufacturer: "2231puppy"
|
|
board_url:
|
|
- "https://e-fidget.xyz"
|
|
board_image: "e_fidget.jpg"
|
|
date_added: 2023-01-04
|
|
family: raspberrypi
|
|
features:
|
|
- Battery Charging
|
|
- USB-C
|
|
---
|
|
|
|
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
|
|
|
|
[Documentation](https://e-fidget.xyz)
|
|
|
|
[Design Source](https://github.com/2231puppy/E-Fidget)
|
|
|
|
## Purchase
|
|
|
|
Coming soon! In the meantime, you can download the design sources from the link above and make one yourself!
|