summaryrefslogtreecommitdiff
path: root/src/compiler/optimize/index.ts
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@matthewphillips.info> 2021-04-08 15:17:00 -0400
committerGravatar GitHub <noreply@github.com> 2021-04-08 15:17:00 -0400
commit72ae661e9e6f7b32adf9e6a47cdc6352dfa2a27d (patch)
tree3bc185025ee58360d05e509eb0873d796e9cb7a5 /src/compiler/optimize/index.ts
parent2b346d7a4c08b2c6ab6276751a8a984ba050656f (diff)
downloadastro-72ae661e9e6f7b32adf9e6a47cdc6352dfa2a27d.tar.gz
astro-72ae661e9e6f7b32adf9e6a47cdc6352dfa2a27d.tar.zst
astro-72ae661e9e6f7b32adf9e6a47cdc6352dfa2a27d.zip
Add support for syntax highlighting of code blocks (#65)
* Add support for syntax highlighting of code blocks * Escape usage of backtick strings * Add workspace root for snowpack * Use prismjs/components as an external module
Diffstat (limited to 'src/compiler/optimize/index.ts')
-rw-r--r--src/compiler/optimize/index.ts7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/compiler/optimize/index.ts b/src/compiler/optimize/index.ts
index a7bf828e0..fcbd6e950 100644
--- a/src/compiler/optimize/index.ts
+++ b/src/compiler/optimize/index.ts
@@ -7,6 +7,7 @@ import { walk } from 'estree-walker';
import optimizeStyles from './styles.js';
import optimizeDoctype from './doctype.js';
import optimizeModuleScripts from './module-scripts.js';
+import optimizeCodeBlocks from './prism.js';
interface VisitorCollection {
enter: Map<string, VisitorFn[]>;
@@ -57,7 +58,7 @@ function walkAstWithVisitors(tmpl: TemplateNode, collection: VisitorCollection)
if (collection.enter.has(node.type)) {
const fns = collection.enter.get(node.type)!;
for (let fn of fns) {
- fn(node, parent, key, index);
+ fn.call(this, node, parent, key, index);
}
}
},
@@ -65,7 +66,7 @@ function walkAstWithVisitors(tmpl: TemplateNode, collection: VisitorCollection)
if (collection.leave.has(node.type)) {
const fns = collection.leave.get(node.type)!;
for (let fn of fns) {
- fn(node, parent, key, index);
+ fn.call(this, node, parent, key, index);
}
}
},
@@ -83,7 +84,7 @@ export async function optimize(ast: Ast, opts: OptimizeOptions) {
const cssVisitors = createVisitorCollection();
const finalizers: Array<() => Promise<void>> = [];
- const optimizers = [optimizeStyles(opts), optimizeDoctype(opts), optimizeModuleScripts(opts)];
+ const optimizers = [optimizeStyles(opts), optimizeDoctype(opts), optimizeModuleScripts(opts), optimizeCodeBlocks(ast.module)];
for (const optimizer of optimizers) {
collectVisitors(optimizer, htmlVisitors, cssVisitors, finalizers);