.. 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.3 KiB
| layout | board_id | title | name | manufacturer | board_url | board_image | date_added | family | bootloader_id | features | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| download | openbook_m4 | Open Book Download | The Open Book | Oddly Specific Objects |
|
openbook_m4.jpg | 2020-01-16 | atmel-samd | openbook_m4 |
|
The Open Book is an open-hardware device for reading books in all the languages of the world. It includes a large screen and buttons for navigation, as well as audio options for accessibility and ports to extend its functionality. Its detailed silkscreen, with the all the manic energy and quixotic ambition of a Dr. Bronner's bottle, aims to demystify the Open Book's own design, breaking down for the curious reader both how the book works, and how they can build one for themselves.
For more detailed technical specifications, check out the Hackaday.io project page.
Purchase
The Open Book is not yet available for purchase, but you can order the board from OSH Park, and the BOM is available at the project's GitHub page. Instructions for assembly are printed on the front of the PCB.