change table of contents design, add activity outline
This commit is contained in:
+134
-77
@@ -326,7 +326,7 @@
|
||||
align(bottom)[
|
||||
#hl[]
|
||||
*활동 증빙 자료:*
|
||||
#underline[#ref(label("Evidence) " + ca.name))]
|
||||
#underline[#ref(label("evidence) " + ca.name))]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -364,7 +364,7 @@
|
||||
)[
|
||||
#context {
|
||||
let m = meta.get()
|
||||
link((page: 1, x: 0pt, y: 0pt))[#m.cur_domain. #m.domain_name]
|
||||
link((page: 2, x: 0pt, y: 0pt))[#m.cur_domain. #m.domain_name]
|
||||
h(1fr)
|
||||
if show_activity {
|
||||
let ca = cur_activity()
|
||||
@@ -441,17 +441,47 @@
|
||||
]
|
||||
}
|
||||
|
||||
// Table of contents templage function
|
||||
#let table_of_contents() = page(
|
||||
footer: footer_template(),
|
||||
)[
|
||||
#context {
|
||||
let m = meta.get()
|
||||
heading(level: 1, outlined: false, numbering: none)[#m.cur_domain. #m.domain_name]
|
||||
}
|
||||
// Table of contents template function
|
||||
#let table_of_contents() = context {
|
||||
let cp = color-palette.get()
|
||||
let m = meta.get()
|
||||
|
||||
#outline(title: none, depth: 2)
|
||||
]
|
||||
page(
|
||||
footer: footer_template(),
|
||||
)[
|
||||
#show outline.entry.where(level: 1): it => link(it.element.location())[
|
||||
#block(above: 25pt)[
|
||||
#grid(
|
||||
columns: (1fr, auto),
|
||||
align: horizon,
|
||||
text(font: font-subhead, size: 15pt, weight: 700)[
|
||||
#it.indented(it.prefix(), heading_text(it.body()))
|
||||
],
|
||||
text(size: 10pt, fill: color-ink-helper)[
|
||||
#it.page()
|
||||
],
|
||||
)
|
||||
|
||||
#let desc = it.element.supplement
|
||||
|
||||
#if desc != [domain] and desc != [evidence] {
|
||||
text(fill: color-ink-helper, size: 10pt)[
|
||||
#it.element.supplement
|
||||
]
|
||||
}
|
||||
|
||||
#v(10pt)
|
||||
|
||||
#line(length: 100%, stroke: (paint: cp.accent-faint, thickness: 0.5pt))
|
||||
]
|
||||
]
|
||||
|
||||
#heading(level: 1, outlined: false, numbering: none)[#m.cur_domain. #m.domain_name]
|
||||
#label("table_of_contents")
|
||||
|
||||
#outline(title: none, depth: 1)
|
||||
]
|
||||
}
|
||||
|
||||
// Domain frame template function
|
||||
#let domain_frame(
|
||||
@@ -477,7 +507,7 @@
|
||||
#set text(fill: font_color)
|
||||
#show strong: set text(fill: font_color)
|
||||
|
||||
#heading(level: 1)[
|
||||
#heading(level: 1, supplement: [domain])[
|
||||
#title
|
||||
]
|
||||
|
||||
@@ -485,21 +515,29 @@
|
||||
]
|
||||
|
||||
// Activity cover template function
|
||||
#let activity_cover(name: "", hook: "", content) = page(
|
||||
header: header_template(),
|
||||
footer: footer_template(),
|
||||
)[
|
||||
#heading(level: 1)[
|
||||
#name
|
||||
]
|
||||
#label(heading_text(name))
|
||||
#let activity_cover(name: "", hook: "", content) = context {
|
||||
let cp = color-palette.get()
|
||||
|
||||
#block_quote()[
|
||||
#hook
|
||||
]
|
||||
page(
|
||||
header: header_template(),
|
||||
footer: footer_template(),
|
||||
fill: cp.cover-surface,
|
||||
)[
|
||||
#show heading.where(level: 1): set block(above: 0em, below: 25pt)
|
||||
#heading(level: 1, supplement: hook)[
|
||||
#name
|
||||
]
|
||||
#label(heading_text(name))
|
||||
|
||||
#content
|
||||
]
|
||||
#block_quote()[
|
||||
#hook
|
||||
]
|
||||
|
||||
#v(25pt)
|
||||
|
||||
#content
|
||||
]
|
||||
}
|
||||
|
||||
// Activity intro template function
|
||||
#let activity_intro(title: "", content) = page(
|
||||
@@ -508,21 +546,81 @@
|
||||
)[
|
||||
#kicker("프로젝트 소개")
|
||||
|
||||
#heading(level: 2)[
|
||||
#heading(level: 2, outlined: false)[
|
||||
#title
|
||||
]
|
||||
|
||||
#content
|
||||
]
|
||||
|
||||
#let activity_table() = context {
|
||||
let cp = color-palette.get()
|
||||
let ca = cur_activity()
|
||||
let level1s = query(heading.where(level: 1, outlined: true))
|
||||
let n = counter(heading).get().at(0)
|
||||
let sel = heading.where(level: 2, outlined: true).after(ca.location)
|
||||
if n < level1s.len() {
|
||||
sel = sel.before(level1s.at(n).location(), inclusive: false)
|
||||
}
|
||||
|
||||
page(
|
||||
header: header_template(show_activity: true),
|
||||
footer: footer_template(),
|
||||
)[
|
||||
#show outline: it => [
|
||||
#line(length: 100%, stroke: (paint: cp.accent-faint, thickness: 0.5pt))
|
||||
|
||||
#it
|
||||
]
|
||||
|
||||
#show outline.entry.where(level: 2): it => link(it.element.location())[
|
||||
#set par(
|
||||
spacing: 1em,
|
||||
)
|
||||
|
||||
#block(above: 15pt)[
|
||||
#grid(
|
||||
columns: (1fr, auto),
|
||||
align: horizon,
|
||||
text(size: 12pt, weight: 700)[
|
||||
#it.body()
|
||||
],
|
||||
text(size: 8pt, fill: color-ink-helper)[
|
||||
#it.page()
|
||||
],
|
||||
)
|
||||
|
||||
#let desc = it.element.supplement
|
||||
|
||||
#par(
|
||||
spacing: 0pt,
|
||||
leading: 0pt,
|
||||
)[
|
||||
#text(fill: color-ink-helper, size: 10pt)[
|
||||
#it.element.supplement
|
||||
]
|
||||
]
|
||||
|
||||
#line(length: 100%, stroke: (paint: cp.accent-faint, thickness: 0.5pt))
|
||||
]
|
||||
]
|
||||
|
||||
#heading(level: 2, outlined: false)[
|
||||
시행착오 목차
|
||||
]
|
||||
|
||||
#outline(title: none, target: sel)
|
||||
]
|
||||
}
|
||||
|
||||
// Activity process
|
||||
#let activity_process(title: "", content) = page(
|
||||
#let activity_process(title: "", hook: [], content) = page(
|
||||
header: header_template(show_activity: true),
|
||||
footer: footer_template(),
|
||||
)[
|
||||
#kicker("시행착오")
|
||||
|
||||
#heading(level: 2)[
|
||||
#heading(level: 2, supplement: hook)[
|
||||
#title
|
||||
]
|
||||
|
||||
@@ -551,9 +649,12 @@
|
||||
header: header_template(),
|
||||
footer: footer_template(),
|
||||
)[
|
||||
#set heading(numbering: (..nums) => {
|
||||
numbering("A", nums.at(1))
|
||||
})
|
||||
#set heading(
|
||||
numbering: (..nums) => {
|
||||
numbering("A", nums.at(1))
|
||||
},
|
||||
supplement: [evidence],
|
||||
)
|
||||
#show heading.where(level: 2): it => {
|
||||
let num = counter(heading).display(
|
||||
(..nums) => numbering("A", nums.at(1)),
|
||||
@@ -576,7 +677,7 @@
|
||||
#let cnt = ed.len()
|
||||
#for (name, data) in ed [
|
||||
#heading(level: 2, supplement: "evidence")[#name]
|
||||
#label("Evidence) " + name)
|
||||
#label("evidence) " + name)
|
||||
|
||||
#table(
|
||||
columns: (10em, 1fr),
|
||||
@@ -719,50 +820,6 @@
|
||||
fill: color-ink,
|
||||
)
|
||||
|
||||
// outline config
|
||||
set outline(
|
||||
indent: 2em,
|
||||
)
|
||||
|
||||
show outline: set par(leading: 1em)
|
||||
|
||||
show outline.entry: it => link(
|
||||
it.element.location(),
|
||||
)[
|
||||
#grid(
|
||||
columns: (1fr, auto),
|
||||
it.indented(it.prefix(), heading_text(it.body())), it.page(),
|
||||
)
|
||||
]
|
||||
|
||||
show outline.entry.where(level: 1): it => {
|
||||
set text(
|
||||
font: font-subhead,
|
||||
size: 15pt,
|
||||
weight: 700,
|
||||
)
|
||||
|
||||
block(above: 50pt)[
|
||||
#it
|
||||
#line(length: 100%, stroke: (paint: color-ink-secondary, thickness: 1pt))
|
||||
]
|
||||
}
|
||||
|
||||
show outline.entry.where(level: 2): it => {
|
||||
set text(
|
||||
font: font-body,
|
||||
size: 12pt,
|
||||
weight: 400,
|
||||
fill: color-ink-secondary,
|
||||
)
|
||||
|
||||
if it.element.supplement.text != "evidence" {
|
||||
block(above: 20pt)[
|
||||
#it
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
// render content
|
||||
doc
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user