{% import "net/http" %} {% import "github.com/bouncepaw/mycorrhiza/cfg" %} {% import "github.com/bouncepaw/mycorrhiza/util" %} {% import "github.com/bouncepaw/mycorrhiza/user" %} {% func Toolbar(u *user.User) %} <aside class="edit-toolbar layout-card"> <h2 class="edit-toolbar__title layout-card__title">Markup</h2> <section class="edit-toolbar__buttons"> {% for _, el := range []struct{ class string onclick string display string }{ {"link", "wrapLink()", "[[link]]"}, {"heading2", "insertHeading2()", "## heading"}, {"heading3", "insertHeading3()", "### heading"}, {"bold", "wrapBold()", "<b>**Bold**</b>"}, {"italic", "wrapItalic()", "<i>//Italic//</i>"}, {"highlighted", "wrapHighlighted()", "<mark>!!Highlight!!</mark>"}, {"monospace", "wrapMonospace()", "<code>`Monospace`</code>"}, {"lifted", "wrapLifted()", "<sup>^Lifted^</sup>"}, {"lowered", "wrapLowered()", "<sub>,,Lowered,,</sub>"}, {"strikethrough", "wrapStrikethrough()", "<strike>~~Strikethrough~~</strike>"}, {"rocket", "insertRocket()", "=> rocketlink"}, {"xcl", "insertXcl()", "<= transclusion"}, {"img", "insertImgBlock()", "<code>img {}</code>"}, {"table", "insertTableBlock()", "<code>table {}</code>"}, {"hr", "insertHorizontalBar()", "Horizontal bar"}, {"codeblock", "insertCodeblock()", "Code block"}, {"bulletedlist", "insertBulletedList()", "* bullet list"}, {"numberedlist", "insertNumberedList()", "*. number list"}, } %} <button class="edit-toolbar__btn edit-toolbar__{%s el.class %}" onclick="{%s el.onclick %}"> {%s= el.display %} </button> {% endfor %} </section> <p class="edit-toolbar__ad"><a href="https://mycorrhiza.lesarbr.es/hypha/mycomarkup" target="_blank">Learn more</a> about mycomarkup</p> <h2 class="edit-toolbar__title layout-card__title">Actions</h2> <section class="edit-toolbar__buttons"> {% for _, el := range []struct{ class string onclick string display string }{ {"date", "insertDate()", "Insert current date"}, {"time", "insertTimeUTC()", "Insert current time"}, } %} <button class="edit-toolbar__btn edit-toolbar__{%s el.class %}" onclick="{%s el.onclick %}"> {%s= el.display %} </button> {% endfor %} {% if u.Group != "anon" %} <button class="edit-toolbar__btn edit-toolbar__user-link" onclick="insertUserlink()"> Link yourself </button> {% endif %} </section> </aside> <script src="/assets/toolbar.js"></script> {% endfunc %} {% func EditHTML(rq *http.Request, hyphaName, textAreaFill, warning string) %} {%s= NavHTML(rq, hyphaName, "edit") %} <div class="layout"> <main class="main-width edit edit_no-preview"> <h1 class="edit__title">Edit {%s util.BeautifulName(hyphaName) %}</h1> {%s= warning %} <form method="post" class="edit-form" action="/upload-text/{%s hyphaName %}"> <textarea name="text" class="edit-form__textarea">{%s textAreaFill %}</textarea> <br/> <input type="submit" name="action" value="Save" class="edit-form__save"/> <input type="submit" name="action" value="Preview" class="edit-form__preview"> <a href="/page/{%s hyphaName %}" class="edit-form__cancel">Cancel</a> </form> </main> {%s= Toolbar(user.FromRequest(rq)) %} </div> {%= editScripts() %} {% endfunc %} {% func PreviewHTML(rq *http.Request, hyphaName, textAreaFill, warning string, renderedPage string) %} {%s= NavHTML(rq, hyphaName, "edit") %} <div class="layout"> <main class="main-width edit edit_with-preview"> <h1>Edit {%s util.BeautifulName(hyphaName) %} (preview)</h1> {%s= warning %} <form method="post" class="edit-form" action="/upload-text/{%s hyphaName %}"> <textarea class="edit-form__textarea" name="text">{%s textAreaFill %}</textarea> <br/> <input type="submit" name="action" value="Save" class="edit-form__save"/> <input type="submit" name="action" value="Preview" class="edit-form__preview"> <a href="/page/{%s hyphaName %}" class="edit-form__cancel">Cancel</a> </form> <p class="warning">Note that the hypha is not saved yet. You can preview the changes ↓</p> <article class="edit__preview">{%s= renderedPage %}</article> </main> {%s= Toolbar(user.FromRequest(rq)) %} </div> {%= editScripts() %} {% endfunc %} {% func editScripts() %} {% for _, scriptPath := range cfg.EditScripts %} <script src="{%s scriptPath %}"></script> {% endfor %} {% endfunc %}