| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>Markdown Test</title>
- <link rel="icon" href="data:;base64,iVBORw0KGgo=">
- <style type="text/css">
- :root {
- --color-background: #fffff8;
- --color-text: #111;
- --color-editor-background: #0000aa;
- --color-editor-text: white;
- --color-table-header: #ddd;
- --color-table-border: black;
- --color-calculated-background: #eee;
- }
- :root, body {
- width: 100%;
- height: 100%;
- padding: 0;
- margin: 0;
- background-color: var(--color-background);
- color: var(--color-text);
- }
- /* body {
- width: 87.5%;
- margin-left: auto;
- margin-right: auto;
- padding-left: 12.5%;
- background-color: #fffff8;
- color: #111;
- max-width: 1400px;
- counter-reset: sidenote-counter;
- } */
- .inputhalf {
- position: absolute;
- width: 50%;
- height: 100%;
- left: 0;
- top: 0;
- background-color: var(--color-editor-background);
- color: var(--color-editor-text);
- }
- .previewhalf {
- position: absolute;
- width: 50%;
- height: 100%;
- left: 50%;
- top: 0;
- overflow-y: auto;
- }
- #preview {
- padding: 1em;
- margin: 0 auto;
- max-width: 600px;
- }
- #markdowninput {
- width: 100%;
- height: 100%;
- box-sizing: border-box;
- margin: 0;
- padding: 0.5em;
- border: 0;
- background-color: var(--color-editor-background);
- color: var(--color-editor-text);
- }
- .calculated {
- background-color: var(--color-calculated-background);
- font-style: italic;
- }
- .spreadsheet-type-number,
- .spreadsheet-type-currency,
- .spreadsheet-type-percent {
- text-align: right;
- }
- table {
- border-collapse: collapse;
- }
- table th {
- background-color: var(--color-table-header);
- }
- table td, table th {
- border: 1px solid var(--color-table-border);
- padding: 0.2em 0.5em;
- }
- @media (prefers-color-scheme: dark) {
- :root {
- --color-background: #151515;
- --color-text: #ddd;
- --color-table-header: #333;
- --color-table-border: #ccc;
- --color-calculated-background: #444;
- }
- }
- </style>
- <style type="text/css">
- /* From https://github.com/edwardtufte/tufte-css/blob/gh-pages/tufte.css */
- html {
- font-size: 15px;
- }
-
- body {
- /* width: 87.5%;
- margin-left: auto;
- margin-right: auto;
- padding-left: 12.5%; */
- font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
- background-color: #fffff8;
- color: #111;
- /* max-width: 1400px; */
- counter-reset: sidenote-counter;
- }
-
- /* Adds dark mode */
- @media (prefers-color-scheme: dark) {
- body {
- background-color: #151515;
- color: #ddd;
- }
- }
- h1 {
- font-weight: 400;
- margin-top: 4rem;
- margin-bottom: 1.5rem;
- font-size: 3.2rem;
- line-height: 1;
- }
- h2 {
- font-style: italic;
- font-weight: 400;
- margin-top: 2.1rem;
- margin-bottom: 1.4rem;
- font-size: 2.2rem;
- line-height: 1;
- }
- h3 {
- font-style: italic;
- font-weight: 400;
- font-size: 1.7rem;
- margin-top: 2rem;
- margin-bottom: 1.4rem;
- line-height: 1;
- }
- hr {
- display: block;
- height: 1px;
- width: 55%;
- border: 0;
- border-top: 1px solid #ccc;
- margin: 1em 0;
- padding: 0;
- }
- article {
- padding: 5rem 0rem;
- }
- section {
- padding-top: 1rem;
- padding-bottom: 1rem;
- }
- p,
- dl,
- ol,
- ul {
- font-size: 1.4rem;
- line-height: 2rem;
- }
- p.subtitle {
- font-style: italic;
- margin-top: 1rem;
- margin-bottom: 1rem;
- font-size: 1.8rem;
- display: block;
- line-height: 1;
- }
- code, pre > code {
- font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
- font-size: 1.0rem;
- line-height: 1.42;
- -webkit-text-size-adjust: 100%; /* Prevent adjustments of font size after orientation changes in iOS. See https://github.com/edwardtufte/tufte-css/issues/81#issuecomment-261953409 */
- }
- pre > code {
- font-size: 0.9rem;
- width: 52.5%;
- margin-left: 2.5%;
- overflow-x: auto;
- display: block;
- }
- a:link,
- a:visited {
- color: inherit;
- text-underline-offset: 0.1em;
- text-decoration-thickness: 0.05em;
- }
- dt:not(:first-child),
- li:not(:first-child) {
- margin-top: 0.25rem;
- }
-
- </style>
- <script src="js/markdown.js"></script>
- <script src="js/spreadsheet.js"></script>
- <script>
- var parser = new Markdown([ ...Markdown.allReaders, new MDSpreadsheetReader() ]);
- function onDocumentLoad() {
- document.getElementById('markdowninput').addEventListener('input', onMarkdownChange);
- setTimeout(onMarkdownChange, 0);
- }
- function onMarkdownChange() {
- let markdown = document.getElementById('markdowninput').value;
- let html = parser.toHTML(markdown);
- document.getElementById('preview').innerHTML = html;
- }
-
- document.addEventListener('DOMContentLoaded', onDocumentLoad);
- </script>
- </head>
-
- <body>
- <div class="inputhalf half">
- <textarea id="markdowninput">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut mollis vel metus ut tempor. Morbi dictum, velit quis venenatis consequat, ante leo dignissim magna, quis efficitur ex magna nec ex. In egestas aliquet tortor, vitae posuere dui lobortis ac. Pellentesque quis hendrerit lorem. In maximus ut sapien vel tristique. Pellentesque ut tincidunt orci. Phasellus dignissim massa sit amet tellus placerat finibus. Ut elementum tortor ex, non aliquam libero semper eu.
-
- Duis gravida convallis nisi ullamcorper tempor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc bibendum varius arcu non molestie. Ut cursus, lorem nec pellentesque interdum, augue risus pellentesque ligula, at vehicula turpis mi vitae nisi. Vivamus pulvinar eget lorem non lacinia. Pellentesque pretium ex at metus elementum semper. Donec tincidunt metus ac ex aliquam, ac iaculis purus facilisis. Phasellus iaculis scelerisque nisl, eu molestie dui sollicitudin sed. Suspendisse ut felis porttitor, sollicitudin urna in, venenatis neque. Donec nec mi ultrices, molestie quam quis, iaculis libero.
-
- Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut congue consequat vestibulum. Etiam luctus, leo placerat ullamcorper venenatis, nunc metus fringilla sapien, id elementum tellus nulla eu nunc. Integer pulvinar egestas scelerisque. Sed accumsan libero eget pretium sodales. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nulla pretium egestas elit id cursus. Morbi euismod elementum eros ut eleifend. Praesent velit sem, faucibus sed sapien sit amet, pellentesque fermentum nibh. Nulla consequat turpis nec lacus consequat, sed congue magna consectetur. Nam id urna rhoncus, consectetur eros ac, tempor nisl.
-
- Curabitur fermentum nunc sed dapibus feugiat. Etiam volutpat viverra eros sit amet tristique. Suspendisse cursus venenatis accumsan. Suspendisse venenatis vehicula lectus, sed venenatis augue pretium eu. Cras dui eros, iaculis in dictum hendrerit, tincidunt ut sapien. Ut nec nulla ut mauris cursus tincidunt. Suspendisse interdum pulvinar elit sit amet auctor. Donec id lacus tincidunt, varius elit non, tempor felis.
-
- Quisque posuere, libero ac elementum maximus, lacus nulla lobortis nibh, id aliquam tortor lacus vel quam. Nunc eget dolor non nunc sagittis varius. Proin viverra vestibulum placerat. Fusce placerat interdum diam quis sollicitudin. Praesent sed tincidunt orci. Suspendisse lectus lorem, porta vel quam sit amet, pharetra interdum purus. Suspendisse ac lacus consequat, dapibus nunc in, porttitor purus. Nam dictum elit eget massa tincidunt tempus. Vestibulum blandit, lorem et accumsan tristique, orci dolor vulputate magna, et posuere lorem sapien non sapien. Vivamus nulla justo, eleifend et metus sit amet, gravida iaculis erat. Fusce lacinia cursus accumsan.
- </textarea>
- </div>
- <div class="previewhalf half">
- <div id="preview">
- <p>Preview here</p>
- </div>
- </div>
- </body>
- </html>
|