Path: blob/master/src/packages/frontend/editors/slate/elements/meta/editable.tsx
1702 views
/*1* This file is part of CoCalc: Copyright © 2020 Sagemath, Inc.2* License: MS-RSL – see LICENSE.md for details3*/45/*67YAML metadata node, e.g., at the VERY top like this:89---10title: HW0211subtitle: Basic Rmd and Statistics12output:13html_document:14theme: spacelab15highlight: tango16toc: true17---181920*/2122import { register } from "../register";23import { useSlate } from "../hooks";24import { A } from "@cocalc/frontend/components";25import { useSetElement } from "../set-element";26import { SlateCodeMirror } from "../codemirror";2728register({29slateType: "meta",3031Element: ({ attributes, children, element }) => {32if (element.type != "meta") throw Error("bug");33const editor = useSlate();34const setElement = useSetElement(editor, element);3536return (37<div {...attributes}>38<div contentEditable={false}>39<span style={{ float: "right" }}>40<A href="https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html">41YAML42</A>{" "}43Header44</span>45<code>---</code>46<SlateCodeMirror47style={{ marginBottom: 0 }}48info="yml"49options={{ lineWrapping: true }}50value={element.value}51onChange={(value) => {52setElement({ value });53}}54/>55<code>---</code>56</div>57{children}58</div>59);60},6162fromSlate: ({ node }) => `---\n${node.value}\n---\n`,63});646566