diff --git a/go.mod b/go.mod
index 072f267..84b7ce3 100644
--- a/go.mod
+++ b/go.mod
@@ -3,7 +3,7 @@ module github.com/bouncepaw/mycorrhiza
go 1.16
require (
- github.com/bouncepaw/mycomarkup v0.5.6
+ github.com/bouncepaw/mycomarkup v0.5.7
github.com/go-ini/ini v1.62.0
github.com/gorilla/feeds v1.1.1
github.com/kr/pretty v0.2.1 // indirect
diff --git a/go.sum b/go.sum
index 276aade..f4c97aa 100644
--- a/go.sum
+++ b/go.sum
@@ -1,6 +1,6 @@
github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
-github.com/bouncepaw/mycomarkup v0.5.6 h1:uTHuVbQI00SVdlD2SjiXpXX9E/qUEXTIObNvJFEIfV0=
-github.com/bouncepaw/mycomarkup v0.5.6/go.mod h1:0n6thlGGgrx2Y/2NaaUH4qHW4v1xJ+EpW7yMFUxNRIg=
+github.com/bouncepaw/mycomarkup v0.5.7 h1:md7P1te52smTRv9kqSG8SRk1JW0I5fRkaawHSjOAL/U=
+github.com/bouncepaw/mycomarkup v0.5.7/go.mod h1:0n6thlGGgrx2Y/2NaaUH4qHW4v1xJ+EpW7yMFUxNRIg=
github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU=
github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
diff --git a/static/toolbar.js b/static/toolbar.js
index affed6b..bda0c5f 100644
--- a/static/toolbar.js
+++ b/static/toolbar.js
@@ -41,10 +41,11 @@ function selectionWrapper(cursorPosition, prefix, postfix = null, el = editTexta
const wrapBold = selectionWrapper(2, '**'),
wrapItalic = selectionWrapper(2, '//'),
wrapMonospace = selectionWrapper(1, '`'),
- wrapHighlighted = selectionWrapper(2, '!!'),
+ wrapHighlighted = selectionWrapper(2, '++'),
wrapLifted = selectionWrapper(2, '^^'),
wrapLowered = selectionWrapper(2, ',,'),
wrapStrikethrough = selectionWrapper(2, '~~'),
+ wrapUnderline = selectionWrapper(2, '__'),
wrapLink = selectionWrapper(2, '[[', ']]')
const insertHorizontalBar = textInserter('\n----\n'),
diff --git a/views/mutators.qtpl b/views/mutators.qtpl
index a24927c..4f4fbf6 100644
--- a/views/mutators.qtpl
+++ b/views/mutators.qtpl
@@ -18,7 +18,8 @@
{"heading3", "insertHeading3()", "### heading"},
{"bold", "wrapBold()", "**Bold**"},
{"italic", "wrapItalic()", "//Italic//"},
- {"highlighted", "wrapHighlighted()", "!!Highlight!!"},
+ {"highlighted", "wrapHighlighted()", "++Highlight++"},
+ {"underline", "wrapUnderline()", "__Underline__"},
{"monospace", "wrapMonospace()", "`Monospace`
"},
{"lifted", "wrapLifted()", "^^Lifted^^"},
{"lowered", "wrapLowered()", ",,Lowered,,"},
diff --git a/views/mutators.qtpl.go b/views/mutators.qtpl.go
index 556a249..b7186ea 100644
--- a/views/mutators.qtpl.go
+++ b/views/mutators.qtpl.go
@@ -48,7 +48,8 @@ func StreamToolbar(qw422016 *qt422016.Writer, u *user.User) {
{"heading3", "insertHeading3()", "### heading"},
{"bold", "wrapBold()", "**Bold**"},
{"italic", "wrapItalic()", "//Italic//"},
- {"highlighted", "wrapHighlighted()", "!!Highlight!!"},
+ {"highlighted", "wrapHighlighted()", "++Highlight++"},
+ {"underline", "wrapUnderline()", "__Underline__"},
{"monospace", "wrapMonospace()", "`Monospace`
"},
{"lifted", "wrapLifted()", "^^Lifted^^"},
{"lowered", "wrapLowered()", ",,Lowered,,"},
@@ -62,36 +63,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(`
`)
-//line views/mutators.qtpl:72
+//line views/mutators.qtpl:73
qw422016.N().S(NavHTML(rq, hyphaName, "edit"))
-//line views/mutators.qtpl:72
+//line views/mutators.qtpl:73
qw422016.N().S(`
Edit `)
-//line views/mutators.qtpl:75
+//line views/mutators.qtpl:76
qw422016.E().S(util.BeautifulName(hyphaName))
-//line views/mutators.qtpl:75
+//line views/mutators.qtpl:76
qw422016.N().S(`
`)
-//line views/mutators.qtpl:76
+//line views/mutators.qtpl:77
qw422016.N().S(warning)
-//line views/mutators.qtpl:76
+//line views/mutators.qtpl:77
qw422016.N().S(`
`)
-//line views/mutators.qtpl:89
+//line views/mutators.qtpl:90
qw422016.N().S(Toolbar(user.FromRequest(rq)))
-//line views/mutators.qtpl:89
+//line views/mutators.qtpl:90
qw422016.N().S(`
`)
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
streameditScripts(qw422016)
-//line views/mutators.qtpl:91
+//line views/mutators.qtpl:92
qw422016.N().S(`
`)
-//line views/mutators.qtpl:92
+//line views/mutators.qtpl:93
}
-//line views/mutators.qtpl:92
+//line views/mutators.qtpl:93
func WriteEditHTML(qq422016 qtio422016.Writer, rq *http.Request, hyphaName, textAreaFill, warning string) {
-//line views/mutators.qtpl:92
+//line views/mutators.qtpl:93
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/mutators.qtpl:92
+//line views/mutators.qtpl:93
StreamEditHTML(qw422016, rq, hyphaName, textAreaFill, warning)
-//line views/mutators.qtpl:92
+//line views/mutators.qtpl:93
qt422016.ReleaseWriter(qw422016)
-//line views/mutators.qtpl:92
+//line views/mutators.qtpl:93
}
-//line views/mutators.qtpl:92
+//line views/mutators.qtpl:93
func EditHTML(rq *http.Request, hyphaName, textAreaFill, warning string) string {
-//line views/mutators.qtpl:92
+//line views/mutators.qtpl:93
qb422016 := qt422016.AcquireByteBuffer()
-//line views/mutators.qtpl:92
+//line views/mutators.qtpl:93
WriteEditHTML(qb422016, rq, hyphaName, textAreaFill, warning)
-//line views/mutators.qtpl:92
+//line views/mutators.qtpl:93
qs422016 := string(qb422016.B)
-//line views/mutators.qtpl:92
+//line views/mutators.qtpl:93
qt422016.ReleaseByteBuffer(qb422016)
-//line views/mutators.qtpl:92
+//line views/mutators.qtpl:93
return qs422016
-//line views/mutators.qtpl:92
+//line views/mutators.qtpl:93
}
-//line views/mutators.qtpl:94
+//line views/mutators.qtpl:95
func StreamPreviewHTML(qw422016 *qt422016.Writer, rq *http.Request, hyphaName, textAreaFill, message, warning string, renderedPage string) {
-//line views/mutators.qtpl:94
+//line views/mutators.qtpl:95
qw422016.N().S(`
`)
-//line views/mutators.qtpl:95
+//line views/mutators.qtpl:96
qw422016.N().S(NavHTML(rq, hyphaName, "edit"))
-//line views/mutators.qtpl:95
+//line views/mutators.qtpl:96
qw422016.N().S(`
`)
-//line views/mutators.qtpl:116
+//line views/mutators.qtpl:117
streameditScripts(qw422016)
-//line views/mutators.qtpl:116
+//line views/mutators.qtpl:117
qw422016.N().S(`
`)
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
}
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
func WritePreviewHTML(qq422016 qtio422016.Writer, rq *http.Request, hyphaName, textAreaFill, message, warning string, renderedPage string) {
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
StreamPreviewHTML(qw422016, rq, hyphaName, textAreaFill, message, warning, renderedPage)
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
qt422016.ReleaseWriter(qw422016)
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
}
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
func PreviewHTML(rq *http.Request, hyphaName, textAreaFill, message, warning string, renderedPage string) string {
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
qb422016 := qt422016.AcquireByteBuffer()
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
WritePreviewHTML(qb422016, rq, hyphaName, textAreaFill, message, warning, renderedPage)
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
qs422016 := string(qb422016.B)
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
qt422016.ReleaseByteBuffer(qb422016)
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
return qs422016
-//line views/mutators.qtpl:117
+//line views/mutators.qtpl:118
}
-//line views/mutators.qtpl:119
+//line views/mutators.qtpl:120
func streameditScripts(qw422016 *qt422016.Writer) {
-//line views/mutators.qtpl:119
+//line views/mutators.qtpl:120
qw422016.N().S(`
`)
-//line views/mutators.qtpl:120
+//line views/mutators.qtpl:121
for _, scriptPath := range cfg.EditScripts {
-//line views/mutators.qtpl:120
+//line views/mutators.qtpl:121
qw422016.N().S(`
`)
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
}
-//line views/mutators.qtpl:122
+//line views/mutators.qtpl:123
qw422016.N().S(`
`)
-//line views/mutators.qtpl:123
+//line views/mutators.qtpl:124
}
-//line views/mutators.qtpl:123
+//line views/mutators.qtpl:124
func writeeditScripts(qq422016 qtio422016.Writer) {
-//line views/mutators.qtpl:123
+//line views/mutators.qtpl:124
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/mutators.qtpl:123
+//line views/mutators.qtpl:124
streameditScripts(qw422016)
-//line views/mutators.qtpl:123
+//line views/mutators.qtpl:124
qt422016.ReleaseWriter(qw422016)
-//line views/mutators.qtpl:123
+//line views/mutators.qtpl:124
}
-//line views/mutators.qtpl:123
+//line views/mutators.qtpl:124
func editScripts() string {
-//line views/mutators.qtpl:123
+//line views/mutators.qtpl:124
qb422016 := qt422016.AcquireByteBuffer()
-//line views/mutators.qtpl:123
+//line views/mutators.qtpl:124
writeeditScripts(qb422016)
-//line views/mutators.qtpl:123
+//line views/mutators.qtpl:124
qs422016 := string(qb422016.B)
-//line views/mutators.qtpl:123
+//line views/mutators.qtpl:124
qt422016.ReleaseByteBuffer(qb422016)
-//line views/mutators.qtpl:123
+//line views/mutators.qtpl:124
return qs422016
-//line views/mutators.qtpl:123
+//line views/mutators.qtpl:124
}