diff --git a/static/styles-old.css b/static/styles-old.css
deleted file mode 100644
index a08e984..0000000
--- a/static/styles-old.css
+++ /dev/null
@@ -1,439 +0,0 @@
-/*
-Copyright (C) 2021 Yarmo Mackenbach
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU Affero General Public License as published by the Free
-Software Foundation, either version 3 of the License, or (at your option)
-any later version.
-
-This program is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
-details.
-
-You should have received a copy of the GNU Affero General Public License along
-with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
-If your software can interact with users remotely through a computer network,
-you should also make sure that it provides a way for users to get its source.
-For example, if your program is a web application, its interface could display
-a "Source" link that leads users to an archive of the code. There are many
-ways you could offer source, and different solutions will be better for different
-programs; see section 13 for the specific requirements.
-
-You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary. For
-more information on this, and how to apply and follow the GNU AGPL, see .
-*/
-* {
- box-sizing: border-box;
-}
-body {
- margin: 0;
- color: #444;
- font-family: sans-serif;
- background-color: #9dd3f0;
- background-image: url('/static/img/background.svg');
- background-repeat: repeat;
- background-size: 512px;
- background-position: -16px -16px;
-}
-header {
- height: 64px;
- padding: 8px;
- margin: 0 0 48px;
- font-size: 1.1em;
- background-color: #fff;
- box-shadow: 0 8px 16px rgba(0,0,0,0.15);
-}
-header .container {
- display: flex;
- align-items: center;
- height: 100%;
-}
-header a.logo {
- display: inline-block;
- height: 100%;
-}
-header .logo img {
- height: 100%;
- margin: 0 1em 0 0;
-}
-nav a {
- margin-left: 12px;
-}
-footer {
- color: #777;
- margin: 64px 0;
- padding: 0 32px;
- font-size: 0.9em;
- overflow-wrap: break-word;
-}
-footer a {
- color: #777;
-}
-.container {
- /*max-width: 720px;*/
- max-width: 770px;
- width: 100%;
- margin: 0 auto;
-}
-.content {
- padding: 16px 32px 32px;
- background-color: #fff;
- border-radius: 8px;
- box-shadow: 0 8px 16px rgba(0,0,0,0.15);
-}
-.spacer {
- flex: 1;
-}
-.flex-column-container {
- display: flex;
- flex-wrap: wrap;
-}
-.flex-column {
- flex: 1 0 250px;
-}
-.bigBtn {
- display: inline-block;
- margin-bottom: 12px;
- padding: 6px 12px;
- color: #fff;
- font-size: 1.1em;
- text-transform: uppercase;
- text-decoration: none;
- background: #3f9acc;
- background: linear-gradient(0deg, #3892c2 0%, #6abae5 100%);
- border: 0;
- border-radius: 8px;
- cursor: pointer;
-}
-.bigBtn:hover {
- color: #fff;
- background-color: #72bde6;
- background: linear-gradient(0deg, #4da4d2 0%, #82c5ea 100%);
-}
-.fancyBtn {
- display: inline-block;
- margin-bottom: 12px;
- padding: 8px 24px;
- color: #fff;
- font-size: 1.1em;
- text-transform: uppercase;
- text-decoration: none;
- font-weight: bold;
- background: #8b76f2;
- /* background: linear-gradient(90deg, #8b76f2 0%, #6abae5 100%); */
- background: linear-gradient(90deg, #6957c4 0%, #43afea 100%);
- border: 0;
- border-radius: 64px;
- cursor: pointer;
-}
-.fancyBtn:hover {
- color: #fff;
- background-color: #a595f4;
- /* background: linear-gradient(90deg, #a595f4 0%, #93d9ff 100%); */
- /* background: linear-gradient(90deg, #6957c4 0%, #43afea 100%); */
- background: linear-gradient(90deg, #8b76f2 0%, #6abae5 100%);
-}
-.full-width {
- width: 100% !important;
-}
-
-h1 {
- margin: 0 0 24px 0;
- color: #222;
- /* background-color: #9dd3f0; */
- background-color: #fff;
- text-align: center;
- cursor: default;
-}
-h1::after {
- content: "";
- display: block;
- width: 100%;
- height: 4px;
- margin-top: 12px;
- background: linear-gradient(90deg, #8b76f2 0%, #6abae5 100%);
- border-radius: 2px;
-}
-h2, h3 {
- margin-top: 32px;
- color: #222;
- cursor: default;
-}
-h2 {
- padding-right: 32px;
-}
-h2::after {
- content: "";
- display: block;
- width: 100%;
- height: 2px;
- /* background: linear-gradient(90deg, #8b76f2 0%, #3892c2 50%, #6abae5 100%); */
- background: linear-gradient(90deg, #3892c2 0%, #6abae5 100%);
- border-radius: 1px;
-}
-p {
- line-height: 1.4em;
- font-size: 1.1em;
-}
-a {
- color: #3f9acc;
-}
-a:hover {
- color: #6957c4;
-}
-a.bigBtn {
- margin-right: 8px;
-}
-a.header-anchor {
- text-decoration: none;
- opacity: 0.5;
-}
-a.header-anchor:hover {
- opacity: 1;
-}
-ul {
- list-style: "- ";
-}
-pre {
- white-space: pre-wrap;
-}
-code {
- padding: 2px;
- background-color: #eee;
- border: solid 1px #ddd;
- user-select: all;
-}
-pre code {
- display: block;
- padding: 8px;
- word-break: break-word;
- /* word-break: break-all; */
-}
-textarea {
- width: 100%;
- height: 128px;
- resize: vertical;
- font-size: 0.9rem;
-}
-input[type="text"] {
- margin: 0 12px 12px 0;
- width: 45%;
- font-size: 0.9rem;
-}
-input[type="radio"] {
- vertical-align: sub;
-}
-input[type="submit"] {
- width: 100%;
-}
-input[type="submit"][disabled="true"] {
- cursor: default;
- pointer-events: none;
- opacity: 0.3;
-}
-select {
- margin: 0 0 16px 0;
-}
-.green, a.proofUrl.proofUrl--verified {
- color: #499539;
-}
-.red {
- color: red;
-}
-.label {
- display: inline-block;
- margin: 0 0 8px;
-}
-.modes {
- display: none;
-}
-.modes.modes--visible {
- display: block;
-}
-
-.container--profile {
- margin-top: 64px;
-}
-.container--profile .content {
- padding-top: 32px;
- font-size: 1.2em;
-}
-.container--profile footer {
- text-align: center;
-}
-
-.guides {
- display: flex;
- flex-wrap: wrap;
-}
-.guides__section {
- flex: 1 0 250px;
-}
-.guides__section a {
- line-height: 1.8em;
-}
-
-#profileHeader {
- display: flex;
- flex-direction: row;
- align-items: center;
- margin-bottom: 32px;
- background-color: #c4e3f657;
- padding: 15px;
- border-radius: 15px;
-}
-#profileAvatar {
- width: 100%;
- max-width: 128px;
- border-radius: 100%;
- margin-right: 32px;
-}
-#profileName {
- font-size: 1.6em;
- font-weight: bold;
- display: inline-block;
- max-width: 100%;
- white-space: wrap;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-#profileData {
- background-color: #dceef957;
- padding: 15px;
- border-radius: 15px;
-}
-
-.profileDataItem {
- position: relative;
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
-}
-.profileDataItem--separator {
- margin-top: 1em;
- font-weight: bold;
-}
-.profileDataItem__label {
- display: inline-block;
- position: relative;
- flex: 1;
- min-height: 32px;
- padding: 0 8px;
- max-width: 20%;
- font-size: 0.9em;
- line-height: 1.6em;
- color: #777;
- text-align: right;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- text-transform: capitalize;
-}
-.profileDataItem__value {
- display: inline-block;
- flex: 1;
- min-height: 32px;
- max-width: 100%;
- padding: 0 8px;
-}
-.profileDataItem__value a {
- display: inline-block;
- max-width: 100%;
- margin-right: 8px;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-.profileDataItem__value small {
- color: white;
- background: #2178ff;
- border-radius: 6px;
- padding: 2.8px 5px;
- font-size: 0.65em;
- vertical-align: middle;
-}
-
-a.proofUrl {
- color: #777;
-}
-a.proofQR {
- line-height: 0;
- background-color: #499539;
- border-radius: 2px;
-}
-a.proofQR:hover {
- background-color: #6abb5a;
-}
-
-#form-generate-signature-profile {
- margin-bottom: 2em;
- font-size: 0.9rem;
-}
-
-#qrcode {
- display: flex;
- justify-content: center;
- max-width: 100%;
- width: auto !important;
- height: auto !important;
- margin: 32px auto;
-}
-
-noscript {
- display: block;
- margin-bottom: 2rem;
- padding: 8px;
- background-color: #f0e68c;
- text-align: center;
-}
-noscript p {
- margin: 0;
- font-size: 1rem;
-}
-
-@media (max-width: 680px) {
- #profileHeader {
- flex-direction: column;
- }
- #profileAvatar {
- margin: 0;
- }
- #profileName {
- font-size: 1.2em;
- }
- .profileDataItem {
- flex-direction: column;
- margin-bottom: 8px;
- }
- .profileDataItem__label {
- max-width: 100%;
- min-height: 28px;
- text-align: left;
- }
- .profileDataItem__value {
- min-height: 28px;
- }
- .profileDataItem--noLabel .profileDataItem__label {
- display: none;
- }
-
- #profileData .profileDataItem__value a:first-child {
- max-width: 85%;
- }
-
- #profileData #profileProofs .profileDataItem__value a:first-child {
- display: block;
- }
-
-
- input[type="text"] {
- width: 100%;
- }
-}
diff --git a/views-old/404.pug b/views-old/404.pug
deleted file mode 100644
index 7de3aa3..0000000
--- a/views-old/404.pug
+++ /dev/null
@@ -1,6 +0,0 @@
-extends template.base.pug
-
-block content
- .content
- h1 404
- p The requested page could not be found :(
diff --git a/views-old/basic.pug b/views-old/basic.pug
deleted file mode 100644
index bf01cdc..0000000
--- a/views-old/basic.pug
+++ /dev/null
@@ -1,4 +0,0 @@
-extends template.base.pug
-
-block content
- .content !{ content }
diff --git a/views-old/encrypt.pug b/views-old/encrypt.pug
deleted file mode 100644
index 1ee7aa4..0000000
--- a/views-old/encrypt.pug
+++ /dev/null
@@ -1,17 +0,0 @@
-extends template.base.pug
-
-block content
- .content
- noscript
- p Keyoxide requires JavaScript to function.
-
- h1 Encrypt
- form#form-encrypt(method='post')
- h3 Recipient
- label(for='modeSelect') Mode:
- include partials/key_selector
-
- h3 Message
- textarea#message(name='message')
- p#result
- input.bigBtn(type='submit' name='submit' value='ENCRYPT MESSAGE')
diff --git a/views-old/guides.pug b/views-old/guides.pug
deleted file mode 100644
index c7d2a79..0000000
--- a/views-old/guides.pug
+++ /dev/null
@@ -1,67 +0,0 @@
-extends template.base.pug
-
-block content
- .content
- h1 Guides
- .guides
- .guides__section
- h3 Using Keyoxide
- a(href='/guides/verify') Verifying a signature
- br
- a(href='/guides/encrypt') Encrypting a message
- br
- a(href='/guides/proofs') Verifying identity proofs
- br
- a(href='/guides/contributing') Contributing to Keyoxide
- br
- a(href='/guides/self-hosting-keyoxide') Self-hosting Keyoxide
-
- .guides__section
- h3 OpenPGP and identity proofs
- a(href='/guides/openpgp-proofs') How OpenPGP identity proofs work
- br
- a(href='/guides/web-key-directory') Uploading keys using web key directory
- br
- a(href='/guides/signature-profiles') Using signature profiles
-
- .guides__section
- h3 Adding proofs
- a(href='/guides/devto') Dev.to
- br
- a(href='/guides/discourse') Discourse
- br
- a(href='/guides/dns') Domain / DNS
- br
- a(href='/guides/gitea') Gitea
- br
- a(href='/guides/github') GitHub
- br
- a(href='/guides/gitlab') GitLab
- br
- a(href='/guides/hackernews') Hackernews
- br
- a(href='/guides/lobsters') Lobste.rs
- br
- a(href='/guides/mastodon') Mastodon
- br
- a(href='/guides/owncast') Owncast
- br
- a(href='/guides/pleroma') Pleroma
- br
- a(href='/guides/reddit') Reddit
- br
- a(href='/guides/twitter') Twitter
- br
- a(href='/guides/xmpp') XMPP+OMEMO
-
- .guides__section
- h3 Other services
- a(href='/guides/feature-comparison-keybase') Feature comparison with Keybase
- br
- a(href='/guides/migrating-from-keybase') Migrating from Keybase
-
- .guides__section
- h3 Managing proofs in GnuPG
- a(href='/guides/managing-proofs-listing') Listing proofs
- br
- a(href='/guides/managing-proofs-deleting') Deleting proofs
diff --git a/views-old/index.pug b/views-old/index.pug
deleted file mode 100644
index 8360818..0000000
--- a/views-old/index.pug
+++ /dev/null
@@ -1,103 +0,0 @@
-extends template.base.pug
-
-block content
- .content
- h1 Keyoxide
- p
- a(href="/") Keyoxide
- | is a modern, secure and privacy-friendly platform to establish your
- strong decentralized online identity
- | .
-
- a(href="/getting-started").fancyBtn Get started here
-
- h2 About
- p
- strong Keyoxide
- | allows you to link accounts on various online services and platforms together, prove they belong to you and establish an online identity. This puts
- strong you
- | , the internet citizen, in charge when it comes to defining who you are on the internet instead of large corporations.
- p
- | As an example, here's the
- a(href='/9f0048ac0b23301e1f77e994909f6bd6f80f485d') developer's Keyoxide profile
- | .
- p
- strong Keyoxide
- | is developed by
- a(href='https://yarmo.eu') Yarmo Mackenbach
- | . The AGPL-v3-licensed code is hosted on
- a(href='https://codeberg.org/keyoxide/web') Codeberg
- | . It uses
- a(href='https://github.com/openpgpjs/openpgpjs') openpgp.js
- | for all cryptographic operations.
-
- h2 Features
-
- h3 Decentralized online identity proofs
- ul
- li You decide which accounts are linked together
- li You decide where this data is stored
- li Keyoxide does not hold your identity data on its servers
- li Keyoxide merely verifies the identity proofs and displays them
-
- h3 Empowering the internet citizen
- ul
- li A verified identity proof proves ownership of an account and builds trust
- li No bad actor can impersonate you as long as your accounts aren't compromised
- li Your online identity data is safe from greedy internet corporations
-
- h3 User-centric platform
- ul
- li Easily encrypt messages and verify signatures from the profile page
- li
- | Keyoxide generates QR codes that integrate with
- a(href='https://www.openkeychain.org/') OpenKeychain
- | and
- a(href='https://conversations.im/') Conversations
- li Keyoxide fetches the key wherever the user decides to store it
- li Keyoxide is self-hostable, meaning you could put it on any server you trust
-
- h3 Secure and privacy-friendly
- ul
- li Keyoxide doesn't want your personal data, track you or show you ads
- li You never give data to Keyoxide, it simply uses the data you have made public
- li
- | Keyoxide relies on OpenPGP, a widely used public-key cryptography standard (
- a(href='https://tools.ietf.org/html/rfc4880') RFC-4880
- | )
- li
- | Cryptographic operations are performed in-browser by
- a(href='https://openpgpjs.org/') OpenPGP.js
- | , a library maintained by
- a(href='https://protonmail.com/blog/openpgpjs-email-encryption/') ProtonMail
-
- h3 Free Open Source Software
- ul
- li
- | Keyoxide is licensed under the
- a(href='https://codeberg.org/keyoxide/web/src/branch/main/LICENSE') AGPL-v3 license
- li
- | The source code is hosted on
- a(href='https://codeberg.org/keyoxide/web') Codeberg.org
- li
- | Even the
- a(href='https://drone.keyoxide.org/keyoxide/web/') CI/CD activity
- | is publicly visible
-
- .flex-column-container
- .flex-column
- h2 Cryptographic operations
- p
- a(href='/verify') Verify PGP signature
- br
- a(href='/encrypt') Encrypt PGP message
- br
- a(href='/proofs') Verify distributed identity proofs
- .flex-column
- h2 Utilities
- p
- a(href='/util/profile-url') Profile URL generator
- br
- a(href='/util/wkd') Web Key Directory URL generator
- br
- a(href='/util/qrfp') Fingerprint QR generator
diff --git a/views-old/partials/key_selector.pug b/views-old/partials/key_selector.pug
deleted file mode 100644
index fb7f38c..0000000
--- a/views-old/partials/key_selector.pug
+++ /dev/null
@@ -1,24 +0,0 @@
-select#modeSelect.modeSelect(name='modeSelect')
- option(value='auto' selected=(mode == "auto" ? true : false)) Autodetect
- option(value='wkd' selected=(mode == "wkd" ? true : false)) Web Key Directory
- option(value='hkp' selected=(mode == "hkp" ? true : false)) Keyserver
- option(value='plaintext' selected=(mode == "plaintext" ? true : false)) Plaintext
- option(value='keybase' selected=(mode == "keybase" ? true : false)) Keybase
-
-.modesContainer
- .modes.modes--auto(class=(mode == "auto" ? "modes--visible" : ""))
- input#auto_input(type='text' name='auto_input' placeholder='Email / key id / fingerprint' value=(mode == "auto" ? input : ""))
-
- .modes.modes--wkd(class=(mode == "wkd" ? "modes--visible" : ""))
- input#wkd_input(type='text' name='wkd_input' placeholder='name@domain.org' value=(mode == "wkd" ? input : ""))
-
- .modes.modes--hkp(class=(mode == "hkp" ? "modes--visible" : ""))
- input#hkp_input(type='text' name='hkp_input' placeholder='Email / key id / fingerprint' value=(mode == "hkp" ? input : ""))
- input#hkp_server(type='text' name='hkp_server' placeholder='https://keys.openpgp.org/ (default)')
-
- .modes.modes--plaintext(class=(mode == "plaintext" ? "modes--visible" : ""))
- textarea#plaintext_input(name='plaintext_input')
-
- .modes.modes--keybase(class=(mode == "keybase" ? "modes--visible" : ""))
- input#keybase_username(type='text' name='keybase_username' placeholder='username' value=(mode == "keybase" ? username : ""))
- input#keybase_fingerprint(type='text' name='keybase_fingerprint' placeholder='fingerprint' value=(mode == "keybase" ? fingerprint : ""))
diff --git a/views-old/profile.pug b/views-old/profile.pug
deleted file mode 100644
index fb7ade5..0000000
--- a/views-old/profile.pug
+++ /dev/null
@@ -1,41 +0,0 @@
-doctype html
-head
- meta(charset='utf-8')
- meta(name='viewport' content='width=device-width, initial-scale=1')
- meta(name='robots' content='noindex')
- link(rel='shortcut icon' href='/favicon.svg')
- title Keyoxide
- link(rel='stylesheet' href='/static/styles.css')
-
-main.container.container--profile
- .content
- noscript
- p Keyoxide requires JavaScript to function.
- span#profileUid(style='display: none;') #{uid}
- span#profileServer(style='display: none;') #{server}
- span#profileMode(style='display: none;') #{mode}
- if (mode == 'sig')
- #profileSigInput
- form#form-generate-signature-profile(method='post')
- p Please enter the raw profile signature below and press "Generate profile".
- textarea#plaintext_input(name='plaintext_input')
- input(type='submit', name='submit', value='Generate profile').bigBtn
- #profileHeader
- img#profileAvatar(src='/static/img/avatar_placeholder.png' alt='avatar' style='display: none')
- p#profileName
- #profileData
- if (mode == 'sig')
- p Waiting for input…
- else
- p Loading keys & verifying proofs…
- footer
- p
- | Generated by
- a(href='/') Keyoxide
- | (
- a(href="https://codeberg.org/keyoxide/web/releases")= settings.keyoxide_version
- | ).
-
-script(type='application/javascript' src='/static/openpgp.min.js' charset='utf-8')
-script(type='application/javascript' src='/static/doip.js' charset='utf-8')
-script(type='application/javascript' src='/static/scripts.js' charset='utf-8')
diff --git a/views-old/proofs.pug b/views-old/proofs.pug
deleted file mode 100644
index d61034c..0000000
--- a/views-old/proofs.pug
+++ /dev/null
@@ -1,17 +0,0 @@
-extends template.base.pug
-
-block content
- .content
- noscript
- p Keyoxide requires JavaScript to function.
-
- h1 Proofs
- form#form-proofs(method='post')
- h3 Public key
- label(for='modeSelect') Mode:
- include partials/key_selector
-
- h3 Result
- p#result
- p#resultContent
- input.bigBtn(type='submit' name='submit' value='VERIFY PROOFS')
diff --git a/views-old/template.base.pug b/views-old/template.base.pug
deleted file mode 100644
index 35bddce..0000000
--- a/views-old/template.base.pug
+++ /dev/null
@@ -1,41 +0,0 @@
-doctype html
-head
- meta(charset='utf-8')
- meta(name='viewport' content='width=device-width, initial-scale=1')
- meta(name='theme-color' content='#fff')
- link(rel='shortcut icon' href='/favicon.svg')
- title= (title ? title : "Keyoxide")
- link(rel='stylesheet' href='/static/styles.css')
-header
- .container
- a.logo(href='/')
- img(src='/static/img/logo_96.png' alt='Keyoxide logo')
- .spacer
- nav
- a(href='/') about
- a(href='/getting-started') getting started
- a(href='/guides') guides
- a(href='/faq') faq
-
-main.container
- block content
-
- footer
- if settings.onion_url
- p
- | This website is available via Tor:
- a(href=`${settings.onion_url}`) #{settings.onion_url}
- p
- | Keyoxide
- a(href="https://codeberg.org/keyoxide/web/releases")= settings.keyoxide_version
- p
- a(href='https://codeberg.org/keyoxide') Source code
- | -
- a(href='https://drone.keyoxide.org/keyoxide/web/') CI/CD
- | -
- a(href='https://fosstodon.org/@keyoxide') Mastodon
- p © 2021 Keyoxide contributors
-
-script(type='application/javascript' src='/static/openpgp.min.js' charset='utf-8')
-script(type='application/javascript' src='/static/qrcode.min.js' charset='utf-8')
-script(type='application/javascript' src='/static/scripts.js' charset='utf-8')
diff --git a/views-old/util/profile-url.pug b/views-old/util/profile-url.pug
deleted file mode 100644
index fac936c..0000000
--- a/views-old/util/profile-url.pug
+++ /dev/null
@@ -1,46 +0,0 @@
-extends ../template.base.pug
-
-block content
- .content
- h1 Profile URL
- form#form-util-profile-url(method='post')
- p This tool generates an URL for your Keyoxide profile page.
- h3 Public key
- label(for='source') Source:
- select#source.source(name='source')
- option(value='wkd') Web Key Directory
- option(value='hkp') keys.openpgp.org
- option(value='keybase') Keybase
- br
- input#input(type='text' name='input' placeholder='Input' value='')
- h3 Profile URL
- code#output Waiting for input...
- h3 Help
- p
- | When using the
- strong Web Key Directory
- | source, the
- strong Input
- | looks like
- strong username@domain.org
- | .
- p
- | When using the
- strong keys.openpgp.org
- | source, the
- strong Input
- | is either the
- strong fingerprint
- | of your public key, or the main identity's
- strong email address
- | .
- p
- | When using the
- strong Keybase
- | source, the
- strong Input
- | is the URL obtained by going to your Keybase profile page, clicking on the
- strong key id
- | of your keypair and copying the URL of the
- strong this key
- | link.
diff --git a/views-old/util/qr.pug b/views-old/util/qr.pug
deleted file mode 100644
index 967528a..0000000
--- a/views-old/util/qr.pug
+++ /dev/null
@@ -1,9 +0,0 @@
-extends ../template.base.pug
-
-block content
- .content
- h1 QR Code
- form#form-util-qr(method='post')
- code#input.full-width !{input}
- canvas#qrcode
- a#qrcode--altLink(href='#') Press this link to directly open the URI
diff --git a/views-old/util/qrfp.pug b/views-old/util/qrfp.pug
deleted file mode 100644
index 80a2806..0000000
--- a/views-old/util/qrfp.pug
+++ /dev/null
@@ -1,15 +0,0 @@
-extends ../template.base.pug
-
-block content
- .content
- h1 QR Code
- form#form-util-qrfp(method='post')
- p
- | This tool generates a QR code containing the fingerprint of your public key (
- a(href='https://github.com/open-keychain/open-keychain/wiki/QR-Codes') format
- | ). This QR code can be scanned by apps like
- a(href='https://www.openkeychain.org/') OpenKeyChain
- | .
- h3 Fingerprint
- input#input(type='text' name='input' placeholder='Fingerprint' value=input)
- canvas#qrcode
diff --git a/views-old/util/wkd.pug b/views-old/util/wkd.pug
deleted file mode 100644
index 8cbd8c3..0000000
--- a/views-old/util/wkd.pug
+++ /dev/null
@@ -1,21 +0,0 @@
-extends ../template.base.pug
-
-block content
- .content
- h1 Web Key Directory generator
- form#form-util-wkd(method='post')
- p
- | This tool computes the part of the WKD URL that corresponds to the username when
- a(href='/guides/web-key-directory') uploading keys using web key directory
- | .
- p
- | If you enter the entire WKD identifier (username@domain.org), this tool will also generate the complete URLs.
- h3 Input
- input#input(type='text' name='input' placeholder='WKD username or identifier' value=input)
- h3 Output
- h4 Local part
- code#output.full-width Waiting for input...
- h4 Direct URL
- code#output_url_direct.full-width Waiting for input...
- h4 Advanced URL
- code#output_url_advanced.full-width Waiting for input...
diff --git a/views-old/verify.pug b/views-old/verify.pug
deleted file mode 100644
index cdf898a..0000000
--- a/views-old/verify.pug
+++ /dev/null
@@ -1,20 +0,0 @@
-extends template.base.pug
-
-block content
- .content
- noscript
- p Keyoxide requires JavaScript to function.
-
- h1 Verify
- form#form-verify(method='post')
- h3 Signer
- label(for='modeSelect') Mode:
- include partials/key_selector
-
- h3 Signature
- textarea#signature(name='signature')
-
- h3 Result
- p#result
- p#resultContent
- input.bigBtn(type='submit' name='submit' value='VERIFY SIGNATURE')