1
0
mirror of https://github.com/osmarks/mycorrhiza.git synced 2024-10-30 19:56:16 +00:00
mycorrhiza/views/mutators.qtpl
2021-09-12 11:29:21 +03:00

124 lines
4.7 KiB
Plaintext

{% import "net/http" %}
{% import "github.com/bouncepaw/mycorrhiza/cfg" %}
{% 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]]"},
{"titlelink", "wrapTitleLink()", "[[Link | Title]]"},
{"heading2", "insertHeading2()", "## Heading"},
{"heading3", "insertHeading3()", "### Heading"},
{"bold", "wrapBold()", "<b>**Bold**</b>"},
{"italic", "wrapItalic()", "<i>//Italic//</i>"},
{"highlighted", "wrapHighlighted()", "<mark>++Highlight++</mark>"},
{"underline", "wrapUnderline()", "<u>__Underline__</u>"},
{"monospace", "wrapMonospace()", "<code>`Monospace`</code>"},
{"lifted", "wrapLifted()", "<sup>^^Supertext^^</sup>"}, // inconsistent names: lifted, supertext. How cute ❤️
{"lowered", "wrapLowered()", "<sub>,,Subtext,,</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="btn 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="/help/en/mycomarkup" target="_blank" class="shy-link">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="btn edit-toolbar__btn edit-toolbar__{%s el.class %}"
onclick="{%s el.onclick %}">
{%s= el.display %}
</button>
{% endfor %}
{% if u.Group != "anon" %}
<button
class="btn edit-toolbar__btn edit-toolbar__user-link"
onclick="insertUserlink()">
Link yourself
</button>
{% endif %}
</section>
</aside>
<script src="/static/toolbar.js"></script>
{% endfunc %}
{% func EditHTML(rq *http.Request, hyphaName, textAreaFill, warning string) %}
<div class="layout">
<main class="main-width edit edit_no-preview">
<h1 class="edit__title">Edit {%s= beautifulLink(hyphaName) %}</h1>
{%s= warning %}
<form method="post" class="edit-form"
action="/upload-text/{%s hyphaName %}">
<textarea name="text" class="edit-form__textarea" autofocus>{%s textAreaFill %}</textarea>
<br><br>
<label for="text">Describe your changes:</label><br>
<input id="text" type="text" name="message" class="edit-form__message">
<br><br>
<input type="submit" name="action" class="btn btn_accent edit-form__save" value="Save">
<input type="submit" name="action" class="btn edit-form__preview" value="Preview">
<a href="/hypha/{%s hyphaName %}" class="btn btn_weak">Cancel</a>
</form>
</main>
{%s= Toolbar(user.FromRequest(rq)) %}
</div>
{%= editScripts() %}
{% endfunc %}
{% func PreviewHTML(rq *http.Request, hyphaName, textAreaFill, message, warning string, renderedPage string) %}
<div class="layout">
<main class="main-width edit edit_with-preview">
<h1 class="edit__title">Edit {%s= beautifulLink(hyphaName) %}</h1>
{%s= warning %}
<form method="post" class="edit-form"
action="/upload-text/{%s hyphaName %}">
<textarea name="text" class="edit-form__textarea" autofocus>{%s textAreaFill %}</textarea>
<br><br>
<label for="text">Describe your changes:</label><br>
<input id="text" type="text" name="message" class="edit-form__message" value="{%s message %}">
<br><br>
<input type="submit" name="action" class="btn btn_accent edit-form__save" value="Save">
<input type="submit" name="action" class="btn edit-form__preview" value="Preview">
<a href="/hypha/{%s hyphaName %}" class="btn btn_weak">Cancel</a>
</form>
<p class="warning">Note that the hypha hasn't been saved yet. Here's the preview:</p>
<article class="edit__preview">{%s= renderedPage %}</article>
</main>
{%s= Toolbar(user.FromRequest(rq)) %}
</div>
{%= editScripts() %}
{% endfunc %}
{% func editScripts() %}
<script src="/static/editor.js"></script>
{% for _, scriptPath := range cfg.EditScripts %}
<script src="{%s scriptPath %}"></script>
{% endfor %}
{% endfunc %}