Commit graph

2233 commits

Author SHA1 Message Date
vr8hub
aeb2a0877e Add item for initial caps in a chapter 2025-01-21 12:35:04 -06:00
Weijia Cheng
2a220cff21 Make bold/strong regular expression catch more cases 2025-01-21 09:36:25 -06:00
erin
43cf946cc9 Add Descartes to-do summary document to spreadsheets page 2025-01-21 09:35:31 -06:00
vr8hub
5bd6853498 Add checks for bold/strong and illustration names/ids 2025-01-19 14:31:36 -06:00
Alex Cabal
37aaa97b66 Brower compatibility for ::before alt text 2025-01-19 13:28:45 -06:00
Alex Cabal
8a15519b0e Hide honeyhot link from older browsers 2025-01-18 22:29:17 -06:00
Alex Cabal
617df6dda0 Add honeypot link to deployed ebook files 2025-01-18 20:41:27 -06:00
Alex Cabal
bf010f8e3c Fix rotate log script 2025-01-18 18:57:25 -06:00
Alex Cabal
0483a6d841 Add empty alt text for some CSS pseudo elements 2025-01-18 17:44:22 -06:00
Alex Cabal
5b0d37824b Add configuration to stop rude bot crawlers using fail2ban 2025-01-18 17:37:47 -06:00
Alex Cabal
8f2df6ac12 Fix broken Apache config 2025-01-18 17:32:38 -06:00
Mike Colagrosso
5b5c75b2c8 Remove apostrophes, don't preserve them
Searching by `UrlName`, now for both `Artwork` and `Artist`, is clearer.
Take care to remove the apostrophes outright, don't replace them with a
space because otherwise the letter after the apostrophe becomes its own
term to match.

Follow up to the fix for #461
2025-01-18 11:03:05 -06:00
Mike Colagrosso
bb7fe5d1ac Search artwork by UrlName
`Artwork::GetAllByFilter()` is already removing diacritics from search
terms, and `UrlName` stores the artist's name with diacritics removed by
calling `Formatter::MakeUrlSafe()`.

Keeping the search by `Name` because `Formatter::MakeUrlSafe()` makes
other changes to the name, too.

Fixes #461
2025-01-18 11:03:05 -06:00
Alex Cabal
db8d422133 Simplify validation logic 2025-01-15 16:16:45 -06:00
Mike Colagrosso
38f4e34a11 Match Contributor UrlName to Identifier
Fixes #459
2025-01-15 15:47:04 -06:00
Alex Cabal
14cdd74585 Enable Hudson River Bracketed in blog post 2025-01-15 14:53:09 -06:00
Alex Cabal
bdeebc8291 Add endpoint to get collections for an ebook or placeholder 2025-01-15 14:32:50 -06:00
Alex Cabal
ed5540c177 Enable latest blog post 2025-01-15 13:03:53 -06:00
Alex Cabal
e85d833bad When adding an artwork ebook URL, confirm that that ebook exists 2025-01-13 20:30:46 -06:00
Neil Pankey
f8a050486b Update 20,000 Leagues note to 2025 2025-01-10 16:40:59 -06:00
Alex Cabal
284898a805 Replace ' with ’ in contributor names 2025-01-10 12:07:59 -06:00
Alex Cabal
c36d1ac3d3 Rename exception for consistency 2025-01-09 14:08:54 -06:00
Alex Cabal
94d62fdcdf Fix exception for duplicate ebook placeholder on save 2025-01-09 14:07:40 -06:00
Alex Cabal
d9fe3e9303 Fix error handling for duplicate ebook placeholders 2025-01-09 14:00:50 -06:00
Alex Cabal
047a76b788 When adding an ebook placeholder, don't incremenet the series number if it was empty 2025-01-08 19:33:54 -06:00
Alex Cabal
affe29e83c Fix type issue 2025-01-08 19:33:43 -06:00
Alex Cabal
bc16b1fff8 Add endpoint to get reviewer for an in-progress project 2025-01-07 21:42:51 -06:00
Alex Cabal
87620287f1 Don't check max string length for ebook description 2025-01-07 10:12:04 -06:00
Alex Cabal
13eb02842a Tweak donation banner end date 2025-01-07 10:12:04 -06:00
Alex Cabal
0105bfefa4 Tweak donation banners and some type safety 2025-01-06 13:25:02 -06:00
Alex Cabal
c07b4cec1e Abandon projects after 60 days, not 90 2025-01-06 12:17:57 -06:00
Alex Cabal
a68826b54b Set new projects for existing placeholders as 'in progress' when creating a project 2025-01-06 12:12:07 -06:00
Alex Cabal
aad37981ab Add script to delete users who have no other connections in the database 2025-01-06 10:56:50 -06:00
Alex Cabal
343d92f7c9 Tweak drive ending times 2025-01-06 10:30:08 -06:00
Alex Cabal
07836555cd Add social media manager to about page 2025-01-05 20:54:08 -06:00
Alex Cabal
3260f45d9b Hide stretch goal base on responsive view 2025-01-05 13:55:41 -06:00
Alex Cabal
ce618dd49d Allow hyphenation in responsive donation dialog 2025-01-05 13:54:42 -06:00
Alex Cabal
1cb4cbfe24 Redirect ebook searches for only one tag to the /subjects/<TAG endpoint 2025-01-05 13:52:09 -06:00
Alex Cabal
99508cc490 Correctly return 404 instead of 403 for ebooks with spaces in the URL 2025-01-05 13:27:35 -06:00
Alex Cabal
719393f12a Don't include placeholders in sitemap 2025-01-05 13:24:17 -06:00
Alex Cabal
d590ce74b9 Don't show download/feed links for an author if all of their books are placeholders 2025-01-05 13:19:35 -06:00
Alex Cabal
cce0c328d1 Add <meta rel="canonical"> elements when deploying ebook 2025-01-05 13:07:59 -06:00
Alex Cabal
692e418aee Remove social media manager ad 2025-01-04 14:34:53 -06:00
Alex Cabal
a61ddd0060 Consistent variable name 2025-01-03 18:50:27 -06:00
Alex Cabal
7aa610168d Resolve Google Groups URL redirects 2025-01-03 18:46:46 -06:00
Alex Cabal
9b959e3eda Don't show year for updated dates in current year of project table 2025-01-03 13:43:59 -06:00
Alex Cabal
ea7cf4733c Update help wanted list in readme 2025-01-02 20:59:53 -06:00
Alex Cabal
f865ebcdd0 Tweak fleuron 2025-01-02 10:51:37 -06:00
Alex Cabal
ef5313ee48 Tweak donation banners in PD day post 2025-01-02 10:49:54 -06:00
Mike Colagrosso
0e7bff5d82 Rewrite MultiTableSelect queries with ON
Instead of `USING(EbookId)`, it would be easier to handle
`MultiTableSelect` queries in `FromMultiTableRow()` if the queries used

`ON Projects.EbookId = Ebooks.Ebooks`

This is because `USING` will return only one `EbookId` column, but `ON`
will return all columns from both tables.
2025-01-02 09:57:45 -06:00