Skip to content

Commit fd7f68e

Browse files
committed
Refactor docs
1 parent 05c2b84 commit fd7f68e

File tree

1 file changed

+45
-35
lines changed

1 file changed

+45
-35
lines changed

readme.md

+45-35
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
* [`Result`](#result)
2222
* [Syntax tree](#syntax-tree)
2323
* [JSX](#jsx)
24-
* [Types](#types)
2524
* [Compatibility](#compatibility)
2625
* [Security](#security)
2726
* [Related](#related)
@@ -49,7 +48,8 @@ when creating any unist nodes and
4948
## Install
5049

5150
This package is [ESM only][github-gist-esm].
52-
In Node.js (version 16+), install with [npm][npmjs-install]:
51+
In Node.js (version 16+),
52+
install with [npm][npmjs-install]:
5353

5454
```sh
5555
npm install hastscript
@@ -146,10 +146,16 @@ Yields:
146146

147147
This package exports the identifiers [`h`][api-h] and [`s`][api-s].
148148
There is no default export.
149+
It exports the additional [TypeScript][] types
150+
[`Child`][api-child],
151+
[`Properties`][api-properties],
152+
and
153+
[`Result`][api-result].
149154

150155
The export map supports the automatic JSX runtime.
151-
You can pass `hastscript` or `hastscript/svg` to your build tool (TypeScript,
152-
Babel, SWC) with an `importSource` option or similar.
156+
You can pass `hastscript` or `hastscript/svg` to your build tool
157+
(TypeScript, Babel, SWC)
158+
with an `importSource` option or similar.
153159

154160
### `h(selector?[, properties][, …children])`
155161

@@ -165,18 +171,22 @@ Create virtual **[hast][github-hast]** trees for HTML.
165171

166172
###### `selector`
167173

168-
Simple CSS selector (`string`, optional).
169-
Can contain a tag name (`foo`), IDs (`#bar`), and classes (`.baz`).
170-
If the selector is a string but there is no tag name in it, `h` defaults to
171-
build a `div` element, and `s` to a `g` element.
172-
`selector` is parsed by
173-
[`hast-util-parse-selector`][github-hast-util-parse-selector].
174+
Simple CSS selector
175+
(`string`, optional).
174176
When string, builds an [`Element`][github-hast-element].
175177
When nullish, builds a [`Root`][github-hast-root] instead.
178+
The selector can contain a tag name (`foo`),
179+
IDs (`#bar`),
180+
and classes (`.baz`).
181+
If the selector is a string but there is no tag name in it then `h` defaults to
182+
build a `div` element and `s` to a `g` element.
183+
`selector` is parsed by
184+
[`hast-util-parse-selector`][github-hast-util-parse-selector].
176185

177186
###### `properties`
178187

179-
Properties of the element ([`Properties`][api-properties], optional).
188+
Properties of the element
189+
([`Properties`][api-properties], optional).
180190

181191
###### `children`
182192

@@ -194,8 +204,8 @@ otherwise [`Root`][github-hast-root].
194204
Create virtual **[hast][github-hast]** trees for SVG.
195205

196206
Signatures, parameters, and return value are the same as `h` above.
197-
Importantly, the `selector` and `properties` parameters are interpreted as
198-
SVG.
207+
Importantly,
208+
the `selector` and `properties` parameters are interpreted as SVG.
199209

200210
### `Child`
201211

@@ -222,8 +232,8 @@ type Child =
222232
### `Properties`
223233
224234
Map of properties (TypeScript type).
225-
Keys should match either the HTML attribute name, or the DOM property name, but
226-
are case-insensitive.
235+
Keys should match either the HTML attribute name or the DOM property name,
236+
but are case-insensitive.
227237
228238
###### Type
229239
@@ -262,16 +272,21 @@ This package can be used with JSX.
262272
You should use the automatic JSX runtime set to `hastscript` or
263273
`hastscript/svg`.
264274
265-
> 👉 **Note**: while `h` supports dots (`.`) for classes or number signs (`#`)
266-
> for IDs in `selector`, those are not supported in JSX.
275+
> 👉 **Note**
276+
> while `h` supports dots (`.`) for classes or number signs (`#`)
277+
> for IDs in `selector`,
278+
> those are not supported in JSX.
267279
268-
> 🪦 **Legacy**: you can also use the classic JSX runtime, but this is not
269-
> recommended.
270-
> To do so, import `h` (or `s`) yourself and define it as the pragma (plus
271-
> set the fragment to `null`).
280+
> 🪦 **Legacy**:
281+
> you can also use the classic JSX runtime,
282+
> but this is not recommended.
283+
> To do so,
284+
> import `h` (or `s`) yourself and define it as the pragma
285+
> (plus set the fragment to `null`).
272286
273-
The Use example above can then be written like so, using inline pragmas, so
274-
that SVG can be used too:
287+
The Use example above can then be written like so,
288+
using inline pragmas,
289+
so that SVG can be used too:
275290
276291
`example-html.jsx`:
277292
@@ -300,21 +315,15 @@ console.log(
300315
)
301316
```
302317
303-
## Types
304-
305-
This package is fully typed with [TypeScript][].
306-
It exports the additional types [`Child`][api-child],
307-
[`Properties`][api-properties], and
308-
[`Result`][api-result].
309-
310318
## Compatibility
311319
312320
Projects maintained by the unified collective are compatible with maintained
313321
versions of Node.js.
314322
315-
When we cut a new major release, we drop support for unmaintained versions of
316-
Node.
317-
This means we try to keep the current release line, `hastscript@^9`,
323+
When we cut a new major release,
324+
we drop support for unmaintained versions of Node.
325+
This means we try to keep the current release line,
326+
`hastscript@9`,
318327
compatible with Node.js 16.
319328
320329
## Security
@@ -393,8 +402,9 @@ for ways to get started.
393402
See [`support.md`][health-support] for ways to get help.
394403

395404
This project has a [code of conduct][health-coc].
396-
By interacting with this repository, organization, or community you agree to
397-
abide by its terms.
405+
By interacting with this repository,
406+
organization,
407+
or community you agree to abide by its terms.
398408

399409
## License
400410

0 commit comments

Comments
 (0)