deno.land / std@0.224.0 / front_matter / mod.ts

View Documentation
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
// deno-lint-ignore-file no-unused-vars// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.// Copyright (c) Jason Campbell. MIT license
/** * Extracts * {@link https://daily-dev-tips.com/posts/what-exactly-is-frontmatter/ | front matter} * from strings. Adapted from * {@link https://github.com/jxson/front-matter/blob/36f139ef797bd9e5196a9ede03ef481d7fbca18e/index.js | jxson/front-matter}. * * ## Supported formats * * ### JSON * * ```ts * import { test } from "https://deno.land/std@$STD_VERSION/front_matter/test.ts"; * import { extract } from "https://deno.land/std@$STD_VERSION/front_matter/json.ts"; * * const str = "---json\n{\"and\": \"this\"}\n---\ndeno is awesome"; * const result = extract(str); * * test(str); // true * result.frontMatter; // "{\"and\": \"this\"}" * result.body; // "deno is awesome" * result.attrs; // { and: "this" } * ``` * * {@linkcode extractJson | extract} and {@linkcode test} support the following delimiters. * * ```markdown * ---json * { * "and": "this" * } * --- * ``` * * ```markdown * { * "is": "JSON" * } * ``` * * ### TOML * * ```ts * import { test } from "https://deno.land/std@$STD_VERSION/front_matter/test.ts"; * import { extract } from "https://deno.land/std@$STD_VERSION/front_matter/toml.ts"; * * const str = "---toml\nmodule = 'front_matter'\n---\ndeno is awesome"; * const result = extract(str); * * test(str); // true * result.frontMatter; // "module = 'front_matter'" * result.body; // "deno is awesome" * result.attrs; // { module: "front_matter" } * ``` * * {@linkcode extractToml | extract} and {@linkcode test} support the following delimiters. * * ```markdown * ---toml * this = 'is' * --- * ``` * * ```markdown * = toml = * parsed = 'as' * toml = 'data' * = toml = * ``` * * ```markdown * +++ * is = 'that' * not = 'cool?' * +++ * ``` * * ### YAML * * ```ts * import { test } from "https://deno.land/std@$STD_VERSION/front_matter/test.ts"; * import { extract } from "https://deno.land/std@$STD_VERSION/front_matter/yaml.ts"; * * const str = "---yaml\nmodule: front_matter\n---\ndeno is awesome"; * const result = extract(str); * * test(str); // true * result.frontMatter; // "module: front_matter" * result.body; // "deno is awesome" * result.attrs; // { module: "front_matter" } * ``` * * {@linkcode extractYaml | extract} and {@linkcode test} support the following delimiters. * * ```front_matter * --- * these: are * --- * ``` * * ```markdown * ---yaml * all: recognized * --- * ``` * * ```markdown * = yaml = * as: yaml * = yaml = * ``` * * @module */import type { extract as extractJson } from "./json.ts";import type { extract as extractToml } from "./toml.ts";import type { extract as extractYaml } from "./yaml.ts";
export * from "./create_extractor.ts";export * from "./test.ts";
std

Version Info

Tagged at
6 months ago