* 7576 - initial support for HTML inside Markdoc.
This uses htmlparser2 to perform a pure token transform/mutation
on the markdown-it tokens, replacing the original raw HTML string
tokens with a richer set of tokens per HTML node, and in the process
Markdoc tags are interleaved in the resulting token graph at the
appropriate locations
This removes the legacy config of the @astrojs/markdoc integration
entirely (suggested by @bholmesdev) and introduces a new type for
options to be specified in the astro config, initially, with just the new
"enableHTML" option
When "enableHTML" is *not* enabled (the default), the behavior
of the entire @astrojs/markdoc integration should remain functionally
equivalent to before this change
* 7576 - fixed issues with whitespace preservation
also:
* cleaned up " to ' for astro project preferred linting
* made the html rendering test fixture use a dynamic path
* 7576 - detailed nested HTML test coverage
* 7576 - component + HTML interleaved tests
* 7576 - fix lint problems from previous changes
* 7576 - some commentary
* 7576 - file naming, refactor html under imports, package.json exports definition for html
* 7576
* move out of extensions dir, remove export
* cdata handling changes
* 7576
* inline license from third party code
* cleanup test class copy of HTML output
* remove // third party indicators for imports (clarification: not third party code, just a indicator this group of imports is third party)
* 7576 - fixed test before/after for DRY'ness
* 7576 - no need to React-ify HTML attribute case
* 7576 - rename "enableHTML" option to "allowHTML"
* Added Markdoc allowHTML feature changeset
* 7576 - updated README with allowHTML info
* 7576 - fixed changeset typo
* 7576 - minor edits based on PR feedback for docs
* 7576 - minor edits based on PR feedback for docs
* Basic support
* Add the fade transition
* Move CSS into a separate file
* Add transition name
* View Transitions changeset
* Replace the boolean transition with 'morph'
* Update to use `transition:animate`
* Use head propagation
* Move CSS into a separate file
* Add builtin animations and namespaced module
* Misquote
* Remove unused code
* Add automatic prefetching to the View Transitions router
* Use a data attribute for back nav animations
* Use [data-astro-transition]
* Add view transitions to examples
* Wait on the HTML response before calling startViewTransition
* Updated stuff
* Update the compiler
* Fix
* Fallback support
* Properly do fallback
* Simplify the selectors
* Put viewTransitions support behind a flag
* Upgrade the compiler
* Remove unused import
* Add tests
* Use an explicit import instead of types
* Fix case where the click comes from within nested content
* Fix linting
* Add a test for the back button
* Prevent glitch in fallback
* Do not combine selectors
* Fallback to MPA nav if there is an issue fetching
* Fallback swap if there are no animations
* Update packages/astro/src/@types/astro.ts
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Update packages/astro/components/ViewTransitions.astro
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* Update packages/astro/components/ViewTransitions.astro
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* Update the changeset
* PR review changes
* Update more based on review comments.
* Update the updateDOM default
* Pass in transitions options to the compiler
* Update broken tests
* Update .changeset/silly-garlics-live.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Update .changeset/silly-garlics-live.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Update .changeset/silly-garlics-live.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Update .changeset/silly-garlics-live.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* h2 -> h4
* Upgrade to stable compiler
* Remove exp redirects from sitemap
* Remove usage from examples
* Remove example updates
---------
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* Remove experimental flag for redirects config
* Remove experimental from tests
* Remove experimental CLI flag
* Add changeset
* Removing redirect test that is no longer relevant
* Remove experimental label"
* Update .changeset/dry-beers-grow.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Update .changeset/dry-beers-grow.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Remove old function
---------
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* fix(#7080): sitemap should only add trailing slash to pages
* fix(sitemap): only include pages in sitemap
* chore: add test
* chore: remove unused import
* docs: update readme
While this README doesn't distinguish between SSR mode and static mode (and SSR mode was recently made available for the sitemaps integration), there is one important difference: Dynamic routes that are server-rendered can't be used to create sitemap entries.
This note makes that clear.
* modifies prefetch to add the option to only prefetch certain pages on hover
* adds new pages to the test website to showcase prefetch-intent functionality
* adds tests to verify prefetch-intent behavior
* adds changelog
* waits until networkidle to check if the prefetching worked instead of waiting on a specific url load
* allows intentSelector to be either a string or array of strings
* Revert "allows intentSelector to be either a string or array of strings"
This reverts commit b0268eb0d5.
* fixes the multiple selector logic and adds tests
* updates docs to include new prefetch-intent integration
* Update packages/integrations/prefetch/README.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Update packages/integrations/prefetch/README.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Update packages/integrations/prefetch/README.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Update .changeset/little-cars-exist.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Update packages/integrations/prefetch/README.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
---------
Co-authored-by: Erika <3019731+Princesseuh@users.noreply.github.com>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* docs: add docs link to markdoc error
* docs: add named exports guide to README
* chore: changeset
* edit: no like so
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* edit: exposed as named exports
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
---------
Co-authored-by: bholmesdev <bholmesdev@gmail.com>
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* initial commit
* try to fix windows
* output files directly into the correct folder
* allow for rest parameters
* use fixed hook
* improve tests
* apply doc's team suggestions for README
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* try to fix prerendering
* apply doc's team suggestion for changeset
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* bump to minor
* readme update
* resolve review comments
* optimize memory allocation
* resolve review comments
* add removed link, to make sure old docs keep same
* resolve comment
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
---------
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* start of vercel split support
* Split Mode with the Vercel Adapter
* Write routes into the config.json
* Add a changeset
* Add docs
* Better changeset
* fix: move `node:` libs out of utils
* fix: node -> default
* chore: remove kleur from markdoc ex (why was this there??)
* chore: lock
* chore: changeset
* test: add fixture
* chore: remove unneeded files in fixture
* test: update test mdx filfe
* test: add test case
* mark component as mdx
* add error builder utility
* throw error when it comes from an MDX component
* chore: update lock file
* Add comment to refactor later
* apply review
* add missing comma
* fix: config, prism, shiki exports
* fix: type error for `render` property
* chore: use `.ts` files in select tests for type checks
* fix: type error on shiki() promise
* chore: changeset
* fix: propagate assets when using document `render: null`
* fix: reverse spread order
* refactor: use README rec in test
* chore: changeset
* chore: revert unneeded changes
* Utilizes the new standard WebAPI Fetch Headers.getSetCookie() function
to safely handle multiple set-cookie headers when converting from a
WebAPI Response to a NodeJS ServerResponse
Modifies the existing nodeMiddleware logic which first set AstroCookies
on ServerResponse.setHeader(...) and then called
ServerResponse.writeHead(status, Response.headers) which means any that
if the WebAPI Response had any set-cookie headers on it, they would
replace anything from AstroCookies.
The new logic delegates appending AstroCookie values onto the WebAPI
Response Headers object, so that a single unified function safely
converts the WebAPI Response Headers into a NodeJS compatible
OutgoingHttpHeaders object utilizing the new standard
Headers.getSetCookie() function provided by the undici WebAPI polyfills.
Plus extensive test coverage.
* #7226 - changeset for NodeJS adapter set-cookie fix
* fixing all double quotes to single quotes
---------
Co-authored-by: Alex Sherwin <alex.sherwin@acadia.inc>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* Redirects spike
* Allow redirects in static mode
* Support in Netlify as well
* Adding a changeset
* Rename file
* Fix build problem
* Refactor to be more modular
* Fix location ref
* Late test should only run in SSR
* Support redirects in Netlify SSR configuration (#7167)
* Implement support for dynamic routes in redirects (#7173)
* Implement support for dynamic routes in redirects
* Remove the .only
* No need to special-case redirects in static build
* Implement support for redirects config in the Vercel adapter (#7182)
* Implement support for redirects config in the Vercel adapter
* Remove unused condition
* Move to a internal helper package
* Add support for the object notation in redirects
* Use status 308 for non-GET redirects (#7186)
* Implement redirects in Cloudflare (#7198)
* Implement redirects in Cloudflare
* Fix build
* Update tests b/c of new ordering
* Debug issue
* Use posix.join
* Update packages/underscore-redirects/package.json
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* Update based on review comments
* Update broken test
---------
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
* Test that redirects can come from middleware (#7213)
* Test that redirects can come from middleware
* Allow non-promise returns for middleware
* Implement priority (#7210)
* Refactor
* Fix netlify test ordering
* Fix ordering again
* Redirects: Allow preventing the output of the static HTML file (#7245)
* Do a simple push for priority
* Adding changesets
* Put the implementation behind a flag.
* Self review
* Update .changeset/chatty-actors-stare.md
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update packages/astro/src/@types/astro.ts
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update packages/astro/src/@types/astro.ts
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update packages/astro/src/@types/astro.ts
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update packages/astro/src/@types/astro.ts
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* Update docs on dynamic restrictions.
* Update packages/astro/src/@types/astro.ts
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Update packages/astro/src/@types/astro.ts
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Code review changes
* Document netlify static adapter
* Update packages/astro/src/@types/astro.ts
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Slight reword
* Update .changeset/twenty-suns-vanish.md
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Add a note about public/_redirects file
* Update packages/astro/src/@types/astro.ts
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
---------
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* fix miss a head when the templaterender has a promise
* fix
* add some test
* test files move to md directory
* fix add
* delect file
---------
Co-authored-by: wuls <linsheng.wu@beantechs.com>
* wip: propagatedAssets flag per-component
* Propagate in TreeNode
* fix: remove unused inject comment
* feat: make asset propagation an integration opt-in
* fix: remove crawlGraph stopper
* wip: logs to understand what's happening
* SSR mdoc files in dev
* feat: add astroPropagatedAssets flag with vite
* chore: remove console logs
* chore: cleanup hasContentFlag
* fix: set handlePropagation default for legacy integrations
* chore: changeset
* temp: silence acorn type error
* chore: revert pnpm-lock changes
* fix: check correct flag
* We need to handle propagation on markdown because of layouts
* Remove use of renderStyleElement
* Fix heading tests
* Fix merge conflict
* typeof function
* Switch the check
* Add comment on injection detection regexp
---------
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
* update config schema
* adapt default route `prerender` value
* adapt error message for hybrid output
* core hybrid output support
* add JSDocs for hybrid output
* dev server hybrid output support
* defer hybrid output check
* update endpoint request warning
* support `output=hybrid` in integrations
* put constant variable out of for loop
* revert: reapply back ssr plugin in ssr mode
* change `prerender` option default
* apply `prerender` by default in hybrid mode
* simplfy conditional
* update config schema
* add `isHybridOutput` helper
* more readable prerender condition
* set default prerender value if no export is found
* only add `pagesVirtualModuleId` ro rollup input in `output=static`
* don't export vite plugin
* remove unneeded check
* don't prerender when it shouldn't
* extract fallback `prerender` meta
Extract the fallback `prerender` module meta out of the `scan` function.
It shouldn't be its responsibility to handle that
* pass missing argument to function
* test: update cloudflare integration tests
* test: update tests of vercel integration
* test: update tests of node integration
* test: update tests of netlify func integration
* test: update tests of netlify edge integration
* throw when `hybrid` mode is malconfigured
* update node integraiton `output` warning
* test(WIP): skip node prerendering tests for now
* remove non-existant import
* test: bring back prerendering tests
* remove outdated comments
* test: refactor test to support windows paths
* remove outdated comments
* apply sarah review
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* docs: `experiment.hybridOutput` jsodcs
* test: prevent import from being cached
* refactor: extract hybrid output check to function
* add `hybrid` to output warning in adapter hooks
* chore: changeset
* add `.js` extension to import
* chore: use spaces instead of tabs for gh formating
* resolve merge conflict
* chore: move test to another file for consitency
---------
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
* feat(sitemap): support SSR generated routes
* feat(sitemap): add changeset for SSR support
* refactor: move logic to `astro:build:done`
* generate route to obey `trailingSlash` setting
* add logic to respect "directory" build format
* integration(sitemap): add unit test for ssr support
* Upgrade shiki
* Update themes
* Update languages
* Simplify
* Fix compat for other remark code
* Update theme again
* Fix language gen
* Add changeset
* Fix code
* Update test theme colors
* Update changeset
* Fix test again
* feat(vercel): Add support for image optimization API
* chore: changeset
* feat: implement image service
* feat: dev service
* feat: full local service
* fix: move assets check to astro:config:done
* feat: update with new settings
* fix: remove unused param
* test: add tsets
* fix: rename to imageService
* docs: add docs
* Apply suggestions from code review
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* docs(vercel): Add Added In mentions
---------
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Catch errors that occur within the stream in the Node adapter
* Adding a changeset
* Better error message on completely uncaught errors within the stream
* Update test
Currently using rewrite with static files works but server rendered files with either edge or serverless function don't get rewritten.
See: https://github.com/withastro/astro/issues/6446
* update lit-ssr dependency
* delete unnecessary lit shim checks
* delete another unused lit shim feature
* fix sass build
* bump lit and polyfill versions to match ssr req
* shim HTMLElement in test
* remove lit global shim workarounds
* re-shim Astro's ce.define
* remove fix window test and shim HTML Element
* Update .changeset/gold-windows-fly.md
Co-authored-by: Augustine Kim <ajk830@gmail.com>
* fix window check test
* implement suggestoins
---------
Co-authored-by: Augustine Kim <ajk830@gmail.com>
* wip: scrappy implementation. It works! 🥳
* chore: add code comments on inline utils
* fix: code cleanup, run on experimental.assets
* feat: support ~/assets alias
* fix: spoof `astro:assets` when outside experimental
* test: image paths in dev and prod
* feat: support any vite alias with ctx.resolve
* fix: avoid trying to process absolute paths
* fix: raise helpful error for invalid vite paths
* refactor: revert URL support on emitAsset
* chore: lint
* refactor: expose emitESMImage from assets base
* wip: why doesn't assets exist
* scary chore: make @astrojs/markdoc truly depend on astro
* fix: import emitESMImage straight from dist
* chore: remove type def from assets package
* chore: screw it, just ts ignore
* deps: rollup types
* refactor: optimize images during parse step
* chore: remove unneeded `.flat()`
* fix: use file-based relative paths
* fix: add back helpful error
* chore: changeset
* deps: move astro back to dev dep
* fix: put emit assets behind flag
* chore: change to markdoc patch
* WIP fix image integration in Netlify
* Add a changeset
* Try another way
* Get the chunks folder
* try inlining
* deep sigh
* fix some things
* more
* Remove some stuff
* remove unused imports
* Add changeset
* remove unused --copy-wasm
* Remove unused post:build