Struct RawElem

Source
pub struct RawElem {
    pub text: RawContent,
    /* private fields */
}
Expand description

Raw text with optional syntax highlighting.

Displays the text verbatim and in a monospace font. This is typically used to embed computer code into your document.

§Example

Adding `rbx` to `rcx` gives
the desired result.

What is ```rust fn main()``` in Rust
would be ```c int main()``` in C.

```rust
fn main() {
    println!("Hello World!");
}
```

This has ``` `backticks` ``` in it
(but the spaces are trimmed). And
``` here``` the leading space is
also trimmed.

You can also construct a [raw] element programmatically from a string (and provide the language tag via the optional lang argument).

#raw("fn " + "main() {}", lang: "rust")

§Syntax

This function also has dedicated syntax. You can enclose text in 1 or 3+ backticks (`) to make it raw. Two backticks produce empty raw text. This works both in markup and code.

When you use three or more backticks, you can additionally specify a language tag for syntax highlighting directly after the opening backticks. Within raw blocks, everything (except for the language tag, if applicable) is rendered as is, in particular, there are no escape sequences.

The language tag is an identifier that directly follows the opening backticks only if there are three or more backticks. If your text starts with something that looks like an identifier, but no syntax highlighting is needed, start the text with a single space (which will be trimmed) or use the single backtick syntax. If your text should start or end with a backtick, put a space before or after it (it will be trimmed).

Fields§

§text: RawContent

Implementations§

Source§

impl RawElem

Source

pub fn new(text: RawContent) -> Self

Create a new instance of the element.

Source

pub fn with_block(self, block: bool) -> Self

Builder-style setter for the block field.

Source

pub fn with_lang(self, lang: Option<EcoString>) -> Self

Builder-style setter for the lang field.

Source

pub fn with_align(self, align: HAlignment) -> Self

Builder-style setter for the align field.

Source

pub fn with_syntaxes( self, syntaxes: Derived<OneOrMultiple<DataSource>, Vec<RawSyntax>>, ) -> Self

Builder-style setter for the syntaxes field.

Source

pub fn with_theme( self, theme: Smart<Option<Derived<DataSource, RawTheme>>>, ) -> Self

Builder-style setter for the theme field.

Source

pub fn with_tab_size(self, tab_size: usize) -> Self

Builder-style setter for the tab-size field.

Source

pub fn with_lines(self, lines: Vec<Packed<RawLine>>) -> Self

Builder-style setter for the lines field.

Source

pub fn push_block(&mut self, block: bool)

Setter for the block field.

Source

pub fn push_lang(&mut self, lang: Option<EcoString>)

Setter for the lang field.

Source

pub fn push_align(&mut self, align: HAlignment)

Setter for the align field.

Source

pub fn push_syntaxes( &mut self, syntaxes: Derived<OneOrMultiple<DataSource>, Vec<RawSyntax>>, )

Setter for the syntaxes field.

Source

pub fn push_theme( &mut self, theme: Smart<Option<Derived<DataSource, RawTheme>>>, )

Setter for the theme field.

Source

pub fn push_tab_size(&mut self, tab_size: usize)

Setter for the tab-size field.

Source

pub fn push_lines(&mut self, lines: Vec<Packed<RawLine>>)

Setter for the lines field.

Source

pub fn block(&self, styles: StyleChain<'_>) -> bool

Whether the raw text is displayed as a separate block.

In markup mode, using one-backtick notation makes this {false}. Using three-backtick notation makes it {true} if the enclosed content contains at least one line break.

// Display inline code in a small box
// that retains the correct baseline.
#show raw.where(block: false): box.with(
  fill: luma(240),
  inset: (x: 3pt, y: 0pt),
  outset: (y: 3pt),
  radius: 2pt,
)

// Display block code in a larger block
// with more padding.
#show raw.where(block: true): block.with(
  fill: luma(240),
  inset: 10pt,
  radius: 4pt,
)

With `rg`, you can search through your files quickly.
This example searches the current directory recursively
for the text `Hello World`:

```bash
rg "Hello World"
```
Source

pub fn lang<'a>(&'a self, styles: StyleChain<'a>) -> &'a Option<EcoString>

The language to syntax-highlight in.

Apart from typical language tags known from Markdown, this supports the {"typ"}, {"typc"}, and {"typm"} tags for Typst markup, Typst code, and Typst math, respectively.

```typ
This is *Typst!*
```

This is ```typ also *Typst*```, but inline!
Source

pub fn align(&self, styles: StyleChain<'_>) -> HAlignment

The horizontal alignment that each line in a raw block should have. This option is ignored if this is not a raw block (if specified block: false or single backticks were used in markup mode).

By default, this is set to {start}, meaning that raw text is aligned towards the start of the text direction inside the block by default, regardless of the current context’s alignment (allowing you to center the raw block itself without centering the text inside it, for example).

#set raw(align: center)

```typc
let f(x) = x
code = "centered"
```
Source

pub fn syntaxes( &self, styles: StyleChain<'_>, ) -> Derived<OneOrMultiple<DataSource>, Vec<RawSyntax>>

Additional syntax definitions to load. The syntax definitions should be in the sublime-syntax file format.

You can pass any of the following values:

  • A path string to load a syntax file from the given path. For more details about paths, see the Paths section.
  • Raw bytes from which the syntax should be decoded.
  • An array where each item is one the above.
#set raw(syntaxes: "SExpressions.sublime-syntax")

```sexp
(defun factorial (x)
  (if (zerop x)
    ; with a comment
    1
    (* x (factorial (- x 1)))))
```
Source

pub fn theme<'a>( &'a self, styles: StyleChain<'a>, ) -> &'a Smart<Option<Derived<DataSource, RawTheme>>>

The theme to use for syntax highlighting. Themes should be in the tmTheme file format.

You can pass any of the following values:

  • {none}: Disables syntax highlighting.
  • {auto}: Highlights with Typst’s default theme.
  • A path string to load a theme file from the given path. For more details about paths, see the Paths section.
  • Raw bytes from which the theme should be decoded.

Applying a theme only affects the color of specifically highlighted text. It does not consider the theme’s foreground and background properties, so that you retain control over the color of raw text. You can apply the foreground color yourself with the [text] function and the background with a filled block. You could also use the [xml] function to extract these properties from the theme.

#set raw(theme: "halcyon.tmTheme")
#show raw: it => block(
  fill: rgb("#1d2433"),
  inset: 8pt,
  radius: 5pt,
  text(fill: rgb("#a2aabc"), it)
)

```typ
= Chapter 1
#let hi = "Hello World"
```
Source

pub fn tab_size(&self, styles: StyleChain<'_>) -> usize

The size for a tab stop in spaces. A tab is replaced with enough spaces to align with the next multiple of the size.

#set raw(tab-size: 8)
```tsv
Year	Month	Day
2000	2	3
2001	2	1
2002	3	10
```
Source

pub fn lines(&self) -> Option<&Vec<Packed<RawLine>>>

The stylized lines of raw text.

Made accessible for the raw.line element. Allows more styling control in show rules.

Source

pub fn block_in(styles: StyleChain<'_>) -> bool

Access the block field in the given style chain.

Source

pub fn lang_in(styles: StyleChain<'_>) -> &Option<EcoString>

Access the lang field in the given style chain.

Source

pub fn align_in(styles: StyleChain<'_>) -> HAlignment

Access the align field in the given style chain.

Source

pub fn syntaxes_in( styles: StyleChain<'_>, ) -> Derived<OneOrMultiple<DataSource>, Vec<RawSyntax>>

Access the syntaxes field in the given style chain.

Source

pub fn theme_in( styles: StyleChain<'_>, ) -> &Smart<Option<Derived<DataSource, RawTheme>>>

Access the theme field in the given style chain.

Source

pub fn tab_size_in(styles: StyleChain<'_>) -> usize

Access the tab-size field in the given style chain.

Source

pub fn set_block(block: bool) -> Property

Create a style property for the block field.

Source

pub fn set_lang(lang: Option<EcoString>) -> Property

Create a style property for the lang field.

Source

pub fn set_align(align: HAlignment) -> Property

Create a style property for the align field.

Source

pub fn set_syntaxes( syntaxes: Derived<OneOrMultiple<DataSource>, Vec<RawSyntax>>, ) -> Property

Create a style property for the syntaxes field.

Source

pub fn set_theme( theme: Smart<Option<Derived<DataSource, RawTheme>>>, ) -> Property

Create a style property for the theme field.

Source

pub fn set_tab_size(tab_size: usize) -> Property

Create a style property for the tab-size field.

Source§

impl RawElem

Source

pub fn languages() -> Vec<(&'static str, Vec<&'static str>)>

The supported language names and tags.

Trait Implementations§

Source§

impl Capable for RawElem

Source§

fn vtable(capability: TypeId) -> Option<NonNull<()>>

Get the pointer to the vtable for the given capability / trait.
Source§

impl Clone for RawElem

Source§

fn clone(&self) -> RawElem

Returns a duplicate of the value. Read more
1.0.0 · Source§

const fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Construct for RawElem

Source§

fn construct(engine: &mut Engine<'_>, args: &mut Args) -> SourceResult<Content>

Construct an element from the arguments. Read more
Source§

impl Debug for RawElem

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Fields for RawElem

Source§

type Enum = Fields

An enum with the fields of the element.
Source§

fn has(&self, id: u8) -> bool

Whether the element has the given field set.
Source§

fn field(&self, id: u8) -> Result<Value, FieldAccessError>

Get the field with the given field ID.
Source§

fn field_with_styles( &self, id: u8, styles: StyleChain<'_>, ) -> Result<Value, FieldAccessError>

Get the field with the given ID in the presence of styles.
Source§

fn field_from_styles( id: u8, styles: StyleChain<'_>, ) -> Result<Value, FieldAccessError>

Get the field with the given ID from the styles.
Source§

fn materialize(&mut self, styles: StyleChain<'_>)

Resolve all fields with the styles and save them in-place.
Source§

fn fields(&self) -> Dict

Get the fields of the element.
Source§

impl Hash for RawElem

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl IntoValue for RawElem

Source§

fn into_value(self) -> Value

Cast this type into a value.
Source§

impl NativeElement for RawElem

Source§

fn data() -> &'static NativeElementData

Get the element data for the native Rust element.
Source§

fn elem() -> Element
where Self: Sized,

Get the element for the native Rust element.
Source§

fn pack(self) -> Content
where Self: Sized,

Pack the element into type-erased content.
Source§

impl NativeScope for RawElem

Source§

fn constructor() -> Option<&'static NativeFuncData>

The constructor function for the type, if any.
Source§

fn scope() -> Scope

Get the associated scope for the type.
Source§

impl PartialEq for RawElem

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

const fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Repr for RawElem

Source§

fn repr(&self) -> EcoString

Return the debug representation of the value.
Source§

impl Set for RawElem

Source§

fn set(engine: &mut Engine<'_>, args: &mut Args) -> SourceResult<Styles>

Parse relevant arguments into style properties for this element.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

Source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
Source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

Source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
Source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

Source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

Source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

Source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromAngle<T> for T

Source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
Source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

Source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> IntoAngle<U> for T
where U: FromAngle<T>,

Source§

fn into_angle(self) -> U

Performs a conversion into T.
Source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

Source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

Source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
Source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

Source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoResult for T
where T: IntoValue,

Source§

fn into_result(self, _: Span) -> Result<Value, EcoVec<SourceDiagnostic>>

Cast this type into a value.
Source§

impl<T> IntoStimulus<T> for T

Source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

Source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
Source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

Source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
Source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

Source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
Source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

Source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T
where T: Send + Sync,