How to make appendix optional in template, and how to hide it from "main" contents?

Hello. Here is an optimized version for your code + solution:

#let conf(title: none, doc) = {
  set heading(numbering: "1.1")
  set pagebreak(weak: true)

  v(15%)
  align(center, text(17pt, strong(title)))
  pagebreak()

  set page(numbering: "1")
  show outline.entry.where(level: 1): set block(above: 12pt)
  show outline.entry.where(level: 1): strong

  context if query(<appendix-exists>).len() == 0 { outline() } else {
    outline(target: selector(heading).before(locate(<appendix-exists>)))
    pagebreak()

    outline(title: [Appendix], target: heading.where(supplement: [Appendix]))
  }
  pagebreak()

  doc
}

#let appendix(body) = {
  set heading(numbering: "A", supplement: [Appendix])
  counter(heading).update(0)
  [#metadata(none)<appendix-exists>]
  body
}

#show: conf.with(title: "Lorem")

= About
#lorem(16)

== References
#lorem(32)

= Introduction
#lorem(16)

#show: appendix

= Tables
#lorem(16)

= Graphs
#lorem(16)
1 Like