|
|
# Decker Project Structure
|
|
|
|
|
|
This page gives a quick overview over the structure of the Decker repository.
|
|
|
|
|
|
Standard files such as `makefile` or `Dockerfile` are not expanded upon here.
|
|
|
|
|
|
## Haskell Setup Files
|
|
|
|
|
|
Decker is a project using the [Haskell Tool Stack](https://docs.haskellstack.org/en/stable/README/) as build tool.
|
|
|
|
|
|
For more detailed information regarding the files listed below please check Stack's documentation.
|
|
|
|
|
|
Files that are needed by stack:
|
|
|
|
|
|
- `Setup.hs`: This file is mainly used to zip and append the `resource` directory to the executable during `Stack` runtime i.e. when Decker is being compiled.
|
|
|
- `package.yaml`: The file describing the project to `Stack`. Lists the project structure and the needed dependencies
|
|
|
-``stack.yaml`: Telling `Stack` which compiler flags to use and which version of the stack "resolver"
|
|
|
|
|
|
## Files that are used by editor extensions but otherwise irrelevant
|
|
|
|
|
|
- hie.yaml
|
|
|
- brittany.yaml
|
|
|
- floskell.yaml
|
|
|
|
|
|
## app
|
|
|
|
|
|
Contains only the file `Decker.hs` which is the `main` Haskell file describing the behavior of the application `Decker`.
|
|
|
|
|
|
## attic
|
|
|
|
|
|
Outdated/obsolete files that might become relevant again at some point in time.
|
|
|
|
|
|
## bin
|
|
|
|
|
|
- `build.ps1`: The main build file for the Windows executable. (see also `makefile`)
|
|
|
- `check-formatting.sh`: An outdated file checking the formatting of the Haskell code
|
|
|
|
|
|
## doc
|
|
|
|
|
|
Internal discussions and documentation of development plans/goals
|
|
|
|
|
|
## resource
|
|
|
|
|
|
The resources needed by decker at runtime. This directory gets zipped and appended to the `Decker` executable.
|
|
|
|
|
|
- `example`: A decker example project
|
|
|
- `support`: Files needed by Decker at presentation time. Includes `CSS` and `JavaScript` files as well as fonts.
|
|
|
- `template`: Template files needed by Decker at runtime e.g. when building the HTML files from Markdown
|
|
|
|
|
|
|
|
|
## src
|
|
|
|
|
|
The main Haskell source code directory.
|
|
|
|
|
|
TODO: Detailed breakdown of the source code?
|
|
|
|
|
|
## `src-unix` and `src-win`
|
|
|
|
|
|
Haskell code specific to the respective operating system.
|
|
|
|
|
|
## test
|
|
|
|
|
|
Includes Haskell test code as well as several slide decks showcasing Decker features.
|
|
|
|
|
|
Decker uses the [`Hspec` testing framework for Haskell](https://hspec.github.io/). `Spec.hs` is the main source file.
|
|
|
|
|
|
## third-party
|
|
|
|
|
|
Third-party submodules used by decker.
|
|
|
|
|
|
- `symlinks.mk`: Prepares/builds and copies third-party software to `resource/support/vendor`. Is called by `makefile``
|
|
|
- `vendor.ps1`: A PowerShell script analogous to `symlinks.mk`. Called by `bin/build.ps1`
|
|
|
|
|
|
## users-guide
|
|
|
|
|
|
A WIP guide for Decker that can be built as `pdf` and/or `html` file using the `makefile` which calls `pandoc`.
|
|
|
|
|
|
```
|
|
|
.
|
|
|
├── app
|
|
|
│ └── Decker.hs
|
|
|
├── attic
|
|
|
│ ├── Cache.hs
|
|
|
│ ├── Dachdecker.hs
|
|
|
│ └── help-page.md
|
|
|
├── bin
|
|
|
│ ├── build.ps1
|
|
|
│ └── check-formatting.sh
|
|
|
├── doc
|
|
|
│ ├── electron-decker-ui.png
|
|
|
│ ├── future-world.md
|
|
|
│ ├── gui-architecture-page.md
|
|
|
│ ├── haskell-resources-page.md
|
|
|
│ ├── media-filter-report-page.md
|
|
|
│ ├── media-filtering-workshop-2020-02.md
|
|
|
│ ├── packaging-page.md
|
|
|
│ ├── quiz-page.md
|
|
|
│ ├── readme.md
|
|
|
│ ├── release-policy-page.md
|
|
|
│ ├── resource-handling-page.md
|
|
|
│ └── smart-image-urls-page.md
|
|
|
├── resource
|
|
|
│ ├── example
|
|
|
│ ├── support
|
|
|
│ ├── template
|
|
|
│ └── tutorial
|
|
|
├── src
|
|
|
│ └── Text
|
|
|
├── src-unix
|
|
|
│ └── System
|
|
|
├── src-win
|
|
|
│ └── System
|
|
|
├── test
|
|
|
│ ├── decks
|
|
|
│ ├── minimal
|
|
|
│ ├── static
|
|
|
│ ├── IncludeTests.hs
|
|
|
│ ├── MediaTests.hs
|
|
|
│ ├── MetaTests.hs
|
|
|
│ ├── ShortLinkTests.hs
|
|
|
│ ├── Spec.hs
|
|
|
│ ├── WatchTests.hs
|
|
|
│ ├── minimal.zip
|
|
|
│ └── reload.html
|
|
|
├── third-party
|
|
|
│ ├── Font-Awesome
|
|
|
│ ├── MathJax
|
|
|
│ ├── jquery
|
|
|
│ ├── reveal.js
|
|
|
│ ├── thebelab
|
|
|
│ ├── vanilla-lazyload
|
|
|
│ ├── water.css
|
|
|
│ ├── symlinks.mk
|
|
|
│ └── vendor.ps1
|
|
|
├── users-guide
|
|
|
│ ├── decker-d-gray.svg
|
|
|
│ ├── decker-users-guide.css
|
|
|
│ ├── decker-users-guide.html
|
|
|
│ ├── decker-users-guide.md
|
|
|
│ ├── decker-users-guide.pdf
|
|
|
│ └── makefile
|
|
|
├── Dockerfile
|
|
|
├── Dockerfile-prebuilt
|
|
|
├── LICENSE
|
|
|
├── Setup.hs
|
|
|
├── brittany.yaml
|
|
|
├── decker.yaml
|
|
|
├── floskell.json
|
|
|
├── hie.yaml
|
|
|
├── makefile
|
|
|
├── package.yaml
|
|
|
├── readme.md
|
|
|
├── stack.yaml
|
|
|
``` |
|
|
\ No newline at end of file |