Collapse non top-level nodes.
This commit is contained in:
parent
0696ffa075
commit
8698035f2e
@ -17,6 +17,7 @@ EXTENSIONS = [
|
|||||||
".org.txt",
|
".org.txt",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
MIN_HIDDEN_HEADLINE_LEVEL = 2
|
||||||
|
|
||||||
def load_all(top_dir_relative):
|
def load_all(top_dir_relative):
|
||||||
top = os.path.abspath(top_dir_relative)
|
top = os.path.abspath(top_dir_relative)
|
||||||
@ -92,7 +93,7 @@ def main(src_top, dest_top):
|
|||||||
|
|
||||||
main_headline = [h for h in topHeadlines if h != related][0]
|
main_headline = [h for h in topHeadlines if h != related][0]
|
||||||
with open(endpath, "wt") as f:
|
with open(endpath, "wt") as f:
|
||||||
f.write(as_document(render(main_headline, doc)))
|
f.write(as_document(render(main_headline, doc, headlineLevel=0)))
|
||||||
files_generated += 1
|
files_generated += 1
|
||||||
else:
|
else:
|
||||||
logging.error("Cannot render document from id: {}. {} headlines {} related".format(
|
logging.error("Cannot render document from id: {}. {} headlines {} related".format(
|
||||||
@ -105,7 +106,7 @@ def main(src_top, dest_top):
|
|||||||
endpath = os.path.join(dest_top, headline.id + ".node.html")
|
endpath = os.path.join(dest_top, headline.id + ".node.html")
|
||||||
|
|
||||||
with open(endpath, "wt") as f:
|
with open(endpath, "wt") as f:
|
||||||
f.write(as_document(render(headline, doc)))
|
f.write(as_document(render(headline, doc, headlineLevel=0)))
|
||||||
files_generated += 1
|
files_generated += 1
|
||||||
|
|
||||||
logging.info("Generated {} files".format(files_generated))
|
logging.info("Generated {} files".format(files_generated))
|
||||||
@ -200,7 +201,7 @@ def render(headline, doc):
|
|||||||
content = []
|
content = []
|
||||||
render_tree(dom, content)
|
render_tree(dom, content)
|
||||||
for child in headline.children:
|
for child in headline.children:
|
||||||
content.append(render(child, doc))
|
content.append(render(child, doc, headlineLevel=headlineLevel+1))
|
||||||
|
|
||||||
if headline.state is None:
|
if headline.state is None:
|
||||||
state = ""
|
state = ""
|
||||||
@ -211,16 +212,22 @@ def render(headline, doc):
|
|||||||
todo_state = "todo"
|
todo_state = "todo"
|
||||||
else:
|
else:
|
||||||
todo_state = "done"
|
todo_state = "done"
|
||||||
|
|
||||||
|
display_state = 'collapsed'
|
||||||
|
if headlineLevel < MIN_HIDDEN_HEADLINE_LEVEL:
|
||||||
|
display_state = 'expanded'
|
||||||
|
|
||||||
return f"""
|
return f"""
|
||||||
<div id="{html.escape(headline.id)}" class="node {todo_state}">
|
<div id="{html.escape(headline.id)}" class="node {todo_state} {display_state}">
|
||||||
<h1 class="title">
|
<h1 class="title">
|
||||||
{state}
|
{state}
|
||||||
<a href=\"org-protocol://org-id?id={html.escape(headline.id)}\">
|
<a href=\"javascript:toggle_expand('{html.escape(headline.id)}')\">
|
||||||
{html.escape(headline.title)}
|
{html.escape(headline.title)}
|
||||||
</a>
|
</a>
|
||||||
</h1>
|
</h1>
|
||||||
|
<div class='contents'>
|
||||||
{''.join(content)}
|
{''.join(content)}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -230,6 +237,19 @@ def as_document(html):
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link href="../static/style.css" rel="stylesheet"/>
|
<link href="../static/style.css" rel="stylesheet"/>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function toggle_expand(header_id) {{
|
||||||
|
var e = document.getElementById(header_id);
|
||||||
|
if (e.classList.contains('expanded')) {{
|
||||||
|
e.classList.add('collapsed');
|
||||||
|
e.classList.remove('expanded');
|
||||||
|
}}
|
||||||
|
else {{
|
||||||
|
e.classList.add('expanded');
|
||||||
|
e.classList.remove('collapsed');
|
||||||
|
}}
|
||||||
|
}}
|
||||||
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
{html}
|
{html}
|
||||||
|
@ -12,6 +12,18 @@
|
|||||||
border-left: 2px solid #2c3e50;
|
border-left: 2px solid #2c3e50;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.node.collapsed > .contents {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.node .node.collapsed > .title::before {
|
||||||
|
content: "🮥";
|
||||||
|
}
|
||||||
|
|
||||||
|
.node .node.expanded > .title::before {
|
||||||
|
content: "🮦";
|
||||||
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
font-size: 150%;
|
font-size: 150%;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user