{-# LANGUAGE PostfixOperators #-}
module Drasil.Website.Introduction where
import Language.Drasil
introSec :: Reference -> Reference -> Reference -> Reference -> Reference -> Section
introSec :: Reference
-> Reference -> Reference -> Reference -> Reference -> Section
introSec csRef :: Reference
csRef docRef :: Reference
docRef analysisSecRef :: Reference
analysisSecRef repoRef :: Reference
repoRef wikiRef :: Reference
wikiRef =
Sentence -> [Contents] -> [Section] -> Reference -> Section
section (String -> Sentence
S "Introduction")
((Sentence -> Contents) -> [Sentence] -> [Contents]
forall a b. (a -> b) -> [a] -> [b]
map Sentence -> Contents
mkParagraph [Reference -> Reference -> Sentence
introParagraph1 Reference
repoRef Reference
wikiRef, Reference -> Reference -> Reference -> Sentence
introParagraph2 Reference
csRef Reference
docRef Reference
analysisSecRef])
[] (Reference -> Section) -> Reference -> Section
forall a b. (a -> b) -> a -> b
$ String -> Sentence -> Reference
makeSecRef "Introduction" (Sentence -> Reference) -> Sentence -> Reference
forall a b. (a -> b) -> a -> b
$ String -> Sentence
S "Introduction"
introParagraph1 :: Reference -> Reference -> Sentence
introParagraph1 :: Reference -> Reference -> Sentence
introParagraph1 repoRef :: Reference
repoRef wikiRef :: Reference
wikiRef = String -> Sentence
S "Drasil is a framework for generating all of the software artifacts from a stable knowledge base, \
\focusing currently on scientific software. The main goals are to reduce knowledge duplication and \
\improve traceability. The artifacts are generated from a common knowledge-base using recipes \
\written in a Domain-Specific Language (DSL). These recipes allow us to specify which pieces of \
\knowledge should be used in which artifacts, how to transform them, and more. For more information on the design, documentation, \
\useage, and specifics of Drasil, please visit the" Sentence -> Sentence -> Sentence
+:+ Reference -> Sentence -> Sentence
forall r.
(HasUID r, HasRefAddress r, HasShortName r) =>
r -> Sentence -> Sentence
namedRef Reference
repoRef (String -> Sentence
S "GitHub repository") Sentence -> Sentence -> Sentence
+:+ String -> Sentence
S "or the" Sentence -> Sentence -> Sentence
+:+ (Reference -> Sentence -> Sentence
forall r.
(HasUID r, HasRefAddress r, HasShortName r) =>
r -> Sentence -> Sentence
namedRef Reference
wikiRef (String -> Sentence
S "GitHub Wiki") Sentence -> Sentence
!.)
introParagraph2 :: Reference -> Reference -> Reference -> Sentence
introParagraph2 :: Reference -> Reference -> Reference -> Sentence
introParagraph2 caseStudySecRef :: Reference
caseStudySecRef docsRef :: Reference
docsRef analysisSecRef :: Reference
analysisSecRef = String -> Sentence
S "This webpage is designed to contain the most up to date" Sentence -> Sentence -> Sentence
+:+
SepType -> FoldType -> [Sentence] -> Sentence
foldlList SepType
Comma FoldType
List ((Reference -> String -> Sentence)
-> [Reference] -> [String] -> [Sentence]
forall a b c. (a -> b -> c) -> [a] -> [b] -> [c]
zipWith (\x :: Reference
x y :: String
y -> Reference -> Sentence -> Sentence
forall r.
(HasUID r, HasRefAddress r, HasShortName r) =>
r -> Sentence -> Sentence
namedRef Reference
x (String -> Sentence
S String
y)) [Reference
caseStudySecRef, Reference
docsRef, Reference
analysisSecRef] ["case study artifacts", "Haddock documentation", "Drasil analysis"])
Sentence -> Sentence -> Sentence
+:+ String -> Sentence
S "from the Drasil repository. \
\The case study artifacts include the Software Requirements Specification (SRS) for each case study, \
\which specifies what the program sets out to achieve. \
\The Haddock Documentation section contains the current documentation for the Drasil framework. \
\The package dependency graphs shows the hierarchy of modules within each package."