some more usability improvements
This commit is contained in:
		
							parent
							
								
									3203989cb2
								
							
						
					
					
						commit
						63dd2fa5ab
					
				
					 7 changed files with 46 additions and 13 deletions
				
			
		| 
						 | 
				
			
			@ -62,6 +62,8 @@
 | 
			
		|||
 | 
			
		||||
                        - 
 | 
			
		||||
 | 
			
		||||
                        - wow he very beeg
 | 
			
		||||
 | 
			
		||||
                        - without a hat is also nice uwu
 | 
			
		||||
 | 
			
		||||
                    - also a block quote
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
use std::ops::Range;
 | 
			
		||||
 | 
			
		||||
use crate::{
 | 
			
		||||
    pull::{BranchEvent, BranchKind, Parser},
 | 
			
		||||
    pull::{Attributes, BranchEvent, BranchKind, Parser},
 | 
			
		||||
    ParseError, ParseErrorKind,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -26,7 +26,7 @@ impl Roots {
 | 
			
		|||
#[derive(Debug, Clone)]
 | 
			
		||||
pub struct Branch {
 | 
			
		||||
    pub indent_level: usize,
 | 
			
		||||
    pub attributes: Range<usize>,
 | 
			
		||||
    pub attributes: Option<Attributes>,
 | 
			
		||||
    pub kind: BranchKind,
 | 
			
		||||
    pub kind_span: Range<usize>,
 | 
			
		||||
    pub content: Range<usize>,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,7 +25,13 @@ pub struct BranchEvent {
 | 
			
		|||
    pub kind: BranchKind,
 | 
			
		||||
    pub kind_span: Range<usize>,
 | 
			
		||||
    pub content: Range<usize>,
 | 
			
		||||
    pub attributes: Range<usize>,
 | 
			
		||||
    pub attributes: Option<Attributes>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive(Debug, Clone, PartialEq, Eq)]
 | 
			
		||||
pub struct Attributes {
 | 
			
		||||
    pub percent: Range<usize>,
 | 
			
		||||
    pub data: Range<usize>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive(Debug, Clone, PartialEq, Eq)]
 | 
			
		||||
| 
						 | 
				
			
			@ -100,11 +106,15 @@ impl<'a> Parser<'a> {
 | 
			
		|||
        let attributes = if self.current() == Some('%') {
 | 
			
		||||
            let start = self.position;
 | 
			
		||||
            self.advance();
 | 
			
		||||
            let after_percent = self.position;
 | 
			
		||||
            self.eat_indented_lines_until(indent_level, |c| c == '-' || c == '+')?;
 | 
			
		||||
            let end = self.position;
 | 
			
		||||
            start..end
 | 
			
		||||
            Some(Attributes {
 | 
			
		||||
                percent: start..after_percent,
 | 
			
		||||
                data: after_percent..end,
 | 
			
		||||
            })
 | 
			
		||||
        } else {
 | 
			
		||||
            self.position..self.position
 | 
			
		||||
            None
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        let kind_start = self.position;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -137,6 +137,9 @@ blockquote {
 | 
			
		|||
 | 
			
		||||
/* And tables. */
 | 
			
		||||
 | 
			
		||||
table {
 | 
			
		||||
    margin: 8px 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table,
 | 
			
		||||
th,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,6 +6,14 @@
 | 
			
		|||
 | 
			
		||||
/* Make the tree have + and - instead of the default details/summary arrow */
 | 
			
		||||
 | 
			
		||||
.tree {
 | 
			
		||||
    --tree-icon-position: 8px 50%;
 | 
			
		||||
    --tree-icon-space: 28px;
 | 
			
		||||
 | 
			
		||||
    /* I have no clue why this works, deal with it */
 | 
			
		||||
    --tree-hover-expansion: 0.01px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tree details>summary {
 | 
			
		||||
    list-style: none;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
| 
						 | 
				
			
			@ -18,17 +26,27 @@
 | 
			
		|||
.tree details>summary {
 | 
			
		||||
    background-image: url('../svg/expand.svg');
 | 
			
		||||
    background-repeat: no-repeat;
 | 
			
		||||
    background-position: 0px 50%;
 | 
			
		||||
    padding-left: 24px;
 | 
			
		||||
    margin-left: -24px;
 | 
			
		||||
    background-position: var(--tree-icon-position);
 | 
			
		||||
    padding-left: var(--tree-icon-space);
 | 
			
		||||
    margin-left: calc(- var(--tree-icon-space));
 | 
			
		||||
 | 
			
		||||
    padding-top: var(--tree-hover-expansion);
 | 
			
		||||
    padding-bottom: var(--tree-hover-expansion);
 | 
			
		||||
    border-radius: 8px;
 | 
			
		||||
 | 
			
		||||
    background-color: rgba(0, 0, 0, 0%);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tree details>summary:hover {
 | 
			
		||||
    background-color: rgba(0, 0, 0, 5%);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tree li.leaf {
 | 
			
		||||
    background-image: url('../svg/leaf.svg');
 | 
			
		||||
    background-repeat: no-repeat;
 | 
			
		||||
    background-position: 0px 50%;
 | 
			
		||||
    padding-left: 24px;
 | 
			
		||||
    margin-left: -24px;
 | 
			
		||||
    background-position: var(--tree-icon-position);
 | 
			
		||||
    padding-left: var(--tree-icon-space);
 | 
			
		||||
    margin-left: calc(- var(--tree-icon-space));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tree details[open]>summary {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
// Bits and pieces to make vanilla HTML just a bit more usable.
 | 
			
		||||
// Bits and pieces to make the treehouse just a bit more easy to explore.
 | 
			
		||||
 | 
			
		||||
// We want to let the user have a selection on collapsible blocks without collapsing them when
 | 
			
		||||
// the user finishes marking their selection.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
<svg width="12" height="12" xmlns="http://www.w3.org/2000/svg">
 | 
			
		||||
    <path fill-rule="evenodd" clip-rule="evenodd" d="M7 5V3H5V5H3V7H5V9H7V7H9V5H7Z" fill="currentColor"
 | 
			
		||||
    <path fill-rule="evenodd" clip-rule="evenodd" d="M7 5V2H5V5H2V7H5V10H7V7H10V5H7Z" fill="currentColor"
 | 
			
		||||
        fill-opacity="0.3" />
 | 
			
		||||
</svg>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
		 Before Width: | Height: | Size: 205 B After Width: | Height: | Size: 207 B  | 
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue