2
|
1 /* autolink.h - versatile autolinker */ |
|
2 |
|
3 #ifndef HOEDOWN_AUTOLINK_H |
|
4 #define HOEDOWN_AUTOLINK_H |
|
5 |
|
6 #include "buffer.h" |
|
7 |
|
8 #ifdef __cplusplus |
|
9 extern "C" { |
|
10 #endif |
|
11 |
|
12 |
|
13 /************* |
|
14 * CONSTANTS * |
|
15 *************/ |
|
16 |
|
17 typedef enum hoedown_autolink_flags { |
|
18 HOEDOWN_AUTOLINK_SHORT_DOMAINS = (1 << 0) |
|
19 } hoedown_autolink_flags; |
|
20 |
|
21 |
|
22 /************* |
|
23 * FUNCTIONS * |
|
24 *************/ |
|
25 |
|
26 /* hoedown_autolink_is_safe: verify that a URL has a safe protocol */ |
|
27 int hoedown_autolink_is_safe(const uint8_t *data, size_t size); |
|
28 |
|
29 /* hoedown_autolink__www: search for the next www link in data */ |
|
30 size_t hoedown_autolink__www(size_t *rewind_p, hoedown_buffer *link, |
|
31 uint8_t *data, size_t offset, size_t size, hoedown_autolink_flags flags); |
|
32 |
|
33 /* hoedown_autolink__email: search for the next email in data */ |
|
34 size_t hoedown_autolink__email(size_t *rewind_p, hoedown_buffer *link, |
|
35 uint8_t *data, size_t offset, size_t size, hoedown_autolink_flags flags); |
|
36 |
|
37 /* hoedown_autolink__url: search for the next URL in data */ |
|
38 size_t hoedown_autolink__url(size_t *rewind_p, hoedown_buffer *link, |
|
39 uint8_t *data, size_t offset, size_t size, hoedown_autolink_flags flags); |
|
40 |
|
41 |
|
42 #ifdef __cplusplus |
|
43 } |
|
44 #endif |
|
45 |
|
46 #endif /** HOEDOWN_AUTOLINK_H **/ |