1
0
mirror of https://github.com/garraflavatra/rolens.git synced 2025-07-17 05:24:06 +00:00

Universal code viewer

This commit is contained in:
2023-01-15 12:09:27 +01:00
parent f9f1bc168c
commit 2e312dc7cb
3 changed files with 26 additions and 11 deletions

View File

@ -1,12 +1,18 @@
<script>
import CodeViewer from './codeviewer.svelte';
export let code = '';
let modalCode = '';
</script>
<div class="examplecode">
<div class="examplecode" on:pointerdown={() => modalCode = code}>
<strong>CLI command</strong>
<code>{code}</code>
</div>
<CodeViewer bind:code={modalCode} language="js" />
<style>
.examplecode {
border: 1px solid #ccc;

View File

@ -1,22 +1,31 @@
<script>
import hljs from 'highlight.js/lib/core';
import hljsJson from 'highlight.js/lib/languages/json';
import 'highlight.js/styles/atom-one-dark.css';
import hljsJSON from 'highlight.js/lib/languages/json';
import hljsJavaScript from 'highlight.js/lib/languages/javascript';
import Icon from './icon.svelte';
import Modal from './modal.svelte';
import 'highlight.js/styles/atom-one-dark.css';
export let json = '';
export let code = '';
export let language = 'json';
hljs.registerLanguage('json', hljsJson);
$: highlighted = json ? hljs.highlight('json', json).value : '';
const languageNames = {
json: 'JSON',
js: 'JavaScript',
};
hljs.registerLanguage('json', hljsJSON);
hljs.registerLanguage('js', hljsJavaScript);
$: highlighted = code ? hljs.highlight(language, code).value : '';
function copy() {
navigator.clipboard.writeText(json);
navigator.clipboard.writeText(code);
}
</script>
{#if json}
<Modal bind:show={json} title="JSON viewer" contentPadding={false}>
{#if code}
<Modal bind:show={code} title="{languageNames[language]} viewer" contentPadding={false}>
<div class="codeblock">
<div class="buttons">
<button class="btn" on:click={copy}>