diff --git a/static/toolbar.js b/static/toolbar.js
index 08117ee..5984a10 100644
--- a/static/toolbar.js
+++ b/static/toolbar.js
@@ -73,7 +73,8 @@ const wrapBold = selectionWrapper(2, '**'),
wrapLowered = selectionWrapper(2, ',,'),
wrapStrikethrough = selectionWrapper(2, '~~'),
wrapUnderline = selectionWrapper(2, '__'),
- wrapLink = selectionWrapper(2, '[[', ']]')
+ wrapLink = selectionWrapper(2, '[[', ']]'),
+ wrapTitleLink = selectionWrapper(2, '[[', ' | ]]')
const insertHorizontalBar = textInserter('\n----\n'),
insertImgBlock = textInserter('\nimg {\n \n}\n', 10),
diff --git a/views/mutators.qtpl b/views/mutators.qtpl
index 3bc6a70..f387d8d 100644
--- a/views/mutators.qtpl
+++ b/views/mutators.qtpl
@@ -13,6 +13,7 @@
display string
}{
{"link", "wrapLink()", "[[Link]]"},
+ {"titlelink", "wrapTitleLink()", "[[Link | Title]]"},
{"heading2", "insertHeading2()", "## Heading"},
{"heading3", "insertHeading3()", "### Heading"},
{"bold", "wrapBold()", "**Bold**"},
diff --git a/views/mutators.qtpl.go b/views/mutators.qtpl.go
index 3e7815c..9dcef23 100644
--- a/views/mutators.qtpl.go
+++ b/views/mutators.qtpl.go
@@ -41,6 +41,7 @@ func StreamToolbar(qw422016 *qt422016.Writer, u *user.User) {
display string
}{
{"link", "wrapLink()", "[[Link]]"},
+ {"titlelink", "wrapTitleLink()", "[[Link | Title]]"},
{"heading2", "insertHeading2()", "## Heading"},
{"heading3", "insertHeading3()", "### Heading"},
{"bold", "wrapBold()", "**Bold**"},
@@ -60,36 +61,36 @@ func StreamToolbar(qw422016 *qt422016.Writer, u *user.User) {
{"bulletedlist", "insertBulletedList()", "* Bullet list"},
{"numberedlist", "insertNumberedList()", "*. Number list"},
} {
-//line views/mutators.qtpl:34
+//line views/mutators.qtpl:35
qw422016.N().S(`
`)
-//line views/mutators.qtpl:40
+//line views/mutators.qtpl:41
}
-//line views/mutators.qtpl:40
+//line views/mutators.qtpl:41
qw422016.N().S(`
Learn more about mycomarkup
`)
-//line views/mutators.qtpl:69
+//line views/mutators.qtpl:70
}
-//line views/mutators.qtpl:69
+//line views/mutators.qtpl:70
func WriteToolbar(qq422016 qtio422016.Writer, u *user.User) {
-//line views/mutators.qtpl:69
+//line views/mutators.qtpl:70
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/mutators.qtpl:69
+//line views/mutators.qtpl:70
StreamToolbar(qw422016, u)
-//line views/mutators.qtpl:69
+//line views/mutators.qtpl:70
qt422016.ReleaseWriter(qw422016)
-//line views/mutators.qtpl:69
+//line views/mutators.qtpl:70
}
-//line views/mutators.qtpl:69
+//line views/mutators.qtpl:70
func Toolbar(u *user.User) string {
-//line views/mutators.qtpl:69
+//line views/mutators.qtpl:70
qb422016 := qt422016.AcquireByteBuffer()
-//line views/mutators.qtpl:69
+//line views/mutators.qtpl:70
WriteToolbar(qb422016, u)
-//line views/mutators.qtpl:69
+//line views/mutators.qtpl:70
qs422016 := string(qb422016.B)
-//line views/mutators.qtpl:69
+//line views/mutators.qtpl:70
qt422016.ReleaseByteBuffer(qb422016)
-//line views/mutators.qtpl:69
+//line views/mutators.qtpl:70
return qs422016
-//line views/mutators.qtpl:69
+//line views/mutators.qtpl:70
}
-//line views/mutators.qtpl:71
+//line views/mutators.qtpl:72
func StreamEditHTML(qw422016 *qt422016.Writer, rq *http.Request, hyphaName, textAreaFill, warning string) {
-//line views/mutators.qtpl:71
+//line views/mutators.qtpl:72
qw422016.N().S(`
Edit `)
-//line views/mutators.qtpl:74
+//line views/mutators.qtpl:75
qw422016.N().S(beautifulLink(hyphaName))
-//line views/mutators.qtpl:74
+//line views/mutators.qtpl:75
qw422016.N().S(`
`)
-//line views/mutators.qtpl:75
+//line views/mutators.qtpl:76
qw422016.N().S(warning)
-//line views/mutators.qtpl:75
+//line views/mutators.qtpl:76
qw422016.N().S(`
`)
-//line views/mutators.qtpl:88
+//line views/mutators.qtpl:89
qw422016.N().S(Toolbar(user.FromRequest(rq)))
-//line views/mutators.qtpl:88
+//line views/mutators.qtpl:89
qw422016.N().S(`
`)
-//line views/mutators.qtpl:90
+//line views/mutators.qtpl:91
streameditScripts(qw422016)
-//line views/mutators.qtpl:90
+//line views/mutators.qtpl:91
qw422016.N().S(`
`)
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
}
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
func WriteEditHTML(qq422016 qtio422016.Writer, rq *http.Request, hyphaName, textAreaFill, warning string) {
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
StreamEditHTML(qw422016, rq, hyphaName, textAreaFill, warning)
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
qt422016.ReleaseWriter(qw422016)
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
}
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
func EditHTML(rq *http.Request, hyphaName, textAreaFill, warning string) string {
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
qb422016 := qt422016.AcquireByteBuffer()
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
WriteEditHTML(qb422016, rq, hyphaName, textAreaFill, warning)
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
qs422016 := string(qb422016.B)
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
qt422016.ReleaseByteBuffer(qb422016)
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
return qs422016
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
}
-//line views/mutators.qtpl:93
+//line views/mutators.qtpl:94
func StreamPreviewHTML(qw422016 *qt422016.Writer, rq *http.Request, hyphaName, textAreaFill, message, warning string, renderedPage string) {
-//line views/mutators.qtpl:93
+//line views/mutators.qtpl:94
qw422016.N().S(`
`)
-//line views/mutators.qtpl:114
+//line views/mutators.qtpl:115
streameditScripts(qw422016)
-//line views/mutators.qtpl:114
+//line views/mutators.qtpl:115
qw422016.N().S(`
`)
-//line views/mutators.qtpl:115
+//line views/mutators.qtpl:116
}
-//line views/mutators.qtpl:115
+//line views/mutators.qtpl:116
func WritePreviewHTML(qq422016 qtio422016.Writer, rq *http.Request, hyphaName, textAreaFill, message, warning string, renderedPage string) {
-//line views/mutators.qtpl:115
+//line views/mutators.qtpl:116
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/mutators.qtpl:115
+//line views/mutators.qtpl:116
StreamPreviewHTML(qw422016, rq, hyphaName, textAreaFill, message, warning, renderedPage)
-//line views/mutators.qtpl:115
+//line views/mutators.qtpl:116
qt422016.ReleaseWriter(qw422016)
-//line views/mutators.qtpl:115
+//line views/mutators.qtpl:116
}
-//line views/mutators.qtpl:115
+//line views/mutators.qtpl:116
func PreviewHTML(rq *http.Request, hyphaName, textAreaFill, message, warning string, renderedPage string) string {
-//line views/mutators.qtpl:115
+//line views/mutators.qtpl:116
qb422016 := qt422016.AcquireByteBuffer()
-//line views/mutators.qtpl:115
+//line views/mutators.qtpl:116
WritePreviewHTML(qb422016, rq, hyphaName, textAreaFill, message, warning, renderedPage)
-//line views/mutators.qtpl:115
+//line views/mutators.qtpl:116
qs422016 := string(qb422016.B)
-//line views/mutators.qtpl:115
+//line views/mutators.qtpl:116
qt422016.ReleaseByteBuffer(qb422016)
-//line views/mutators.qtpl:115
+//line views/mutators.qtpl:116
return qs422016
-//line views/mutators.qtpl:115
+//line views/mutators.qtpl:116
}
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
func streameditScripts(qw422016 *qt422016.Writer) {
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
qw422016.N().S(`
`)
-//line views/mutators.qtpl:119
+//line views/mutators.qtpl:120
for _, scriptPath := range cfg.EditScripts {
-//line views/mutators.qtpl:119
+//line views/mutators.qtpl:120
qw422016.N().S(`
`)
-//line views/mutators.qtpl:121
+//line views/mutators.qtpl:122
}
-//line views/mutators.qtpl:121
+//line views/mutators.qtpl:122
qw422016.N().S(`
`)
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
}
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
func writeeditScripts(qq422016 qtio422016.Writer) {
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
streameditScripts(qw422016)
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
qt422016.ReleaseWriter(qw422016)
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
}
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
func editScripts() string {
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
qb422016 := qt422016.AcquireByteBuffer()
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
writeeditScripts(qb422016)
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
qs422016 := string(qb422016.B)
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
qt422016.ReleaseByteBuffer(qb422016)
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
return qs422016
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
}