Compare commits

..

3 Commits

Author SHA1 Message Date
Jeppe Ernst 56e45454d7 sorta working #WIP 2018-01-22 16:30:08 +01:00
Jeppe Ernst 39fa3d27e1 ugly resizing fix
¯\_(ツ)_/¯
2018-01-21 13:56:54 +01:00
Jeppe Ernst d338956ec1 sort of working now
the first page just scrolls waaaay too far now. Somethings not right
with the positioning
2018-01-21 11:10:43 +01:00
233 changed files with 1686 additions and 8183 deletions

View File

@ -1,20 +0,0 @@
kind: pipeline
name: default
steps:
- name: docker
image: plugins/docker
settings:
repo: ulovliglogning/ulovliglogning.dk
username:
from_secret: DOCKER_USERNAME
password:
from_secret: DOCKER_PASSWORD
tags:
- "${DRONE_BUILD_NUMBER}"
- "latest"
trigger:
branch:
- master
event:
- push

4
.gitignore vendored
View File

@ -1,5 +1,3 @@
_site
.*-cache
.sass-cache
.jekyll-metadata
_scripts/config.sh
.DS_Store

View File

@ -1,19 +1,24 @@
---
layout: centered
permalink: /404
redirect: true
layout: default
---
<style type="text/css" media="screen">
.container {
margin: 10px auto;
max-width: 600px;
text-align: center;
}
h1 {
margin: 30px 0;
font-size: 4em;
line-height: 1;
letter-spacing: -1px;
text-align: center !important;
}
</style>
<div class="container">
<h1>404</h1>
<p><strong>Page not found :(</strong></p>
<p>The requested page could not be found.</p>
</div>

View File

@ -1,8 +0,0 @@
FROM jekyll/jekyll:3.7 AS jekyll
ADD . /srv/jekyll
RUN jekyll build --destination /tmp/_site --strict_front_matter
FROM php:7.4.1-apache
#RUN echo "LogLevel alert rewrite:trace6" > /etc/apache2/conf-enabled/rewritelog.conf
RUN a2enmod rewrite
COPY --from=jekyll /tmp/_site /var/www/html

View File

@ -13,15 +13,13 @@ gem "jekyll", "~> 3.6.2"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
# gem "github-pages", group: :jekyll_plugins
#gem "github-pages", group: :jekyll_plugins
gem "github-pages", group: :jekyll_plugins
# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.6"
gem "jekyll-livereload"
gem "jekyll-polyglot"
gem "jekyll-autoprefixer"
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

View File

@ -1,19 +1,84 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (4.2.9)
i18n (~> 0.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
addressable (2.5.2)
public_suffix (>= 2.0.2, < 4.0)
autoprefixer-rails (6.3.7)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.11.1)
colorator (1.1.0)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.5)
commonmarker (0.17.7.1)
ruby-enum (~> 0.5)
concurrent-ruby (1.0.5)
ethon (0.11.0)
ffi (>= 1.3.0)
execjs (2.7.0)
faraday (0.14.0)
multipart-post (>= 1.2, < 3)
ffi (1.9.18)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
gemoji (3.0.0)
github-pages (172)
activesupport (= 4.2.9)
github-pages-health-check (= 1.3.5)
jekyll (= 3.6.2)
jekyll-avatar (= 0.5.0)
jekyll-coffeescript (= 1.0.2)
jekyll-commonmark-ghpages (= 0.1.3)
jekyll-default-layout (= 0.1.4)
jekyll-feed (= 0.9.2)
jekyll-gist (= 1.4.1)
jekyll-github-metadata (= 2.9.3)
jekyll-mentions (= 1.2.0)
jekyll-optional-front-matter (= 0.3.0)
jekyll-paginate (= 1.1.0)
jekyll-readme-index (= 0.2.0)
jekyll-redirect-from (= 0.12.1)
jekyll-relative-links (= 0.5.2)
jekyll-remote-theme (= 0.2.3)
jekyll-sass-converter (= 1.5.0)
jekyll-seo-tag (= 2.3.0)
jekyll-sitemap (= 1.1.1)
jekyll-swiss (= 0.4.0)
jekyll-theme-architect (= 0.1.0)
jekyll-theme-cayman (= 0.1.0)
jekyll-theme-dinky (= 0.1.0)
jekyll-theme-hacker (= 0.1.0)
jekyll-theme-leap-day (= 0.1.0)
jekyll-theme-merlot (= 0.1.0)
jekyll-theme-midnight (= 0.1.0)
jekyll-theme-minimal (= 0.1.0)
jekyll-theme-modernist (= 0.1.0)
jekyll-theme-primer (= 0.5.2)
jekyll-theme-slate (= 0.1.0)
jekyll-theme-tactile (= 0.1.0)
jekyll-theme-time-machine (= 0.1.0)
jekyll-titles-from-headings (= 0.5.0)
jemoji (= 0.8.1)
kramdown (= 1.14.0)
liquid (= 4.0.0)
listen (= 3.0.6)
mercenary (~> 0.3)
minima (= 2.1.1)
rouge (= 2.2.1)
terminal-table (~> 1.4)
github-pages-health-check (1.3.5)
addressable (~> 2.3)
net-dns (~> 0.8)
octokit (~> 4.0)
public_suffix (~> 2.0)
typhoeus (~> 0.7)
html-pipeline (2.7.1)
activesupport (>= 2)
nokogiri (>= 1.4)
i18n (0.9.1)
concurrent-ruby (~> 1.0)
jekyll (3.6.2)
addressable (~> 2.4)
colorator (~> 1.0)
@ -25,25 +90,116 @@ GEM
pathutil (~> 0.9)
rouge (>= 1.7, < 3)
safe_yaml (~> 1.0)
jekyll-autoprefixer (1.0.1)
autoprefixer-rails (~> 6.3.6)
jekyll-avatar (0.5.0)
jekyll (~> 3.0)
jekyll-coffeescript (1.0.2)
coffee-script (~> 2.2)
coffee-script-source (~> 1.11.1)
jekyll-commonmark (1.1.0)
commonmarker (~> 0.14)
jekyll (>= 3.0, < 4.0)
jekyll-commonmark-ghpages (0.1.3)
commonmarker (~> 0.17.6)
jekyll-commonmark (~> 1)
rouge (~> 2)
jekyll-default-layout (0.1.4)
jekyll (~> 3.0)
jekyll-feed (0.9.2)
jekyll (~> 3.3)
jekyll-livereload (0.2.2)
em-websocket (~> 0.5)
jekyll-gist (1.4.1)
octokit (~> 4.2)
jekyll-github-metadata (2.9.3)
jekyll (~> 3.1)
octokit (~> 4.0, != 4.4.0)
jekyll-mentions (1.2.0)
activesupport (~> 4.0)
html-pipeline (~> 2.3)
jekyll (~> 3.0)
jekyll-polyglot (1.3.1)
jekyll (>= 3.0)
jekyll-optional-front-matter (0.3.0)
jekyll (~> 3.0)
jekyll-paginate (1.1.0)
jekyll-readme-index (0.2.0)
jekyll (~> 3.0)
jekyll-redirect-from (0.12.1)
jekyll (~> 3.3)
jekyll-relative-links (0.5.2)
jekyll (~> 3.3)
jekyll-remote-theme (0.2.3)
jekyll (~> 3.5)
rubyzip (>= 1.2.1, < 3.0)
typhoeus (>= 0.7, < 2.0)
jekyll-sass-converter (1.5.0)
sass (~> 3.4)
jekyll-seo-tag (2.3.0)
jekyll (~> 3.3)
jekyll-sitemap (1.1.1)
jekyll (~> 3.3)
jekyll-swiss (0.4.0)
jekyll-theme-architect (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-cayman (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-dinky (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-hacker (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-leap-day (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-merlot (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-midnight (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-minimal (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-modernist (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-primer (0.5.2)
jekyll (~> 3.5)
jekyll-github-metadata (~> 2.9)
jekyll-seo-tag (~> 2.2)
jekyll-theme-slate (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-tactile (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-time-machine (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-titles-from-headings (0.5.0)
jekyll (~> 3.3)
jekyll-watch (1.5.1)
listen (~> 3.0)
jemoji (0.8.1)
activesupport (~> 4.0, >= 4.2.9)
gemoji (~> 3.0)
html-pipeline (~> 2.2)
jekyll (>= 3.0)
kramdown (1.14.0)
liquid (4.0.0)
listen (3.0.6)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9.7)
mercenary (0.3.6)
mini_portile2 (2.3.0)
minima (2.1.1)
jekyll (~> 3.3)
minitest (5.11.1)
multipart-post (2.0.0)
net-dns (0.8.0)
nokogiri (1.8.1)
mini_portile2 (~> 2.3.0)
octokit (4.8.0)
sawyer (~> 0.8.0, >= 0.5.3)
pathutil (0.16.1)
forwardable-extended (~> 2.6)
public_suffix (2.0.5)
@ -51,23 +207,35 @@ GEM
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
rouge (2.2.1)
ruby-enum (0.7.1)
i18n
rubyzip (1.2.1)
safe_yaml (1.0.4)
sass (3.5.5)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sawyer (0.8.1)
addressable (>= 2.3.5, < 2.6)
faraday (~> 0.8, < 1.0)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
thread_safe (0.3.6)
typhoeus (0.8.0)
ethon (>= 0.8.0)
tzinfo (1.2.4)
thread_safe (~> 0.1)
unicode-display_width (1.3.0)
PLATFORMS
ruby
DEPENDENCIES
github-pages
jekyll (~> 3.6.2)
jekyll-autoprefixer
jekyll-feed (~> 0.6)
jekyll-livereload
jekyll-polyglot
tzinfo-data
BUNDLED WITH
1.16.1
1.16.0

View File

@ -1,36 +0,0 @@
[![Build Status](https://drone.data.coop/api/badges/ulovliglogning/ulovliglogning.dk/status.svg)](https://drone.data.coop/ulovliglogning/ulovliglogning.dk)
# Jekyll site for ulovliglogning.dk
## To work on the code, either
### Use docker
You need docker-compose. Simply run
`docker-compose up` to launch the site in a docker container with livereload support.
### Or install Jekyll locally
#### Install Jekyll and Bundler gems through RubyGems
`gem install jekyll bundler`
#### Install dependencies
`bundle install`
#### Build the site local
`bundle exec jekyll serve`
You can now see the site at [localhost:4000](http://localhost:4000)
## Deploy
If not using Docker, it's **important** that you build the site with `JEKYLL_ENV=production bundle exec jekyll build` before deploying the contents of the `_site` directory. We're doing some debugging stuff when the project is build in the development env.
### Deploy to FTP with Docker
Make sure that you have created a file in `_scripts/` called `config.sh`, (protip: just duplicate the `config-example.sh` file, and set the correct values, you should only need to change username and password.) Then you can build the site ande deploy it by running `docker-compose -f docker-compose-deploy.yml up`
This will execute a Docker container and do the following:
1. Build the site **but** fail if there are any Frontmatter errors
2. Upload the contents of the `_site/` directory to the FTP server
3. That's it…
## Structure
The contents of the index pages is defined in the frontmatter of the files `_pages/index-<language>.md`

View File

@ -13,32 +13,18 @@
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.
title: Foreningen imod Ulovlig Logning
title: Til kamp mod Ulovlig Logning<
email: your-email@example.com
description: >- # this means to ignore newlines until "baseurl:"
Totalovervågningen er kendt ulovlig, men teleselskaber og politikere er ligeglade.
Den danske totalovervågning er kendt ulovlig, men teleselskaber og politikere er ligeglade.
Nu gør vi noget ved det! #ulovligLogning
baseurl: "" # the subpath of your site, e.g. /blog
url: "https://ulovliglogning.dk" # the base hostname & protocol for your site, e.g. http://example.com
donationCounter:
donated: 2643511
goal1: 100000
goal2: 250000
goal3: 400000
goal4: 1000000
goal5: 1500000
# multilanguage support
languages: ["da", "en"]
default_lang: "da"
exclude_from_localization: ["assets", "htaccess", "google*.html"]
parallel_localization: false
url: "" # the base hostname & protocol for your site, e.g. http://example.com
# Build settings
permalink: /:title/
markdown: kramdown
exclude: ["README.md", 'Gemfile.lock', 'Gemfile', "docker-compose.yml", "docker-compose-deploy.yml"]
include: ["_pages"]
plugins:
- jekyll-feed
# Sass
sass:
@ -46,9 +32,5 @@ sass:
sass_dir: _scss
plugins:
- jekyll-feed
- jekyll-polyglot
- jekyll-autoprefixer
autoprefixer:
only_production: true
- jekyll-seo-tag
- jemoji

View File

@ -1,19 +0,0 @@
global:
title: Foreningen imod Ulovlig Logning
description: >-
Totalovervågningen er kendt ulovlig, men teleselskaber og politikere er ligeglade.
Nu gør vi noget ved det! #ulovligLogning
emailplaceholder: indtast din email
signup: JA! Jeg vil gerne holdes opdateret.
ctatext: Hvis du vil hjælpe eller give et bidrag, kan du [trykke her](#wannahelp).
errata: |
Har vi skrevet noget der er forkert? Eller mangler vi at uddybe noget?
Send os en mail på [info@ulovliglogning.dk](mailto:info@ulovliglogning.dk)
langs:
da: Dansk
en: Engelsk
donation:
text: doneret i alt
currency: ",-"
sub: Donationer opdateres pt. manuelt
mobilepayLink: https://mobilepay.dk/da-dk/pages/betal.aspx?phone=004540456&comment=Til%20kampen%20imod%20den%20Ulovlige%20Logning!&t=d

View File

@ -1,18 +0,0 @@
global:
title: Fighting the illegal surveillance!
description: >-
The Danish states mass surveillance has been ruled illegal, but the telcos and the politicians don't care.
Now we are going to do something about it! #ulovligLogning
emailplaceholder: enter your email
signup: Yes! I want to be kept in the loop.
ctatext: If you want to help us or donate to our cause [click here](#wannahelp).
errata: |
Have we written something that's wrong? or maybe we need to elaborate on something?
Write us an email at [info@ulovliglogning.dk](mailto:info@ulovliglogning.dk)
langs:
da: Danish
en: English
donation:
text: donated in total
currency: " DKK"
sub: Donations are updated manually

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 500 600"><a><g><circle r="250" cy="300" cx="250" fill="#ff4c00" fill-rule="evenodd"/><text y="275.465" x="251.718" style="text-align:center;text-shadow: 3px 3px 0 #d94100;" font-weight="400" font-size="96" font-family="Eczar" text-anchor="middle" fill="#fff"><tspan style="text-align:center" y="275.465" x="251.718">Giv et</tspan><tspan style="text-align:center" y="371.871" x="251.718">bidrag!</tspan></text><animateTransform attributeName="transform" type="translate" values="0 0; 0 -50; 0 0;0 -10; 0 0" begin="0s" dur="0.5s" repeatCount="4"/></g><path d="M230.715 436.685c-2.77 0-5 2.23-5 5v92.858c0 .713.151 1.387.418 2h-34.586a4.988 4.988 0 0 0 0 7.07l54.918 54.918a4.988 4.988 0 0 0 7.07 0l54.918-54.918a4.988 4.988 0 0 0 0-7.07h-34.586a4.991 4.991 0 0 0 .418-2v-92.858c0-2.77-2.23-5-5-5z" fill="#ff4c00" fill-rule="evenodd"/></a></svg>

Before

Width:  |  Height:  |  Size: 912 B

View File

@ -1,50 +0,0 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ global.title }}</title>
<link rel="stylesheet" href="{{ site.baseurl }}/assets/style/main.css?{{ site.time | date: '%s' }}">
<link rel="alternate" type="application/rss+xml" title="RSS Feed for {{ global.title }}" href="{{ site.baseurl }}/feed.xml" />
{% if page.redirect %}
<meta http-equiv='refresh' content='5;url={% if site.active_lang == site.default_lang %} {{site.url}} {% else %} {{site.url}}/{{ site.active_lang }} {% endif %}' />
{% endif %}
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ulovliglogning">
<meta name="twitter:creator" content="@ulovliglogning">
{% if page.permalink == "/intetatskjule" %}
<meta property="og:image" content="{{ site.url }}/assets/img/postkort-opengraph.jpg" />
<meta property="og:image:alt" content="Et mobilfoto af begge sider af postkortet. På den ene side står der “Jeg har intet at skjule” og på den anden side er der en fuldmagt, hvor man giver os adgang til ens data." />
<meta property="og:url" content="{{ site.url }}/intetatskjule" />
<meta property="og:description" content="Kender du nogen der ikke har noget at skjule? Giv dem et postkort, og lad os se deres data." />
<meta name="twitter:title" content="{{ global.title }}">
<meta name="twitter:description" content="Kender du nogen der ikke har noget at skjule? Giv dem et postkort, og lad os se deres data.">
<meta name="twitter:image:alt" content="Et mobilfoto af begge sider af postkortet. På den ene side står der “Jeg har intet at skjule” og på den anden side er der en fuldmagt, hvor man giver os adgang til ens data.">
<meta name="twitter:image" content="{{ site.url }}/assets/img/postkort-twittercard.jpg">
{% elsif page.permalink == "/gavekort" %}
<meta property="og:image" content="{{ site.url }}/assets/img/gavekort-opengraph.jpg" />
<meta property="og:url" content="{{ site.url }}" />
<meta property="og:description" content="Giv en donation i gave. Bestil et smukt kort." />
<meta name="twitter:title" content="{{ global.title }}">
<meta name="twitter:description" content="Giv en donation i gave. Bestil et smukt kort.">
<meta name="twitter:image" content="{{ site.url }}/assets/img/gavekort-twittercard.jpg">
{% else %}
<meta property="og:image" content="{{ site.url }}/assets/img/og01.png" />
<meta property="og:image:alt" content="En orange baggrund med en tegning af en simpel smartphone. På skærmen har den Foreningen imod Ulovlig Lognings logo." />
<meta property="og:url" content="{{ site.url }}" />
<meta property="og:description" content="{{ global.description }}" />
<meta name="twitter:title" content="{{ global.title }}">
<meta name="twitter:description" content="{{ global.description }}">
<meta name="twitter:image" content="{{ site.url }}/assets/img/twcard2020.png">
<meta name="twitter:image:alt" content="Et orange skilt med en QR-kode og vores Mobile Pay-nummer 40456. Teksten “Stop ulovlig logning!”">
{% endif %}
<link rel="apple-touch-icon" sizes="180x180" href="/assets/img/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/img/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/img/favicon/favicon-16x16.png">
<link rel="manifest" href="/assets/img/favicon/site.webmanifest">
<link rel="mask-icon" href="/assets/img/favicon/safari-pinned-tab.svg" color="#f5571f">
<link rel="shortcut icon" href="/assets/img/favicon/favicon.ico">
<meta name="msapplication-TileColor" content="#000000">
<meta name="msapplication-config" content="/assets/img/favicon/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
{% I18n_Headers %}
</head>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<svg class="camera" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 52 58" style="enable-background:new 0 0 58 58;" xml:space="preserve">
viewBox="0 0 58 58" style="enable-background:new 0 0 58 58;" xml:space="preserve">
<path style="fill:#8697CB;" d="M33.256,51.244L33.256,51.244L33.5,51l-11-16l-5,2l11.708,17.561
C30.025,52.954,31.487,51.736,33.256,51.244z"/>
<path style="fill:#8697CB;" d="M36.37,47.839c0.163,0.238,0.305,0.49,0.436,0.749c0.026,0.052,0.051,0.104,0.076,0.157
@ -16,4 +17,34 @@
<path style="fill:#D1D4D1;" d="M29.5,33h-20v-2.074C9.5,29.31,10.81,28,12.426,28h14.149c1.616,0,2.926,1.31,2.926,2.926V33z"/>
<path class="glare" style="fill:#D0E8F9;" d="M15.5,15c-0.552,0-1-0.448-1-1c0-2.757,2.243-5,5-5c0.552,0,1,0.448,1,1s-0.448,1-1,1
c-1.654,0-3,1.346-3,3C16.5,14.552,16.052,15,15.5,15z"/>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,8 +0,0 @@
---
layout: default
---
<section class="centered">
<div class="content">
{{ content }}
</div>
</section>

View File

@ -1,13 +1,27 @@
{% assign global = site.data.common.global %}
<!DOCTYPE html>
<html lang="{{ site.active_lang }}" class="no-js">
{% include head.html %}
<body>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, minimum-scale=1.0">
<!-- <meta name="viewport" content="width=700"> -->
<title>{% if page.title %}{{ page.title }}{% else %}{{ site.name }}{% endif %}</title>
<link rel="stylesheet" href="{{ site.baseurl }}/assets/style/main.css?{{ site.time | date: '%s' }}">
<link rel="alternate" type="application/rss+xml" title="RSS Feed for {{ site.name }}" href="{{ site.baseurl }}/feed.xml" />
{% seo %}
</head>
<body data-env="{{ jekyll.environment }}" class="no-js">
{% include security-camera-svgrepo-com.svg %}
<div class="container">
<div {% if page.containerId %} id="{{ page.containerId }}" {% endif %} class="container">
{{ content }}
</div>
<script type="text/javascript" src="{{ site.baseurl }}/assets/js/main.js"></script>
<!-- <footer>
Last generated at {{ site.time | date_to_rfc822 }}
</footer> -->
<script src="{{ site.baseurl }}/assets/js/vendor/ScrollMagic.min.js"></script>
<script src="{{ site.baseurl }}/assets/js/vendor/TweenMax.min.js"></script>
<script src="{{ site.baseurl }}/assets/js/vendor/animation.gsap.js"></script>
<script src="{{ site.baseurl }}/assets/js/vendor/debug.addIndicators.min.js"></script>
<script src="{{ site.baseurl }}/assets/js/vendor/mobile-detect.min.js"></script>
<script src="{{ site.baseurl }}/assets/js/main.js"></script>
</body>
</html>
</html>

View File

@ -1,85 +1,11 @@
---
layout: default
---
{% assign global = site.data.common.global %}
{% for section in page.sections %}
<section id="{{ section.id }}" class="{% cycle 'odd', 'even' %}">
{% if forloop.first %}
<div class="donationContainer">
<div class="total">
{{ site.donationCounter.donated | intcomma: '.' }}{{ global.donation.currency }} {{ global.donation.text }}
<sub>{{ global.donation.sub }}</sub>
</div>
<div class="donationCounter goal">
<div class="overlay goal1">{{ site.donationCounter.goal1 | slice: 0,3 }}K</div><div class="overlay goal2">{{ site.donationCounter.goal2 | slice: 0,3 }}K</div><div class="overlay goal3">{{ site.donationCounter.goal3 | slice: 0,3 }}K</div><div class="overlay goal4">{{ site.donationCounter.goal4 | slice: 0,1 }} Million</div>
</div>
</div>
<nav id="navElm">
<div class="langSwitcher left">
{% for tongue in site.languages %}
<a class="lang-{{ tongue }} {% if tongue == site.active_lang %}activeLang{% endif %}" href="{% if tongue == site.default_lang %} {{site.baseurl}}{{page.url}} {% else %} {{site.baseurl}}/{{ tongue }}{{page.url}} {% endif %}">{{ tongue }}</a>
{% endfor %}
</div>
<div id="navLinks" class="center">
{% for section in page.sections %}
{% if section.link %}
<a href="#{{ section.id }}" data-link-for="{{ section.id }}">{{ section.link }}</a>
{% endif %}
{% endfor %}
</div>
<div class="right">
<input type="checkbox" id="show-menu" role="button">
<label for="show-menu" class="show-menu"></label>
<ul>
{% for section in page.sections %}
{% if section.link %}
<li><a class="mobileLink" href="#{{ section.id }}" data-link-for="{{ section.id }}">{{ section.link }}</a></li>
{% endif %}
{% endfor %}
</ul>
</div>
</nav>
{% endif %}
{% if section.id != "faq" %}
<div class="content">
<div class="heading">
<h1>{{ section.heading }}</h1>
{% if section.id == "wannahelp" %}
<!--<a href="https://mobilepay.dk/da-dk/pages/betal.aspx?phone=004540456&comment=Til%20kampen%20imod%20den%20Ulovlige%20Logning!&t=d">
<img src="{{ site.baseurl }}/assets/img/mobilepay5.svg">
</a>-->
{% endif %}
{% if section.id == "butwhy" %}
<a href="https://www.verdensmaalene.dk/maal/16">
<img src="{{ site.baseurl }}/assets/img/global-goal-16-DA-BW.svg">
</a>
{% endif %}
</div>
<div class="paragraphs">
{{ section.content | markdownify }}
{% if section.id == "wannahelp" %}
<!-- <form class="signup" action="https://ulovliglogning.dk/dynamic/signup/" method="post">
<input type="email" required="true" placeholder="{{ global.emailplaceholder }}" name="email">
<input type="text" name="lang" value="{{ site.active_lang }}" class="hidden">
<input type="submit" name="submit" value="{{ global.signup }}">
</form> -->
{% endif %}
</div>
</div>
{% elsif section.id == "faq" %}
{% for question in section.content %}
<div id="{{ question.id }}" class="qa">
<div class="qa--question">
<h3>{{ question.heading }}</h3>
</div>
<div class="qa--answer">
<h3>{{ question.answer }}</h3>
{{ question.explanation | markdownify }}
</div>
</div>
{% endfor %}
{{ global.errata | markdownify }}
{% endif %}
</section>
<section id="{{ section.id }}" class="{% cycle 'odd', 'even' %}">
<h1>{{ section.heading }}</h1>
<div class="paragraphs">
{{ section.content | markdownify }}
</div>
</section>
{% endfor %}

View File

@ -1,12 +0,0 @@
---
layout: default
---
<section class="centered">
<div class="content">
<div class="heading" style="text-align:left;white-space: pre;">{% if page.heading != "" %}<h3>{{ page.heading }}</h3>{% endif %}<p>{% if page.permalink == "/intetatskjule" %}<a href="{{ site.baseurl }}/assets/docs/postkort-download.pdf" title="Download pdf"><img src="{{ site.baseurl }}/assets/img/postkort-mockup.svg" alt="Et billede som viser postkortet. På forsiden står der “jeg har ikke noget at skjule” i en taleboble. På bagsiden er der en fuldmagtsformular og vores postadresse."></a>{% endif %}{% if page.permalink == "/gavekort" %}<a href="{{ site.baseurl }}/assets/docs/gavekort-download.pdf" title="Download pdf"><img src="{{ site.baseurl }}/assets/img/gavekort-mockup.svg" alt="Et billede af kortet. Det er orange på omslaget, og på forsiden en sort smartphone. På telefonen er vores logo-øje. I kortet står der en hilsen: Din gave er retten til at leve frit, tænke frit, tale frit og til at være dig selv. Retten til at være i fred. Hvis ingen slås for vores rettigheder forsvinder de. Med dette kort har du støttet kampen. Tusind tak!"></a>{% endif %}{{ page.heading_subtext }}</p>
</div>
<div class="paragraphs">
{{ content }}
</div>
</div>
</section>

View File

@ -1,15 +0,0 @@
---
layout: singlepage
lang: da
permalink: /gavekort
id: gavekort
heading:
---
# Giv en donation!
I stedet for at give fysiske ting, som modtager alligevel mister interessen for i februar, kan du give sagen en donation i deres navn. Du får et pænt kort hvor vi siger tak, og hvor du kan skrive din egen hilsen. Hvis du vil have det, kan vi skrive det under.
Du skal donere mindst 200 kr., plus 25 kr. til for forsendelse. Send derefter en besked til gavekort \[ hos \] ulovliglogning.dk med navn og adressse, og om du vil have at vi skriver hilsenen under. Du kan give på Mobile Pay 40456 eller med kontooverførsel til 5301 272500. Du kan læse mere om [hvordan du kan donere her](https://ulovliglogning.dk/#wannahelp).
Har du familiemedlemmer eller venner som *“ikke har noget at skjule”*, har [vi også et kort til dét](https://ulovliglogning.dk/intetatskjule). Du får automatisk ét med, hvis du bestiller donations-kortet.

View File

@ -1,31 +0,0 @@
---
layout: singlepage
lang: en
permalink: /gf2019
heading: Generalforsamling 2019
---
| Dato: | 22. Marts 2019 |
| Tid: | 16:30 - 19:30
| Sted: | PROSA, Vester Farimagsgade 37A, 1606 København V |
<br>
Tilmelding på [prosa.dk/arrangementer/](https://www.prosa.dk/arrangementer/), *hvis du vil være sikret mad så skal du tilmelde dig senest dagen før!*
## Program
1. Velkomst
2. Valg af dirigent & referent
3. Beretning fra bestyrelsen og den juridiske rådgiver
4. Godkendelse af regnskabet for det forløbne år
5. Behandling af indkomne forslag
6. Fastsættelse af kontingent
7. Nedsættelse af udvalg
1. PR
2. Website
3. Andre?
8. Valg til bestyrelsen
9. Valg af revisor
10. Eventuelt
Hvis du har forslag til dagsordenen bedes du sende dem til <a href="mailto:gf@ulovliglogning.dk">gf@ulovliglogning.dk</a>

View File

@ -1,188 +0,0 @@
---
layout: indexpage
lang: da
permalink: /
sections:
- id: intro
heading: |
EU: Højesteret tog fejl
content: |
Efter fem års hårdt, ulønnet arbejde kom dagen: Højesteret afsagde dom over logningen. Det var ubestridt at den var ulovlig, men Højesteret mente ikke at det var deres opgave at stoppe den. Det har [en EU-dom](https://curia.europa.eu/juris/document/document.jsf?text=&docid=257242&pageIndex=0&doclang=EN&mode=req&dir=&occ=first&part=1&cid=325817) korrigeret, kun seks dage senere.
Danmarks højeste domstol var enig med Østre Landsret i at menneskerettigheder kun kan håndhæves af teleselskaber. Hvis de undlod at logge, og fik en bøde for det, ville de kunne gå til domstolene. Borgerne har ingen muligheder. Det er klart i strid med Den Europæiske Menneskerettighedskonvention og EU's Charter om Grundlæggende Rettigheder, men det undlod Højesteret at inddrage.
EU-Domstolen gjorde det efterfølgende meget klart at de nationale domstole **skal** dømme sådan regulering ugyldig. Vi arbejder pt. på der videre forløb.
Læs højesteretsdommen [her (pdf)](https://ulovliglogning.dk/assets/docs/hrdom.pdf) og [EU-dommen her](https://curia.europa.eu/juris/document/document.jsf?text=&docid=257242&pageIndex=0&doclang=EN&mode=req&dir=&occ=first&part=1&cid=325817). Se især afsn. 123.
For mere information, kontakt talsperson Rasmus Malver på 26 80 94 24.
- id: butwhy
link: Hvorfor?
heading: Hvorfor er det vigtigt?
content: |
I en demokratisk retsstat har borgerne tillid til staten, og alle har ret til en retfærdig rettergang. Logningsdata indsamles ulovligt, men kan alligevel bruges i en straffesag imod dig. Dansk politi kan rejse tiltale og varetægtsfængsle udelukkende på baggrund af hvor de siger at din telefon har været.
Måske er du gået forbi et sted hvor der blev begået en forbrydelse. Politiet får en liste over alle telefoner i området, og så skal du bevise at du ikke var skyldig.
Men du kan ikke bruge det i dit forsvar. Hvis du beviser at din telefon ikke var på gerningsstedet, kan anklageren bruge det som bevis for at du havde planlagt din forbrydelse. Politiet har lettere og hurtigere adgang til dine data, og der er ingen garanti for at de deler data med din forsvarsadvokat.
I teleskandalerne lærte vi at visse teleselskaber ulovligt logger dine sms'ers indhold, og ulovligt deler dem med politiet. Politiet indrømmede også at de i årevis har ændret data, uden at sige det til forsvarsadvokater og dommere.
FN's verdensmål nr. 16 handler om at støtte fredelige og inkluderende samfund. Alle skal have adgang til retssikkerhed og samfund skal have effektive, ansvarlige og inddragende institutioner på alle niveauer. Vores retssag er et vigtigt skridt i retning af at opnå dette mål. Vi skaber retspraksis der giver [EU's menneskerettigheder](https://eur-lex.europa.eu/legal-content/DA/TXT/HTML/?uri=CELEX:12012P/TXT) direkte virkning i Danmark. Tidligere kunne et simpelt flertal i Folketinget tilsidesætte de fleste rettigheder.
Det standser vi.
- id: tellmemore
link: Hvordan?
heading: Jeg vil vide mere…
content: |
Teleindustrien og de største teleselskaber kæmper for at logge, og bruger et [personligt brev](nicksbrev) fra justitsminister Nick Hækkerup som undskyldning. I brevet trygler han organisationens medlemmer om at fortsætte logning. Det er et tomt ønske, for det har ingen hjemmel. Logningsdirektivet som lå til grund for den danske lognings&shy;bekendt&shy;gørelse er blevet underkendt ved EU-domstolen, fordi det krænker retten til privatliv. Menneskeretten er inkorporeret i både dansk ret og EU-retten, og en minister kan derfor ikke udstede bekendtgørelser der krænker borgernes rettigheder.
Sagen kunne teoretisk anlægges imod et teleselskab, men med brevet fra ministeren kunne de påstå uvidenhed. I samråd med vores advokat er målet at få den danske stat dømt for at overtræde dansk lov, EU- og menneskeretten. Det er en større og dyrere sag end at sagsøge et teleselskab, men den vil til gengæld standse politikeres tendens til at ignorere vores fundamentale rettigheder.
Hvis du vil læse processkrifterne, vores vedtægter, vores regnskaber eller andre relevante dokumenter kan du finde dem her:
* [Vedtægter](/assets/docs/vedtaegter.pdf)
* [Regnskab 2018-2019](/assets/docs/Regnskab2018.pdf)
* [Regnskab 2019-2020](/assets/docs/Regnskab2019.pdf)
* [Regnskab 2020-2021](/assets/docs/Regnskab2020.pdf)
* [Regnskab 2021-2022](/assets/docs/Regnskab2021.pdf)
* [Regnskab 2022-2023](/assets/docs/Regnskab2022.pdf)
* [Indsamlingstilladelse](/indsamlingstilladelse)
* [Stævning](/assets/docs/2018-06-01-staevning.pdf)
* [Svarskrift](/assets/docs/2018-09-24-svarskrift.pdf)
* [Replik](/assets/docs/2021-01-07-replik.pdf)
* [Duplik](/assets/docs/2021-02-25-duplik.pdf)
* [Processkrift 1 \(os\)](/assets/docs/2021-03-25-processkrift1.pdf)
* [Processkrift 2 \(Kammeradvokaten\)](/assets/docs/2021-04-21-processkrift2.pdf)
* [Ekstrakt (alle ovenfor, 56,1 MB)](/assets/docs/2021-04-28-ekstrakt.pdf)
* [Materialesamling (øvrige dokumenter, 65 MB)](/assets/docs/2021-05-06-materialesamling.pdf)
* [Højesteretsdom](/assets/docs/2022-03-30-hrdom.pdf)
- id: wannahelp
link: Hjælp/bidrag!
heading: Jeg vil hjælpe!
content: |
Hvis du har lyst til at hjælpe, kan du kontakte [Rasmus Malver](https://twitter.com/rasmusmalver) på [Twitter](https://twitter.com/rasmusmalver) eller på [sms/signal](sms:+4526809424). Du kan også følge foreningen på [Twitter](https://twitter.com/ulovliglogning)/[Facebook](https://www.facebook.com/UlovligLogning/). Eller skrive dig op til vores nyhedsbrev ved at sende en mail til [info@ulovliglogning.dk](mailto:info@ulovliglogning.dk).
Du kan også hjælpe ved at skabe opmærksomhed. Kontakt dit netværk, journalister og din familie, og fortæl hvorfor det er vigtigt at kæmpe for vores basale rettigheder.
- id: faq
link: FAQ
content:
- heading: Hvad med Søren Pape?
id: hvorforPape
answer: Han er ikke længere justitsminister.
explanation: |
Logning har altid været ulovligt. Søren Pind, Mette Frederiksen, Karen Hækkerup, Morten Bødskov, Brian Mikkelsen, Søren Pape og Nick Hækkerup har logget ulovligt som justitsministre, så det er ikke et spørgsmål om politiske holdninger. Sagen fortsætter ufortrødent, nu hvor Nick Hækkerup er minister. Det er et spørgsmål om at respektere fundamentale rettigheder, herunder alles ret til privatliv.
Pape skilte sig dog ud fra mængden, fordi han skrev et [brev til telebranchen](papesbrev). Det var ulovligt at han skrev brevet, men kun Folketinget kan stille ham til ansvar for brud på ministeransvarsloven. Måske inspirerede han Nick Hækkerup, som i 2020 skrev [et tilsvarende brev](nicksbrev).
Sagen vil forhåbentlig ændre danske politikeres åbenlyse og intentionelle overtrædelser af menneskeretten. Men uanset om den gør, ændrer den retspraksis.
- heading: Hvorfor ikke TDC?
id: hvorforIkkeTDC
answer: Fordi Pape skrev et brev, hvor der står at de skal overvåge ulovligt, og Nick Hækkerup har ikke trukket den ulovlige ordre tilbage.
explanation: |
TDCs påstand var *juridisk vildfarelse*. Det betyder at de ikke kan stilles til ansvar for at gøre noget ulovligt, fordi de ikke kunne forventes at forstå at det var ulovligt. Med [Papes brev til Teleindustrien](papesbrev) står de bedre. Men der er stadig en forventning om at man skal kunne indse at en ordre er ulovlig. Også når den kommer fra en minister.
Det er både hårdere og dyrere at gå efter Justitsministeriet i stedet, men til gengæld kan det ændre retstilstanden i Danmark. Og måske politikernes aktive overtrædelse af vores rettigheder.
- heading: Er der domstolskontrol med adgang til data?
id: domstolskontrol
answer: Nej.
explanation: |
Hvis du traditionelt skulle aflyttes, skulle politiet gå til domstolene, og her blev du tildelt en advokat. Når aflytningen var færdig, fik du det at vide. Når nogen tilgår dine logningsdata får du intet at vide.
Hvis politiet vil have logningsdata om dig, er det op til telebranchen at hyre og lønne en advokat på dine vegne. Det gør de (selvfølgelig) ikke, og derfor kan domstolene ikke træffe en rimelig afgørelse. Når det drejer sig om oplysninger om IP-adresser har politiet forfattet en standard-skrivelse, der tager udgangspunkt i at udbyderne altid udleverer hvad der bedes om. I to svar til Folketinget oplyser Justitsministeriet at man ikke altid indhenter dommerkendelse. Se Retsudvalgets [spørgsmål 624](https://www.ft.dk/samling/20171/almdel/reu/spm/624/svar/1498873/1913158/index.htm) og [627](https://www.ft.dk/samling/20171/almdel/reu/spm/627/svar/1498872/1913155/index.htm) (alm. del 2017/18). I 627 indrømmes det at der ikke altid indhentes retskendelse.
Når teleselskaberne selv tilgår dine data, bliver ingen hørt eller orienteret.
- heading: Hvorfor skal jeg bekymre mig om logning? Jeg har intet at skjule, så hvis det hjælper mod kriminalitet går jeg ind for logning!
id: whyBother
answer: Det er en myte at logning hjælper politiet.
explanation: |
Total overvågning hjælper ikke nødvendigvis imod kriminalitet. Det **kan** give flere sigtelser og dømte, men primært fordi flere uskyldige vil blive straffet. Hvis der bliver begået en forbrydelse i en demokratisk retsstat skal politiet og ofrene arbejde sammen for at identificere hvem der kunne have en interesse i at begå forbrydelsen, hvem der havde skaffet sig adgang til gerningsstedet, og hvem der har udvist mistænkelig adfærd.
Med totalovervågning kan politiet trække en liste over alle personer der var i nærheden af gerningsstedet, og derefter vælge hvem de lettest kan få dømt. Det er derfor dit ansvar at bevise at du ikke har begået en forbrydelse. Anklageren behøver ikke finde et motiv, eller bevise at du har handlet på en bestemt måde. De kan bare vælge dig fra listen over mobiltelefoner der har været i området, eller blandt folk der har googlet “brækjern” 24 timer før.
Når logning standser bliver politiet ikke forvandlet til muldvarpe. Der er stadig vidtgående muligheder for at overvåge folk på grund af konkret mistanke, men politiet skal igen kunne argumentere for indgrebet.
I Tyskland blev logningen standset tidligt. Det tyske Max Planck-institut for udenlandsk og international strafferet har lavet [en kvalitativ undersøgelse](https://static.mpicc.de/shared/data/pdf/schutzluecken_vorratsdatenspeicherung_12.pdf) som viser at logningsdata ikke hjalp politiet med opklaring.
- heading: Hvem står bag søgsmålet?
id: whoAreYou
answer: Foreningen imod Ulovlig Logning.
explanation: |
Menneskeretsjurist [Rasmus Malver](https://twitter.com/rasmusmalver) startede indsamlingen, og den næste store donor var [Bitbureauet](https://bitbureauet.dk/). Derfra tog det fart, og flere hundrede andre personer, virksomheder og foreninger har doneret til sagen. De indsamlede penge “tilhører” en forening hvis eneste formål er at føre retssagen og at sprede budskabet. Du kan læse [vedtægterne](vedtaegter) her.
Foreningen har valgt IT- og EU-retsspecialistkontoret [Bird & Bird](https://www.twobirds.com), hvor advokat Julie Bak-Larsen er primær tovholder.
Du kan finde vores reviderede regnskab under [jeg vil vide mere](#tellmemore).
I bestyrelsen for Foreningen imod Ulovlig Logning sidder Rasmus Malver, Henrik Kramselund Jereminsen, Mikkel Mikjær, Thomas Bødtcher Hansen og Alex Holst.
- heading: Hvad har logning med menneskeret at gøre?
id: humanRights
answer: Du har ret til privatliv.
explanation: |
Menneskeret er dine rettigheder overfor stater. I nogle lande fremgår de af forfatningen, men i Danmark er de primært kommet fra Den Europæiske Menneskerettighedskonvention ([pdf](https://www.echr.coe.int/Documents/Convention_DAN.pdf)). Den blev skrevet efter 2. verdenskrig og er løbende blevet opdateret, for at undgå en gentagelse af Nazityskland og Østblokkens rædsler. I år 2000 skrev EU et Charter om Grundlæggende Rettigheder ([dansk](https://eur-lex.europa.eu/legal-content/DA/TXT/?uri=CELEX%3A12012P%2FTXT)) der indgår på overstatsligt niveau, dog kun for emner omfattet af EU-samarbejdet.
Begge konventioner indeholder en beskyttelse af dit privatliv, og det er slået klart fast at staten ikke må overvåge alle konstant. Men det gør Danmark.
På grund af logningen ved staten altid hvor din mobil er, om du er på nettet, og hvem du kommunikerer med. Der indsamles mere information om dig og din adfærd end STASI og Gestapo nogensinde kom i nærheden af.
Du har ret til at være fri for dén overvågning.
- heading: Hvorfor ikke fri proces?
id: hvorforIkkeFriProces
answer: Man får ikke penge nok, så sagen ville dø, før den startede.
explanation: |
Hvis staten tildeler fri proces, må man ikke selv betale en del af advokatens regning. Fri proces dækker dog ikke advokatens egentlige regning, men består i stedet af et symbolsk beløb. Den danske stats advokat, Kammeradvokaten, er én af verdens dyreste advokater, men deres regning indgår ikke i udmålingen af det de tilkendte sagsomkostninger ved fri proces.
Derfor er en fri proces-sag mod Kammeradvokaten en meget ulige kamp. Staten skulle dække begge siders omkostninger, men Kammeradvokaten kan selv bestemme hvor meget de skal have, mens staten bestemmer hvad der betales til borgerens advokat. Det er naturligvis i strid med retten til en retfærdig rettergang, men de danske domstole lader til at foretrække status quo.
Du kan læse mere om emnet i bogen <a href="https://www.ft.dk/samling/20121/almdel/reu/bilag/68/1176705.pdf">“Med Staten som Modpart” (pdf)</a> udgivet af Retssikkerhedsfonden.
- heading: Økonomi & Delmål
id: delmaal
answer: Vi ved ikke hvad det vil koste, så vi bliver ved med at samle ind.
explanation: |
Da vi nåede vores første delmål, 100.000 kr, skrev vores advokater [en udførlig stævning](staevning). Med pengene fra det næste delmål, 250.000 kr, havde vi råd til at stævne justitsminister Søren Pape, som repræsentant for den danske stat.
Vi ved ikke hvor meget det vil ende med at koste. Det er dyrt at sikre vores rettigheder, og vi er gået hele vejen!
- heading: Tjener I nogle penge på det her? Hvad hvis der er penge i overskud?
id: areYouMakingMoney
answer: Nej, og hvis det er penge til overs går de til et lignende formål.
explanation: |
Pengene går til at betale advokatkontoret ([Bird & Bird](https://www.twobirds.com)) og til at betale sagsomkostninger. Hvis der er penge “til overs” vil de gå til informationsmateriale om logning og/eller til en non-profit-organisation med samme formål.
- heading: Hvad er det egentligt der bliver logget om mig?
id: whatIsBeingLoggedAboutMe
answer: Bl.a. hvilken telefon du har, hvor du er og hvem du kommunikerer med.
explanation: |
Hvor din mobil er, og hvem du kommunikerer med. Du kan bede din udbyder sende dig en kopi af alt hvad de har registreret. I teleskandalerne viste det sig at de også logger indhold, og upfordret deler det med politiet.
- heading: Ministeren siger at han skal bruge tid på at ændre lovgivningen, det er vel fair nok?
id: ministerFair
answer: Nej.
explanation: |
Allerede da totalovervågningen blev indført fik den danske stat at vide at det ville være ulovligt.
En lov og en bekendtgørelse kan være ulovlige, hvis de eks. strider imod en overstatslig regel, i dette tilfælde EU-Charteret, eller hvis de underforstået ønsker at overholde Menneskerettighedskonventionen.
Ved Digital Rights-dommen blev det slået fast at totalovervågning var i strid med Charteret, og i Tele2/Watson-dommen blev det slået fast igen. Intet af dette har været en overraskelse, og dommene betyder “kun” at staten ikke kan bruge uvidenhed som undskyldning.
Justitsministeriet ønsker at indføre en ny form for overvågning. Det er deres ret at foreslå ny lovgivning, men det betyder ikke at man kan opretholde en igangværende forbrydelse.
Hvis man går over for rødt må man ikke standse midt i krydset, og blive stående indtil man har opfundet en jetpack så man i fremtiden kan flyve over for rødt. Hvis man laver et bankrøveri og alarmen går, er det ikke en lovlig undskyldning at tage gidsler, mens man prøver at finde på en plan for sit næste bankrøveri.
Logning er en kriminel handling og den eneste grund til at justitsministeren ikke sidder i fængsel, er at kun Folketinget kan stille ham foran en dommer.
- heading: Har I overvejet borgerforslag.dk?
id: borgerforslag
answer: Ja, men det vil smadre hele formålet.
explanation: |
Vi har fravalgt borgerforslag.dk, fordi det ikke er et politisk spørgsmål. Logningen er ulovlig, og det er der ingen tvivl om. Retssagen bliver en kavalkade af undvigelsesmanøvrer, forsinkelsestaktikker og bullshitting fra statens side. Kammeradvokaten er specialist i at ændre fokus, og det bliver en cirkusforestilling af en anden verden.
Derfor er det nødvendigt at vi holder fokus. Et borgerforslag kan blive til et beslutningsforslag i Folketinget, og det vil fjerne fokus. Det vil også være i strid med [Grundlovens § 3](https://www.retsinformation.dk/Forms/R0710.aspx?id=45902#P3), for Folketinget må kun bestemme politiske ting. De må ikke sige at noget er ulovligt. De kan forholde sig til at noget er ulovligt, men det gør de allerede. Langsomt.
Folketinget kan også stille Søren Pape og Nick Hækkerup foran en dommer, iht. [Grundlovens § 13](https://www.retsinformation.dk/Forms/R0710.aspx?id=45902#P13). Men kun en dommer i Rigsretten, iht. [Grundlovens § 16](https://www.retsinformation.dk/Forms/R0710.aspx?id=45902#P16). Og det skal ske i [Udvalget for Forretningsordenen](https://www.retsinformation.dk/Forms/R0710.aspx?id=186146#idf4f8c639-b3b8-4850-a0e5-18273ab31d25), hvor alle partier er repræsenteret. Men ingen har foreslået det. En folketingsbeslutning vil hverken gøre til eller fra. Den vil bare blive makuleret, fordi det ikke er sådan man stiller ministre til ansvar.
Vi har kontakt til alle Folketingets partier, og vi gør hvad vi kan for at holde offentlighedens fokus. Underskriftindsamlinger og borgerforslag er en velment kæp i hjulet. Hvis du har lyst til at hjælpe os, kan du skrive til folketingets partier, medierne, dine venner og din familie. Hver dag bliver der opsamlet data på ulovlig vis, og det sætter uskyldige bag tremmer [eller værre](https://www.youtube.com/watch?v=PxwEwwlDM8Q).
- heading: Må I samle penge ind?
id: indsamlingstilladelse
answer: Ja
explanation: |
Vi er [godkendt](/indsamlingstilladelse) af Indsamlingsnævnet.
---

View File

@ -1,111 +0,0 @@
---
layout: indexpage
lang: en
permalink: /
sections:
- id: intro
heading: Let's stop the mass surveillance!
content: |
The mass surveillance conducted by European governments has on two occasions been struck down by the European Court of Justice. Most recently this happened in 2016 when the court reviewed the joint case of Tele2 from Sweden and Tom Watson et al from England and Wales. However Danish politicians and telco industry refuse to honour fundamental rights and continue to retain data illegally.
We are a motley crew of human rights advocates and privacy campaigners that have come together to use the courts to send a simple message: Honour the law and respect our fundamental rights.
We have filed our suit against the Danish ministry of justice. You can download the subpœna (in Danish) [here (pdf)](https://ulovliglogning.dk/staevning). The lawsuit has been deemed important and as such referred to district court, but the government has twice been successful in delaying proceedings. Currently the case is on hold until March 2020, awaiting the decision by the European Court of Justice in the case of [Ordre des barreaux francophones and others](https://eur-lex.europa.eu/legal-content/EN/TXT/?qid=1573743410518&uri=CELEX:62018CN0520).
There is no doubt that we will win the case, so the government has no other tactic than to delay the inevitable while trying to bankrupt us. This is done by submitting ridiculous pleadings, which we are forced to pay our attorneys to respond to. Thus we need your help!
- id: butwhy
link: Why?
heading: But why?
content: |
The rule of law is necessary to maintain a democratic society. Privacy, liberty, peaceful protests and freedom of speech and thought are essential to keep the public debate free and open. The right to a fair trial by an independent judiciary is an overlying guarantee necessary to uphold any other right.
The illegal data retention infringes all of these rights. Illegally obtained evidence is admissible in Danish courts, so illegally retained metadata is commonly used by the prosecutors. The same data is useless for the defense. If your phone was not at the scene of the crime, the prosecutors argue it is proof of cover-up.
The police have easier access to the data, and your defense is not guaranteed to be notified of their access. The police edit the data before submitting it to the court. This was accepted until 2019, when they admitted that data had been corrupted in thousands of cases.
The Danish constitution have few rights, and most can be set aside by parliament. Our case relies on the EU Charter of Fundamental Rights, and will set a new precedent for human rights in Denmark.
- id: tellmemore
link: How?
heading: Tell me more!
content: |
The Danish telecom industry is still retaining data, in violation of the human rights of their customers. Attempting to justify their illegal actions, the Telecom Association have published a letter from the former minister of justice, Søren Pape Poulsen, telling them to disregard the law.
The minister's letter had no legal foundation, and we have decided to file suit against the state. A democratic society cannot tolerate officials threatening citizens and companies with prosecution if they honour the law.
Unfortunately all of the documents concerning the case and our organisation are only available in Danish.
* [Bylaws](/assets/docs/vedtaegter.pdf)
* [Audited financial statement 2018-2019](/assets/docs/2018-2019-regnskab.pdf)
* [Audited financial statement 2019-2020](/assets/docs/2019-2020-regnskab.pdf)
* [Audited financial statement 2020-2021](/assets/docs/2020-2021-regnskab.pdf)
* [Permission to fundraise 2020-2021](/indsamlingstilladelse)
- id: wannahelp
link: Help us!
heading: I want to help!
content: |
You can contact spokesperson [Rasmus Malver](https://twitter.com/rasmusmalver) on [Twitter](https://twitter.com/rasmusmalver) or via [SMS/Signal](sms:+4526809424).
You can also help us gain momentum through publicity. Contact your network, journalists, friends, and family - and explain why it is important to fight for our rights.
- id: faq
link: FAQ
content:
- heading: What about Søren Pape?
answer: He is no longer minister of justice.
explanation: |
Current minister is Nick Hækkerup, so he is party to the lawsuit. Data retention was equally illegal when Søren Pind (V), Mette Frederiksen (S), Karen Hækkerup (S), Morten Bødskov (S), Brian Arthur Mikkelsen (K) and Søren Pape (K) held the office. It is not a political issue. It is about honouring the law and not violating the fundamental rights.
Pape was special because he wrote [an illegal letter](papesbrev), requiring the telco network owners to continue to retain data. This was a violation of the constitution, but the same document states that only parliament can hold him responsible.
This case will, hopefully, change Danish politicians obvious and intentional violations of our human rights.
- heading: Why not TDC?
answer: Pape wrote a letter telling them to surveil illegally.
explanation: |
TDC claim ignorance of the law. With the letter from the minister, they argue that they lack the ability to understand the illegality of a ministerial order.
It will be more difficult and more expensive to argue a case against the state of Denmark. But it will set the precedent for future governments wanting to oppress the fundamental rights of the people.
- heading: Why should I care? If surveillance can hinder crime, I'm pro data retention!
answer: It is a myth that data retention helps the police.
explanation: |
Mass surveillance does not necessarily prevent or stop crime. It **can** lead to more arrests and fewer unsolved crimes, but mainly because innocent people will be punished. Having a database table of the location of unsolved crimes and a database table of everybody's movements makes it possible to collate data and prove that everybody is guilty.
Have you bought a crowbar recently or have you walked past a house that has been burgled? Mass surveillance requires you to [doublethink](https://en.wikipedia.org/wiki/Doublethink) to stay out of jail.
Honouring human rights does not leave the police blind as bats. Crime could be solved before 2006, but the police have to think for themselves. Who might be a suspect and why? It will still be possible to conduct surveillance, but only with sufficient democratic oversight.
- heading: Who's behind this?
answer: Foreningen imod Ulovlig Logning (The Association Against Illegal Surveillance).
explanation: |
Human rights jurist [Rasmus Malver](https://twitter.com/rasmusmalver) kickstarted the fundraising with a contribution of 30.000 DKK, and the second large donor was [Bitbureauet](https://bitbureauet.dk/). In January the movement gained traction and today 100s of people, businesses and organization have donated. An organization was created to hold the money, and it will all be used to pay the legal fees.
We have chosen IT- and EU-specialists [Bird & Bird](https://www.twobirds.com), and lawyer Martin von Haller leads the team.
- heading: What is the relationship to human rights?
answer: You have a right to privacy.
explanation: |
Human rights are your rights against governmental abuse. Some countries have human rights enshrined in their constitutions, but in Denmark, they mainly exist in the form of the European Convention on Human Rights ([pdf](http://www.echr.coe.int/Documents/Convention_ENG.pdf)). It was written after the second world war to avoid history repeating, and over time it has been updated to protect minorities and to avoid the emerging terrors from states on both sides of the iron curtain.
The people of the European Union has agreed upon an updated version of the convention in 2000, the EU Charter on Fundamental Rights ([pdf](http://www.europarl.europa.eu/charter/pdf/text_en.pdf)), where the protection of privacy is emphasized.
The Danish mass surveillance and retention of metadata is an obvious violation of both conventions, and it has been established that both are important parts of Danish law. The current surveillance is more intrusive than the surveillance conducted by both Gestapo and STASI.
You have the right not be the victim of this.
- heading: Are you profiting from this? What will happen if there's too much money?
answer: No. And excess funding will be forwarded to a similar case or organization.
explanation: |
All of the funds will go to paying legal fees and the attorney, ([Bird & Bird](https://www.twobirds.com)). If we end up with excess money (unlikely), it will be forwarded to a similar case or organization.
- heading: What is being retained about me?
answer: Among other things what phone you have, where you are and who you're communicating with.
explanation: |
The location of your mobile phone every time you send or receive a text or a call. Also who you communicate with. You can ask your provider for a copy of the data.
- heading: The minister says he needs time to replace the legislation. Isn't that ok?
answer: No.
explanation: |
When mass surveillance was brought in on EU level, politicians were told it violates human rights, and thus it would be illegal. When implemented in Denmark they were told the same. When the ministerial notice was issued they were told again.
A ministerial notice (bekendtgørelse) cannot exist without a legal basis in a law, and a law implementing EU regulation cannot exist when the regulation has been struck down.
The European Court of Justice was unusually clear when striking down the surveillance regulation in both the case of Digital Rights and Tele2/Watson. It did not come as a surprise to anybody, and obviously, it withdrew any legal basis from the ministerial notice.
Justice minister Søren Pape Poulsen wants to continue the surveillance and is desperately looking for a way to sneak it through parliament. There is a large majority for doing it, but it would require Danish secession from the Council of Europe and potentially the European Union. Denmark would then stand with Belarus as one of only two European states not a party to the Convention on Human Rights.
Metadata retention is a criminal act, and the minister is only kept out of jail by a constitutional provision stating that only other politicians can bring him to justice.
---

View File

@ -1,17 +0,0 @@
---
layout: singlepage
lang: en
permalink: /intetatskjule
id: intetatskjule
heading:
---
# Perfekt til julehyggen!
Når man [giver en donation i julegave](https://ulovliglogning.dk/gavekort), eller opfordrer venner og familie til at donere, kan man risikere at møde påstanden *“jeg har ikke noget at skjule”*. Vi har det perfekte redskab til de situationer: En fuldmagt.
Med fuldmagten indhenter Foreningen imod Ulovlig Logning, på deres vegne, dokumenter og informationer fra alle de kendte kilder. Inklusiv, selvfølgelig, logningsdata. Med de indhentede data skaber vi en profil af personen, som vi sender tilbage til vedkommende. Efter profilen er afsendt sletter vi alle data, inkl. fuldmagten, og gør alle tredjeparter opmærksomme på at vi ikke længere repræsenterer fuldmagtsgiver.
For mere information, kontakt gdpr \[hos\] ulovliglogning.dk.
Postkortene er gratis, men du må [meget gerne donere](https://ulovliglogning.dk#wannahelp). De kan bl.a. hentes i [Labitat](https://labitat.dk) på HC Ørstedsvej 5 på Frederiksberg. Vi kan sende dem, men du skal selvfølgelig selv betale portoen. Kontakt os på info \[hos\] ulovliglogning.dk.

View File

@ -1,8 +0,0 @@
---
title: signup
permalink: /redirect/fail/
redirect: true
lang: da
layout: centered
---
Øv! noget gik galt! prøv igen, eller kontakt os på [Twitter](https://twitter.com/ulovliglogning)

View File

@ -1,8 +0,0 @@
---
title: signup
permalink: /redirect/fail/
redirect: true
lang: en
layout: centered
---
Damn! something went wrong :( try again or contact us on [Twitter](https://twitter.com/ulovliglogning)

View File

@ -1,8 +0,0 @@
---
title: signup
permalink: /redirect/success/
redirect: true
lang: da
layout: centered
---
Tak! du er nu skrevet op til vores nyhedsbrev!

View File

@ -1,8 +0,0 @@
---
title: signup
permalink: /redirect/success/
redirect: true
lang: en
layout: centered
---
Thank you! You are now signed up for our newsletter!

View File

@ -1,257 +0,0 @@
module Jekyll
module Humanize
##
# This is a port of the Django app `humanize` which adds a "human touch"
# to data. Given that Jekyll produces static sites, some of the original
# methods do not make logical sense (e.g. naturaltime).
#
# Source code can be viewed here:
# https://github.com/django/django
#
# Copyright (c) Django Software Foundation and individual contributors.
# All rights reserved.
####################
# PUBLIC METHODS #
####################
def ordinal(value, flag=nil)
##
# Converts an integer to its ordinal as a string. 1 is '1st', 2 is '2nd',
# 3 is '3rd', etc. Works for any integer.
#
# Usage:
# {{ somenum }} >>> 3
# {{ somenum | ordinal }} >>> '3rd'
# {{ somenum | ordinal: "super" }} >>> '3<sup>rd</sup>'
begin
value = value.to_i
flag.to_s.downcase!
rescue Exception => e
puts "#{e.class} #{e}"
return value
end
suffix = ""
suffixes = ["th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th"]
unless [11, 12, 13].include? value % 100 then
suffix = suffixes[value % 10]
else
suffix = suffixes[0]
end
unless flag and flag == "super"
return "#{value}%s" % suffix
else
return "#{value}<sup>%s</sup>" % suffix
end
end
def intcomma(value, delimiter=",")
##
# Converts an integer to a string containing commas every three digits.
# For example, 3000 becomes '3,000' and 45000 becomes '45,000'.
# Optionally supports a delimiter override for commas.
#
# Usage:
# {{ post.content | number_of_words }} >>> 12345
# {{ post.content | number_of_words | intcomma }} >>> '12,345'
# {{ post.content | number_of_words | intcomma: '.' }} >>> '12.345'
begin
orig = value.to_s
delimiter = delimiter.to_s
rescue Exception => e
puts "#{e.class} #{e}"
return value
end
copy = orig.strip
copy = orig.gsub(/^(-?\d+)(\d{3})/, "\\1#{delimiter}\\2")
orig == copy ? copy : intcomma(copy, delimiter)
end
INTWORD_HELPERS = [
[6, "million"],
[9, "billion"],
[12, "trillion"],
[15, "quadrillion"],
[18, "quintillion"],
[21, "sextillion"],
[24, "septillion"],
[27, "octillion"],
[30, "nonillion"],
[33, "decillion"],
[100, "googol"],
]
def intword(value)
##
# Converts a large integer to a friendly text representation. Works best
# for numbers over 1 million. For example, 1000000 becomes '1.0 million',
# 1200000 becomes '1.2 million' and 1200000000 becomes '1.2 billion'.
#
# Usage:
# {{ largenum }} >>> 1200000
# {{ largenum | intword }} >>> '1.2 million'
begin
value = value.to_i
rescue Exception => e
puts "#{e.class} #{e}"
return value
end
if value < 1000000
return value
end
for exponent, text in INTWORD_HELPERS
large_number = 10 ** exponent
if value < large_number * 1000
return "%#{value}.1f #{text}" % (value / large_number.to_f)
end
end
return value
end
def apnumber(value)
##
# For numbers 0-9, returns the number spelled out. Otherwise, returns the
# number. This follows Associated Press style.
#
# Usage:
# {{ num }} >>> 6
# {{ num | apnumber }} >>> six
begin
value = value.to_i
rescue Exception => e
puts "#{e.class} #{e}"
return value
end
unless value >= 0 and value < 10 then
return value
else
return ["zero", "one", "two", "three", "four", "five", "six",
"seven", "eight", "nine"][value]
end
end
def naturalday(date)
##
# For date values that are within a 9 day stretch from present day, this
# will attempt to return the string representation in the format of today,
# tomorrow, yesterday, "in # days" or "# days ago". Otherwise, returns a
# string formatted according to the "date_format" setting in your
# _config.yml file using strftime format (if not defined, it will default
# to "%m/%d/%Y").
#
# Usage:
# TODAY == 01/26/2014
# {{ post.updated }} >>> 01/25/2014
# {{ post.updated | naturalday }} >>> 'yesterday'
# {{ post.date }} >>> 01/19/2014
# {{ post.date | naturalday }} >>> 'seven days ago'
begin
site = @context.registers[:site]
date_format = site.config['humanize']['date_format']
date = time(date).to_date
rescue Exception => e
puts "#{e.class} #{e}"
return date
end
unless date_format then
date_format = "%m/%d/%Y"
end
today = time(Time.now).to_date
delta = (date - today).to_i
case delta
when 0
return "today"
when 1
return "tomorrow"
when 2..9
delta = apnumber(delta)
return "in #{delta} days"
when -1
return "yesterday"
when -9..-2
delta = apnumber(delta * -1)
return "#{delta} days ago"
else
return date.strftime("#{date_format}")
end
end
def filesize(value)
##
# For filesize values in bytes, returns the number rounded to 3
# decimal places with the correct suffix.
#
# Usage:
# {{ bytes }} >>> 123456789
# {{ bytes | filesize }} >>> 117.738 MB
filesize_tb = 1099511627776.0
filesize_gb = 1073741824.0
filesize_mb = 1048576.0
filesize_kb = 1024.0
begin
value = value.to_f
rescue Exception => e
puts "#{e.class} #{e}"
return value
end
if value >= filesize_tb
return "%s TB" % (value / filesize_tb).to_f.round(3)
elsif value >= filesize_gb
return "%s GB" % (value / filesize_gb).to_f.round(3)
elsif value >= filesize_mb
return "%s MB" % (value / filesize_mb).to_f.round(3)
elsif value >= filesize_kb
return "%s KB" % (value / filesize_kb).to_f.round(0)
elsif value == 1
return "1 byte"
else
return "%s bytes" % value.to_f.round(0)
end
end
#####################
# PRIVATE METHODS #
#####################
private
def time(input)
case input
when Time
input
when String
Time.parse(input)
else
Jekyll.logger.error "Invalid Date:", "'#{input}' not valid datetime."
exit(1)
end
end
end
end
Liquid::Template.register_filter(Jekyll::Humanize)

View File

@ -1,35 +0,0 @@
#!/bin/bash
error="\033[0;31m"
success="\033[0;32m"
normal="\033[0m"
#get config vars
source _scripts/config.sh
if [[ -z $jekyll_dir || -z $remote_username || -z $remote_password || -z $remote_host || -z $remote_dir ]]; then
echo -e "${error}FAILED: You have ommited one or more values from the config file, see the 'config-example.sh' file for the required values. Or maybe you need to create a 'config.sh' file in the '_scripts' directory.${normal}"
exit 1
fi
echo -e "${success}Starting build…${normal}"
#Disable SSL check for lftp, this fails on our host :(
echo "set ssl:verify-certificate no" > ~/.lftprc
if [ -d "$jekyll_dir" ]; then
jekyll build --strict_front_matter
if [[ $? != 0 ]]; then
echo -e "${error}FAILED: DID NOT DEPLOY!${normal}"
exit 1
else
echo -e "${success}Build succeded, now uploading to FTP server${normal}"
lftp -u ${remote_username},${remote_password} -e "mirror -R -p -P=10 --only-newer -v ${jekyll_dir}/_site/ ${remote_dir};quit" ftp://${remote_host}
if [[ $? != 0 ]]; then
echo -e "${error}FAILED: Something went wrong trying to upload to the FTP server${normal}"
exit 1
else
echo -e "${success}FTP upload complete, deployment DONE!${normal}"
fi
fi
fi

View File

@ -1,8 +0,0 @@
#!/bin/bash
jekyll_dir="/srv/jekyll"
remote_host="ulovliglogning.dk"
remote_dir="/"
remote_username="username"
remote_password="SUPERSECRETPASSWORD"

View File

@ -1,24 +1,22 @@
body, html {
min-height: 100%;
//min-height: 100%;
height: 100%;
height: 100vh;
}
body {
background: #2A2A2A;
color: #FFF;
height: 100%;
}
::selection{
background:rgba(130, 43, 0, 0.99);
//height: 100%;
//overflow-y: scroll;
//-webkit-overflow-scrolling: touch;
&[data-env="development"] {
background: red;
}
}
footer {
text-align: center;
margin: 1rem;
color: #AAA;
}
.hidden {
display: none !important;
}
}

View File

@ -1,149 +1,52 @@
html {
font-family: 'Roboto', sans-serif;
font-size: 16px;
}
body {
font-family: 'Open Sans', sans-serif;
font-family: 'Roboto', sans-serif;
}
h1, h2, h3 {
font-family: 'Montserrat', sans-serif;
font-weight: 500;
h1, h2, h3, h4, h5, h6 {
font-family: 'Eczar', serif;
}
h1 {
font-size: 2.3rem;
line-height: 2.7rem;
font-size: 4rem;
text-shadow: 4px 3px 0px rgb(90, 85, 81);
margin: 4rem 0 1rem;
display: block;
margin-bottom: 2rem;
hyphens: inherit;
@include media-breakpoint-up(sm) {
font-size: 2.7rem;
line-height: 3.3rem;
margin-bottom: 0;
width: 90vw;
.even & {
text-shadow: 4px 3px 0px rgba(0,0,0,0.15);
}
@media screen and (max-width: $screen-phone) {
& {
font-size: 2.5rem;
text-shadow: 3px 2px 0px rgb(90, 85, 81);
}
.even & {
text-shadow: 3px 2px 0px rgba(0,0,0,0.15);
}
}
}
h3 {
margin: 0 0 20px;
color: #ff5800;
font-size: 1.3rem;
line-height: 1.6rem;
@include media-breakpoint-up(sm) {
font-size: 1.6rem;
line-height: 1.9rem;
}
text-shadow: 0 2px 0 #000;
font-size: 1.5rem;
line-height: 2rem;
}
p {
margin: 0 0 1rem 0;
font-size: 1rem;
line-height: 1.5rem;
break-inside: avoid;
@include media-breakpoint-up(sm) {
font-size: 1.2rem;
line-height: 1.6rem;
}
@include media-breakpoint-up(xl) {
font-size: 1rem;
line-height: 1.4rem;
}
&.right {
text-align: right;
}
&.box {
padding: 7px;
margin: -7px -7px 2rem;
background: $alternate-bg;
color: #333;
border-radius: 5px;
a {
box-shadow: 0 2px 0 #FFF;
}
&.green {
background: $donationCounter_dark;
color: white;
}
}
}
em {
font-style: italic;
}
strong {
font-weight: 700;
line-height: 1.3rem;
text-align: justify;
break-inside: avoid;
}
a {
color: #FFF;
text-decoration: none;
box-shadow: 0 2px 0 #ff5800;
box-shadow: 0 2px 0 #ff5800;
.even & {
box-shadow: 0 2px 0 #FFF;
}
}
ol {
list-style-type: none;
list-style-position: outside;
counter-reset: li;
margin: 0 0 2rem;
li {
line-height: 1.4rem;
counter-increment: li;
&::before {
content: counter(li, decimal-leading-zero);
font-family: 'Roboto Mono', monospace;
font-weight: 500;
color: $color-international-orange;
display: inline-block;
width: 2rem;
margin-left: -2.5rem;
text-align: right;
padding-right: .5rem;
}
@include media-breakpoint-up(sm) {
font-size: 1.2rem;
line-height: 1.6rem;
}
@include media-breakpoint-up(xl) {
font-size: 1rem;
line-height: 1.4rem;
}
}
ol {
margin: 0 0 0 .5rem;
}
}
ul {
line-height:1.5rem;
}
table {
td:first-child {
font-weight: bold;
text-align: right;
line-height: 1.4rem;
padding-right: .5rem;
word-break: keep-all;
}
@include media-breakpoint-up(sm) {
font-size: 1.2rem;
line-height: 1.6rem;
}
@include media-breakpoint-up(xl) {
font-size: 1rem;
line-height: 1.4rem;
}
}

View File

@ -1,35 +1,9 @@
// Colors
$body-bg: #2A2A2A;
$alternate-bg: #e64f00;
$color-mine-shaft: #2A2A2A;
$color-international-orange: #e64f00;
$background-primary: $color-mine-shaft;
$background-alternative: $color-international-orange;
$background-alternative-dark: darken($background-alternative, 20);
$donationCounter_light: #49a540;
$donationCounter_dark: #407b3b;
$alternate-bg: #ff5800;
/* Size */
$screen-xs: 600px !default;
$screen-xs-min: $screen-xs !default;
$screen-phone: $screen-xs-min !default;
$screen-sm: 960px !default;
$screen-sm-min: $screen-sm !default;
$screen-tablet: $screen-sm-min !default;
$screen-md: 1280px !default;
$screen-md-min: $screen-md !default;
$screen-tablet: $screen-md-min !default;
$grid-breakpoints: (
xs: 0,
sm: 576px,
md: 768px,
lg: 992px,
xl: 1200px
) !default;

View File

@ -1,125 +0,0 @@
// https://getbootstrap.com/files/4.0/layout/overview/#responsive-breakpoints
// Breakpoint viewport sizes and media queries.
//
// Breakpoints are defined as a map of (name: minimum width), order from small to large:
//
// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)
//
// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.
// Name of the next breakpoint, or null for the last breakpoint.
//
// >> breakpoint-next(sm)
// md
// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
// md
// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))
// md
@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
$n: index($breakpoint-names, $name);
@return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
}
// Minimum breakpoint width. Null for the smallest (first) breakpoint.
//
// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
// 576px
@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {
$min: map-get($breakpoints, $name);
@return if($min != 0, $min, null);
}
// Maximum breakpoint width. Null for the largest (last) breakpoint.
// The maximum value is calculated as the minimum of the next one less 0.02px
// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.
// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max
// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.
// See https://bugs.webkit.org/show_bug.cgi?id=178261
//
// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
// 767.98px
@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
$next: breakpoint-next($name, $breakpoints);
@return if($next, breakpoint-min($next, $breakpoints) - .02px, null);
}
// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.
// Useful for making responsive utilities.
//
// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
// "" (Returns a blank string)
// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
// "-sm"
@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {
@return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}");
}
// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
// Makes the @content apply to the given breakpoint and wider.
@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {
$min: breakpoint-min($name, $breakpoints);
@if $min {
@media (min-width: $min) {
@content;
}
} @else {
@content;
}
}
// Media of at most the maximum breakpoint width. No query for the largest breakpoint.
// Makes the @content apply to the given breakpoint and narrower.
@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {
$max: breakpoint-max($name, $breakpoints);
@if $max {
@media (max-width: $max) {
@content;
}
} @else {
@content;
}
}
// Media that spans multiple breakpoint widths.
// Makes the @content apply between the min and max breakpoints
@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {
$min: breakpoint-min($lower, $breakpoints);
$max: breakpoint-max($upper, $breakpoints);
@if $min != null and $max != null {
@media (min-width: $min) and (max-width: $max) {
@content;
}
} @else if $max == null {
@include media-breakpoint-up($lower, $breakpoints) {
@content;
}
} @else if $min == null {
@include media-breakpoint-down($upper, $breakpoints) {
@content;
}
}
}
// Media between the breakpoint's minimum and maximum widths.
// No minimum for the smallest breakpoint, and no maximum for the largest one.
// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {
$min: breakpoint-min($name, $breakpoints);
$max: breakpoint-max($name, $breakpoints);
@if $min != null and $max != null {
@media (min-width: $min) and (max-width: $max) {
@content;
}
} @else if $max == null {
@include media-breakpoint-up($name, $breakpoints) {
@content;
}
} @else if $min == null {
@include media-breakpoint-down($name, $breakpoints) {
@content;
}
}
}

View File

@ -1,7 +1,7 @@
.camera {
position: fixed;
right: 0px;
top: 50px;
right: -7px;
top: 20px;
width: 70px;
z-index: 1000;
pointer-events: none;

View File

@ -1,187 +0,0 @@
$donationCounter_percentFromGoal1: 100 - ($donationCounter_donated / $donationCounter_goal1 * 100);
$donationCounter_percentFromGoal2: 100 - ($donationCounter_donated / $donationCounter_goal2 * 100);
$donationCounter_percentFromGoal3: 100 - ($donationCounter_donated / $donationCounter_goal3 * 100);
$donationCounter_percentFromGoal4: 100 - ($donationCounter_donated / $donationCounter_goal4 * 100);
$goal1_width: $donationCounter_goal1 / $donationCounter_goal4 * 100;
$goal2_width: ($donationCounter_goal2 - $donationCounter_goal1) / $donationCounter_goal4 * 100;
$goal3_width: ($donationCounter_goal3 - $donationCounter_goal2) / $donationCounter_goal4 * 100;
$goal4_width: ($donationCounter_goal4 - $donationCounter_goal3) / $donationCounter_goal4 * 100;
.donationContainer {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 100px;
&:before, &:after {
content: "";
height: 30px;
width: 100%;
display: block;
position: absolute;
z-index: 1;
}
&:before {
background: linear-gradient(to left bottom, $body-bg 49%, transparent 50%);
top: 0px;
}
&:after {
background: linear-gradient(to left bottom, transparent 49%, $alternate-bg 50%);
bottom: 0;
}
.total {
display: block;
position: absolute;
left: 50%;
top: -35px;
transform: translate3d(-50%,0,0);
font-size: 1.5rem;
text-align: center;
sub {
display: block;
font-size: .7rem;
opacity: .5;
}
}
.overlay {
display: inline-block;
height: 100%;
border-right: 2px solid rgba(0,0,0,.3);
line-height: 100px;
&:last-child {
border-right: none;
}
&.goal1 {
width: $goal1_width + unquote("%");
line-height: 74px;
@if $donationCounter_donated > $donationCounter_goal1 {
animation: donationCounterCelebrate 5s linear 1s forwards;
}
}
&.goal2 {
width: $goal2_width + unquote("%");
line-height: 84px;
@if $donationCounter_donated > $donationCounter_goal2 {
animation: donationCounterCelebrate 5s linear 1.5s forwards;
}
}
&.goal3 {
width: $goal3_width + unquote("%");
line-height: 95px;
@if $donationCounter_donated > $donationCounter_goal3 {
animation: donationCounterCelebrate 5s linear 2s forwards;
}
}
&.goal4 {
width: $goal4_width + unquote("%");
line-height: 116px;
@if $donationCounter_donated > $donationCounter_goal4 {
animation: donationCounterCelebrate 5s linear 2s forwards;
}
}
}
}
.donationCounter {
width: 100%;
height: 100%;
overflow: hidden;
font-size: 1.3rem;
background: linear-gradient(to right, $donationCounter_light 50%, $donationCounter_dark 50%);
background-size: 200%;
background-position: 100%;
display: flex;
flex-direction: row;
justify-content: center;
text-align: center;
animation: donationCounterSlideIn .5s linear .5s forwards;
sub {
display: block;
font-size: .8rem;
opacity: .5;
}
}
@keyframes donationCounterCelebrate {
0% {
background: $donationCounter_light;
//ransform: scale(1);
}
20% {
background: #efcc3d;
}
40% {
background: #5670de;
//transform: scale(1.4);
}
60% {
background: #de41b2;
}
80% {
background: #49ca61;
}
100% {
background: $donationCounter_light;
}
}
@keyframes donationCounterSlideIn {
from {
background-position: 100%;
}
to {
background-position: $donationCounter_percentFromGoal4 + unquote("%");
}
}
@include media-breakpoint-down(sm) {
#intro {
padding-bottom: 8rem;
}
.donationContainer {
position: fixed;
height: 40px;
&:before, &:after {
display: none;
}
.total {
left:0;
transform: none;
text-align: center;
width: 100%;
background: rgba($body-bg, .8);
padding: 5px;
margin: -10px;
}
.overlay {
&.goal1, &.goal2, &.goal3, &.goal4 {
line-height: 40px;
font-size: .9rem;
}
}
}
}

View File

@ -1,33 +0,0 @@
$flag-icon-css-path: '../img' !default;
$flag-icon-rect-path: '/flags' !default;
.flag-icon-background {
background-size: contain;
background-position: 50%;
background-repeat: no-repeat;
}
.flag-icon {
@extend .flag-icon-background;
position: relative;
display: inline-block;
width: (4 / 3) * 30px;
line-height: 30px;
&:before {
content: '\00a0';
}
&.flag-icon-squared {
width: 1em;
}
}
@mixin flag-icon($country) {
.flag-icon-#{$country} {
background-image: url(#{$flag-icon-css-path}#{$flag-icon-rect-path}/#{$country}.svg);
}
}
@include flag-icon(da);
@include flag-icon(en);
@include flag-icon(de);
@include flag-icon(fr);

View File

@ -1,28 +1,28 @@
/* montserrat-regular - latin */
/* eczar-500 - latin */
@font-face {
font-family: 'Montserrat';
font-style: normal;
font-weight: 400;
src: url('../fonts/montserrat-v12-latin-regular.eot'); /* IE9 Compat Modes */
src: local('Montserrat Regular'), local('Montserrat-Regular'),
url('../fonts/montserrat-v12-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/montserrat-v12-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/montserrat-v12-latin-regular.woff') format('woff'), /* Modern Browsers */
url('../fonts/montserrat-v12-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/montserrat-v12-latin-regular.svg#Montserrat') format('svg'); /* Legacy iOS */
}
/* montserrat-500 - latin */
@font-face {
font-family: 'Montserrat';
font-family: 'Eczar';
font-style: normal;
font-weight: 500;
src: url('../fonts/montserrat-v12-latin-500.eot'); /* IE9 Compat Modes */
src: local('Montserrat Medium'), local('Montserrat-Medium'),
url('../fonts/montserrat-v12-latin-500.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/montserrat-v12-latin-500.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/montserrat-v12-latin-500.woff') format('woff'), /* Modern Browsers */
url('../fonts/montserrat-v12-latin-500.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/montserrat-v12-latin-500.svg#Montserrat') format('svg'); /* Legacy iOS */
src: url('../fonts/eczar-v6-latin-500.eot'); /* IE9 Compat Modes */
src: local('Eczar Medium'), local('Eczar-Medium'),
url('../fonts/eczar-v6-latin-500.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/eczar-v6-latin-500.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/eczar-v6-latin-500.woff') format('woff'), /* Modern Browsers */
url('../fonts/eczar-v6-latin-500.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/eczar-v6-latin-500.svg#Eczar') format('svg'); /* Legacy iOS */
}
/* eczar-600 - latin */
@font-face {
font-family: 'Eczar';
font-style: normal;
font-weight: 600;
src: url('../fonts/eczar-v6-latin-600.eot'); /* IE9 Compat Modes */
src: local('Eczar SemiBold'), local('Eczar-SemiBold'),
url('../fonts/eczar-v6-latin-600.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/eczar-v6-latin-600.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/eczar-v6-latin-600.woff') format('woff'), /* Modern Browsers */
url('../fonts/eczar-v6-latin-600.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/eczar-v6-latin-600.svg#Eczar') format('svg'); /* Legacy iOS */
}
/* roboto-regular - latin */
@ -50,43 +50,4 @@
url('../fonts/roboto-v18-latin-700.woff') format('woff'), /* Modern Browsers */
url('../fonts/roboto-v18-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/roboto-v18-latin-700.svg#Roboto') format('svg'); /* Legacy iOS */
}
/* roboto-mono-regular - latin */
@font-face {
font-family: 'Roboto Mono';
font-style: normal;
font-weight: 400;
src: url('../fonts/roboto-mono-v6-latin-regular.eot'); /* IE9 Compat Modes */
src: local('Roboto Mono'), local('RobotoMono-Regular'),
url('../fonts/roboto-mono-v6-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/roboto-mono-v6-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/roboto-mono-v6-latin-regular.woff') format('woff'), /* Modern Browsers */
url('../fonts/roboto-mono-v6-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/roboto-mono-v6-latin-regular.svg#RobotoMono') format('svg'); /* Legacy iOS */
}
/* roboto-mono-500 - latin */
@font-face {
font-family: 'Roboto Mono';
font-style: normal;
font-weight: 500;
src: url('../fonts/roboto-mono-v6-latin-500.eot'); /* IE9 Compat Modes */
src: local('Roboto Mono Medium'), local('RobotoMono-Medium'),
url('../fonts/roboto-mono-v6-latin-500.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/roboto-mono-v6-latin-500.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/roboto-mono-v6-latin-500.woff') format('woff'), /* Modern Browsers */
url('../fonts/roboto-mono-v6-latin-500.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/roboto-mono-v6-latin-500.svg#RobotoMono') format('svg'); /* Legacy iOS */
}
/* roboto-mono-700 - latin */
@font-face {
font-family: 'Roboto Mono';
font-style: normal;
font-weight: 700;
src: url('../fonts/roboto-mono-v6-latin-700.eot'); /* IE9 Compat Modes */
src: local('Roboto Mono Bold'), local('RobotoMono-Bold'),
url('../fonts/roboto-mono-v6-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/roboto-mono-v6-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/roboto-mono-v6-latin-700.woff') format('woff'), /* Modern Browsers */
url('../fonts/roboto-mono-v6-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/roboto-mono-v6-latin-700.svg#RobotoMono') format('svg'); /* Legacy iOS */
}

View File

@ -1,199 +1,105 @@
.cta {
display: none;
body[data-scrollmagicPanes="enabled"] {
#pinContainer {
height: 100% !important;
width: 100% !important;
overflow: hidden;
}
section {
position: absolute;
top: 100%;
margin-top: 30px;
&:first-child {
margin-top: 0;
}
}
}
@media screen and (min-width: 1200px) and (orientation:landscape) {
#intro {
position: relative;
padding-bottom: 8rem;
}
.cta {
display: inline;
position: absolute;
left: 5%;
bottom: 15%;
height: auto;
width: 200px;
box-shadow: none;
}
.ctaTxt {
display: none;
}
body.js {
h1 {
transition: all .5s linear;
}
#butwhy {
h1 {
opacity: 0;
transform: translateX(-100vw);
}
&.appear h1 {
opacity: 1;
transform: translateX(0);
}
}
}
nav {
display: flex;
background: #555;
background: $background-alternative-dark;
position: fixed;
z-index: 1000;
top: 0;
left: 0;
width: 100%;
-webkit-overflow-scrolling: touch;
white-space: nowrap;
.js & {
-ms-overflow-style: -ms-autohiding-scrollbar;
&::-webkit-scrollbar {
display: none;
}
}
.langSwitcher a {
margin-right: 0;
&.activeLang {
background: $background-alternative;
}
}
.center {
a {
display: none;
&[data-link-for="wannahelp"] {
display: inline-block;
background: $background-alternative;
animation: nav-link-pulse 2s linear infinite;
}
}
}
a,
label:before,
label:after {
display: inline-block;
padding: 10px;
box-shadow: none !important;
font-weight: normal;
}
.left,
.right {
flex: 1;
}
.right {
text-align: right;
input[type=checkbox] {
display: none;
}
label:before,
label:after {
display: block;
position: absolute;
top: 0;
right: 0;
cursor: pointer;
transition: all .2s ease-in;
}
label:before {
content: "Menu";
transform: translateX(0%) translate3d(0, 0, 0);
}
label:after {
content: "X";
transform: translateX(100%) translate3d(0, 0, 0);
background: $background-alternative;
width: 30px;
text-align: center;
padding: 3px;
font-size: 30px;
}
input[type=checkbox]:checked~label {
&:before {
transform: translateX(100%);
}
&:after {
transform: translateX(0%);
}
}
ul {
display: none;
position: absolute;
top: 36px;
left: 0;
right: 0;
width: 100%;
background: #555;
text-align: center;
li a {
display: block;
border-top: 1px solid #424242;
}
}
input[type=checkbox]:checked~ul {
display: block;
}
}
@include media-breakpoint-up(sm) {
.right label {
display: none;
}
.center a {
display: inline-block;
}
}
}
@keyframes nav-link-pulse {
0% {
background: $background-alternative;
}
50% {
background: $background-alternative-dark;
}
100% {
background: $background-alternative;
}
}
.signup {
width: 100%;
margin: 0 auto;
position: relative;
input {
display: block;
width: 100%;
border-radius: 0;
border: none;
padding: 5px 0;
height: 2rem;
text-align: center;
font-size: 1rem;
outline: none;
}
input[type="submit"] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
cursor: pointer;
color: #FFF;
background: darken($background-alternative, 20);
border-bottom: 2px solid darken($background-alternative, 25);
}
&:before,
&:after {
content: "";
position: absolute;
top: 0;
height: 100%;
width: 20px;
background: $background-alternative;
}
&:before {
left: -10px;
transform: skew(-15deg);
}
&:after {
right: -10px;
transform: skew(-15deg);
}
@include media-breakpoint-up(sm) {
width: 90%;
}
}
section {
&#intro {
h1 {
//margin: 8rem 0 3rem;
}
min-height: 100vh;
width: 100%;
position: relative;
//position: -webkit-sticky;
//position: sticky;
//overflow-y: auto;
//top: 0px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: $body-bg;
padding-bottom: 30px;
&:first-child {
padding-bottom: 0;
}
&:not(:first-child):before {
content: "";
width: 100%;
height: 30px;
position: absolute;
top: -30px;
right: 0;
background: linear-gradient(to left bottom, transparent 0%,transparent 49%,$body-bg 50%,$body-bg 100%);
}
&.even {
background: $alternate-bg;
&:before {
background: linear-gradient(to left bottom, transparent 0%,transparent 49%,$alternate-bg 50%,$alternate-bg 100%);
}
}
ul{
line-height:1.5em;
}
.paragraphs {
column-count: 2;
padding: 0 0 3rem;
margin: 1rem;
h3, p {
max-width: 300px;
font-family: 'Roboto', sans-serif;
}
p + h3 {
margin-top: 50px;
}
@media screen and (max-width: $screen-phone) {
& {
column-count: unset;
}
}
}
&#faq {
.paragraphs {
column-count: unset;
}
ul {
list-style-type: none;
li {
display: block;
margin: 0 300px 0 0;
&:nth-child(even) {
margin: 0 0 0 300px;
}
@media screen and (max-width: $screen-phone) {
& {
margin: 0 !important;
}
}
}
}
}
}

View File

@ -1,67 +0,0 @@
.qa {
width: 100%;
padding: 4rem 1.5rem 0;
padding-left: 2rem;
padding-right: 2rem;
box-sizing: border-box;
&:first-of-type{
padding-top: 0;
}
.qa--question,
.qa--answer {
box-sizing: border-box;
}
.qa--question {
padding-bottom: 1rem;
&:last-of-type {
padding-bottom: 0;
}
}
.qa--answer {
h3 {
color: white;
margin-bottom: 1em;
-moz-osx-font-smoothing: grayscale;
}
p {
max-width: 100%;
&:last-of-type {
margin-bottom: 0;
}
}
}
@include media-breakpoint-up(md) {
display: flex;
align-items: flex-start;
justify-content: center;
.qa--question {
width: 22rem;
padding-bottom: 35px;
margin-right: 2rem;
background-image: url(../img/question.svg);
background-position: bottom right;
background-repeat: no-repeat;
h3 {
text-align: right;
}
}
.qa--answer {
width: 40rem;
p {
margin-bottom: 1em;
&:last-of-type {
margin-bottom: 0;
}
}
}
}
}

View File

@ -1,95 +0,0 @@
section {
position: relative;
padding-top: 5rem;
padding-bottom: 3rem;
box-sizing: border-box;
min-height: 100vh;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
background-size: 100% 30px;
background-repeat: no-repeat;
background-position: bottom;
background-color: $background-primary;
background-image: linear-gradient(
to left bottom,
$background-primary 49%,
$background-alternative 50%
);
&:nth-of-type(even) {
background-color: $background-alternative;
background-image: linear-gradient(
to left bottom,
$background-alternative 49%,
$background-primary 50%
);
}
&:last-of-type {
background-image: none;
}
.content {
box-sizing: border-box;
padding-left: 2rem;
padding-right: 2rem;
}
.paragraphs {
word-break: break-word;
}
.heading {
h1 {
word-break: break-word;
}
img {
max-width: 100%;
display: block;
margin: 0 auto;
}
}
p {
max-width: 40rem;
}
& > p {
text-align: center;
padding: 2rem 1.5rem;
color: $background-alternative;
a {
color: $background-alternative;
}
}
@include media-breakpoint-up(sm) {
padding: 4rem 0;
.content {
display: flex;
align-items: flex-start;
padding: 0 2rem;
}
.paragraphs {
padding-left: 2rem;
}
.heading {
width: 22rem;
text-align: right;
align-items: baseline;
flex-direction:column;
img {
max-width: 100%;
display: block;
margin: 0 auto;
}
}
}
}

18
about.md Normal file
View File

@ -0,0 +1,18 @@
---
layout: default
title: About
permalink: /about/
---
This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](https://jekyllrb.com/)
You can find the source code for Minima at GitHub:
[jekyll][jekyll-organization] /
[minima](https://github.com/jekyll/minima)
You can find the source code for Jekyll at GitHub:
[jekyll][jekyll-organization] /
[jekyll](https://github.com/jekyll/jekyll)
[jekyll-organization]: https://github.com/jekyll

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

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.

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.

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.

Binary file not shown.

View File

@ -1,77 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title></title>
<style>
body{
background-color: #333;
font:13px normal Helvetica,Verdana;
}
div#breaking, div#banner{
max-width:600px;
background-color: #FFF;
padding:20px;
position:absolute;left:10%; top:100px;
box-shadow:#000 1em 1em 1em;
}
div#banner{background-color: #e64f00;text-transform:uppercase;padding:10px 20px;top:50px;height:50px;width:600px;}
#breaking *{color:#000;}
#breaking h1{font-size:22pt;margin:0 0 1em 0;padding:0;}
#banner h2{font-weight:bold;font-size:18pt;margin:0;padding:0;}
#breaking p{font-size:13px;margin:0 0 1em 0;line-height:1.15;}
#breaking a{text-decoration:underline;}
#breaking a:hover{color:#e64f00;}
#breaking p.quot{margin:0 4em 1em 2em;}
@media only screen and (orientation: portrait) {
div#breaking,div#banner{left:0;width:100%;box-shadow:none;padding:0;}
div#banner{top:0;padding:5px 0;}
div#breaking{top:50px;}
}
</style>
<!-- Facebook Open Graph -->
<meta property="og:locale" content="da_DK"/>
<meta property="og:site_name" content="Foreningen imod Ulovlig Logning"/>
<meta property="og:title" content="EU-Domstol: Telelogning skal stoppes nu!"/>
<meta property="og:url" content="https://ulovliglogning.dk/assets/docs/2020-10-06-pm-eu-dom.html"/>
<meta property="og:type" content="article"/>
<meta property="og:description" content="I en ny afgørelse går EU-Domstolen et skridt videre end i tidligere afgørelser, og understreger at regeringer og teleselskaber øjeblikkeligt skal stoppe overvågningen."/>
<meta property="og:image" content="https://ulovliglogning.dk/assets/img/2020-10-06-pm-twittercard.png"/>
<meta property="og:image:url" content="https://ulovliglogning.dk/assets/img/2020-10-06-pm-twittercard.png"/>
<meta property="og:image:secure_url" content="https://ulovliglogning.dk/assets/img/2020-10-06-pm-twittercard.png"/>
<meta property="article:published_time" content="2020-10-06T11:00:00+02:00"/>
<meta property="article:modified_time" content="2020-10-06T11:00:00+02:00" />
<meta property="article:section" content="info"/>
<!-- Google+ / Schema.org -->
<meta itemprop="name" content="Foreningen imod Ulovlig Logning"/>
<meta itemprop="headline" content="EU-Domstol: Telelogning skal stoppes nu!"/>
<meta itemprop="description" content="I en ny afgørelse går EU-Domstolen et skridt videre end i tidligere afgørelser, og understreger at regeringer og teleselskaber øjeblikkeligt skal stoppe overvågningen."/>
<meta itemprop="image" content="https://ulovliglogning.dk/assets/img/2020-10-06-pm-twittercard.png"/>
<meta itemprop="datePublished" content="2020-10-06"/>
<meta itemprop="author" content="Foreningen imod Ulovlig Logning"/>
<!--<meta itemprop="publisher" content="Aflyttet"/>--> <!-- To solve: The attribute publisher.itemtype has an invalid value -->
<!-- Twitter Cards -->
<meta name="twitter:title" content="EU-Domstol: Telelogning skal stoppes nu!"/>
<meta name="twitter:url" content="https://aflyttet.dk/dom-fra-eu-domstolen/"/>
<meta name="twitter:description" content="I en ny afgørelse går EU-Domstolen et skridt videre end i tidligere afgørelser, og understreger at regeringer og teleselskaber øjeblikkeligt skal stoppe overvågningen."/>
<meta name="twitter:image" content="https://ulovliglogning.dk/assets/img/2020-10-06-pm-twittercard.png"/>
<meta name="twitter:card" content="summary_large_image"/>
</head>
<body><div id="banner"><h2>Breaking (2020-10-06)</h2></div><div id="breaking">
<h1>EU-Domstol: Telelogning skal stoppes nu!</h1>
<p>I sin længe ventede afgørelse om telelogning bekræfter EU-Domstolen at den danske overvågning af mobiltelefoner er ulovlig. Domstolen går et skridt videre end i tidligere afgørelser, og understreger at regeringer og teleselskaber øjeblikkeligt skal stoppe overvågningen.</p>
<p>Allerede i december 2016 afgjorde EU-Domstolen at den danske logning var ulovlig, men skiftende regeringer har valgt at ignorere afgørelsen. I starten af 2017 erklærede Justitsministeriet at de havde 12 måneder fra afsigelsen til at foretage ændringerne. Der er nu gået 46 måneder.</p>
<p>I 2018 stævnede Foreningen imod Ulovlig Logning staten. Fordi sagen er principiel blev den henvist til Østre Landsret. Siden har Kammeradvokaten konsekvent bedt om udsættelse. Der har ikke været en frist, som der ikke er blevet bedt om udsættelse for. I august 2020 påstod Kammeradvokaten at dagens afgørelse fra EU-Domstolen først ville komme i januar 2021, så Østre Landsret udsatte sagen til oktober 2021.</p>
<p class="quot">“Vi er ekstatiske over at EU-Domstolen sætter regeringen og landsretten på plads,” siger talsperson Rasmus Malver fra Foreningen imod Ulovlig Logning. “Den ulovlige overvågning er slut. Hvis den ikke stopper i dag, kan der rejses traktatbrudssag imod Danmark. Overvågningspartier og telebranchen har ikke flere dårlige undskyldninger.”</p>
<p>Retssagen imod den danske stat fortsætter dog. “Denne sag har vist at politikere fra begge fløje åbenlyst er villige til at bryde loven, hvis det giver dem mulighed for at overvåge og kontrollere befolkningen. Vi har altid vidst at vi ville vinde, og formålet er at have en dom som i fremtiden kan bruges til at sætte grænser for magthavers krænkelser af vores fundamentale rettigheder. Overordnet har de danske domstole været alt for ukritiske. EU-Domstolens afgørelse er også en irettesættelse af dem: Når borgeres rettigheder krænkes, skal de gribe ind. Ikke lade sagerne samle støv i flere år.”</p>
<p>For mere information: Rasmus Malver <a href="tel:+4526809424">26 80 94 24</a></p>
<p><a href="https://curia.europa.eu/jcms/upload/docs/application/pdf/2020-10/cp200123en.pdf">EU-Domstolens pressemeddelelse (en)</a></p>
<p><a href="http://curia.europa.eu/juris/document/document.jsf?text=&docid=232084&pageIndex=0&doclang=EN&mode=req&dir=&occ=first&part=1&cid=5934051">EU-Domstolens afgørelse (en)</a></p>
<p><a href="http://curia.europa.eu/juris/document/document.jsf?text=&docid=232084&pageIndex=0&doclang=FR&mode=req&dir=&occ=first&part=1&cid=5934051">EU-Domstolens afgørelse (fr)</a></p>
</div></body>
</html>

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.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More