only slightly better visuals
This commit is contained in:
		
							parent
							
								
									30255be018
								
							
						
					
					
						commit
						17b6e54976
					
				
					 4 changed files with 173 additions and 14 deletions
				
			
		| 
						 | 
				
			
			@ -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 
 | 
			
		||||
                    - 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 
 | 
			
		||||
 | 
			
		||||
                        - 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…
	
	Add table
		Add a link
		
	
		Reference in a new issue