140 lines
5.9 KiB
HTML
140 lines
5.9 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self'; connect-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'">
|
|
<title>Racket Wiki</title>
|
|
<link rel="stylesheet" href="/vendor/font-awesome/css/font-awesome.min.css">
|
|
<link rel="stylesheet" href="/vendor/easymde.min.css">
|
|
<link rel="stylesheet" href="/vendor/highlight-github.min.css">
|
|
<link rel="stylesheet" href="/vendor/diff2html.min.css">
|
|
<link rel="stylesheet" href="/css/wiki.css">
|
|
</head>
|
|
<body>
|
|
<div id="connection-status" class="connection-status hidden" role="status"></div>
|
|
<div id="app">
|
|
<aside id="sidebar">
|
|
<div class="brand">Racket Wiki</div>
|
|
<div id="user-box"></div>
|
|
<div class="sidebar-actions">
|
|
<button id="todo-button" data-tr="todo">Todo</button>
|
|
<button id="translations-button" class="admin-only hidden" data-tr="translations">Translations</button>
|
|
<button id="admin-button" class="admin-only hidden" data-tr="users">Users</button>
|
|
</div>
|
|
<form id="search-form" class="wiki-search" role="search">
|
|
<input id="search-input" type="search" placeholder="Search wiki" data-tr-placeholder="search-wiki" autocomplete="off" aria-label="Search wiki">
|
|
</form>
|
|
<section class="sidebar-section toc-section">
|
|
<div class="sidebar-heading" data-tr="contents">Contents</div>
|
|
<nav id="toc-list" class="toc-list"></nav>
|
|
</section>
|
|
<details class="sidebar-section pages-section">
|
|
<summary class="sidebar-heading" data-tr="pages">Pages</summary>
|
|
<nav id="page-list"></nav>
|
|
</details>
|
|
</aside>
|
|
|
|
<main id="main">
|
|
<nav id="breadcrumbs" class="breadcrumbs hidden" aria-label="Breadcrumb"></nav>
|
|
|
|
<section id="page-view" class="hidden">
|
|
<header class="page-header">
|
|
<div>
|
|
<h1 id="page-title"></h1>
|
|
<div id="page-meta" class="muted"></div>
|
|
</div>
|
|
<div class="toolbar">
|
|
<button id="edit-page" class="editor-only hidden" data-tr="edit">Edit</button>
|
|
<button id="history-page" data-tr="history">History</button>
|
|
<button id="delete-page" class="editor-only danger hidden" data-tr="delete">Delete</button>
|
|
</div>
|
|
</header>
|
|
<article id="markdown-preview" class="markdown-body"></article>
|
|
<footer id="page-details" class="page-details"></footer>
|
|
</section>
|
|
|
|
|
|
<section id="not-found-view" class="hidden">
|
|
<header class="page-header">
|
|
<h1 data-tr="page-not-found">Page not found</h1>
|
|
</header>
|
|
<p id="not-found-message"></p>
|
|
</section>
|
|
|
|
<section id="editor-view" class="hidden editor-shell">
|
|
<header class="page-header">
|
|
<div class="editor-heading">
|
|
<input id="editor-title" class="title-input" placeholder="Page title" data-tr-placeholder="page-title">
|
|
<div id="editor-slug-info" class="muted"></div>
|
|
</div>
|
|
<div class="toolbar">
|
|
<button id="cancel-edit" data-tr="cancel">Cancel</button>
|
|
<button id="save-page" class="primary" data-tr="save">Save</button>
|
|
</div>
|
|
</header>
|
|
<textarea id="markdown-editor" aria-label="Markdown source"></textarea>
|
|
<input id="file-input" type="file" multiple hidden>
|
|
<div class="editor-metadata-row">
|
|
<input id="editor-tags" placeholder="Tags (comma separated)" data-tr-placeholder="tags">
|
|
<input id="edit-summary" placeholder="Version summary (optional)" data-tr-placeholder="version-summary">
|
|
<span id="save-status" class="muted"></span>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="search-view" class="hidden">
|
|
<header class="page-header">
|
|
<div>
|
|
<h1 data-tr="search">Search</h1>
|
|
<div id="search-summary" class="muted"></div>
|
|
</div>
|
|
</header>
|
|
<div id="search-results" class="search-results"></div>
|
|
</section>
|
|
|
|
<section id="todo-view" class="hidden">
|
|
<header class="page-header">
|
|
<h1 data-tr="todo-items">Todo items</h1>
|
|
</header>
|
|
<div id="todo-list" class="todo-items"></div>
|
|
</section>
|
|
|
|
<section id="history-view" class="hidden">
|
|
<header class="page-header">
|
|
<h1 data-tr="page-history">Page history</h1>
|
|
<button id="close-history" data-tr="back">Back</button>
|
|
</header>
|
|
<div id="history-list"></div>
|
|
<div id="diff-target"></div>
|
|
</section>
|
|
|
|
<section id="admin-view" class="hidden">
|
|
<header class="page-header">
|
|
<h1 data-tr="user-administration">User administration</h1>
|
|
<button id="close-admin" data-tr="back">Back</button>
|
|
</header>
|
|
<form id="new-user-form" class="user-form">
|
|
<input id="new-username" placeholder="Username" data-tr-placeholder="username" required>
|
|
<input id="new-display-name" placeholder="Display name" data-tr-placeholder="display-name">
|
|
<input id="new-password" type="password" placeholder="Initial password" data-tr-placeholder="initial-password" required>
|
|
<select id="new-role">
|
|
<option value="reader">reader</option>
|
|
<option value="editor">editor</option>
|
|
<option value="admin">admin</option>
|
|
</select>
|
|
<button type="submit" data-tr="create-user">Create user</button>
|
|
</form>
|
|
<div id="user-list"></div>
|
|
</section>
|
|
</main>
|
|
</div>
|
|
|
|
<script src="/vendor/purify.min.js"></script>
|
|
<script src="/vendor/highlight.min.js"></script>
|
|
<script src="/vendor/highlight-scheme.min.js"></script>
|
|
<script src="/vendor/easymde.min.js"></script>
|
|
<script src="/vendor/diff2html-ui-base.min.js"></script>
|
|
<script src="/js/wiki.js"></script>
|
|
</body>
|
|
</html>
|