| /** |
| * @license |
| * Copyright 2026 The Go Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style |
| * license that can be found in the LICENSE file. |
| */ |
| |
| import fs from 'fs'; |
| |
| /** |
| * parse extracts code snippets from markdown files in component |
| * directories for use as html in unit tests. The result is the |
| * concatenation of all fenced code blocks (```...```) in the file, |
| * which mirrors the original behavior of feeding the markdown through |
| * a marked renderer that returned each code block verbatim. |
| * |
| * @param file path to a markdown file. |
| * @returns code snippets from markdown file suitable to use |
| * in static unit tests. |
| */ |
| export async function parse(file: string): Promise<string> { |
| const content = await fs.promises.readFile(file, { encoding: 'utf-8' }); |
| const blocks: string[] = []; |
| const fence = /```[^\n]*\n([\s\S]*?)```/g; |
| let m: RegExpExecArray | null; |
| while ((m = fence.exec(content)) !== null) { |
| blocks.push(m[1]); |
| } |
| return blocks.join('\n'); |
| } |