Skip to content

Add Hello World blog post #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 10, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions content/blog/hello-world.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
+++
title = "Hello, world!"
description = ""
date = 2022-03-08T18:14:00
updated = 2022-03-08T18:14:00
draft = false # Leave this as true so that it is not published
template = "blog/page.html"

[taxonomies]
authors = ["Public"]

[extra]
lead = "The Haskell Cryptography Group is proud to publicly broadcast its existence to the wider community."
+++

Affiliated with the Haskell Foundation, we are an organisation that provides a support structure for open-source maintainers producing projects wrapping or implementing cryptography.

Cryptography is a sensitive topic in a programming language ecosystem, and the historical model of letting the ecosystem self-regulate in the usual way isn’t appropriate.
This is why, with the support of the Haskell Foundation, we are establishing a group with a clear governance structure and goals to make change for the better in our ecosystem.

We offer support to cryptography projects when we can, providing a space of mutual help and innovation for the projects that are given to us. We also nurture new approaches and designs in cryptography libraries, so that the ecosystem does not suffer from the risks associated with monoculture, whilst maintaining high standards of code quality and security.

If you are interested in our work and wish to get involved, you can see our [by-laws][bylaws] on GitHub.
Our [projects][projects] include bindings to libsodium, blake3, OpenSSL, as well as implementations like Cacophony for the [Noise Protocol][Noise].

The official coordination space is on the Haskell Foundation Slack workspace, on the [#cryptography-group][slack] channel, and we maintain a presence on the [#haskell-cryptography][irc] IRC channel on LiberaChat, where general discussions on cryptography in Haskell are welcome.

[bylaws]: https://github.com/haskell-cryptography/governance
[projects]: https://haskell-cryptography.github.io/projects/
[Noise]: https://noiseprotocol.org/
[slack]: https://join.slack.com/t/haskell-foundation/shared_invite/zt-z45o9x38-8L55P27r12YO0YeEufcO2w
[irc]: https://kiwiirc.com/nextclient/irc.libera.chat/#haskell-cryptography
2 changes: 2 additions & 0 deletions public/_headers
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/*
Access-Control-Allow-Origin: *
Binary file added public/android-chrome-192x192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/android-chrome-512x512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions public/bootstrap/scss/bootstrap-grid.css

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions public/bootstrap/scss/bootstrap-reboot.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions public/bootstrap/scss/bootstrap-utilities.css

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions public/bootstrap/scss/bootstrap.css

Large diffs are not rendered by default.

Binary file added public/doks.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions public/doks.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions public/elasticlunr.min.js

Large diffs are not rendered by default.

Binary file added public/favicon-16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/favicon-32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/favicon.ico
Binary file not shown.
1 change: 1 addition & 0 deletions public/favicon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/fonts/vendor/jost/jost-v4-latin-500.woff
Binary file not shown.
Binary file added public/fonts/vendor/jost/jost-v4-latin-500.woff2
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added public/fonts/vendor/jost/jost-v4-latin-700.woff
Binary file not shown.
Binary file added public/fonts/vendor/jost/jost-v4-latin-700.woff2
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
146 changes: 146 additions & 0 deletions public/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
var suggestions = document.getElementById('suggestions');
var userinput = document.getElementById('userinput');

document.addEventListener('keydown', inputFocus);

function inputFocus(e) {

if (e.keyCode === 191 ) {
e.preventDefault();
userinput.focus();
}

if (e.keyCode === 27 ) {
userinput.blur();
suggestions.classList.add('d-none');
}

}

document.addEventListener('click', function(event) {

var isClickInsideElement = suggestions.contains(event.target);

if (!isClickInsideElement) {
suggestions.classList.add('d-none');
}

});

/*
Source:
- https://dev.to/shubhamprakash/trap-focus-using-javascript-6a3
*/

document.addEventListener('keydown',suggestionFocus);

function suggestionFocus(e){

const focusableSuggestions= suggestions.querySelectorAll('a');
const focusable= [...focusableSuggestions];
const index = focusable.indexOf(document.activeElement);

let nextIndex = 0;

if (e.keyCode === 38) {
e.preventDefault();
nextIndex= index > 0 ? index-1 : 0;
focusableSuggestions[nextIndex].focus();
}
else if (e.keyCode === 40) {
e.preventDefault();
nextIndex= index+1 < focusable.length ? index+1 : index;
focusableSuggestions[nextIndex].focus();
}

}


/*
Source:
- https://github.com/nextapps-de/flexsearch#index-documents-field-search
- https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html
*/

(function(){

var index = new FlexSearch({
preset: 'score',
cache: true,
doc: {
id: 'id',
field: [
'title',
'description',
'content',
],
store: [
'href',
'title',
'description',
],
},
});

var docs = [
{{ range $index, $page := (where .Site.Pages "Section" "docs") -}}
{
id: {{ $index }},
href: "{{ .RelPermalink | relURL }}",
title: {{ .Title | jsonify }},
description: {{ .Params.description | jsonify }},
content: {{ .Content | jsonify }}
},
{{ end -}}
];

index.add(docs);

userinput.addEventListener('input', show_results, true);
suggestions.addEventListener('click', accept_suggestion, true);

function show_results(){

var value = this.value;
var results = index.search(value, 5);
var entry, childs = suggestions.childNodes;
var i = 0, len = results.length;

suggestions.classList.remove('d-none');

results.forEach(function(page) {

entry = document.createElement('div');

entry.innerHTML = '<a href><span></span><span></span></a>';

a = entry.querySelector('a'),
t = entry.querySelector('span:first-child'),
d = entry.querySelector('span:nth-child(2)');

a.href = page.href;
t.textContent = page.title;
d.textContent = page.description;

suggestions.appendChild(entry);

});

while(childs.length > len){

suggestions.removeChild(childs[i])
}

}

function accept_suggestion(){

while(suggestions.lastChild){

suggestions.removeChild(suggestions.lastChild);
}

return false;
}

}());
14 changes: 14 additions & 0 deletions public/js/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Set darkmode
document.getElementById('mode').addEventListener('click', () => {

document.body.classList.toggle('dark');
localStorage.setItem('theme', document.body.classList.contains('dark') ? 'dark' : 'light');

});

// enforce local storage setting but also fallback to user-agent preferences
if (localStorage.getItem('theme') === 'dark' || (!localStorage.getItem('theme') && window.matchMedia("(prefers-color-scheme: dark)").matches)) {

document.body.classList.add('dark');

}
Loading