drasil-website-0.1.0.0: Using the Drasil generators to create Drasil's website
Safe HaskellSafe-Inferred
LanguageHaskell2010

Drasil.Website.Analysis

Description

Contains all the information needed about the structure of the Drasil framework to be displayed on the Drasil website.

Synopsis

Analysis Section

Holds functions that are made for the Analysis section of the Drasil Website, including the section creator functions, title & introduction, and references.

analysisSec :: FilePath -> FilePath -> FilePath -> FilePath -> [String] -> Section Source #

Creates the Analysis of Drasil Section. This section is split into the following sub-sections:

  • Data Table (spreadsheet that contains all the information about classes, types, and instances)
  • Type Graphs (graphs showing type dependencies)
  • Class Instance Graphs (graphs showing the relationships between types and classes, taken from Data Table)
  • Package Dependency Graphs (structure of modules within each drasil- package)

drasilAnalysisTitle :: Sentence Source #

Analysis section title.

analysisIntro :: Sentence Source #

Analysis section introduction.

analysisRefs :: FilePath -> FilePath -> FilePath -> FilePath -> [String] -> [Reference] Source #

Gathers all references used in this file.

Data Table Subsection (Intersections of Types and Classes)

Contains a large spreadsheet of all the types, classes, and class instances in Drasil, as well as the packages in which they are defined or used.

dataTableSec :: FilePath -> Section Source #

Data Table subsection.

dataTableTitle :: Sentence Source #

Data Table subsection title.

dataTableDesc :: FilePath -> Sentence Source #

Data table description. Explains the purpose, organization, and links to a downloadable version.

dataTableHTMLRef :: FilePath -> Reference Source #

HTML table.

Data table references.

dataTableCSVRef :: FilePath -> Reference Source #

Downloadable .csv file.

Data table references.

Table of Graphs Subsection

Generates two tables linked to all the generated dot graphs of Drasil. The first table only shows the relationship between types, while the second table shows the relationship between types and classes.

tableOfGraphsSec :: FilePath -> FilePath -> [String] -> Section Source #

Table of Graphs section. Contains a table for Type dependencies and Class-Instance relations.

tableOfGraphsTitle :: Sentence Source #

Table of Graphs title.

graphTable :: String -> FilePath -> String -> FilePath -> [String] -> [[Sentence]] Source #

Helper to create a graph table based on the kind (either "datatype" or "classInst"), path, and packages.

graphTableEntry :: String -> FilePath -> String -> FilePath -> String -> [Sentence] Source #

Helper to create a row in a graph table. Based on the kind of table we want, the file path to that graph, and the package name.

getGraphsInTableRef :: String -> String -> FilePath -> String -> Reference Source #

Helper to create a reference that points to the graph specified by its kind (either "datatype" or "classInst"), prefix (either an empty string or "circo_"), file path to the graph folder, and package name.

Table of Graphs

tableOfGraphsDescType :: Sentence Source #

Type dependency table description. Includes information about the colour scheme and what the graph actually means.

tableOfGraphsDescClassInst :: Sentence Source #

Class-Instance table description. Includes information about the colour scheme and what the graph actually means.

mkGraphsTable :: FilePath -> FilePath -> [String] -> Contents Source #

Creates a table that links to all generated type and class instance graphs.

tableGraphRef :: Reference Source #

Table of graphs reference.

Dependency Graphs Subsection

Links all the generated module dependency graphs, and gives an example to show what these graphs mean and represent. These graphs show the structure of modules within a given package.

graphSec :: FilePath -> [String] -> Section Source #

Creates the Package Dependency Graphs section.

packDepGraphTitle :: Sentence Source #

Package Dependency Graphs section title.

graphSecIntro :: String Source #

Introduces the package dependency graphs.

dependencyGraphs :: FilePath -> String -> Contents Source #

Function to create displayable versions of the graphs.

drasilDisplayDepGraphPath :: FilePath -> FilePath -> String Source #

Function to get the paths of graphs we want to display on the website.

drasilDepGraphPathsPDF :: FilePath -> [String] -> [String] Source #

Gets all the paths to the pdf graphs from a given list of packages.

drasilDepGraphRefs :: FilePath -> [String] -> [Reference] Source #

Create References to display as links for the dependency graph pdfs.

folderList :: FilePath -> [String] -> RawContent Source #

Create the list of folders with the links to dependency graph pdfs.

folderListItems :: FilePath -> [String] -> [ItemType] Source #

Helper to create the list items for dependency graph pdfs.