Commit graph

4899 commits

Author SHA1 Message Date
Mouse Reeve d456ab7306 Move lists tests into directory 2022-01-25 13:22:04 -08:00
Mouse Reeve f85158191b Use form for saving list items 2022-01-25 12:11:17 -08:00
Mouse Reeve a43731b335 Fixes tests for list actions 2022-01-25 10:08:54 -08:00
Mouse Reeve e1599384b0 Fixes list views tests 2022-01-25 09:46:00 -08:00
Mouse Reeve 38ccc23cd5 Add notes form 2022-01-25 09:40:03 -08:00
Mouse Reeve 6009593b6b Migration formatting 2022-01-25 09:17:00 -08:00
Mouse Reeve 037cc35eeb Adds merge migration and python formatting 2022-01-25 08:45:22 -08:00
Mouse Reeve de4576bc44 Merge branch 'main' into list-notes 2022-01-25 08:44:29 -08:00
Mouse Reeve 9902794bbd Adds edit note view 2022-01-25 08:44:04 -08:00
Joel Bradshaw 0c53f4e003 Fix linting and formatting 2022-01-25 01:09:27 -08:00
Joel Bradshaw a1a3aa45f4 Don't log autoload debug
This is just too much
2022-01-25 00:53:15 -08:00
Joel Bradshaw 9e6390662b Download fonts at app startup instead
We can't bake the font into the Docker image as such, because we mount
the volumes which blows away anything we have in the app tree
beforehand.

We could stash it somewhere in the image and then copy it from there on
app startup or something, but at that point we might as well just
download it as part of the app startup.
2022-01-25 00:53:01 -08:00
Joachim 766a0cc652 Fix tests 2022-01-24 23:16:15 -08:00
Joachim 6f5115c716 Use Source Han Sans for preview images generation 2022-01-24 23:16:15 -08:00
Joel Bradshaw 284eb620dd Add Source Han font for preview generation to Docker image
Include the license and a README explaining things in the repo itself.

Depending on an external source for this is intended to be temporary,
the goal is to have a Bookywrm-managed source for these, but this should
be stable enough for now.

We build it into the Dockerfile to make it available without adding it
to the git repo itself, because git history is forever and we don't want
to bake large files into the history.

Theoretically it would make sense to gate this download on the
ENABLE_PREVIEW_IMAGES environment variable, but ENV variables aren't
available at Docker image build time (for sensible reasons), so we just
unconditonally download it.

This does mean users will ultimately download it anyway, but the benefit
to doing this over adding it to the git history is that if we switch
fonts, or update this one, or change strategies altogether, this version
of the font will no longer have to be downloaded.

Additionally, the font won't be downloaded until the application is
actually built, which involves a bunch of other downloading (of Docker
images and the like), so it's a reasonable time to do it.
2022-01-24 23:16:14 -08:00
Mouse Reeve ca0dbeb0ab Move list views into more files 2022-01-24 19:39:30 -08:00
Mouse Reeve a1a84b28b0 Adds edit box 2022-01-24 13:56:18 -08:00
Mouse Reeve 8280386f0e Context for note block in list item 2022-01-24 13:45:52 -08:00
Mouse Reeve 5206d08dbb Adds demo display of comment in list entry 2022-01-24 13:37:51 -08:00
Mouse Reeve d0a4c78d02 Limit length on list item note 2022-01-24 12:02:05 -08:00
Mouse Reeve eeee62cd04 Adds Swedish to the app 2022-01-24 09:39:13 -08:00
Joel Bradshaw 7373fb4132
Fix typo from models refactor
Looks like this got caught up when moving to importing `models`
instead of the individual models, and was throwing an error on
`./bw-dev initdb`
2022-01-23 23:41:22 -08:00
Mouse Reeve 191079a922 Python formatting 2022-01-22 19:01:42 -08:00
Mouse Reeve e5c8500547 Updates cache buster 2022-01-22 17:05:31 -08:00
Mouse Reeve 3fc690e763 Calculate and translate unread status counts in view 2022-01-22 17:03:48 -08:00
Mouse Reeve 67c3091aa1 Fixes option checking in initdb management command 2022-01-22 15:09:30 -08:00
Mouse Reeve b35efb6eab
Merge pull request #1857 from bookwyrm-social/about-page-superlatives
Fixes display controls for about page superlatives
2022-01-20 17:20:04 -08:00
Mouse Reeve ce30f8a8f0
Merge pull request #1854 from bookwyrm-social/pending-users
Activate users in pending state when site registration mode changes
2022-01-20 17:02:28 -08:00
Mouse Reeve a8776843bd Fixes display toggle for about page superlatives 2022-01-20 17:00:15 -08:00
Mouse Reeve 7476964cca Show only recent results in rss feed view 2022-01-20 16:33:24 -08:00
Mouse Reeve e2e5ed9aa3 Makes default language configurable 2022-01-20 16:04:42 -08:00
Mouse Reeve 148f9b6f5e Activate pending users when email confirmation is disabled 2022-01-20 15:58:00 -08:00
Mouse Reeve 874e2e0a9c Adds test for activating users on change to registration mode 2022-01-20 15:21:28 -08:00
Mouse Reeve a0da5c75ff
Merge pull request #1853 from bookwyrm-social/author-page
Trying a new query to get author books
2022-01-20 15:19:11 -08:00
Mouse Reeve 4177654ccf
Merge pull request #1852 from bookwyrm-social/shelf-fixes
Shelf date on all books page
2022-01-20 15:14:21 -08:00
Mouse Reeve d5ddaa874f Trying a new query to get author books 2022-01-20 15:07:39 -08:00
Mouse Reeve afea857442 Uses max shelved date to get valid date for all books page 2022-01-20 14:28:30 -08:00
Mouse Reeve 28d675c5a0 Adds more shelf page tests 2022-01-20 14:25:24 -08:00
Mouse Reeve d9175ce0b0 HTML validity on shelf page 2022-01-20 14:19:41 -08:00
Mouse Reeve a54fc08983 Updates locales 2022-01-20 13:43:59 -08:00
Mouse Reeve db715cce2a
Merge pull request #1845 from bookwyrm-social/organizing-templatetags
Organizing templatetags
2022-01-18 14:51:13 -08:00
Mouse Reeve 8b8314f736 Fixes embed view 2022-01-18 14:27:19 -08:00
Mouse Reeve 93caa95855 Removes stray asssert line 2022-01-18 14:05:35 -08:00
Mouse Reeve c888895327 Adds missing tag loaders 2022-01-18 14:04:55 -08:00
Mouse Reeve 55ae6d1f8d
Merge pull request #1844 from bookwyrm-social/review-html
Fixes review markup for mastodon serialization
2022-01-18 13:42:02 -08:00
Mouse Reeve e47b5e788d Remove link form review title
html isn't supported in the name field I guess
2022-01-18 13:31:50 -08:00
Mouse Reeve 41c3eceb68 Updates tests 2022-01-18 13:19:04 -08:00
Mouse Reeve 3f487328e2 Adds more tests 2022-01-18 13:15:25 -08:00
Mouse Reeve ffaeb3381a Updates tests 2022-01-18 12:53:35 -08:00
Mouse Reeve ce0a49f64f Updates ratings and book display tests 2022-01-18 12:52:21 -08:00
Mouse Reeve 95c262c495 Renames group tags 2022-01-18 12:32:12 -08:00
Mouse Reeve 33c6e5aabe Moves remaining tags into new files 2022-01-18 12:28:59 -08:00
Mouse Reeve 3d63509e20 Updates snippets that use rating tags 2022-01-18 12:09:57 -08:00
Mouse Reeve b25fa5a193 Adds tests 2022-01-18 12:07:42 -08:00
Mouse Reeve 6e6e2ab777 Moves rating tag to file 2022-01-18 12:02:38 -08:00
Mouse Reeve 4f4d2dc53e Adds tests 2022-01-18 12:02:27 -08:00
Mouse Reeve 8746409e6d Adds shelf tags file 2022-01-18 11:20:27 -08:00
Mouse Reeve e3545517ec
Merge pull request #1837 from bookwyrm-social/author-page-caching
Author page caching
2022-01-18 11:02:49 -08:00
Mouse Reeve 1c096ecfc2 Fixes review markup for mastodon serialization 2022-01-18 10:57:52 -08:00
Mouse Reeve 8bbc4d3301 Cache checking if books are on shelve in shelve button snippet 2022-01-18 10:52:15 -08:00
Mouse Reeve 9e450f2d99
Merge pull request #1802 from cincodenada/configurable-logging
Make log level configurable, override default logging config
2022-01-18 07:39:43 -08:00
Mouse Reeve f5de0dd3c9 Fixes bug in verifying readthrough dates 2022-01-17 19:46:48 -08:00
Mouse Reeve a09c813f73 Python formatting 2022-01-17 19:04:20 -08:00
Joel Bradshaw 27a0b92de0 Fix include order 2022-01-17 16:12:16 -08:00
Joel Bradshaw 27acf668df Add the required bits for Django's logger
So, you can't define handlers piecewise, and if you redefine a logger,
you have to also include everything it uses, because your "new" logger
doesn't have a reference to the original logging config to get things
like mail_admins and require_debug_false.

require_debug_true isn't strictly necessary here, but it seemed strange
to just copy over one of them.
2022-01-17 15:56:24 -08:00
Joel Bradshaw 13a2c58b98 Use parameter-based formatting for debug 2022-01-17 15:14:01 -08:00
Mouse Reeve 02dd1e9443 Use False instead of None for test values 2022-01-17 12:45:32 -08:00
Mouse Reeve 1e4aee8276 Cache user-specific ratings 2022-01-17 12:17:24 -08:00
Mouse Reeve 4cc35ba25e Cache query for author's books 2022-01-17 12:05:11 -08:00
Mouse Reeve 32acccc350 Use both noopener and noreferrer 2022-01-17 11:25:41 -08:00
Mouse Reeve 8a0ea674ea
Merge pull request #1834 from bookwyrm-social/links-display
Improve link filetype and add availability field
2022-01-17 11:08:40 -08:00
Mouse Reeve 4c356cbeb4 Case insensitive suggestions 2022-01-17 10:52:16 -08:00
Mouse Reeve a23e49c9f3 Fixes filetype field length 2022-01-17 10:48:42 -08:00
Mouse Reeve 2f924faa05 Adds tests 2022-01-17 10:47:49 -08:00
Mouse Reeve cfcacb4797 Edit book availability 2022-01-17 10:00:12 -08:00
Mouse Reeve 1595bac9b5 Show availability in links panel 2022-01-17 09:26:00 -08:00
Mouse Reeve 39814a21f2 Set book availability 2022-01-17 09:22:40 -08:00
Mouse Reeve 7b1693a435 Larger file type field 2022-01-17 09:03:53 -08:00
Mouse Reeve 942092d6b1 Show link status more prominently on edit page 2022-01-17 08:54:52 -08:00
Mouse Reeve d4cfe5b8f0 Fixes embedded links modal 2022-01-17 08:44:30 -08:00
Mouse Reeve f769c42abe
Merge pull request #1833 from bookwyrm-social/links-admin-improvements
Links admin improvements
2022-01-17 08:36:48 -08:00
Mouse Reeve da6e43a7eb Avoid two character wide urls on mobile 2022-01-17 08:22:55 -08:00
Mouse Reeve e12372250a Mobile-friendly edit button on link domains 2022-01-17 08:17:36 -08:00
Mouse Reeve b9fde85b49 Sort domains in admin view 2022-01-17 08:15:14 -08:00
Mouse Reeve b060cf47f2 Fixes bad cache on content status reading buttons 2022-01-17 08:01:39 -08:00
Mouse Reeve 7dc7965b76 Fixes weird display of author page 2022-01-16 19:38:21 -08:00
Mouse Reeve 0c2537e27a
Merge pull request #1527 from bookwyrm-social/book-file-links
Book file links
2022-01-13 11:10:05 -08:00
Mouse Reeve d95830037a Adds admin notice 2022-01-13 11:00:59 -08:00
Mouse Reeve 66c67a54e2
Merge pull request #1822 from bookwyrm-social/group-query
Fixes searching for users in group view, with test
2022-01-13 08:53:15 -08:00
Mouse Reeve 0d12d82c12
Merge pull request #1818 from iamruinous/support-redis-db
add support for different redis db
2022-01-13 08:42:00 -08:00
Mouse Reeve c7b2b303da Fixes searching for users in group view, with test 2022-01-13 08:38:54 -08:00
Jade Meskill 900937ee5f
use REDIS_x_DB_INDEX instead of REDIS_x_DB, add optional setting to example env file 2022-01-13 09:16:16 -07:00
Jade Meskill 5a3d108c62
update fomatting to pass automated checks 2022-01-12 22:46:51 -07:00
Jade Meskill 6490c1eded
use correct environment variable for EMAIL_SENDER_DOMAIN 2022-01-12 21:49:57 -07:00
Jade Meskill 3638e18844
add support for different redis db 2022-01-12 19:44:11 -07:00
Mouse Reeve 2fbbdbc06a Runs prettier 2022-01-12 17:19:34 -08:00
Mouse Reeve e6355f76de Adds merge migration 2022-01-12 17:16:20 -08:00
Mouse Reeve d74360a13f Merge branch 'main' into book-file-links 2022-01-12 17:14:27 -08:00
Mouse Reeve a2fb1489b9 Merge branch 'main' into book-file-links 2022-01-12 17:11:29 -08:00
Mouse Reeve d1183fd003 Python formatting 2022-01-12 17:11:24 -08:00
Mouse Reeve fc06f0cdd1 Avoid console error 2022-01-12 17:08:10 -08:00
Mouse Reeve 80efd58881 Javascript file in correct template 2022-01-12 17:06:36 -08:00
Mouse Reeve 34635b0c3f Select trie based on data attr 2022-01-12 17:02:30 -08:00
Mouse Reeve 99ec87c67c Merge branch 'book-file-links' into autocomplete 2022-01-12 16:51:59 -08:00
Mouse Reeve 262e641c79 Creates link template subdirectory 2022-01-12 16:50:52 -08:00
Mouse Reeve 5fcdc284ce Removes duplicate atomic block 2022-01-12 16:41:23 -08:00
Mouse Reeve dedcbda2d8 Adds inbox test 2022-01-12 16:41:20 -08:00
Mouse Reeve b2262a5f98
Merge pull request #1816 from bookwyrm-social/privacy-translation
Build-in translations to privacy choices dropdown
2022-01-12 16:15:03 -08:00
Mouse Reeve 1513c73d48
Merge pull request #1817 from bookwyrm-social/opensearch-site-name
Use site name as shortname for opensearch
2022-01-12 16:14:09 -08:00
Mouse Reeve 84575cef9a Use site name as shortname for opensearch 2022-01-12 15:29:40 -08:00
Mouse Reeve 8b2335c52c Build-in translations to privacy choices dropdwon 2022-01-12 15:26:13 -08:00
Mouse Reeve c08b9e61c4 Fixes book link in table 2022-01-12 11:34:44 -08:00
Mouse Reeve 57a05e239b Python formatting 2022-01-12 11:17:30 -08:00
Mouse Reeve 24045685e1 Updates tests 2022-01-12 11:03:04 -08:00
Mouse Reeve 9c86132701 Adds missing bracket 2022-01-12 10:43:40 -08:00
Mouse Reeve 4a7013f104 Adds book path variable 2022-01-12 10:42:27 -08:00
Mouse Reeve 581e3d17e0 Fixes nested quotes 2022-01-12 10:41:48 -08:00
Mouse Reeve 5da2ce6427 Include author in content status headers 2022-01-12 10:35:02 -08:00
Mouse Reeve e452ec87d3 Link to book title in pure activitypub serialization of review 2022-01-12 10:15:26 -08:00
Mouse Reeve 4cf3f378ef Delete view 2022-01-12 10:08:49 -08:00
Mouse Reeve ebc451fdd2 Edit links view 2022-01-12 09:59:46 -08:00
Mouse Reeve 2ca41a0b11 Renames add link view 2022-01-12 09:16:24 -08:00
Mouse Reeve e6d9895854
Merge branch 'main' into book-file-links 2022-01-12 06:39:22 -08:00
Mouse Reeve de0c50196e
Merge pull request #1812 from bookwyrm-social/modal-triggers
Use updated modal triggers on shelf page shelf selector
2022-01-11 13:19:14 -08:00
Mouse Reeve e378e74901
Merge pull request #1811 from bookwyrm-social/cache-fix
Fixes active readthrough cache bug
2022-01-11 13:11:02 -08:00
Mouse Reeve 549d6e9b3b Use updated modal triggers on shelf page shelf selector 2022-01-11 13:10:25 -08:00
Mouse Reeve 6baab5d5a9 python formatting 2022-01-11 12:58:14 -08:00
Mouse Reeve 2fabad63e0
Merge pull request #1809 from bookwyrm-social/unread-notifications
Show unread notifications color
2022-01-11 12:55:18 -08:00
Mouse Reeve 26a089b3c9
Merge pull request #1810 from bookwyrm-social/shelf-breadcrumbs
Shelf breadcrumbs
2022-01-11 12:55:08 -08:00
Mouse Reeve 591bb955f8 Fixes active readthrough cache bug 2022-01-11 12:37:07 -08:00
Mouse Reeve 5fd0115216 Use translation snippet 2022-01-11 12:10:30 -08:00
Mouse Reeve 150756dbd0 Adds breadcrumbs to shelf page 2022-01-11 12:03:04 -08:00
Mouse Reeve 0abfc67c12
Merge pull request #1808 from bookwyrm-social/readthrough-form
Updates editing read-through flow
2022-01-11 12:01:21 -08:00
Mouse Reeve f4b655f952 Makes form names unique in readthrough modal 2022-01-11 11:45:37 -08:00
Mouse Reeve c12aa1ef79 Fixes test 2022-01-11 11:38:26 -08:00
Mouse Reeve 0d7801f6f4 Show unread notifications color 2022-01-11 11:04:56 -08:00
Mouse Reeve 9fdb75e2d3 Renames item layout file 2022-01-11 10:47:55 -08:00
Mouse Reeve 834eb95d9d Reformats readthrough view test 2022-01-11 10:43:17 -08:00
Mouse Reeve 0f9881365b Python formatting 2022-01-11 10:41:33 -08:00
Mouse Reeve 4ca90ca10f Renames class view 2022-01-11 10:40:32 -08:00
Mouse Reeve 68d943fb26 Preserve readthrough id in edit 2022-01-11 10:33:58 -08:00
Mouse Reeve a412f87c64 Match wording to state 2022-01-11 10:29:11 -08:00
Mouse Reeve 7ccb02f635 Use new modal for edits 2022-01-11 10:27:10 -08:00
Mouse Reeve cdaf0fe8e3 Show error message when start and finish date is invalid 2022-01-11 10:22:19 -08:00
Mouse Reeve 9521c477b2 Moves readthrough templates to dir 2022-01-11 09:58:28 -08:00
Mouse Reeve 0d2c6e63d1 Converts create readthrough to modal 2022-01-11 09:50:04 -08:00
Mouse Reeve 048460aec2 Don't show filters notice on paged feed 2022-01-11 09:12:30 -08:00
Mouse Reeve 4faf3cf09a Fixes button on search page 2022-01-11 09:12:04 -08:00
Mouse Reeve de1bace8f3 Updates tests 2022-01-11 08:06:52 -08:00
Mouse Reeve 60761b19ba Run prettier 2022-01-10 16:55:30 -08:00
Mouse Reeve 4202498442 Fixes one option trie case 2022-01-10 16:53:30 -08:00
Mouse Reeve f6d6285009 Updates trie function 2022-01-10 16:44:43 -08:00
Mouse Reeve 2746318152 Uses datalist for autocomplete suggestions 2022-01-10 15:47:40 -08:00
Mouse Reeve 380087da90 Merge branch 'book-file-links' into autocomplete 2022-01-10 15:32:20 -08:00
Mouse Reeve dcf8a8dab9 Fixes settings tab highlighting 2022-01-10 15:27:33 -08:00
Mouse Reeve c0b5e6ad78 Fixes linting errors 2022-01-10 15:00:37 -08:00
Mouse Reeve aee7e1ae41 Fixes redirect on reports modal 2022-01-10 14:58:10 -08:00
Mouse Reeve 78dd5caf9f Allow users to report spam links 2022-01-10 14:55:10 -08:00
Mouse Reeve 651d468b13 Show who added the link in admin view 2022-01-10 13:33:22 -08:00
Mouse Reeve 34f375c53c Store user that added link 2022-01-10 13:27:01 -08:00
Mouse Reeve 6c78a7b6ef Add user attribution to links and domains 2022-01-10 13:20:31 -08:00
Mouse Reeve 93fead47ef Reformats init command and adds Standard EBooks 2022-01-10 13:13:28 -08:00
Mouse Reeve dcf51020bc Removes initialization from migration
Just doesn't seem right
2022-01-10 13:05:08 -08:00
Mouse Reeve 8928e8da26 Corrects tests 2022-01-10 12:42:05 -08:00
Mouse Reeve 2880b311e1 HTML validity fix for summary tag 2022-01-10 12:30:24 -08:00
Mouse Reeve eec1155bb8 Adds admin view tests 2022-01-10 12:29:28 -08:00
Mouse Reeve 62f481c859 Fixes urls 2022-01-10 12:21:36 -08:00
Mouse Reeve d610115a5b Null state for links 2022-01-10 12:09:03 -08:00
Mouse Reeve 8ba3a4ab00 Adds link confirmation modal 2022-01-10 11:48:07 -08:00
Mouse Reeve 4ba375892a
Merge pull request #1793 from bookwyrm-social/more-caches
More caches
2022-01-10 11:25:26 -08:00
Mouse Reeve 4dfe9fd714 Support links with no name 2022-01-10 11:21:43 -08:00
Mouse Reeve 4820a2f982 Python formatting 2022-01-10 11:21:03 -08:00
Mouse Reeve f0ae37c331 Block or approve domains 2022-01-10 11:19:20 -08:00
Mouse Reeve 6b0967df39 Show related books in links preview 2022-01-10 11:03:10 -08:00
Mouse Reeve 3f280af715 Functionality to edit name 2022-01-10 10:48:27 -08:00
Mouse Reeve f580a51f24 Form to edit link domain display names 2022-01-10 10:39:09 -08:00
Mouse Reeve 32e3fdb438 Adds admin view 2022-01-10 10:12:28 -08:00
Joel Bradshaw 5cf1d8a30a Make it black 2022-01-09 23:53:23 -08:00
Joel Bradshaw 085dd24a62 Simplify and explain our overrides
This should also fix the 500s-in-prod issue, yay
2022-01-09 23:49:14 -08:00
Joel Bradshaw 83851c2933 Add bookwyrm-specific logging 2022-01-09 23:49:14 -08:00
Joel Bradshaw af3c84cd87 Add basic logging config 2022-01-09 23:49:14 -08:00
Mouse Reeve 0bfa15bb47 Adds id on static link edit view 2022-01-09 20:48:16 -08:00
Mouse Reeve aa9864a21e Only show approved links 2022-01-09 20:30:23 -08:00
Mouse Reeve 70fe7e17af Removes name ap field 2022-01-09 14:25:22 -08:00
Mouse Reeve 63075a6fe9 Updates models 2022-01-09 14:21:13 -08:00
Mouse Reeve bae01e1ea5 Updates modal 2022-01-09 14:20:52 -08:00
Mouse Reeve bae355e8d2 Adds link domain table 2022-01-09 13:19:29 -08:00
Mouse Reeve 4931e5cad2 Merge branch 'main' into book-file-links 2022-01-09 13:15:58 -08:00
Mouse Reeve 0a182e8150 Caches query for landing page books 2022-01-09 13:04:41 -08:00
Mouse Reeve e8c830750a No cache for suggested books 2022-01-09 13:00:02 -08:00
Mouse Reeve 6492ca2941
Merge pull request #1769 from joachimesque/thumbnail-generation-strategy
Change thumbnail generation strategy
2022-01-09 12:34:42 -08:00
Mouse Reeve 556c9ea98f Adjusts cache get_or_set to work with tests 2022-01-09 12:16:01 -08:00
Mouse Reeve 00e8574d1f Typo fix 2022-01-09 11:01:55 -08:00
Mouse Reeve ebf4c6127f
Merge pull request #1798 from joachimesque/annual-summary-fix-highest-link
Annual Summary: Fix link to book with highest page count
2022-01-09 10:08:13 -08:00
Joachim 278ce88b82 Annual Summary: Fix link to book with highest page count 2022-01-09 12:18:18 +01:00
Joachim 4c07c5e47e Add end message for populate_list_streams command 2022-01-09 12:11:52 +01:00
Joachim 734da71037 Remove backend setting 2022-01-09 10:36:06 +01:00
Mouse Reeve 599c79917e Makes query to get admins unique 2022-01-08 18:44:32 -08:00
Mouse Reeve 79f6fb966e Updates migration 2022-01-08 17:07:51 -08:00
Mouse Reeve 16a58ae079 Merge branch 'main' into book-file-links 2022-01-08 16:58:37 -08:00