|
|
|
<!DOCTYPE html>
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, viewport-fit=cover">
|
|
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="default">
|
|
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
|
|
<title>nostr</title>
|
|
|
|
<link rel="stylesheet" href="main.css" type="text/css">
|
|
|
|
<link rel="manifest" href="/manifest.json">
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="root">
|
|
|
|
<main>
|
|
|
|
<aside>
|
|
|
|
<button name="new-note" id="bubble">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="21" viewBox="0 0 80.035 70.031">
|
|
|
|
<path fill="var(--bgcolor-textinput)" stroke="darkmagenta" stroke-width="4" d="M2.463 31.824q0-4.789 1.893-9.248 1.892-4.46 5.361-8.087 3.47-3.626 8.07-6.333 4.598-2.707 10.324-4.2 5.727-1.493 11.836-1.493 6.107 0 11.834 1.492 5.725 1.494 10.325 4.2 4.599 2.708 8.07 6.334 3.47 3.627 5.362 8.087 1.891 4.46 1.891 9.248 0 5.97-2.967 11.384-2.967 5.414-7.982 9.336-5.015 3.922-11.957 6.248-6.94 2.325-14.576 2.325-7.463 0-14.334-2.221l-8.537 6.038q-4.789 3.02-6.733 1.752-1.943-1.266-.867-7.13l1.77-8.886q-4.2-3.887-6.49-8.71-2.29-4.825-2.29-10.136Z"/>
|
|
|
|
</svg>
|
|
|
|
</button>
|
|
|
|
<section class="view" id="newNote" hidden>
|
|
|
|
<form action="#" id="writeForm" class="form-inline">
|
|
|
|
<fieldset>
|
|
|
|
<legend>write a new note</legend>
|
|
|
|
<textarea name="message" rows="1"></textarea>
|
|
|
|
<div class="buttons">
|
|
|
|
<button type="submit" id="publish" disabled>send</button>
|
|
|
|
<button type="button" name="back">back</button>
|
|
|
|
</div>
|
|
|
|
<small id="sendstatus" class="form-status"></small>
|
|
|
|
</fieldset>
|
|
|
|
</form>
|
|
|
|
</section>
|
|
|
|
<section class="view" id="settings" hidden>
|
|
|
|
<div class="content">
|
|
|
|
<form action="#" name="profile" autocomplete="new-password">
|
|
|
|
<label for="profile_name">name</label>
|
|
|
|
<input type="text" name="name" id="profile_name" autocomplete="off" pattern="[a-zA-Z_0-9][a-zA-Z_\-0-9]+[a-zA-Z_0-9]">
|
|
|
|
<label for="profile_about">about</label>
|
|
|
|
<textarea name="about" id="profile_about"></textarea>
|
|
|
|
<label for="profile_picture">picture</label>
|
|
|
|
<input type="url" name="picture" id="profile_picture" placeholder="https://your.domain/image.png">
|
|
|
|
<div class="buttons">
|
|
|
|
<small id="profilestatus" class="form-status" hidden></small>
|
|
|
|
<button type="submit" name="publish" tabindex="0" disabled>publish</button>
|
|
|
|
</div>
|
|
|
|
</form>
|
|
|
|
<form action="#" name="options">
|
|
|
|
<label for="filterDifficulty">
|
|
|
|
difficulty filter<br>
|
|
|
|
<small>
|
|
|
|
hide text notes with mining proof lower
|
|
|
|
than: <span data-display="filter_difficulty"></span>. a zero value shows all notes.
|
|
|
|
</small>
|
|
|
|
</label>
|
|
|
|
<input type="range" name="filter_difficulty" step="1" min="0" max="32" id="filterDifficulty" value="0">
|
|
|
|
<label class="number" for="miningTarget">
|
|
|
|
<span>
|
|
|
|
mining difficulty<br>
|
|
|
|
<small>
|
|
|
|
with which difficulty to try to mine a proof of work when publishing events, such as: notes, replies, reactions and profile updates.
|
|
|
|
use zero to disable mining.
|
|
|
|
difficulty is defined as the number of leading zero bits, read more about
|
|
|
|
<a href="https://github.com/nostr-protocol/nips/blob/master/13.md" target="_blank" rel="noopener noreferrer">proof of work (nip-13)</a>.
|
|
|
|
</small>
|
|
|
|
</span>
|
|
|
|
<input type="number" name="mining_target" step="1" min="0" max="32" id="miningTarget" value="16">
|
|
|
|
</label>
|
|
|
|
<label class="number" for="miningTimeout">
|
|
|
|
<span>
|
|
|
|
mining timeout<br>
|
|
|
|
<small>abort trying to find a proof if timeout (in seconds) exceeds. use 0 to mine without a time limit.</small>
|
|
|
|
</span>
|
|
|
|
<input type="number" name="mining_timeout" step="1" min="0" max="256" id="miningTimeout" value="5">
|
|
|
|
</label>
|
|
|
|
</form>
|
|
|
|
<form action="#" name="settings" autocomplete="new-password">
|
|
|
|
<label for="pubkey">public-key</label>
|
|
|
|
<input type="text" id="pubkey" autocomplete="off">
|
|
|
|
<label for="privatekey">
|
|
|
|
private-key
|
|
|
|
<button type="button" name="privatekey-toggle" class="btn-inline" >
|
|
|
|
<small>show</small>
|
|
|
|
</button>
|
|
|
|
</label>
|
|
|
|
<input type="password" id="privatekey" autocomplete="off">
|
|
|
|
<div class="buttons">
|
|
|
|
<small id="keystatus" class="form-status" hidden></small>
|
|
|
|
<button type="button" name="generate" tabindex="0">new</button>
|
|
|
|
<button type="button" name="import" tabindex="0" disabled>save</button>
|
|
|
|
</div>
|
|
|
|
</form>
|
|
|
|
<footer class="text">
|
|
|
|
<p>
|
|
|
|
<a href="/about.html">about nostr.ch</a>
|
|
|
|
</p>
|
|
|
|
</footer>
|
|
|
|
</div>
|
|
|
|
</section>
|
|
|
|
<section id="errorOverlay" class="form" hidden></section>
|
|
|
|
</aside>
|
|
|
|
<!-- views are inserted here -->
|
|
|
|
</main>
|
|
|
|
<nav>
|
|
|
|
<a data-nav href="/"><span>X</span>feed</a>
|
|
|
|
<button tpye="button" name="settings">settings</button>
|
|
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</body>
|
|
|
|
<script src="main.js"></script>
|
|
|
|
</html>
|