Commit graph

835 commits

Author SHA1 Message Date
Matthew Phillips
2ff2533c9e
Fix markdown syntax issues (#234)
This fixes #233 among other things
2021-05-24 16:00:34 -04:00
Drew Powers
c9942c2878
Revert stylegen (#228) 2021-05-21 14:55:25 -06:00
Drew Powers
19e20f2c54
Add Tailwind support to Astro Dev Server (#222)
* Improve PostCSS and Tailwind support

* Update styling docs

* Changelog

* Fix test hanging
2021-05-21 14:02:19 -06:00
Drew Powers
d6cedac38e
Improve blog template (#217) 2021-05-17 17:45:41 -05:00
Nate Moore
512670bedd chore: release v0.10.0 2021-05-17 10:20:15 -05:00
Nate Moore
73bab5e385 chore: version packages 2021-05-17 09:40:51 -05:00
github-actions[bot]
971c58da4d
Version Packages (#213)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-05-17 09:31:37 -05: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
github-actions[bot]
a9f63c5c0c
Version Packages (#195)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2021-05-13 12:28:04 -05:00
Drew Powers
7184149514
Add Astro.request.canonicalURL and Astro.site to global (#199) 2021-05-11 17:31:52 -06:00
Drew Powers
d2eb413a6e
Fix portfolio example (#196) 2021-05-11 10:40:04 -06:00
Drew Powers
820012ea16
Improve Snowpack docs styling (#180) 2021-05-07 10:38:38 -06:00
Drew Powers
b81abd5b2c
Add CSS bundling (#172)
* Add CSS bundling

* Add Changeset

* Update build script

* Count better

* Fix stats

* Cleanup

* Add test

* Show profile ms under 750ms
2021-05-06 10:38:53 -06:00
Nate Moore
9ed19317c6 chore: version packages 2021-05-04 17:16:23 -05:00
Nate Moore
3ad0aac8cf
Fix fetchContent for nested files (#171)
* fix: fetchContent within nested folders

* feat: add `sourceId` to fetchContent

* test: update collection tests

* fix: windows compat for importPath

* chore: add changeset

* fix: astroRoot => projectRoot

* feat: add `slash` package

* chore: remove sourceId prop

* chore: update changeset

* format
2021-05-04 17:11:05 -05:00
Nate Moore
ac0bc88ae9 chore: version packages 2021-05-04 12:20:50 -05:00
Drew Powers
94038d3297
Format (#167) 2021-05-03 12:26:10 -06:00
Nate Moore
ed631329e7
create-astro UI (#164)
* refactor: improve create-astro layout, build script

* feat(create-astro): v0.1.0

* docs(create-astro): add README

* feat(create-astro): add meta files to starter templates
2021-05-03 12:15:13 -05:00
Nate Moore
4df1347156
Migrate to yarn monorepo (#157)
* chore: use monorepo

* chore: scaffold astro-scripts

* chore: move tests inside packages/astro

* chore: refactor tests, add scripts

* chore: move parser to own module

* chore: move runtime to packages/astro

* fix: move parser to own package

* test: fix prettier-plugin-astro tests

* fix: tests

* chore: update package-lock

* chore: add changesets

* fix: cleanup examples

* fix: starter example

* chore: update changeset config

* chore: update changeset config

* chore: setup changeset release workflow

* chore: bump lockfiles

* chore: prism => astro-prism

* fix: tsc --emitDeclarationOnly

* chore: final cleanup, switch to yarn

* chore: add lerna

* chore: update workflows to yarn

* chore: update workflows

* chore: remove lint workflow

* chore: add astro-dev script

* chore: add symlinked README
2021-04-30 16:33:35 -05:00
Drew Powers
f39a91e6ec
Add portfolio example (#140)
* Add portfolio example

* Feedback
2021-04-30 10:35:20 -06:00
Nate Moore
509fad6b9a
Fix Svelte bundled behavior (#151)
* build: add svelte to dynamic component imports

* fix: svelte bundling

* fix: ensure svelte runtime is bundled with build

* fix: svelte runtime in dev mode

* fix: include svelte runtime in imports

Co-authored-by: Duncan Healy <duncan.healy@gmail.com>
2021-04-30 09:35:18 -05:00
duncanhealy
787ba306cc
example blog add buildoptions (#142)
* examples: add astroRoot to blog example

* example: add astro config for `npm run build` #141
2021-04-29 11:28:33 +01:00
Nate Moore
61ccd59f92
Minimal create-astro CLI (#136)
* feat: add minimal create-astro CLI

* docs: update readme
2021-04-27 15:59:23 -05:00
Nate Moore
9c980a1017
add starter template (#135) 2021-04-27 14:21:33 -05:00
Nate Moore
dea1a6dfc9
Update defaults directory structure to src and dist (#132)
* chore: update defaults in docs

* chore: update config defaults

* test: update tests to config defaults

* chore: update gitignore to new defaults

* docs: update readme to new defaults

* chore: update examples to new defaults

* chore: update default exclude in lang server

* chore: update tests

* test: fix failing tests

* chore: update www defaults
2021-04-26 15:54:20 -06:00
Matthew Phillips
0ea4a986e2
Support 500 pages in the dev server (#131)
* Support 500 pages

* Document custom 400/500 pages

* Remove search from any pages not the 500 page

* fix(kitchen-sink): add snowpack.config.js

* fix(examples): add snowpack.config.js

* style: redesign built-in 500 page

Co-authored-by: Nate Moore <nate@skypack.dev>
2021-04-26 16:42:11 -04:00
Nate Moore
87af0aead8
First Pass at LSP (#129)
* feat(lsp): add HTML features to LSP

* chore: add language server license

* feat(lsp): add folding ranges, scaffold TS features

* feat(lsp): TypeScript Language Service setup

* refactor(lsp): cleanup typescript completion providr

* chore: format

* chore: cleanup eslint

* fix: license

* chore: remove comment

* chore: add marketplace info

* chore: publish
2021-04-23 17:53:01 -05:00
Matthew Phillips
62ddea7bb7
Support the /404 route in the dev server (#128)
* Support the /404 route in the dev server

* Fix status code

* Formatting
2021-04-23 15:20:19 -04:00
Drew Powers
510e7920d2
Add RSS generation (#123) 2021-04-23 10:44:41 -06:00
Drew Powers
a7185735da
Add sitemap generation (#120)
* Add sitemap generation

* Update README

* Fix index handling, sort sitemap

* Add --no-sitemap CLI flag (and config option)
2021-04-21 14:14:24 -06:00
Nate Moore
54409a0702
Prettier support for .astro files (#106)
* docs: fix readme

* chore: scaffold prettier plugin

* chore(prettier): switch to cjs

* test(prettier): scaffold prettier tests

* test(prettier): add simple prettier tests

* feat(prettier): first pass

* refactor: expose parser as CJS export

* test(prettier): add long expression

* refactor(prettier): use Astro parser + built-in prettier doc for prettier plugin

* chore: remove parser from git

* chore: add prettier-plugin-astro `build` to workflow

* chore: update package-lock

* chore: do not build prettier-plugin-astro

* fix: update engines

* chore: remove NPM restriction

* chore: fix workflow paths

* chore: update build script

* test: fix prettier expr test

* chore: fix parser build on windows

* refactor: add parser tsconfig, extending base config

* chore: relax ban-ts-comment

* chore: fix lint issue

Co-authored-by: Nate Moore <nate@skypack.dev>
2021-04-21 11:14:44 -05:00
Matthew Phillips
eb984559a8
Fix dynamic React components (#111)
Another change in snowpack@3 caused this bug. It's not actually a bug in snowpack. Previously snowpack was keeping its list of installed packages in a global cache. In 3.3 it stopped doing so. We were accidentally relying on that global cache to be able to resolve dynamic components.

This fixes it so that we use the frontend snowpack instance to resolve dynamic components. Doing so means they are available when we try to load them.
2021-04-19 14:41:06 -04:00
Matthew Phillips
58c499dc85
Pass mode into snowpack runtime (#99)
* Pass the `mode` through to snowpack

This allows the production packages to be prepared.

* Use snowpack 3.3.1

* Update path to prism loadComponents external ref

* Upgrade to snowpack 3.3.2
2021-04-16 13:15:27 -04:00
Nate Moore
22ca9e0aac
Support children inside of components (#72)
* chore(examples): add kitchen-sink

* feat: support children in rendered components

* feat: add support for rendering children in Svelte

* fix: cleanup p/react fragment children

* chore: add @ts-nocheck to svelte files

* chore: update lockfiles

* fix: types

* feat: memoize frontend/renderer/utils

* fix: disable eslint for compiled SvelteWrapper

* fix: add missing dep

Co-authored-by: Nate Moore <nate@skypack.dev>
2021-04-15 10:55:50 -05:00
Nate Moore
8472b374b3
New landing page (#95)
* feat: new www

* fix: add svg favicon

* fix: small tweaks

* fix: Drew's nitpicks

* fix: sizing, tagline

* copy: add "astronauts" :)

* fix: astro logo color

* fix: overflow

Co-authored-by: Nate Moore <nate@skypack.dev>
2021-04-14 18:01:51 -05:00
Drew Powers
ec75312a15
Improve Tailwind docs & Tailwind support (#92) 2021-04-14 10:36:00 -06:00
Drew Powers
3d0d53486c
Add Astro.fetchContent API (#91) 2021-04-13 18:08:32 -06:00
Drew Powers
3639190b4e
Renaming to import.meta.fetchContent (#70)
* Change to import.meta.glob()

Change of plans—maintain parity with Snowpack and Vite because our Collections API will use a different interface

* Get basic pagination working

* Get params working

* Rename to import.meta.fetchContent

* Upgrade to fdir
2021-04-12 17:21:29 -06:00
duncanhealy
687ff5bacd
chore fix lint reduce errors generated (#83)
* add dep domhandler imported in in src/build/static

* lint and jsDoc error

* move domhandler to devDep

* chore: add package lock

* escape string jsDoc

* chore: add astro dep in until prism import is refactored

* chore: add snowpack example package lock
2021-04-12 16:20:58 +01:00
Matthew Phillips
cffde0192b
Add back in astro as a dependency of the snowpack example (#81)
Removing the dependency breaks the site as using Markdown creates an import to a builtin Astro component. So we need astro as a dep. Not sure why it was changed anyways.
2021-04-12 08:26:59 -04:00
Fred K. Schott
4e7ae2075d small size change 2021-04-10 13:02:07 -07:00
Fred K. Schott
d3f8efbf6e cleanup landing page, and small fix 2021-04-10 13:00:50 -07:00
Fred K. Schott
1712f9edb6 add counter component 2021-04-10 12:35:25 -07:00
Matthew Phillips
72ae661e9e
Add support for syntax highlighting of code blocks (#65)
* Add support for syntax highlighting of code blocks

* Escape usage of backtick strings

* Add workspace root for snowpack

* Use prismjs/components as an external module
2021-04-08 15:17:00 -04:00
Drew Powers
2b346d7a4c
Blog Support 1/3: Data fetching (#62)
* Add example blog

* Add author data

* Improve navigation

* Style nav

* Add friendly error message

* Throw error if import glob used for non-Markdown files

* Use import.meta.collection() API instead

* README fixes
2021-04-06 15:54:55 -06:00
Drew Powers
b58b493948
Fix body from being scoped (#56) 2021-04-02 12:50:30 -06:00
Matthew Phillips
54ba9f5ee1
Fix complex MDX parsing (#50)
* 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
2021-04-01 16:34:11 -04:00
Matthew Phillips
d5b15a3851
Support for custom elements (#45)
* 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
2021-03-31 16:46:09 -04:00
Matthew Phillips
d9084ff4ad
Implement fallback capability (#44)
* 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
2021-03-31 16:10:27 -04:00
Drew Powers
3fa6396a7b
Extract Astro styles to external stylesheets (#43)
* Extract Astro styles to external stylesheets

* Require relative URLs in Markdown layouts
2021-03-31 13:04:18 -06:00
Fred K. Schott
1c0590aeff simplify svg animation, slow it down 2021-03-30 12:13:56 -07:00
Drew Powers
7334a550d8
Fix nested parens bug (#39) 2021-03-30 10:37:04 -06:00
Drew Powers
ee6ef81cf3
Convert CSS Modules to scoped styles (#38)
* 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
2021-03-30 10:11:21 -06:00
Matthew Phillips
3b27eaac43
Add support for doctype (#37)
* Add support for doctype

* Automatically prepend doctype
2021-03-30 10:51:31 -04:00
Matthew Phillips
a79f7d4077
Bundling! 🤘 (#36)
* Bundling! 🤘

* Finalize build changes
2021-03-30 09:24:26 -04:00
Fred K. Schott
f11fd265f8 revert bad snowpack example changes 2021-03-29 13:48:27 -07:00
Fred K. Schott
d2d0ddad82 update landing page 2021-03-29 11:33:14 -07:00
Fred K. Schott
33c7b953b5 update site title 2021-03-29 10:46:35 -07:00
Fred K. Schott
ae8840bf8f clean up landing page 2021-03-29 10:43:46 -07:00
Fred K. Schott
4ff1822bb9 add example www site 2021-03-29 08:43:38 -07:00
Nate Moore
9ab1f52a1c
New hydration methods (#29)
* 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>
2021-03-26 17:09:28 -05:00
Drew Powers
c7b03776ee
Fix JSX CSS Modules classes (#31) 2021-03-26 13:26:36 -06:00
Drew Powers
3ddd3594f0
Absorb Snowpack config inside Astro (#32)
* Absorb Snowpack config inside Astro

* Add basic README

* Format tests

* Update esbuild

* Format tests
2021-03-26 13:14:32 -06:00
Drew Powers
11637df579
Improve styles (#30) 2021-03-25 18:23:45 -06:00
Drew Powers
04a443a888
Add React component SSR (#28)
* Add React component SSR

* Add React component SSR
2021-03-25 16:59:38 -06:00
Matthew Phillips
3db5959377
First pass at the build (#27)
This updates `astro build` to do a production build. It works! No optimizations yet.
2021-03-25 14:06:08 -04:00
Fred K. Schott
30cccdf715
add component state, top-level await support (#26) 2021-03-25 00:00:22 -07:00
Fred K. Schott
a72ab10c62
Redesign pages, remove layout nesting (#24)
* wip

* new svelte-style prop declaration is working

* got it working!

* revert h changes

* format

* style lang update
2021-03-24 16:01:28 -07:00
Matthew Phillips
3c24faa8ca
hmx ☞ astro (#22)
This changes all hmx files to astro files and updates all code to not reference hmx any more.
2021-03-24 11:45:38 -04:00
Matthew Phillips
5c1cd5b1da
Fix snowpack test (#21)
Using the new `---` syntax, it must be at the top of the file. If it's not it will loop indefinitely.
2021-03-24 08:27:01 -04:00
Fred K. Schott
fee5e3064e fix typo 2021-03-23 20:17:45 -07:00
Fred K. Schott
195b131f43 add support for frontmatter scripts 2021-03-23 20:15:44 -07:00
Fred K. Schott
5492a2dc4e update package-lock 2021-03-23 19:45:03 -07:00
Matthew Phillips
ed85702581
Allow HMX components in markdown (#19)
* 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
2021-03-23 15:20:03 -04:00
Drew Powers
e0353d50e7 Use <style lang>, add node_module resolution to Sass 2021-03-23 13:18:14 -06:00
Matthew Phillips
854d0feb34
Add support for React components. (#18)
* 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
2021-03-23 13:47:54 -04:00
Drew Powers
1fdc1c799a
[wip] Add styles to Snowpack app (#13)
* Add styles to Snowpack app

* Bubble up file build errors

* Fix merge error
2021-03-22 18:06:58 -06:00
Fred K. Schott
d125d57b3a add typescript support for expressions 2021-03-22 00:26:59 -07:00
Fred K. Schott
f28590e640 add example of props in ts 2021-03-21 22:56:36 -07:00
Fred K. Schott
6e4367fd49 another pass at head/body handling in pages 2021-03-21 20:34:11 -07:00
Fred K. Schott
e03afbd980 add fetch support 2021-03-21 16:16:18 -07:00
Fred K. Schott
558ef18b58 get test runner running 2021-03-21 15:13:38 -07:00
Fred K. Schott
417657f138 lots of improvements 2021-03-21 00:44:42 -07:00
Matthew Phillips
2082001ff8
Add snowpack as an example project. (#11)
* Initial tests set up

This adds tests using uvu (we can switch if people want) and restructures things a bit so that it's easier to test.

Like in snowpack you set up a little project. In our tests you can say:

```js
const result = await runtime.load('/blog/hello-world')
```

And analyze the result. I included a `test-helpers.js` which has a function that will turn HTML into a cheerio instance, for inspecting the result HTML.

* Bring snowpack example in

* Formatting
2021-03-19 17:17:38 -04:00