Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
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.
The npm package astro-code-editor receives a total of 1 weekly downloads. As such, astro-code-editor popularity was classified as not popular.
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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.