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

+5-4
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

+1-1
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

+8-3
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

+9-4
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

+1-1
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)