fec583909a
* chore: integration setup * feat: get markdoc contents * wip: expose Markdoc from integration * feat: basic Astro renderer in with-markdoc * fix: component render bug * deps: stringify-attributes * fix: render attributes to html * wip: play with separate markdoc config * wip: get dream API for file loader working * chore: unit tests * deps: graymatter * feat: addContentEntryType integration hook * deps: move to @astrojs/markdoc * feat: move Renderer to markdoc, get Content component! * wip: scaffold content types * deps: mdx * wip: move mdx to collection type API * refactor: move plain md to content entry type * refactor: pass file contents * oops, forgot to commit untracked * fix: markdoc.config loading * refactor: remove fallback loader * chore: remove unused dream file * deps: devalue, test fixture * test: entry and collections parse * play: make sure md also works * deps: add shiki for Code comp error * fix: remove "components" from tsconfig * chore: ignore `.astro` type error * fix: avoid import if no config present (prod build error) * fix: stop bundling markdoc for isTag * test: prod builds * test: content component dev and build * chore: Markdoc working! log * fix: ContentEntryType import * chore: remove content-types. Too early! * chore: remove unused options object * play: add docs example with Aside and Since ported * chore: with-markdoc strictNullChecks * chore: unused file * feat: allow Render type injection * feat: content prop types for markdoc! * chore: clean up Markdoc starter to essentials * chore: unused style tag * chore: remove unused deps * fix: glob for single content extension * chore: remove unused fixture dep * chore: remove markdoc.config loader * docs: update example README * docs: @astrojs/markdoc README intro * fix: line endings in test * docs: add usage and examples to Markdoc README * docs: change with-markdoc title * docs: README edits * refactor: clean up astroNode * nit: reorder type import * docs: add note on Aside src * chore: changeset * nit: 0.0.0 to avoid version bump * fix: lock * refactor: remove unneeded async * fix: import types from @astrojs/markdoc * fix: type inferencing in preview * fix: remove unneeded html-escaper * deps: remove html-escaper * feat: support `.md` overrides for content collections * chore: mdoc -> md * feat: generate `.md` types override * Revert "feat: support `.md` overrides for content collections" This reverts commit |
||
---|---|---|
.. | ||
.vscode | ||
public | ||
src | ||
.gitignore | ||
astro.config.mjs | ||
package.json | ||
README.md | ||
sandbox.config.json | ||
tsconfig.json |
Astro Example: Markdoc (experimental)
This starter showcases the experimental Markdoc integration.
npm create astro@latest -- --template with-markdoc
🧑🚀 Seasoned astronaut? Delete this file. Have fun!
🚀 Project Structure
Inside of your Astro project, you'll see the following folders and files:
/
├── public/
├── src/
│ └── content/
└── docs/
│ └── intro.mdoc
| └── config.ts
│ └── components/
| ├── Aside.astro
│ └── DocsContent.astro
│ └── layouts/
│ └── Layout.astro
│ └── pages/
│ └── index.astro
| └── env.d.ts
├── astro.config.mjs
├── README.md
├── package.json
└── tsconfig.json
Markdoc (.mdoc
) files can be used in content collections to author your Markdown content alongside Astro and server-rendered UI framework components (React, Vue, Svelte, and more). See src/content/docs/
for an example file.
You can also apply Astro components and server-rendered UI components (React, Vue, Svelte, etc) to your Markdoc files. See src/content/DocsContent.astro
for an example.
🧞 Commands
All commands are run from the root of the project, from a terminal:
Command | Action |
---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:3000 |
npm run build |
Build your production site to ./dist/ |
npm run preview |
Preview your build locally, before deploying |
npm run astro ... |
Run CLI commands like astro add , astro check |
npm run astro --help |
Get help using the Astro CLI |
👀 Want to learn more?
Feel free to check our documentation or jump into our Discord server.