Skip to content

Commit d561095

Browse files
author
Malte Legenhausen
committed
Version bumped to 4.0.0. package-lock.json added. README updated.
1 parent 1a3d878 commit d561095

File tree

4 files changed

+1842
-139
lines changed

4 files changed

+1842
-139
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## Version 4.0.0
4+
5+
* Support dropped for node version < 4.
6+
* New option `unorderedListItemPrefix` added.
7+
38
## Version 3.3.0
49

510
* Ability to pass custom formatting via the `format` option #128

README.md

Lines changed: 139 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ You can read from a file via:
3333
var htmlToText = require('html-to-text');
3434

3535
htmlToText.fromFile(path.join(__dirname, 'test.html'), {
36-
tables: ['#invoice', '.address']
36+
tables: ['#invoice', '.address']
3737
}, (err, text) => {
38-
if (err) return console.error(err);
39-
console.log(text);
38+
if (err) return console.error(err);
39+
console.log(text);
4040
});
4141
```
4242

@@ -46,7 +46,7 @@ or directly from a string:
4646
var htmlToText = require('html-to-text');
4747

4848
var text = htmlToText.fromString('<h1>Hello World</h1>', {
49-
wordwrap: 130
49+
wordwrap: 130
5050
});
5151
console.log(text);
5252
```
@@ -72,23 +72,24 @@ You can configure the behaviour of html-to-text with the following options:
7272
* `wrapCharacters` is an array containing the characters that may be wrapped on, these are used in order
7373
* `forceWrapOnLimit` defines whether to break long words on the limit if `true`.
7474
* `format` pass an object to enable custom formatting for specific elements (see below)
75+
* `unorderedListItemPrefix` defines the string that is used as item prefix for unordered lists `<ol>`. Default: `' * '`
7576

7677
### Override formatting for specific elements
7778

7879
By using the `format` option, you can specify formatting for these elements: `text`, `image`, `lineBreak`, `paragraph`, `anchor`, `heading`, `table`, `orderedList`, `unorderedList`, `listItem`, `horizontalLine`.
7980

80-
Each key must be a function which eventually receive `node` (the current node), `fn` (the next formatting function) and `options` (the options passed to html-to-text).
81+
Each key must be a function which eventually receive `elem` (the current elem), `fn` (the next formatting function) and `options` (the options passed to html-to-text).
8182

8283
```js
8384
var htmlToText = require('html-to-text');
8485

8586
var text = htmlToText.fromString('<h1>Hello World</h1>', {
86-
format: {
87-
heading: function (elem, fn, options) {
88-
var h = fn(elem.children, options);
89-
return '====\n' + h.toUpperCase() + '\n====';
90-
}
91-
}
87+
format: {
88+
heading: function (elem, fn, options) {
89+
var h = fn(elem.children, options);
90+
return '====\n' + h.toUpperCase() + '\n====';
91+
}
92+
}
9293
});
9394

9495
console.log(text);
@@ -116,133 +117,133 @@ The `tables` option has to be declared as comma separated list without whitespac
116117

117118
```html
118119
<html>
119-
<head>
120-
<meta charset="utf-8">
121-
</head>
122-
123-
<body>
124-
<table cellpadding="0" cellspacing="0" border="0">
125-
<tr>
126-
<td>
127-
<h2>Paragraphs</h2>
128-
<p class="normal-space">At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. <a href="www.github.com">Github</a>
129-
</p>
130-
<p class="normal-space">At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
131-
</p>
132-
</td>
133-
<td></td>
134-
</tr>
135-
<tr>
136-
<td>
137-
<hr/>
138-
<h2>Pretty printed table</h2>
139-
<table id="invoice">
140-
<thead>
141-
<tr>
142-
<th>Article</th>
143-
<th>Price</th>
144-
<th>Taxes</th>
145-
<th>Amount</th>
146-
<th>Total</th>
147-
</tr>
148-
</thead>
149-
<tbody>
150-
<tr>
151-
<td>
152-
<p>
153-
Product 1<br />
154-
<span style="font-size:0.8em">Contains: 1x Product 1</span>
155-
</p>
156-
</td>
157-
<td align="right" valign="top">6,99&euro;</td>
158-
<td align="right" valign="top">7%</td>
159-
<td align="right" valign="top">1</td>
160-
<td align="right" valign="top">6,99€</td>
161-
</tr>
162-
<tr>
163-
<td>Shipment costs</td>
164-
<td align="right">3,25€</td>
165-
<td align="right">7%</td>
166-
<td align="right">1</td>
167-
<td align="right">3,25€</td>
168-
</tr>
169-
</tbody>
170-
<tfoot>
171-
<tr>
172-
<td>&nbsp;</td>
173-
<td>&nbsp;</td>
174-
<td colspan="3">to pay: 10,24€</td>
175-
</tr>
176-
<tr>
177-
<td></td>
178-
<td></td>
179-
<td colspan="3">Taxes 7%: 0,72€</td>
180-
</tr>
181-
</tfoot>
182-
</table>
183-
184-
</td>
185-
<td></td>
186-
</tr>
187-
<tr>
188-
<td>
189-
<hr/>
190-
<h2>Lists</h2>
191-
<ul>
192-
<li>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</li>
193-
<li>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</li>
194-
</ul>
195-
<ol>
196-
<li>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</li>
197-
<li>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</li>
198-
</ol>
199-
</td>
200-
</tr>
201-
<tr>
202-
<td>
203-
<hr />
204-
<h2>Column Layout with tables</h2>
205-
<table class="address">
206-
<tr>
207-
<th align="left">Invoice Address</th>
208-
<th align="left">Shipment Address</th>
209-
</tr>
210-
<tr>
211-
<td align="left">
212-
<p>
213-
Mr.<br/>
214-
John Doe<br/>
215-
Featherstone Street 49<br/>
216-
28199 Bremen<br/>
217-
</p>
218-
</td>
219-
<td align="left">
220-
<p>
221-
Mr.<br/>
222-
John Doe<br/>
223-
Featherstone Street 49<br/>
224-
28199 Bremen<br/>
225-
</p>
226-
</td>
227-
</tr>
228-
</table>
229-
</td>
230-
<td></td>
231-
</tr>
232-
<tr>
233-
<td>
234-
<hr/>
235-
<h2>Mailto formating</h2>
236-
<p class="normal-space small">
237-
Some Company<br />
238-
Some Street 42<br />
239-
Somewhere<br />
240-
E-Mail: <a href="mailto:test@example.com">Click here</a>
241-
</p>
242-
</td>
243-
</tr>
244-
</table>
245-
</body>
120+
<head>
121+
<meta charset="utf-8">
122+
</head>
123+
124+
<body>
125+
<table cellpadding="0" cellspacing="0" border="0">
126+
<tr>
127+
<td>
128+
<h2>Paragraphs</h2>
129+
<p class="normal-space">At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. <a href="www.github.com">Github</a>
130+
</p>
131+
<p class="normal-space">At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
132+
</p>
133+
</td>
134+
<td></td>
135+
</tr>
136+
<tr>
137+
<td>
138+
<hr/>
139+
<h2>Pretty printed table</h2>
140+
<table id="invoice">
141+
<thead>
142+
<tr>
143+
<th>Article</th>
144+
<th>Price</th>
145+
<th>Taxes</th>
146+
<th>Amount</th>
147+
<th>Total</th>
148+
</tr>
149+
</thead>
150+
<tbody>
151+
<tr>
152+
<td>
153+
<p>
154+
Product 1<br />
155+
<span style="font-size:0.8em">Contains: 1x Product 1</span>
156+
</p>
157+
</td>
158+
<td align="right" valign="top">6,99&euro;</td>
159+
<td align="right" valign="top">7%</td>
160+
<td align="right" valign="top">1</td>
161+
<td align="right" valign="top">6,99€</td>
162+
</tr>
163+
<tr>
164+
<td>Shipment costs</td>
165+
<td align="right">3,25€</td>
166+
<td align="right">7%</td>
167+
<td align="right">1</td>
168+
<td align="right">3,25€</td>
169+
</tr>
170+
</tbody>
171+
<tfoot>
172+
<tr>
173+
<td>&nbsp;</td>
174+
<td>&nbsp;</td>
175+
<td colspan="3">to pay: 10,24€</td>
176+
</tr>
177+
<tr>
178+
<td></td>
179+
<td></td>
180+
<td colspan="3">Taxes 7%: 0,72€</td>
181+
</tr>
182+
</tfoot>
183+
</table>
184+
185+
</td>
186+
<td></td>
187+
</tr>
188+
<tr>
189+
<td>
190+
<hr/>
191+
<h2>Lists</h2>
192+
<ul>
193+
<li>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</li>
194+
<li>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</li>
195+
</ul>
196+
<ol>
197+
<li>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</li>
198+
<li>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</li>
199+
</ol>
200+
</td>
201+
</tr>
202+
<tr>
203+
<td>
204+
<hr />
205+
<h2>Column Layout with tables</h2>
206+
<table class="address">
207+
<tr>
208+
<th align="left">Invoice Address</th>
209+
<th align="left">Shipment Address</th>
210+
</tr>
211+
<tr>
212+
<td align="left">
213+
<p>
214+
Mr.<br/>
215+
John Doe<br/>
216+
Featherstone Street 49<br/>
217+
28199 Bremen<br/>
218+
</p>
219+
</td>
220+
<td align="left">
221+
<p>
222+
Mr.<br/>
223+
John Doe<br/>
224+
Featherstone Street 49<br/>
225+
28199 Bremen<br/>
226+
</p>
227+
</td>
228+
</tr>
229+
</table>
230+
</td>
231+
<td></td>
232+
</tr>
233+
<tr>
234+
<td>
235+
<hr/>
236+
<h2>Mailto formating</h2>
237+
<p class="normal-space small">
238+
Some Company<br />
239+
Some Street 42<br />
240+
Somewhere<br />
241+
E-Mail: <a href="mailto:test@example.com">Click here</a>
242+
</p>
243+
</td>
244+
</tr>
245+
</table>
246+
</body>
246247
</html>
247248
```
248249

0 commit comments

Comments
 (0)