Skip to content
quarry Artifact [c416f95e36]
Login

Artifact [c416f95e36]

Artifact c416f95e362dd5f65bb6353ce7df0c54070f62eee92edfcbdac498151d244c37:


<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>edit evil/traversal — quarry</title>
<style>
:root { --fg: #1a1a1a; --bg: #ffffff; --muted: #6a6a6a; --code-bg: #f4f5f7; }
@media (prefers-color-scheme: dark) {
  :root { --fg: #e8e8e8; --bg: #14161a; --muted: #9a9a9a; --code-bg: #1c2026; }
}
body { color: var(--fg); background: var(--bg); font: 16px/1.5 system-ui, sans-serif;
       max-width: 60rem; margin: 0 auto; padding: 1rem; }
footer { color: var(--muted); border-top: 1px solid var(--muted); margin-top: 2rem;
         padding-top: 0.5rem; font-size: 0.85rem; }
table { border-collapse: collapse; width: 100%; }
th, td { text-align: left; padding: 0.25rem 0.75rem 0.25rem 0; }
th { border-bottom: 1px solid var(--muted); }
a { color: inherit; }
header { display: flex; gap: 1rem; align-items: baseline; flex-wrap: wrap;
         border-bottom: 1px solid var(--muted); padding-bottom: 0.5rem; }
header .site { font-weight: bold; }
header form { margin-left: auto; }
.tw { overflow-x: auto; }
 
table.tl td { border: 0; padding: 0; vertical-align: top; }
table.tl td.tl-graph { position: relative; }
svg.tl-head { position: absolute; top: 0; left: 0; display: block; }
svg.tl-tail { position: absolute; top: 36px; left: 0; height: calc(100% - 36px); display: block; }
tr.tl-date svg.tl-tail, tr.tl-flat svg.tl-tail { top: 0; height: 100%; }
.tl-card-flat { padding: 0.45em 0.75em; font-size: 0.95em; }
.tl-meta-inline { color: var(--muted); font-size: 85%; }
table.tl td.tl-time { white-space: nowrap; width: 3.4rem; padding: 13px 0.5rem 0 0; text-align: right; }
table.tl td.tl-time a { color: var(--muted); text-decoration: none; }
table.tl td.tl-time a:hover { text-decoration: underline; }
table.tl td.tl-slot { width: 100%; padding: 0 0 5px 0.6rem; }
table.tl td.tl-datecell { padding: 6px 0 6px 0.6rem; }
.tl-card { background: var(--code-bg); border-radius: 1em; padding: 0.75em; }
.tl-title { font-weight: 550; }
.tl-p { margin: 0.35em 0 0; color: color-mix(in srgb, var(--fg) 78%, var(--muted)); }
.tl-meta { color: var(--muted); font-size: 80%; text-align: right; opacity: 0.85; margin-top: 0.5em; }
.tl-meta a { text-decoration: none; }
.tl-meta a:hover { text-decoration: underline; }
@media (max-width: 640px) {
  body { padding: 0.5rem; }
  table.tl td.tl-time { width: 2.6rem; font-size: 0.8rem; padding-top: 15px; }
  .tl-card { padding: 0.75em 0.55em; border-radius: 0.6em; }
  .tl-meta { font-size: 72%; }
}
.tl-badge { border: 1px solid var(--muted); border-radius: 3px; padding: 0 0.25rem; font-size: 0.72rem; }
.tl-pill { display: inline-block; border: 1px solid var(--muted); border-radius: 6px;
  padding: 0.05rem 0.5rem; font-weight: bold; margin: 0.55rem 0 0.25rem; }
.tl-controls { color: var(--muted); font-size: 0.9rem; display: flex; gap: 0.8rem;
  align-items: baseline; margin-bottom: 0.4rem; }
pre { overflow-x: auto; background: var(--code-bg); padding: 0.5rem; border-radius: 4px; }
pre.diff .add { color: #116329; } pre.diff .del { color: #a40e26; }
pre.diff .hunk { color: var(--muted); } pre.diff .head { font-weight: bold; }
mark { background: #fff3b8; color: inherit; }
@media (prefers-color-scheme: dark) {
  pre.diff .add { color: #56d364; } pre.diff .del { color: #ff7b72; }
  mark { background: #5c4d00; }
}
</style>
<style>  .bg { background-color: #f7f7f7; }
  .chroma { background-color: #f7f7f7; -webkit-text-size-adjust: none; }
  .chroma .err { color: #f6f8fa; background-color: #82071e }
  .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
  .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
  .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
  .chroma .hl { background-color: #dedede }
  .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
  .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
  .chroma .line { display: flex; }
  .chroma .k { color: #cf222e }
  .chroma .kc { color: #cf222e }
  .chroma .kd { color: #cf222e }
  .chroma .kn { color: #cf222e }
  .chroma .kp { color: #cf222e }
  .chroma .kr { color: #cf222e }
  .chroma .kt { color: #cf222e }
  .chroma .na { color: #1f2328 }
  .chroma .nc { color: #1f2328 }
  .chroma .no { color: #0550ae }
  .chroma .nd { color: #0550ae }
  .chroma .ni { color: #6639ba }
  .chroma .nl { color: #990000; font-weight: bold }
  .chroma .nn { color: #24292e }
  .chroma .nx { color: #1f2328 }
  .chroma .nt { color: #0550ae }
  .chroma .nb { color: #6639ba }
  .chroma .bp { color: #6a737d }
  .chroma .nv { color: #953800 }
  .chroma .vc { color: #953800 }
  .chroma .vg { color: #953800 }
  .chroma .vi { color: #953800 }
  .chroma .vm { color: #953800 }
  .chroma .nf { color: #6639ba }
  .chroma .fm { color: #6639ba }
  .chroma .s { color: #0a3069 }
  .chroma .sa { color: #0a3069 }
  .chroma .sb { color: #0a3069 }
  .chroma .sc { color: #0a3069 }
  .chroma .dl { color: #0a3069 }
  .chroma .sd { color: #0a3069 }
  .chroma .s2 { color: #0a3069 }
  .chroma .se { color: #0a3069 }
  .chroma .sh { color: #0a3069 }
  .chroma .si { color: #0a3069 }
  .chroma .sx { color: #0a3069 }
  .chroma .sr { color: #0a3069 }
  .chroma .s1 { color: #0a3069 }
  .chroma .ss { color: #032f62 }
  .chroma .m { color: #0550ae }
  .chroma .mb { color: #0550ae }
  .chroma .mf { color: #0550ae }
  .chroma .mh { color: #0550ae }
  .chroma .mi { color: #0550ae }
  .chroma .il { color: #0550ae }
  .chroma .mo { color: #0550ae }
  .chroma .o { color: #0550ae }
  .chroma .ow { color: #0550ae }
  .chroma .or { color: #0550ae }
  .chroma .p { color: #1f2328 }
  .chroma .c { color: #57606a }
  .chroma .ch { color: #57606a }
  .chroma .cm { color: #57606a }
  .chroma .c1 { color: #57606a }
  .chroma .cs { color: #57606a }
  .chroma .cp { color: #57606a }
  .chroma .cpf { color: #57606a }
  .chroma .gd { color: #82071e; background-color: #ffebe9 }
  .chroma .ge { color: #1f2328 }
  .chroma .gi { color: #116329; background-color: #dafbe1 }
  .chroma .go { color: #1f2328 }
  .chroma .gl { text-decoration: underline }
  .chroma .w { color: #ffffff }

@media (prefers-color-scheme: dark) {
  .bg { color: #e6edf3; background-color: #0d1117; }
  .chroma { color: #e6edf3; background-color: #0d1117; -webkit-text-size-adjust: none; }
  .chroma .err { color: #f85149 }
  .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
  .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
  .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
  .chroma .hl { background-color: #6e7681 }
  .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #737679 }
  .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #6e7681 }
  .chroma .line { display: flex; }
  .chroma .k { color: #ff7b72 }
  .chroma .kc { color: #79c0ff }
  .chroma .kd { color: #ff7b72 }
  .chroma .kn { color: #ff7b72 }
  .chroma .kp { color: #79c0ff }
  .chroma .kr { color: #ff7b72 }
  .chroma .kt { color: #ff7b72 }
  .chroma .nc { color: #f0883e; font-weight: bold }
  .chroma .no { color: #79c0ff; font-weight: bold }
  .chroma .nd { color: #d2a8ff; font-weight: bold }
  .chroma .ni { color: #ffa657 }
  .chroma .ne { color: #f0883e; font-weight: bold }
  .chroma .nl { color: #79c0ff; font-weight: bold }
  .chroma .nn { color: #ff7b72 }
  .chroma .py { color: #79c0ff }
  .chroma .nt { color: #7ee787 }
  .chroma .nv { color: #79c0ff }
  .chroma .vc { color: #79c0ff }
  .chroma .vg { color: #79c0ff }
  .chroma .vi { color: #79c0ff }
  .chroma .vm { color: #79c0ff }
  .chroma .nf { color: #d2a8ff; font-weight: bold }
  .chroma .fm { color: #d2a8ff; font-weight: bold }
  .chroma .l { color: #a5d6ff }
  .chroma .ld { color: #79c0ff }
  .chroma .s { color: #a5d6ff }
  .chroma .sa { color: #79c0ff }
  .chroma .sb { color: #a5d6ff }
  .chroma .sc { color: #a5d6ff }
  .chroma .dl { color: #79c0ff }
  .chroma .sd { color: #a5d6ff }
  .chroma .s2 { color: #a5d6ff }
  .chroma .se { color: #79c0ff }
  .chroma .sh { color: #79c0ff }
  .chroma .si { color: #a5d6ff }
  .chroma .sx { color: #a5d6ff }
  .chroma .sr { color: #79c0ff }
  .chroma .s1 { color: #a5d6ff }
  .chroma .ss { color: #a5d6ff }
  .chroma .m { color: #a5d6ff }
  .chroma .mb { color: #a5d6ff }
  .chroma .mf { color: #a5d6ff }
  .chroma .mh { color: #a5d6ff }
  .chroma .mi { color: #a5d6ff }
  .chroma .il { color: #a5d6ff }
  .chroma .mo { color: #a5d6ff }
  .chroma .o { color: #ff7b72; font-weight: bold }
  .chroma .ow { color: #ff7b72; font-weight: bold }
  .chroma .or { color: #ff7b72; font-weight: bold }
  .chroma .c { color: #8b949e; font-style: italic }
  .chroma .ch { color: #8b949e; font-style: italic }
  .chroma .cm { color: #8b949e; font-style: italic }
  .chroma .c1 { color: #8b949e; font-style: italic }
  .chroma .cs { color: #8b949e; font-weight: bold; font-style: italic }
  .chroma .cp { color: #8b949e; font-weight: bold; font-style: italic }
  .chroma .cpf { color: #8b949e; font-weight: bold; font-style: italic }
  .chroma .gd { color: #ffa198; background-color: #490202 }
  .chroma .ge { font-style: italic }
  .chroma .gr { color: #ffa198 }
  .chroma .gh { color: #79c0ff; font-weight: bold }
  .chroma .gi { color: #56d364; background-color: #0f5323 }
  .chroma .go { color: #8b949e }
  .chroma .gp { color: #8b949e }
  .chroma .gs { font-weight: bold }
  .chroma .gu { color: #79c0ff }
  .chroma .gt { color: #ff7b72 }
  .chroma .gl { text-decoration: underline }
  .chroma .w { color: #6e7681 }
.chroma .na { color: #e6edf3 }
.chroma .nx { color: #e6edf3 }
.chroma .nb { color: #e6edf3 }
.chroma .bp { color: #e6edf3 }
.chroma .p { color: #e6edf3 }

}
</style>
<script type="module" src="/assets/datastar.js" defer></script>
</head>
<body>
<header>
<a class="site" href="/">quarry</a>
<a href="/r/open/timeline">open</a>
<nav><a href="/r/open/timeline">timeline</a> <a href="/r/open/wiki">wiki</a> <a href="/r/open/ticket">tickets</a></nav>
<form action="/r/open/search" method="get"><input type="search" name="q" placeholder="search" aria-label="search"></form>

</header>
<main>
<h1>edit evil/traversal</h1>

<form method="post" action="/r/open/wiki/evil%2Ftraversal/edit">
<p><textarea name="body" rows="20" style="width:100%" placeholder="Markdown">encoded slash test</textarea></p>
<p><button type="submit">Save</button> <a href="/r/open/wiki/evil%2Ftraversal">cancel</a></p>
</form>

</main>
<footer>quarry 0.0.0-dev · <a href="/docs">API</a></footer>
</body>
</html>