William
GitHub Page Configuration Files
William

TXT/myscript.sh

#!/bin/bash
# Copyright (C) 2020-2021 Cicak Bin Kadal
# https://www.youtube.com/watch?v=KAXK07ni9gU

# This free document is distributed in the hope that it will be 
# useful, but WITHOUT ANY WARRANTY; without even the implied 
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# REV05 Sat 27 Mar 00:12:28 WIB 2021
# REV04 Mon 15 Mar 19:27:52 WIB 2021
# REV03 Sun 14 Mar 18:21:27 WIB 2021
# REV02 Fri 12 Mar 13:40:58 WIB 2021
# REV01 Tue 13 Oct 10:37:14 WIB 2020
# START Mon 28 Sep 21:05:04 WIB 2020

# ATTN:
# You new to set "REC2" with your own Public-Key Identity!
# Check it out with "gpg --list-key"

REC2="william92@ui.ac.id"
REC1="operatingsystems@vlsm.org"
FILES="my*.asc my*.txt my*.sh"
SHA="SHA256SUM"

[ -d $HOME/RESULT ] || mkdir -p $HOME/RESULT
pushd $HOME/RESULT
for II in W?? ; do
    [ -d $II ] || continue
    TARFILE=my$II.tar.bz2
    TARFASC=$TARFILE.asc
    rm -f $TARFILE $TARFASC
    echo "tar cfj $TARFILE $II/"
    tar cfj $TARFILE $II/
    echo "gpg --armor --output $TARFASC --encrypt --recipient $REC1 --recipient $REC2 $TARFILE"
    gpg --armor --output $TARFASC --encrypt --recipient $REC1 --recipient $REC2 $TARFILE
done
popd

rm -f $HOME/RESULT/fakeDODOL
for II in $HOME/RESULT/myW*.tar.bz2.asc ; do
   echo "Check and move $II..."
   [ -f $II ] && mv -f $II .
done

echo "rm -f $SHA $SHA.asc"
rm -f $SHA $SHA.asc

echo "sha256sum $FILES > $SHA"
sha256sum $FILES > $SHA

echo "sha256sum -c $SHA"
sha256sum -c $SHA

echo "gpg -o $SHA.asc -a -sb $SHA"
gpg -o $SHA.asc -a -sb $SHA

echo "gpg --verify $SHA.asc $SHA"
gpg --verify $SHA.asc $SHA

exit 0

_config.yml

title:       "Operating Systems 2021-1 (OS211)"
copyright:   "2021-2021"
description: "Web created for Operating Systems 2021-1 (OS211) purposes"
# baseurl: "" # e.g. /blog
# url: ""     # e.g. http://example.com
author:           "William"
sitemap:          "true"
plugins:
  - jekyll-sitemap
  - jekyll-seo-tag
urlweb:           "https://hori75.github.io/os211/"
urlgithub:        "https://github.com/hori75/os211/"
urlghpage:        "https://hori75.github.io/os211/"
keywords:         "jekyll, testing"
github:           [metadata]


Gemfile

source "https://rubygems.org/"
gem 'jekyll-sitemap'
gem 'github-pages', group: :jekyll_plugins


_layouts/layout.html


<!DOCTYPE html>
<html lang="en">
<!-- File _layouts/layout.html           -->
<!-- (c) 2021 - 2021 VauLSMorg           -->
<!-- START: Wed 17 Feb 2021 19:44:53 WIB -->
<!-- This is a free HTML file            -->
{% include head.html %}
<body class="plainclass1">
<!-- body class="backclass" -->
<div class="container">
  <header>
  <div class="row">
    <div class="column left">
      <img src="{{ site.baseurl }}/assets/images/Hori75.png" alt="William" style="width:130px; border-radius:50%">
    </div>
    <div class="column right1">
      {% if page.title %}{{ page.title | escape }}
      {% else %}{{ site.title | escape }}{% endif %}
    </div>
    <div class="column right2">
      {% if page.author %}{{ page.author | escape }}
      {% else %}{{ site.author | escape }}{% endif %}
    </div>
  </div>
  </header>
  {% include navbar.html %}
  <section>
     {{ content }}
  </section>
  {% include footer.html %}
  {% include scripts.html %}
</div>
</body>
</html>




Makefile

# START Mon 15 Feb 2021 09:41:08 WIB

ALL: 004.md

004.md: 004.pmd _config.yml Gemfile _layouts/layout.html Makefile \
        _includes/navbar.html \
        _includes/footer.html _includes/head.html _includes/google-analytics.html \
	assets/css/style.css assets/scripts/includeScript.py 
	python assets/scripts/includeScript.py < 004.pmd > 004.md

.phony: ALL



_includes/head.html


<!-- File _includes/head.html             -->       
<!-- (c) 2021 - 2021 VauLSMorg            -->
<!-- START: Wed 17 Feb 2021 19:48:31 WIB  -->
<!-- This is a free HTML file             -->
<head>
  <title>
    {% if page.title %}{{ page.title | escape }} - {{ site.title | escape }}
    {% else %}{{ site.title | escape }}{% endif %}
  </title>
  <meta charset="utf-8">
  <meta name="viewport"    content="width=device-width, initial-scale=1">
  <meta name="description" content="{{ page.excerpt | default: site.description }}">
  <!-- link href="{{ site.baseurl }}/assets/css/css.css" rel="stylesheet" type="text/css" title="Style" -->
  <!-- link href="/assets/css/css.css" rel="stylesheet" type="text/css" title="Style" -->
  <link href="{{ site.baseurl }}/assets/css/style.css" rel="stylesheet" type="text/css" title="Style">
</head>





_includes/navbar.html


<!-- File _includes/navbar.html           -->
<!-- (c) 2021 - 2021 VauLSMorg            -->
<!-- START: Wed 17 Feb 2021 19:48:31 WIB  -->
<!-- This is a free HTML file             -->
<nav class="navbar">
  <ul>
    <li class='listitem'><a href='{{ site.baseurl }}/'>HOME</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/004.html'>LISTING</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/W01/'>W01</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/W02/'>W02</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/W03/'>W03</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/W04/'>W04</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/W05/'>W05</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/W06/'>W06</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/W07/'>W07</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/W08/'>W08</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/W09/'>W09</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/W10/'>W10</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/TXT/mypubkey.txt'>KEY</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/TXT/myrank.txt'>RANK</a></li>
    <li class='listitem'><a href='{{ site.baseurl }}/TXT/mylog.txt'>LOG</a></li>
    <li class='listitem'><a href='{{ site.urlgithub }}'>GitHub</a></li>
  </ul>
</nav>



assets/css/style.css

/*
 Shamelessly stolen from "Here, There, and Everywhere",
 including but not limited to "bootstrap", "stack overflow", 
 "Mike Dane", "w3schools", et al.
 */

.backclass {
  background-image:url(/assets/images/default.png)
}

.plainclass {
  color:            white;
  background-color: #BD7230;
}

.plainclass1 {
  color:            white;
  background-color: #9F7D5F;
}

.container {
  max-width:    70%;
  margin:       0 auto;
  font-size:    1.1em;
  font-family:  verdana,arial,helvetica,san-serif;
  text-align:   justify;
}

.container a {
  color: black;
}

.container a:hover {
  color: #f0f0f0;
}

.row {
}

.column {
  float:            left;
  display:          inline-block;
  background:       #8B592C;
  height:           130px;
  width:            100%;
  padding-top:      10px;
  padding-bottom:   10px;
  padding-left:     10px;
  padding-right:    10px;
  text-align:       left;
}

.left {
  width:            130px;
}

.right1 {
  height:           80px;
  width:            calc(100% - 200px);
  padding-top:      5px;
  padding-bottom:   5px;
  padding-left:     30px;
  font-size:        1.5em;
  font-weight:      bold;
}

.right2 {
  height:           50px;
  width:            calc(100% - 200px);
  padding-top:      5px;
  padding-bottom:   5px;
  padding-left:     30px;
  font-size:        1.1em;
  font-weight:      bold;
}

.youtube {
  float:            left;
  display:          inline-block;
  height:           150px;
  width:            100%;
  padding-top:      10px;
  padding-bottom:   10px;
  padding-left:     10px;
  padding-right:    10px;
}

.yvideo {
  width:            25%;
  height:           100%;
  padding-top:      0px;
  padding-bottom:   0px;
  padding-left:     0px;
  padding-right:    0px;
}

.yinfo {
  width:            calc(75%  - 30px);
  height:           calc(100% - 20px);
  padding-top:      10px;
  padding-bottom:   10px;
  padding-left:     10px;
  padding-right:    10px;
}

.row:after {
  content: "";
  display: table;
  clear: both;
}

.navbar {
  background-color: #2B1D14;
  color:            #FFFFFF;
  font-size:        0.7em;
}

.navbar ul li {
  display:        inline-block;
  padding:        1px;
  padding-top:    10px;
  padding-bottom: 10px;
}

.navbar ul li a {
  text-decoration: none;
  color:         #a0a0a0;
}

.navbar ul li a:hover {
  background:       blue;
  color:            #CCCCCC;
  font-size:        1em;
  font-weight:      bold;
}

pre {
  background:    black;
  border:        3px solid rgba(255, 255, 255, 0.15);
  padding:       10px; 
  color:         #b5e853;
  font-size:     0.7em; 
  border-radius: 2px;
}

/*
  ZCZC
  border: 1px solid rgba(255, 255, 255, 0.15);
  padding: 10px; 
  color: #b5e853;
  background: rgba(0, 0, 0, 0.9);
  border-radius: 2px;
  word-wrap: normal;
  overflow: auto;
  overflow-y: hidden;
  max-width: 65%;

 */

/*
 ************************************************************
 */

@media screen and (max-width:768px) {
  ul {
    margin: 0;
    padding: 0;
  }
  #navbar ul li {
    display: block;
    width: 100%;
    padding: 0;
    margin: 0;
    text-align: center;
  }
  #navbar ul li a {
    margin: 0;
    padding: 0;
  }
  #menu {
    display: none;
  }
  #maincontent {
    width: 100%;
    padding: 0;
  }
  h1 {
    font-size: 1em;
  }
}

/*
 ************************************************************
 */


assets/scripts/includeScript.py

# (c) 2011 Brice Fernandes. This script was ripped from 
# https://fractallambda.com/2011/08/17/pincpy-including-files-and-script-output.html
# Note: This script is outdated.  
# The author uses Handlebars.js or Pystache for the same purpose.
# Usage: 
#     python .program/xx.py < in.pmd > out.md

import sys
import re
import shlex
import subprocess as sp
 
exe_pat = re.compile(r'(\s*)\(!>(.*)<\)\s*')
inc_pat = re.compile(r'(\s*)\(>(.*)<\)\s*')
 
if __name__ == "__main__":
  for line in sys.stdin:
    match_exe = re.match(exe_pat, line)
    match_inc = re.match(inc_pat, line)

    if match_exe:
      space = match_exe.group(1)
      exe = match_exe.group(2).strip()
      args = shlex.split(exe)
      sys.stdout.writelines(
        map(
          lambda x: space+x+"\n", 
          sp.check_output(args).split("\n")))

    elif match_inc:
      space = match_inc.group(1)
      inc = match_inc.group(2).strip()
      sys.stdout.writelines(
        map(
          lambda x: space+x, 
          open(inc)))

    else:
      sys.stdout.write(line)


© 2021-2021 --- William.