Commit Graph

182 Commits

Author SHA1 Message Date
Steven Hall e080eb33a5 Merge remote-tracking branch 'origin/main' into stevenh/synced-blocks-new-api 2024-03-29 15:19:59 +00:00
Steven Hall 7c8e896f19 Fix SyncedBlocks API 2024-03-29 15:17:37 +00:00
Samy Pessé 0d99906774 Fix crash with concurrent loading of shiki syntaxes (#2235) 2024-03-26 11:30:38 +01:00
Greg Bergé d3f9131af4 Support images & files in synced blocks (#2234) 2024-03-25 21:53:24 +01:00
Samy Pessé 7421d1c6c3 Cache getPublishedContentByUrl by tags (#326)
* Cache getPublishedContentByUrl by tags

* Reduce amount of cases returned by getURLLookupAlternatives

* Optimize lookup even more for revisions / change-requests

* Fix basePath for revisions / crs
2024-03-22 21:10:58 +01:00
Samy Pessé 44983f8495 Minor perf improvements to code block highlighting (#323)
* Use a singleton map when loading languages

* typing

* Lint

* Remove one trace
2024-03-22 16:43:22 +01:00
Samy Pessé 31799038dd Improve rendering of complex emojis in favicon (#315)
* Improve rendering of complex emojis in favicon

* Lint
2024-03-20 19:25:42 +01:00
Samy Pessé dc2d50e455 Iterate over all keys in KV when purging cache instead of just first page (#312)
* Iterate over all keys in KV when purging cache instead of just first key

* Call getTagPrefix once
2024-03-20 18:48:17 +01:00
Samy Pessé fc9238498d Only use GITBOOK_TOKEN when request is using default API (#309)
* Only use GITBOOK_TOKEN when request is using default API

* Format
2024-03-20 10:40:38 +01:00
Samy Pessé cf958bacd1 Fallback to MathJax when KaTeX fails to compile math (#303)
* Start

* Use MathJax v3

* Format

* Improve font-size

* Lint

* Better handle loading

* Copy MathJax assets to public folder

* Attempt at using local assets for MathJax

* Use bun 1.0.31

* Try with bun 1.0.33

* Try fixing headers

* Simplify

* Simplify and not use suspense module

* Cleanup more

* Add test for Math

* Make math block scroll if needed

* Update packages/react-math/src/KaTeX.tsx

Co-authored-by: Greg Bergé <berge.greg@gmail.com>

* Use React.use

* Format

* Use exports

* Lint

* Disable cache in CI for lint

* Format

---------

Co-authored-by: Greg Bergé <berge.greg@gmail.com>
2024-03-19 11:34:53 +01:00
Samy Pessé d0b92dd408 Improve text displayed in mention for anchor content refs (#287)
* Resolve anchor content reference to the block text for mentions

* Only apply it for mentions/etc, where text is needed

* Handle tabs/expandable

* Rename to resolveAnchorText
2024-03-18 18:16:53 +01:00
Samy Pessé 66dcaf850f Ignore all errors for rendering integration blocks (#293) 2024-03-18 12:08:49 +01:00
Samy Pessé df92c72164 Fix resolution of first page document when content starts with empty group (#289)
* Fix resolution of first page document when content starts with empty group

* Lint
2024-03-18 09:23:23 +01:00
Samy Pessé a27fa68ae6 Fix scroll to hash and update next to 14.1.3 (#286)
* Update next to 14.1.3

* Scroll to hash when url changes

* Simplify tests

* Lint and format

* Fix TS

* Dummy comment

* Try async function
2024-03-18 08:55:30 +01:00
Samy Pessé 9e8cde48d4 Fix URL.canParse failing on some browsers (#285)
* Fix call to URL.canParse failing on some browsers

* format
2024-03-15 21:04:05 +01:00
Samy Pessé 5c7c17fe02 Fix OpenAPI parsing for Swagger 2.0 YAML anchors (#282) 2024-03-15 18:09:44 +01:00
Johan Preynat 66506143ef Redirect uppercase pages path to lowercase (#273)
* Redirect to lowercase pathname when page path has uppercase

* Also redirect in generateMetadata

* Rollback changes in middleware normalizeURL

* Improve argument type

* Only redirect in page component
2024-03-15 17:01:45 +01:00
Greg Bergé 50346135f9 Refactor image sizing logic (#278)
Fix RND-3140
2024-03-15 16:21:03 +01:00
Steven H f98146f5b6 Show a single page when user clicks Export as PDF (#279) 2024-03-15 15:08:41 +00:00
Steven H 88a7ab21a2 Revert a change in the way we await for local caches to update. (#277) 2024-03-15 14:03:00 +00:00
Steven H a4099dff9e Remove awaiting for local caches to set their values whilst we investigate hanging pages. (#275) 2024-03-15 13:47:31 +00:00
Steven H 98f91d9e82 Reduce local caches to 30s (#274) 2024-03-15 13:34:52 +00:00
Greg Bergé 4c2625c277 Fix memory cache usage, use the same value of 1 min for non immutable in local cache (#272) 2024-03-15 12:37:27 +01:00
Greg Bergé 77b6228677 Fix an issue where we were caching mutable cache entries indefinitely. (#270) 2024-03-15 11:22:15 +00:00
Johan Preynat ff93689d4e Rollbacking lowercasing paths since it breaks share links... (#271) 2024-03-15 12:01:58 +01:00
Samy Pessé f77b2b6cd7 Fix resolution of content-refs to pages in another space (#267)
* Fix resolution of content-refs to pages in another space

* Fix title of the content ref
2024-03-15 11:25:23 +01:00
Johan Preynat e462ac837e Redirect URLs containing uppercase characters to lowercase (#266)
* Add tests for normalizeURL

* Redirect requests containing uppercase in pathname to lowercase via normalizeURL

* Fix typo
2024-03-15 11:24:41 +01:00
Johan Preynat 654a9e6227 Increase getDocument timeout to 20s to prevent failing while the API is normalizing documents (#264) 2024-03-14 20:35:00 +01:00
Steven H 80d45c3ff7 Force light mode when exporting PDF. (#242) 2024-03-14 16:40:49 +00:00
Steven H e5a9d16d7e Mitigate long loading times on spaces with many files. (#260) 2024-03-14 11:41:11 +00:00
Samy Pessé d0eebceacf Batch request for getRevisionFile to avoid too many sub-requests (#259)
* Try approach with batching

* Improve it to support getRevision

* Fix

* Real fix

* Implement skip

* Lint
2024-03-13 18:10:07 +01:00
Greg Bergé 76dbf0f0d3 Tag synced block in API (#256) 2024-03-13 15:32:52 +01:00
Steven H 9f83b0e783 Fix an issue where an incorrect cache key was used for revisions and pages, causing 404s and 500s. (#254) 2024-03-13 13:20:57 +00:00
Samy Pessé b0a9361cbd Disable redis cache (#253) 2024-03-13 13:36:38 +01:00
Samy Pessé e34b923e4a Correctly handle errors in blockFallback when inputs are running (#249)
* Correctly handle errors in blockFallback when inputs are running

* Format

* Fix case of steven
2024-03-13 12:54:49 +01:00
Samy Pessé cf4b1249a9 Optimize performances for reading revisions (#251)
* Optimize read of revisions with metadata=false when possible

* Format

* Fix

* Update src/components/AdminToolbar/AdminToolbar.tsx

Co-authored-by: Steven H <shne24@gmail.com>

---------

Co-authored-by: Steven H <shne24@gmail.com>
2024-03-13 12:54:32 +01:00
Samy Pessé 221d85cc4d Optimize caching of revisions/documents (immutable entries) in memory and cloudflare cache (#252)
* Better handle immutable cache entries in memory/cf-cache

* Format

* Update src/lib/cache/utils.ts

Co-authored-by: Steven H <shne24@gmail.com>

---------

Co-authored-by: Steven H <shne24@gmail.com>
2024-03-13 12:54:22 +01:00
Samy Pessé 3725239e92 Skip data: images for image resizing (#248) 2024-03-13 11:36:06 +01:00
Samy Pessé bdbd14c560 Fix next edge runtime not liking error in logs (#247)
* Fix next edge runtime not liking error in logs

* Fix other errors
2024-03-13 11:04:43 +01:00
Taran Vohra 0da4e9a926 Fix visitor auth logic by testing multiple basePaths (#239)
* WIP

* add search params to target in multi-path

* Simplify

* Format

* Ensure trailing slash

* Add unit test

* fix lint

* use search from target in redirect

* remove unused import

---------

Co-authored-by: Samy Pessé <samypesse@gmail.com>
2024-03-13 13:54:47 +05:30
Samy Pessé c13f676ea8 Fix content references to other spaces (#243) 2024-03-12 20:43:07 +01:00
Samy Pessé d326822b9d Pass token to getPublishedContentByUrl to ensure rate-limit settings are propagated (#244) 2024-03-12 20:33:28 +01:00
Steven H e39e1db484 Fix an issue where track_view was failing. (#240) 2024-03-12 15:53:58 +00:00
Samy Pessé 6849df49ec Fix error with primary revision being fetched instead of specific one (#236) 2024-03-12 12:03:13 +01:00
Samy Pessé 56a9d5601b Fix cache revalidation in KV and output stats on revalidation (#231)
* Store setAt on cache meta and output stats on revalidation

* Delete from KV cache

* test more

* Improve

* Format

* Store the key in metadata

* Avoid storing too much in KV

* Don't put tag on resolve of url
2024-03-11 13:30:26 +01:00
Samy Pessé 642e33444a More immutable cache and pre-revalidation (#229)
* Try different approach

* Revalidate before cache expires

* TS

* Only replicate to local backends

* Ensure revalidate is done only once for the same key

* Improve perf of getCacheKey

* Simplify type

* Use better method and comment

* Use it 7 days only
2024-03-11 09:35:20 +01:00
Samy Pessé 0e858b1a43 Improve span name in sentry for cache (#228)
* Improve span name in sentry for cache

* Better use `trace`

* One more span

* Lint

* Log memory usage

* Reuse span between fetchValue and get
2024-03-09 14:31:23 +01:00
Samy Pessé 510a6f39d7 Fix revalidation and redis get (#226)
* Log

* Try to fix

* Use automaticDeserialization

* Log errors

* Ignore AbortError
2024-03-08 16:38:43 +01:00
Samy Pessé f9e3835c2f Simplify redis cache and remove hits count (#225)
* Simplify redis cache and remove hits count

* Fix naming

* Update src/lib/tracing.ts

Co-authored-by: Steven H <shne24@gmail.com>

---------

Co-authored-by: Steven H <shne24@gmail.com>
2024-03-08 13:05:32 +01:00
Samy Pessé 55d1e538d9 More resilient caching and use of KV (#222)
* Add unit tests for "race"

* Reduce to 80s

* Implement a Cloudflare KV cache

* Format

* Lint

* Fix tagging of entries in KV

* No longer use HTTP cache tags

* Simplify tags to only keep 2

* Implement a blockFallback logic

* Improve the block fallback logic

* More tests

* Start introducing a always optional signal on all cache ops

* Correctly pass signal end to end

* Fix one more case and add tests

* Fix it

* Add test for error

* Fix error handling

* Simplify even more

* Improve logs

* Improve logs / measurements

* Fix timing

* Fix read cache duration and add minor tests

* Log redis time

* Change replication logic

* Fix redis errors

* Log more

* More logs and test memory first

* Improve tracing for cache backends

* Ignore all dependencies

* Log the key in the cache low level traces
2024-03-08 09:43:30 +01:00