diff options
author | Wim <wim@42.be> | 2019-01-06 22:25:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-06 22:25:19 +0100 |
commit | 04567c765e92ad60c685c1b2fe7e77c46e065645 (patch) | |
tree | 34a587a6545c8e71e991e2a1551885faa0075738 /vendor/gitlab.com/golang-commonmark/mdurl/url.go | |
parent | 048158ad6db08cd714f39467fc0066ce41cfe6c5 (diff) | |
download | matterbridge-msglm-04567c765e92ad60c685c1b2fe7e77c46e065645.tar.gz matterbridge-msglm-04567c765e92ad60c685c1b2fe7e77c46e065645.tar.bz2 matterbridge-msglm-04567c765e92ad60c685c1b2fe7e77c46e065645.zip |
Add support for markdown to HTML conversion (matrix). Closes #663 (#670)
This uses our own gomatrix lib with the SendHTML function which
adds HTML to formatted_body in matrix.
golang-commonmark is used to convert markdown into valid HTML.
Diffstat (limited to 'vendor/gitlab.com/golang-commonmark/mdurl/url.go')
-rw-r--r-- | vendor/gitlab.com/golang-commonmark/mdurl/url.go | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/vendor/gitlab.com/golang-commonmark/mdurl/url.go b/vendor/gitlab.com/golang-commonmark/mdurl/url.go new file mode 100644 index 00000000..72c3f58a --- /dev/null +++ b/vendor/gitlab.com/golang-commonmark/mdurl/url.go @@ -0,0 +1,101 @@ +// Copyright 2015 The Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package url provides functions for parsing, decoding and encoding URLs. +package mdurl + +// A URL represents a parsed URL. +type URL struct { + Scheme string + RawScheme string + Slashes bool + Auth string + Host string + Port string + Path string + RawQuery string + HasQuery bool + Fragment string + HasFragment bool + IPv6 bool +} + +// String reassembles the URL into a URL string. +func (u *URL) String() string { + size := len(u.Path) + if u.Scheme != "" { + size += len(u.Scheme) + 1 + } + if u.Slashes { + size += 2 + } + if u.Auth != "" { + size += len(u.Auth) + 1 + } + if u.Host != "" { + size += len(u.Host) + if u.IPv6 { + size += 2 + } + } + if u.Port != "" { + size += len(u.Port) + 1 + } + if u.HasQuery { + size += len(u.RawQuery) + 1 + } + if u.HasFragment { + size += len(u.Fragment) + 1 + } + if size == 0 { + return "" + } + + buf := make([]byte, size) + i := 0 + if u.Scheme != "" { + i += copy(buf, u.Scheme) + buf[i] = ':' + i++ + } + if u.Slashes { + buf[i] = '/' + i++ + buf[i] = '/' + i++ + } + if u.Auth != "" { + i += copy(buf[i:], u.Auth) + buf[i] = '@' + i++ + } + if u.Host != "" { + if u.IPv6 { + buf[i] = '[' + i++ + i += copy(buf[i:], u.Host) + buf[i] = ']' + i++ + } else { + i += copy(buf[i:], u.Host) + } + } + if u.Port != "" { + buf[i] = ':' + i++ + i += copy(buf[i:], u.Port) + } + i += copy(buf[i:], u.Path) + if u.HasQuery { + buf[i] = '?' + i++ + i += copy(buf[i:], u.RawQuery) + } + if u.HasFragment { + buf[i] = '#' + i++ + i += copy(buf[i:], u.Fragment) + } + return string(buf) +} |