Removed Docsify, I don't think it's really necissary
1
docs/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
node_modules
|
|
@ -1,9 +0,0 @@
|
|||||||
language: node_js
|
|
||||||
node_js:
|
|
||||||
- "9.0.0"
|
|
||||||
|
|
||||||
install:
|
|
||||||
- npm i -g yarn webpack webpack-cli webpack-dev-server && yarn
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- yarn run build
|
|
@ -1,22 +0,0 @@
|
|||||||
## The MIT License (MIT)
|
|
||||||
|
|
||||||
### Copyright (c) Alicia Sykes <alicia@as93.net>
|
|
||||||
|
|
||||||
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, sub-license, 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 install
|
|
||||||
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 MERCHANT ABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. 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.
|
|
||||||
|
|
||||||
![License](https://upload.wikimedia.org/wikipedia/commons/f/f8/License_icon-mit-88x31-2.svg)
|
|
1
docs/dist/analytics.js
vendored
@ -1 +0,0 @@
|
|||||||
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/dist/",r(r.s=2)}({2:function(e,t){var r=r||[];r.push(["_setAccount","UA-XXXXXXXX-Y"]),r.push(["_trackPageview"]),function(){var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src=("https:"==document.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()}});
|
|
BIN
docs/dist/assets/cover.png
vendored
Before Width: | Height: | Size: 163 KiB |
BIN
docs/dist/assets/icon.png
vendored
Before Width: | Height: | Size: 66 KiB |
BIN
docs/dist/icons/android-chrome-144x144.png
vendored
Before Width: | Height: | Size: 15 KiB |
BIN
docs/dist/icons/android-chrome-192x192.png
vendored
Before Width: | Height: | Size: 22 KiB |
BIN
docs/dist/icons/android-chrome-256x256.png
vendored
Before Width: | Height: | Size: 28 KiB |
BIN
docs/dist/icons/android-chrome-36x36.png
vendored
Before Width: | Height: | Size: 2.3 KiB |
BIN
docs/dist/icons/android-chrome-384x384.png
vendored
Before Width: | Height: | Size: 60 KiB |
BIN
docs/dist/icons/android-chrome-48x48.png
vendored
Before Width: | Height: | Size: 3.6 KiB |
BIN
docs/dist/icons/android-chrome-512x512.png
vendored
Before Width: | Height: | Size: 90 KiB |
BIN
docs/dist/icons/android-chrome-72x72.png
vendored
Before Width: | Height: | Size: 6.1 KiB |
BIN
docs/dist/icons/android-chrome-96x96.png
vendored
Before Width: | Height: | Size: 8.9 KiB |
BIN
docs/dist/icons/favicon-16x16.png
vendored
Before Width: | Height: | Size: 813 B |
BIN
docs/dist/icons/favicon-32x32.png
vendored
Before Width: | Height: | Size: 2.0 KiB |
BIN
docs/dist/icons/favicon.ico
vendored
Before Width: | Height: | Size: 32 KiB |
58
docs/dist/icons/manifest.json
vendored
@ -1,58 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "personal-security-checklist-docs",
|
|
||||||
"short_name": "personal-security-checklist-docs",
|
|
||||||
"description": null,
|
|
||||||
"dir": "auto",
|
|
||||||
"lang": "en-US",
|
|
||||||
"display": "standalone",
|
|
||||||
"orientation": "any",
|
|
||||||
"start_url": "/?homescreen=1",
|
|
||||||
"background_color": "#fff",
|
|
||||||
"icons": [
|
|
||||||
{
|
|
||||||
"src": "android-chrome-36x36.png",
|
|
||||||
"sizes": "36x36",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "android-chrome-48x48.png",
|
|
||||||
"sizes": "48x48",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "android-chrome-72x72.png",
|
|
||||||
"sizes": "72x72",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "android-chrome-96x96.png",
|
|
||||||
"sizes": "96x96",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "android-chrome-144x144.png",
|
|
||||||
"sizes": "144x144",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "android-chrome-192x192.png",
|
|
||||||
"sizes": "192x192",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "android-chrome-256x256.png",
|
|
||||||
"sizes": "256x256",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "android-chrome-384x384.png",
|
|
||||||
"sizes": "384x384",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "android-chrome-512x512.png",
|
|
||||||
"sizes": "512x512",
|
|
||||||
"type": "image/png"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
1
docs/dist/lib/css/bulma.min.css
vendored
4
docs/dist/lib/css/font-awesome.min.css
vendored
1
docs/dist/lib/css/vue.css
vendored
1
docs/dist/lib/font/raleway.min.css
vendored
@ -1 +0,0 @@
|
|||||||
@font-face{font-family:Raleway;src:url(fonts/Raleway-Thin.ttf) format('truetype');font-style:normal;font-weight:100;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Thin-Italic.ttf) format('truetype');font-style:italic;font-weight:100;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-ExtraLight.ttf) format('truetype');font-style:normal;font-weight:200;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-ExtraLight-Italic.ttf) format('truetype');font-style:italic;font-weight:200;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Light.ttf) format('truetype');font-style:normal;font-weight:300;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Light-Italic.ttf) format('truetype');font-style:italic;font-weight:300;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Regular.ttf) format('truetype');font-style:normal;font-weight:400;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Regular-Italic.ttf) format('truetype');font-style:italic;font-weight:400;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Medium.ttf) format('truetype');font-style:normal;font-weight:500;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Medium-Italic.ttf) format('truetype');font-style:italic;font-weight:500;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-SemiBold.ttf) format('truetype');font-style:normal;font-weight:600;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-SemiBold-Italic.ttf) format('truetype');font-style:italic;font-weight:600;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Bold.ttf) format('truetype');font-style:normal;font-weight:700;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Bold-Italic.ttf) format('truetype');font-style:italic;font-weight:700;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-ExtraBold.ttf) format('truetype');font-style:normal;font-weight:800;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-ExtraBold-Italic.ttf) format('truetype');font-style:italic;font-weight:800;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Black.ttf) format('truetype');font-style:normal;font-weight:900;text-rendering:optimizeLegibility}@font-face{font-family:Raleway;src:url(fonts/Raleway-Black-Italic.ttf) format('truetype');font-style:italic;font-weight:900;text-rendering:optimizeLegibility}/*# sourceMappingURL=raleway.min.css.map */
|
|
2
docs/dist/lib/js/d3.min.js
vendored
1
docs/dist/lib/js/docsify.min.js
vendored
1
docs/dist/lib/js/emoji.min.js
vendored
1
docs/dist/lib/js/external-script.min.js
vendored
@ -1 +0,0 @@
|
|||||||
!function(){function o(){for(var o=Docsify.dom.getNode("#main"),e=Docsify.dom.findAll(o,"script"),n=e.length;n--;){var i=e[n];if(i&&i.src){var t=document.createElement("script");Array.prototype.slice.call(i.attributes).forEach(function(o){t[o.name]=o.value}),i.parentNode.insertBefore(t,i),i.parentNode.removeChild(i)}}}window.$docsify.plugins=[].concat(function(e){e.doneEach(o)},window.$docsify.plugins)}();
|
|
1
docs/dist/lib/js/ga.min.js
vendored
@ -1 +0,0 @@
|
|||||||
!function(){function n(n){!function(){var n=document.createElement("script");n.async=!0,n.src="https://www.google-analytics.com/analytics.js",document.body.appendChild(n)}(),window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=Number(new Date),window.ga("create",n,"auto")}function o(){window.ga||n($docsify.ga),window.ga("set","page",location.hash),window.ga("send","pageview")}$docsify.plugins=[].concat(function(n){$docsify.ga?n.beforeEach(o):console.error("[Docsify] ga is required.")},$docsify.plugins)}();
|
|
1
docs/dist/lib/js/gitalk.min.js
vendored
@ -1 +0,0 @@
|
|||||||
!function(){$docsify.plugins=[].concat(function(n){var t=Docsify.dom;n.mounted(function(n){var i=t.create("div");i.id="gitalk-container";var e=t.getNode("#main");i.style="width: "+e.clientWidth+"px; margin: 0 auto 20px;",t.appendTo(t.find(".content"),i);var o=t.create("script");o.textContent="gitalk.render('gitalk-container')",t.appendTo(t.body,o)})},$docsify.plugins)}();
|
|
1
docs/dist/lib/js/search.min.js
vendored
1
docs/dist/lib/js/zoom-image.min.js
vendored
56
docs/dist/manifest.json
vendored
@ -1,56 +0,0 @@
|
|||||||
{
|
|
||||||
"short_name": "Security Checklist",
|
|
||||||
"name": "Personal Security Checklist",
|
|
||||||
"icons": [
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-36x36.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "36x36"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-48x48.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "48x48"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-72x72.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "72x72"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-96x96.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "96x96"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-144x144.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "144x144"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-192x192.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "192x192"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-256x256.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "256x256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-384x384.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "384x384"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-512x512.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "512x512"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"start_url": "/index.html/?source=pwa",
|
|
||||||
"background_color": "#BCA9F5",
|
|
||||||
"display": "standalone",
|
|
||||||
"scope": "/",
|
|
||||||
"theme_color": "#121f42"
|
|
||||||
}
|
|
1
docs/dist/voronoi-app.js
vendored
1
docs/dist/voronoi-styles.css
vendored
@ -1 +0,0 @@
|
|||||||
.links{stroke:#121f42;stroke-opacity:.2}.polygons{fill:none;stroke:#121f42}.polygons :first-child{fill:#f4be1a}.deselect-polygon{fill:#121f42!important}.sites{fill:none;stroke:#121f42}.sites :first-child{fill:#121f42;stroke:#121f42}.v-0{fill:#121f42}.v-1{fill:#132146}.v-2{fill:#14234a}.v-3{fill:#15254e}.v-4{fill:#162752}.v-5{fill:#172856}.v-6{fill:#192a5a}.v-7{fill:#1a2c5e}.v-8{fill:#1b2e62}.v-9{fill:#1c3066}.github-corner svg{fill:#f4be1a}.progress{background:#f4be1a}path.octo-arm,path.octo-body{fill:#121f42}section.cover .cover-main h1 a span{color:#f4be1a}section.cover .cover-main blockquote p{color:#e8e8e8}section.cover .cover-main p:last-child a{color:#f4be1a;border-radius:3px;border:2px solid #f4be1a}section.cover .cover-main p:last-child a:hover{background:#f9da7b;opacity:1}section.cover .cover-main p:last-child a:last-child{color:#272727;background:#f4be1a}section.cover .cover-main p:last-child a:last-child:hover{background:#f9da7b;opacity:1}section.cover .cover-main .cover-footer{position:absolute;bottom:2em;width:100%;text-align:center}section.cover .cover-main .cover-footer a{display:inline-block;color:#f4be1a;padding:1em 2em;min-width:200px;border-radius:3px;border:2px solid transparent}section.cover .cover-main .cover-footer a:hover{border:2px solid #f4be1a}body,html{margin:0;padding:0;height:100%;width:100%;position:relative;overflow-y:auto}#vonoroi{min-height:100%;min-width:100%;position:absolute}a,div,h1,h2,h3,p,span{font-family:Raleway,sans-serif}.markdown-section a{color:#121f42}.markdown-section a:hover,.markdown-section code,.markdown-section pre>code,.sidebar ul li.active>a{color:#f4be1a}.sidebar-toggle span{background-color:#f4be1a}section.content{background:#fff}div.p404{width:80%;margin:1em auto}div.p404 h1,div.p404 h2{text-align:center}div.p404 h1{font-weight:700;font-size:5em}div.p404 h2{font-size:2em}div.p404 .p404-links{margin:20% auto}div.p404 .p404-links a{text-align:center;color:#121f42;min-width:180px;display:inline-block;margin:.5em;padding:.25em .5em;border:2px solid transparent;border-radius:3px}div.p404 .p404-links a:hover{border:2px solid #121f42}
|
|
116
docs/index.html
@ -1,116 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<!-- Site Basic Meta Info -->
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
|
||||||
|
|
||||||
<!-- Site Basic Name Info -->
|
|
||||||
<title>Personal Security Checklist</title>
|
|
||||||
<meta name="author" content="Alicia Sykes">
|
|
||||||
<meta name="description" content="A checklist of basic things you should do, to stay safer online">
|
|
||||||
<meta name="keywords" content="voroni,d3,demo,lissy93">
|
|
||||||
<meta name="image" content="dist/assets/cover.png">
|
|
||||||
<link rel="canonical" href="https://lissy93.github.io/personal-security-checklist/#/" />
|
|
||||||
|
|
||||||
<!-- App Manifest -->
|
|
||||||
<link rel="manifest" href="dist/manifest.json">
|
|
||||||
<meta name="theme-color" content="#121f42"/>
|
|
||||||
|
|
||||||
<!-- Schema.org for Google -->
|
|
||||||
<meta itemprop="name" content="Personal Security Checklist">
|
|
||||||
<meta itemprop="description" content="A checklist of basic things you should do, to stay safer online">
|
|
||||||
<meta itemprop="image" content="dist/assets/cover.png">
|
|
||||||
|
|
||||||
<!-- Twitter -->
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:title" content="Personal Security Checklist">
|
|
||||||
<meta name="twitter:description" content="A checklist of basic things you should do, to stay safer online">
|
|
||||||
<meta name="twitter:image" content="dist/assets/cover.png">
|
|
||||||
|
|
||||||
<!-- Open Graph general (Facebook, Pinterest & Google+) -->
|
|
||||||
<meta name="og:title" content="Personal Security Checklist">
|
|
||||||
<meta name="og:description" content="A checklist of basic things you should do, to stay safer online">
|
|
||||||
<meta name="og:image" content="dist/assets/cover.png">
|
|
||||||
<meta name="og:url" content="https://lissy93.github.io/personal-security-checklist/#/">
|
|
||||||
<meta name="og:site_name" content="Personal Security Checklist">
|
|
||||||
<meta name="og:type" content="website">
|
|
||||||
|
|
||||||
<!-- Fonts, Icons and Styles -->
|
|
||||||
<link rel="shortcut icon" href="dist/icons/favicon.ico" type="image/vnd.microsoft.icon">
|
|
||||||
<link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet">
|
|
||||||
<link rel="stylesheet" href="https://unpkg.com/docsify/lib/themes/vue.css">
|
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css" />
|
|
||||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" crossorigin="anonymous">
|
|
||||||
<link rel="stylesheet" href="dist/voronoi-styles.css" type="text/css">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div id="vonoroi"></div>
|
|
||||||
|
|
||||||
<div id="app"></div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
window.$docsify = {
|
|
||||||
name: 'Personal Security Checklist',
|
|
||||||
repo: 'https://github.com/Lissy93/personal-security-checklist',
|
|
||||||
ga: 'UA-120900119-4',
|
|
||||||
homepage: 'readme.md',
|
|
||||||
coverpage: 'pages/cover.md',
|
|
||||||
notFoundPage: 'pages/404.md',
|
|
||||||
themeColor: '#121f42',
|
|
||||||
auto2top: true,
|
|
||||||
|
|
||||||
homepage: 'https://raw.githubusercontent.com/Lissy93/personal-security-checklist/master/readme.md',
|
|
||||||
|
|
||||||
search: {
|
|
||||||
maxAge: 86400000,
|
|
||||||
paths: ['readme.md'],
|
|
||||||
placeholder: 'Type to search',
|
|
||||||
noData: 'No Results!',
|
|
||||||
},
|
|
||||||
|
|
||||||
plugins: [
|
|
||||||
function (hook) {
|
|
||||||
hook.ready(function () {
|
|
||||||
Window.finishMdRender();
|
|
||||||
})
|
|
||||||
},
|
|
||||||
function (hook) {
|
|
||||||
var footer = [
|
|
||||||
'<hr/>',
|
|
||||||
'<footer>',
|
|
||||||
'<span><a href="https://aliciasykes.com">Alicia Sykes</a> ©2018.</span>',
|
|
||||||
'</footer>'
|
|
||||||
].join('')
|
|
||||||
hook.afterEach(function (html) {
|
|
||||||
return html + footer
|
|
||||||
})
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Docsify and Plugins -->
|
|
||||||
<script src="https://unpkg.com/docsify/lib/docsify.min.js"></script>
|
|
||||||
|
|
||||||
<script src="//unpkg.com/docsify-copy-code"></script>
|
|
||||||
<script src="//unpkg.com/docsify/lib/plugins/ga.min.js"></script>
|
|
||||||
<script src="//unpkg.com/docsify/lib/plugins/search.min.js"></script>
|
|
||||||
<script src="//unpkg.com/docsify/lib/plugins/zoom-image.min.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- JavaScripts (D3 and voronoi + website scripts) -->
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.13.0/d3.min.js"></script>
|
|
||||||
<script src="dist/voronoi-app.js"></script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,56 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "personal-security-checklist-docs",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"description": "The documentation site for code related to the personal-security-checklist repo",
|
|
||||||
"main": "server.js",
|
|
||||||
"scripts": {
|
|
||||||
"start": "open index.html",
|
|
||||||
"serve": "node server.js",
|
|
||||||
"build": "webpack",
|
|
||||||
"dev": "webpack-dev-server",
|
|
||||||
"test": "echo \"Error: Specific tests are yet to be specified\" && exit 0",
|
|
||||||
"clean": "git clean -x && rm -r dist",
|
|
||||||
"postinstall": "webpack"
|
|
||||||
},
|
|
||||||
"keywords": [
|
|
||||||
"voroni",
|
|
||||||
"d3",
|
|
||||||
"demo",
|
|
||||||
"lissy93",
|
|
||||||
"security",
|
|
||||||
"personal-security",
|
|
||||||
"cyber-security",
|
|
||||||
"checklist"
|
|
||||||
],
|
|
||||||
"author": "Alicia Sykes",
|
|
||||||
"license": "MIT",
|
|
||||||
"devDependencies": {
|
|
||||||
"@babel/core": "^7.0.0-beta.49",
|
|
||||||
"@babel/preset-env": "^7.0.0-beta.49",
|
|
||||||
"@babel/preset-es2016": "^7.0.0-beta.49",
|
|
||||||
"babel-loader": "^8.0.0-beta.3",
|
|
||||||
"copy-webpack-plugin": "^4.5.1",
|
|
||||||
"css-loader": "^0.28.11",
|
|
||||||
"favicons-webpack-plugin": "0.0.9",
|
|
||||||
"handlebars-webpack-plugin": "^1.4.2",
|
|
||||||
"html-webpack-plugin": "^3.2.0",
|
|
||||||
"mini-css-extract-plugin": "^0.4.0",
|
|
||||||
"node-sass": "^4.9.0",
|
|
||||||
"optimize-css-assets-webpack-plugin": "^4.0.2",
|
|
||||||
"sass-loader": "^7.0.1",
|
|
||||||
"style-loader": "^0.21.0",
|
|
||||||
"ts-loader": "^4.3.0",
|
|
||||||
"typescript": "^2.9.1",
|
|
||||||
"webpack": "^4.11.1",
|
|
||||||
"webpack-cli": "^3.0.2"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"bulma": "^0.7.1",
|
|
||||||
"connect": "^3.6.6",
|
|
||||||
"d3": "^5.4.0",
|
|
||||||
"docsify": "^4.6.10",
|
|
||||||
"font-awesome": "^4.7.0",
|
|
||||||
"raleway-webfont": "^3.0.1",
|
|
||||||
"serve-static": "^1.13.2"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
|
|
||||||
<div class="p404">
|
|
||||||
|
|
||||||
<h1>404</h1>
|
|
||||||
|
|
||||||
<h2>That page wasn't found</h2>
|
|
||||||
|
|
||||||
<div class="p404-links">
|
|
||||||
[<i class="fas fa-home"></i> Back to Homepage](/)
|
|
||||||
[<i class="fas fa-desktop"></i> Demo](/)
|
|
||||||
[<i class="fas fa-suitcase"></i> License](#)
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
@ -1,9 +0,0 @@
|
|||||||
# Personal Security Checklist
|
|
||||||
|
|
||||||
> A list of hints and tips to stay safe in cyber space
|
|
||||||
|
|
||||||
[<i class="fab fa-github"></i> Source Code](https://github.com/Lissy93/personal-security-checklist)
|
|
||||||
[<i class="fas fa-book"></i> The List](#main)
|
|
||||||
|
|
||||||
<!-- Backup background color -->
|
|
||||||
![color](#121f42)
|
|
@ -1,41 +0,0 @@
|
|||||||
|
|
||||||
## Documentation for the GitHub Docs Site
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://travis-ci.org/Lissy93/voronoi-site-template"><img data-no-zoom src="https://travis-ci.org/Lissy93/voronoi-site-template.svg?branch=master" alt="Build Status" /></a>
|
|
||||||
<a href="https://www.codacy.com/app/lissy93/voronoi-site-template?utm_source=github.com&utm_medium=referral&utm_content=Lissy93/voronoi-site-template&utm_campaign=Badge_Grade"><img src="https://api.codacy.com/project/badge/Grade/42869ef92bb2469e9f92bcf5de15bc94" alt="Codacy Badge" /></a>
|
|
||||||
<a href="https://david-dm.org/Lissy93/voronoi-site-template"><img data-no-zoom src="https://david-dm.org/Lissy93/voronoi-site-template/status.svg" alt="dependencies Status" /></a>
|
|
||||||
<a href="https://david-dm.org/Lissy93/voronoi-site-template?type=dev"><img data-no-zoom src="https://david-dm.org/Lissy93/voronoi-site-template/dev-status.svg" alt="devDependencies Status" /></a>
|
|
||||||
<a href="https://github.com/Lissy93/voronoi-site-template/commits/master"><img data-no-zoom src="https://img.shields.io/maintenance/yes/2018.svg?style=flat-square" alt="Maintenance" /></a>
|
|
||||||
<a href="https://codeclimate.com/github/Lissy93/voronoi-site-template/maintainability"><img data-no-zoom src="https://api.codeclimate.com/v1/badges/58e7ee2c035047d1572e/maintainability" alt="Maintainability" /></a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
## Installing
|
|
||||||
|
|
||||||
Simply clone the repo, navigate into the new directory, install dependencies, build, and your ready to go!
|
|
||||||
|
|
||||||
```console
|
|
||||||
git clone https://github.com/Lissy93/voronoi-site-template.git
|
|
||||||
cd voronoi-site-template
|
|
||||||
yarn
|
|
||||||
```
|
|
||||||
|
|
||||||
## Building, Developing and Deploying
|
|
||||||
|
|
||||||
- [**`npm run build`**](package.json#L9) *Triggers complete webpack build*
|
|
||||||
- [**`npm run start`**](package.json#L7) *Opens the standalone version*
|
|
||||||
- [**`npm run serve`**](package.json#L8) *Runs app on a lightweight node server*
|
|
||||||
- [**`npm run dev`**](package.json#L10) *Starts webpack-dev-server, for live changes*
|
|
||||||
- [**`npm run clean`**](package.json#L12) *Removes all generated files and libraries*
|
|
||||||
- [**`npm run test`**](package.json#L11) *Executes the test scripts*
|
|
||||||
|
|
||||||
*__Note:__ You should only need to modify files within the [`/src`](src/) directory, and the [`*.md`](pages/) files. Anything else will be overidden when webpack builds.*
|
|
||||||
|
|
||||||
## Credits
|
|
||||||
- This project uses [Docsify](https://github.com/QingWei-Li/docsify/) to display MD docs and for navigation
|
|
||||||
- The homepage Vonoroi visualisation was based on Mike Bostock's origional D3.js [voronoi](https://github.com/d3/d3-voronoi) script.
|
|
||||||
|
|
||||||
## License
|
|
||||||
Licensed under MIT, (C) [Alicia Sykes](https://aliciasykes.com) 2018. [Read full License](LICENSE.md).
|
|
||||||
|
|
||||||
[![License](https://upload.wikimedia.org/wikipedia/commons/f/f8/License_icon-mit-88x31-2.svg)](LICENSE.md)
|
|
@ -1,5 +0,0 @@
|
|||||||
var connect = require('connect');
|
|
||||||
var serveStatic = require('serve-static');
|
|
||||||
connect().use(serveStatic(__dirname)).listen(8080, function(){
|
|
||||||
console.log('Server running on 8080...');
|
|
||||||
});
|
|
Before Width: | Height: | Size: 163 KiB |
Before Width: | Height: | Size: 66 KiB |
@ -1,116 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<!-- Site Basic Meta Info -->
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
|
||||||
|
|
||||||
<!-- Site Basic Name Info -->
|
|
||||||
<title>{{meta.title}}</title>
|
|
||||||
<meta name="author" content="{{meta.author}}">
|
|
||||||
<meta name="description" content="{{meta.description}}">
|
|
||||||
<meta name="keywords" content="{{meta.keywords}}">
|
|
||||||
<meta name="image" content="dist/assets/cover.png">
|
|
||||||
<link rel="canonical" href="{{meta.url}}" />
|
|
||||||
|
|
||||||
<!-- App Manifest -->
|
|
||||||
<link rel="manifest" href="dist/manifest.json">
|
|
||||||
<meta name="theme-color" content="{{meta.color}}"/>
|
|
||||||
|
|
||||||
<!-- Schema.org for Google -->
|
|
||||||
<meta itemprop="name" content="{{meta.title}}">
|
|
||||||
<meta itemprop="description" content="{{meta.description}}">
|
|
||||||
<meta itemprop="image" content="dist/assets/cover.png">
|
|
||||||
|
|
||||||
<!-- Twitter -->
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:title" content="{{meta.title}}">
|
|
||||||
<meta name="twitter:description" content="{{meta.description}}">
|
|
||||||
<meta name="twitter:image" content="dist/assets/cover.png">
|
|
||||||
|
|
||||||
<!-- Open Graph general (Facebook, Pinterest & Google+) -->
|
|
||||||
<meta name="og:title" content="{{meta.title}}">
|
|
||||||
<meta name="og:description" content="{{meta.description}}">
|
|
||||||
<meta name="og:image" content="dist/assets/cover.png">
|
|
||||||
<meta name="og:url" content="{{meta.url}}">
|
|
||||||
<meta name="og:site_name" content="{{meta.title}}">
|
|
||||||
<meta name="og:type" content="website">
|
|
||||||
|
|
||||||
<!-- Fonts, Icons and Styles -->
|
|
||||||
<link rel="shortcut icon" href="dist/icons/favicon.ico" type="image/vnd.microsoft.icon">
|
|
||||||
<link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet">
|
|
||||||
<link rel="stylesheet" href="https://unpkg.com/docsify/lib/themes/vue.css">
|
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css" />
|
|
||||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" crossorigin="anonymous">
|
|
||||||
<link rel="stylesheet" href="dist/voronoi-styles.css" type="text/css">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div id="vonoroi"></div>
|
|
||||||
|
|
||||||
<div id="app"></div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
window.$docsify = {
|
|
||||||
name: '{{meta.title}}',
|
|
||||||
repo: '{{meta.repo}}',
|
|
||||||
ga: '{{meta.ga}}',
|
|
||||||
homepage: 'readme.md',
|
|
||||||
coverpage: 'pages/cover.md',
|
|
||||||
notFoundPage: 'pages/404.md',
|
|
||||||
themeColor: '{{meta.color}}',
|
|
||||||
auto2top: true,
|
|
||||||
|
|
||||||
homepage: 'https://raw.githubusercontent.com/Lissy93/personal-security-checklist/master/readme.md',
|
|
||||||
|
|
||||||
search: {
|
|
||||||
maxAge: 86400000,
|
|
||||||
paths: ['readme.md'],
|
|
||||||
placeholder: 'Type to search',
|
|
||||||
noData: 'No Results!',
|
|
||||||
},
|
|
||||||
|
|
||||||
plugins: [
|
|
||||||
function (hook) {
|
|
||||||
hook.ready(function () {
|
|
||||||
Window.finishMdRender();
|
|
||||||
})
|
|
||||||
},
|
|
||||||
function (hook) {
|
|
||||||
var footer = [
|
|
||||||
'<hr/>',
|
|
||||||
'<footer>',
|
|
||||||
'<span><a href="https://aliciasykes.com">Alicia Sykes</a> ©2018.</span>',
|
|
||||||
'</footer>'
|
|
||||||
].join('')
|
|
||||||
hook.afterEach(function (html) {
|
|
||||||
return html + footer
|
|
||||||
})
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Docsify and Plugins -->
|
|
||||||
<script src="https://unpkg.com/docsify/lib/docsify.min.js"></script>
|
|
||||||
|
|
||||||
<script src="//unpkg.com/docsify-copy-code"></script>
|
|
||||||
<script src="//unpkg.com/docsify/lib/plugins/ga.min.js"></script>
|
|
||||||
<script src="//unpkg.com/docsify/lib/plugins/search.min.js"></script>
|
|
||||||
<script src="//unpkg.com/docsify/lib/plugins/zoom-image.min.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- JavaScripts (D3 and voronoi + website scripts) -->
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.13.0/d3.min.js"></script>
|
|
||||||
<script src="dist/voronoi-app.js"></script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"meta":{
|
|
||||||
"title": "Personal Security Checklist",
|
|
||||||
"author": "Alicia Sykes",
|
|
||||||
"description": "A checklist of basic things you should do, to stay safer online",
|
|
||||||
"keywords": "voroni,d3,demo,lissy93",
|
|
||||||
"url": "https://lissy93.github.io/personal-security-checklist/#/",
|
|
||||||
"repo": "https://github.com/Lissy93/personal-security-checklist",
|
|
||||||
"color": "#121f42",
|
|
||||||
"ga": "UA-120900119-4"
|
|
||||||
},
|
|
||||||
"show-vonori-chart": true
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
import './styles/voronoi-styles.scss'
|
|
||||||
import D3Voronoi from './scripts/d3-voronoi.ts'
|
|
||||||
import SmoothScrolling from './scripts/page-actions.js'
|
|
||||||
|
|
||||||
const voronoi = new D3Voronoi();
|
|
||||||
|
|
||||||
// I will go to hell for this next line
|
|
||||||
Window.finishMdRender = ()=> SmoothScrolling();
|
|
@ -1,56 +0,0 @@
|
|||||||
{
|
|
||||||
"short_name": "Security Checklist",
|
|
||||||
"name": "Personal Security Checklist",
|
|
||||||
"icons": [
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-36x36.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "36x36"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-48x48.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "48x48"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-72x72.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "72x72"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-96x96.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "96x96"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-144x144.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "144x144"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-192x192.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "192x192"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-256x256.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "256x256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-384x384.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "384x384"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "dist/icons/android-chrome-512x512.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "512x512"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"start_url": "/index.html/?source=pwa",
|
|
||||||
"background_color": "#BCA9F5",
|
|
||||||
"display": "standalone",
|
|
||||||
"scope": "/",
|
|
||||||
"theme_color": "#121f42"
|
|
||||||
}
|
|
@ -1,153 +0,0 @@
|
|||||||
|
|
||||||
declare const d3; // D3.js is either already bundled by Webpack or fetched via CDN
|
|
||||||
|
|
||||||
export default class D3Voronoi{
|
|
||||||
|
|
||||||
/* Defining the attrinbuteds */
|
|
||||||
private target;
|
|
||||||
private svg;
|
|
||||||
private height;
|
|
||||||
private width;
|
|
||||||
|
|
||||||
private voronoi;
|
|
||||||
private sites;
|
|
||||||
private polygon;
|
|
||||||
private link;
|
|
||||||
private site;
|
|
||||||
|
|
||||||
constructor(targetContainer = '#vonoroi'){
|
|
||||||
this.target = d3.select(targetContainer);
|
|
||||||
this.renderTheAwesome()
|
|
||||||
this.watchForResize();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is the main render method
|
|
||||||
*/
|
|
||||||
public renderTheAwesome(){
|
|
||||||
|
|
||||||
this.svg = this.target.append("svg");
|
|
||||||
this.width = this.target.node().getBoundingClientRect().width;
|
|
||||||
this.height = this.target.node().getBoundingClientRect().height;
|
|
||||||
|
|
||||||
this.svg.attr('width', this.width);
|
|
||||||
this.svg.attr('height', this.height);
|
|
||||||
|
|
||||||
this.mouseLeaveEvents();
|
|
||||||
|
|
||||||
/* Calculate how many sites to display and generate them */
|
|
||||||
this.sites = d3.range(300).map((d) => {
|
|
||||||
return [Math.random() * this.width, Math.random() * this.height];
|
|
||||||
});
|
|
||||||
|
|
||||||
/* Add the mouseover event, for highlighting */
|
|
||||||
let that = this;
|
|
||||||
this.svg.on('touchmove mousemove', function(){
|
|
||||||
that.sites[0] = d3.mouse(this);
|
|
||||||
that.redraw();
|
|
||||||
});
|
|
||||||
|
|
||||||
/* Initialise the D3 Voroni */
|
|
||||||
this.voronoi = d3.voronoi()
|
|
||||||
.extent([[-1, -1], [this.width + 1, this.height + 1]]);
|
|
||||||
|
|
||||||
/* Add Polygon for each site */
|
|
||||||
this.polygon = this.svg.append('g')
|
|
||||||
.attr('class', 'polygons')
|
|
||||||
.selectAll('path')
|
|
||||||
.data(this.voronoi.polygons(this.sites))
|
|
||||||
.enter().append('path')
|
|
||||||
.call(this.redrawPolygon);
|
|
||||||
|
|
||||||
/* Add Lines for each polygon */
|
|
||||||
this.link = this.svg.append('g')
|
|
||||||
.attr('class', 'links')
|
|
||||||
.selectAll('line')
|
|
||||||
.data(this.voronoi.links(this.sites))
|
|
||||||
.enter().append('line')
|
|
||||||
.call(this.redrawLink);
|
|
||||||
|
|
||||||
/* Add the actual Site */
|
|
||||||
this.site = this.svg.append('g')
|
|
||||||
.attr('class', 'sites')
|
|
||||||
.selectAll('circle')
|
|
||||||
.data(this.sites)
|
|
||||||
.enter().append('circle')
|
|
||||||
.attr('r', 2.5)
|
|
||||||
.call(this.redrawSite);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Triggers the render methods for polygons, lins and sites
|
|
||||||
*/
|
|
||||||
private redraw() {
|
|
||||||
const diagram = this.voronoi(this.sites);
|
|
||||||
this.polygon = this.polygon.data(diagram.polygons()).call(this.redrawPolygon);
|
|
||||||
this.link = this.link.data(diagram.links()), this.link.exit().remove();
|
|
||||||
this.link = this.link.enter().append('line').merge(this.link).call(this.redrawLink);
|
|
||||||
this.site = this.site.data(this.sites).call(this.redrawSite);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renders a given polygon
|
|
||||||
* @param polygon
|
|
||||||
*/
|
|
||||||
private redrawPolygon(polygon) {
|
|
||||||
polygon
|
|
||||||
.attr('d', (d) => { return d ? 'M' + d.join('L') + 'Z' : null; })
|
|
||||||
.attr('class', (d, i) => { return 'v-' + i % 9; });
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the dimensions and positions of the links between sites
|
|
||||||
* @param link
|
|
||||||
*/
|
|
||||||
private redrawLink(link) {
|
|
||||||
link
|
|
||||||
.attr('x1', (d) => { return d.source[0]; })
|
|
||||||
.attr('y1', (d) => { return d.source[1]; })
|
|
||||||
.attr('x2', (d) => { return d.target[0]; })
|
|
||||||
.attr('y2', (d) => { return d.target[1]; });
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets dimensions and positions of each given site
|
|
||||||
* @param site
|
|
||||||
*/
|
|
||||||
private redrawSite(site) {
|
|
||||||
site
|
|
||||||
.attr('cx', (d) => { return d[0]; })
|
|
||||||
.attr('cy', (d) => { return d[1]; });
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes old svg and rerenders a new one
|
|
||||||
* Only used in the (hopefully) rare occasion
|
|
||||||
* that a user will resize their browser
|
|
||||||
*/
|
|
||||||
private rerender(){
|
|
||||||
this.svg.remove();
|
|
||||||
this.renderTheAwesome();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Work-around to make the chart work on all (most) screen sizes
|
|
||||||
* @param event
|
|
||||||
*/
|
|
||||||
private watchForResize(){
|
|
||||||
let resizeTimer = undefined;
|
|
||||||
window.addEventListener('resize', () => {
|
|
||||||
clearTimeout(resizeTimer);
|
|
||||||
return resizeTimer = setTimeout((() =>
|
|
||||||
this.rerender() ), 250);
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
private mouseLeaveEvents(){
|
|
||||||
let that = this;
|
|
||||||
this.svg.on('mouseleave', function() {
|
|
||||||
d3.selectAll('.polygons :first-child').attr('class', 'deselect-polygon');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
|||||||
var _gaq = _gaq || [];
|
|
||||||
_gaq.push(['_setAccount', 'UA-XXXXXXXX-Y']);
|
|
||||||
_gaq.push(['_trackPageview']);
|
|
||||||
(function() {
|
|
||||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
|
||||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
|
||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
|
||||||
})();
|
|
@ -1,12 +0,0 @@
|
|||||||
/* Smooth Scrolling for Internal Anchor Links */
|
|
||||||
|
|
||||||
export default () => {
|
|
||||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
|
||||||
anchor.addEventListener('click', function (e) {
|
|
||||||
e.preventDefault();
|
|
||||||
document.querySelector(this.getAttribute('href').replace('/?id=', '')).scrollIntoView({
|
|
||||||
behavior: 'smooth'
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
@import 'constants.scss';
|
|
||||||
|
|
||||||
div.p404 {
|
|
||||||
width: 80%;
|
|
||||||
margin: 1em auto;
|
|
||||||
|
|
||||||
h1, h2 {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1{
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 5em;
|
|
||||||
}
|
|
||||||
h2{
|
|
||||||
font-size: 2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.p404-links{
|
|
||||||
margin: 20% auto;
|
|
||||||
a{
|
|
||||||
text-align: center;
|
|
||||||
color: $col-cover-secondry;
|
|
||||||
min-width: 180px;
|
|
||||||
display: inline-block;
|
|
||||||
margin: 0.5em;
|
|
||||||
padding: 0.25em 0.5em;
|
|
||||||
border: 2px solid transparent;
|
|
||||||
border-radius: 3px;
|
|
||||||
|
|
||||||
&:hover{
|
|
||||||
border: 2px solid $col-cover-secondry;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
|
|
||||||
/* Default Website Font*/
|
|
||||||
$font: 'Raleway', sans-serif;
|
|
||||||
|
|
||||||
/* Website Cover Colors */
|
|
||||||
$col-cover-primary: #f4be1a;
|
|
||||||
$col-cover-secondry: #121f42;
|
|
||||||
$col-cover-pale: #E8E8E8;
|
|
||||||
$col-cover-dark: #272727;
|
|
||||||
|
|
||||||
|
|
||||||
/* Vonoroi Chart Colors */
|
|
||||||
$col-lines: #121f42;
|
|
||||||
$col-initial-primary-fill: #121f42;
|
|
||||||
$col-selected-polygon: #f4be1a;
|
|
||||||
$col-selected-site-fill: #121f42;
|
|
||||||
$col-selected-site-stroke: #121f42;
|
|
||||||
$col-sites-fill: none;
|
|
||||||
$col-sites-line: #121f42;
|
|
@ -1,75 +0,0 @@
|
|||||||
|
|
||||||
@import 'constants.scss';
|
|
||||||
|
|
||||||
.github-corner svg{
|
|
||||||
fill: $col-cover-primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
.progress{
|
|
||||||
background: $col-cover-primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
path.octo-body, path.octo-arm{
|
|
||||||
fill: $col-cover-secondry;
|
|
||||||
}
|
|
||||||
|
|
||||||
section.cover .cover-main{
|
|
||||||
|
|
||||||
/* Main cover title */
|
|
||||||
h1 a span{
|
|
||||||
color: $col-cover-primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Tag line / short description */
|
|
||||||
blockquote p{
|
|
||||||
color: $col-cover-pale;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* All but the last button */
|
|
||||||
p:last-child a{
|
|
||||||
color: $col-cover-primary;
|
|
||||||
border-radius: 3px;
|
|
||||||
border: 2px solid $col-cover-primary;
|
|
||||||
&:hover{
|
|
||||||
background: lighten($col-cover-primary, 20);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Last button */
|
|
||||||
p:last-child a:last-child{
|
|
||||||
color: $col-cover-dark;
|
|
||||||
background: $col-cover-primary;
|
|
||||||
&:hover{
|
|
||||||
background: lighten($col-cover-primary, 20);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.cover-footer{
|
|
||||||
position: absolute;
|
|
||||||
bottom: 2em;
|
|
||||||
width: 100%;
|
|
||||||
text-align: center;
|
|
||||||
|
|
||||||
a{
|
|
||||||
display: inline-block;
|
|
||||||
color: $col-cover-primary;
|
|
||||||
padding: 1em 2em;
|
|
||||||
min-width: 200px;
|
|
||||||
border-radius: 3px;
|
|
||||||
border: 2px solid transparent;
|
|
||||||
&:hover{
|
|
||||||
border: 2px solid $col-cover-primary;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.cover{
|
|
||||||
height: auto !important;
|
|
||||||
min-height: 30%;
|
|
||||||
max-height: 50%;
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
|
|
||||||
@import 'constants.scss';
|
|
||||||
|
|
||||||
/* Cover Page Layout */
|
|
||||||
html, body{
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
height:100%;
|
|
||||||
width: 100%;
|
|
||||||
position: relative;
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
#vonoroi{
|
|
||||||
min-height: 100%;
|
|
||||||
min-width: 100%;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set fonts */
|
|
||||||
h1, h2, h3, p, span, a, div {
|
|
||||||
font-family: $font;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Underline colors for MD headings */
|
|
||||||
.markdown-section a {
|
|
||||||
color: $col-cover-secondry;
|
|
||||||
&:hover{
|
|
||||||
color: $col-cover-primary;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Selected link color for sidebar */
|
|
||||||
.sidebar ul li.active>a{
|
|
||||||
color: $col-cover-primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Color of code snippets */
|
|
||||||
.markdown-section code, .markdown-section pre>code{
|
|
||||||
color: $col-cover-primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Color of burger menu */
|
|
||||||
.sidebar-toggle span{
|
|
||||||
background-color: $col-cover-primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
section.content{
|
|
||||||
background: #FFFFFF;
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
@import 'constants.scss';
|
|
||||||
|
|
||||||
.links {
|
|
||||||
stroke: $col-lines;
|
|
||||||
stroke-opacity: 0.2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.polygons {
|
|
||||||
fill: none;
|
|
||||||
stroke: $col-lines;
|
|
||||||
}
|
|
||||||
|
|
||||||
.polygons :first-child {
|
|
||||||
fill: $col-selected-polygon;
|
|
||||||
}
|
|
||||||
|
|
||||||
.deselect-polygon {
|
|
||||||
fill: $col-initial-primary-fill !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sites {
|
|
||||||
fill: $col-sites-fill;
|
|
||||||
stroke: $col-sites-line;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sites :first-child {
|
|
||||||
fill: $col-selected-site-fill;
|
|
||||||
stroke: $col-selected-site-stroke;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@for $von-num from 0 through 9 {
|
|
||||||
.v-#{$von-num} {
|
|
||||||
fill: lighten($col-initial-primary-fill, $von-num*1);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
|
|
||||||
@import 'vonoroi-chart-colors.scss';
|
|
||||||
@import 'cover-styles.scss';
|
|
||||||
@import 'general-site-styles.scss';
|
|
||||||
@import '404.scss';
|
|
@ -1 +0,0 @@
|
|||||||
{}
|
|
@ -1,138 +0,0 @@
|
|||||||
|
|
||||||
const path = require('path');
|
|
||||||
const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
|
|
||||||
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
|
||||||
const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
|
|
||||||
const CopyWebpackPlugin = require('copy-webpack-plugin')
|
|
||||||
const HandlebarsPlugin = require("handlebars-webpack-plugin");
|
|
||||||
const FaviconsWebpackPlugin = require('favicons-webpack-plugin')
|
|
||||||
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
||||||
|
|
||||||
|
|
||||||
const webpack = require('webpack');
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
|
|
||||||
mode: 'production',
|
|
||||||
|
|
||||||
entry: {
|
|
||||||
'voronoi-app': './src/main.js',
|
|
||||||
analytics: './src/scripts/google-analytics.js',
|
|
||||||
},
|
|
||||||
|
|
||||||
output: {
|
|
||||||
path: path.join(__dirname, 'dist'),
|
|
||||||
publicPath: "/dist/",
|
|
||||||
filename: '[name].js'
|
|
||||||
},
|
|
||||||
|
|
||||||
resolve: {
|
|
||||||
extensions: ['.ts', '.js' ]
|
|
||||||
},
|
|
||||||
|
|
||||||
module: {
|
|
||||||
rules: [
|
|
||||||
{
|
|
||||||
test: /\.js?$/,
|
|
||||||
exclude: /node_modules/,
|
|
||||||
use: {
|
|
||||||
loader: 'babel-loader',
|
|
||||||
options: {
|
|
||||||
presets: ['@babel/preset-es2016']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
test: /\.ts?$/,
|
|
||||||
loader: 'ts-loader',
|
|
||||||
exclude: /node_modules/,
|
|
||||||
options: {
|
|
||||||
configFile: 'src/tsconfig.json'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
test: /\.scss$/,
|
|
||||||
use: [ 'style-loader', MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader']
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
},
|
|
||||||
devServer: { /* todo */},
|
|
||||||
|
|
||||||
externals: {
|
|
||||||
d3: 'd3'
|
|
||||||
},
|
|
||||||
|
|
||||||
optimization: {
|
|
||||||
minimizer: [
|
|
||||||
new UglifyJsPlugin({
|
|
||||||
cache: true,
|
|
||||||
parallel: true
|
|
||||||
}),
|
|
||||||
new OptimizeCSSAssetsPlugin({})
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
plugins: [
|
|
||||||
|
|
||||||
new FaviconsWebpackPlugin({
|
|
||||||
logo: './src/assets/icon.png',
|
|
||||||
prefix: 'icons/',
|
|
||||||
inject: false,
|
|
||||||
persistentCache: false,
|
|
||||||
icons: {
|
|
||||||
android: true,
|
|
||||||
appleIcon: false,
|
|
||||||
appleStartup: false,
|
|
||||||
coast: false,
|
|
||||||
favicons: true,
|
|
||||||
firefox: false,
|
|
||||||
windows: false,
|
|
||||||
yandex: false
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
|
|
||||||
new HandlebarsPlugin({
|
|
||||||
entry: 'src/index.hbs',
|
|
||||||
output: 'index.html',
|
|
||||||
data: 'src/locals.json'
|
|
||||||
}),
|
|
||||||
|
|
||||||
new MiniCssExtractPlugin({
|
|
||||||
filename: 'voronoi-styles.css',
|
|
||||||
}),
|
|
||||||
|
|
||||||
// new HtmlWebpackPlugin({
|
|
||||||
// template: 'src/main.js',
|
|
||||||
// title: 'HTML Webpack Plugin',
|
|
||||||
// }),
|
|
||||||
|
|
||||||
new webpack.ProvidePlugin({
|
|
||||||
_: "underscore"
|
|
||||||
}),
|
|
||||||
|
|
||||||
new CopyWebpackPlugin([
|
|
||||||
// Static Assets
|
|
||||||
{ from: 'src/manifest.json', to: '' },
|
|
||||||
{ from: 'src/assets', to: 'assets' },
|
|
||||||
|
|
||||||
// Offline fallback for CDN libraries - JS
|
|
||||||
{ from: 'node_modules/d3/dist/d3.min.js', to: 'lib/js' },
|
|
||||||
{ from: 'node_modules/docsify/lib/docsify.min.js', to: 'lib/js' },
|
|
||||||
{ from: 'node_modules/docsify/lib/plugins/emoji.min.js', to: 'lib/js' },
|
|
||||||
{ from: 'node_modules/docsify/lib/plugins/external-script.min.js', to: 'lib/js' },
|
|
||||||
{ from: 'node_modules/docsify/lib/plugins/ga.min.js', to: 'lib/js' },
|
|
||||||
{ from: 'node_modules/docsify/lib/plugins/gitalk.min.js', to: 'lib/js' },
|
|
||||||
{ from: 'node_modules/docsify/lib/plugins/search.min.js', to: 'lib/js' },
|
|
||||||
{ from: 'node_modules/docsify/lib/plugins/zoom-image.min.js', to: 'lib/js' },
|
|
||||||
|
|
||||||
// Offline fallback for CDN libraries - CSS
|
|
||||||
{ from: 'node_modules/raleway-webfont/raleway.min.css', to: 'lib/font' },
|
|
||||||
{ from: 'node_modules/bulma/css/bulma.min.css', to: 'lib/css' },
|
|
||||||
{ from: 'node_modules/docsify/lib/themes/vue.css', to: 'lib/css' },
|
|
||||||
{ from: 'node_modules/font-awesome/css/font-awesome.min.css', to: 'lib/css' }
|
|
||||||
])
|
|
||||||
]
|
|
||||||
};
|
|