Skip to content

Commit

Permalink
fix(content): ensure prism toolbar is loaded first, use external merm…
Browse files Browse the repository at this point in the history
…aid loader (#564)
  • Loading branch information
brandonroberts authored Jul 24, 2023
1 parent b7cef8a commit 9ab2884
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 19 deletions.
10 changes: 4 additions & 6 deletions apps/blog-app/src/app/app.config.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
import {
provideContent,
withMarkdownRenderer,
withMermaid,
} from '@analogjs/content';
import { provideContent, withMarkdownRenderer } from '@analogjs/content';
import { provideFileRouter } from '@analogjs/router';
import { provideHttpClient } from '@angular/common/http';
import { ApplicationConfig } from '@angular/core';
Expand All @@ -16,7 +12,9 @@ export const appConfig: ApplicationConfig = {
providers: [
provideHttpClient(),
provideClientHydration(),
provideContent(withMarkdownRenderer(), withMermaid()),
provideContent(
withMarkdownRenderer({ loadMermaid: () => import('mermaid') })
),
provideFileRouter(
withInMemoryScrolling({ anchorScrolling: 'enabled' }),
withEnabledBlockingInitialNavigation()
Expand Down
1 change: 0 additions & 1 deletion packages/content/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ export {
MarkdownContentRendererService,
provideContent,
withMarkdownRenderer,
withMermaid,
} from './lib/markdown-content-renderer.service';
export { default as MarkdownRouteComponent } from './lib/markdown-route.component';
export { default as MarkdownComponent } from './lib/markdown.component';
Expand Down
31 changes: 20 additions & 11 deletions packages/content/src/lib/markdown-content-renderer.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,28 @@ export class MarkdownContentRendererService implements ContentRenderer {
enhance() {}
}

export function withMarkdownRenderer(): Provider {
return {
provide: ContentRenderer,
useFactory: () => new MarkdownContentRendererService(),
deps: [MarkedSetupService],
};
export interface MarkdownRendererOptions {
loadMermaid?: () => Promise<typeof import('mermaid')>;
}

export function withMermaid(): Provider {
return {
provide: MERMAID_IMPORT_TOKEN,
useValue: import('mermaid'),
};
export function withMarkdownRenderer(
options?: MarkdownRendererOptions
): Provider {
return [
{
provide: ContentRenderer,
useFactory: () => new MarkdownContentRendererService(),
deps: [MarkedSetupService],
},
options?.loadMermaid
? [
{
provide: MERMAID_IMPORT_TOKEN,
useFactory: options.loadMermaid,
},
]
: [],
];
}

export function provideContent(...features: Provider[]) {
Expand Down
2 changes: 1 addition & 1 deletion packages/content/src/lib/marked-setup.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ import { gfmHeadingId } from 'marked-gfm-heading-id';
import { markedHighlight } from 'marked-highlight';

import 'prismjs';
import 'prismjs/plugins/toolbar/prism-toolbar';
import 'prismjs/components/prism-bash';
import 'prismjs/components/prism-css';
import 'prismjs/components/prism-javascript';
import 'prismjs/components/prism-json';
import 'prismjs/components/prism-markup';
import 'prismjs/components/prism-typescript';
import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard';
import 'prismjs/plugins/toolbar/prism-toolbar';

declare const Prism: typeof import('prismjs');

Expand Down

0 comments on commit 9ab2884

Please sign in to comment.