summaryrefslogtreecommitdiff
path: root/crates/typst-library/src/text/shift.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/typst-library/src/text/shift.rs')
-rw-r--r--crates/typst-library/src/text/shift.rs83
1 files changed, 6 insertions, 77 deletions
diff --git a/crates/typst-library/src/text/shift.rs b/crates/typst-library/src/text/shift.rs
index 1a05d8f9..87ccae63 100644
--- a/crates/typst-library/src/text/shift.rs
+++ b/crates/typst-library/src/text/shift.rs
@@ -1,13 +1,8 @@
-use crate::diag::SourceResult;
-use crate::engine::Engine;
-use crate::foundations::{
- elem, Content, NativeElement, Packed, Show, Smart, StyleChain, TargetElem,
-};
-use crate::html::{tag, HtmlElem};
-use crate::layout::{Em, Length};
-use crate::text::{FontMetrics, TextElem, TextSize};
use ttf_parser::Tag;
-use typst_library::text::ScriptMetrics;
+
+use crate::foundations::{elem, Content, Smart};
+use crate::layout::{Em, Length};
+use crate::text::{FontMetrics, ScriptMetrics, TextSize};
/// Renders text in subscript.
///
@@ -17,7 +12,7 @@ use typst_library::text::ScriptMetrics;
/// ```example
/// Revenue#sub[yearly]
/// ```
-#[elem(title = "Subscript", Show)]
+#[elem(title = "Subscript")]
pub struct SubElem {
/// Whether to create artificial subscripts by lowering and scaling down
/// regular glyphs.
@@ -64,29 +59,6 @@ pub struct SubElem {
pub body: Content,
}
-impl Show for Packed<SubElem> {
- #[typst_macros::time(name = "sub", span = self.span())]
- fn show(&self, _: &mut Engine, styles: StyleChain) -> SourceResult<Content> {
- let body = self.body.clone();
-
- if styles.get(TargetElem::target).is_html() {
- return Ok(HtmlElem::new(tag::sub)
- .with_body(Some(body))
- .pack()
- .spanned(self.span()));
- }
-
- show_script(
- styles,
- body,
- self.typographic.get(styles),
- self.baseline.get(styles),
- self.size.get(styles),
- ScriptKind::Sub,
- )
- }
-}
-
/// Renders text in superscript.
///
/// The text is rendered smaller and its baseline is raised.
@@ -95,7 +67,7 @@ impl Show for Packed<SubElem> {
/// ```example
/// 1#super[st] try!
/// ```
-#[elem(title = "Superscript", Show)]
+#[elem(title = "Superscript")]
pub struct SuperElem {
/// Whether to create artificial superscripts by raising and scaling down
/// regular glyphs.
@@ -146,49 +118,6 @@ pub struct SuperElem {
pub body: Content,
}
-impl Show for Packed<SuperElem> {
- #[typst_macros::time(name = "super", span = self.span())]
- fn show(&self, _: &mut Engine, styles: StyleChain) -> SourceResult<Content> {
- let body = self.body.clone();
-
- if styles.get(TargetElem::target).is_html() {
- return Ok(HtmlElem::new(tag::sup)
- .with_body(Some(body))
- .pack()
- .spanned(self.span()));
- }
-
- show_script(
- styles,
- body,
- self.typographic.get(styles),
- self.baseline.get(styles),
- self.size.get(styles),
- ScriptKind::Super,
- )
- }
-}
-
-fn show_script(
- styles: StyleChain,
- body: Content,
- typographic: bool,
- baseline: Smart<Length>,
- size: Smart<TextSize>,
- kind: ScriptKind,
-) -> SourceResult<Content> {
- let font_size = styles.resolve(TextElem::size);
- Ok(body.set(
- TextElem::shift_settings,
- Some(ShiftSettings {
- typographic,
- shift: baseline.map(|l| -Em::from_length(l, font_size)),
- size: size.map(|t| Em::from_length(t.0, font_size)),
- kind,
- }),
- ))
-}
-
/// Configuration values for sub- or superscript text.
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
pub struct ShiftSettings {