Compare commits
No commits in common. "master" and "393b73aacb75c541475ba169ca843abf70665d65" have entirely different histories.
master
...
393b73aacb
@ -3,21 +3,21 @@
|
||||
font-family: roboto;
|
||||
src: url(/fonts/Roboto-Regular.ttf)
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: overpass;
|
||||
src: url(/fonts/Overpass-Regular.ttf)
|
||||
}
|
||||
|
||||
/* Consistent background and text color */
|
||||
/* Element styling */
|
||||
html {
|
||||
background-color: #212121;
|
||||
color: #ffffff;
|
||||
font-family: Overpass;
|
||||
}
|
||||
|
||||
/* Keep the paddings consistent */
|
||||
body {
|
||||
padding: 5px;
|
||||
footer {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
@ -29,38 +29,55 @@ a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* General fixes */
|
||||
.page-title {
|
||||
color: #9b59b6;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
/* Layouting */
|
||||
* {
|
||||
/* To fix sizing issues */
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* Horizontal flow using flexbox */
|
||||
.horizontal {
|
||||
.container {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.horizontal {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
/* Horizontally centered using flexbox */
|
||||
.horizontal-center {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Vertical flow using flexbox */
|
||||
.vertical {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
/*width: 100% !important;*/
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
/* Vertically center using flexbox */
|
||||
.vertical-center {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
.subbar-link {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
height: 100%;
|
||||
.title-sub {
|
||||
margin-top: 0px;
|
||||
margin-bottom: 10px;
|
||||
|
||||
color: white;
|
||||
}
|
||||
|
||||
.title-sub-subbar {
|
||||
margin-top: -20px;
|
||||
}
|
||||
|
||||
/* Text styling */
|
||||
@ -69,7 +86,6 @@ a {
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
/* Show a white border at the left side to indicate a quote */
|
||||
.quote {
|
||||
border-left: 2px;
|
||||
border-left-style: solid;
|
||||
@ -77,7 +93,6 @@ a {
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
/* Useful for warning the user of something */
|
||||
.warning {
|
||||
border-left: 2px;
|
||||
border-left-style: solid;
|
||||
@ -86,63 +101,3 @@ a {
|
||||
|
||||
color: #f1c40f;
|
||||
}
|
||||
|
||||
/* Useful for the footer shown at the bottom of the page */
|
||||
.footer {
|
||||
width: 100%;
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
/* Used a big <img /> showing my avatar */
|
||||
.avatar {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border-radius: 10px;
|
||||
margin-right: 30px;
|
||||
}
|
||||
|
||||
/* Keep entire site at a reasonable width on wide displays
|
||||
* but let it stretch all the way on small displays (See media query).
|
||||
*/
|
||||
.header {
|
||||
width: 42%;
|
||||
}
|
||||
|
||||
/* Display the links below the header in a row instead of below each other. */
|
||||
#header-links ul {
|
||||
list-style: none;
|
||||
padding-left: 0px;
|
||||
margin-bottom: 0px;
|
||||
margin-top: 0px;
|
||||
}
|
||||
#header-links li {
|
||||
display: inline;
|
||||
|
||||
font-size: large;
|
||||
margin-left: 20px;
|
||||
}
|
||||
#header-links li:first-child {
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
/* Title font for the page */
|
||||
.name-title {
|
||||
font-size: xxx-large;
|
||||
}
|
||||
|
||||
/* Small screen adjustments */
|
||||
@media screen and (max-width: 720px) {
|
||||
.header {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.name-title {
|
||||
font-size: x-large;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 137 KiB |
27
flake.lock
27
flake.lock
@ -1,27 +0,0 @@
|
||||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1638239011,
|
||||
"narHash": "sha256-AjhmbT4UBlJWqxY0ea8a6GU2C2HdKUREkG43oRr3TZg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a7ecde854aee5c4c7cd6177f54a99d2c1ff28a31",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "21.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
21
flake.nix
21
flake.nix
@ -1,21 +0,0 @@
|
||||
{
|
||||
description = "The website hosted at https://polynom.me";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/21.11";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs
|
||||
}: let
|
||||
supportedSystems = [ "x86_64-linux" ];
|
||||
forAllSystems = nixpkgs.lib.attrsets.genAttrs supportedSystems;
|
||||
in {
|
||||
packages = forAllSystems (system: let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
in {
|
||||
default = pkgs.callPackage ./pkgs/shared-assets.nix {};
|
||||
});
|
||||
};
|
||||
}
|
42
makesite.py
42
makesite.py
@ -124,40 +124,8 @@ def read_content(filename):
|
||||
|
||||
def render(template, **params):
|
||||
"""Replace placeholders in template with values from params."""
|
||||
def handle_variable(match):
|
||||
var = match.group(1).strip()
|
||||
if match.group(1).startswith("template "):
|
||||
import_name = var[7:]
|
||||
import_ = fread(import_name)
|
||||
return render(import_, **params)
|
||||
elif var.startswith("for_each "):
|
||||
args = var.split(" ")[1:]
|
||||
attribute_name = args[0]
|
||||
template_name = args[1]
|
||||
|
||||
template_ = fread(template_name)
|
||||
templates = []
|
||||
for val in params.get(attribute_name, []):
|
||||
templates.append(render(template_, **params, item=val))
|
||||
return "\n".join(templates)
|
||||
elif var.startswith("item."):
|
||||
return str(params["item"].get(var[5:], match.group(0)))
|
||||
elif var.startswith("template_if_empty "):
|
||||
# {{ template_if_empty <param> <template if param is empty> <otherwise> }}
|
||||
args = var[17:].split(" ")[1:]
|
||||
value = params["item"].get(args[0][5:], "") if args[0].startswith("item.") else params.get(args[0], "")
|
||||
template_name = args[1] if value == "" else args[2]
|
||||
template_ = fread(template_name)
|
||||
return render(template_, **params)
|
||||
else:
|
||||
if not var in params:
|
||||
print("Did not find variable '%s'!" % var)
|
||||
return match.group(0)
|
||||
|
||||
return params[var]
|
||||
|
||||
return re.sub(r'{{\s*([^}]+)\s*}}',
|
||||
handle_variable,
|
||||
return re.sub(r'{{\s*([^}\s]+)\s*}}',
|
||||
lambda match: str(params.get(match.group(1), match.group(0))),
|
||||
template)
|
||||
|
||||
|
||||
@ -173,8 +141,6 @@ def make_pages(src, dst, layout, **params):
|
||||
if 'params' in content:
|
||||
page_params.update(**json.loads(open(content['params'], 'r').read()))
|
||||
|
||||
page_params['file_name'] = os.path.basename(src_path)
|
||||
|
||||
# Populate placeholders in content if content-rendering is enabled.
|
||||
if page_params.get('render') == 'yes':
|
||||
rendered_content = render(page_params['content'], **page_params)
|
||||
@ -270,7 +236,7 @@ def main():
|
||||
if os.path.isfile(params_file):
|
||||
params.update(**json.loads(fread(params_file)))
|
||||
|
||||
for variable in (options.variables or []):
|
||||
for variable in options.variables:
|
||||
key, val = variable.split('=')
|
||||
params[key] = val
|
||||
|
||||
@ -301,7 +267,7 @@ def main():
|
||||
|
||||
# Create blog list pages.
|
||||
make_list(blog_posts, '_site/index.html',
|
||||
list_layout, item_layout, blog='blog', title=params["blog_title"], description=params["blog_description"], **params)
|
||||
list_layout, item_layout, blog='blog', **params)
|
||||
|
||||
if options.rss:
|
||||
feed_xml = fread('layout/feed.xml')
|
||||
|
@ -1,5 +1,3 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import re
|
||||
import sys
|
||||
import subprocess
|
||||
|
@ -1,28 +0,0 @@
|
||||
{
|
||||
lib, stdenv
|
||||
, python3 # for makesite.py and pgp-sign.py
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "shared-assets";
|
||||
version = "202205120-01";
|
||||
|
||||
src = ../.;
|
||||
|
||||
propagatedBuildInputs = [ python3 python3.pkgs.markdown ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -v makesite.py pgp-sign.py $out/bin
|
||||
cp -vr assets/ $out/
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Shared assets for polynom.me web pages";
|
||||
homepage = "https://git.polynom.me/polynom.me/shared-assets";
|
||||
maintainers = [];
|
||||
license = licenses.gpl3;
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user