0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2024-12-30 22:03:56 -05:00
Commit graph

57 commits

Author SHA1 Message Date
Bjorn Lu
cfa0c454b5 [ci] format 2023-11-30 15:06:09 +00:00
Bjorn Lu
1c48ed2865
Support Vite 5 (#9122) 2023-11-17 22:02:05 +08:00
bluwy
0aee43fc16 [ci] format 2023-11-14 15:01:58 +00:00
Bjorn Lu
4537ecf0d0
Refactor shikiji syntax highlighting code (#9083) 2023-11-14 23:00:17 +08:00
Luca Di Gianventura
01c801108f
Fix: Markdoc Integration build when root folder contains spaces (#8759)
Co-authored-by: Arsh <69170106+lilnasy@users.noreply.github.com>
2023-10-27 17:45:02 +08:00
AndyClifford
73b8d60f8c
feat(markdoc): allowIndentation integration option (#8802) 2023-10-24 08:40:54 +01:00
Bjorn Lu
c4270e4768
Use shikiji (#8502)
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-10-12 00:07:06 +08:00
Erika
4e395a6cab
config: migrate us to moduleResolution: 'node16' (#8519) 2023-09-13 16:49:22 +02:00
Bjorn Lu
e79e3779df
Remove pre-shiki v0.14 theme names (#8169) 2023-08-21 21:02:30 +08:00
Erika
b76c166bdd
feat: unflag experimental.assets (#7921)
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
2023-08-16 10:21:05 +02:00
Emanuele Stoppa
0f06255041 feat: upper case the name of the endpoints (#7783)
Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
Co-authored-by: Yan Thomas <61414485+Yan-Thomas@users.noreply.github.com>
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
2023-08-08 11:01:33 +01:00
Emanuele Stoppa
42fc57ee60 chore: fix rebase problems 2023-08-08 11:01:33 +01:00
Erika
d0679a666f Remove support for Node 16 (#7780) 2023-08-08 11:01:33 +01:00
bholmesdev
25e04a2ecb [ci] format 2023-07-24 23:36:32 +00:00
Alex Sherwin
7461e82c81
Add "allowHTML" option for Markdoc with HTML parsing/processing (#7597)
* 7576 - initial support for HTML inside Markdoc.

This uses htmlparser2 to perform a pure token transform/mutation
on the markdown-it tokens, replacing the original raw HTML string
tokens with a richer set of tokens per HTML node, and in the process
Markdoc tags are interleaved in the resulting token graph at the
appropriate locations

This removes the legacy config of the @astrojs/markdoc integration
entirely (suggested by @bholmesdev) and introduces a new type for
options to be specified in the astro config, initially, with just the new
"enableHTML" option

When "enableHTML" is *not* enabled (the default), the behavior
of the entire @astrojs/markdoc integration should remain functionally
equivalent to before this change

* 7576 - fixed issues with whitespace preservation

also:

* cleaned up " to ' for astro project preferred linting
* made the html rendering test fixture use a dynamic path

* 7576 - detailed nested HTML test coverage

* 7576 -  component + HTML interleaved tests

* 7576 -  fix lint problems from previous changes

* 7576 -  some commentary

* 7576 -  file naming, refactor html under imports, package.json exports definition for html

* 7576

* move out of extensions dir, remove export
* cdata handling changes

* 7576

* inline license from third party code
* cleanup test class copy of HTML output
* remove // third party indicators for imports (clarification: not third party code, just a indicator this group of imports is third party)

* 7576 - fixed test before/after for DRY'ness

* 7576 - no need to React-ify HTML attribute case

* 7576 - rename "enableHTML" option to "allowHTML"

* Added Markdoc allowHTML feature changeset

* 7576 - updated README with allowHTML info

* 7576 - fixed changeset typo

* 7576 - minor edits based on PR feedback for docs

* 7576 - minor edits based on PR feedback for docs
2023-07-24 19:34:06 -04:00
Bjorn Lu
d8bae784b4
Fix organize-imports-cli with satisfies operator (#7727) 2023-07-20 20:47:36 +08:00
Princesseuh
a8cbd7c71a [ci] format 2023-07-18 16:06:17 +00:00
Erika
4f6b5ae2ba
Fix/markdoc assets (#7706) 2023-07-18 18:03:46 +02:00
Ben Holmes
8df6a423c5
Fix: Hyphens breaking Markdoc tags (#7599)
* fix: handle hyphens in tag names

* test: add hyphen in test suite

* chore: changeset
2023-07-07 16:50:06 -04:00
Ben Holmes
c135633bf6
Fix: Markdoc v0.4.0 docs (#7593)
* docs: add docs link to markdoc error

* docs: add named exports guide to README

* chore: changeset

* edit: no like so

Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>

* edit: exposed as named exports

Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>

---------

Co-authored-by: bholmesdev <bholmesdev@gmail.com>
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
2023-07-07 09:22:26 -04:00
Josh Goldberg ✨
2fea174303
feat: use typescript-eslint@v6's reworked configs (#7425) 2023-07-03 20:59:43 +08:00
Ben Holmes
1a9b644e20
fix: ts-expect-error (#7505) 2023-06-27 16:25:27 -05:00
bholmesdev
647079da14 [ci] format 2023-06-27 19:08:29 +00:00
Ben Holmes
fb7af55114
feat: New Markdoc render API (#7468)
* feat: URL support for markdoc tags

* refactor: move to separate file

* feat: support URL for markdoc nodes

* feat: support `extends` with URL

* chore: changeset

* fix: bad AstroMarkdocConfig type

* fix: experimentalAssetsConfig missing

* fix: correctly merge runtime config

* chore: formatting

* deps: astro internal helpers

* feat: component() util, new astro bundling

* chore: remove now unused code

* todo: missing hint

* fix: import.meta.url type error

* wip: test nested collection calls

* feat: resolve paths from project root

* refactor: move getHeadings() to runtime module

* fix: broken collectHeadings

* test: update fixture configs

* chore: remove suggestions. Out of scope!

* fix: throw outside esbuild

* refactor: shuffle imports around

* Revert "wip: test nested collection calls"

This reverts commit 9354b3cf9222fd65b974b0cddf4e7a95ab3cd2b2.

* chore: revert back to mjs config

* chore: add jsdocs to stringified helpers

* fix: restore updated changeset

---------

Co-authored-by: bholmesdev <bholmesdev@gmail.com>
2023-06-27 15:05:17 -04:00
Ben Holmes
f6feff7a29
feat: restart server on markdoc config change (#7467)
* deps: vite-plugin-restart

* feat: restart on markdoc config change

* chore: changeset

* chore: roll our own restarter!

* deps: remove vite-plugin-restart

* refactor: use good enough option
2023-06-27 10:46:59 -04:00
Erika
4e02a59e42
fix(errors): Deprecate error codes (#7347)
Co-authored-by: bluwy <bjornlu.dev@gmail.com>
2023-06-26 16:51:06 +08:00
bholmesdev
777e5d7587 [ci] format 2023-06-10 17:45:51 +00:00
Ben Holmes
a30f2f3de4
Fix Markdoc cloudflare errors (#7351)
* fix: move `node:` libs out of utils

* fix: node -> default

* chore: remove kleur from markdoc ex (why was this there??)

* chore: lock

* chore: changeset
2023-06-10 13:43:26 -04:00
bholmesdev
8b5c311b34 [ci] format 2023-06-06 18:51:14 +00:00
Ben Holmes
a11b62ee1f
Fix: Markdoc type errors (#7311)
* fix: config, prism, shiki exports

* fix: type error for `render` property

* chore: use `.ts` files in select tests for type checks

* fix: type error on shiki() promise

* chore: changeset
2023-06-06 14:48:54 -04:00
bholmesdev
c86f0c6e3e [ci] format 2023-05-31 23:21:07 +00:00
Ben Holmes
339529fc82
Markdoc asset bleed, second try (#7185)
* Revert "revert: markdoc asset bleed (#7178)"

This reverts commit 57e65d247f.

* fix: missing result param on `renderUniqueStylesheet`

* test: bundled styles (fails!)

* fix: use `type: 'external'` for links

* fix: split Astro components from markdoc config

* test: style bleed (it fails...)

* chore: remove unused util

* fix: revert entry change

* Stop traversing the graph when you encounter a propagated asset

* chore: cleanup unused `entry` prop

* refactor: add isPropagatedAssetsMod check

* chore: remove unused import

* chore: changeset

* Normalize path using vite

* Update packages/integrations/markdoc/src/index.ts

Co-authored-by: Ben Holmes <hey@bholmes.dev>

---------

Co-authored-by: Matthew Phillips <matthew@skypack.dev>
Co-authored-by: bholmesdev <bholmesdev@gmail.com>
Co-authored-by: Matthew Phillips <matthew@matthewphillips.info>
2023-05-31 19:18:07 -04:00
Ben Holmes
563293c5d6
Markdoc: strip HTML comments from output (#7224)
* feat: strip HTML comments from output

* chore: changeset
2023-05-31 10:09:49 -04:00
bholmesdev
8da07ab754 [ci] format 2023-05-30 20:21:13 +00:00
Ben Holmes
bef3a75dbc
Markdoc - remove $entry variable (#7244)
* refactor: remove entry prop from `getRenderModule()`

* refactor: remove `$entry` from markdoc

* test: update entry-prop -> variables test

* refactor: unify `getEntryConfigByExt`

* chore: clean up shared content / data get logic

* docs: update `$entry` recommendation

* chore: rename entry-prop -> variables

* chore: changeset

* chore: missed a spot
2023-05-30 16:18:20 -04:00
bholmesdev
594a3aaf51 [ci] format 2023-05-25 15:37:55 +00:00
Ben Holmes
16b8364119
Markdoc - improve syntax highlighting support (#7209)
* feat: prism and shiki support, with better exports!

* chore: update tests

* chore: fix lock

* chore: add prism test

* chore: remove `async` from prism

* docs: update syntax highlight readme

* chore: changeset

* edit: remove `await` from prism docs

* chore: update old changest with new shiki instructions

* fix: add trailing newline on ts-expect-error

* refactor: resolve promises internally

* docs: remove `await` from shiki examples
2023-05-25 11:35:07 -04:00
Emanuele Stoppa
8727b5bd85
fix: formatting comment (#7206) 2023-05-25 10:29:11 +01:00
bholmesdev
dc31b8a722 [ci] format 2023-05-24 20:54:43 +00:00
Ben Holmes
1efaef6be0
Markdoc - Shiki (#7187)
* chore: remove unused util

* chore: changeset

* deps: shiki

* wip: first stab at shiki markdoc config

* feat: get shiki working!

* refactor: return HTML string directly from transform

* chore: move shiki to markdoc dev dep

* refactor: use async cache with clear docs on why

* test: transform units with Shiki config options

* refactor: switch to `extends` model

* refactor: nodes/ -> extensions/

* feat: raise friendly error for Promise extensions

* docs: README

* chore: lint

* chore: dead file

* chore: lowercase for fuzzy find please

* fix: bad ctx spread

* chore: clean up cache, add shiki imp error

* chore: add shiki to optional peer deps

* chore: hoist those consts

* docs: more explicit "install shiki now please"

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* oops bad find and replace

* chore: update changeset

* nit: period haunts me

---------

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-05-24 16:52:22 -04:00
Ben Holmes
57e65d247f
revert: markdoc asset bleed (#7178)
* revert: markdoc asset bleed

* chore: changeset
2023-05-23 12:16:50 -04:00
Ben Holmes
f558a9e205
[Markdoc] Fix global asset bleed (#6758)
* wip: propagatedAssets flag per-component

* Propagate in TreeNode

* fix: remove unused inject comment

* feat: make asset propagation an integration opt-in

* fix: remove crawlGraph stopper

* wip: logs to understand what's happening

* SSR mdoc files in dev

* feat: add astroPropagatedAssets flag with vite

* chore: remove console logs

* chore: cleanup hasContentFlag

* fix: set handlePropagation default for legacy integrations

* chore: changeset

* temp: silence acorn type error

* chore: revert pnpm-lock changes

* fix: check correct flag

* We need to handle propagation on markdown because of layouts

* Remove use of renderStyleElement

* Fix heading tests

* Fix merge conflict

* typeof function

* Switch the check

* Add comment on injection detection regexp

---------

Co-authored-by: Matthew Phillips <matthew@skypack.dev>
2023-05-22 13:50:01 -04:00
bholmesdev
358d1dc92f [ci] format 2023-05-19 18:14:41 +00:00
Ben Holmes
a9e1cd7e58
Fix: Heading ID CI flakiness (#7141)
* feat: use `ctx` object instead of leaky global

* test: heading IDs stale caches

* chore: changeset
2023-05-19 14:12:45 -04:00
Ben Holmes
c6d7ebefdd
Data collections and references (#6850)
* feat: add generated lookup-map

* feat: wire up fast getEntryBySlug() lookup

* fix: consider frontmatter slugs

* chore: changeset

* chore: lint no-shadow

* fix: revert bad rootRelativePath change

* chore: better var name

* refactor: generated `.json` to in-memory map

* chore: removed unneeded await

Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>

* chore: removed unneeded await

Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>

* Revert "chore: removed unneeded await"

This reverts commit 1b0a8b00c2.

* fix: bad `GetEntryImport` type

* chore: remove unused variable

* refactor: for -> Promise.all

* refactor: replace duplicate parseSlug

* refactor: add cache layer

* Revert "refactor: add cache layer"

This reverts commit 1c3bfdc6b3.

* feat: json collection POC

* wip: add test json file

* wip: playing with api ideas

* refactor: extract getCollectionName

* feat: add defineDataCollection

* refactor: variable destructure

* wip: basic data entry pipeline

* chore: revert fixture playing

* wip: basic entry array parser

* feat: basic data type gen

* chore: add with-data playground

* feat: add error when `defineDataCollection()` isn't used

* fix: missing error message

* feat: data collections are here!

* wip: play with data query APIs

* feat: reference() util!

* fix: Markdoc `$entry` variable

* play: add reference util with markdoc

* chore: delete console logs

* feat: `src/data/`!

* feat: reference() errors

* fix: handle hoisted schema parse errors

* fix: reload config and invalid on collection changes

* feat: separate maps for content and data entries

* feat: new `reference()` API that fixes type inference

* feat: support `defineCollection()` for data config

* fix: defineCollection `type` inferenenceπinference

* chore: lock

* feat: getCollection() for everything!

* feat: get full entry access from reference()

* chore: changeset

* wip: type error on acorn?

* chore: lint

* chore: add slugger to data ID processing

* chore: astro/zod -> zod

* chore: example version

* chore: remove slugifier from data id

* chore: remove dead getDataCollection

* chore: remove dead defineDataCollection

* fix: bad collection import

* chore: lock

* feat: add data collections to lookup map

* refactor: stop resolving data from reference

* feat: introduce getEntry and new reference()

* fix: update config loader

* fix: reference() type

* feat: test self references (they work 🎉)

* fix: use `slug` for content references

* fix: bad getEntry content type

* chroe: remove console logs

* fix: strict null checks on with-data

* feat: add getEntries for ref arrays

* chore: fix type hints for reference strings

* chore: change to type never for clarity

* play: try getEntries

* Return to "everything goes in `src/content/`

This reverts commit cc637ec6db4fc23afab585df5f240b7f7c0abc8a.

* fix: remove old function

* chore: update to AstroErrors

* chore: remove unused fixture files

* play: names

* deps: js-yaml

* feat: data collection YAML with error handling

* refactor: remove console log

* refactor: code cleanup

* fix: allow mixed content to pass through glob imports

* chore: move lookupMap util to virtual-mod

* refactor: new lookupMap logic, better errors

* chore: change MixedContent title

* refactor: remove unneeded try / catch

* fix: use `ws.send` for type gen errors

* fix: bubble `ws.send` errors from astro sync

* refactor: revert verbose astroContentCollectionEntry

* fix: bad with-data package name

* fix: bad virtual mod flag

* chore: remove with-data playground

* test: data collection authors

* test: translations data collection

* fix: add `.yml` support

* refactor: mix in `.yaml` just for fun

* refactor: i18n -> translations

* chore: content-collection-references fixture

* chore: bad lockfile

* fix: bad ContentLookupMap import

* chore: revert back to astroContentCollectionEntry

* test: collection references

* fix: bad error code override

* chore: remove unused asset

* test: sync errors

* chore: remove stray console log

* chore: lock

* chore: revert with-markdoc changes

* chore: doc error states, remove bad merge code

* chore: remove bad `as any`

* chore: lint

* chore: inline ContentLookupMap comments

* chore: settings -> config

* fix: put back `defineCollection()`

* fix: entry.slug for get content collection

* chore: update get-entry-type tests

* docs: totally shorten "missing a `type`"

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* docs: truncate share a `schema`

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* chore: add `test:unit` and `test:unit:match`to base

* chore:  update changeset

* refactor: cleanup runtime types and inline comments

* nit: [0] instead of shift()

* refactor: `getRelativeEntryPath()` util

* chore: capitalized Collections for test:match

* nit: ?? viteId on split

* nit: separate Params obj

* chore: add try / catch on readFile

* nit: `const data`

* chore: clean up data collection exceptions

* nit: `?? ''` for search params

* chore: remove TODO on hoisted error

---------

Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-05-17 11:36:27 -04:00
bholmesdev
d4b00b541b [ci] format 2023-05-17 13:16:36 +00:00
Ben Holmes
fb84622af0
[Markdoc] headings and heading IDs (#7095)
* deps: markdown-remark

* wip: heading-ids function

* chore: add `@astrojs/markdoc` to external

* feat: `headings` support

* fix: allow `render` config on headings

* fix: nonexistent `userConfig`

* test: headings, toc, astro component render

* docs: README

* chore: changeset

* refactor: expose Markdoc helpers from runtime

* fix: bad named exports (commonjsssss)

* refactor: defaultNodes -> nodes

* deps: github-slugger

* fix: reset slugger cache on each render

* fix: bad astroNodes import

* docs: explain headingSlugger export

* docs: add back double stringify comment

* chore: bump to minor for internal exports change
2023-05-17 09:13:10 -04:00
Ben Holmes
3a9f72c7f3
[Markdoc] Validation and debugging improvements (#7045)
* feat: better validation logs

* chore: add warning to restart server on config chnage

* feat: expose Markdoc global from markdoc/config

* docs: update `nodes` reference

* chore: changeset

* docs: simplify headings explainer

* chore: ignore eslint log errors

* fix: make legacyConfig prop optional
2023-05-09 17:20:55 -04:00
bholmesdev
9352e0056c [ci] format 2023-03-27 22:06:51 +00:00
Ben Holmes
7c439868a3
[Markdoc] New config format with runtime variable support! (#6653)
* deps: esbuild

* feat: support direct component imports for render!

* deps: add devalue back

* refactor: remove unused components prop

* refactor: load experimental assets config separately

* fix: upate Content type def to support props

* refactor: replace astro stub with inline data

* feat: pass through viteId to getRenderMod

* fix: add back $entry var with defaults convention

* chore: remove unneeded validateRenderProps

* chore: remove uneeded validateComponents

* fix: remove userMarkdocConfig prop

* chore: add helpful error for legacy config

* deps: kleur

* fix: add back `isCapitalized`

* fix: log instead of throw to avoid scary stacktrace

* chore: delete more old logic (nice)

* chore: delete MORE unused utils

* chore: comment on separate assets config

* chore: remove console.log

* chore: general code cleanup

* test: new render config

* docs: new README

* fix: add expect-error on astro:assets

* feat: add defineMarkdocConfig helper

* docs: update example README

* test: add runtime variable

* chore: lint

* chore: changeset

* chore: add component import deletion

* docs: add notes on Vite fork

* fix: astro check

* chore: add `.mts` to markdoc config formats
2023-03-27 18:04:37 -04:00