module Drasil.Sections.TableOfUnits (tOfUnitDesc, tOfUnitSIName, unitTableRef, tunit, tunit', tunitNone, tuIntro, defaultTUI) where
import Control.Lens ((^.))
import Language.Drasil
import Drasil.Sections.ReferenceMaterial(emptySectSentPlu)
import Data.Drasil.Concepts.Documentation (symbol_, description, tOfUnit)
import Drasil.DocumentLanguage.Core (TUIntro(..), RefTab(..))
import Data.Drasil.Concepts.Math (unit_)
tOfUnitSIName :: IsUnit s => [s] -> LabelledContent
tOfUnitSIName :: forall s. IsUnit s => [s] -> LabelledContent
tOfUnitSIName = forall s. [Sentence] -> [s -> Sentence] -> [s] -> LabelledContent
tOfUnitHelper [forall n. NamedIdea n => n -> Sentence
atStart IdeaDict
symbol_, forall n. NamedIdea n => n -> Sentence
atStart IdeaDict
description, String -> Sentence
S String
"SI Name"]
[USymb -> Sentence
Sy forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall u. HasUnitSymbol u => u -> USymb
usymb, (forall s a. s -> Getting a s a -> a
^. forall c. Definition c => Lens' c Sentence
defn), forall n. NamedIdea n => n -> Sentence
phrase]
tOfUnitDesc :: IsUnit s => [s] -> LabelledContent
tOfUnitDesc :: forall s. IsUnit s => [s] -> LabelledContent
tOfUnitDesc = forall s. [Sentence] -> [s -> Sentence] -> [s] -> LabelledContent
tOfUnitHelper [forall n. NamedIdea n => n -> Sentence
atStart IdeaDict
symbol_, forall n. NamedIdea n => n -> Sentence
atStart IdeaDict
description]
[USymb -> Sentence
Sy forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall u. HasUnitSymbol u => u -> USymb
usymb, \s
x -> (s
x forall s a. s -> Getting a s a -> a
^. forall c. Definition c => Lens' c Sentence
defn) Sentence -> Sentence -> Sentence
+:+ Sentence -> Sentence
sParen (forall n. NamedIdea n => n -> Sentence
phrase s
x)]
tOfUnitNone :: [UnitDefn] -> LabelledContent
tOfUnitNone :: [UnitDefn] -> LabelledContent
tOfUnitNone [] = forall s. [Sentence] -> [s -> Sentence] -> [s] -> LabelledContent
tOfUnitHelper [] [] []
tOfUnitNone [UnitDefn]
_ = forall s. [Sentence] -> [s -> Sentence] -> [s] -> LabelledContent
tOfUnitHelper [] [] []
tOfUnitHelper :: [Sentence] -> [s -> Sentence] -> [s] -> LabelledContent
tOfUnitHelper :: forall s. [Sentence] -> [s -> Sentence] -> [s] -> LabelledContent
tOfUnitHelper [Sentence]
_ [s -> Sentence]
_ [] = Reference -> RawContent -> LabelledContent
llcc Reference
unitTableRef forall a b. (a -> b) -> a -> b
$ Sentence -> RawContent
Paragraph Sentence
EmptyS
tOfUnitHelper [] [s -> Sentence]
_ [s]
_ = Reference -> RawContent -> LabelledContent
llcc Reference
unitTableRef forall a b. (a -> b) -> a -> b
$ Sentence -> RawContent
Paragraph Sentence
EmptyS
tOfUnitHelper [Sentence]
_ [] [s]
_ = Reference -> RawContent -> LabelledContent
llcc Reference
unitTableRef forall a b. (a -> b) -> a -> b
$ Sentence -> RawContent
Paragraph Sentence
EmptyS
tOfUnitHelper [Sentence]
headers [s -> Sentence]
fs [s]
u = Reference -> RawContent -> LabelledContent
llcc Reference
unitTableRef forall a b. (a -> b) -> a -> b
$ [Sentence] -> [[Sentence]] -> Sentence -> Bool -> RawContent
Table [Sentence]
headers
(forall a b. [a -> b] -> [a] -> [[b]]
mkTable [s -> Sentence]
fs [s]
u) (String -> Sentence
S String
"Table of Units") Bool
True
unitTableRef :: Reference
unitTableRef :: Reference
unitTableRef = String -> Reference
makeTabRef String
"ToU"
tunit, tunit', tunitNone :: [TUIntro] -> RefTab
tunit :: [TUIntro] -> RefTab
tunit [TUIntro]
t = [TUIntro] -> ([UnitDefn] -> LabelledContent) -> RefTab
TUnits' [TUIntro]
t forall s. IsUnit s => [s] -> LabelledContent
tOfUnitSIName
tunit' :: [TUIntro] -> RefTab
tunit' [TUIntro]
t = [TUIntro] -> ([UnitDefn] -> LabelledContent) -> RefTab
TUnits' [TUIntro]
t forall s. IsUnit s => [s] -> LabelledContent
tOfUnitDesc
tunitNone :: [TUIntro] -> RefTab
tunitNone [TUIntro]
t = [TUIntro] -> ([UnitDefn] -> LabelledContent) -> RefTab
TUnits' [TUIntro]
t [UnitDefn] -> LabelledContent
tOfUnitNone
tuIntro :: [TUIntro] -> Contents
tuIntro :: [TUIntro] -> Contents
tuIntro [] = Sentence -> Contents
mkParagraph forall a b. (a -> b) -> a -> b
$ forall n. NamedIdea n => [n] -> Sentence
emptySectSentPlu [ConceptChunk
unit_]
tuIntro [TUIntro]
x = Sentence -> Contents
mkParagraph forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
foldr (Sentence -> Sentence -> Sentence
(+:+) forall b c a. (b -> c) -> (a -> b) -> a -> c
. TUIntro -> Sentence
tuI) Sentence
EmptyS [TUIntro]
x
tuI :: TUIntro -> Sentence
tuI :: TUIntro -> Sentence
tuI TUIntro
System =
String -> Sentence
S String
"The unit system used throughout is SI (Système International d'Unités)."
tuI TUIntro
TUPurpose =
String -> Sentence
S String
"For each unit" Sentence -> Sentence -> Sentence
`sC` String -> Sentence
S String
"the" Sentence -> Sentence -> Sentence
+:+ forall r.
(HasUID r, HasRefAddress r, HasShortName r) =>
r -> Sentence -> Sentence
namedRef Reference
unitTableRef (forall n. NamedIdea n => n -> Sentence
titleize' IdeaDict
tOfUnit) Sentence -> Sentence -> Sentence
+:+
String -> Sentence
S String
"lists" Sentence -> Sentence -> Sentence
+:+. SepType -> FoldType -> [Sentence] -> Sentence
foldlList SepType
Comma FoldType
List [String -> Sentence
S String
"the" Sentence -> Sentence -> Sentence
+:+ forall n. NamedIdea n => n -> Sentence
phrase IdeaDict
symbol_,
String -> Sentence
S String
"a" Sentence -> Sentence -> Sentence
+:+ forall n. NamedIdea n => n -> Sentence
phrase IdeaDict
description, String -> Sentence
S String
"the SI name"]
tuI TUIntro
Derived =
String -> Sentence
S String
"In addition to the basic units, several derived units are also used."
defaultTUI :: [TUIntro]
defaultTUI :: [TUIntro]
defaultTUI = [TUIntro
System, TUIntro
Derived, TUIntro
TUPurpose]