Add more buttons to the toolbar: headings, code

This commit is contained in:
bouncepaw 2021-04-06 14:04:57 +05:00
parent 04f3372687
commit bfeb341341
4 changed files with 150 additions and 114 deletions

View File

@ -480,7 +480,34 @@ const insertHorizontalBar = textInserter('----\n'),
insertImgBlock = textInserter('img {\n\t\n}\n', 7), insertImgBlock = textInserter('img {\n\t\n}\n', 7),
insertTableBlock = textInserter('table {\n\t\n}\n', 9), insertTableBlock = textInserter('table {\n\t\n}\n', 9),
insertRocket = textInserter('=> '), insertRocket = textInserter('=> '),
insertXcl = textInserter('<= ') insertXcl = textInserter('<= '),
insertHeading2 = textInserter('## '),
insertHeading3 = textInserter('### '),
insertCodeblock = textInserter('`)
//line assets/assets.qtpl:14
qw422016.N().S("`")
//line assets/assets.qtpl:14
qw422016.N().S(``)
//line assets/assets.qtpl:14
qw422016.N().S("`")
//line assets/assets.qtpl:14
qw422016.N().S(``)
//line assets/assets.qtpl:14
qw422016.N().S("`")
//line assets/assets.qtpl:14
qw422016.N().S(`\n\n`)
//line assets/assets.qtpl:14
qw422016.N().S("`")
//line assets/assets.qtpl:14
qw422016.N().S(``)
//line assets/assets.qtpl:14
qw422016.N().S("`")
//line assets/assets.qtpl:14
qw422016.N().S(``)
//line assets/assets.qtpl:14
qw422016.N().S("`")
//line assets/assets.qtpl:14
qw422016.N().S(`\n', 4)
function insertDate() { function insertDate() {
let date = new Date().toISOString().split('T')[0] let date = new Date().toISOString().split('T')[0]

View File

@ -51,7 +51,10 @@ const insertHorizontalBar = textInserter('----\n'),
insertImgBlock = textInserter('img {\n\t\n}\n', 7), insertImgBlock = textInserter('img {\n\t\n}\n', 7),
insertTableBlock = textInserter('table {\n\t\n}\n', 9), insertTableBlock = textInserter('table {\n\t\n}\n', 9),
insertRocket = textInserter('=> '), insertRocket = textInserter('=> '),
insertXcl = textInserter('<= ') insertXcl = textInserter('<= '),
insertHeading2 = textInserter('## '),
insertHeading3 = textInserter('### '),
insertCodeblock = textInserter('```\n\n```\n', 4)
function insertDate() { function insertDate() {
let date = new Date().toISOString().split('T')[0] let date = new Date().toISOString().split('T')[0]

View File

@ -12,6 +12,8 @@
display string display string
}{ }{
{"link", "wrapLink()", "[[link]]"}, {"link", "wrapLink()", "[[link]]"},
{"heading2", "insertHeading2()", "## heading"},
{"heading3", "insertHeading3()", "### heading"},
{"bold", "wrapBold()", "<b>**Bold**</b>"}, {"bold", "wrapBold()", "<b>**Bold**</b>"},
{"italic", "wrapItalic()", "<i>//Italic//</i>"}, {"italic", "wrapItalic()", "<i>//Italic//</i>"},
{"highlighted", "wrapHighlighted()", "<mark>!!Highlight!!</mark>"}, {"highlighted", "wrapHighlighted()", "<mark>!!Highlight!!</mark>"},
@ -24,6 +26,7 @@
{"img", "insertImgBlock()", "<code>img {}</code>"}, {"img", "insertImgBlock()", "<code>img {}</code>"},
{"table", "insertTableBlock()", "<code>table {}</code>"}, {"table", "insertTableBlock()", "<code>table {}</code>"},
{"hr", "insertHorizontalBar()", "Horizontal bar"}, {"hr", "insertHorizontalBar()", "Horizontal bar"},
{"codeblock", "insertCodeblock()", "Code block"},
} %} } %}
<button <button
class="edit-toolbar__btn edit-toolbar__{%s el.class %}" class="edit-toolbar__btn edit-toolbar__{%s el.class %}"

View File

@ -41,6 +41,8 @@ func StreamToolbar(qw422016 *qt422016.Writer, u *user.User) {
display string display string
}{ }{
{"link", "wrapLink()", "[[link]]"}, {"link", "wrapLink()", "[[link]]"},
{"heading2", "insertHeading2()", "## heading"},
{"heading3", "insertHeading3()", "### heading"},
{"bold", "wrapBold()", "<b>**Bold**</b>"}, {"bold", "wrapBold()", "<b>**Bold**</b>"},
{"italic", "wrapItalic()", "<i>//Italic//</i>"}, {"italic", "wrapItalic()", "<i>//Italic//</i>"},
{"highlighted", "wrapHighlighted()", "<mark>!!Highlight!!</mark>"}, {"highlighted", "wrapHighlighted()", "<mark>!!Highlight!!</mark>"},
@ -53,37 +55,38 @@ func StreamToolbar(qw422016 *qt422016.Writer, u *user.User) {
{"img", "insertImgBlock()", "<code>img {}</code>"}, {"img", "insertImgBlock()", "<code>img {}</code>"},
{"table", "insertTableBlock()", "<code>table {}</code>"}, {"table", "insertTableBlock()", "<code>table {}</code>"},
{"hr", "insertHorizontalBar()", "Horizontal bar"}, {"hr", "insertHorizontalBar()", "Horizontal bar"},
{"codeblock", "insertCodeblock()", "Code block"},
} { } {
//line views/mutators.qtpl:27 //line views/mutators.qtpl:30
qw422016.N().S(` qw422016.N().S(`
<button <button
class="edit-toolbar__btn edit-toolbar__`) class="edit-toolbar__btn edit-toolbar__`)
//line views/mutators.qtpl:29 //line views/mutators.qtpl:32
qw422016.E().S(el.class) qw422016.E().S(el.class)
//line views/mutators.qtpl:29 //line views/mutators.qtpl:32
qw422016.N().S(`" qw422016.N().S(`"
onclick="`) onclick="`)
//line views/mutators.qtpl:30 //line views/mutators.qtpl:33
qw422016.E().S(el.onclick) qw422016.E().S(el.onclick)
//line views/mutators.qtpl:30 //line views/mutators.qtpl:33
qw422016.N().S(`"> qw422016.N().S(`">
`) `)
//line views/mutators.qtpl:31 //line views/mutators.qtpl:34
qw422016.N().S(el.display) qw422016.N().S(el.display)
//line views/mutators.qtpl:31 //line views/mutators.qtpl:34
qw422016.N().S(` qw422016.N().S(`
</button> </button>
`) `)
//line views/mutators.qtpl:33 //line views/mutators.qtpl:36
} }
//line views/mutators.qtpl:33 //line views/mutators.qtpl:36
qw422016.N().S(` qw422016.N().S(`
</section> </section>
<p class="edit-toolbar__ad"><a href="https://mycorrhiza.lesarbr.es/hypha/mycomarkup">Learn more</a> about mycomarkup</p> <p class="edit-toolbar__ad"><a href="https://mycorrhiza.lesarbr.es/hypha/mycomarkup">Learn more</a> about mycomarkup</p>
<h2 class="edit-toolbar__title layout-card__title">Actions</h2> <h2 class="edit-toolbar__title layout-card__title">Actions</h2>
<section class="edit-toolbar__buttons"> <section class="edit-toolbar__buttons">
`) `)
//line views/mutators.qtpl:38 //line views/mutators.qtpl:41
for _, el := range []struct { for _, el := range []struct {
class string class string
onclick string onclick string
@ -91,34 +94,34 @@ func StreamToolbar(qw422016 *qt422016.Writer, u *user.User) {
}{ }{
{"date", "insertDate()", "Insert current date"}, {"date", "insertDate()", "Insert current date"},
} { } {
//line views/mutators.qtpl:44 //line views/mutators.qtpl:47
qw422016.N().S(` qw422016.N().S(`
<button <button
class="edit-toolbar__btn edit-toolbar__`) class="edit-toolbar__btn edit-toolbar__`)
//line views/mutators.qtpl:46 //line views/mutators.qtpl:49
qw422016.E().S(el.class) qw422016.E().S(el.class)
//line views/mutators.qtpl:46 //line views/mutators.qtpl:49
qw422016.N().S(`" qw422016.N().S(`"
onclick="`) onclick="`)
//line views/mutators.qtpl:47 //line views/mutators.qtpl:50
qw422016.E().S(el.onclick) qw422016.E().S(el.onclick)
//line views/mutators.qtpl:47 //line views/mutators.qtpl:50
qw422016.N().S(`"> qw422016.N().S(`">
`) `)
//line views/mutators.qtpl:48 //line views/mutators.qtpl:51
qw422016.N().S(el.display) qw422016.N().S(el.display)
//line views/mutators.qtpl:48 //line views/mutators.qtpl:51
qw422016.N().S(` qw422016.N().S(`
</button> </button>
`) `)
//line views/mutators.qtpl:50 //line views/mutators.qtpl:53
} }
//line views/mutators.qtpl:50 //line views/mutators.qtpl:53
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/mutators.qtpl:51 //line views/mutators.qtpl:54
if u.Group != "anon" { if u.Group != "anon" {
//line views/mutators.qtpl:51 //line views/mutators.qtpl:54
qw422016.N().S(` qw422016.N().S(`
<button <button
class="edit-toolbar__btn edit-toolbar__user-link" class="edit-toolbar__btn edit-toolbar__user-link"
@ -126,201 +129,201 @@ func StreamToolbar(qw422016 *qt422016.Writer, u *user.User) {
Link yourself Link yourself
</button> </button>
`) `)
//line views/mutators.qtpl:57 //line views/mutators.qtpl:60
} }
//line views/mutators.qtpl:57 //line views/mutators.qtpl:60
qw422016.N().S(` qw422016.N().S(`
</section> </section>
</aside> </aside>
<script src="/static/toolbar.js"></script> <script src="/static/toolbar.js"></script>
`) `)
//line views/mutators.qtpl:61 //line views/mutators.qtpl:64
} }
//line views/mutators.qtpl:61 //line views/mutators.qtpl:64
func WriteToolbar(qq422016 qtio422016.Writer, u *user.User) { func WriteToolbar(qq422016 qtio422016.Writer, u *user.User) {
//line views/mutators.qtpl:61 //line views/mutators.qtpl:64
qw422016 := qt422016.AcquireWriter(qq422016) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/mutators.qtpl:61 //line views/mutators.qtpl:64
StreamToolbar(qw422016, u) StreamToolbar(qw422016, u)
//line views/mutators.qtpl:61 //line views/mutators.qtpl:64
qt422016.ReleaseWriter(qw422016) qt422016.ReleaseWriter(qw422016)
//line views/mutators.qtpl:61 //line views/mutators.qtpl:64
} }
//line views/mutators.qtpl:61 //line views/mutators.qtpl:64
func Toolbar(u *user.User) string { func Toolbar(u *user.User) string {
//line views/mutators.qtpl:61 //line views/mutators.qtpl:64
qb422016 := qt422016.AcquireByteBuffer() qb422016 := qt422016.AcquireByteBuffer()
//line views/mutators.qtpl:61 //line views/mutators.qtpl:64
WriteToolbar(qb422016, u) WriteToolbar(qb422016, u)
//line views/mutators.qtpl:61 //line views/mutators.qtpl:64
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/mutators.qtpl:61 //line views/mutators.qtpl:64
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/mutators.qtpl:61 //line views/mutators.qtpl:64
return qs422016 return qs422016
//line views/mutators.qtpl:61 //line views/mutators.qtpl:64
} }
//line views/mutators.qtpl:63 //line views/mutators.qtpl:66
func StreamEditHTML(qw422016 *qt422016.Writer, rq *http.Request, hyphaName, textAreaFill, warning string) { func StreamEditHTML(qw422016 *qt422016.Writer, rq *http.Request, hyphaName, textAreaFill, warning string) {
//line views/mutators.qtpl:63 //line views/mutators.qtpl:66
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/mutators.qtpl:64 //line views/mutators.qtpl:67
qw422016.N().S(NavHTML(rq, hyphaName, "edit")) qw422016.N().S(NavHTML(rq, hyphaName, "edit"))
//line views/mutators.qtpl:64 //line views/mutators.qtpl:67
qw422016.N().S(` qw422016.N().S(`
<div class="layout"> <div class="layout">
<main class="main-width edit edit_no-preview"> <main class="main-width edit edit_no-preview">
<h1 class="edit__title">Edit `) <h1 class="edit__title">Edit `)
//line views/mutators.qtpl:67 //line views/mutators.qtpl:70
qw422016.E().S(util.BeautifulName(hyphaName)) qw422016.E().S(util.BeautifulName(hyphaName))
//line views/mutators.qtpl:67 //line views/mutators.qtpl:70
qw422016.N().S(`</h1> qw422016.N().S(`</h1>
`) `)
//line views/mutators.qtpl:68 //line views/mutators.qtpl:71
qw422016.N().S(warning) qw422016.N().S(warning)
//line views/mutators.qtpl:68 //line views/mutators.qtpl:71
qw422016.N().S(` qw422016.N().S(`
<form method="post" class="edit-form" <form method="post" class="edit-form"
action="/upload-text/`) action="/upload-text/`)
//line views/mutators.qtpl:70 //line views/mutators.qtpl:73
qw422016.E().S(hyphaName) qw422016.E().S(hyphaName)
//line views/mutators.qtpl:70 //line views/mutators.qtpl:73
qw422016.N().S(`"> qw422016.N().S(`">
<textarea name="text" class="edit-form__textarea">`) <textarea name="text" class="edit-form__textarea">`)
//line views/mutators.qtpl:71 //line views/mutators.qtpl:74
qw422016.E().S(textAreaFill) qw422016.E().S(textAreaFill)
//line views/mutators.qtpl:71 //line views/mutators.qtpl:74
qw422016.N().S(`</textarea> qw422016.N().S(`</textarea>
<br/> <br/>
<input type="submit" name="action" value="Save" class="edit-form__save"/> <input type="submit" name="action" value="Save" class="edit-form__save"/>
<input type="submit" name="action" value="Preview" class="edit-form__preview"> <input type="submit" name="action" value="Preview" class="edit-form__preview">
<a href="/page/`) <a href="/page/`)
//line views/mutators.qtpl:75 //line views/mutators.qtpl:78
qw422016.E().S(hyphaName) qw422016.E().S(hyphaName)
//line views/mutators.qtpl:75 //line views/mutators.qtpl:78
qw422016.N().S(`" class="edit-form__cancel">Cancel</a> qw422016.N().S(`" class="edit-form__cancel">Cancel</a>
</form> </form>
</main> </main>
`) `)
//line views/mutators.qtpl:78 //line views/mutators.qtpl:81
qw422016.N().S(Toolbar(user.FromRequest(rq))) qw422016.N().S(Toolbar(user.FromRequest(rq)))
//line views/mutators.qtpl:78 //line views/mutators.qtpl:81
qw422016.N().S(` qw422016.N().S(`
</div> </div>
`) `)
//line views/mutators.qtpl:80 //line views/mutators.qtpl:83
} }
//line views/mutators.qtpl:80 //line views/mutators.qtpl:83
func WriteEditHTML(qq422016 qtio422016.Writer, rq *http.Request, hyphaName, textAreaFill, warning string) { func WriteEditHTML(qq422016 qtio422016.Writer, rq *http.Request, hyphaName, textAreaFill, warning string) {
//line views/mutators.qtpl:80 //line views/mutators.qtpl:83
qw422016 := qt422016.AcquireWriter(qq422016) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/mutators.qtpl:80 //line views/mutators.qtpl:83
StreamEditHTML(qw422016, rq, hyphaName, textAreaFill, warning) StreamEditHTML(qw422016, rq, hyphaName, textAreaFill, warning)
//line views/mutators.qtpl:80 //line views/mutators.qtpl:83
qt422016.ReleaseWriter(qw422016) qt422016.ReleaseWriter(qw422016)
//line views/mutators.qtpl:80 //line views/mutators.qtpl:83
} }
//line views/mutators.qtpl:80 //line views/mutators.qtpl:83
func EditHTML(rq *http.Request, hyphaName, textAreaFill, warning string) string { func EditHTML(rq *http.Request, hyphaName, textAreaFill, warning string) string {
//line views/mutators.qtpl:80 //line views/mutators.qtpl:83
qb422016 := qt422016.AcquireByteBuffer() qb422016 := qt422016.AcquireByteBuffer()
//line views/mutators.qtpl:80 //line views/mutators.qtpl:83
WriteEditHTML(qb422016, rq, hyphaName, textAreaFill, warning) WriteEditHTML(qb422016, rq, hyphaName, textAreaFill, warning)
//line views/mutators.qtpl:80 //line views/mutators.qtpl:83
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/mutators.qtpl:80 //line views/mutators.qtpl:83
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/mutators.qtpl:80 //line views/mutators.qtpl:83
return qs422016 return qs422016
//line views/mutators.qtpl:80 //line views/mutators.qtpl:83
} }
//line views/mutators.qtpl:82 //line views/mutators.qtpl:85
func StreamPreviewHTML(qw422016 *qt422016.Writer, rq *http.Request, hyphaName, textAreaFill, warning string, renderedPage string) { func StreamPreviewHTML(qw422016 *qt422016.Writer, rq *http.Request, hyphaName, textAreaFill, warning string, renderedPage string) {
//line views/mutators.qtpl:82 //line views/mutators.qtpl:85
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/mutators.qtpl:83 //line views/mutators.qtpl:86
qw422016.N().S(NavHTML(rq, hyphaName, "edit")) qw422016.N().S(NavHTML(rq, hyphaName, "edit"))
//line views/mutators.qtpl:83 //line views/mutators.qtpl:86
qw422016.N().S(` qw422016.N().S(`
<div class="layout"> <div class="layout">
<main class="main-width edit edit_with-preview"> <main class="main-width edit edit_with-preview">
<h1>Edit `) <h1>Edit `)
//line views/mutators.qtpl:86 //line views/mutators.qtpl:89
qw422016.E().S(util.BeautifulName(hyphaName)) qw422016.E().S(util.BeautifulName(hyphaName))
//line views/mutators.qtpl:86 //line views/mutators.qtpl:89
qw422016.N().S(` (preview)</h1> qw422016.N().S(` (preview)</h1>
`) `)
//line views/mutators.qtpl:87 //line views/mutators.qtpl:90
qw422016.N().S(warning) qw422016.N().S(warning)
//line views/mutators.qtpl:87 //line views/mutators.qtpl:90
qw422016.N().S(` qw422016.N().S(`
<form method="post" class="edit-form" <form method="post" class="edit-form"
action="/upload-text/`) action="/upload-text/`)
//line views/mutators.qtpl:89 //line views/mutators.qtpl:92
qw422016.E().S(hyphaName) qw422016.E().S(hyphaName)
//line views/mutators.qtpl:89 //line views/mutators.qtpl:92
qw422016.N().S(`"> qw422016.N().S(`">
<textarea class="edit-form__textarea" name="text">`) <textarea class="edit-form__textarea" name="text">`)
//line views/mutators.qtpl:90 //line views/mutators.qtpl:93
qw422016.E().S(textAreaFill) qw422016.E().S(textAreaFill)
//line views/mutators.qtpl:90 //line views/mutators.qtpl:93
qw422016.N().S(`</textarea> qw422016.N().S(`</textarea>
<br/> <br/>
<input type="submit" name="action" value="Save" class="edit-form__save"/> <input type="submit" name="action" value="Save" class="edit-form__save"/>
<input type="submit" name="action" value="Preview" class="edit-form__preview"> <input type="submit" name="action" value="Preview" class="edit-form__preview">
<a href="/page/`) <a href="/page/`)
//line views/mutators.qtpl:94 //line views/mutators.qtpl:97
qw422016.E().S(hyphaName) qw422016.E().S(hyphaName)
//line views/mutators.qtpl:94 //line views/mutators.qtpl:97
qw422016.N().S(`" class="edit-form__cancel">Cancel</a> qw422016.N().S(`" class="edit-form__cancel">Cancel</a>
</form> </form>
<p class="warning">Note that the hypha is not saved yet. You can preview the changes </p> <p class="warning">Note that the hypha is not saved yet. You can preview the changes </p>
<article class="edit__preview">`) <article class="edit__preview">`)
//line views/mutators.qtpl:97 //line views/mutators.qtpl:100
qw422016.N().S(renderedPage) qw422016.N().S(renderedPage)
//line views/mutators.qtpl:97 //line views/mutators.qtpl:100
qw422016.N().S(`</article> qw422016.N().S(`</article>
</main> </main>
`) `)
//line views/mutators.qtpl:99 //line views/mutators.qtpl:102
qw422016.N().S(Toolbar(user.FromRequest(rq))) qw422016.N().S(Toolbar(user.FromRequest(rq)))
//line views/mutators.qtpl:99 //line views/mutators.qtpl:102
qw422016.N().S(` qw422016.N().S(`
</div> </div>
`) `)
//line views/mutators.qtpl:101 //line views/mutators.qtpl:104
} }
//line views/mutators.qtpl:101 //line views/mutators.qtpl:104
func WritePreviewHTML(qq422016 qtio422016.Writer, rq *http.Request, hyphaName, textAreaFill, warning string, renderedPage string) { func WritePreviewHTML(qq422016 qtio422016.Writer, rq *http.Request, hyphaName, textAreaFill, warning string, renderedPage string) {
//line views/mutators.qtpl:101 //line views/mutators.qtpl:104
qw422016 := qt422016.AcquireWriter(qq422016) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/mutators.qtpl:101 //line views/mutators.qtpl:104
StreamPreviewHTML(qw422016, rq, hyphaName, textAreaFill, warning, renderedPage) StreamPreviewHTML(qw422016, rq, hyphaName, textAreaFill, warning, renderedPage)
//line views/mutators.qtpl:101 //line views/mutators.qtpl:104
qt422016.ReleaseWriter(qw422016) qt422016.ReleaseWriter(qw422016)
//line views/mutators.qtpl:101 //line views/mutators.qtpl:104
} }
//line views/mutators.qtpl:101 //line views/mutators.qtpl:104
func PreviewHTML(rq *http.Request, hyphaName, textAreaFill, warning string, renderedPage string) string { func PreviewHTML(rq *http.Request, hyphaName, textAreaFill, warning string, renderedPage string) string {
//line views/mutators.qtpl:101 //line views/mutators.qtpl:104
qb422016 := qt422016.AcquireByteBuffer() qb422016 := qt422016.AcquireByteBuffer()
//line views/mutators.qtpl:101 //line views/mutators.qtpl:104
WritePreviewHTML(qb422016, rq, hyphaName, textAreaFill, warning, renderedPage) WritePreviewHTML(qb422016, rq, hyphaName, textAreaFill, warning, renderedPage)
//line views/mutators.qtpl:101 //line views/mutators.qtpl:104
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/mutators.qtpl:101 //line views/mutators.qtpl:104
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/mutators.qtpl:101 //line views/mutators.qtpl:104
return qs422016 return qs422016
//line views/mutators.qtpl:101 //line views/mutators.qtpl:104
} }