Commit graph

257 commits

Author SHA1 Message Date
Mani Gandham
7f6c35f636
skip 404.html pages in sitemap generation (#1287)
* skip 404.html pages in sitemap generation

* update path check for 404
2021-09-01 15:02:11 -07:00
matthewp
cd684eb95e [ci] yarn format 2021-08-27 14:45:59 +00:00
Jonathan Neal
5d2ea57841
Remove unused namespace redirection from the astro parser (#1245)
* nit: remove unused namespace checking from astro parser

* test: add tests for namespaced attributes, including one removed attribute

* add changeset
2021-08-27 10:43:58 -04:00
matthewp
5cc7947a58 [ci] yarn format 2021-08-27 14:13:41 +00:00
Matthew Phillips
788c769d78
Implementation of hoisted scripts (#1178)
* 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
2021-08-27 10:12:27 -04:00
Fred K. Schott
ff92be637f
add "astro preview" command (#1226)
* add "astro preview" command

* Update green-buttons-reflect.md

* Update cli-reference.md
2021-08-26 12:08:52 -07:00
Fred K. Schott
affcd04f0f
stop building, bundling, and transforming public/ files (#1210)
* stop bundling public/ files

* update www and examples
2021-08-25 11:51:04 -07:00
Robin Métral
397d8f3d84
Upgrade unified deps and improve unified plugins types (#1200)
* 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
2021-08-25 08:17:45 -04:00
Matthew Phillips
9482fadeb8
Fix resolution of Astro.resolve in nested components (#1213)
* Fix resolution of Astro.resolve in nested components

Components were previously tested, however nested folders were not.

* Adds a changeset
2021-08-24 13:38:07 -04:00
Fred K. Schott
f9cd031033
Add zod schema validation (#1198)
* add zod schema validation

* update pageUrlFormat config name

* add trailing slash support to config
2021-08-23 14:07:03 -07:00
Fred K. Schott
166c9ed6bd
fix issue with multiple getStaticPaths calls during build (#1194) 2021-08-23 15:44:49 -04:00
Fred K. Schott
c06da5dd78
Add trailingSlash & pageDirectoryUrl config options (#1197) 2021-08-23 12:05:01 -07:00
Tony Sullivan
1e0e2f41cd
including the language- class on Prism's <pre> element (#1180)
* including the `language-` class on Prism's `<pre>` element

* adding changeset

Co-authored-by: Tony Sullivan <tony.f.sullivan@gmail.com>
2021-08-20 11:01:42 -07:00
Drew Powers
ece0953aed
Fix :global() scoping (#1162)
* Fix :global() scoping

#1155

* Improve :global() scoping rules further
2021-08-18 20:46:47 -06:00
Tony Sullivan
1971ab3c60
Add support for client:only hydrator (#935)
* 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>
2021-08-17 13:44:56 -04:00
Drew Powers
1f13e40316
Fix body scoping (#1130)
Fixes #1074
2021-08-16 17:47:09 -06:00
matthewp
24a40bee63 [ci] yarn format 2021-08-16 20:44:46 +00:00
Matthew Phillips
78b5bde14c
Astro.resolve (#1085)
* 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>
2021-08-16 16:43:06 -04:00
Jonathan Neal
0a04c69dbb
Fix left curly bracket formatting (#1094)
* Fix curly braces

* Add tests

* chore: formatting

* sstyle: update fix to be more explicit and ireduce chance of false positive

* style: use suggestions

Co-authored-by: mmarkelov <maks-markel@mail.ru>
2021-08-12 09:51:37 -07:00
Fred K. Schott
dcb97b0223
make routing fixes from discord feedback (#1091) 2021-08-12 01:35:28 -07:00
FredKSchott
b63960f514 [ci] yarn format 2021-08-11 22:05:17 +00:00
Fred K. Schott
0f0cc2b9d8
Add file-based routing /w dynamic paths (#1010)
* wip: add file-based routing

* add pagination tests and nested pagination support
2021-08-11 15:04:09 -07:00
Barrabin ⚑
2321b577ee
Fixes #1033 - Markdown with applied scopedStyles doesn't run Prism syntax highlight (#1037)
* 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>
2021-08-11 16:52:27 -05:00
FredKSchott
de3af1f4b7 [ci] yarn format 2021-08-10 16:52:31 +00:00
Fred K. Schott
1350d57997
Do not observe visible hydrate components more than once (#1015)
* add support for truely unique astro root uids

* update test to test uniqueness
2021-08-10 09:51:19 -07:00
Matthew Phillips
4bbf113050
Handle layouts and head injection (#1007)
* Revert "Revert "Fixes duplicate head content (#995)" (#1001)"

This reverts commit b1959f0fed.

* Handle markdown layouts

* Adding a changeset
2021-08-04 13:53:56 -04:00
Jonathan Neal
c7aca2c9b2
Reduce meta viewport tag (#1006) 2021-08-04 08:30:58 -04:00
Matthew Phillips
b1959f0fed
Revert "Fixes duplicate head content (#995)" (#1001)
* Revert "Fixes duplicate head content (#995)"

This reverts commit 268a36f399.

* Changeset
2021-08-03 16:57:04 -04:00
Matthew Phillips
268a36f399
Fixes duplicate head content (#995)
* 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;
2021-08-03 13:34:30 -04:00
matthewp
010bf72958 [ci] yarn format 2021-08-03 17:14:12 +00:00
Matthew Phillips
39df7952a5
Make fetch available in all component types (#949)
* Make fetch available in all component types

This makes `globalThis.fetch` available in all components.

* Adds a changeset
2021-08-03 13:13:00 -04:00
Matthew Phillips
0334956030
Make Astro.request available to all astro components (#960)
* Make Astro.request available to all astro components

* Adds a changeset
2021-08-03 08:17:03 -04:00
matthewp
fadb652b95 [ci] yarn format 2021-07-30 12:34:43 +00:00
Bartek Igielski
a1491cc659
Fix Vue components nesting and add tests (#924)
* Allow @vue/server-renderer to be processed

* Bump @vue/server-renderer version

* Create twenty-coats-talk.md

* Bump Vue packages version to get ESM builds

* Add Vue components tests

* Create shaggy-pugs-raise.md

* Delete shaggy-pugs-raise.md
2021-07-30 08:33:31 -04:00
Matthew Phillips
cd2b5df49c
Allow triple-dashes in markdown (#938)
* Allow triple-dashes in markdown

* Changeset

* Remove the .only
2021-07-29 16:20:49 -04:00
matthewp
73c28a36e5 [ci] yarn format 2021-07-28 18:32:50 +00:00
Fred K. Schott
829d5baafe
fix tsx+jsx error (#916)
* fix tsx+jsx error

* throw error if no build can be returned
2021-07-28 14:31:50 -04:00
matthewp
189098b6e5 [ci] yarn format 2021-07-28 18:08:27 +00:00
Matthew Phillips
23b0d2d345
Add support for building srcset on images (#911)
* Add support for building srcset on images

* Added a changeset
2021-07-28 14:07:28 -04:00
Matthew Phillips
d8cebb0132
Prevent client: attributes from being passed to components (#891)
* Prevent client: attributes from being passed to components

* Adds a changeset
2021-07-27 16:01:15 -04:00
Rahul Sharma
80d7415807
Added undefined check for spread props (#832)
* husky setup added

* pre-commit script updated

* Revert "Feat/pre commit"

* spread issue fixed #522

* testcase added

* spread issue fixed #522

* testcase added
2021-07-27 08:56:46 -04:00
Matthew Phillips
4726e34408
Account for pathnames being part of the site config (#856)
* Account for pathnames being part of the site config

* Adds a changeset

* Don't toString the site in the test
2021-07-26 14:42:24 -04:00
Tony Sullivan
294a656ed9
Introduce <style global> (#824)
* 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>
2021-07-23 13:51:27 -04:00
Matthew Phillips
164489fbb2
Correctly serialize falsey values at top-level of components (#834)
* Correctly serialize falsey values at top-level of components

* Adding a changeset
2021-07-23 13:00:49 -04:00
Fred K. Schott
e31e276781
get build-all passing (#795) 2021-07-21 17:39:14 -07:00
natemoo-re
561cbee68f [ci] yarn format 2021-07-21 23:11:40 +00:00
Nate Moore
bd18e14a2c
Expose JSX compilation to renderers (#588)
* feat: add support for `jsxImportSource`, new JSX transform

* Renderer: add Solid renderer (#667)

* feat: add support for `jsxImportSource`, new JSX transform

* WIP: solid renderer

* [Renderer] Solid (#656)

* feat: add support for `jsxImportSource`, new JSX transform

* WIP: solid renderer

* Solid renderer: fix SSR of children, hydration (top level)

Caveat: cannot hydrate children/descendants of hydrated parents

* Fix hydration of fragments

* fix: SyntaxError in React/Preact renderers

* fix: errors in React/Preact renderers

* feat: update react external

* chore: update examples

* chore: delete old changelog

* chore: update astro config

Co-authored-by: Nate Moore <nate@skypack.dev>

* Changing the preact to Solid (#669)

* chore: use new client:visible syntax

* fix: dev script issue

* chore: cleanup SolidJS example

* docs: update framework example docs

* chore: cleanup framework-multiple example

* fix: remove SolidJS false-positives from Preact renderer

* chore: add changeset

Co-authored-by: eyelidlessness <eyelidlessness@users.noreply.github.com>
Co-authored-by: Abdullah Mzaien <s201540830@kfupm.edu.sa>

* feat(create-astro): add Solid support

* docs: add JSX options to renderer reference

* chore: add changeset for P/React renderers

* fix: move react/server.js to external

* chore: remove brewfile

* Revert "feat: add support for `jsxImportSource`, new JSX transform"

This reverts commit 077c4bfc135c58a85d4ebfca6012e90403694d8d.

* fix: remove `react-dom/server` from `external`

* chore: remove unused dependency

* feat: improve JSX error messages

* Revert "Revert "feat: add support for `jsxImportSource`, new JSX transform""

This reverts commit f6c2896b9ec6430611fc0abae7d586c42aca87e5.

* docs: update jsxImportSource

* feat: improve error message

* feat: improve error logging for JSX renderers

* tests: add jsx-runtime tests

* chore: update snowpack

Co-authored-by: eyelidlessness <eyelidlessness@users.noreply.github.com>
Co-authored-by: Abdullah Mzaien <s201540830@kfupm.edu.sa>
2021-07-21 18:10:03 -05:00
Matthew Phillips
4a601adbf2
Allow using the Fragment built-in in Astro components (#793)
* Allow using the Fragment built-in in Astro components

* Adds a changeset
2021-07-21 12:26:52 -04:00
Matthew Phillips
b85e68a713
Handle custom elements in nested JSX (#792)
* Handle custom elements in nested JSX

* Adds a changeset
2021-07-21 10:22:39 -04:00
Fred K. Schott
f67e8f5f55
New Collections API (#703)
* updated createCollection API

* Update examples/portfolio/src/pages/projects.astro

Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz>

* Update docs/reference/api-reference.md

Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz>

* fix(docs): collection doc typos (#758)

* keep cleaning up docs and adding tests

Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz>
Co-authored-by: Mark Pinero <markspinero@gmail.com>
2021-07-21 07:11:57 -07:00
Fred K. Schott
fcfc625331 Revert "fix(parser): html entities evaluated (#738)"
This reverts commit 268186c27d.
2021-07-20 13:37:18 -07:00
FredKSchott
b9c5b7e980 [ci] yarn format 2021-07-20 19:23:50 +00:00
Fred K. Schott
7ccfc7c03c
move throws to assertions (#763) 2021-07-20 12:22:29 -07:00
Carter Snook
268186c27d
fix(parser): html entities evaluated (#738) 2021-07-20 12:18:42 -07:00
Maksim Markelov
0e761b9bdf
Add ability to specify hostname in devOptions (#733)
* Add ability to specify hostname in devOptions

* Update packages/astro/test/config-hostname.test.js

Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz>

Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz>
2021-07-19 21:38:55 -07:00
FredKSchott
3153306953 [ci] yarn format 2021-07-20 01:42:33 +00:00
Vl
40c882a253
Fix url to find page with "index" at the end file name (#722) (#736)
Co-authored-by: Neverage <vl>
2021-07-19 18:41:09 -07:00
FredKSchott
ed83424fdb [ci] yarn format 2021-07-20 01:24:59 +00:00
Fred K. Schott
a7e66666e4
tsconfig fix (#752) 2021-07-19 18:23:39 -07:00
Caleb Jasik
6d06fce6d2
Update docs in compiler messages (#710)
* `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>
2021-07-16 07:01:31 -04:00
matthewp
59f6792b00 [ci] yarn format 2021-07-13 12:28:50 +00:00
Matthew Phillips
48851c9d25
Adds support for a Lit renderer (#665)
* 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
2021-07-13 08:27:40 -04:00
Matthew Phillips
0340b0f0b1
Adds support for client:media hydrator (#664)
* Adds support for client:media hydrator

* Include a changeset

* Pass in undefined when not hydrating
2021-07-12 16:27:08 -04:00
natemoo-re
7aa8d4719f [ci] yarn format 2021-07-12 18:08:45 +00:00
Nate Moore
8f4562afbe
Add support for named slots (#661)
* feat: support named slots, slot fallback content

* docs: document slots

* chore: add changeset

* fix: build errors

* chore: prefer `patch` version
2021-07-12 13:07:39 -05:00
natemoo-re
d46746c34f [ci] yarn format 2021-07-09 22:04:00 +00:00
Nate Moore
5077ff2e11
feat: improve handling of undefined components (#650) 2021-07-09 17:02:39 -05:00
natemoo-re
924369b502 [ci] yarn format 2021-07-09 14:47:26 +00:00
Nate Moore
d93f768c8c
Fix injection behavior for pages which contain no elements (#638)
* chore: add changeset

* fix(#605): inject HMR/styles even when page includes no elements

* chore: update test description
2021-07-09 09:46:19 -05:00
matthewp
00cdbc4a46 [ci] yarn format 2021-07-09 13:01:57 +00:00
Matthew Phillips
1e01251454
Use correct React rendering API or hydration (#636)
* Use correct React rendering API or hydration

* Add changeset
2021-07-09 09:00:32 -04:00
Nate Moore
42a6acee28
Add support for components defined in frontmatter (#637)
* fix: add support for components defined in frontmatter

* chore: add changeset

* test: update test to match example use case
2021-07-08 16:47:23 -05:00
Tony Sullivan
0a7b6deaec
Move hydration directives to special attributes (#618)
* 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>
2021-07-08 14:07:56 -04:00
natemoo-re
1bbe98ae54 [ci] yarn format 2021-07-07 20:10:09 +00:00
Matthew Phillips
2d3e369da7
Don't alias builtins if polyfillNode is used (#601)
* Don't alias builtins if polyfillNode is used

* Add the changeset

* Make test be OS agnostic
2021-07-01 16:22:47 -04:00
Matthew Phillips
4b89f4ed08
Allow Preact components to return an empty Fragment (#599) 2021-07-01 14:30:48 -05:00
Pavel Mineev
d3969436dc
Remark and rehype plugins (#562)
* remark plugins

* remove unused dependency

* enable codeblocks

* backward compatibility with remark-code-titles

* add support for rehype plugins

* add proper types for plugins

* fixes after review

- connect plugins by name
- make plugins configurable
- connect gfm and footnotes if no plugins provided from config
- add more plugins to example

* update and rename example

* add documentation for markdown plugins

* chore: rename with-markdown-plugins example

* chore: restructure dependencies

* feat: add back smartypants, fix mdx expressions

* chore: remove log

* test: add markdown plugin tests

* chore: add changeset

* docs: update markdown doc

Co-authored-by: Nate Moore <nate@skypack.dev>
2021-07-01 11:55:22 -05:00
Matthew Phillips
fd80381db2
Adds hydrationPolyfills config for renderers (#594)
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.
2021-07-01 10:42:56 -04:00
Matthew Phillips
6a660f1b08
Implements low-level custom element support (#587)
* 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.
2021-07-01 08:42:07 -04:00
Drew Powers
d1785d80c3
Add test for React SSR + window (#581)
* Add test for React SSR + window

* Add helpful error message on window undefined in SSR

Fixes #551
2021-06-29 21:37:50 -04:00
Matthew Phillips
1e735bb331
Pass in scoped class name to child components (#579)
* 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
2021-06-29 16:40:30 -04:00
Nate Moore
f721275f33
Fix <Markdown {content} /> closing parent tag (#575)
* test(#494): add failing test

* chore: update with-markdown example

* fix(#494): avoid early close with <Markdown content />

* chore: add changeset
2021-06-29 15:33:56 -05:00
natemoo-re
4df98a79f8 [ci] yarn format 2021-06-29 16:38:55 +00:00
Nate Moore
e28d5cb9de
Allow .astro files to throw new Error() (#572)
* fix(#526): enable `throwExpressions`

* chore: add test for throwing inside of `.astro`

* fix: improve build error handling

* chore: add test when throwing on `build`

* chore: fix changeset bot

* chore: add changeset
2021-06-29 11:37:36 -05:00
Tony @ Navillus
aa8605761b
Fix collections regex (#557)
* 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
2021-06-28 06:22:15 -05:00
Matthew Phillips
8865158f7f
Upgrade postcss snowpack plugin (#547)
* Upgrade postcss snowpack plugin

* Increase the startup time more

* Add changeset
2021-06-25 15:12:10 -04:00
Matthew Phillips
028d4e0114
Fix code from bad merge (#540)
* 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
2021-06-25 09:29:57 -04:00
Nate Moore
a136c85e6b
New Props API (#515)
* 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
2021-06-24 17:48:24 -05:00
Nate Moore
47ac2ccd17
Fix {...spread} props (#522)
* 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)
2021-06-24 17:41:10 -05:00
Matthew Phillips
feb9a3141e
Always add the HMR script in dev (#536)
* Always add the HMR script in dev

for livereload

* Adds the changeset
2021-06-24 17:05:55 -04:00
Matthew Phillips
e316c9578c
Allow usage of node builtins through node: prefix (#520)
* 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
2021-06-23 16:01:32 -04:00
Tony @ Navillus
3f3e4f1286
Update createCollection() to handle pageSize: Infinity (#516)
* 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
2021-06-23 08:40:58 -04:00
matthewp
b2a72ccac4 [ci] yarn format 2021-06-21 16:29:33 +00:00
Matthew Phillips
b547892411
Allow the head element to be optional (#447)
* 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
2021-06-21 12:28:30 -04:00
natemoo-re
f04b82d47e [ci] yarn format 2021-06-19 00:57:20 +00:00
Nate Moore
2671b6f9cc
Skip scoped astro-* class if Astro component has no <style> (#497)
* feat(#472): do not inject `astro-xxx` class for components without styles

* test: add test for skipped scoped classes

* chore: add changeset

* Update happy-cougars-scream.md
2021-06-18 19:56:14 -05:00
Drew Powers
7f8d5869c3
Fix parser error on forward slash (#469)
Fixes #407
2021-06-16 13:26:38 -06:00
matthewp
7fdb7ceca6 [ci] yarn format 2021-06-16 17:38:46 +00:00
Matthew Phillips
5601efa257
Prevent HMR client from being part of bundle (#464) 2021-06-16 13:37:29 -04:00
Nurettin Kaya
251b0b5c06
Less verbose HMR script (#457)
* Less verbose HMR script

* push changeset
2021-06-16 08:17:06 -04:00
Drew Powers
54c291efa0
Handle script module resolution (#438)
Fixes #104
2021-06-15 15:06:29 -06:00
Drew Powers
272769d723
Improve asset resolution in Astro (#437)
* Improve asset resolution in Astro

Fixes #96

* Add docs, changeset

* Fix collection resolution
2021-06-15 14:53:16 -06:00
natemoo-re
266e447e01 [ci] yarn format 2021-06-15 16:34:46 +00:00
Nate Moore
490f2bebbc
Add <> fragment support for expressions (#433)
* feat: add support for `<>` and `</>` Fragments

* docs: explain Fragments

* test: add fragment test
2021-06-15 11:33:27 -05:00
matthewp
ddd86f8ab2 [ci] yarn format 2021-06-14 20:11:42 +00:00
Matthew Phillips
016833a3bc
Honor user's hmr settings (#436)
* Honor user's hmr settings

This contains 2 fixes:

* If the user sets the hmrPort in their own snowpack config we use that port.
* If the user sets `window.HMR_WEBSOCKET_URL` we defer to that

* Adds the changeset
2021-06-14 16:10:29 -04:00
Matthew Phillips
73a43d9301
Prevent postcss from crashing when scoping class without a body (#430)
* Prevent postcss from crashing when scoping class without a body

For some reason postcss will keep running the plugin over and over on a class without a body if we modify the `selector` (this triggers it as being "dirty"). It doesn't do this for selectors with a body. But the fix was easy enough, only scope a rule once.

Closes #340

* Add a changeset
2021-06-14 14:17:56 -04:00
Matthew Phillips
af03c90c2b
Fix usage of arrow functions as components (#426)
* Fix usage of arrow functions as components

This fixes the React and Preact component as arrow function use-case by checking for the prototype property (arrow functions don't)

* Check the prototype
2021-06-14 13:24:37 -04:00
Brad Cornes
e0989c696a
Fix scoped CSS selector when class contains a colon (#383)
* fix scoped selector when using escaped colon

* update scoped styles test

* add changeset

* update `scopeRule` test

* update `scopeRule` test

* update css minifier to account for windows-style line breaks
2021-06-14 10:36:33 -06:00
Matthew Phillips
2d854092a4
Serialize boolean attributes without a value (#422)
* Serialize boolean attributes without a value

Fixes #307

* Update the attrs test

* Adds a changeset

* Adds test that components receive booleans
2021-06-14 12:29:34 -04:00
Matthew Phillips
0b16b2ddd0
Make doctype be case insensitive (#419)
* Make doctype be case insensitive

Fixes #413

* Make doctype completely case insensitive

* Make check for style scoping doctype override be case insensitive

* Check for doctype in the right place
2021-06-14 12:00:51 -04:00
matthewp
a5d6e434ab [ci] yarn format 2021-06-14 12:36:32 +00:00
Matthew Phillips
271cfe6ce3
Improved JSX framework detection (#382)
* Improved JSX framework detection

This improves the JSX detection and adds a bunch of test. The following is improved:

* If an error throws because of a coding mistake, those errors will be reported.
* We properly detect class components for both Preact and React. We don't have to "try to render" these.

It's still possible that error messages might be obscured in this scenario:

A Preact function component that uses hooks (or another preact specific feature) that has a coding mistake. The React renderer might throw when it uses the Preact hook. That error will be reported rather than the real coding mistake.

This is because we can't distinguish between errors that are due to the wrong framework and errors that the user caused.

I might reach out to the Preact community and see if they can think of a better solution to this problem. This will come up when other JSX based frameworks have renderers. I still think that having multiple frameworks in the same project is a feature worth trying to preserve.

* Move try/catch into the __astro_component
2021-06-14 08:35:25 -04:00
Drew Powers
c374a549b5
Allow createCollection() to fetch remote data (#400)
* Allow createCollection() to fetch remote data

Fixes #378

* Update docs

* revert isomorphic-fetch, see if ci passes

Co-authored-by: Fred K. Schott <fkschott@gmail.com>
2021-06-11 18:31:36 -07:00
Matthew Phillips
1bab906539
Remove second snowpack instance (#368)
* Remove second snowpack instance

* Document import.meta.env.SSR

* Remove unnecessary Promise.all
2021-06-11 09:03:22 -04:00
matthewp
cc5d000fdc [ci] yarn format 2021-06-10 18:11:17 +00:00
Matthew Phillips
afa09ee9dc
Add HMR port script when needed (#375)
* Always add HMR port script when HMR is enabled

* Add it only if there are client side components

* Fix the test

* Add a test where HMR port not set

* Upgrade snowpack version

* Fix snowpack semver
2021-06-10 14:10:15 -04:00
Fred K. Schott
f4a747fb1f
snowpack.dev build output cleanup (#324)
* cleanup grabbag

* add changeset

* Skip the flakey logging test

Co-authored-by: Matthew Phillips <matthew@skypack.dev>
2021-06-08 08:33:15 -04:00
matthewp
20c4efe5a2 [ci] yarn format 2021-06-08 12:22:58 +00:00
Nate Moore
f6ef53b7fa
Fix recursive markdown (#315)
* wip: fix recursive markdown

* fix: recursive markdown issue

* chore: add changeset
2021-06-08 08:21:37 -04:00
matthewp
cb3ff36105 [ci] yarn format 2021-06-07 18:26:17 +00:00
Matthew Phillips
b1364afbae
Prevent duplicate snowpack logs (#316)
* Prevent duplicate snowpack logs

* Fix test to wait on expected messages

* Update the snowpack/plugin-vue

* Add changeset

* Debugging

* Skip the logging test on windows :(

* arg
2021-06-07 14:24:55 -04:00
Nate Moore
0d6afaee9e
fix: Markdown usage when deeply nested on a page (#303)
* fix: Markdown component deeply nested on a page

* chore: add changeset
2021-06-05 10:18:26 -05:00
Matthew Phillips
50e6f491ad
Use npm package names to load internal deps (#294)
* Use npm package names to load internal deps

This is necessary so that published Astro components work. These components will be built by esinstall and therefore they cannot rely on `_astro_internal`. The fix is to use npm specifiers everywhere.

* Move most of frontend to internal

* Mark astro/internal/markdown.js as external

* Move markdown stuff to its own package

This moves the markdown stuff to its own package so that we can externalize it in the markdown component.

* Add the changeset
2021-06-04 14:19:01 -04:00
Nate Moore
94eac19888
Pre-release refactors (#289)
* refactor: expose `astro/components` as component entrypoint

* refactor: remove `extensions` from all configs

* test: fix snowpack tests

* docs: update config doc
2021-06-02 11:35:28 -05:00
Nate Moore
ffb6380c3f
Dynamic Markdown content (#273)
* wip: serverside render dynamic Markdown content

* docs: update Markdown.astro comments

* Use existing markdown infrastructure to render external MD

* Update Markdown docs

* Add a changeset

Co-authored-by: Matthew Phillips <matthew@skypack.dev>
2021-06-02 11:53:33 -04:00
Matthew Phillips
46871d2d4a
Don't append a class attribute to the doctype (#284)
* Don't append a class attribute to the doctype

Fixes #282

* Add changeset
2021-06-01 20:03:38 -05:00
Nate Moore
c9d833ee0b
Fix prerelease bugs, reenable @astrojs/renderer-vue (#286)
* fix: add packages to external

* fix: improve renderer error message

* fix: reenable vue renderer

* chore: remove `extensions` from templates

* fix: reenable @astrojs/renderer-vue

* refactor: add types to snowpack plugin

* fix: update snowpack

* fix: use manual SSR wrapper for Svelte

* chore: add changesets

* chore: bump snowpack

* test: fix failing test

* chore: remove redundant entries
2021-06-01 18:41:08 -05:00
Drew Powers
addd67d244
Change astroRoot to pages (#277)
#271
2021-06-01 09:57:12 -06:00
natemoo-re
8d7abd0ede [ci] yarn format 2021-05-28 22:52:52 +00:00
Matthew Phillips
f49944c0e7
Improve dev perf by not esinstalling Node deps (#253)
* Improve dev startup by making most dependencies externals

This moves most dependencies to be an `external` for Snowpack, preventing backend deps from going through esinstall.

* Update benchmark times

* chore: add benchmark script for convenience

* fix: update externals to allow renderers

* chore: update benchmark times

Co-authored-by: Nate Moore <nate@skypack.dev>
2021-05-28 17:51:50 -05:00
Nate Moore
3df41d2308
Bugbash! (#263)
* fix(vscode): Markdown frontmatter should use TSX, not YAML

* test: add test for #153

* chore: bump deps

* chore: update to use @astrojs scope

* fix: Markdown parse error when only child is `{expression}`

* fix: update renderer edge cases

* fix: failing test

* fix: update renderer
2021-05-28 17:19:40 -05:00
natemoo-re
630c36f351 [ci] yarn format 2021-05-28 22:03:05 +00:00
Nate Moore
3d20623c32
Fix falsy values (#275)
* fix(#274): improve attribute handling

* chore: add test for JSX expressions

* fix: falsy expressions should not render

* chore: add changeset

* test: update expression tests

* fix: render 0 if value is {0}
2021-05-28 17:02:04 -05:00
Nate Moore
e08abacfee
fix: failing test? (#276) 2021-05-28 16:54:39 -05:00
Drew Powers
5292b08028
Make UVU tests time out (#265) 2021-05-27 14:06:54 -06:00
Matthew Phillips
dd7cc798e0
Fix codeblocks in markdown components (#264)
* Fix codeblocks in markdown components

* Debugging

* More debugging

* remove extra debugging stuff
2021-05-27 13:54:38 -04:00
Nate Moore
be804499b0
Remove remote urls from import scanner (#256)
* fix: remove remote urls from import scanner

* debug test
2021-05-26 14:56:34 -05:00
Nate Moore
643c880f28
Renderer plugins (#231)
* refactor: pluggable renderers

* refactor: cache renderer per component

* docs: update comments on snowpack plugin `transform` method

* docs: add comments to renderer plugins

* refactor: convert components to Map

* fix: pass children through to astro __render

* refactor: move Components/ComponentInfo to shared types

* refactor: remove `gatherRuntimes` step, just scan output for imports

* refactor: update isComponentTag logic

* chore: move dependencies to renderers

* fix: cross-platform transform injection

* feat: defer renderer to react, fallback to preact

* fix: use double quotes in generated script

* test: fix failing children tests

* test: add workspaceRoot to all tests

* fix: pass props to renderer check

* chore: add test:core script back for convenience

* chore: remove unused external

* chore: rename renderers

* chore: add astring, estree-util-value-to-estree

* chore: render-component => __astro_component

* refactor: split hydrate logic to own file

* refactor: use `astro-fragment` rather than `div`

* chore: remove unused hooks

* chore: delete unused file

* chore: add changesets

* fix: Astro renderer should be async

* fix: remove <astro-fragment> for static content

* test: fix failing test

* chore: normalize config interface

* feat: allow renderers to inject a snowpackPlugin

* fix: resolve import URL before using dynamic import

* refactor: update renderers to use separate /server entrypoint

* refactor: update server renderer interface

* fix: get renderers working again

* test: debug failing test

* test: better debug

* test: better debug

* test: remove debug

* fix: support esm and cjs packages via "resolve"

* refactor: split hydrate functions into individual files

* fix: dependency resolution relative to projectRoot

* fix: @snowpack/plugin-postcss needs to be hoisted

* fix: do not test prettier-plugin-astro as it's not ready for primetime
2021-05-26 13:30:22 -05:00
matthewp
36fc51c124 [ci] yarn format 2021-05-26 15:33:35 +00:00
Matthew Phillips
da47225efe
Add benchmarking for dev and build (#240)
* Add benchmarking for the dev server

This adds benchmarking for the dev server.

* Use fs.rm instead

* Only rimraf if the folder exists

* Make uncached match CI

* Change the cached time too

* Don't run benchmark in CI

* Switch back test command

* Make tests be within 10 percent

* Use yarn to run multiple things

* Turn benchmark into uvu tests

* Debugging benchmark

* Print chunk for testing

* Ignore benchmark folder in uvu

* Add build benchmarking

* Update benchmark numbers
2021-05-26 11:31:53 -04:00
Matthew Phillips
2ff2533c9e
Fix markdown syntax issues (#234)
This fixes #233 among other things
2021-05-24 16:00:34 -04:00
Drew Powers
c43ee95850
Bugfix: random CSS ordering (#232)
* Bugfix: random CSS ordering

Fixes #230

* Update docs
2021-05-24 10:57:35 -06:00
Drew Powers
69d693b77c
Add scoped styles test (#223) 2021-05-21 12:45:49 -06:00
natemoo-re
a2ae7018ca [ci] yarn format 2021-05-17 14:30:21 +00:00
Nate Moore
b3886c206f
Fix markdown issues (#208)
* Init fix/markdown

* Astro Markdown (#207)

* Add Astro Markdown to VSCode Extension

* Add Astro Markdown to Astro

* refactor: update astro-markdown example

* feat: remove embedded components from `.md` files

* fix: resolve `.md.astro` files at runtime

* chore: update markdown tests

* feat: add <Markdown> component

* chore: bump examples

* chore: update example

* fix: improve Markdown child handling

* feat: harden markdown support, add code fence support, add automatic dedenting

* chore: add weird markdown edge cases

* chore: update remote-markdown examples

* chore: add comment to Markdown.astro

* feat: improve markdown support (codefences, nested inside HTML)

* refactor: extract import specifier types to set

* refactor: conditionally import markdown renderer

* refactor: revert special-cased "astro/components"

* refactor: revert special-cased "astro/components"

* refactor: use astro/components/Markdown.astro

* refactor: remove `.md.astro` support in favor of Markdown component

* refactor: use regular .astro files

* refactor: remove unused code

* refactor: move Markdown inside Layout

* wip: markdown scoped styles

* feat: improve scoped styles in Markdown

* feat: micromark => remark ecosystem

* fix: markdown build

* fix: markdown build

* chore: add todo

* fix: collect headers text

* docs: add Markdown doc

* chore: add changeset

* docs: improve Markdown highlighting

* refactor: prefer Set

* refactor: exclude large unified deps

* docs: update markdown docs

Co-authored-by: Jonathan Neal <jonathantneal@hotmail.com>

* chore: remove extra markdown deps

* perf: optimize markdown

* fix: unified/rehype deps

* temp: fix markdown test

* test: add TODO comment

* fix: do not namespace frontmatter, just astro metadata

* test: fix astro-markdown test

* test: add realworld markdown example

* fix: prism language bug

* docs: update markdown docs

* chore: bump dependencies

* fix: escape codespan

* fix: unterminated string literal

* fix(vscode): inline dependencies

* fix(vscode): dependencies

* feat(vscode): embedded markdown

* feat: add Markdown syntax highlighting

* chore: improve markdown example

* fix: markdown example

* feat: highlighting improvements

* chore: add changeset

* fix: CodeBlock => CodeSpan

* chore: get astro-markdown example running

Co-authored-by: Jonathan Neal <jonathantneal@hotmail.com>
2021-05-17 09:29:16 -05:00
Drew Powers
9d092b56c7
Fix Windows tests (#212)
* Fix Windows fetchContent()

* Fix Windows bundling & config loading

* Fix astro-prettier formatting for Windows
2021-05-14 12:03:41 -04:00
Drew Powers
3ef1b01e14
[wip] Fix CI (#202)
* Yarn format

* Fix changeset --since

* Fix Windows tests
2021-05-12 12:06:16 -06:00
Drew Powers
7184149514
Add Astro.request.canonicalURL and Astro.site to global (#199) 2021-05-11 17:31:52 -06:00
Kevin (Kun) "Kassimo" Qian
e0a4f5fbc0
Allow default import component to be renamed based on import statement default specifier (#193)
* Allow renaming for default import components

* Changeset
2021-05-10 11:00:05 -05:00