Age | Commit message (Collapse) | Author | Files | Lines |
|
* Compiler cleanup
This is general compiler cleanup, especially around the codegen part. Goals here were too:
1. Make it possible to compile HTML recursively (needed for future astro-in-expressions work) by moving that work into its own function.
1. Get rid of collectionItems and have compiling the HTML return just a source string.
Also not planned, this change gets rid of the different between components and pages. All Astro components compile to the same JavaScript.
* Remove unused node types
|
|
* Allow no config
* Update README
|
|
|
|
This improves the algorithm for searching for pages. It now works like:
1. If pathname ends with /
1. Look for PATHNAME/index.astro
1. Look for PATHNAME/index.md
1. else
1. Look for PATHNAME.astro
1. Look for PATHNAME.md
1. Look for PATHNAME/index.astro
1. 301
1. Look for PATHNAME/index.md
1. 301
1. 404
|
|
|
|
|
|
|
|
|
|
* Fix React import
* Change default export
* Fix :visible dynamic component
* Use colon to alias vue createElement
Co-authored-by: Matthew Phillips <matthew@skypack.dev>
|
|
|
|
|
|
|
|
* Fix complex MDX parsing
This allows fully MDX support using the micromark MDX extension. One caveat is that if you do something like use the less than sign, you need to escape it because the parser expects these to be tags otherwise.
* Move micromark definition
|
|
|
|
|
|
This adds `import.meta.request` to pages (not components).
|
|
* Support for custom elements
Now you can use custom elements like so in Astro components:
```html
<script type="module" src="./datepicker.js">
<date-picker></date-picker>
```
These will be resolve relative to the current astro component. In the build these modules are run through the same bundle/minify process as components.
* Remove component from public
* Formatting
* Disable empty fn rule
|
|
* Implement fallback capability
This makes it possible for a dynamic component to render fallback content on the server.
The mechanism is a special `static` prop passed to the component. If `static` is true then the component knows it can render static content.
Putting aside the word `static`, is this the right approach? I think giving components the flexibility to make the decision themselves *is* the right approach.
However in this case we have a special property that is passed in non-explicitly. I think we have to do it this way because if the caller passes in a prop it will get serialized and appear on the client. By making this something we *add* during rendering, it only happens on the server (and only when using `:load`).
Assuming this is the right approach, is `static` the right name for this prop? Other candidates:
* `server`
That's all I have!
* Use `import.meta.env.astro` to tell if running in SSR mode.
* Run formatter
|
|
* Extract Astro styles to external stylesheets
* Require relative URLs in Markdown layouts
|
|
|
|
|
|
|
|
|
|
Previously dynamic component URLs were being resolved client-side in a weird way that only worked during dev. This change makes them handle during compilation, so it works in both (and improves readability of the dynamic import output).
|
|
|
|
* Convert CSS Modules to scoped styles
* Update README
* Move class scoping into HTML walker
* Fix SSR styles test
* Fix mustache tags
* Update PostCSS plugin name
* Add JSDoc comment
* Update test
|
|
|
|
* Add support for doctype
* Automatically prepend doctype
|
|
|
|
* Bundling! 🤘
* Finalize build changes
|
|
* WIP: new hydration methods
* refactor: genericize load/idle/visible renderers
* fix: do not pass "data-astro-id" to component
* docs: add hydration section to README
* docs: update README
Co-authored-by: Nate Moore <nate@skypack.dev>
|
|
|
|
|
|
* Absorb Snowpack config inside Astro
* Add basic README
* Format tests
* Update esbuild
* Format tests
|
|
|
|
* Add React component SSR
* Add React component SSR
|
|
This updates `astro build` to do a production build. It works! No optimizations yet.
|
|
|
|
* wip
* new svelte-style prop declaration is working
* got it working!
* revert h changes
* format
* style lang update
|
|
This changes all hmx files to astro files and updates all code to not reference hmx any more.
|
|
|
|
|
|
|
|
* Allow HMX components in markdown
This adds support for HMX components in markdown. The mechanism for importing is via frontmatter. We could do this differently (setup script maybe?) but since this was the easiest to implement I thought it was a good first-pass option.
* Remove node-fetch from snowpack config
* Assert that the runtime is created successfully
* Add back in the micromark extension for encoding entities
* Encode both codeTextData and codeFlowValue
* Install snowpack app's deps
|
|
|
|
* Add support for React components.
This adds support for react components via a new `extensions` config in astro.config.mjs. In the future we can extend this to do things like look at the import statements, as Snowpack does.
* Fix the tests
|
|
* Add styles to Snowpack app
* Bubble up file build errors
* Fix merge error
|
|
|
|
|
|
|