Commit graph

53 commits

Author SHA1 Message Date
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
3ffeb0f7b7
Restore parse errors (#130) 2021-04-23 15:20:05 -04:00
Drew Powers
510e7920d2
Add RSS generation (#123) 2021-04-23 10:44:41 -06:00
Matthew Phillips
da033e27ea
CLI docs (#121)
* Start of cli docs

* Document the CLI

Also adds support for the `--config` option and `--port` option for the dev server.

* Add tests for --config and --port flags

* Add port to validateConfig
2021-04-22 08:25:57 -04: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
Drew Powers
3263c02d77
Update Snowpack, Add CSS Modules SSR (#116)
* Add CSS Modules SSR

* Update docs
2021-04-20 15:06:33 -06:00
Matthew Phillips
b25d2cc93e 0.0.6 2021-04-19 15:38:20 -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
Drew Powers
3d0d53486c
Add Astro.fetchContent API (#91) 2021-04-13 18:08:32 -06:00
duncanhealy
b588581396
set node version in nvmrc & engines to lts (#87)
* node lts version for nvmrc v14.16.1

* node lts version for nvmrc v14.16.1

* engine version set to to 14.x.x and npm >=6 < 7
2021-04-13 13:03:26 -04: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
Fred K. Schott
faae08712e 0.0.5 2021-04-10 22:02:34 -07:00
Fred K. Schott
a17bafbb5a update snowpack plugin 2021-04-10 22:02:19 -07:00
Fred K. Schott
1355d570f5 add astro bin to files array 2021-04-10 21:59:59 -07:00
Fred K. Schott
c923f1793d 0.0.4 2021-04-10 21:58:59 -07:00
Fred K. Schott
a66fd3272b add publish script 2021-04-10 21:58:57 -07:00
Fred K. Schott
24f50220e1 update package.json 2021-04-10 13:17:31 -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
Matthew Phillips
7240f0d677
Create a astro/components/ folder (#63)
This adds astro/components/ and moves the Prism.astro component into there. So to use in a project you can do:

```html
---
import Prism from 'astro/components/Prism.astro';
---

<Prism lang="html" code={`<html> ... </html>`}
```
2021-04-06 15:27:42 -04:00
Drew Powers
008ffc2951
Fix scoping issues (#58) 2021-04-02 20:44:23 -06:00
Drew Powers
5a1f422883
Move devDeps to deps (#54) 2021-04-02 11:04:48 -06:00
Drew Powers
003b3c395f
Get CSS Modules working in Vue (#53) 2021-04-02 10:16:16 -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
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
Matthew Phillips
3e82a0052d
Add minification (#42) 2021-03-30 16:07:12 -04: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
a79f7d4077
Bundling! 🤘 (#36)
* Bundling! 🤘

* Finalize build changes
2021-03-30 09:24:26 -04:00
Drew Powers
7def0463b1
Add Auto-format action (#33) 2021-03-26 13:45:53 -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
Nate Moore
18e7cc5af9
Scaffold language server (#25)
* wip: scaffold astro extension

* wip: scaffold astro extension

* WIP: vscode extension

* fix: autoCloseBefore

* chore: update package.json

* fix: use tsx instead of plain ts

* chore: remove dist files

* chore: remove comments

* chore: cleanup package build process, switch build to esbuild

* refactor: use shared esbuild config

Co-authored-by: Nate Moore <nate@skypack.dev>
2021-03-25 10:38:17 -05:00
Fred K. Schott
30cccdf715
add component state, top-level await support (#26) 2021-03-25 00:00:22 -07:00
Drew Powers
3f84bf3838
Update Snowpack to latest version (#20) 2021-03-23 18:05:09 -06:00
Matthew Phillips
e1c486b646 Add esbuild as a dependency 2021-03-23 15:37:34 -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
e03afbd980 add fetch support 2021-03-21 16:16:18 -07:00
Fred K. Schott
417657f138 lots of improvements 2021-03-21 00:44:42 -07:00
Matthew Phillips
17c3c98f07
Initial tests set up (#10)
* Begin debugging

* 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.

* Add CI

* Remove extra console logs

* Formatting
2021-03-19 17:07:45 -04:00
Drew Powers
5661b28914
Add style transforms (#7)
* Add style transforms

* Let crawler be sync
2021-03-18 11:25:19 -06:00
Drew Powers
458454dae5 Clean up TS types 2021-03-16 14:58:45 -06:00
Matthew Phillips
588b086a4d
Bring compiler into Astro (#4)
* include source compiler

* Import from JS

* Conditionally use the instance contents

Co-authored-by: Fred K. Schott <fkschott@gmail.com>
2021-03-16 16:08:11 -04:00
Drew Powers
8c45c4a856
Annoying Lint PR™ (#3)
* Add Prettier + ESLint

* Format files
2021-03-16 12:37:45 -06:00
Matthew Phillips
1f5c7c791f
Upgrade to latest snowpack pre (#2)
This contains a bunch of bug fixes for SSR we need.
2021-03-16 14:08:49 -04:00
Drew Powers
f7c2a55788 Add watch mode 2021-03-16 11:54:43 -06:00