From 1d5bf56e585c659ed7975cdf6cdfc9c67c29998d Mon Sep 17 00:00:00 2001 From: Laurenz Date: Tue, 7 Feb 2023 12:10:52 +0100 Subject: [PATCH] Remove basics section --- docs/src/lib.rs | 3 +-- docs/src/reference/details.yml | 29 +++++++++++-------------- library/src/basics/mod.rs | 14 ------------ library/src/{basics => layout}/enum.rs | 2 +- library/src/{basics => layout}/list.rs | 2 +- library/src/layout/mod.rs | 10 ++++++++- library/src/{basics => layout}/table.rs | 2 +- library/src/{basics => layout}/terms.rs | 2 +- library/src/lib.rs | 17 ++++++--------- library/src/{basics => meta}/heading.rs | 2 +- library/src/meta/mod.rs | 6 +++-- library/src/meta/outline.rs | 2 +- 12 files changed, 40 insertions(+), 51 deletions(-) delete mode 100644 library/src/basics/mod.rs rename library/src/{basics => layout}/enum.rs (99%) rename library/src/{basics => layout}/list.rs (99%) rename library/src/{basics => layout}/table.rs (99%) rename library/src/{basics => layout}/terms.rs (99%) rename library/src/{basics => meta}/heading.rs (99%) diff --git a/docs/src/lib.rs b/docs/src/lib.rs index 6cb4a89c5..620aaaaaf 100644 --- a/docs/src/lib.rs +++ b/docs/src/lib.rs @@ -126,8 +126,7 @@ fn reference_page(resolver: &dyn Resolver) -> PageModel { markdown_page(resolver, "/docs/reference/", "reference/styling.md"), markdown_page(resolver, "/docs/reference/", "reference/scripting.md"), types_page(resolver, "/docs/reference/"), - category_page(resolver, "basics").with_part("Content"), - category_page(resolver, "text"), + category_page(resolver, "text").with_part("Content"), category_page(resolver, "math"), category_page(resolver, "layout"), category_page(resolver, "visualize"), diff --git a/docs/src/reference/details.yml b/docs/src/reference/details.yml index a53330f8a..5d7ddfd17 100644 --- a/docs/src/reference/details.yml +++ b/docs/src/reference/details.yml @@ -12,11 +12,8 @@ types: | In some places of Typst more specialized data types are used. Instead of listing all of them here, they are explained where they are relevant. -basics: | - Basic structural elements of documents. - text: | - Style and transform your text. + Text styling. The [text function]($func/text) is of particular interest. @@ -87,21 +84,21 @@ math: | affected by these rules. layout: | - Arrange elements on the page. + Arranging elements on the page in different ways. - Combine layout functions to create complex and automatic layouts. + By combining layout functions, you can create complex and automatic layouts. visualize: | - Draw and visualize data. + Drawing and data visualization. _Note:_ Functions for plotting and diagrams are not yet available. They will be in the future. meta: | - Modify and use document metadata. + Document structuring and metadata setup. - Here, you can also find functions to work with other elements in the document, - such as labels and headings. + Here, you can find functions to structure your document and configure its + metadata. symbols: | These two modules give names to symbols and emoji to make them easy to insert @@ -111,34 +108,34 @@ symbols: | because they also affect spacing and font style. sym: | - Insert general symbols by name. + Named general symbols. For example, `#sym.arrow` produces the → symbol. Within [formulas]($category/math), these symbols can be used without the `#sym.` prefix. emoji: | - Insert emoji by name. + Named emoji. For example, `#emoji.face` produces the 😀 emoji. If you frequently use certain emojis, you can also import them from the `emoji` module (`[#import emoji: face]`) to use them without the `#emoji.` prefix. foundations: | - Foundational functions. + Foundational functions for computation. calculate: | - Calculate with and process numeric values. + Calculations and processing of numeric values. These functions are part of the `calc` module and not imported by default. In addition to the functions listed below, the `calc` module also defines the constants `pi`, `e`, `inf`, and `nan`. construct: | - Construct and convert between values of different types. + Construction of and conversions between values of different types. data-loading: | - Load data from external files. + Data loading from external files. These functions help you with embedding data from experiments and APIs in your documents. diff --git a/library/src/basics/mod.rs b/library/src/basics/mod.rs deleted file mode 100644 index 7520c42d9..000000000 --- a/library/src/basics/mod.rs +++ /dev/null @@ -1,14 +0,0 @@ -//! Common document elements. - -#[path = "enum.rs"] -mod enum_; -mod heading; -mod list; -mod table; -mod terms; - -pub use self::enum_::*; -pub use self::heading::*; -pub use self::list::*; -pub use self::table::*; -pub use self::terms::*; diff --git a/library/src/basics/enum.rs b/library/src/layout/enum.rs similarity index 99% rename from library/src/basics/enum.rs rename to library/src/layout/enum.rs index 2bff7133e..b1b186801 100644 --- a/library/src/basics/enum.rs +++ b/library/src/layout/enum.rs @@ -80,7 +80,7 @@ use crate::prelude::*; /// ``` /// /// ## Category -/// basics +/// layout #[func] #[capable(Layout)] #[derive(Debug, Hash)] diff --git a/library/src/basics/list.rs b/library/src/layout/list.rs similarity index 99% rename from library/src/basics/list.rs rename to library/src/layout/list.rs index 4b9fdafbb..8bdbe7378 100644 --- a/library/src/basics/list.rs +++ b/library/src/layout/list.rs @@ -63,7 +63,7 @@ use crate::text::TextNode; /// ``` /// /// ## Category -/// basics +/// layout #[func] #[capable(Layout)] #[derive(Debug, Hash)] diff --git a/library/src/layout/mod.rs b/library/src/layout/mod.rs index d3a9370b9..ab5ebaf8d 100644 --- a/library/src/layout/mod.rs +++ b/library/src/layout/mod.rs @@ -3,9 +3,12 @@ mod align; mod columns; mod container; +#[path = "enum.rs"] +mod enum_; mod flow; mod grid; mod hide; +mod list; mod pad; mod page; mod par; @@ -13,14 +16,18 @@ mod place; mod repeat; mod spacing; mod stack; +mod table; +mod terms; mod transform; pub use self::align::*; pub use self::columns::*; pub use self::container::*; +pub use self::enum_::*; pub use self::flow::*; pub use self::grid::*; pub use self::hide::*; +pub use self::list::*; pub use self::pad::*; pub use self::page::*; pub use self::par::*; @@ -28,6 +35,8 @@ pub use self::place::*; pub use self::repeat::*; pub use self::spacing::*; pub use self::stack::*; +pub use self::table::*; +pub use self::terms::*; pub use self::transform::*; use std::mem; @@ -40,7 +49,6 @@ use typst::model::{ StyleVecBuilder, StyledNode, }; -use crate::basics::{EnumNode, ListNode, TermItem, TermsNode}; use crate::math::{FormulaNode, LayoutMath}; use crate::meta::DocumentNode; use crate::prelude::*; diff --git a/library/src/basics/table.rs b/library/src/layout/table.rs similarity index 99% rename from library/src/basics/table.rs rename to library/src/layout/table.rs index 56df2ceaa..12d2455fc 100644 --- a/library/src/basics/table.rs +++ b/library/src/layout/table.rs @@ -57,7 +57,7 @@ use crate::prelude::*; /// See the [grid documentation]($func/grid) for more information on gutters. /// /// ## Category -/// basics +/// layout #[func] #[capable(Layout)] #[derive(Debug, Hash)] diff --git a/library/src/basics/terms.rs b/library/src/layout/terms.rs similarity index 99% rename from library/src/basics/terms.rs rename to library/src/layout/terms.rs index 2e52c87dc..cf214084c 100644 --- a/library/src/basics/terms.rs +++ b/library/src/layout/terms.rs @@ -53,7 +53,7 @@ use crate::text::{SpaceNode, TextNode}; /// ``` /// /// ## Category -/// basics +/// layout #[func] #[capable(Layout)] #[derive(Debug, Hash)] diff --git a/library/src/lib.rs b/library/src/lib.rs index a195c7178..412ebd415 100644 --- a/library/src/lib.rs +++ b/library/src/lib.rs @@ -1,6 +1,5 @@ //! Typst's standard library. -pub mod basics; pub mod compute; pub mod layout; pub mod math; @@ -28,13 +27,6 @@ pub fn build() -> Library { fn global(math: Module, calc: Module) -> Module { let mut global = Scope::deduplicating(); - // Basics. - global.def_func::("heading"); - global.def_func::("list"); - global.def_func::("enum"); - global.def_func::("terms"); - global.def_func::("table"); - // Text. global.def_func::("text"); global.def_func::("linebreak"); @@ -63,6 +55,10 @@ fn global(math: Module, calc: Module) -> Module { global.def_func::("h"); global.def_func::("box"); global.def_func::("block"); + global.def_func::("list"); + global.def_func::("enum"); + global.def_func::("terms"); + global.def_func::("table"); global.def_func::("stack"); global.def_func::("grid"); global.def_func::("columns"); @@ -89,6 +85,7 @@ fn global(math: Module, calc: Module) -> Module { global.def_func::("ref"); global.def_func::("link"); global.def_func::("outline"); + global.def_func::("heading"); // Symbols. global.define("sym", symbols::sym()); @@ -185,11 +182,11 @@ fn items() -> LangItems { }, link: |url| meta::LinkNode::from_url(url).pack(), ref_: |target| meta::RefNode(target).pack(), - heading: |level, body| basics::HeadingNode { level, title: body }.pack(), + heading: |level, body| meta::HeadingNode { level, title: body }.pack(), list_item: |body| layout::ListItem::List(body).pack(), enum_item: |number, body| layout::ListItem::Enum(number, body).pack(), term_item: |term, description| { - layout::ListItem::Term(basics::TermItem { term, description }).pack() + layout::ListItem::Term(layout::TermItem { term, description }).pack() }, formula: |body, block| math::FormulaNode { body, block }.pack(), math_align_point: || math::AlignPointNode.pack(), diff --git a/library/src/basics/heading.rs b/library/src/meta/heading.rs similarity index 99% rename from library/src/basics/heading.rs rename to library/src/meta/heading.rs index 7ae76920b..8da5cd6e4 100644 --- a/library/src/basics/heading.rs +++ b/library/src/meta/heading.rs @@ -47,7 +47,7 @@ use crate::text::{SpaceNode, TextNode, TextSize}; /// The logical nesting depth of the heading, starting from one. /// /// ## Category -/// basics +/// meta #[func] #[capable(Prepare, Show, Finalize)] #[derive(Debug, Hash)] diff --git a/library/src/meta/mod.rs b/library/src/meta/mod.rs index 4612274c1..fd72a8cba 100644 --- a/library/src/meta/mod.rs +++ b/library/src/meta/mod.rs @@ -1,11 +1,13 @@ //! Interaction between document parts. mod document; +mod heading; mod link; -mod reference; mod outline; +mod reference; pub use self::document::*; -pub use self::outline::*; +pub use self::heading::*; pub use self::link::*; +pub use self::outline::*; pub use self::reference::*; diff --git a/library/src/meta/outline.rs b/library/src/meta/outline.rs index 8a8bc57c3..01aa7ee90 100644 --- a/library/src/meta/outline.rs +++ b/library/src/meta/outline.rs @@ -1,4 +1,4 @@ -use crate::basics::HeadingNode; +use super::HeadingNode; use crate::layout::{BlockNode, HNode, HideNode, RepeatNode, Spacing}; use crate::prelude::*; use crate::text::{LinebreakNode, SpaceNode, TextNode};