.. 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")
```
884 B
884 B
| layout | board_id | title | name | manufacturer | board_url | board_image | date_added | family | bootloader_id | features | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| download | snekboard | Snekboard Download | Snekboard | keithp.com |
|
snekboard.jpg | 2019-07-30 | atmel-samd | snekboard |
|
Snekboard is designed to hook up to Lego Power Functions motors and switches, allowing you to build robots out of Lego and control them with CircuitPython or the simpler snek programming language.
Snekboard is 48mm × 48mm, which is the same size as 6 x 6 Lego studs allowing you to build a box out of Lego to hold it attached to your Lego design. It uses a single cell lithium polymer battery that fits under the board and charges over USB while snekboard is being programmed from the host.