* Implementation of hoisted scripts
* Use the facade id
* Adds docs on hoisted scripts
* Don't try to run rollup if there are no hoisted scripts
* Handle scripts possibly being undefined (client:only)
* Get rid of changes to the portfolio example
* Adds a changeset
* Remove a todo
* Fix lint errors
* Rename TransformResult property to hoistedScripts
* Move Hoisted Scripts docs to astro-components page
* Fixes lint errors
* Fix path join for windows
* Upgrade @astrojs/markdown-support deps and update types
* Add changeset
* Update changeset
* Switch astro-markdown-plugins example to use rehype-autolink-headings
Usage of remark-autolink-headings is discouraged in favor of the rehype counterpart: https://github.com/remarkjs/remark-autolink-headings\#remark-autolink-headings
* Add stricter types for unified plugins
This includes a few suggestions from a code review:
- use vfile.toString instead of vfile.value.toString
- refactor plugins to follow unified best practices instead of returning functions that return a plugin
- use any instead of any[] for plugin options types
* Narrow down types to more specific hast or mdast typings
* Adding support for client:only hydration
* Adding documentation for client:only
* Adding changeset
* Updating the test to use a browser-only API
* Adding a browser-specific import script, this reproduces the issue where client:only imports must be removed
* typo fix
* removing mispelled test component
* WIP: delaying inclusion of component imports until the hydration method is known
* WIP: tweaking the test to use window instead of document
* When only one renderer is included, use that for client:only hydration
* temporary test script snuck into the last commit
* WIP: adding check for a client:only renderer hint
* refactor: Remove client:only components instead of delaying all component import statements
* Updating the changeset and docs for the renderer hint
* refactor: pull client:only render matching out to it's own function
* Updating renderer hinting to match full name, with shorthand for internal renderers
Co-authored-by: Tony Sullivan <tony.f.sullivan@gmail.com>
* add: Astro.resolve
* Add docs and tests for Astro.resolve
* Add warnings when using string literals
* Prevent windows errors
* Adds a changeset
* Use the astro logger to log the warning
* Use the .js extension
* Dont warn for data urls
* Rename nonRelative and better match
Co-authored-by: Jonathan Neal <jonathantneal@hotmail.com>
* Fixes#1033 - Markdown with applied scopedStyles doesn't run Prism syntax highlight
* Removed the incorrect lang attribute to indicate language syntax
* Fixed UT for scopedStyles + markdown
* Update packages/astro/test/astro-markdown.test.js
Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz>
* Added changeset for PR #1037
* Update curly-queens-pay.md
Changing from a `minor` release to a `patch` since we're pre-v1.0.0! This
Co-authored-by: Vitor Calejuri <vitor.cajuleri@gmail.com>
Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
* Completely fixes head/doctype stuff
* Remove the .only
* Add a comma following props
* Inject head stuff if there are both head and body elements in the component
* Remove extra debugger;
* Adding support for multiple <style> blocks
* Adding support for `<style global>`
* scoping @keyframes should also be skipped for <style global>
* Adding test coverage for muliple style blocks, global blocks, and scoped keyframes
* docs: Updating docs for `<style global>` support
* Adding yarn changeset
* Punctuation fix in styling docs
* docs: Clarifying example use cases given in the docs
Co-authored-by: Tony Sullivan <tony.f.sullivan@gmail.com>
* `github.com/snowpackjs/astro/blob/main/docs/*.md` -> `docs.astro.build/*/`
* convert links to docs site links
* Fix broken links that didn't work w/ the regex.
* Add changeset
* Delete five-weeks-destroy.md
Co-authored-by: Fred K. Schott <fkschott@gmail.com>
* Adds support for a Lit renderer
This adds `@astrojs/renderer-lit`. An experimental Lit renderer.
* Removed cached submodule, mistake
* Prevent globals clobbering
* Add docs on globals
* feat: ♻️ updating hydration to work with the directive syntax
* test: ✅ Updating tests for the hydration directive syntax
* refactor: Updating example projects for the hydration directive syntax
* test: ✅ Found a test fixture still needing an update to the hydration directive syntax
* style: Prettier strikes again! Reverting code formatting changes
* refactor: ♻️ moving directive matching to a Set
* refactor: Updating syntax to `client:load`
* refactor: ♻️ Simplifying the `client:` directive match
Per PR feedback from @matthewp
* chore: errant console.warn() snuck into the last commit
* feat: 🔊 Adding a super fancy build warning to update to the directive syntax
* refactor: ♻️ Removing unnecessary checks when matching supported hydration directives
`val` isn't being used for now, but leaving it in the attr destructuring as a reminder since it'll be needed for `client:media`
* test: ✅ Including the original hydration syntax in a test to make sure it builds
* style: 📝 Adding a comment to make it clear why the old hydration syntax is included in a the test markup
* fix: 🐛 updating `head` logic to recognize hydration directive syntax
* docs: Adding changeset
* refactor: 🔥 Removing unnecessary `!hasComponents` check
* docs: 📝 Adding more detail to the changset
Co-authored-by: Tony Sullivan <tony.f.sullivan@gmail.com>
Some renderers, such as Lit, need special polyfills only for hydration. We have the `polyfills` array, but that is intended for polyfills that always need to run. This adds a second type hydrationPolyfills that only run on elements that are `:load`, `:idle`, etc.
* Implements low-level custom element support
* Changes based on self review
* Adds a changeset
* Polyfills are added even when not hydrating
* Remove hydrationMethod option
Punting on this idea until it's really needed.
* Pass in scoped class name to child components
If a class is being passed into child components, pass in the scoped class name as well.
* Adds the changeset
* fix: 🐛 Fixes bug #532
Matching for collection routes should look for exact filename matches
* test: ✅ Adding test coverage to make sure collection routes are matched exactly
* chore: Adding changeset
* Fix code from bad merge
* Dont wrap the raw
* Wrap the expression in quotes
* remove react-dom just to test
* Add back react-dom as a known entrypoint
* Make startup time even longer
* wip: update props api
* feat(#139, #309): enable new props api
* chore: migrate examples to new props API
* docs: update syntax guide for new props API
* chore: update examples to new props API
* chore: update docs to new Props API
* fix: hide __astroInternal from `Astro.props` consumers
* chore: remove scratchpad file
* chore: fix script error
* test: fix failing collection tests
* fix: set __astroInternal to `enumerable: false`
* chore: add changeset
* feat: warn users using old props api
* fix(#521): allow spread props
* chore: add spread prop tests
* fix: falsy expressions should only be skipped in 'Expression' case
* fix: support primitives in expressions (objects, arrays)
* Start of allowing node builtins issue
* Allow use of node:builtin
* Produce an error in Astro files with bare builtin usage
* Upgrade snowpack version
bug fixes for packages that use `node:`
* Document node builtins
* Use the provided builtins list
* Fix pageSize calculation when Infinity is given
* test grouping collection with pageSize: Infinity
* test individual pages for collection items
* Revert "update docs, remove reference to Inifinity"
This reverts commit e8a976a543.
* Adding changeset
* First take
* Allow omitting head element
This makes it possible to omit the head element but still inject the style and HMR script into the right place.
* Add changeset
* More progress on this
* Only render if it's a page
* Include fragments in compiled jsx
* Adds a changeset