How to customize outline.entry filling per level?

this is my current show rule, i want to remove the filling for entries of level: 1. is there an easy way to do this ?

show outline: it => {
  state("in-outline").update(true)
  it
  state("in-outline").update(false)
}

show outline.entry : it => {
  if it.level == 1 {
    v(0.25em)
    smallcaps(strong(it))
  }
  else if it.level == 2 {
    strong(it)
  }
  else {
    text(style: "italic", it)
  }
} 

some of what i tried what i tried

// before the `v(0.25em)`
set outline(fill: none) 
show outline.entry: set outline(fill: none)
set outline.entry(fill: none)
// ...

the docs say that all arguments for outline.entry() are positional and required and i don’t know how to fill all of them.

this solution simply shows anything related to the repeat function as none if the entry level is 1, a bit hacky.

#show outline.entry.where(level: 1): it => {
  show repeat: none
  it
}


#outline()

= Level 1 Heading

== Level 2 Heading

= Another Level 1 Heading

== Another Heading here

== And another one

a longer “appropriate” solution is to reconstruct the entry fully.

#show outline.entry.where(level: 1): it => {
  v(0.1em)
  box(grid(
    columns: (auto, 1fr, auto),
    strong(link(it.element.location())[#it.element.body]),
    h(1fr),
    strong(it.page),
  ))
}


#outline()

= Level 1 Heading

== Level 2 Heading

= Another Level 1 Heading

== Another Heading here

== And another one
1 Like