mirror of https://github.com/sveltejs/svelte
parent
15d25b7374
commit
e03ba9051c
@ -1,6 +1,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import { createEventDispatcher } from 'svelte';
|
import { createEventDispatcher } from 'svelte';
|
||||||
import { enter } from './events.js';
|
import { enter } from '../events.js';
|
||||||
|
|
||||||
export let examples;
|
export let examples;
|
||||||
export let name;
|
export let name;
|
@ -1,5 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
import { user, logout } from '../../../user.js';
|
import { user, logout } from '../../../../user.js';
|
||||||
|
|
||||||
let showMenu = false;
|
let showMenu = false;
|
||||||
let name;
|
let name;
|
@ -0,0 +1,55 @@
|
|||||||
|
<script>
|
||||||
|
import { createEventDispatcher } from 'svelte';
|
||||||
|
import * as fleece from 'golden-fleece';
|
||||||
|
import CodeMirror from '../CodeMirror.html';
|
||||||
|
|
||||||
|
const dispatch = createEventDispatcher();
|
||||||
|
|
||||||
|
export let value;
|
||||||
|
let json5;
|
||||||
|
|
||||||
|
if (value === undefined) {
|
||||||
|
json5 = 'undefined';
|
||||||
|
} else {
|
||||||
|
json5 = fleece.stringify(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
$: try {
|
||||||
|
value = fleece.evaluate(json5);
|
||||||
|
} catch (err) {
|
||||||
|
console.error(Object.keys(err));
|
||||||
|
// TODO show in UI
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleChange(event) {
|
||||||
|
try {
|
||||||
|
const value = fleece.evaluate(event.detail.value);
|
||||||
|
dispatch('change', { value });
|
||||||
|
} catch (err) {
|
||||||
|
// TODO indicate error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.prop-editor {
|
||||||
|
border: 1px solid #eee;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="prop-editor">
|
||||||
|
<CodeMirror
|
||||||
|
mode="json"
|
||||||
|
bind:code={json5}
|
||||||
|
lineNumbers={false}
|
||||||
|
on:change={handleChange}
|
||||||
|
flex
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- <CodeMirror
|
||||||
|
mode="json"
|
||||||
|
bind:code={json5}
|
||||||
|
error={dataError}
|
||||||
|
errorLoc={dataErrorLoc}
|
||||||
|
/> -->
|
@ -1,62 +0,0 @@
|
|||||||
.module-name {
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
|
||||||
background-color: #ff00d4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.panel-header {
|
|
||||||
/* padding: 0 40px .5em 0; */
|
|
||||||
background-color: #ff00d4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown {
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
|
||||||
float: left;
|
|
||||||
padding: 0 2em 0 0;
|
|
||||||
background-color: #ff00d4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown::after {
|
|
||||||
content: '▼';
|
|
||||||
position: absolute;
|
|
||||||
right: 1rem;
|
|
||||||
top: .55rem;
|
|
||||||
font-size: .8em;
|
|
||||||
color: #999;
|
|
||||||
pointer-events: none;
|
|
||||||
background-color: #ff00d4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input-wrapper {
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
|
||||||
float: left;
|
|
||||||
line-height: 1;
|
|
||||||
/* margin: 0 .3em 0 0; */
|
|
||||||
background-color: #ff00d4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.file-tabs li.active {
|
|
||||||
/* background-color: var(--back-light); */
|
|
||||||
background-color: #ff00d4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widther {
|
|
||||||
display: block;
|
|
||||||
font-family: inherit;
|
|
||||||
font-size: inherit;
|
|
||||||
border: 1px solid #eee;
|
|
||||||
padding: calc(.5em - 1px) .25em;
|
|
||||||
line-height: 1;
|
|
||||||
background-color: #ff00d4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.file-extension {
|
|
||||||
display: inline-block;
|
|
||||||
padding: calc(.5em - 1px) 0;
|
|
||||||
color: var(--prime);
|
|
||||||
left: -.2em;
|
|
||||||
pointer-events: none;
|
|
||||||
background-color: #ff00d4;
|
|
||||||
}
|
|
@ -0,0 +1,15 @@
|
|||||||
|
export default function process_markdown(markdown) {
|
||||||
|
const match = /---\n([\s\S]+?)\n---/.exec(markdown);
|
||||||
|
const frontMatter = match[1];
|
||||||
|
const content = markdown.slice(match[0].length);
|
||||||
|
|
||||||
|
const metadata = {};
|
||||||
|
frontMatter.split('\n').forEach(pair => {
|
||||||
|
const colonIndex = pair.indexOf(':');
|
||||||
|
metadata[pair.slice(0, colonIndex).trim()] = pair
|
||||||
|
.slice(colonIndex + 1)
|
||||||
|
.trim();
|
||||||
|
});
|
||||||
|
|
||||||
|
return { metadata, content };
|
||||||
|
}
|
Loading…
Reference in new issue