Add new page
This commit is contained in:
@@ -25,10 +25,12 @@ GEM
|
||||
ethon (0.12.0)
|
||||
ffi (>= 1.3.0)
|
||||
eventmachine (1.2.7)
|
||||
eventmachine (1.2.7-x64-mingw32)
|
||||
execjs (2.7.0)
|
||||
faraday (1.0.1)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ffi (1.13.0)
|
||||
ffi (1.13.0-x64-mingw32)
|
||||
forwardable-extended (2.6.0)
|
||||
gemoji (3.0.1)
|
||||
github-pages (206)
|
||||
@@ -206,6 +208,8 @@ GEM
|
||||
multipart-post (2.1.1)
|
||||
nokogiri (1.10.9)
|
||||
mini_portile2 (~> 2.4.0)
|
||||
nokogiri (1.10.9-x64-mingw32)
|
||||
mini_portile2 (~> 2.4.0)
|
||||
octokit (4.18.0)
|
||||
faraday (>= 0.9)
|
||||
sawyer (~> 0.8.0, >= 0.5.3)
|
||||
@@ -240,6 +244,7 @@ GEM
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
x64-mingw32
|
||||
|
||||
DEPENDENCIES
|
||||
github-pages
|
||||
|
||||
1
_site/CNAME
Normal file
1
_site/CNAME
Normal file
@@ -0,0 +1 @@
|
||||
demo.mgrove.uk
|
||||
2
_site/README.md
Normal file
2
_site/README.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# Demo Site
|
||||
The code for [my demo site](https://demo.mgrove.uk) - which hosts small coding projects that I do.
|
||||
76
_site/computer-science-blog/css/main.css
Normal file
76
_site/computer-science-blog/css/main.css
Normal file
@@ -0,0 +1,76 @@
|
||||
/* Reading School 2018, CSS */
|
||||
.carousel-inner {
|
||||
height: 250px;
|
||||
border-radius: 4px;
|
||||
overflow: hidden auto;
|
||||
margin-bottom: 15px;
|
||||
background: rgba(10,10,10,0.2);
|
||||
}
|
||||
|
||||
/* place carousel indicators between the two buttons (next & previous) */
|
||||
.presentation-flexbox {
|
||||
display: -webkit-box;
|
||||
display: -moz-box;
|
||||
display: -ms-flexbox;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
margin-bottom: 15px;
|
||||
|
||||
-webkit-flex-flow: row wrap;
|
||||
flex-flow: row wrap;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.carousel-indicators {
|
||||
order: 1;
|
||||
}
|
||||
.presentation-button-left {
|
||||
order: 0;
|
||||
}
|
||||
.presentation-button-right {
|
||||
order: 2;
|
||||
}
|
||||
|
||||
.carousel-inner .item {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
border: none;
|
||||
padding: 15px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.carousel-indicators li {
|
||||
border: 1px solid var(--mdc-theme-secondary);
|
||||
margin-top: 12px;
|
||||
}
|
||||
.carousel-indicators .active {
|
||||
background-color: var(--mdc-theme-secondary);
|
||||
}
|
||||
|
||||
/* revert changes made by Bootstrap */
|
||||
.carousel-indicators {
|
||||
margin: 0;
|
||||
position: initial;
|
||||
width: auto;
|
||||
z-index: inherit;
|
||||
}
|
||||
|
||||
/* add side margins depending on screen size */
|
||||
#main-content {
|
||||
text-align: left;
|
||||
margin: 20px 15%;
|
||||
}
|
||||
@media screen and (max-width: 1000px) {
|
||||
#main-content {
|
||||
margin: 20px 10%;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 800px) {
|
||||
#main-content {
|
||||
margin: 20px 5%;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 600px) {
|
||||
#main-content {
|
||||
margin: 20px;
|
||||
}
|
||||
}
|
||||
43
_site/computer-science-blog/css/presentation-imports.css
Normal file
43
_site/computer-science-blog/css/presentation-imports.css
Normal file
@@ -0,0 +1,43 @@
|
||||
html, body {
|
||||
font-family: 'Roboto';
|
||||
background: transparent;
|
||||
}
|
||||
.carousel-inner img {
|
||||
width: 50%;
|
||||
box-shadow: 3px 3px 6px 2px rgba(10,10,10,0.5);
|
||||
margin: 10px 0;
|
||||
border-radius: 6px;
|
||||
}
|
||||
@media screen and (max-width: 1000px) {
|
||||
img {
|
||||
width: 60%;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 900px) {
|
||||
img {
|
||||
width: 70%;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 800px) {
|
||||
img {
|
||||
width: 80%;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 700px) {
|
||||
img {
|
||||
width: 90%;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 600px) {
|
||||
img {
|
||||
width: calc(100% - 20px);
|
||||
}
|
||||
}
|
||||
|
||||
/* revert changes made by Bootstrap */
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
h1, h2, h3, .h1, .h2, .h3 {
|
||||
margin-top: 0;
|
||||
}
|
||||
BIN
_site/computer-science-blog/images/with_css.jpg
Normal file
BIN
_site/computer-science-blog/images/with_css.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
BIN
_site/computer-science-blog/images/without_css.jpg
Normal file
BIN
_site/computer-science-blog/images/without_css.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 49 KiB |
205
_site/computer-science-blog/index.html
Normal file
205
_site/computer-science-blog/index.html
Normal file
@@ -0,0 +1,205 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
<link rel="icon" sizes="192x192" href="https://mgrove.uk/logo.png">
|
||||
|
||||
<!-- add to homescreen for Chrome on Android -->
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<link rel="icon" sizes="192x192" href="https://mgrove.uk/logo.png">
|
||||
|
||||
<!-- add to homescreen for Safari on iOS -->
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="apple-mobile-web-app-title" content="GCSE Computer Science Blog | Matthew Grove">
|
||||
<link rel="apple-touch-icon-precomposed" href="https://mgrove.uk/logo.png">
|
||||
|
||||
<!-- tile icon & colour for Windows 8 -->
|
||||
<meta name="msapplication-TileImage" content="https://mgrove.uk/logo.png">
|
||||
<meta name="msapplication-TileColor" content="#d84315">
|
||||
|
||||
<title>GCSE Computer Science Blog | Matthew Grove</title>
|
||||
<meta name="description" content="Research about HTTP, HTTPS, SSL and more, made in collaboration with Daniel Dunbar - by Matthew Grove">
|
||||
|
||||
<!-- import Roboto (font) -->
|
||||
<link href="/css/roboto.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import jQuery -->
|
||||
<script src="/js/jquery.min.js" type="text/javascript"></script>
|
||||
|
||||
<!-- import cookie JavaScript -->
|
||||
<script src="/js/cookies.js" type="text/javascript"></script>
|
||||
|
||||
<!-- import Material Design components & icons -->
|
||||
<link href="/css/material-components-web.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="/css/material_icons.css" rel="stylesheet" type="text/css">
|
||||
<script src="/js/material-components-web.min.js" type="text/javascript"></script>
|
||||
|
||||
<!-- import local styling & scripts -->
|
||||
<script src="/js/global.js" type="text/javascript"></script>
|
||||
<link href="/css/global.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-124505000-1" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'UA-124505000-1');
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- cookie notice is included automatically -->
|
||||
<div id="cookies">
|
||||
<p>Just to let you know, I use cookies on my site.</p>
|
||||
<p><a href="javascript:void(0);" id="close-cookies">OK</a></p>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- content of navbar is included automatically -->
|
||||
<aside class="navbar-insert mdc-drawer mdc-drawer--modal">
|
||||
<div class="mdc-drawer__content">
|
||||
<div style="margin: 15px;text-align:center;">
|
||||
<img src="https://mgrove.uk/logo.png" style="width: 90%;"/>
|
||||
</div>
|
||||
<div class="mdc-list">
|
||||
<a class="mdc-list-item" href="https://blog.mgrove.uk">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">assignment</i>
|
||||
<span class="mdc-list-item__text">My Blog</span>
|
||||
</a>
|
||||
<a class="mdc-list-item" href="/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">home</i>
|
||||
<span class="mdc-list-item__text">Home Page</span>
|
||||
</a>
|
||||
|
||||
|
||||
<a class="mdc-list-item" href="/luhn-algorithm/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">credit_card</i>
|
||||
<span class="mdc-list-item__text">Luhn Algorithm</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<a class="mdc-list-item" href="/svalbard/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">ac_unit</i>
|
||||
<span class="mdc-list-item__text">Svalbard</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="mdc-list-item" href="/computer-science-blog/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">code</i>
|
||||
<span class="mdc-list-item__text">GCSE Computer Science Blog</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<div class="mdc-drawer-scrim"></div>
|
||||
|
||||
|
||||
<div class="mdc-drawer-app-content">
|
||||
<header class="mdc-top-app-bar app-bar" id="app-bar">
|
||||
<div class="mdc-top-app-bar__row">
|
||||
<section class="mdc-top-app-bar__section mdc-top-app-bar__section--align-start">
|
||||
<a href="javascript:void(0);" class="demo-mensu material-icons mdc-top-app-bar__navigation-icon">menu</a>
|
||||
<span class="mdc-top-app-bar__title">GCSE Computer Science Blog | Matthew Grove</span>
|
||||
</section>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="main-content" id="main-content">
|
||||
<div class="mdc-top-app-bar--fixed-adjust">
|
||||
<!-- import Bootstrap - must be before extra styling so that carousel indicators' default styling is overwritten -->
|
||||
<script src="/js/bootstrap.min.js" type="text/javascript"></script>
|
||||
|
||||
<link href="/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<!-- import extra styling and scripts -->
|
||||
<link href="css/main.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<link href="css/presentation-imports.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<script src="js/css-presentation-slide.js" type="text/javascript"></script>
|
||||
|
||||
<script src="js/scripts.js" type="text/javascript"></script>
|
||||
|
||||
<p>The current date is <span id="current_date">unknown</span>.</p>
|
||||
<h1 id="http-introduction">HTTP Introduction</h1>
|
||||
<div id="http_presentation" class="carousel slide" data-interval="false" data-ride="carousel">
|
||||
<!-- Wrapper for presentation slides -->
|
||||
<div class="carousel-inner">
|
||||
</div>
|
||||
<div class="presentation-flexbox">
|
||||
<!-- Indicators -->
|
||||
<ol class="carousel-indicators">
|
||||
</ol>
|
||||
<!-- button to go to previous slide -->
|
||||
<button class="presentation-button-left mdc-button mdc-button--outlined" href="#http_presentation" data-slide="prev" data-mdc-auto-init="MDCRipple">
|
||||
<!-- navigation icon -->
|
||||
<i class="material-icons mdc-button__icon">navigate_before</i>
|
||||
Previous
|
||||
</button>
|
||||
<!-- button to go to next slide -->
|
||||
<button class="presentation-button-right mdc-button mdc-button--outlined" href="#http_presentation" data-slide="next" data-mdc-auto-init="MDCRipple">
|
||||
Next
|
||||
<!-- navigation icon -->
|
||||
<i class="material-icons mdc-button__icon">navigate_next</i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- HTML presentation -->
|
||||
<h1>HTML, CSS & JS Introduction</h1>
|
||||
|
||||
<div id="html_presentation" class="carousel slide" data-interval="false" data-ride="carousel">
|
||||
<!-- Wrapper for presentation slides -->
|
||||
<div class="carousel-inner">
|
||||
</div>
|
||||
<div class="presentation-flexbox">
|
||||
<!-- Indicators -->
|
||||
<ol class="carousel-indicators">
|
||||
</ol>
|
||||
<!-- button to go to previous slide -->
|
||||
<button class="presentation-button-left mdc-button mdc-button--outlined" href="#html_presentation" data-slide="prev" data-mdc-auto-init="MDCRipple">
|
||||
<!-- navigation icon -->
|
||||
<i class="material-icons mdc-button__icon">navigate_before</i>
|
||||
Previous
|
||||
</button>
|
||||
<!-- button to go to next slide -->
|
||||
<button class="presentation-button-right mdc-button mdc-button--outlined" href="#html_presentation" data-slide="next" data-mdc-auto-init="MDCRipple">
|
||||
Next
|
||||
<!-- navigation icon -->
|
||||
<i class="material-icons mdc-button__icon">navigate_next</i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- HTML basics info is inserted via jQuery -->
|
||||
<div id="blog-insert"></div>
|
||||
<p><br /></p>
|
||||
<center>Made in association with Daniel Dunbar</center>
|
||||
|
||||
<!-- link to source code on GitHub -->
|
||||
<a href="https://github.com/mgrove36/demo-code/tree/master/computer-science-blog/" class="source-code-link mdc-fab mdc-fab--extended" data-mdc-auto-init="MDCRipple">
|
||||
<span class="material-icons mdc-fab__icon">rate_review</span>
|
||||
<span class="mdc-fab__label">View on GitHub</span>
|
||||
</a>
|
||||
</div>
|
||||
</main>
|
||||
<footer>
|
||||
© Matthew Grove 2019
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
4
_site/computer-science-blog/js/css-presentation-slide.js
Normal file
4
_site/computer-science-blog/js/css-presentation-slide.js
Normal file
@@ -0,0 +1,4 @@
|
||||
window.onload = function() {
|
||||
var year = new Date().getFullYear();
|
||||
document.getElementById("css_attribute_list_link").innerHTML = 'All of the CSS style attributes are listed <a href="https://www.w3.org/TR/css-' + year + '/#properties" target="_blank">here</a>.';
|
||||
}
|
||||
42
_site/computer-science-blog/js/scripts.js
Normal file
42
_site/computer-science-blog/js/scripts.js
Normal file
@@ -0,0 +1,42 @@
|
||||
window.onload = function() {
|
||||
// set the current date
|
||||
var date = new Date();
|
||||
|
||||
// ternary operator: if the date < 10 then add 0 to the start of it, else display the date
|
||||
var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
||||
|
||||
// set current date
|
||||
var current_date = day + "/" + (date.getMonth() + 1) + "/" + date.getFullYear();
|
||||
|
||||
// display date
|
||||
$("#current_date").html(current_date);
|
||||
|
||||
// display first blog page
|
||||
$("#blog-insert").load("pages/blog.html");
|
||||
|
||||
// define variables for HTTP presentation pages
|
||||
var http_pages = ["hyperlinks", "http", "https", "cookies"];
|
||||
// displays HTTP presentation pages
|
||||
http_pages.forEach(function(item, index) {
|
||||
if (index == 0) {
|
||||
$("#http_presentation .carousel-inner").append('<iframe class="item active" src="pages/' + item + '.html"></iframe>');
|
||||
$("#http_presentation .carousel-indicators").append('<li data-target="#http_presentation" class="active" data-slide-to="' + index + '"></li>')
|
||||
} else {
|
||||
$("#http_presentation .carousel-inner").append('<iframe class="item" src="pages/' + item + '.html"></iframe>');
|
||||
$("#http_presentation .carousel-indicators").append('<li data-target="#http_presentation" data-slide-to="' + index + '"></li>')
|
||||
}
|
||||
});
|
||||
|
||||
// define variables for HTML presentation pages
|
||||
var html_pages = ["html", "css", "js"];
|
||||
// displays HTML presentation pages
|
||||
html_pages.forEach(function(item, index) {
|
||||
if (index == 0) {
|
||||
$("#html_presentation .carousel-inner").append('<iframe class="item active" src="pages/' + item + '.html"></iframe>');
|
||||
$("#html_presentation .carousel-indicators").append('<li data-target="#html_presentation" class="active" data-slide-to="' + index + '"></li>')
|
||||
} else {
|
||||
$("#html_presentation .carousel-inner").append('<iframe class="item" src="pages/' + item + '.html"></iframe>');
|
||||
$("#html_presentation .carousel-indicators").append('<li data-target="#html_presentation" data-slide-to="' + index + '"></li>')
|
||||
}
|
||||
});
|
||||
}
|
||||
35
_site/computer-science-blog/pages/blog.html
Normal file
35
_site/computer-science-blog/pages/blog.html
Normal file
@@ -0,0 +1,35 @@
|
||||
<!-- Reading School 2018, HTML page by Matthew Grove, Year 10 -->
|
||||
<h1>HTML Basics</h1>
|
||||
<p>I know that:
|
||||
<ul>
|
||||
<li>inline styles override all others.</li>
|
||||
<li>index.html is one of the industry standard default file names, as well as index.htm, index.php, index.asp, index.aspx and more.</li>
|
||||
<li>iframes are used to embed documents within other documents.</p>
|
||||
<li>
|
||||
CSS files are linked by using the following code:
|
||||
<br>
|
||||
<code><link rel="stylesheet" type="text/css" href="../css/main.css"></code>
|
||||
</li>
|
||||
<li>
|
||||
JS files are linked by using the following code:
|
||||
<br>
|
||||
<code><script type="text/javascript" src="scripts/scripts.js"></script></code>
|
||||
</li>
|
||||
<li>
|
||||
Adding the date when the window loads:
|
||||
<br>
|
||||
<code>
|
||||
// onload of window
|
||||
<br>
|
||||
window.onload = dateInsert;
|
||||
</code>
|
||||
</li>
|
||||
<li>
|
||||
Ternary operators work by using:
|
||||
<br>
|
||||
<code>[condition] ? [value if true] : [value if false]</code>
|
||||
</li>
|
||||
<li>The later a CSS file is imported, the more power it has over the document - i.e. the last stylesheet imported will overwrite the styling in all of the other stylesheets.</li>
|
||||
<li>To add another page, one can use an <code><iframe></code> or the jQuery <code>.load()</code> method.</li>
|
||||
</ul>
|
||||
</p>
|
||||
32
_site/computer-science-blog/pages/cookies.html
Normal file
32
_site/computer-science-blog/pages/cookies.html
Normal file
@@ -0,0 +1,32 @@
|
||||
<!-- Reading School 2018, HTML page by Matthew Grove, Year 10 -->
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
|
||||
<!-- import Roboto (font) -->
|
||||
<link href="/css/roboto.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import Bootstrap -->
|
||||
<link href="/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import local styling & scripts -->
|
||||
<link href="../css/presentation-imports.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h2>Cookies</h2>
|
||||
<p>
|
||||
Cookies are not, unfortunately, the treats made of dough. They are, in fact, small text files, stored in binary, usually one-line long, which store relevant
|
||||
information about websites visited by a computer. This might include a selected language, or ad preferences. Some websites even use
|
||||
cookies to store passwords that are set to ‘remember’. Thus, cookies need strong security and the ID of each one must be unfathomably
|
||||
difficult to find without permission, to reduce the risk of hacking. Cookies are stored on the computer, as opposed to the website.
|
||||
Because both HTTP and HTTPS don't transmit user data, none of the websites you visit know who you are. Therefore, whenever you
|
||||
visit a webpage, it reads the cookies it stored on your computer last time you visited it, in order to find out information like your email address.
|
||||
Many people are against cookies, due to privacy concerns; under new GDPR regulations, all end users in Europe must now be notified of
|
||||
cookie use on each website they visit (if the website uses cookies). Many sites also give an option to refuse cookies.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
64
_site/computer-science-blog/pages/css.html
Normal file
64
_site/computer-science-blog/pages/css.html
Normal file
@@ -0,0 +1,64 @@
|
||||
<!-- Reading School 2018, HTML page by Matthew Grove, Year 10 -->
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
|
||||
<!-- import Roboto (font) -->
|
||||
<link href="/css/roboto.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import Bootstrap -->
|
||||
<link href="/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import local styling & scripts -->
|
||||
<link href="../css/presentation-imports.css" rel="stylesheet" type="text/css">
|
||||
<script src="../js/css-presentation-slide.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h2>CSS</h2>
|
||||
<p>
|
||||
CSS, Cascading Style Sheets, are web documents that allow stylisation of HTML documents. CSS allows you to change the size, style, font, and colour of text; margins and padding; background colours and border styles. To change the appearance of something in CSS, there must be the following format:
|
||||
h1 {
|
||||
Background-color: red;
|
||||
}
|
||||
which would make the background colour of heading 1 tags (big headings) red. The spellings in CSS are American, for example color, and semicolons are extremely important. The following hyperlink has a list of all the CSS commands and what they do when you click on them.
|
||||
|
||||
|
||||
Cascading Stylesheets (CSS) allow the size, style, font & colour of text; background colours & border styles and more to be changed in HTML pages.
|
||||
A page without CSS can be very bland and boring:
|
||||
<br>
|
||||
<img class="presentation-image" src="../images/without_css.jpg">
|
||||
<br>
|
||||
But one with CSS looks a lot more presentable:
|
||||
<br>
|
||||
<img class="presentation-image" src="../images/with_css.jpg">
|
||||
<br>
|
||||
CSS declarations use the <i>tag names</i> (e.g. <code>p</code>), <i>classes</i> and IDs of
|
||||
the elements on the page in order to style them. IDs are written with a preceding hashtag,
|
||||
classes are written with a preceding full stop and tag names are written without any preceding characters.
|
||||
The styles themselves (like <code>height</code>) should all end in semicolons. A comment in CSS is started
|
||||
with <code>/*</code> and ended with <code>*/</code>.
|
||||
Here are some example declarations:
|
||||
<br>
|
||||
<code>
|
||||
p {<br>
|
||||
/* this changes the font size of all p elements */<br>
|
||||
font-size: 3rem;<br>
|
||||
}<br>
|
||||
.class_name {<br>
|
||||
/* this changes the height of all elements with the class name 'class_name' */<br>
|
||||
height: 200px;<br>
|
||||
}<br>
|
||||
#id_name {<br>
|
||||
/* this changes the font of all elements with the ID 'id_name' */<br>
|
||||
font-family: 'Roboto'<br>
|
||||
}<br>
|
||||
</code>
|
||||
<br>
|
||||
<span id="css_attribute_list_link"></span>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
36
_site/computer-science-blog/pages/html.html
Normal file
36
_site/computer-science-blog/pages/html.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<!-- Reading School 2018, HTML page by Matthew Grove, Year 10 -->
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
|
||||
<!-- import Roboto (font) -->
|
||||
<link href="/css/roboto.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import Bootstrap -->
|
||||
<link href="/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import local styling & scripts -->
|
||||
<link href="../css/presentation-imports.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h2>HTML</h2>
|
||||
<p>
|
||||
Hypertext Markup Language is the standard language used by browsers to display webpages.
|
||||
HTML was invented by Tim Berners-Lee in 1990, and uses tags. This means that in order to define
|
||||
an element (something like a heading or paragraph), you use a <i>tag</i> - such as <code><p></code>,
|
||||
which displays a simple paragraph. Most tags must be closed with closing tags - like <code></p></code>,
|
||||
however some elements, like those for images (<code><img></code>) and linking external resources
|
||||
(<code><link></code>) are auto closing: they don’t need a closing tag. For example, an image is defined as follows:
|
||||
<br>
|
||||
<code><img src="image_source_url"></code>
|
||||
<br>
|
||||
A comment in HTML is started with <code><!--</code> and ended with <code>--></code>.
|
||||
<br>
|
||||
HTML is closely linked with CSS and JavaScript.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
25
_site/computer-science-blog/pages/http.html
Normal file
25
_site/computer-science-blog/pages/http.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<!-- Reading School 2018, HTML page by Matthew Grove, Year 10 -->
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
|
||||
<!-- import Roboto (font) -->
|
||||
<link href="/css/roboto.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import Bootstrap -->
|
||||
<link href="/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import local styling & scripts -->
|
||||
<link href="../css/presentation-imports.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h2>HTTP</h2>
|
||||
<p>
|
||||
HTTP is Hypertext Transfer (or Transport) Protocol, the underlying data transfer protocol used on the World Wide Web. It defines what actions web servers and browsers should take in response to commands. For example, when a URL is opened or hyperlink (which is a URL) clicked, your web browser actually sends an HTTP request to the server which hosts the website you're trying to access, in order to fetch it and display it on your screen. Obviously, for each web server to understand these requests, the server and request must both follow this protocol.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
28
_site/computer-science-blog/pages/https.html
Normal file
28
_site/computer-science-blog/pages/https.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<!-- Reading School 2018, HTML page by Matthew Grove, Year 10 -->
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
|
||||
<!-- import Roboto (font) -->
|
||||
<link href="/css/roboto.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import Bootstrap -->
|
||||
<link href="/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import local styling & scripts -->
|
||||
<link href="../css/presentation-imports.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h2>HTTPS</h2>
|
||||
<p>
|
||||
HTTPS is the 'Hypertext Transfer Protocol Secure', which means that it is a variation on the HTTP protocol - except it uses transport layer security
|
||||
(TLS) - an encryption protocol invoked by an HTTPS request, that enables authentication and encryption on the webpage being visited. SSL is
|
||||
essentially the usage of ‘digital passports’, and it functions by ‘hopping onto’ TCP protocols. It does not resend ‘lost’ packets or
|
||||
‘miscommunicated' data, because this increases security.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
32
_site/computer-science-blog/pages/hyperlinks.html
Normal file
32
_site/computer-science-blog/pages/hyperlinks.html
Normal file
@@ -0,0 +1,32 @@
|
||||
<!-- Reading School 2018, HTML page by Matthew Grove, Year 10 -->
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
|
||||
<!-- import Roboto (font) -->
|
||||
<link href="/css/roboto.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import Bootstrap -->
|
||||
<link href="/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import local styling & scripts -->
|
||||
<link href="../css/presentation-imports.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h2>Hyperlinks</h2>
|
||||
<p>
|
||||
A hyperlink is simply a link on the web to another resource. It uses a special kind of command that jumps you to different content in your web browser - usually to another page.
|
||||
<br>
|
||||
Hyperlinks are often denoted by blue underlined text or content which turns the cursor into a pointing hand when hovered over; however, they can be styled however the web designer wishes; their appearances do not change their function.
|
||||
<br>
|
||||
Website owners reserve the right not to be hyperlinked without permission.
|
||||
<br>
|
||||
Hyperlinks are defined in HTML as follows:
|
||||
<code><a href="LINK GOES HERE">TEXT GOES HERE</a></code>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
36
_site/computer-science-blog/pages/js.html
Normal file
36
_site/computer-science-blog/pages/js.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<!-- Reading School 2018, HTML page by Matthew Grove, Year 10 -->
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
|
||||
<!-- import Roboto (font) -->
|
||||
<link href="/css/roboto.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import Bootstrap -->
|
||||
<link href="/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import local styling & scripts -->
|
||||
<link href="../css/presentation-imports.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h2>JavaScript</h2>
|
||||
<p>
|
||||
JavaScript (JS) is a high-level, client-side language, meaning that it is like a human language
|
||||
(rather than, for example, binary) and runs on the end user's computer. It is used for many purposes,
|
||||
including editing content on a webpage, performing mathematical operations and storing variables.
|
||||
Each line of JavaScript should end in a semicolon, for example:
|
||||
<br>
|
||||
<code>
|
||||
// this code sets the content of the element with the ID "id_name" to "Hello World!"<br>
|
||||
document.getElementById("id_name").innerHTML = "Hello World!";
|
||||
</code>
|
||||
<br>
|
||||
A single line comment in JS is denoted by a double forward slash (<code>//</code>); a multi line comment
|
||||
is started with <code>/*</code> and ended with <code>*/</code>.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
0
_site/comsci/index.md
Normal file
0
_site/comsci/index.md
Normal file
2
_site/config.yml
Normal file
2
_site/config.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
name: Demo Site | Matthew Grove
|
||||
title: Demo Site | Matthew Grove
|
||||
6
_site/css/bootstrap.min.css
vendored
Normal file
6
_site/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
99
_site/css/global.css
Normal file
99
_site/css/global.css
Normal file
@@ -0,0 +1,99 @@
|
||||
:root {
|
||||
/* change theme */
|
||||
--mdc-theme-primary: #0092a1;
|
||||
--mdc-theme-secondary: #546875;
|
||||
/* ensure Bootstrap doesn't alter any font sizes set in rem */
|
||||
font-size: initial;
|
||||
}
|
||||
|
||||
/* implement colour theme on elements that don't have it applied by default */
|
||||
.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-floating-label, .mdc-list-item--activated .mdc-list-item__text, .mdc-drawer .mdc-list-item--activated .mdc-list-item__graphic {
|
||||
color: var(--mdc-theme-primary);
|
||||
}
|
||||
|
||||
/* hide unwanted overflow from mdc-text-field :before & :after */
|
||||
.mdc-text-field-container {
|
||||
overflow: hidden;
|
||||
}
|
||||
/* give space for mdc-text-field label to show properly when field is selected */
|
||||
.mdc-text-field {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Roboto', sans-serif;
|
||||
text-align: center;
|
||||
}
|
||||
.mdc-text-field-helper-text {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.source-code-link {
|
||||
position: fixed;
|
||||
bottom: 15px;
|
||||
right: 25px;
|
||||
}
|
||||
a {
|
||||
color: var(--mdc-theme-secondary);
|
||||
}
|
||||
|
||||
/* for MDC navbar */
|
||||
body {
|
||||
display: flex;
|
||||
height: 100vh;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.mdc-drawer-app-content {
|
||||
flex: auto;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.main-content {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.app-bar {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.main-content, footer {
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
/* ensure that buttons' colours don't change on hover and background colour changes are animated */
|
||||
.mdc-button:hover, .mdc-fab:hover, .material-icons:hover, .mdc-button:focus, .mdc-fab:focus, .material-icons:focus {
|
||||
text-decoration: none;
|
||||
transition: background-color 0.75s;
|
||||
}
|
||||
.mdc-button:hover {
|
||||
color: var(--mdc-theme-primary);
|
||||
}
|
||||
.mdc-fab:hover {
|
||||
color: #fff;
|
||||
}
|
||||
.mdc-fab::before, .mdc-top-app-bar__action-item::before, .mdc-top-app-bar__navigation-icon::before {
|
||||
transition-duration: 0.15s;
|
||||
}
|
||||
|
||||
/* for cookie notice */
|
||||
#cookies {
|
||||
display: none;
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
background: var(--mdc-theme-secondary);
|
||||
color: var(--mdc-theme-background);
|
||||
text-align: center;
|
||||
bottom: -100px;
|
||||
left: 0;
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
#cookies p {
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
#cookies p a {
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
8
_site/css/material-components-web.min.css
vendored
Normal file
8
_site/css/material-components-web.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
23
_site/css/material_icons.css
Normal file
23
_site/css/material_icons.css
Normal file
@@ -0,0 +1,23 @@
|
||||
/* fallback */
|
||||
@font-face {
|
||||
font-family: 'Material Icons';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/materialicons/v41/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2');
|
||||
}
|
||||
|
||||
.material-icons {
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 24px;
|
||||
line-height: 1;
|
||||
letter-spacing: normal;
|
||||
text-transform: none;
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
word-wrap: normal;
|
||||
direction: ltr;
|
||||
-webkit-font-feature-settings: 'liga';
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
56
_site/css/roboto.css
Normal file
56
_site/css/roboto.css
Normal file
@@ -0,0 +1,56 @@
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
6
_site/index.html
Normal file
6
_site/index.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<div style="z-index=1000;position:fixed;height:100%;width:100%">
|
||||
<iframe height="100%" width="100%" src="https://www.youtube.com/embed/oHg5SJYRHA0?controls=0&rel=0&autoplay=1" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
|
||||
</div>
|
||||
|
||||
<style>html, body { margin: 0; }</style>
|
||||
|
||||
7
_site/js/bootstrap.min.js
vendored
Normal file
7
_site/js/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
165
_site/js/cookies.js
Normal file
165
_site/js/cookies.js
Normal file
@@ -0,0 +1,165 @@
|
||||
/*!
|
||||
* JavaScript Cookie v2.2.0
|
||||
* https://github.com/js-cookie/js-cookie
|
||||
*
|
||||
* Copyright 2006, 2015 Klaus Hartl & Fagner Brack
|
||||
* Released under the MIT license
|
||||
*/
|
||||
;(function (factory) {
|
||||
var registeredInModuleLoader = false;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
define(factory);
|
||||
registeredInModuleLoader = true;
|
||||
}
|
||||
if (typeof exports === 'object') {
|
||||
module.exports = factory();
|
||||
registeredInModuleLoader = true;
|
||||
}
|
||||
if (!registeredInModuleLoader) {
|
||||
var OldCookies = window.Cookies;
|
||||
var api = window.Cookies = factory();
|
||||
api.noConflict = function () {
|
||||
window.Cookies = OldCookies;
|
||||
return api;
|
||||
};
|
||||
}
|
||||
}(function () {
|
||||
function extend () {
|
||||
var i = 0;
|
||||
var result = {};
|
||||
for (; i < arguments.length; i++) {
|
||||
var attributes = arguments[ i ];
|
||||
for (var key in attributes) {
|
||||
result[key] = attributes[key];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function init (converter) {
|
||||
function api (key, value, attributes) {
|
||||
var result;
|
||||
if (typeof document === 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
// Write
|
||||
|
||||
if (arguments.length > 1) {
|
||||
attributes = extend({
|
||||
path: '/'
|
||||
}, api.defaults, attributes);
|
||||
|
||||
if (typeof attributes.expires === 'number') {
|
||||
var expires = new Date();
|
||||
expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
|
||||
attributes.expires = expires;
|
||||
}
|
||||
|
||||
// We're using "expires" because "max-age" is not supported by IE
|
||||
attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
|
||||
|
||||
try {
|
||||
result = JSON.stringify(value);
|
||||
if (/^[\{\[]/.test(result)) {
|
||||
value = result;
|
||||
}
|
||||
} catch (e) {}
|
||||
|
||||
if (!converter.write) {
|
||||
value = encodeURIComponent(String(value))
|
||||
.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
|
||||
} else {
|
||||
value = converter.write(value, key);
|
||||
}
|
||||
|
||||
key = encodeURIComponent(String(key));
|
||||
key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
|
||||
key = key.replace(/[\(\)]/g, escape);
|
||||
|
||||
var stringifiedAttributes = '';
|
||||
|
||||
for (var attributeName in attributes) {
|
||||
if (!attributes[attributeName]) {
|
||||
continue;
|
||||
}
|
||||
stringifiedAttributes += '; ' + attributeName;
|
||||
if (attributes[attributeName] === true) {
|
||||
continue;
|
||||
}
|
||||
stringifiedAttributes += '=' + attributes[attributeName];
|
||||
}
|
||||
return (document.cookie = key + '=' + value + stringifiedAttributes);
|
||||
}
|
||||
|
||||
// Read
|
||||
|
||||
if (!key) {
|
||||
result = {};
|
||||
}
|
||||
|
||||
// To prevent the for loop in the first place assign an empty array
|
||||
// in case there are no cookies at all. Also prevents odd result when
|
||||
// calling "get()"
|
||||
var cookies = document.cookie ? document.cookie.split('; ') : [];
|
||||
var rdecode = /(%[0-9A-Z]{2})+/g;
|
||||
var i = 0;
|
||||
|
||||
for (; i < cookies.length; i++) {
|
||||
var parts = cookies[i].split('=');
|
||||
var cookie = parts.slice(1).join('=');
|
||||
|
||||
if (!this.json && cookie.charAt(0) === '"') {
|
||||
cookie = cookie.slice(1, -1);
|
||||
}
|
||||
|
||||
try {
|
||||
var name = parts[0].replace(rdecode, decodeURIComponent);
|
||||
cookie = converter.read ?
|
||||
converter.read(cookie, name) : converter(cookie, name) ||
|
||||
cookie.replace(rdecode, decodeURIComponent);
|
||||
|
||||
if (this.json) {
|
||||
try {
|
||||
cookie = JSON.parse(cookie);
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
if (key === name) {
|
||||
result = cookie;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!key) {
|
||||
result[name] = cookie;
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
api.set = api;
|
||||
api.get = function (key) {
|
||||
return api.call(api, key);
|
||||
};
|
||||
api.getJSON = function () {
|
||||
return api.apply({
|
||||
json: true
|
||||
}, [].slice.call(arguments));
|
||||
};
|
||||
api.defaults = {};
|
||||
|
||||
api.remove = function (key, attributes) {
|
||||
api(key, '', extend(attributes, {
|
||||
expires: -1
|
||||
}));
|
||||
};
|
||||
|
||||
api.withConverter = init;
|
||||
|
||||
return api;
|
||||
}
|
||||
|
||||
return init(function () {});
|
||||
}));
|
||||
42
_site/js/global.js
Normal file
42
_site/js/global.js
Normal file
@@ -0,0 +1,42 @@
|
||||
$(document).ready(function() {
|
||||
// initiate MDC drawer
|
||||
const drawer = new mdc.drawer.MDCDrawer.attachTo(document.querySelector('.mdc-drawer'));
|
||||
|
||||
// initiate MDC top app bar
|
||||
const mdc_top_app_bar = new mdc.topAppBar.MDCTopAppBar.attachTo(document.querySelector('.mdc-top-app-bar'));
|
||||
// mdc_top_app_bar.setScrollTarget(document.getElementById('main-content'));
|
||||
mdc_top_app_bar.listen('MDCTopAppBar:nav', () => {
|
||||
drawer.open = !drawer.open;
|
||||
});
|
||||
|
||||
// initiate MDC items
|
||||
mdc.autoInit();
|
||||
|
||||
// get current URL with no forward slash at the end and no domain
|
||||
var drawer_item_link_query_selector = ".mdc-list-item[href='" + window.location.pathname;
|
||||
if (drawer_item_link_query_selector.substring(drawer_item_link_query_selector.length - 1) == "/") {
|
||||
drawer_item_link_query_selector = drawer_item_link_query_selector.substring(0,drawer_item_link_query_selector.length - 1);
|
||||
}
|
||||
|
||||
// give 'selected' styling to correct item on navbar
|
||||
$(drawer_item_link_query_selector + "']").addClass("mdc-list-item--activated");
|
||||
$(drawer_item_link_query_selector + "']").attr("aria-selected", "true");
|
||||
$(drawer_item_link_query_selector + "/']").addClass("mdc-list-item--activated");
|
||||
$(drawer_item_link_query_selector + "/']").attr("aria-selected", "true");
|
||||
$(drawer_item_link_query_selector + "/index.html']").addClass("mdc-list-item--activated");
|
||||
$(drawer_item_link_query_selector + "/index.html']").attr("aria-selected", "true");
|
||||
|
||||
// include cookie notice
|
||||
if(Cookies.get("demo.mgrove.uk-cookies-accepted") != "true") {
|
||||
$("#cookies").show();
|
||||
$("#cookies").animate({bottom: "0px"}, 1000);
|
||||
$(".source-code-link").animate({bottom: "100px"}, 1000);
|
||||
$("#close-cookies").click(function(){
|
||||
event.preventDefault();
|
||||
$("#cookies").animate({bottom: "-100px"}, 1000);
|
||||
setTimeout(function(){$("#cookies").hide()},1000);
|
||||
$(".source-code-link").animate({bottom: "15px"}, 1000);
|
||||
Cookies.set("demo.mgrove.uk-cookies-accepted", "true", {expires: 30});
|
||||
});
|
||||
}
|
||||
});
|
||||
2
_site/js/jquery.min.js
vendored
Normal file
2
_site/js/jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
909
_site/js/material-components-web.min.js
vendored
Normal file
909
_site/js/material-components-web.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
167
_site/luhn-algorithm/index.html
Normal file
167
_site/luhn-algorithm/index.html
Normal file
@@ -0,0 +1,167 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
<link rel="icon" sizes="192x192" href="https://mgrove.uk/logo.png">
|
||||
|
||||
<!-- add to homescreen for Chrome on Android -->
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<link rel="icon" sizes="192x192" href="https://mgrove.uk/logo.png">
|
||||
|
||||
<!-- add to homescreen for Safari on iOS -->
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="apple-mobile-web-app-title" content="Luhn Algorithm | Matthew Grove">
|
||||
<link rel="apple-touch-icon-precomposed" href="https://mgrove.uk/logo.png">
|
||||
|
||||
<!-- tile icon & colour for Windows 8 -->
|
||||
<meta name="msapplication-TileImage" content="https://mgrove.uk/logo.png">
|
||||
<meta name="msapplication-TileColor" content="#d84315">
|
||||
|
||||
<title>Luhn Algorithm | Matthew Grove</title>
|
||||
<meta name="description" content="Replication of the Luhn algorithm - by Matthew Grove">
|
||||
|
||||
<!-- import Roboto (font) -->
|
||||
<link href="/css/roboto.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import jQuery -->
|
||||
<script src="/js/jquery.min.js" type="text/javascript"></script>
|
||||
|
||||
<!-- import cookie JavaScript -->
|
||||
<script src="/js/cookies.js" type="text/javascript"></script>
|
||||
|
||||
<!-- import Material Design components & icons -->
|
||||
<link href="/css/material-components-web.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="/css/material_icons.css" rel="stylesheet" type="text/css">
|
||||
<script src="/js/material-components-web.min.js" type="text/javascript"></script>
|
||||
|
||||
<!-- import local styling & scripts -->
|
||||
<script src="/js/global.js" type="text/javascript"></script>
|
||||
<link href="/css/global.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-124505000-1" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'UA-124505000-1');
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- cookie notice is included automatically -->
|
||||
<div id="cookies">
|
||||
<p>Just to let you know, I use cookies on my site.</p>
|
||||
<p><a href="javascript:void(0);" id="close-cookies">OK</a></p>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- content of navbar is included automatically -->
|
||||
<aside class="navbar-insert mdc-drawer mdc-drawer--modal">
|
||||
<div class="mdc-drawer__content">
|
||||
<div style="margin: 15px;text-align:center;">
|
||||
<img src="https://mgrove.uk/logo.png" style="width: 90%;"/>
|
||||
</div>
|
||||
<div class="mdc-list">
|
||||
<a class="mdc-list-item" href="https://blog.mgrove.uk">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">assignment</i>
|
||||
<span class="mdc-list-item__text">My Blog</span>
|
||||
</a>
|
||||
<a class="mdc-list-item" href="/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">home</i>
|
||||
<span class="mdc-list-item__text">Home Page</span>
|
||||
</a>
|
||||
|
||||
|
||||
<a class="mdc-list-item" href="/luhn-algorithm/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">credit_card</i>
|
||||
<span class="mdc-list-item__text">Luhn Algorithm</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<a class="mdc-list-item" href="/svalbard/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">ac_unit</i>
|
||||
<span class="mdc-list-item__text">Svalbard</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="mdc-list-item" href="/computer-science-blog/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">code</i>
|
||||
<span class="mdc-list-item__text">GCSE Computer Science Blog</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<div class="mdc-drawer-scrim"></div>
|
||||
|
||||
|
||||
<div class="mdc-drawer-app-content">
|
||||
<header class="mdc-top-app-bar app-bar" id="app-bar">
|
||||
<div class="mdc-top-app-bar__row">
|
||||
<section class="mdc-top-app-bar__section mdc-top-app-bar__section--align-start">
|
||||
<a href="javascript:void(0);" class="demo-mensu material-icons mdc-top-app-bar__navigation-icon">menu</a>
|
||||
<span class="mdc-top-app-bar__title">Luhn Algorithm | Matthew Grove</span>
|
||||
</section>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="main-content" id="main-content">
|
||||
<div class="mdc-top-app-bar--fixed-adjust">
|
||||
<link href="style.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<script src="script.js" type="text/javascript"></script>
|
||||
|
||||
<h1 id="validate-your-number">Validate Your Number</h1>
|
||||
<!-- input field (in a container so that unwanted overflow from :before & :after is hidden) -->
|
||||
<div class="mdc-text-field-container">
|
||||
<div class="mdc-text-field mdc-text-field--outlined" data-mdc-auto-init="MDCTextField">
|
||||
<input type="number" id="number-input-field" class="mdc-text-field__input" />
|
||||
<label for="number-input-field" class="mdc-floating-label ">Number</label>
|
||||
<div class="mdc-notched-outline">
|
||||
<svg>
|
||||
<path class="mdc-notched-outline__path" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="mdc-notched-outline__idle"></div>
|
||||
</div>
|
||||
<!-- input field helper text -->
|
||||
<p class="mdc-text-field-helper-text" aria-hidden="true">
|
||||
Validate with the Luhn Algorithm
|
||||
</p>
|
||||
</div>
|
||||
<!-- button to submit & check number with Luhn algorithm -->
|
||||
<p><button class="validation_button mdc-button mdc-button--outlined" onclick="checkNumber()" data-mdc-auto-init="MDCRipple">
|
||||
<i class="material-icons mdc-button__icon">check_circle_outline</i>
|
||||
Check
|
||||
</button>
|
||||
<!-- displays evaluation of number by Luhn algorithm --></p>
|
||||
<p id="validation_message"></p>
|
||||
|
||||
|
||||
<!-- link to source code on GitHub -->
|
||||
<a href="https://github.com/mgrove36/demo-code/tree/master/luhn-algorithm/" class="source-code-link mdc-fab mdc-fab--extended" data-mdc-auto-init="MDCRipple">
|
||||
<span class="material-icons mdc-fab__icon">rate_review</span>
|
||||
<span class="mdc-fab__label">View on GitHub</span>
|
||||
</a>
|
||||
</div>
|
||||
</main>
|
||||
<footer>
|
||||
© Matthew Grove 2019
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
34
_site/luhn-algorithm/script.js
Normal file
34
_site/luhn-algorithm/script.js
Normal file
@@ -0,0 +1,34 @@
|
||||
document.addEventListener("keyup", function(event) {
|
||||
// stop any code that may normally run when enter key pressed
|
||||
event.preventDefault();
|
||||
// if enter key is pressed, run Luhn algorithm
|
||||
if (event.keyCode === 13) {
|
||||
checkNumber();
|
||||
} else {
|
||||
// if number in input field is being edited, remove previous number evaluation message
|
||||
$("#validation_message").html(null);
|
||||
}
|
||||
});
|
||||
|
||||
// function for validating number entered with Luhn algorithm
|
||||
function checkNumber() {
|
||||
// define input string and remove non-numerical characters
|
||||
var input = document.getElementsByTagName("input")[0].value.replace(/\D/g,'');;
|
||||
// check string isn't empty
|
||||
if (input) {
|
||||
// retrieve digits & reverse
|
||||
var digits = document.getElementsByTagName("input")[0].value.split("").reverse(), sum = 0;
|
||||
digits.forEach(function(currentDigit, index) {
|
||||
newDigit = Number(currentDigit);
|
||||
if (index % 2 == 1) {
|
||||
if ((newDigit *= 2) > 9) {
|
||||
newDigit -= 9;
|
||||
}
|
||||
}
|
||||
sum += newDigit;
|
||||
});
|
||||
|
||||
// displays evaluation message
|
||||
$("#validation_message").html(((sum % 10) == 0) ? "Number is valid" : "Number is invalid");
|
||||
}
|
||||
}
|
||||
3
_site/luhn-algorithm/style.css
Normal file
3
_site/luhn-algorithm/style.css
Normal file
@@ -0,0 +1,3 @@
|
||||
.mdc-text-field-helper-text {
|
||||
margin: 0;
|
||||
}
|
||||
2
_site/page-inserts/cookie-notice.html
Normal file
2
_site/page-inserts/cookie-notice.html
Normal file
@@ -0,0 +1,2 @@
|
||||
<p>Just to let you know, I use cookies on my site.</p>
|
||||
<p><a href="javascript:void(0);" id="close-cookies">OK</a></p>
|
||||
23
_site/page-inserts/navbar.html
Normal file
23
_site/page-inserts/navbar.html
Normal file
@@ -0,0 +1,23 @@
|
||||
<div class="mdc-drawer__content">
|
||||
<div style="margin: 15px;text-align:center;">
|
||||
<img src="https://matthew-grove.ml/logo.png" style="width: 90%;"/>
|
||||
</div>
|
||||
<div class="mdc-list">
|
||||
<a class="mdc-list-item" href="https://blog.matthew-grove.ml">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">subject</i>
|
||||
<span class="mdc-list-item__text">Blog</span>
|
||||
</a>
|
||||
<a class="mdc-list-item" href="/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">home</i>
|
||||
<span class="mdc-list-item__text">Home Page</span>
|
||||
</a>
|
||||
<a class="mdc-list-item" href="/luhn-algorithm/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">credit_card</i>
|
||||
<span class="mdc-list-item__text">Luhn Algorithm</span>
|
||||
</a>
|
||||
<a class="mdc-list-item" href="/computer-science-blog/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">code</i>
|
||||
<span class="mdc-list-item__text">GCSE Computer Science Blog</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
2
_site/page-inserts/source-code-link.html
Normal file
2
_site/page-inserts/source-code-link.html
Normal file
@@ -0,0 +1,2 @@
|
||||
<span class="material-icons mdc-fab__icon">rate_review</span>
|
||||
<span class="mdc-fab__label">View on GitHub</span>
|
||||
6
_site/page-inserts/top-app-bar.html
Normal file
6
_site/page-inserts/top-app-bar.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<div class="mdc-top-app-bar__row">
|
||||
<section class="mdc-top-app-bar__section mdc-top-app-bar__section--align-start">
|
||||
<a href="javascript:void(0);" class="demo-mensu material-icons mdc-top-app-bar__navigation-icon">menu</a>
|
||||
<span class="mdc-top-app-bar__title">Demo Site | Matthew Grove</span>
|
||||
</section>
|
||||
</div>
|
||||
12
_site/remove.html
Normal file
12
_site/remove.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src="/js/cookies.js"></script>
|
||||
<script>
|
||||
Cookies.remove("demo.matthew-grove.ml-cookies-accepted");
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
My cookie has been removed.
|
||||
</body>
|
||||
</html>
|
||||
41
_site/sitemap.xml
Normal file
41
_site/sitemap.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="URF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
|
||||
<url>
|
||||
<loc>/luhn-algorithm/</loc>
|
||||
<lastmod>2020-06-24</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/svalbard/</loc>
|
||||
<lastmod>2020-06-24</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/</loc>
|
||||
<lastmod>2020-06-24</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/computer-science-blog/</loc>
|
||||
<lastmod>2020-06-24</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/sitemap.xml</loc>
|
||||
<lastmod>2020-06-24</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
||||
|
||||
|
||||
</urlset>
|
||||
213
_site/svalbard/index.html
Normal file
213
_site/svalbard/index.html
Normal file
@@ -0,0 +1,213 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
<link rel="icon" sizes="192x192" href="https://mgrove.uk/logo.png">
|
||||
|
||||
<!-- add to homescreen for Chrome on Android -->
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<link rel="icon" sizes="192x192" href="https://mgrove.uk/logo.png">
|
||||
|
||||
<!-- add to homescreen for Safari on iOS -->
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="apple-mobile-web-app-title" content="Svalbard | Matthew Grove">
|
||||
<link rel="apple-touch-icon-precomposed" href="https://mgrove.uk/logo.png">
|
||||
|
||||
<!-- tile icon & colour for Windows 8 -->
|
||||
<meta name="msapplication-TileImage" content="https://mgrove.uk/logo.png">
|
||||
<meta name="msapplication-TileColor" content="#d84315">
|
||||
|
||||
<title>Svalbard | Matthew Grove</title>
|
||||
<meta name="description" content="THe northernmost territory in the world - by Matthew Grove">
|
||||
|
||||
<!-- import Roboto (font) -->
|
||||
<link href="/css/roboto.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- import jQuery -->
|
||||
<script src="/js/jquery.min.js" type="text/javascript"></script>
|
||||
|
||||
<!-- import cookie JavaScript -->
|
||||
<script src="/js/cookies.js" type="text/javascript"></script>
|
||||
|
||||
<!-- import Material Design components & icons -->
|
||||
<link href="/css/material-components-web.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="/css/material_icons.css" rel="stylesheet" type="text/css">
|
||||
<script src="/js/material-components-web.min.js" type="text/javascript"></script>
|
||||
|
||||
<!-- import local styling & scripts -->
|
||||
<script src="/js/global.js" type="text/javascript"></script>
|
||||
<link href="/css/global.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-124505000-1" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'UA-124505000-1');
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- cookie notice is included automatically -->
|
||||
<div id="cookies">
|
||||
<p>Just to let you know, I use cookies on my site.</p>
|
||||
<p><a href="javascript:void(0);" id="close-cookies">OK</a></p>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- content of navbar is included automatically -->
|
||||
<aside class="navbar-insert mdc-drawer mdc-drawer--modal">
|
||||
<div class="mdc-drawer__content">
|
||||
<div style="margin: 15px;text-align:center;">
|
||||
<img src="https://mgrove.uk/logo.png" style="width: 90%;"/>
|
||||
</div>
|
||||
<div class="mdc-list">
|
||||
<a class="mdc-list-item" href="https://blog.mgrove.uk">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">assignment</i>
|
||||
<span class="mdc-list-item__text">My Blog</span>
|
||||
</a>
|
||||
<a class="mdc-list-item" href="/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">home</i>
|
||||
<span class="mdc-list-item__text">Home Page</span>
|
||||
</a>
|
||||
|
||||
|
||||
<a class="mdc-list-item" href="/luhn-algorithm/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">credit_card</i>
|
||||
<span class="mdc-list-item__text">Luhn Algorithm</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<a class="mdc-list-item" href="/svalbard/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">ac_unit</i>
|
||||
<span class="mdc-list-item__text">Svalbard</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="mdc-list-item" href="/computer-science-blog/">
|
||||
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">code</i>
|
||||
<span class="mdc-list-item__text">GCSE Computer Science Blog</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<div class="mdc-drawer-scrim"></div>
|
||||
|
||||
|
||||
<div class="mdc-drawer-app-content">
|
||||
<header class="mdc-top-app-bar app-bar" id="app-bar">
|
||||
<div class="mdc-top-app-bar__row">
|
||||
<section class="mdc-top-app-bar__section mdc-top-app-bar__section--align-start">
|
||||
<a href="javascript:void(0);" class="demo-mensu material-icons mdc-top-app-bar__navigation-icon">menu</a>
|
||||
<span class="mdc-top-app-bar__title">Svalbard | Matthew Grove</span>
|
||||
</section>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="main-content" id="main-content">
|
||||
<div class="mdc-top-app-bar--fixed-adjust">
|
||||
<div style="text-align: left; max-width: 700px; margin: auto">
|
||||
|
||||
<h1 id="svalbard-norway">Svalbard, Norway</h1>
|
||||
<h2 id="background">Background</h2>
|
||||
<ul>
|
||||
<li>Northernmost territory in the world</li>
|
||||
<li>60% glaciers</li>
|
||||
<li>40% tundra</li>
|
||||
<li>5 main islands (largest is Spitzbergen)</li>
|
||||
<li>Population of 2700</li>
|
||||
<li>More snowmobiles than people</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="opportunities">Opportunities</h2>
|
||||
<ul>
|
||||
<li>Coal mining
|
||||
<ul>
|
||||
<li>300 jobs in coal mines</li>
|
||||
<li>Backbone of economy</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Energy devlopment
|
||||
<ul>
|
||||
<li>Located near Mid-Atlantic Ridge - thin & hot rocks</li>
|
||||
<li>Potential for geothermal energy to replace polluting coal power station</li>
|
||||
<li>Or replace water in power station with CO<sub>2</sub></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Fishing
|
||||
<ul>
|
||||
<li>Barents Sea (South of Svalbard) is one of the richest fishing grounds in the world</li>
|
||||
<li>150 species of fish - conservation is vital</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Tourism
|
||||
<ul>
|
||||
<li>70,000 people visited Longyearbyen in 2011</li>
|
||||
<li>Port was expanded to cope with tourist numbers</li>
|
||||
<li>300 jobs in tourism</li>
|
||||
<li>Northen lights, natural environment and adventures attract tourists</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="challenges">Challenges</h2>
|
||||
<ul>
|
||||
<li>Extreme temperatures
|
||||
<ul>
|
||||
<li>Sometimes below -30°C</li>
|
||||
<li>But wear warm clothes</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Construction
|
||||
<ul>
|
||||
<li>Permafrost has to be protected from melting before foundations can be dug</li>
|
||||
<li>Difficult to build in the cold and the long dark periods - so most work is done in the summer</li>
|
||||
<li>However, road maintenance is relatively easy</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Services
|
||||
<ul>
|
||||
<li>Pipes and cables must be kept off the ground, to ensure they don’t freeze</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Accessibility
|
||||
<ul>
|
||||
<li>Limited transport</li>
|
||||
<li>Islands can only be accessed by plane or ship</li>
|
||||
<li>Only 50 km of roads in Longyearbyen</li>
|
||||
<li>But there is an international airport</li>
|
||||
<li>And snowmobiles can be used to travel around</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- link to source code on GitHub -->
|
||||
<a href="https://github.com/mgrove36/demo-code/tree/master/svalbard/" class="source-code-link mdc-fab mdc-fab--extended" data-mdc-auto-init="MDCRipple">
|
||||
<span class="material-icons mdc-fab__icon">rate_review</span>
|
||||
<span class="mdc-fab__label">View on GitHub</span>
|
||||
</a>
|
||||
</div>
|
||||
</main>
|
||||
<footer>
|
||||
© Matthew Grove 2019
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
0
comsci/index.md
Normal file
0
comsci/index.md
Normal file
16
index.md
16
index.md
@@ -1,10 +1,12 @@
|
||||
---
|
||||
title: Demo Site
|
||||
description: Small coding projects
|
||||
layout: default
|
||||
icon: home
|
||||
title: ComSci
|
||||
description: Some Computer Science info
|
||||
layout: none
|
||||
icon: music_video
|
||||
---
|
||||
|
||||
# My {{ page.title }}
|
||||
This site contains code for small projects that I am doing; each project can be accessed via the navigation drawer.
|
||||
If you have any ideas for projects I could do, please leave them [here](https://goo.gl/forms/qXO1cwSbE4FoQHdq2).
|
||||
<div style="z-index=1000;position:fixed;height:100%;width:100%">
|
||||
<iframe height="100%" width="100%" src="https://www.youtube.com/embed/oHg5SJYRHA0?controls=0&rel=0&autoplay=1" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
</div>
|
||||
|
||||
<style>html, body { margin: 0; }</style>
|
||||
Reference in New Issue
Block a user