
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
@sanity/code-input
Advanced tools
Ace editor for editing code
Code input for Sanity.
Currently only a subset of languages and features are exposed, over time we will implement a richer set of options.
sanity install @sanity/code-input
Use it in your schema types:
// [...]
{
fields: [
// [...]
{
name: 'exampleUsage',
title: 'Example usage',
type: 'code',
},
]
}
Note that the above only works if you import and use the all:part:@sanity/base/schema-type
part in your schema.
language
- Default language for this code fieldlanguageAlternatives
- Array of languages that should be available (se its format in the example below)theme
- Name of the theme to use.
['github', 'monokai', 'terminal', 'tomorrow']
.withFilename
- Boolean option to display input field for filename// ...fields...
{
name: 'exampleUsage',
title: 'Example usage',
type: 'code',
options: {
theme: 'solarized_dark',
language: 'js',
languageAlternatives: [
{title: 'Javascript', value: 'js'},
{title: 'HTML', value: 'html'},
{title: 'CSS', value: 'css'},
{title: 'Rust', value: 'rust', mode:'rust'},
{title: 'SASS', value: 'sass'},
]
}
}
Only a subset of languages are supported by default (see full list here). You can add support for other languages by importing the ace mode yourself, and specifying mode
for the languageAlternatives
schema config.
Example: Add support for the Rust Programming Language
// import rust support for ace, see https://github.com/securingsincity/react-ace for more details
import 'ace-builds/src-noconflict/mode-rust'
{
name: 'exampleUsage',
title: 'Example usage',
type: 'code',
options: {
languageAlternatives: [
{title: 'Javascript', value: 'js'},
{
title: 'Rust',
value: 'rust',
mode:'rust' // <- specify the mode to use here. Make sure this mode is also imported from ace-builds (see above)
},
]
}
}
{
_type: 'code',
language: 'js',
highlightedLines: [1, 2],
code: 'const foo = "bar"\nconsole.log(foo.toUpperCase())\n// BAR'
}
You can use any syntax highlighter you want - but not all of them might support highlighted lines or the syntax you've defined.
As outlined above, the actual code is stored in a code
property, so if your schema has a field called codeExample
of type code
, the property you'd want to pass to the highlighter would be codeExample.code
.
Here's an example using react-refractor:
import React from 'react'
import Refractor from 'react-refractor'
import js from 'refractor/lang/javascript'
Refractor.registerLanguage(js)
export function Code(props) {
return (
<Refractor
// In this example, `props` is the value of a `code` field
language={props.language}
value={props.code}
markers={props.highlightedLines}
/>
)
}
export default Code
Other syntax highlighters include:
MIT-licensed. See LICENSE.
FAQs
Sanity input component for code, powered by CodeMirror
The npm package @sanity/code-input receives a total of 22,746 weekly downloads. As such, @sanity/code-input popularity was classified as popular.
We found that @sanity/code-input demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 65 open source maintainers 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 uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.