Skip to content

Commit 17a3e28

Browse files
author
Maarten van Sambeek
committed
Adds a markup parameter to Preprocessors.
This parameter will hold the entire processed source file up until the current preprocessor. Fixes #4912
1 parent f46b38a commit 17a3e28

File tree

4 files changed

+27
-2
lines changed

4 files changed

+27
-2
lines changed

src/compiler/preprocess/index.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export type Preprocessor = (options: {
1717
content: string;
1818
attributes: Record<string, string | boolean>;
1919
filename?: string;
20+
markup: string;
2021
}) => Processed | Promise<Processed>;
2122

2223
function parse_attributes(str: string) {
@@ -103,7 +104,8 @@ export default async function preprocess(
103104
const processed = await fn({
104105
content,
105106
attributes: parse_attributes(attributes),
106-
filename
107+
filename,
108+
markup: source
107109
});
108110
if (processed && processed.dependencies) dependencies.push(...processed.dependencies);
109111
return processed ? `<script${attributes}>${processed.code}</script>` : match;
@@ -122,7 +124,8 @@ export default async function preprocess(
122124
const processed: Processed = await fn({
123125
content,
124126
attributes: parse_attributes(attributes),
125-
filename
127+
filename,
128+
markup: source
126129
});
127130
if (processed && processed.dependencies) dependencies.push(...processed.dependencies);
128131
return processed ? `<style${attributes}>${processed.code}</style>` : match;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
export default {
2+
preprocess: {
3+
script: ({ content, markup }) => {
4+
return {
5+
code: content.replace(
6+
"__HASDIVTAG__",
7+
markup && /<div\/>/g.test(markup) ? "'yes'" : "'no'"
8+
),
9+
};
10+
},
11+
},
12+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<script>
2+
console.log(__HASDIVTAG__);
3+
</script>
4+
5+
<div/>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<script>
2+
console.log('yes');
3+
</script>
4+
5+
<div/>

0 commit comments

Comments
 (0)