Commit graph

115 commits

Author SHA1 Message Date
Nate Moore
633bb46dc4
Fix: plain string children bug (#138)
* fix: string children bug

* test: add string children test

* test: add other child test scenarios
2021-04-28 14:43:50 -05:00
Nate Moore
73b7827b40
chore: update docs to new defaults (#133) 2021-04-27 13:42:03 -05:00
Matthew Phillips
41c64b30af
Move the request object from import.meta to Astro (#134)
* Move the `request` object from import.meta to Astro

This moves the `request` object to the Astro "global" (really just a render-level variable).

* Document Astro.request
2021-04-27 14:00:33 -04: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
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
Matthew Phillips
3ffeb0f7b7
Restore parse errors (#130) 2021-04-23 15:20:05 -04:00
Matthew Phillips
9b9bdbf4a1
Add better CLI logging for dev/build (#126)
* Add better CLI logging for dev/build

This adds better CLI logging for dev and build.

* Fix the sorting
2021-04-23 13:28:00 -04:00
Drew Powers
510e7920d2
Add RSS generation (#123) 2021-04-23 10:44:41 -06:00
Kevin (Kun) "Kassimo" Qian
5eb232501f
Allow multiple JSX children appear in Mustache tag (#125)
* fix(www): link styles (#100)

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

* Add `assets/` (#102)

* chore: add assets

* docs: update readme

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

* docs: fix readme

* docs: fix readme

* chore: remove github banner

* Allow multiple JSX in mustache

* Manually discard package-lock update (due to local use of npm v7)

* Tidy up

* Revert mode ts-ignore

Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Co-authored-by: Nate Moore <nate@skypack.dev>
2021-04-22 15:10:06 -04:00
Matthew Phillips
f5384b139d
Fix typescript errors in the build (#124)
* Fix build

* Put sitemap on the buildOptions
2021-04-22 11:45:05 -04: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
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
matthewp
f6f01a7d7b [ci] npm run format 2021-04-19 20:14:27 +00:00
Matthew Phillips
cc1a318c41
Fix building of dynamic Svelte components (#115)
Svelte component resolution wasn't handled correctly during the build.

Note that in the future we need to consolidate a "framework" API, so this stuff is not sprinkled throughout the codebase.
2021-04-19 16:13:53 -04:00
Matthew Phillips
ea857e675d
Fix visible components (#112)
* Fix visible components

The wrapper component is grabbed with querySelector, so no need for `.item()` call which was throwing.

* Add back in display contents
2021-04-19 15:14:53 -04:00
matthewp
46a6ba6093 [ci] npm run format 2021-04-19 18:41:37 +00: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
matthewp
e43d98d6f3 [ci] npm run format 2021-04-16 17:15:59 +00: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
natemoo-re
2a7aa765b4 [ci] npm run format 2021-04-15 15:56:27 +00: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
f28cebcf61
Add collections to build (#94) 2021-04-14 17:24:34 -06:00
Drew Powers
034674c88c
Add Windows Support (#93)
* Add Windows to test suite

* Try implicit URL
2021-04-14 13:21:25 -06: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
Matt Mulder
ac22d94e11
fix: bundle client-side code for components used in .md pages (#78) 2021-04-13 13:04:01 -04:00
Jonathan Neal
740a6b73e0
add content-type to astro html (#85) 2021-04-13 13:01:42 -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
887ee982d8 fix plugins relative issue 2021-04-10 21:57:40 -07:00
Fred K. Schott
24f50220e1 update package.json 2021-04-10 13:17:31 -07:00
Fred K. Schott
d3f8efbf6e cleanup landing page, and small fix 2021-04-10 13:00:50 -07:00
Drew Powers
e3ca67d6dc
Use import specifier rather than filename (#71) 2021-04-09 14:23:25 -06:00
matthewp
62924b3162 [ci] npm run format 2021-04-09 18:09:44 +00:00
Matthew Phillips
ad9c3b1d8d
Parse inner JSX as Astro (#67)
* Parse inner JSX as Astro

This completes the compiler changes, updating the parser so that it parses inner "JSX" as Astro. It does this by finding the start and end of HTML tags and feeds that back into the parser.

The result is a structure like this:

```
{
  type: 'MustacheTag',
  expression: [
    {
      type: 'Expression',
      codeStart: 'colors.map(color => (',
      codeEnd: '}}'
      children: [ {
        type: 'Fragment',
        children: [ {
          type: 'Element',
          name: 'div'
        } ]
      } ]
    }
  ]
}
```

There is a new Node type, `Expression`.  Note that `MustacheTag` remains in the tree, all it contains is an Expression though. I could spend some time trying to remove it, there's just a few places that expect it to exist.

* Update import to the transform

* Transform prism components into expressions
2021-04-09 14:09:13 -04:00
matthewp
084845f79d [ci] npm run format 2021-04-09 17:04:00 +00:00
Matthew Phillips
185a267133
Improve renderer types (#69)
* Improve renderer types

Looking at the render code I noticed that the Component rendering is not typed. This adds that, might help prevent a bug in the future.

* Create the supported renderer type
2021-04-09 13:03:27 -04:00
matthewp
4ccf4196e3 [ci] npm run format 2021-04-08 19:17:34 +00: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
matthewp
3adb9ea87c [ci] npm run format 2021-04-06 20:15:14 +00:00
Matthew Phillips
72d9ece6db
Compiler cleanup (#64)
* 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
2021-04-06 16:14:42 -04:00
Drew Powers
1acd5ee310
Allow no config (#61)
* Allow no config

* Update README
2021-04-05 15:56:46 -06:00
matthewp
71e5de76f1 [ci] npm run format 2021-04-05 18:18:39 +00:00
Matthew Phillips
c9bc6ffef7
Improve searching for pages (#60)
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
2021-04-05 14:18:09 -04:00
Drew Powers
d9733e8d42
Add type declarations (#59) 2021-04-02 21:01:57 -06:00
Drew Powers
008ffc2951
Fix scoping issues (#58) 2021-04-02 20:44:23 -06:00
Drew Powers
aa333c2f29
Add Tailwind support (#57) 2021-04-02 19:23:30 -06:00