Update Decker Project Structure authored by Armin Bernstetter's avatar Armin Bernstetter
# Decker Project Structure
This page gives a quick overview over the structure of the Decker repository. 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. Standard files such as `makefile` or `Dockerfile` are not expanded upon here.
...@@ -18,28 +16,28 @@ Files that are needed by stack: ...@@ -18,28 +16,28 @@ Files that are needed by stack:
## Files that are used by editor extensions but otherwise irrelevant ## Files that are used by editor extensions but otherwise irrelevant
- hie.yaml - `hie.yaml`
- brittany.yaml - `brittany.yaml`
- floskell.yaml - `floskell.yaml`
## app ## `app`
Contains only the file `Decker.hs` which is the `main` Haskell file describing the behavior of the application `Decker`. Contains only the file `Decker.hs` which is the `main` Haskell file describing the behavior of the application `Decker`.
## attic ## `attic`
Outdated/obsolete files that might become relevant again at some point in time. Outdated/obsolete files that might become relevant again at some point in time.
## bin ## `bin`
- `build.ps1`: The main build file for the Windows executable. (see also `makefile`) - `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 - `check-formatting.sh`: An outdated file checking the formatting of the Haskell code
## doc ## `doc`
Internal discussions and documentation of development plans/goals Internal discussions and documentation of development plans/goals
## resource ## `resource`
The resources needed by decker at runtime. This directory gets zipped and appended to the `Decker` executable. The resources needed by decker at runtime. This directory gets zipped and appended to the `Decker` executable.
...@@ -48,7 +46,7 @@ The resources needed by decker at runtime. This directory gets zipped and append ...@@ -48,7 +46,7 @@ The resources needed by decker at runtime. This directory gets zipped and append
- `template`: Template files needed by Decker at runtime e.g. when building the HTML files from Markdown - `template`: Template files needed by Decker at runtime e.g. when building the HTML files from Markdown
## src ## `src`
The main Haskell source code directory. The main Haskell source code directory.
...@@ -58,97 +56,19 @@ TODO: Detailed breakdown of the source code? ...@@ -58,97 +56,19 @@ TODO: Detailed breakdown of the source code?
Haskell code specific to the respective operating system. Haskell code specific to the respective operating system.
## test ## `test`
Includes Haskell test code as well as several slide decks showcasing Decker features. 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. Decker uses the [`Hspec` testing framework for Haskell](https://hspec.github.io/). `Spec.hs` is the main source file.
## third-party ## `third-party`
Third-party submodules used by decker. Third-party submodules used by decker.
- `symlinks.mk`: Prepares/builds and copies third-party software to `resource/support/vendor`. Is called by `makefile`` - `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` - `vendor.ps1`: A PowerShell script analogous to `symlinks.mk`. Called by `bin/build.ps1`
## users-guide ## `users-guide`
A WIP guide for Decker that can be built as `pdf` and/or `html` file using the `makefile` which calls `pandoc`. A WIP guide for Decker that can be built as `pdf` and/or `html` file using the `makefile` which calls `pandoc`.
\ No newline at end of file
```
.
├── 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