aboutsummaryrefslogtreecommitdiffhomepage
path: root/plugins/markdown/README.md
blob: bc9427e23600a6f624b5c03325a1a4b9e5821ccf (plain) (blame)
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
## Markdown Shaarli plugin

Convert all your shaares description to HTML formatted Markdown.

[Read more about Markdown syntax](http://daringfireball.net/projects/markdown/syntax).

Markdown processing is done with [Parsedown library](https://github.com/erusev/parsedown).

### Installation

As a default plugin, it should already be in `tpl/plugins/` directory.
If not, download and unpack it there.

The directory structure should look like:

```
--- plugins
  |--- markdown
     |--- help.html
     |--- markdown.css
     |--- markdown.meta
     |--- markdown.php
     |--- README.md
```

To enable the plugin, just check it in the plugin administration page.

You can also add `markdown` to your list of enabled plugins in `data/config.json.php`
(`general.enabled_plugins` list).

This should look like:

```
"general": {
  "enabled_plugins": [
    "markdown",
    [...]
  ],
}
```

Parsedown parsing library is imported using Composer. If you installed Shaarli using `git`,
or the `master` branch, run

    composer update --no-dev --prefer-dist

### No Markdown tag

If the tag `nomarkdown` is set for a shaare, it won't be converted to Markdown syntax.
 
> Note: this is a special tag, so it won't be displayed in link list.

### HTML escape

By default, HTML tags are escaped. You can enable HTML tags rendering
by setting `security.markdwon_escape` to `false` in `data/config.json.php`:

```json
{
  "security": {
    "markdown_escape": false
  }
}
```

With this setting, Markdown support HTML tags. For example:

    > <strong>strong</strong><strike>strike</strike>
   
Will render as:

> <strong>strong</strong><strike>strike</strike>


**Warning:**

  * This setting might present **security risks** (XSS) on shared instances, even though tags 
  such as script, iframe, etc should be disabled.
  * If you want to shaare HTML code, it is necessary to use inline code or code blocks.
  * If your shaared descriptions contained HTML tags before enabling the markdown plugin, 
enabling it might break your page.

### Known issue

#### Redirector

If you're using a redirector, you *need* to add a space after a link,
otherwise the rest of the line will be `urlencode`.

```
[link](http://domain.tld)-->test
```

Will consider `http://domain.tld)-->test` as URL.

Instead, add an additional space.

```
[link](http://domain.tld) -->test
```

> Won't fix because a `)` is a valid part of an URL.