diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 7b0ffb4..0000000 --- a/.eslintrc +++ /dev/null @@ -1,70 +0,0 @@ -{ - "root": true, - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "script", - "ecmaFeatures": { - "impliedStrict": true - } - }, - "env": { - "browser": true, - "es6": true - }, - "extends": ["eslint:recommended"], - "rules": { - // basic rules - "semi": 1, - "semi-style": 2, - "semi-spacing": 1, - "camelcase": 2, - "quotes": ["warn", "single", { - "avoidEscape": true, - "allowTemplateLiterals": false - }], - "brace-style": 2, - - // just to make sure (are defaults) - "indent": ["error", 2], - - // technically required, because of CSP - "no-eval": 2, - "no-implied-eval": 2, - - // great new EcmaScript features - "prefer-const": 2, - "no-var": 1, - "prefer-arrow-callback": 1, - "prefer-rest-params": 2, - "prefer-spread": 2, - "prefer-template": 1, - "template-curly-spacing": 1, - "symbol-description": 2, - "object-shorthand": 1, - "prefer-promise-reject-errors": 2, - /* "prefer-destructuring": 1, */ // https://github.com/eslint/eslint/issues/10250 - - // additional rules - "no-new-object": 2, - "eqeqeq": ["error", "smart"], - "curly": ["error", "all"], - "dot-notation": 2, - "no-array-constructor": 2, - "no-throw-literal": 2, - "no-self-compare": 2, - "no-useless-call": 1, - "consistent-return": 2, - "spaced-comment": 1, - "no-multi-spaces": 1, - "no-new-wrappers": 2, - "no-script-url": 2, - "no-void": 1, - "vars-on-top": 1, - "yoda": ["error", "never"], - /* "no-warning-comments": 1, */ // should be enabled later - "require-await": 1, - "wrap-iife": ["error", "inside"], - "no-loop-func": 2, - "linebreak-style": 1, // may be disabled if contributing on Windows - } -} diff --git a/.gitignore b/.gitignore deleted file mode 100644 index c2658d7..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/.well-known/brave-rewards-verification.txt b/.well-known/brave-rewards-verification.txt new file mode 100644 index 0000000..0d8cc9b --- /dev/null +++ b/.well-known/brave-rewards-verification.txt @@ -0,0 +1,4 @@ +This is a Brave Rewards publisher verification file. + +Domain: ent8r.github.io +Token: 43c1ab2b9adebc25176e28a95dd71b464c2b6777542f2f7f8348f9df39631d2a diff --git a/README.md b/README.md index 09f33d6..e33150c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # ent8r.github.io -Just a little website for several testing purposes and to show what my projects are +> Website for showcasing some of my projects -Enter the page by clicking here: [ent8r.github.io](https://ent8r.github.io "ENT8R's Homepage") +Visit the page: [ent8r.github.io](https://ent8r.github.io) diff --git a/css/main.css b/css/main.css index 97bb7b1..878f801 100644 --- a/css/main.css +++ b/css/main.css @@ -1,46 +1,30 @@ -#content { - padding-left: 300px; -} - -@media only screen and (max-width : 992px) { - #content { - padding-left: 0; - } -} - -.table-of-contents a.active { - border-left-color: #3f51b5; +.emoji { + font-size: 100px; } .icon { display: inline-block; vertical-align: middle; + margin-bottom: 4px; width: 24px; height: 24px; - background-repeat: no-repeat; - background-size: contain; -} - -.icon-account { - background-image: url('../images/icons/account-circle.svg'); -} - -.icon-code { - background-image: url('../images/icons/code-tags.svg'); } .icon-email { - background-image: url('../images/icons/email.svg'); + background-image: url('../icons/email.svg'); +} +.icon-external { + background-image: url('../icons/external.svg'); } - .icon-github { - background-image: url('../images/icons/github-circle.svg'); + background-image: url('../icons/github.svg'); } - -.icon-menu-white { - background-image: url('../images/icons/menu-white.svg'); +.icon-html { + background-image: url('../icons/html.svg'); } - -.icon-open-in-new { - background-image: url('../images/icons/open-in-new.svg'); +.icon-nodejs { + background-image: url('../icons/nodejs.svg'); +} +.icon-npm { + background-image: url('../icons/npm.svg'); } diff --git a/data/projects.json b/data/projects.json new file mode 100644 index 0000000..cc88f7c --- /dev/null +++ b/data/projects.json @@ -0,0 +1,57 @@ +[{ + "title": "Web ", + "projects": [{ + "title": "NotesReview", + "image": "images/projects/notesreview.png", + "description": "An intuitive tool for searching, finding, resolving or simply browsing OpenStreetMap notes created by other mappers. Various filter options allow to see only the notes you are currently interested in.", + "actions": { + "website": "https://ent8r.github.io/NotesReview", + "github": "ENT8R/NotesReview" + } + }, { + "title": "blacklistr", + "image": "images/projects/blacklistr.png", + "description": "Tool for visualizing in which countries certain features are either present or do not exist, legal or illegal and much more. You are also able to generate an image of the map so you can use it for other projects.", + "actions": { + "website": "https://ent8r.github.io/blacklistr", + "github": "ENT8R/blacklistr" + } + }] +}, { + "title": "node.js ", + "projects": [{ + "title": "package-age", + "image": "images/projects/package-age.png", + "description": "Tired of manually checking whether there is a new version of your used npm dependencies? package-age checks all dependencies specified in the package.json file and tells you if there is a new version of a dependency.", + "actions": { + "github": "ENT8R/package-age", + "npm": "package-age" + } + }, { + "title": "wifiradio", + "emoji": "📻📡", + "description": "Library for controlling WiFi radios with a chip produced by Frontier Silicon. Supports only basic actions like switching the radio on or off, changing the volume, muting the radio or retrieving basic information.", + "actions": { + "github": "ENT8R/wifiradio", + "npm": "wifiradio" + } + }] +}, { + "title": "Other", + "projects": [{ + "title": "streetcomplete-mapstyle", + "image": "images/projects/streetcomplete-mapstyle.png", + "description": "The mapstyle used by StreetComplete. It is kept intentionally simple and does not display any POIs or other details, users are not distracted and it can be used as a background or basemap below data layers.", + "actions": { + "website": "https://ent8r.github.io/streetcomplete-mapstyle/", + "github": "ENT8R/streetcomplete-mapstyle" + } + }, { + "title": "oneway-data-api", + "emoji": "🚗⬅️", + "description": "API written in PHP to import the latest oneway data from improveosm.org into a MySQL database. The data can be retrieved by specifying a bounding box of all wanted results. Currently used by and created for StreetComplete.", + "actions": { + "github": "ENT8R/oneway-data-api" + } + }] +}] diff --git a/icon/favicon.png b/icon/favicon.png deleted file mode 100644 index ebe59be..0000000 Binary files a/icon/favicon.png and /dev/null differ diff --git a/icons/email.svg b/icons/email.svg new file mode 100644 index 0000000..c4d14df --- /dev/null +++ b/icons/email.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/icons/external.svg b/icons/external.svg new file mode 100644 index 0000000..0d7c743 --- /dev/null +++ b/icons/external.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/icons/github.svg b/icons/github.svg new file mode 100644 index 0000000..e8c6e27 --- /dev/null +++ b/icons/github.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/icons/html.svg b/icons/html.svg new file mode 100644 index 0000000..4b52d0b --- /dev/null +++ b/icons/html.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/icons/nodejs.svg b/icons/nodejs.svg new file mode 100644 index 0000000..98fb5f0 --- /dev/null +++ b/icons/nodejs.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/icons/npm.svg b/icons/npm.svg new file mode 100644 index 0000000..d1c3f35 --- /dev/null +++ b/icons/npm.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/images/blacklistr.png b/images/blacklistr.png deleted file mode 100644 index 4d775b3..0000000 Binary files a/images/blacklistr.png and /dev/null differ diff --git a/images/completestreetcomplete.png b/images/completestreetcomplete.png deleted file mode 100644 index d00561b..0000000 Binary files a/images/completestreetcomplete.png and /dev/null differ diff --git a/images/htmlemails.png b/images/htmlemails.png deleted file mode 100644 index 221dd6b..0000000 Binary files a/images/htmlemails.png and /dev/null differ diff --git a/images/icons/account-circle.svg b/images/icons/account-circle.svg deleted file mode 100644 index 002db96..0000000 --- a/images/icons/account-circle.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/images/icons/code-tags.svg b/images/icons/code-tags.svg deleted file mode 100644 index 25fa0ff..0000000 --- a/images/icons/code-tags.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/icons/email.svg b/images/icons/email.svg deleted file mode 100644 index 3f0d76e..0000000 --- a/images/icons/email.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/icons/github-circle.svg b/images/icons/github-circle.svg deleted file mode 100644 index 25d9004..0000000 --- a/images/icons/github-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/icons/menu-white.svg b/images/icons/menu-white.svg deleted file mode 100644 index 43ec756..0000000 --- a/images/icons/menu-white.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/images/icons/open-in-new.svg b/images/icons/open-in-new.svg deleted file mode 100644 index 7a9ae0f..0000000 --- a/images/icons/open-in-new.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/icon/logo.png b/images/logo.png similarity index 100% rename from icon/logo.png rename to images/logo.png diff --git a/images/microtasks.png b/images/microtasks.png deleted file mode 100644 index 64b4d58..0000000 Binary files a/images/microtasks.png and /dev/null differ diff --git a/images/office.jpg b/images/office.jpg deleted file mode 100644 index 67e78fc..0000000 Binary files a/images/office.jpg and /dev/null differ diff --git a/images/projects/blacklistr.png b/images/projects/blacklistr.png new file mode 100644 index 0000000..f0349b9 Binary files /dev/null and b/images/projects/blacklistr.png differ diff --git a/images/notesreview.png b/images/projects/notesreview.png similarity index 55% rename from images/notesreview.png rename to images/projects/notesreview.png index be52d58..fecc909 100644 Binary files a/images/notesreview.png and b/images/projects/notesreview.png differ diff --git a/images/package-age.png b/images/projects/package-age.png similarity index 100% rename from images/package-age.png rename to images/projects/package-age.png diff --git a/images/streetcompletemapstyle.png b/images/projects/streetcomplete-mapstyle.png similarity index 100% rename from images/streetcompletemapstyle.png rename to images/projects/streetcomplete-mapstyle.png diff --git a/images/projects/wifiradio.png b/images/projects/wifiradio.png new file mode 100644 index 0000000..ab3c482 Binary files /dev/null and b/images/projects/wifiradio.png differ diff --git a/images/streetcompletequestcreator.png b/images/streetcompletequestcreator.png deleted file mode 100644 index 4c68e4f..0000000 Binary files a/images/streetcompletequestcreator.png and /dev/null differ diff --git a/images/sweetscanner.png b/images/sweetscanner.png deleted file mode 100644 index d7ee7a4..0000000 Binary files a/images/sweetscanner.png and /dev/null differ diff --git a/index.html b/index.html index a51ed41..aafbd23 100644 --- a/index.html +++ b/index.html @@ -13,95 +13,45 @@ style-src 'self' https://unpkg.com;"> - - + + + href="https://unpkg.com/spectre.css@0.5.8/dist/spectre.min.css" + integrity="sha384-k6VaK8SMn/Mpo78m3i6rYNBu5DlUY1ef2j/LBES5AloJ8J2OwFtKiC4R4dHHo6Qg" + crossorigin="anonymous"> - + -
+ - - -
-
- - - -
-
-

Web

-
- -
-

Electron

-
- -
-

NodeJS

-
- -
-

Other

-
- -
-

Android

-
-
- -
-
- -
-
- - - + + + + diff --git a/js/main.js b/js/main.js index 9553e0a..e20bb92 100644 --- a/js/main.js +++ b/js/main.js @@ -1,166 +1,6 @@ -/* globals M */ +(async () => { + const template = await fetch('templates/projects.mst').then(response => response.text()); + const projects = await fetch('data/projects.json').then(response => response.json()); -M.Sidenav.init(document.querySelectorAll('.sidenav')); -M.ScrollSpy.init(document.querySelectorAll('.scrollspy'), { - throttle: 50, - scrollOffset: 100 -}); - -const Projects = (() => { - const me = {}; - - function build(url, language) { - Helper.request(url, (result) => { - const project = generate(JSON.parse(result)); - - const section = document.getElementById(language); - section.innerHTML += project; - Localizer.init(); - }); - } - - function generate(json) { - const links = generateLinks(json.links); - let template = ` -
-
`; - if (json.image) { - template += ` -
- -
`; - } - template += ` -
- ${json.name} -

-
-
- ${links} -
-
-
`; - return template; - } - - function generateLinks(links) { - let result = ''; - for (let i = 0; i < links.length; i++) { - let template = ''; - if (!links[i].href) { - template = ``; - } else { - template = ``; - } - - result += '\n'; - result += template; - } - return result; - } - - me.init = function() { - Helper.request('./projects/index.json', (result) => { - result = JSON.parse(result); - - for (const language in result) { - if (result.hasOwnProperty(language)) { - const projects = result[language]; - for (let i = 0; i < projects.length; i++) { - build(projects[i], language); - } - } - } - }); - }; - - return me; -})(); - -const Localizer = (function() { - const me = {}; - - const I18N_ATTRIBUTE = 'data-i18n'; - - let translations; - - function replaceI18n(elem, tag) { - // localize main content - if (tag !== '') { - const isHTML = tag.startsWith('[html]'); - if (isHTML) { - tag = tag.replace('[html]', ''); - } - const translatedMessage = getMessage(tag); - if (translatedMessage !== '') { - if (isHTML) { - elem.innerHTML = translatedMessage; - } else { - elem.textContent = translatedMessage; - } - } - } - } - - function getMessage(tag) { - const t = translations[getLanguage()]; - return getProperty(tag, t); - } - - function getLanguage() { - const language = navigator.language || navigator.userLanguage; - return language.split('-')[0]; - } - - function getProperty(propertyName, object) { - const parts = propertyName.split('.'); - let property = object; - for (let i = 0; i < parts.length; i++) { - property = property[parts[i]]; - } - return property; - } - - me.init = function(strings) { - if (!strings && !translations) { - return; - } - if (!translations) { - translations = strings; - } - document.querySelectorAll(`[${I18N_ATTRIBUTE}]`).forEach((currentElem) => { - const contentString = currentElem.getAttribute(I18N_ATTRIBUTE); - replaceI18n(currentElem, contentString); - }); - - // replace html lang attribut after translation - document.querySelector('html').setAttribute('lang', getLanguage()); - }; - - return me; + document.getElementById('projects').innerHTML = Mustache.render(template, projects); })(); - - -const Helper = (() => { - const me = {}; - - me.request = function(url, callback) { - const http = new XMLHttpRequest(); - http.onreadystatechange = function() { - if (this.readyState === 4 && this.status === 200) { - if (callback) { - callback(http.responseText); - } - } - }; - http.open('GET', url, true); - http.send(); - }; - - return me; -})(); - -Helper.request('./locales/strings.json', (result) => { - Localizer.init(JSON.parse(result)); -}); -Projects.init(); diff --git a/locales/strings.json b/locales/strings.json deleted file mode 100644 index c94ff0c..0000000 --- a/locales/strings.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "en": { - "nav": { - "projects": " Projects", - "github": "Github", - "email": "E-Mail" - }, - "projects": { - "sweet_scanner": "SweetScanner is an application to get an overview of all of your foods. You simply scan the barcode of a product and save it in the database. And exactly one month before the product expires, you will get a notification which reminds you to eat it before you throw it in the trash!", - "html_emails": "With HTMLEmails you can send beautiful designed E-Mails and also read your latest E-Mails. Basically it is an E-Mail-Client with HTML support based on Electron Framework. Thanks to Electron HTMLEmails can be used with Windows, macOS or Linux.", - "street_complete": { - "quest_creator": "Tool for creating new quests for the android application StreetComplete", - "complete_street_complete": "Website with a simple API for helping to complete StreetComplete", - "mapstyle": " The mapstyle for StreetComplete" - }, - "notes_review": "Allows you to search through OSM Notes with a specific keyword. It allows to display up to 10000 notes either on a map or in a list.", - "microtasks": "Website for performing small tasks to improve the OpenStreetMap. You can e.g. bring wrong formatted phone numbers into the wanted, international format (E.164) easily.", - "blacklistr": "blacklistr is a tool for visualizing in which countries a specific feature exists or doesn't exist.", - "oneway-data-api": "An API to get the latest oneway data from improveosm.org", - "datakick": "NodeJS module for making requests to the Datakick API", - "package-age": "A CLI for detecting old dependencies used in your project", - "wifiradio": "NodeJS module for controlling WiFi-radios" - }, - "actions": { - "visit_website": "Visit website", - "visit_github": "View on Github", - "visit_npm": "View on NPM", - "show_map": "Show map", - "download_future": "Download available in the future" - } - }, - - "de": { - "nav": { - "projects": " Projekte", - "github": "Github", - "email": "E-Mail" - }, - "projects": { - "sweet_scanner": "SweetScanner ist eine App, die dir einen Überblick über deine Lebensmittel verschafft. Du scannst einfach den Barcode des Produktes und speicherst es in der Datenbank ab. Und genau einen Monat bevor das Produkt abläuft, erhälst du eine Benachrichtigung, die dich daran erinnert, dass du das Produkt isst, bevor du es in den Müll schmeißt!", - "html_emails": "Mit HTMLEmails kannst du wunderbar schön designte E-Mails versenden und natürlich auch deine neuesten E-Mails empfangen und lesen. Eigentlich ist HTMLEmails ein einfaches E-Mail-Programm mit HTML-Unterstützung basierend auf Electron. Dank Electron kann HTMLEmails unter Windows, macOS und Linux laufen.", - "street_complete": { - "quest_creator": "Ein Werkzeug um neue Aufgaben zur Android-App StreetComplete hinzuzufügen.", - "complete_street_complete": "Eine Website mit einer einfachen API, die helfen soll StreetComplete zu verbessern.", - "mapstyle": "Der Kartenstil für StreetComplete" - }, - "notes_review": "Mit NotesReview ist es total einfach, OSM Notizen nach bestimmten Schlüsselwörten zu durchsuchen. Es können bis zu 10000 Notizen auf einer Karte oder ganz einfach in einer Liste angezeigt werden.", - "microtasks": "Website, mit der du kleine Aufgaben abzuschließen kannst um die OpenStreetMap zu verbessern. Du kannst z.B. ganz einfach falsch formatierte Telefonnummern in das richtige, internationale Format (E.164) bringen.", - "blacklistr": "blacklistr ist ein Tool mit dem man sich ganz einfach einen Überblick verschaffen kann, wo bestimmte Dinge verfügbar oder nicht verfügbar sind.", - "oneway-data-api": "Eine API to get the latest oneway data from improveosm.org", - "datakick": "NodeJS-Modul für die API von Datakick", - "package-age": "Ein Programm um alte NPM-Dependencies in deinen Projekten zu finden", - "wifiradio": "NodeJS-Modul um WLAN-Radios zu steuern" - }, - "actions": { - "visit_website": "Website", - "visit_github": "Github", - "visit_npm": "NPM", - "show_map": "Karte", - "download_future": "Download bald verfügbar" - } - } -} diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 41d0ec6..0000000 --- a/package-lock.json +++ /dev/null @@ -1,1159 +0,0 @@ -{ - "name": "ent8r.github.io", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "acorn": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", - "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", - "dev": true - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-from": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", - "dev": true - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "dev": true, - "requires": { - "color-name": "^1.1.1" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", - "dev": true, - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - } - }, - "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", - "dev": true - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "dev": true, - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - } - }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, - "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.5.0.tgz", - "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ==", - "dev": true - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", - "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", - "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", - "dev": true - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "requires": { - "rx-lite": "*" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "dev": true, - "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 991cbad..0000000 --- a/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "ent8r.github.io", - "version": "1.0.0", - "description": "Website to show some of my projects", - "main": "index.html", - "scripts": { - "start": "python -m SimpleHTTPServer 8000", - "test": "eslint **/**.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ENT8R/ent8r.github.io.git" - }, - "author": "ENT8R", - "license": "GPL-3.0", - "bugs": { - "url": "https://github.com/ENT8R/ent8r.github.io/issues" - }, - "homepage": "https://github.com/ENT8R/ent8r.github.io#readme", - "devDependencies": { - "eslint": "^4.19.1" - } -} diff --git a/projects/android/sweetscanner.json b/projects/android/sweetscanner.json deleted file mode 100644 index d1b8e53..0000000 --- a/projects/android/sweetscanner.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "SweetScanner", - "image": "./images/sweetscanner.png", - "description": "projects.sweet_scanner", - "links": [ - { - "content": "actions.download_future" - } - ] -} diff --git a/projects/electron/htmlemails.json b/projects/electron/htmlemails.json deleted file mode 100644 index 21338aa..0000000 --- a/projects/electron/htmlemails.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "HTMLEmails", - "image": "./images/htmlemails.png", - "description": "[html]projects.html_emails", - "links": [ - { - "content": "actions.download_future" - } - ] -} diff --git a/projects/index.json b/projects/index.json deleted file mode 100644 index fd0a53f..0000000 --- a/projects/index.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "android": [ - "./projects/android/sweetscanner.json" - ], - "electron": [ - "./projects/electron/htmlemails.json" - ], - "nodejs": [ - "./projects/nodejs/package-age.json", - "./projects/nodejs/datakick.json", - "./projects/nodejs/wifiradio.json" - ], - "other": [ - "./projects/other/streetcomplete/mapstyle.json", - "./projects/other/oneway-data-api.json" - ], - "web": [ - "./projects/web/notesreview.json", - "./projects/web/blacklistr.json", - "./projects/web/microtasks.json", - "./projects/web/streetcomplete/complete.json" - ] -} diff --git a/projects/nodejs/datakick.json b/projects/nodejs/datakick.json deleted file mode 100644 index 60a1b56..0000000 --- a/projects/nodejs/datakick.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "datakick 🔎", - "description": "[html]projects.datakick", - "links": [ - { - "content": "actions.visit_npm", - "href": "https://www.npmjs.org/package/datakick/" - }, - { - "content": "actions.visit_github", - "href": "https://github.com/ENT8R/datakick/" - } - ] -} diff --git a/projects/nodejs/package-age.json b/projects/nodejs/package-age.json deleted file mode 100644 index a1e4034..0000000 --- a/projects/nodejs/package-age.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "package-age", - "image": "./images/package-age.png", - "description": "[html]projects.package-age", - "links": [ - { - "content": "actions.visit_npm", - "href": "https://www.npmjs.com/package/package-age/" - }, - { - "content": "actions.visit_github", - "href": "https://github.com/ENT8R/package-age/" - } - ] -} diff --git a/projects/nodejs/wifiradio.json b/projects/nodejs/wifiradio.json deleted file mode 100644 index 16ee4d2..0000000 --- a/projects/nodejs/wifiradio.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "wifiradio 📻", - "description": "[html]projects.wifiradio", - "links": [ - { - "content": "actions.visit_npm", - "href": "https://www.npmjs.com/package/wifiradio/" - }, - { - "content": "actions.visit_github", - "href": "https://github.com/ENT8R/wifiradio/" - } - ] -} diff --git a/projects/other/oneway-data-api.json b/projects/other/oneway-data-api.json deleted file mode 100644 index 6ba1093..0000000 --- a/projects/other/oneway-data-api.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "Oneway Data API 🚗➡️", - "description": "[html]projects.oneway-data-api", - "links": [ - { - "content": "actions.visit_github", - "href": "https://github.com/ENT8R/oneway-data-api/" - } - ] -} diff --git a/projects/other/streetcomplete/mapstyle.json b/projects/other/streetcomplete/mapstyle.json deleted file mode 100644 index 0da3fcc..0000000 --- a/projects/other/streetcomplete/mapstyle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "StreetComplete Mapstyle 🌎", - "image": "./images/streetcompletemapstyle.png", - "description": "[html]projects.street_complete.mapstyle", - "links": [ - { - "content": "actions.show_map", - "href": "https://map-data.de/#style=streetcomplete-light" - }, - { - "content": "actions.visit_github", - "href": "https://github.com/ENT8R/streetcomplete-mapstyle/" - } - ] -} diff --git a/projects/web/blacklistr.json b/projects/web/blacklistr.json deleted file mode 100644 index b1f49dc..0000000 --- a/projects/web/blacklistr.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "blacklistr", - "image": "./images/blacklistr.png", - "description": "[html]projects.blacklistr", - "links": [ - { - "content": "actions.visit_website", - "href": "https://ent8r.github.io/blacklistr/" - }, - { - "content": "actions.visit_github", - "href": "https://github.com/ENT8R/blacklistr/" - } - ] -} diff --git a/projects/web/microtasks.json b/projects/web/microtasks.json deleted file mode 100644 index ca8b1e6..0000000 --- a/projects/web/microtasks.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "OSM MicroTasks 🌎", - "image": "./images/microtasks.png", - "description": "[html]projects.microtasks", - "links": [ - { - "content": "actions.visit_website", - "href": "https://ent8r.github.io/osm-microtasks/" - }, - { - "content": "actions.visit_github", - "href": "https://github.com/ENT8R/osm-microtasks/" - } - ] -} diff --git a/projects/web/notesreview.json b/projects/web/notesreview.json deleted file mode 100644 index e1be926..0000000 --- a/projects/web/notesreview.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "NotesReview 📝", - "image": "./images/notesreview.png", - "description": "[html]projects.notes_review", - "links": [ - { - "content": "actions.visit_website", - "href": "https://ent8r.github.io/NotesReview/" - }, - { - "content": "actions.visit_github", - "href": "https://github.com/ENT8R/NotesReview/" - } - ] -} diff --git a/projects/web/streetcomplete/complete.json b/projects/web/streetcomplete/complete.json deleted file mode 100644 index b35f8df..0000000 --- a/projects/web/streetcomplete/complete.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "CompleteStreetComplete", - "image": "./images/completestreetcomplete.png", - "description": "[html]projects.street_complete.complete_street_complete", - "links": [ - { - "content": "actions.visit_github", - "href": "https://github.com/ENT8R/CompleteStreetComplete/" - } - ] -} diff --git a/projects/web/streetcomplete/questcreator.json b/projects/web/streetcomplete/questcreator.json deleted file mode 100644 index 88a1c9f..0000000 --- a/projects/web/streetcomplete/questcreator.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "StreetComplete QuestCreator", - "image": "./images/streetcompletequestcreator.png", - "description": "[html]projects.street_complete.quest_creator", - "links": [ - { - "content": "actions.visit_website", - "href": "https://ent8r.github.io/StreetCompleteQuestCreator/" - }, - { - "content": "actions.visit_github", - "href": "https://github.com/ENT8R/StreetCompleteQuestCreator/" - } - ] -} diff --git a/templates/projects.mst b/templates/projects.mst new file mode 100644 index 0000000..43cb525 --- /dev/null +++ b/templates/projects.mst @@ -0,0 +1,38 @@ +{{#.}} +
+ +

{{{title}}}

+ +
+ {{#projects}} +
+
+
+ {{#image}}{{/image}} + {{#emoji}}

{{emoji}}

{{/emoji}} +
+
+
{{title}}
+
{{subtitle}}
+
+
+ {{{description}}} +
+ {{#actions}} + + {{/actions}} +
+
+ {{/projects}} +
+{{/.}}