Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
astro-code-editor
Advanced tools
Embed code editors for YAML, Markdown, JS / TS, JSON… Specifically tailored for each language. Powered by the Monaco Editor and helpers.
Embed code editors for YAML, Markdown, JS / TS, JSON…
Specifically tailored for each language.
Powered by the Monaco Editor + curated languages helpers.
Goal is to simplify configuration in nicely wrapped, type-safe Astro components, with easy access to created instances, browser side, thanks to Custom Elements.
Warning
🚧 Work-in-progress.
pnpm i astro-code-editor
Because each language can have their set of settings and externally loaded libraries (like language servers, snippets, typings…), choice has been made to separate them instead of providing a one-size-fit-all editor.
Using monaco-yaml
with YAML language server under the hood.
Monaco YAML live demo / Repository.
Features advanced JSON schema validation / auto-completion, far superior to remark-lint-frontmatter-schema
(however this one has the advantage of working in VS Code etc.).
Accepts Markdown input value with front matter automatic extraction.
See the component interface.
Soon…
Soon…
Soon…
Full working example:
---
// E.g. `src/pages/editor-demos.astro`
import YAMLEditor from 'astro-code-editor/YAMLEditor.astro';
import Layout from '../layouts/Bare.astro';
/* Remote schema URI — Example: JSON Schema core meta schema */
const coreMetaSchemaUrl = 'http://json-schema.org/draft-07/schema#';
/* —OR— from your Astro `public` folder */
const mySchema = '/schemas/my-schema.yaml';
/* You can use Markdown with frontmatter as source too, not only pure YAML */
const initialValue = `---
title: Hello
description: World
---
# Hello
`;
---
<Layout>
<header><h1>Demos page!</h1></header>
<main>
<editor-demos>
<section>
<YAMLEditor
data-yaml-demo-editor
schemaUrlRef={coreMetaSchemaUrl}
value={initialValue}
extractMarkdownFrontmatter
/>
<hr />
<button data-clear>Clear text</button>
</section>
<section>…</section>
</editor-demos>
<hr />
<section><em>That's a wrap!</em></section>
</main>
<footer>© {new Date().getFullYear()}</footer>
</Layout>
<script>
// Use YAMLEditor Custom Elem. class definition, for type discrimination below
import YAMLEditor from 'astro-code-editor/YAMLEditor.client.js';
// Create a Custom Element for housing our demos (totally optional)
class EditorDemos extends HTMLElement {
connectedCallback() {
const clearButtonElement = this.querySelector('[data-clear]');
if (!(clearButtonElement instanceof HTMLButtonElement)) return;
// Assert the createdMonaco editor + model
const editor = this.querySelector('[data-yaml-demo-editor]');
if (!(editor instanceof YAMLEditor)) return;
const model = editor?.model;
if (!model) return;
// Current instance model methods are now auto-completed in your IDE
// `model: editor.ITextModel`
clearButtonElement.addEventListener('click', () => {
model.setValue(`# CLEARED! ${new Date().toLocaleString()}`);
});
}
}
customElements.define('editor-demos', EditorDemos);
</script>
<style lang="scss">
editor-demos {
display: block;
width: 100%;
& > section {
max-width: 60vw;
margin: 0 auto;
}
// Editors styles
// /!\ Don't forget to set editor dimensions /!\
[data-yaml-demo-editor] {
width: 800px;
height: 600px;
}
}
// Other page styles…
header {
text-align: center;
padding-bottom: 4rem;
}
footer {
padding-top: 4rem;
text-align: center;
}
main {
width: 100%;
}
</style>
FAQs
Embed code editors for YAML, Markdown, JS / TS, JSON… Specifically tailored for each language. Powered by the Monaco Editor and helpers.
We found that astro-code-editor demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.