Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 52 additions & 38 deletions crates/org-wasm/index.html
Original file line number Diff line number Diff line change
@@ -1,52 +1,66 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">

<head>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="A parser & document exporter for Org-Mode. Written in Rust.">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta
name="description"
content="A parser & document exporter for Org-Mode. Written in Rust."
/>
<title>Org-rust</title>
<link rel="stylesheet" href="main.css" type="text/css" />
</head>
</head>

<body>
<header>
<div class="dummy-element"></div>
<h2>Org-Rust Live Editor</h2>
<div id="vimbutton">
<body>
<div style="display: flex; flex-direction: column; height: 100vh">
<header>
<div style="display: flex; align-items: center; gap: 8px">
<h2>Org-Rust Live Editor</h2>
<div id="vimbutton">
<input type="checkbox" name="vim" id="vim" />
<label for="vim">Vim Mode</label>
</div>
</div>
</header>
<div id="editor-view">
<!-- github icon -->
<a href="https://github.com/hydrobeam/org-rust">
<svg
xmlns="http://www.w3.org/2000/svg"
width="34"
height="34"
viewBox="0 0 512 512"
>
<!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->
<path
d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"
/>
</svg>
</a>
</header>
<div id="editor-view">
<div class="input-area">
<div class="tab">
<button class="contentlinks" value="default">Default</button>
<button class="contentlinks" value="showcase">Showcase</button>
<button class="contentlinks" value="footnotes">Footnotes</button>
<button class="contentlinks" value="affiliated">Affiliated Keywords</button>
<button class="contentlinks" value="images">Images</button>
</div>
<div id="textbox"></div>
<div class="tab">
<button class="contentlinks" value="default">Default</button>
<button class="contentlinks" value="showcase">Showcase</button>
<button class="contentlinks" value="footnotes">Footnotes</button>
<button class="contentlinks" value="affiliated">
Affiliated Keywords
</button>
<button class="contentlinks" value="images">Images</button>
</div>
<div id="textbox"></div>
</div>
<div class="view">
<div class="tab">
<button class="tablinks" id="org-parse">Org</button>
<button class="tablinks" id="rendered-parse">Rendered HTML</button>
<button class="tablinks" id="raw-parse">Raw HTML</button>
</div>

<iframe src="iframe.html" id="rendered" class="tabcontent"></iframe>
<pre id="org" class="tabcontent"></pre>
<pre id="raw" class="tabcontent"></pre>
<div class="tab">
<button class="tablinks" id="org-parse">Org</button>
<button class="tablinks" id="rendered-parse">Rendered HTML</button>
<button class="tablinks" id="raw-parse">Raw HTML</button>
</div>
<iframe src="iframe.html" id="rendered" class="tabcontent"></iframe>
<pre id="org" class="tabcontent"></pre>
<pre id="raw" class="tabcontent"></pre>
</div>
</div>
<script type="module" src="main.js"></script>
</div>
<p>
Progress is documented at the <a href="https://github.com/hydrobeam/org-rust">
<code>Org-Rust</code></a> repository.
</p>

<script type="module" src="main.js"></script>
</body>

</body>
</html>
170 changes: 85 additions & 85 deletions crates/org-wasm/main.css
Original file line number Diff line number Diff line change
@@ -1,153 +1,153 @@
:root {
--gutter-colour: #cce1cf;
--tab-hover: #bfd9c3;
--tab-active: #a5caab;
--line-hover: #f2f7f354;
--line-selection: #f0ebbc64;
--gutter-colour: #cce1cf;
--tab-hover: #bfd9c3;
--tab-active: #a5caab;
--line-hover: #f2f7f354;
--line-selection: #f0ebbc64;
}

button {
font-family: monospace;
font-family: monospace;
}

.tab button {
background-color: inherit;
float: left;
border: none;
outline: none;
cursor: pointer;
padding: 6px 6px;
transition: 0.3s;
white-space: nowrap;
flex: 1;
background-color: inherit;
float: left;
border: none;
outline: none;
cursor: pointer;
padding: 6px 6px;
transition: 0.3s;
white-space: nowrap;
flex: 1;
}

/* Change background color of buttons on hover */
.tab button:hover {
background-color: var(--tab-hover);
background-color: var(--tab-hover);
}

/* Create an active/current tablink class */
.tab button.active {
background-color: var(--tab-active);
background-color: var(--tab-active);
}

/* style non-rendered html */
pre.tabcontent {
background-color: #faf1f1;
white-space: pre-wrap;
font-size: 1rem;
background-color: #faf1f1;
white-space: pre-wrap;
font-size: 1rem;
}

iframe {
padding: 0 !important;
padding: 0 !important;
}

.tab {
display: flex;
flex-wrap: wrap;
max-height: min-content;
overflow: hidden;
border: 1px solid #ccc;
background-color: var(--gutter-colour);
display: flex;
flex-wrap: wrap;
max-height: min-content;
overflow: hidden;
border: 1px solid #ccc;
background-color: var(--gutter-colour);
}

.tabcontent {
flex: 1;
display: none;
padding: 6px 12px;
border-top: none;
overflow: scroll;
border: 1px solid #ccc;
flex: 1;
display: none;
padding: 6px 12px;
border-top: none;
overflow: scroll;
border: 1px solid #ccc;
}

.view {
grid-area: view;
padding: 0;
display: flex;
flex-direction: column;
overflow: scroll;
grid-area: view;
padding: 0;
display: flex;
flex-direction: column;
overflow: scroll;
}

.view * {
margin: 0;
margin: 0;
}

.input-area {
grid-area: input;
display: flex;
flex-direction: column;
overflow: scroll;
grid-area: input;
display: flex;
flex-direction: column;
overflow: scroll;
}

#textbox {
flex: 1;
display: flex;
overflow: auto;
flex: 1;
display: flex;
overflow: auto;
}

.cm-editor {
flex-grow: 1;
font-size: 1rem;
flex-grow: 1;
font-size: 1rem;
}

#editor-view {
height: 94svh;
display: grid;
grid-template-columns: 50% 50%;
grid-template-areas: "input view";
border: solid 1px grey;
height: 100%;
display: grid;
grid-template-columns: 50% 50%;
grid-template-areas: "input view";
border: solid 1px grey;
overflow: hidden; /* make it so that the view area doesn't expand when content is placed within it */
}

body {
margin: 0;
line-height: 1.4;
font-size: 1.25em;
background-color: rgb(250, 250, 250);
margin: 0;
line-height: 1.4;
font-size: 1.25em;
background-color: rgb(250, 250, 250);
}

header p {
margin: 0;
background-image: none;
font-weight: normal;
color: #7e8170;
margin: 0;
background-image: none;
font-weight: normal;
color: #7e8170;
}

header {
display: flex;
gap: 10px;
justify-content: flex-start;
align-items: baseline;
justify-content: space-between;
align-items: center;
flex-direction: row;
margin: 0;
padding: 0.15em 0.05em;
}

h1,
h2,
h3,
header {
font-weight: 600;
background-image: linear-gradient(to bottom right, #13223f, #139323);
color: transparent;
background-clip: text;
-webkit-background-clip: text;
margin: 0;
margin-bottom: 0.25em;
font-weight: 600;
background-image: linear-gradient(to bottom right, #13223f, #139323);
color: transparent;
background-clip: text;
-webkit-background-clip: text;
margin: 0;
}

@media (max-width: 850px) {
#editor-view {
grid-template-columns: 100%;
grid-template-areas:
"input"
"view";
grid-template-rows: 50% 50%;
}

header {
height: auto;
}
body {
font-size: 1.125em;
}
#editor-view {
grid-template-columns: 100%;
grid-template-areas:
"input"
"view";
grid-template-rows: 50% 50%;
}

header {
height: auto;
}
body {
font-size: 1.125em;
}
}
Loading