Expand "Try dhall" into `dhall-lang.org` home page (#747)

This expands the "Try dhall" page to serve as a functional home page for
"dhall-lang.org" in the short term by making the following changes:

* Adding a navigation bar to the top that links to useful resources and
  official integrations
* Adding a quick summary explaining what Dhall is
This commit is contained in:
Gabriel Gonzalez 2018-12-10 12:28:19 -08:00 committed by GitHub
parent a95acd5b2a
commit d7d8139d39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 285 additions and 17 deletions

View File

@ -14,6 +14,18 @@ the following packages:
Navigate to each package's directory for their respective `README`s
## Pre-built binaries
You can download pre-built binaries for Windows and Linux on the release page:
* [`dhall-haskell` - Releases](https://github.com/dhall-lang/dhall-haskell/releases)
For OS X, use `brew` to install the desired package. For example:
```
$ brew install dhall-json
```
## Building from source
### [cabal](https://www.haskell.org/cabal)

View File

@ -1,5 +1,11 @@
# `dhall-bash 1.0.17`
For installation or development instructions, see:
* [`dhall-haskell` - `README`](https://github.com/dhall-lang/dhall-haskell/blob/master/README.md)
## Introduction
This `dhall-bash` package provides a Dhall to Bash compiler so that you can
easily marshall Dhall values into your Bash scripts

View File

@ -1,5 +1,11 @@
# `dhall-json 1.2.5`
For installation or development instructions, see:
* [`dhall-haskell` - `README`](https://github.com/dhall-lang/dhall-haskell/blob/master/README.md)
## Introduction
This `dhall-json` package provides a Dhall to JSON compiler and a Dhall to YAML
compiler. The reason this package is called `dhall-json` is that the Haskell
`yaml` library uses the same data structure as Haskell's `aeson` library for

View File

@ -1,5 +1,11 @@
# `dhall-text 1.0.14`
For installation or development instructions, see:
* [`dhall-haskell` - `README`](https://github.com/dhall-lang/dhall-haskell/blob/master/README.md)
## Introduction
This `dhall-text` package provides a `dhall-to-text` executable which you can
use to template text using the Dhall configuration language.

View File

@ -34,17 +34,121 @@
.nav-link {
outline: 0;
}
.navbar span {
margin-left: 7px;
}
.navbar {
margin-bottom: 20px;
};
</style>
<link rel="stylesheet" href="./css/codemirror.css">
<link rel="stylesheet" href="./css/bootstrap.min.css">
<script language="javascript" src="./js/jquery.min.js"></script>
<script language="javascript" src="./js/bootstrap.min.js"></script>
<script language="javascript" src="./js/codemirror.js"></script>
<script language="javascript" src="./js/haskell.js"></script>
<script language="javascript" src="./js/javascript.js"></script>
</head>
<body>
<a href="https://dhall-lang.org"><img src="./img/dhall-logo.png" height="50px"></a>
<h1 id="title">Try the Dhall configuration language</h1>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-left" href="https://dhall-lang.org"><img src="./img/dhall-small-logo.png" height="31px"></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav ml-auto">
<li class="divider"></li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="discussionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Discussion
</a>
<div class="dropdown-menu" aria-labelledby="discussionDropdown">
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/wiki/Programmable-configuration-files">Programmable configuration files</a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/wiki/Core-language-features">Core language features</a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/wiki/Safety-guarantees">Safety guarantees</a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/wiki/Dhall-in-production">Dhall in production</a>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="tutorialDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Tutorial
</a>
<div class="dropdown-menu" aria-labelledby="tutorialDropdown">
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/wiki/Getting-started%3A-Generate-JSON-or-YAML">Getting started: Generate JSON or YAML</a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-nethack"><code>dhall-nethack</code></a>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="howtoDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
How-to guides
</a>
<div class="dropdown-menu" aria-labelledby="howtoDropdown">
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/wiki/Cheatsheet">Cheatsheet</a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/wiki/Frequently-Asked-Questions-%28FAQ%29">Frequently Asked Questions (FAQ)</a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/wiki/https://github.com/dhall-lang/dhall-lang/wiki/How-to-translate-recursive-code-to-Dhall">How to translate recursive code to Dhall</a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/wiki/How-to-add-a-new-built-in-function">How to add a new built-in function</a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/wiki/How-to-type-check-and-normalize-incomplete-code">How to type-check and normalize incomplete code</a>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="referencesDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
References
</a>
<div class="dropdown-menu" aria-labelledby="referencesDropdown">
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf">Grammar</a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/blob/master/standard/semantics.md">Semantics</a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/wiki/Built-in-types%2C-functions%2C-and-operators">Semantics</a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://prelude.dhall-lang.org/">Prelude</a>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="integrationsDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Integrations
</a>
<div class="dropdown-menu" aria-labelledby="integrationsDropdown">
<a class="nav-link" href="https://github.com/dhall-lang/dhall-haskell/blob/master/dhall-json/README.md"><img src = "./img/yaml-logo.png" height="20px"><span>YAML</span></a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-haskell/blob/master/dhall-json/README.md"><img src = "./img/json-logo.svg" height="32px"><span>JSON</span></a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-kubernetes/blob/master/README.md"><img src = "./img/kubernetes-logo.png" height="32px"><span>Kubernetes</span></a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-haskell/blob/master/dhall-bash/README.md"><img src = "./img/bash-logo.png" height="32px"><span>Bash</span></a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/f-f/dhall-clj/blob/master/README.md"><img src = "./img/clojure-logo.svg" height="32px"><span>Clojure</span></a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-haskell/blob/master/dhall/README.md"><img src = "./img/haskell-logo.png" height="32px"><span>Haskell</span></a>
<div class="dropdown-divider"></div>
<a class="nav-link" href="https://github.com/dhall-lang/dhall-nix/blob/master/README.md"><img src = "./img/nix-logo.png" height="32px"><span>Nix</span></a>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="https://github.com/dhall-lang/dhall-lang/blob/master/README.md"><img src = "./img/github-logo.png" height="25px"></a>
</li>
<li class="nav-item">
<a class="nav-link" href="https://twitter.com/dhall_lang"><img src = "./img/twitter-logo.png" height="32px"></a>
</li>
<li class="nav-item">
<a class="nav-link" href="https://stackoverflow.com/questions/tagged/dhall"><img src = "./img/stack-overflow-logo.png" height="32px"></a>
</li>
</ul>
</div>
</nav>
<img class="mx-auto" style="display: block; width: 400px;" src="./img/dhall-large-logo.png">
<p class="text-center"><b>Dhall ≈ JSON + Functions + Types + Imports</b></p>
<div id="editor">
<div id="input-pane">
<ul class="nav nav-tabs example-tab">
@ -78,6 +182,7 @@
<textarea id="dhall-output"></textarea>
</div>
</div>
<p class="text-center">This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p>
</body>
<script>
var dhallInput = document.getElementById("dhall-input");

View File

@ -1,5 +1,11 @@
# `dhall 1.19.1`
For installation or development instructions, see:
* [`dhall-haskell` - `README`](https://github.com/dhall-lang/dhall-haskell/blob/master/README.md)
## Introduction
Dhall is a programmable configuration language that is not Turing-complete
You can think of Dhall as: JSON + functions + types + imports

19
nix/githubLogo.nix Normal file
View File

@ -0,0 +1,19 @@
{ stdenv, fetchurl, unzip }:
stdenv.mkDerivation rec {
name = "github-logo";
src = fetchurl {
url = "https://github-media-downloads.s3.amazonaws.com/GitHub-Mark.zip";
sha256 = "11znjcl0kwvws0wk600hlhq5z0mp7a0234zwryn20x6ib8qqb9v9";
};
buildInputs = [ unzip ];
dontBuild = true;
installPhase = ''
mkdir $out
cp -r * $out/
'';
}

View File

@ -15,14 +15,72 @@ let
builtins.listToAttrs (map toNameValue names);
overlayShared = pkgsNew: pkgsOld: {
twitterBootstrap = pkgsNew.callPackage ./twitterBootstrap.nix { };
logo = {
bash =
pkgsNew.fetchurl {
url = "https://raw.githubusercontent.com/odb/official-bash-logo/master/assets/Logos/Icons/PNG/128x128.png";
sha256 = "0fybbp6hbqrfw80fbk55bnykzda0m7x4vk38i80bjlmfbrkfvild";
};
dhall-logo =
pkgsNew.fetchurl {
url = "https://raw.githubusercontent.com/dhall-lang/dhall-lang/8bab26f9515cc1007025e0ab4b4e7dd6e95a7103/img/dhall-logo.png";
clojure =
pkgsNew.fetchurl {
url = "https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg";
sha256 = "0mrjzv690g9mxljzxsvay8asyr8vlxhhs9smmax7mp3psd49b43g";
};
sha256 = "0j6sfvm4kxqb2m6s1sv9qag7m30cibaxpphprhaibp9s9shpra4p";
};
dhallLarge =
pkgsNew.fetchurl {
url = "https://raw.githubusercontent.com/dhall-lang/dhall-lang/8bab26f9515cc1007025e0ab4b4e7dd6e95a7103/img/dhall-logo.png";
sha256 = "0j6sfvm4kxqb2m6s1sv9qag7m30cibaxpphprhaibp9s9shpra4p";
};
dhallSmall =
pkgsNew.fetchurl {
url = "https://raw.githubusercontent.com/dhall-lang/dhall-lang/8bab26f9515cc1007025e0ab4b4e7dd6e95a7103/img/dhall-icon.png";
sha256 = "1lly3yb5szl9n3hszsfzv2mil98cvlidrzyci7vs4wi461s9bhxi";
};
github = pkgsNew.callPackage ./githubLogo.nix { };
haskell =
pkgsNew.fetchurl {
url = "https://wiki.haskell.org/wikiupload/4/4a/HaskellLogoStyPreview-1.png";
sha256 = "0g26j7vx34m46mwp93qgg3q5x8pfdq2j1ch0vxz5gj0nk3b8fxda";
};
kubernetes =
pkgsNew.fetchurl {
url = "https://raw.githubusercontent.com/kubernetes/kubernetes/7839fe38620508eb0651930cb0e1acb8ea367842/logo/logo.svg";
sha256 = "0kp6idffg9k52ycgv5zkg9n08pfldzsy0fzhwsrb2f7cvrl6fpw4";
};
nix =
pkgsNew.fetchurl {
url = "https://nixos.org/logo/nix-wiki.png";
sha256 = "1hrz7wr7i0b2bips60ygacbkmdzv466lsbxi22hycg42kv4m0173";
};
json =
pkgsNew.fetchurl {
url = "https://upload.wikimedia.org/wikipedia/commons/c/c9/JSON_vector_logo.svg";
sha256 = "1hqd1qh35v9magjp3rbsw8wszk2wn3hkz981ir49z5cyf11jnx95";
};
stackOverflow =
pkgsNew.fetchurl {
url = "https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.svg";
sha256 = "0i84h23ax197f3hwh0hqm6yjvvnpcjyhd6nkyy33z6x10dh8v4z3";
};
twitter = pkgsNew.callPackage ./twitterLogo.nix { };
yaml =
pkgsNew.fetchurl {
url = "https://raw.githubusercontent.com/yaml/yaml-spec/a6f764e13de58d5f753877f588a01b35dc9a5168/logo.png";
sha256 = "12grgaxpqi755p2rnvw3x02zc69brpnzx208id1f0z42w387j4hi";
};
};
dhall-sdist =
let
@ -130,13 +188,21 @@ let
{ };
dhall-try =
haskellPackagesNew.callCabal2nix
"dhall-try"
(builtins.filterSource
(path: _: baseNameOf path != "index.html")
../dhall-try
pkgsNew.haskell.lib.overrideCabal
(haskellPackagesNew.callCabal2nix
"dhall-try"
(builtins.filterSource
(path: _: baseNameOf path != "index.html")
../dhall-try
)
{ }
)
{ };
(old: {
postInstall = (old.postInstall or "") + ''
${pkgsNew.closurecompiler}/bin/closure-compiler $out/bin/dhall-try.jsexe/all.js --jscomp_off=checkVars --externs=$out/bin/dhall-try.jsexe/all.js.externs > $out/bin/dhall-try.jsexe/all.min.js
'';
}
);
};
in
@ -155,10 +221,19 @@ let
npm = pkgsNew.callPackage ./npm { };
jQuery =
pkgsNew.fetchurl {
url = "https://code.jquery.com/jquery-3.3.1.min.js";
sha256 = "1vq2bp290rhby5l09dv5khqwv3ysnzbddggbgk6m4hl9y9pl42hn";
};
twitterBootstrap = pkgsNew.callPackage ./twitterBootstrap.nix { };
try-dhall-static = pkgsNew.runCommand "try-dhall-static" {} ''
${pkgsNew.coreutils}/bin/mkdir $out
${pkgsNew.coreutils}/bin/mkdir $out/{css,img,js}
${pkgsNew.coreutils}/bin/cp ${../dhall-try/index.html} $out/index.html
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.jQuery} $out/js/jquery.min.js
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.twitterBootstrap}/js/bootstrap.min.js $out/js
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.twitterBootstrap}/js/bootstrap.min.js.map $out/js
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.twitterBootstrap}/css/bootstrap.min.css $out/css
@ -166,9 +241,20 @@ let
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.npm.codemirror}/lib/node_modules/codemirror/mode/haskell/haskell.js $out/js
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.npm.codemirror}/lib/node_modules/codemirror/mode/javascript/javascript.js $out/js
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.npm.codemirror}/lib/node_modules/codemirror/lib/codemirror.css $out/css
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.dhall-logo} $out/img/dhall-logo.png
${pkgsNew.closurecompiler}/bin/closure-compiler ${pkgsNew.haskell.packages.ghcjs.dhall-try}/bin/dhall-try.jsexe/all.js --jscomp_off=checkVars --externs=${pkgsNew.haskell.packages.ghcjs.dhall-try}/bin/dhall-try.jsexe/all.js.externs > $out/js/all.min.js
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.haskell.packages.ghcjs.dhall-try}/bin/dhall-try.jsexe/all.min.js $out/js
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.dhall.prelude} $out/Prelude
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.logo.bash} $out/img/bash-logo.png
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.logo.clojure} $out/img/clojure-logo.svg
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.logo.dhallLarge} $out/img/dhall-large-logo.png
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.logo.dhallSmall} $out/img/dhall-small-logo.png
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.logo.github}/PNG/GitHub-Mark-32px.png $out/img/github-logo.png
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.logo.haskell} $out/img/haskell-logo.png
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.logo.kubernetes} $out/img/kubernetes-logo.png
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.logo.json} $out/img/json-logo.svg
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.logo.nix} $out/img/nix-logo.png
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.logo.stackOverflow} $out/img/stack-overflow-logo.png
${pkgsNew.coreutils}/bin/ln --symbolic '${pkgsNew.logo.twitter}/Twitter Logos/Twitter Logos/Twitter_Logo_Blue/Twitter_Logo_Blue.svg' $out/img/twitter-logo.png
${pkgsNew.coreutils}/bin/ln --symbolic ${pkgsNew.logo.yaml} $out/img/yaml-logo.png
${pkgsNew.coreutils}/bin/mkdir $out/nix-support
${pkgsNew.coreutils}/bin/echo "doc none $out/index.html" > $out/nix-support/hydra-build-products
'';

22
nix/twitterLogo.nix Normal file
View File

@ -0,0 +1,22 @@
{ stdenv, fetchurl, unzip }:
stdenv.mkDerivation rec {
name = "twitter-logo";
src = fetchurl {
name = "twitter-logos.zip";
url = "https://about.twitter.com/content/dam/about-twitter/company/brand-resources/en_us/Twitter%20Logos.zip";
sha256 = "1dhqmj3krhak10yrq0zm89ld40a32ndrfnl6ligaaphf5dkff5m6";
};
sourceRoot = ".";
buildInputs = [ unzip ];
dontBuild = true;
installPhase = ''
mkdir $out
cp -r * $out/
'';
}