1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 |
x1 x1 x1 x1 x1 x1 x1 x1 x1 x1 x1 x1 x1 x1 x1 x1 x1 x1 x1 x1 |
import { extractJson as _function_extractJson } from "jsr:@std/[email protected]"
/**
* Extracts and parses {@link https://www.json.org/ | JSON } from the metadata
* of front matter content.
*
* @example Extract JSON front matter
* ```ts
* import { extract } from "@std/front-matter/json";
* import { assertEquals } from "@std/assert";
*
* const output = `---json
* { "title": "Three dashes marks the spot" }
* ---
* Hello, world!`;
* const result = extract(output);
*
* assertEquals(result, {
* frontMatter: '{ "title": "Three dashes marks the spot" }',
* body: "Hello, world!",
* attrs: { title: "Three dashes marks the spot" },
* });
* ```
*
* @template T The type of the parsed front matter.
* @param text The text to extract JSON front matter from.
* @return The extracted JSON front matter and body content.
*/
const extractJson = _function_extractJson as typeof _function_extractJson
export { extractJson }
import { extractToml as _function_extractToml } from "jsr:@std/[email protected]"
/**
* Extracts and parses {@link https://toml.io | TOML} from the metadata of
* front matter content.
*
* @example Extract TOML front matter
* ```ts
* import { extract } from "@std/front-matter/toml";
* import { assertEquals } from "@std/assert";
*
* const output = `---toml
* title = "Three dashes marks the spot"
* ---
* Hello, world!`;
* const result = extract(output);
*
* assertEquals(result, {
* frontMatter: 'title = "Three dashes marks the spot"',
* body: "Hello, world!",
* attrs: { title: "Three dashes marks the spot" },
* });
* ```
*
* @template T The type of the parsed front matter.
* @param text The text to extract TOML front matter from.
* @return The extracted TOML front matter and body content.
*/
const extractToml = _function_extractToml as typeof _function_extractToml
export { extractToml }
import { extractYaml as _function_extractYaml } from "jsr:@std/[email protected]"
/**
* Extracts and parses {@link https://yaml.org | YAML} from the metadata of
* front matter content.
*
* @example Extract YAML front matter
* ```ts
* import { extract } from "@std/front-matter/yaml";
* import { assertEquals } from "@std/assert";
*
* const output = `---yaml
* title: Three dashes marks the spot
* ---
* Hello, world!`;
* const result = extract(output);
*
* assertEquals(result, {
* frontMatter: "title: Three dashes marks the spot",
* body: "Hello, world!",
* attrs: { title: "Three dashes marks the spot" },
* });
* ```
*
* Note: If you need to pass the options to the yaml parse,
* use the new version of this API from `@std/yaml/unstable-yaml`.
*
* @template T The type of the parsed front matter.
* @param text The text to extract YAML front matter from.
* @return The extracted YAML front matter and body content.
*/
const extractYaml = _function_extractYaml as typeof _function_extractYaml
export { extractYaml }
import type { Format as _typeAlias_Format } from "jsr:@std/[email protected]"
/**
* Supported format for front matter. `"unknown"` is used when auto format
* detection logic fails.
*/
type Format = _typeAlias_Format
export type { Format }
import { test as _function_test } from "jsr:@std/[email protected]"
/**
* Tests if a string has valid front matter.
* Supports {@link https://yaml.org | YAML}, {@link https://toml.io | TOML} and
* {@link https://www.json.org/ | JSON}.
*
* @param str String to test.
* @param formats A list of formats to test for. Defaults to all supported formats.
* @return `true` if the string has valid front matter, otherwise `false`.
*
* @example Test for valid YAML front matter
* ```ts
* import { test } from "@std/front-matter/test";
* import { assert } from "@std/assert";
*
* const result = test(
* `---
* title: Three dashes marks the spot
* ---
* `);
* assert(result);
* ```
*
* @example Test for valid TOML front matter
* ```ts
* import { test } from "@std/front-matter/test";
* import { assert } from "@std/assert";
*
* const result = test(
* `---toml
* title = 'Three dashes followed by format marks the spot'
* ---
* `);
* assert(result);
* ```
*
* @example Test for valid JSON front matter
* ```ts
* import { test } from "@std/front-matter/test";
* import { assert } from "@std/assert";
*
* const result = test(
* `---json
* {"title": "Three dashes followed by format marks the spot"}
* ---
* `);
* assert(result);
* ```
*
* @example JSON front matter is not valid as YAML
* ```ts
* import { test } from "@std/front-matter/test";
* import { assertFalse } from "@std/assert";
*
* const result = test(
* `---json
* {"title": "Three dashes followed by format marks the spot"}
* ---
* `, ["yaml"]);
* assertFalse(result);
* ```
*/
const test = _function_test as typeof _function_test
export { test }
import type { Extract as _typeAlias_Extract } from "jsr:@std/[email protected]"
/**
* Return type for {@linkcode extract} function.
*/
type Extract<T> = _typeAlias_Extract<T>
export type { Extract }
|