Skip to content

Commit 43a5534

Browse files
committed
fix parsing
1 parent 34837d0 commit 43a5534

File tree

5 files changed

+24
-13
lines changed

5 files changed

+24
-13
lines changed

src/App.vue

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
class="my-class"
55
id="my-id"
66
:code="code"
7-
language="js"
7+
language="py"
88
code-class="codeClass"
99
:lines-highlighted="[1, 2]"
1010
:words-highlighted="['log']"
@@ -15,18 +15,19 @@
1515
<script setup lang="ts">
1616
import { CodeBlock } from '../dist';
1717
const code = `console.log('Hello');
18-
const name = 'World';
19-
`;
18+
const name = 'World';
19+
`;
2020
</script>
2121

2222
<style>
2323
.my-class {
2424
color: rgb(65, 24, 24);
2525
border: 1px solid red;
2626
border-radius: 10px;
27+
font-size: 16px;
2728
}
2829
#my-id {
29-
background-color: rgb(107, 194, 126);
30+
/* background-color: rgb(0, 0, 0); */
3031
padding: 25px;
3132
}
3233
</style>

src/components/code-block/CodeBlock.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
// TODO: add theme
1818
const rootContext = computed(() => ({
1919
// codeClass: props.codeClass,
20-
code: parseCodeIntoLines(props.code),
20+
code: parseCodeIntoLines(props.code, props.language),
2121
language: props.language,
2222
linesHighlighted: props.linesHighlighted,
2323
wordsHighlighted: props.wordsHighlighted,

src/components/line/Line.vue

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
1-
<template></template>
1+
<template>
2+
<div v-html="line"></div>
3+
</template>
24

35
<script setup lang="ts">
4-
import { defineComponent, toRefs } from 'vue';
6+
import { defineComponent, onBeforeMount, toRefs } from 'vue';
57
import { lineProps, lineInstance } from './types';
68
import { useCode } from './use-line';
9+
import { highlightedCode } from '../utils';
710
811
const props = defineProps(lineProps());
9-
12+
// onBeforeMount(()=> {
13+
// highlightedCode(props.line);
14+
// })
1015
defineComponent<lineInstance>({
1116
name: 'Line',
1217
props: lineProps(),

src/components/utils.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import 'prismjs/themes/prism.css';
21
import { highlight, languages } from 'prismjs';
3-
// import 'prismjs-components-importer/esm';
2+
import 'prismjs/themes/prism-tomorrow.min.css';
43

54
export function highlightedCode(code: string, language: string) {
65
if (code === null || code === undefined) {
@@ -23,13 +22,19 @@ export function highlightedCode(code: string, language: string) {
2322
return highlight(code, prismLanguage, language);
2423
}
2524

26-
export function parseCodeIntoLines(code: string): string[] {
25+
export function parseCodeIntoLines(
26+
code: string,
27+
language: string = 'markup'
28+
): string[] {
2729
if (typeof code !== 'string') {
2830
throw new Error('Provided code must be a string');
2931
}
3032

3133
return code
3234
.split(/\r?\n/)
3335
.map((line) => line.trim())
34-
.filter((l) => l.length > 0);
36+
.filter((l) => l.length > 0)
37+
.map((line) => {
38+
return highlightedCode(line, language);
39+
});
3540
}

tsconfig.tsbuildinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"root":["./src/index.ts","./src/main.ts","./src/components/components.ts","./src/components/index.ts","./src/components/utils.ts","./src/components/code/index.ts","./src/components/code/types.ts","./src/components/code/use-code.ts","./src/components/code-block/index.ts","./src/components/code-block/types.ts","./src/components/code-block/use-code-block.ts","./src/types/code-block.d.ts","./src/types/code.d.ts","./src/App.vue","./src/components/code/Code.vue","./src/components/code-block/CodeBlock.vue"],"version":"5.6.2"}
1+
{"root":["./src/index.ts","./src/main.ts","./src/components/components.ts","./src/components/index.ts","./src/components/utils.ts","./src/components/code/index.ts","./src/components/code/types.ts","./src/components/code/use-code.ts","./src/components/code-block/index.ts","./src/components/code-block/types.ts","./src/components/code-block/use-code-block.ts","./src/components/line/index.ts","./src/components/line/types.ts","./src/components/line/use-line.ts","./src/types/code-block.d.ts","./src/types/code.d.ts","./src/types/line.d.ts","./src/App.vue","./src/components/code/Code.vue","./src/components/code-block/CodeBlock.vue","./src/components/line/Line.vue"],"version":"5.6.2"}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy