Desde: 0.3.0
Un filtro para seleccionar elementos dentro del documento.
Para construir un selector podés:
- usar una función de elemento
- filtrar por una función de elemento con campos específicos
- usar una cadena de texto o una expresión regular
- usar una
<label> - usar una
location - llamar al constructor de
selectorpara convertir cualquiera de los tipos anteriores en un valor selector y usar los métodos de abajo para refinarlo
Los selectores se usan para aplicar reglas de estilo a los elementos. También podés usar selectores para consultar el documento en busca de ciertos tipos de elementos.
Además, podés pasar un selector a varias de las funciones incorporadas de Typst para configurar su comportamiento. Un ejemplo es outline, donde se puede usar para cambiar qué elementos se listan en el índice.
Se pueden combinar varios selectores con los métodos que se muestran abajo. Sin embargo, por el momento no todos los tipos de selectores se admiten en todos los lugares.
Ejemplo
#context query(
heading.where(level: 1)
.or(heading.where(level: 2))
)
= This will be found
== So will this
=== But this will not.

Constructor
Convierte un valor en un selector. Se aceptan los siguientes valores:
- Una función de elemento como
headingofigure. - Una cadena de texto o una expresión regular.
- Una
<label>. - Una
location. - Un selector más complejo como
heading.where(level: 1).
target
Puede ser una función de elemento como heading o figure, una <label> o un selector más complejo como heading.where(level: 1).
Funciones
orDesde: 0.3.0
Selecciona todos los elementos que coinciden con este selector o con cualquiera de los demás.
others
Los demás selectores con los que se debe coincidir.
andDesde: 0.3.0
Selecciona todos los elementos que coinciden con este selector y con todos los demás.
others
Los demás selectores con los que se debe coincidir.
beforeDesde: 0.3.0
Devuelve un selector modificado que solo coincide con los elementos que aparecen antes de la primera coincidencia de end.
Nota: Actualmente, este selector solo se admite con funciones de introspección, no en reglas show.
end
La selección original terminará en la primera coincidencia de end.
inclusivePor defecto: true
Si la propia coincidencia de end debe incluirse o no. Solo es relevante si ambos selectores coinciden con el mismo tipo de elemento. Por defecto es true.
afterDesde: 0.3.0
Devuelve un selector modificado que solo coincide con los elementos que aparecen después de la primera coincidencia de start.
Nota: Actualmente, este selector solo se admite con funciones de introspección, no en reglas show.
start
La selección original empezará en la primera coincidencia de start.
inclusivePor defecto: true
Si la propia coincidencia de start debe incluirse o no. Solo es relevante si ambos selectores coinciden con el mismo tipo de elemento. Por defecto es true.
withinDesde: 0.15.0
Devuelve un selector modificado que solo coincide con los elementos contenidos dentro de cualquier elemento que coincida con el selector ancestor.
Ver ejemplo: Búsqueda de elementos strong en listas
*Strong emphasis* that does not count.
- An *important* word
- Another *key* word
Strong elements in lists:
#context {
query(selector(strong).within(list))
.map(it => it.body)
.join[, ]
}

También se puede usar en combinación con here para encontrar todas las coincidencias de un selector dentro de una expresión de contexto. Esto puede ser muy útil para que una introspección devuelva resultados locales a algún componente que estés construyendo.
Ver ejemplo: Conteo local de elementos en un bloque de contexto
#let count(sel, body) = context {
let n = query(selector(sel).within(here())).len()
[#body (#n matches)]
}
- #count(emph)[Has _two_ matching _elements_]
- #count(strong)[Has *one* matching element]

Nota: Actualmente, este selector solo se admite con funciones de introspección, no en reglas show.
ancestor
Solo se incluirán en la salida las coincidencias de self que sean descendientes de algún elemento que coincida con este selector.
Un elemento no se considera su propio ancestro.