From 2ca657d178e81e914b00d6618495289c9cb614f6 Mon Sep 17 00:00:00 2001 From: "Florine W. Dekker" Date: Mon, 28 Feb 2022 18:57:05 +0100 Subject: [PATCH] Set up basic project layout --- .editorconfig | 11 ++++ .gitattributes | 1 + .gitignore | 104 ++++++++++++++++++++++++++++++++++++ Gruntfile.js | 120 ++++++++++++++++++++++++++++++++++++++++++ LICENSE | 21 ++++++++ README.md | 22 ++++++++ package-lock.json | Bin 0 -> 218005 bytes package.json | 32 +++++++++++ src/main/css/main.css | 0 src/main/index.html | 45 ++++++++++++++++ src/main/js/Main.ts | 22 ++++++++ tsconfig.json | 11 ++++ 12 files changed, 389 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 Gruntfile.js create mode 100644 LICENSE create mode 100644 README.md create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/main/css/main.css create mode 100644 src/main/index.html create mode 100644 src/main/js/Main.ts create mode 100644 tsconfig.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..fd1294f --- /dev/null +++ b/.editorconfig @@ -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 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1a6bd45 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +package-lock.json binary diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9ed75c8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,104 @@ +# 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/ + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# 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 + +# Next.js build output +.next + +# 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 diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..bf1cbd9 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,120 @@ +const path = require("path"); + +module.exports = grunt => { + grunt.initConfig({ + pkg: grunt.file.readJSON("package.json"), + clean: { + default: ["dist/"], + }, + copy: { + css: { + files: [{expand: true, cwd: "src/main/", src: "**/*.css", dest: "dist/", flatten: true}], + }, + html: { + files: [{expand: true, cwd: "src/main/", src: "**/*.html", dest: "dist/", flatten: true}], + }, + }, + focus: { + dev: { + include: ["css", "html", "ts"], + }, + }, + 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: { + css: { + files: ["src/main/**/*.css"], + tasks: ["copy:css"], + }, + html: { + files: ["src/main/**/*.html"], + tasks: ["copy:html"], + }, + ts: { + files: ["src/main/**/*.ts"], + tasks: ["webpack:dev", "replace:dev"], + }, + }, + webpack: { + options: { + entry: "./src/main/js/Main.ts", + module: { + rules: [ + { + test: /\.ts$/, + use: "ts-loader", + exclude: /node_modules/, + }, + ], + }, + resolve: { + extensions: [".ts"], + }, + 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:css", + "copy:html", + // Compile JS + "webpack:dev", + // Post + "replace:dev", + ]); + grunt.registerTask("dev:server", ["dev", "focus:dev"]); + grunt.registerTask("deploy", [ + // Pre + "clean", + // Copy files + "copy:css", + "copy:html", + // Compile JS + "webpack:deploy", + // Post + "replace:deploy", + ]); + + grunt.registerTask("default", ["dev"]); +}; diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..ac4f263 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2012 Florine 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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..8b1aae5 --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# Prime Map Generator +Visualizes prime numbers. + +## Development +### Requirements +* [npm](https://www.npmjs.com/) + +### Setting up +```shell script +# Install dependencies (only needed once) +$> npm ci +``` + +### Building +```shell script +# Build the tool in `dist/` for development +$> npm run dev +# Same as above, but automatically rerun it whenever files are changed +$> npm run dev:server +# Build the tool in `dist/` for deployment +$> npm run deploy +``` diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000000000000000000000000000000000000..13ad97a19cc3ab5ebc5d6bdc9315186b91ca12c8 GIT binary patch literal 218005 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 + + + + + + + + + + Prime Map Generator | FWDekker + + + + + + + + + + +
+ +
+ + + ASDF +
+ +
+ + + + + + diff --git a/src/main/js/Main.ts b/src/main/js/Main.ts new file mode 100644 index 0000000..e41089a --- /dev/null +++ b/src/main/js/Main.ts @@ -0,0 +1,22 @@ +// @ts-ignore +const {$, doAfterLoad, footer, header, nav} = window.fwdekker; + + +// Set up template +doAfterLoad(() => { + $("#nav").appendChild(nav("/Tools/Prime Map Generator/")); + $("#header").appendChild(header({ + title: "Prime Map Generator", + description: "Visualizes prime numbers" + })); + $("#footer").appendChild(footer({ + vcsURL: "https://git.fwdekker.com/tools/prime-map-generator/", + version: "v%%VERSION_NUMBER%%" + })); + $("main").classList.remove("hidden"); +}); + +// TODO: What is this? +doAfterLoad(async () => { + // +}); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..69c22e6 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "es6", + "strict": true, + "rootDir": "./src/main/js/", + "outDir": "./dist/js/" + }, + "include": [ + "src/main/js/**/*.ts" + ] +}