cabin

Source code for personal website
git clone git://git.dimitrijedobrota.com/cabin.git
Log | Files | Refs | README | LICENSE |

commit0315a283c902d7465a88c399565ec356c7413c77
authorDimitrije Dobrota <mail@dimitrijedobrota.com>
dateWed, 14 Sep 2022 19:09:58 +0200

Initial Commit

Diffstat:
A.gitignore|+
Acss/colors.css|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acss/index.css|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aimg/android-chrome-192x192.png|
Aimg/android-chrome-512x512.png|
Aimg/apple-touch-icon.png|
Aimg/btc-qr.png|
Aimg/btc.png|
Aimg/favicon-16x16.png|
Aimg/favicon-32x32.png|
Aimg/favicon.ico|
Aimg/xmr-qr.png|
Aimg/xmr.png|
Aindex.html|++++++++++++++++++++++++++++++++++++++
Arobots.txt|++
Ascripts/main.js|+++++++++++++++++++
Asitemap.xml|+++++++++++++++

17 files changed, 527 insertions(+), 0 deletions(-)


diff --git a/.gitignore b/.gitignore

@@ -0,0 +1,1 @@

blog/*

diff --git a/css/colors.css b/css/colors.css

@@ -0,0 +1,172 @@

:root {
/* Defualt Theme */
--red :#cc241d;
--green :#98971a;
--yellow :#d79921;
--blue :#458588;
--purple :#b16286;
--aqua :#689d6a;
--orange :#d65d0e;
--gray :#928374;
/* Light Theme */
--light_switch_shadow: #373d4e;
--light_switch_icon: "🌑";
--light_switch_text: "dark mode?";
--light0_hard :#f9f5d7;
--light0 :#fbf1c7;
--light0_soft :#f2e5bc;
--light1 :#ebdbb2;
--light2 :#d5c4a1;
--light3 :#bdae93;
--light4 :#a89984;
--light_red :#9d0006;
--light_green :#79740e;
--light_yellow :#b57614;
--light_blue :#076678;
--light_purple :#8f3f71;
--light_aqua :#427b58;
--light_gray :#7c6f64;
--light_orange :#af3a03;
--light_invert :0%;
/* Dark Theme */
--dark_switch_shadow: #fce477;
--dark_switch_icon: "🌕";
--dark_switch_text: "light mode?";
--dark0_hard :#1d2021;
--dark0 :#282828;
--dark0_soft :#32302f;
--dark1 :#3c3836;
--dark2 :#504945;
--dark3 :#665c54;
--dark4 :#7c6f64;
--dark_red :#fb4934;
--dark_green :#b8bb26;
--dark_yellow :#fabd2f;
--dark_blue :#83a598;
--dark_purple :#d3869b;
--dark_aqua :#8ec07c;
--dark_orange :#fe8019;
--dark_gray :#a89984;
--dark_invert :100%;
/* Default Mode */
--switch_shadow_color: var(--light0);
--switch_icon: var(--dark_switch_icon);
--switch_text: var(--dark_switch_text);
--theme_red :var(--dark_red);
--theme_green :var(--dark_green);
--theme_yellow :var(--dark_yellow);
--theme_blue :var(--dark_blue);
--theme_purple :var(--dark_purple);
--theme_aqua :var(--dark_aqua);
--theme_gray :var(--dark_gray);
--theme_orange :var(--dark_orange);
--theme_bg0_hard :var(--dark0_hard);
--theme_bg0 :var(--dark0);
--theme_bg0_soft :var(--dark0_soft);
--theme_bg1 :var(--dark1);
--theme_bg2 :var(--dark2);
--theme_bg3 :var(--dark3);
--theme_bg4 :var(--dark4);
--theme_fg0_hard :var(--light0_hard);
--theme_fg0 :var(--light0);
--theme_fg0_soft :var(--light0_soft);
--theme_fg1 :var(--light1);
--theme_fg2 :var(--light2);
--theme_fg3 :var(--light3);
--theme_fg4 :var(--light4);
--theme_invert :var(--dark_invert);
}
/* Switched mode */
#theme_switch:checked ~ main {
--switch_icon: var(--light_switch_icon);
--switch_text: var(--light_switch_text);
--theme_red :var(--light_red);
--theme_green :var(--light_green);
--theme_yellow :var(--light_yellow);
--theme_blue :var(--light_blue);
--theme_purple :var(--light_purple);
--theme_aqua :var(--light_aqua);
--theme_gray :var(--light_gray);
--theme_orange :var(--light_orange);
--theme_bg0_hard :var(--light0_hard);
--theme_bg0 :var(--light0);
--theme_bg0_soft :var(--light0_soft);
--theme_bg1 :var(--light1);
--theme_bg2 :var(--light2);
--theme_bg3 :var(--light3);
--theme_bg4 :var(--light4);
--theme_fg0_hard :var(--dark0_hard);
--theme_fg0 :var(--dark0);
--theme_fg0_soft :var(--dark0_soft);
--theme_fg1 :var(--dark1);
--theme_fg2 :var(--dark2);
--theme_fg3 :var(--dark3);
--theme_fg4 :var(--dark4);
--theme_invert :var(--light_invert);
}
.theme_switch { /* Hides the checkbox */
display: none;
position: absolute !important;
height: 1px;
width: 1px;
overflow: hidden;
/* clip: rect(1px, 1px, 1px, 1px); */
}
.switch_label {
cursor: pointer;
display: flex;
position: absolute;
right: 3em;
top: 4em;
z-index: 1;
width: 1em;
height: 1em;
}
.switch_label::before {
content: var(--switch_icon);
font-size: 30px;
transition: text-shadow .2s;
}
.switch_label::after {
align-self: center;
color: var(--theme_fg0);
font-size: 28px;
line-height: 40px;
opacity: 0;
padding-left: 15px;
transition: opacity .2s;
}
.theme_switch:focus ~ main .switch_label::before,
.switch_label:hover::before {
text-shadow: 0 0 15px var(--theme_fg0);
}
.theme_switch:focus ~ main .switch_label::after,
.switch_label:hover::after {
opacity: 1;
}

diff --git a/css/index.css b/css/index.css

@@ -0,0 +1,280 @@

input, textarea, button, select, a {
--webkit-tap-highlight-color: rgba(0,0,0,0);
}
html, body {
margin: 0;
padding: 0;
border: 0;
font: inherit;
vertical-align: baseline;
}
hr {
color: var(--theme_fgt0_hard);
width: 100%;
}
footer { max-width: 1200px ; }
main {
display: flex;
justify-content: center;
align-items: center;
background-color: var(--theme_bg0);
color: var(--theme_fg0);
font-family: monospace;
/* font-size: 1.5em; */
}
p {
text-overflow: ellipsis;
overflow: hidden;
max-width: 80vw;
}
img {
width: 100%;
height: 100%;
}
.content {
position: relative;
display: flex;
flex-direction: column;
box-sizing: border-box;
max-width: 900px ;
min-height: 100vh ;
padding: 1em;
width: 100%;
height: 100%;
}
pre, code
{
background-color: var(--theme_bg1);
color: var(--theme_fg1);
white-space: pre-wrap;
white-space: -moz-pre-wrap !important;
white-space: -pre-wrap;
white-space: -o-pre-wrap;
word-wrap: break-word;
}
pre
{
padding: 0.5em;
border-radius: 5px;
border: 1px solid var(--theme_fg4);
margin-left: 0.5em;
margin-right: 0.5em;
}
a {
color:var(--theme_blue);
text-decoration: none;
}
table
{
border-collapse: collapse;
border-spacing: 0; /* IE 6 */
border-bottom: 2pt solid var(--theme_bg3);
border-top: 2pt solid var(--theme_bg3); /* The caption on top will not have a bottom-border */
background-color: var(--theme_bg1); /* Does this BG print well? */
/* Center */
margin-left: auto;
margin-right: auto;
}
thead /* Entire table header */
{
border-bottom: 1pt solid var(--theme_bg3);
background-color: var(--theme_bg2); /* Does this BG print well? */
}
tr.header /* Each header row */
{
}
tbody /* Entire table body */
{
}
/* Table body rows */
tr {
}
tr.odd:hover, tr.even:hover /* Use .odd and .even classes to avoid styling rows in other tables */
{
background-color: var(--theme_bg0);
}
/* Odd and even rows */
tr.odd {}
tr.even {}
td, th /* Table cells and table header cells */
{
vertical-align: top; /* Word */
vertical-align: baseline; /* Others */
padding-left: 0.5em;
padding-right: 0.5em;
padding-top: 0.2em;
padding-bottom: 0.2em;
}
th /* Table header cells */
{
font-weight: bold;
}
tfoot /* Table footer (what appears here if caption is on top?) */
{
}
caption /* This is for a table caption tag, not the p.caption Pandoc uses in a div.figure */
{
caption-side: top;
border: none;
font-size: 0.9em;
font-style: italic;
text-align: center;
margin-bottom: 0.3em; /* Good for when on top */
padding-bottom: 0.2em;
}
pre,blockquote{
page-break-inside:avoid;
}
blockquote{
padding:10px 20px;
margin:0 0 1em;
font-size: 0.9em;
border-left:5px solid var(--theme_fg4);
}
blockquote p:last-child{
margin-bottom:0;
}
blockquote:before,
blockquote:after {
content:"";
}
li
{
margin-top: 1em; /* IE: lack of space above a <li> when the item is inside a <p> */
}
:not(blockquote) > p,
ol,
ul {
margin-left: 1em;
}
.categories{
display: flex;
align-items: center
}
.categories h3{
display: inline-block;
}
.categories p {
flex: 1;
margin: 0.5em;
display: flex;
flex-direction: row;
flex-flow: wrap;
}
.categories a{
color: var(--theme_orange);
background-color: var(--theme_bg1);
display: inline-block;
padding: 0.2em 0.5em 0.2em 0.5em;
border-radius: 5px;
min-width: 2em;
text-align: center;
margin: 0.15em;
}
nav {
display: flex;
justify-content: space-between;
/* padding-right: 40px; */
}
.bottom {
margin-top: auto;
}
.index {
padding: 0;
}
.index li {
display: flex;
}
.index li div:first-child {
flex-shrink: 0;
margin-right: 0.5em;
}
.small {
display: flex;
align-items: center;
}
.small img {
width: 20px;
height: 20px;
margin: 5px;
}
img {
width: 10em;
height: 10em;
margin: 5px;
}
h1 {
color: var(--theme_aqua);
}
h2 {
color: var(--theme_purple);
}
h4 {
color: var(--theme_yellow);
}
h6 {
color: var(--theme_gray);
}
h3 {
color: var(--theme_orange);
}
h5 {
color: var(--theme_green);
}

diff --git a/img/android-chrome-192x192.png b/img/android-chrome-192x192.png

diff --git a/img/android-chrome-512x512.png b/img/android-chrome-512x512.png

diff --git a/img/apple-touch-icon.png b/img/apple-touch-icon.png

diff --git a/img/btc-qr.png b/img/btc-qr.png

diff --git a/img/btc.png b/img/btc.png

diff --git a/img/favicon-16x16.png b/img/favicon-16x16.png

diff --git a/img/favicon-32x32.png b/img/favicon-32x32.png

diff --git a/img/favicon.ico b/img/favicon.ico

diff --git a/img/xmr-qr.png b/img/xmr-qr.png

diff --git a/img/xmr.png b/img/xmr.png

diff --git a/index.html b/index.html

@@ -0,0 +1,38 @@

<!DOCTYPE html>
<html lang="en">
<head>
<title>Dimitrije Dobrota's Cabin</title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="description" content="Dimitrije Dobrota's personal site. You can find my daily findings in a form of articles on my blog as well as various programming projects." />
<link rel="stylesheet" type="text/css" href="/css/index.css" />
<link rel="stylesheet" type="text/css" href="/css/colors.css" />
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
</head>
<body>
<input type="checkbox" id="theme_switch" class="theme_switch">
<main>
<div class="content">
<label for="theme_switch" class="switch_label"></label>
<h1>Dimitrije Dobrota</h1>
<h4>Freshman of Electrical and Computer Engineering and Linux enthusiast</h4>
<h2>On this webpage…</h2>
<h3>Articles</h3>
<p>I try to document my daily findings and the things I find interesting in my <a href="./blog/">blog</a></p>
<p>You can subscribe to my <a href="https://dimitrijedobrota.com/blog/rss.xml">RSS feed</a> or <a href="https://dimitrijedobrota.com/blog/index.atom">Atom feed</a> for updates</p>
<h3>Highlighed projects</h3>
<ul>
<li><a href="https://git.dimitrijedobrota.com/cabin/log.html">Cabin</a>: Source code for this website</li>
<li><a href="https://git.dimitrijedobrota.com/stagit/log.html">Stagit</a>: Static git page generator</li>
<li><a href="https://git.dimitrijedobrota.com/stamd/log.html">Stamd</a>: Static markdown page generator</li>
<li><a href="https://git.dimitrijedobrota.com/GameOfLife/log.html">Game of Life</a>: Implementation of Conway's Game of Life for terminal written in C</li>
</ul>
<p>All of my projects can be found in my <a href="https://git.dimitrijedobrota.com">repos</a> or on <a href="https://github.com/DimitrijeDobrota">Github</a></p>
<h3>Contact</h3>
<p>For any questions feel free to <a href="mailto:mail@dimitrijedobrota.com">email me</a></p>
</div>
</main>
<script src="/scripts/main.js"></script>
</body>
</html>

diff --git a/robots.txt b/robots.txt

@@ -0,0 +1,2 @@

User-agent: *
Sitemap: https://www.dimitrijedobrota.com/sitemap.xml

diff --git a/scripts/main.js b/scripts/main.js

@@ -0,0 +1,19 @@

// This code is only used to remember theme selection
const themeSwitch = document.querySelector('.theme_switch');
themeSwitch.checked = localStorage.getItem('switchedTheme') === 'true';
themeSwitch.addEventListener('change', function (e) {
if(e.currentTarget.checked === true) {
// Add item to localstorage
localStorage.setItem('switchedTheme', 'true');
} else {
// Remove item if theme is switched back to normal
localStorage.removeItem('switchedTheme');
}
});
document.querySelectorAll(".back").forEach((element, key) => {
element.addEventListener('click', function(event){
history.go(-1);
})
})

diff --git a/sitemap.xml b/sitemap.xml

@@ -0,0 +1,15 @@

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://dimitrijedobrota.com/</loc>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>https://dimitrijedobrota.com/articles</loc>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://git.dimitrijedobrota.com/</loc>
<changefreq>daily</changefreq>
</url>
</urlset>