commit
aef3bc6b6b
10 changed files with 5098 additions and 0 deletions
@ -0,0 +1,11 @@
|
||||
root = true |
||||
|
||||
[*] |
||||
charset = utf-8 |
||||
trim_trailing_whitespace = true |
||||
|
||||
end_of_line = lf |
||||
insert_final_newline = true |
||||
|
||||
indent_style = space |
||||
indent_size = 4 |
@ -0,0 +1,117 @@
|
||||
## Node |
||||
# Logs |
||||
logs |
||||
*.log |
||||
npm-debug.log* |
||||
yarn-debug.log* |
||||
yarn-error.log* |
||||
lerna-debug.log* |
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report.html) |
||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json |
||||
|
||||
# Runtime data |
||||
pids |
||||
*.pid |
||||
*.seed |
||||
*.pid.lock |
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover |
||||
lib-cov |
||||
|
||||
# Coverage directory used by tools like istanbul |
||||
coverage |
||||
*.lcov |
||||
|
||||
# nyc test coverage |
||||
.nyc_output |
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) |
||||
.grunt |
||||
|
||||
# Bower dependency directory (https://bower.io/) |
||||
bower_components |
||||
|
||||
# node-waf configuration |
||||
.lock-wscript |
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html) |
||||
build/Release |
||||
|
||||
# Dependency directories |
||||
node_modules/ |
||||
jspm_packages/ |
||||
|
||||
# Snowpack dependency directory (https://snowpack.dev/) |
||||
web_modules/ |
||||
|
||||
# TypeScript cache |
||||
*.tsbuildinfo |
||||
|
||||
# Optional npm cache directory |
||||
.npm |
||||
|
||||
# Optional eslint cache |
||||
.eslintcache |
||||
|
||||
# Microbundle cache |
||||
.rpt2_cache/ |
||||
.rts2_cache_cjs/ |
||||
.rts2_cache_es/ |
||||
.rts2_cache_umd/ |
||||
|
||||
# Optional REPL history |
||||
.node_repl_history |
||||
|
||||
# Output of 'npm pack' |
||||
*.tgz |
||||
|
||||
# Yarn Integrity file |
||||
.yarn-integrity |
||||
|
||||
# dotenv environment variables file |
||||
.env |
||||
.env.test |
||||
|
||||
# parcel-bundler cache (https://parceljs.org/) |
||||
.cache |
||||
.parcel-cache |
||||
|
||||
# Next.js build output |
||||
.next |
||||
out |
||||
|
||||
# Nuxt.js build / generate output |
||||
.nuxt |
||||
dist |
||||
|
||||
# Gatsby files |
||||
.cache/ |
||||
# Comment in the public line in if your project uses Gatsby and not Next.js |
||||
# https://nextjs.org/blog/next-9-1#public-directory-support |
||||
# public |
||||
|
||||
# vuepress build output |
||||
.vuepress/dist |
||||
|
||||
# Serverless directories |
||||
.serverless/ |
||||
|
||||
# FuseBox cache |
||||
.fusebox/ |
||||
|
||||
# DynamoDB Local files |
||||
.dynamodb/ |
||||
|
||||
# TernJS port file |
||||
.tern-port |
||||
|
||||
# Stores VSCode versions used for testing VSCode extensions |
||||
.vscode-test |
||||
|
||||
# yarn v2 |
||||
|
||||
.yarn/cache |
||||
.yarn/unplugged |
||||
.yarn/build-state.yml |
||||
.pnp.* |
@ -0,0 +1,108 @@
|
||||
const path = require("path"); |
||||
|
||||
module.exports = grunt => { |
||||
grunt.initConfig({ |
||||
pkg: grunt.file.readJSON("package.json"), |
||||
clean: { |
||||
default: ["dist/"], |
||||
}, |
||||
copy: { |
||||
html: { |
||||
files: [{expand: true, cwd: "src/main/", src: "**/*.html", dest: "dist/"}] |
||||
}, |
||||
}, |
||||
focus: { |
||||
dev: { |
||||
include: ["html", "js"], |
||||
}, |
||||
}, |
||||
replace: { |
||||
dev: { |
||||
src: ["./dist/*.html", "./dist/*.js"], |
||||
replacements: [ |
||||
{ |
||||
from: "%%VERSION_NUMBER%%", |
||||
to: "<%= pkg.version %>+" + new Date().toISOString().slice(0, 19).replace(/[-:T]/g, "") |
||||
} |
||||
], |
||||
overwrite: true |
||||
}, |
||||
deploy: { |
||||
src: ["./dist/*.html", "./dist/*.js"], |
||||
replacements: [ |
||||
{ |
||||
from: "%%VERSION_NUMBER%%", |
||||
to: "<%= pkg.version %>" |
||||
} |
||||
], |
||||
overwrite: true |
||||
}, |
||||
}, |
||||
watch: { |
||||
html: { |
||||
files: ["src/main/**/*.html"], |
||||
tasks: ["copy:html"], |
||||
}, |
||||
js: { |
||||
files: ["src/main/**/*.js"], |
||||
tasks: ["webpack:dev", "replace:dev"], |
||||
}, |
||||
}, |
||||
webpack: { |
||||
options: { |
||||
entry: "./src/main/js/Main.js", |
||||
module: { |
||||
rules: [ |
||||
{ |
||||
test: /\.js$/, |
||||
exclude: /node_modules/, |
||||
}, |
||||
], |
||||
}, |
||||
resolve: { |
||||
extensions: [".js"], |
||||
}, |
||||
output: { |
||||
filename: "bundle.js", |
||||
path: path.resolve(__dirname, "dist/"), |
||||
}, |
||||
}, |
||||
dev: { |
||||
mode: "development", |
||||
devtool: "inline-source-map", |
||||
}, |
||||
deploy: { |
||||
mode: "production", |
||||
}, |
||||
}, |
||||
}); |
||||
|
||||
grunt.loadNpmTasks("grunt-contrib-clean"); |
||||
grunt.loadNpmTasks("grunt-contrib-copy"); |
||||
grunt.loadNpmTasks("grunt-contrib-watch"); |
||||
grunt.loadNpmTasks("grunt-focus"); |
||||
grunt.loadNpmTasks("grunt-text-replace"); |
||||
grunt.loadNpmTasks("grunt-webpack"); |
||||
|
||||
grunt.registerTask("dev", [ |
||||
// Pre
|
||||
"clean", |
||||
// Copy files
|
||||
"copy:html", |
||||
// Compile TS
|
||||
"webpack:dev", |
||||
"replace:dev", |
||||
]); |
||||
grunt.registerTask("dev:server", ["dev", "focus:dev"]); |
||||
grunt.registerTask("deploy", [ |
||||
// Pre
|
||||
"clean", |
||||
// Copy files
|
||||
"copy:html", |
||||
// Compile TS
|
||||
"webpack:deploy", |
||||
"replace:deploy", |
||||
]); |
||||
|
||||
grunt.registerTask("default", ["dev"]); |
||||
}; |
@ -0,0 +1,21 @@
|
||||
MIT License |
||||
|
||||
Copyright (c) 2020 Felix W. Dekker |
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
of this software and associated documentation files (the "Software"), to deal |
||||
in the Software without restriction, including without limitation the rights |
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
copies of the Software, and to permit persons to whom the Software is |
||||
furnished to do so, subject to the following conditions: |
||||
|
||||
The above copyright notice and this permission notice shall be included in all |
||||
copies or substantial portions of the Software. |
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||
SOFTWARE. |
@ -0,0 +1,22 @@
|
||||
# Privacy policy |
||||
The privacy policy for my website. |
||||
|
||||
## Development |
||||
### Requirements |
||||
* [npm](https://www.npmjs.com/) |
||||
|
||||
### Setting up |
||||
```shell script |
||||
# Install dependencies (only needed once) |
||||
$> npm ci |
||||
``` |
||||
|
||||
### Building |
||||
```shell script |
||||
# Build the privacy policy in `dist/` for development |
||||
$> npm run dev |
||||
# Same as above, but automatically rerun it whenever files are changed |
||||
$> npm run dev:server |
||||
# Build the privacy policy in `dist/` for deployment |
||||
$> npm run deploy |
||||
``` |
@ -0,0 +1,33 @@
|
||||
{ |
||||
"name": "privacy-policy", |
||||
"version": "1.0.0", |
||||
"description": "The privacy policy of my website", |
||||
"author": "Felix W. Dekker", |
||||
"browser": "dist/bundle.js", |
||||
"repository": { |
||||
"type": "git", |
||||
"url": "git@git.fwdekker.com:FWDekker/privacy-policy.git" |
||||
}, |
||||
"private": true, |
||||
"scripts": { |
||||
"clean": "grunt clean", |
||||
"dev": "grunt dev", |
||||
"dev:server": "grunt dev:server", |
||||
"deploy": "grunt deploy" |
||||
}, |
||||
"dependencies": { |
||||
"@fwdekker/template": "^0.0.20" |
||||
}, |
||||
"devDependencies": { |
||||
"grunt": "^1.2.1", |
||||
"grunt-cli": "^1.3.2", |
||||
"grunt-contrib-clean": "^2.0.0", |
||||
"grunt-contrib-copy": "^1.0.0", |
||||
"grunt-contrib-watch": "^1.1.0", |
||||
"grunt-focus": "^1.0.0", |
||||
"grunt-text-replace": "^0.4.0", |
||||
"grunt-webpack": "^4.0.2", |
||||
"webpack": "^4.44.0", |
||||
"webpack-cli": "^3.3.12" |
||||
} |
||||
} |
@ -0,0 +1,61 @@
|
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="utf-8" /> |
||||
<meta name="viewport" content="width=device-width, initial-scale=1" /> |
||||
<meta name="author" content="Felix W. Dekker" /> |
||||
<meta name="application-name" content="Privacy policy" /> |
||||
<meta name="description" content="The privacy policy of my website." /> |
||||
<meta name="theme-color" content="#0033cc" /> |
||||
|
||||
<title>Privacy policy</title> |
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300italic,700,700italic" |
||||
crossorigin="anonymous" /> |
||||
</head> |
||||
<body> |
||||
<noscript> |
||||
<span style="color: red; font-weight: bold;"> |
||||
This website does not function fully if JavaScript is disabled. |
||||
Please check the <a href="https://www.enable-javascript.com/"> |
||||
instructions on how to enable JavaScript in your web browser</a>. |
||||
</span> |
||||
</noscript> |
||||
<main> |
||||
<div id="nav"></div> |
||||
<div id="contents"> |
||||
<div id="header"></div> |
||||
|
||||
<section class="container"> |
||||
<p> |
||||
<b>Last updated</b>: 2020-09-15<br /> |
||||
<b>Contact</b>: For inquiries, please email me at <kbd>felix</kbd> at this very domain. |
||||
</p> |
||||
|
||||
<h2>Cookies</h2> |
||||
<p> |
||||
Some pages on this website make use of cookies. |
||||
These cookies are sent to the server(s) of fwdekker.com during requests. |
||||
This website uses cookies only for technical purposes, such as keeping you logged in or to enable |
||||
technical features of the website. |
||||
This website never uses cookies for the purposes of advertising or tracking. |
||||
</p> |
||||
|
||||
<h2>Logs</h2> |
||||
<p> |
||||
Some requests to this website result in errors in the back end. |
||||
Back-end errors are described in zero or more log entries, each of which contains the requester's IP |
||||
address, the date and time of the error, the full HTTP request that caused the error, and the error |
||||
message describing the nature of the error. |
||||
Log entries are removed within five weeks after the associated error occurs. |
||||
</p> |
||||
</section> |
||||
</div> |
||||
<div id="footer"></div> |
||||
</main> |
||||
|
||||
|
||||
<!-- Scripts --> |
||||
<!--suppress HtmlUnknownTarget --> |
||||
<script src="bundle.js?v=%%VERSION_NUMBER%%"></script> |
||||
</body> |
||||
</html> |
@ -0,0 +1,16 @@
|
||||
import {$, doAfterLoad, footer, header, nav} from "@fwdekker/template"; |
||||
|
||||
|
||||
doAfterLoad(() => { |
||||
$("#nav").appendChild(nav("/Privacy/")); |
||||
$("#header").appendChild(header({title: "Privacy policy"})); |
||||
$("#footer").appendChild(footer({ |
||||
author: "Felix W. Dekker", |
||||
authorURL: "https://fwdekker.com/", |
||||
license: "MIT License", |
||||
licenseURL: "https://git.fwdekker.com/FWDekker/privacy-policy/src/branch/master/LICENSE", |
||||
vcs: "git", |
||||
vcsURL: "https://git.fwdekker.com/FWDekker/privacy-policy/", |
||||
version: "v%%VERSION_NUMBER%%" |
||||
})); |
||||
}); |
Loading…
Reference in new issue