only slightly better visuals
This commit is contained in:
parent
30255be018
commit
17b6e54976
|
@ -1,6 +1,6 @@
|
|||
- # treehouse
|
||||
|
||||
- welcome to treehouse!
|
||||
- welcome to the treehouse!
|
||||
|
||||
- treehouse is a brand new static website generator, inspired by the likes of Jekyll and Hugo, but offering a writing experience more close to Logseq
|
||||
|
||||
|
@ -47,16 +47,38 @@
|
|||
- ### heading 3
|
||||
headings lower than this aren't really supported because c'mon who would be this crazy
|
||||
|
||||
- <https://liquidev.net>
|
||||
- this is supposed to be **bold** and this is supposed to be _italic_
|
||||
|
||||
- here is my favorite fluffy boy ![ralsei with a hat](https://liquidev.net/syf/art/20230723_ralsei_hat.png)
|
||||
- there's a line break<br>
|
||||
here
|
||||
|
||||
- and it's supposed to render correctly
|
||||
|
||||
- <https://liquidev.net> also [a link that you have not visited because there is nothing there](https://liquidev.net/nothing-to-see-here-lmfao-did-you-really-expect-me-to-create-such-a-behemoth-of-a-URL)
|
||||
|
||||
+ here is my favorite fluffy boy ![ralsei with a hat](https://liquidev.net/syf/art/20230723_ralsei_hat.png)
|
||||
|
||||
- without a hat is also nice uwu
|
||||
|
||||
- also a block quote
|
||||
|
||||
- > Enough You Foolish Children
|
||||
|
||||
- yes i will totally abuse you with deltarune references and you cannot stop me
|
||||
- yes i will totally abuse you with Deltarune references and you cannot stop me
|
||||
|
||||
- ```
|
||||
this is some block of code it looks pretty cool doesn't it
|
||||
```
|
||||
|
||||
- ```
|
||||
and here's a multiline code block which also looks cool
|
||||
many many many lines
|
||||
```
|
||||
|
||||
- and a table because benchmarks use those
|
||||
|
||||
-
|
||||
| weeee | woosh | wa-ho |
|
||||
| --- | --- | --- |
|
||||
| yep | that's | a table |
|
||||
| looks | pretty cool | huh |
|
||||
|
|
|
@ -3,7 +3,11 @@ use treehouse_format::{ast::Branch, pull::BranchKind};
|
|||
use super::markdown;
|
||||
|
||||
pub fn branch_to_html(s: &mut String, branch: &Branch, source: &str) {
|
||||
s.push_str("<li>");
|
||||
s.push_str(if !branch.children.is_empty() {
|
||||
"<li class=\"branch\">"
|
||||
} else {
|
||||
"<li class=\"leaf\">"
|
||||
});
|
||||
{
|
||||
if !branch.children.is_empty() {
|
||||
s.push_str(match branch.kind {
|
||||
|
@ -15,13 +19,26 @@ pub fn branch_to_html(s: &mut String, branch: &Branch, source: &str) {
|
|||
|
||||
let raw_block_content = &source[branch.content.clone()];
|
||||
let mut unindented_block_content = String::with_capacity(raw_block_content.len());
|
||||
let indent = " ".repeat(branch.indent_level);
|
||||
for line in raw_block_content.lines() {
|
||||
unindented_block_content.push_str(line.strip_prefix(&indent).unwrap_or(line));
|
||||
// Bit of a jank way to remove at most branch.indent_level spaces from the front.
|
||||
let mut space_count = 0;
|
||||
for i in 0..branch.indent_level {
|
||||
if line.as_bytes().get(i).copied() == Some(b' ') {
|
||||
space_count += 1;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
dbg!(&line[space_count..]);
|
||||
unindented_block_content.push_str(&line[space_count..]);
|
||||
unindented_block_content.push('\n');
|
||||
}
|
||||
|
||||
let markdown_parser = pulldown_cmark::Parser::new(&unindented_block_content);
|
||||
let markdown_parser = pulldown_cmark::Parser::new_ext(&unindented_block_content, {
|
||||
use pulldown_cmark::Options;
|
||||
Options::ENABLE_STRIKETHROUGH | Options::ENABLE_TABLES
|
||||
});
|
||||
markdown::push_html(s, markdown_parser);
|
||||
|
||||
if !branch.children.is_empty() {
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
/* Article-style layout. Center everything and give it a maximum width */
|
||||
|
||||
body {
|
||||
max-width: 1200px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
/* Choose more pretty colors than vanilla HTML */
|
||||
|
||||
body {
|
||||
|
@ -5,13 +13,14 @@ body {
|
|||
color: #333;
|
||||
}
|
||||
|
||||
/* Set up fonts */
|
||||
/* Set up typography */
|
||||
|
||||
body,
|
||||
pre,
|
||||
code {
|
||||
font-family: 'RecVar', sans-serif;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
:root {
|
||||
|
@ -36,13 +45,92 @@ code {
|
|||
h1 {
|
||||
--recursive-slnt: 0.0;
|
||||
--recursive-casl: 0.0;
|
||||
--recursive-crsv: 0.0;
|
||||
--recursive-wght: 900;
|
||||
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
--recursive-slnt: 0.0;
|
||||
--recursive-casl: 0.5;
|
||||
--recursive-wght: 800;
|
||||
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
--recursive-slnt: 0.0;
|
||||
--recursive-casl: 0.5;
|
||||
--recursive-wght: 700;
|
||||
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
pre,
|
||||
code {
|
||||
--recursive-mono: 1.0;
|
||||
--recursive-casl: 0.0;
|
||||
--recursive-slnt: 0.0;
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
--recursive-wght: 700;
|
||||
}
|
||||
|
||||
i,
|
||||
em {
|
||||
--recursive-slnt: -16.0;
|
||||
}
|
||||
|
||||
/* Lay out elements a bit more compactly */
|
||||
|
||||
p,
|
||||
pre {
|
||||
margin: 6px 0;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
margin: 12px 0;
|
||||
}
|
||||
|
||||
/* Lay out elements a little less compactly (actually just have some blank space past the end) */
|
||||
|
||||
body {
|
||||
padding-bottom: 10rem;
|
||||
}
|
||||
|
||||
/* Make code examples a little prettier by giving them visual separation from the rest of the page */
|
||||
|
||||
pre {
|
||||
min-width: 70%;
|
||||
margin-left: 12px;
|
||||
padding: 8px 12px;
|
||||
background-color: rgba(0, 0, 0, 5%);
|
||||
}
|
||||
|
||||
/* Also don't let images get out of hand */
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* Fix the default blue and ugly purple links normally have */
|
||||
|
||||
a {
|
||||
color: #004ec8;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #6c2380;
|
||||
}
|
||||
|
||||
/* The tree indents shouldn't be too spaced out */
|
||||
|
||||
.tree ul {
|
||||
padding-left: 24px;
|
||||
}
|
||||
|
||||
/* Make the tree have + and - instead of the default details/summary arrow */
|
||||
|
@ -56,12 +144,44 @@ code {
|
|||
list-style: none;
|
||||
}
|
||||
|
||||
/* Also, lone paragraphs should have a bullet point beside to give you a bit of a visual anchor */
|
||||
.tree li.leaf>p:first-child::before,
|
||||
/* Lone paragraphs include <pre> elements */
|
||||
.tree li.leaf>pre:first-child::before {
|
||||
content: '·';
|
||||
opacity: 0.5;
|
||||
|
||||
display: inline-block;
|
||||
height: 0;
|
||||
|
||||
margin-left: -1.5rem;
|
||||
width: 1.5rem;
|
||||
|
||||
--recursive-mono: 1.0;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
/* Dirty hack to make pres render the way I want this to */
|
||||
.tree li.leaf>pre:first-child::before {
|
||||
transform: translateX(-8px);
|
||||
}
|
||||
|
||||
pre {
|
||||
transform: translateX(8px);
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.tree details::before {
|
||||
content: '+';
|
||||
opacity: 0.5;
|
||||
|
||||
padding-right: 8px;
|
||||
vertical-align: text-bottom;
|
||||
display: inline-block;
|
||||
margin-left: -1em;
|
||||
|
||||
margin-left: -1.5rem;
|
||||
width: 1.5rem;
|
||||
|
||||
vertical-align: middle;
|
||||
|
||||
--recursive-mono: 1.0;
|
||||
}
|
||||
|
@ -70,6 +190,7 @@ code {
|
|||
content: '-';
|
||||
}
|
||||
|
||||
.tree details *:first-child {
|
||||
.tree details>*:first-child,
|
||||
.tree li.leaf>*:first-child {
|
||||
display: inline-block;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// We want to let the user have a selection on collapsible blocks without collapsing them when
|
||||
// the user finishes marking their selection.
|
||||
document.addEventListener("click", event => {
|
||||
console.log(getSelection());
|
||||
if (getSelection().type == "Range") {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue