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