Compare commits

...

8 Commits

Author SHA1 Message Date
urosm f8809fc020 update ikiwiki css 2024-02-17 18:21:40 +01:00
urosm a920266b3a update ikiwiki templates 2024-02-17 18:20:53 +01:00
urosm 577b5327f1 update ikiwiki plugins 2024-02-17 18:20:30 +01:00
urosm 35d85a4980 update ikiwiki css 2024-02-12 10:12:21 +01:00
urosm 818ebeb6d0 update ikiwiki favicon 2024-02-12 10:11:36 +01:00
urosm ab46e4a1f2 update `index.mdwn` 2024-02-11 23:55:09 +01:00
urosm 5a2bac89dd update ikiwiki templates 2024-02-11 23:54:45 +01:00
urosm 15f0be9db6 update css 2024-02-11 23:54:25 +01:00
7 changed files with 295 additions and 84 deletions

View File

@ -0,0 +1,60 @@
#!/usr/bin/perl
package IkiWiki::Plugin::frontlinkpages;
use warnings;
use strict;
use IkiWiki 3.00;
sub import {
hook(type => "pagetemplate", id => "frontlinkpages", call => \&pagetemplate);
}
sub pagetemplate (@) {
my %params=@_;
my $template=$params{template};
if (! $template->query(name => "frontlinkpages")) {
return;
}
my $quick=exists $params{quick} ? IkiWiki::yesno($params{quick}) : 0;
my $num=0;
if ($params{limit}) {
$num=$params{limit};
}
if ($params{feedlimit} && $num < $params{feedlimit} && $num > 0) {
$num=$params{feedlimit};
}
if ($params{skip} && $num) {
$num+=$params{skip};
}
my @pages = pagespec_match_list($params{page}, "link($params{page})",
deptype => deptype($quick ? "presence" : "content"),
filter => sub { $_[0] eq $params{page} },
# sort => exists $params{sort} ? $params{sort} : "age title",
reverse => IkiWiki::yesno($params{reverse}),
($num ? (num => $num) : ()),
);
my $destpage=$params{destpage};
my @contents;
for (@pages) {
if ($pagesources{$_}) {
my $title = $pagestate{$_}{meta}{title};
push @contents, {
content => IkiWiki::get_inline_content($_, $destpage),
pageurl => urlto($_, $destpage),
title => $title ? $title : pagetitle(IkiWiki::basename($_)),
ctime => displaytime($IkiWiki::pagectime{$_}, $params{timeformat}, 1),
mtime => displaytime($IkiWiki::pagemtime{$_}, $params{timeformat})
}
}
}
$template->param(frontlinkpages => \@contents);
}
1

View File

@ -1,89 +1,231 @@
/* variables */
:root { :root {
--font-size: 12pt; --font-size: 12pt;
--line-height: 1.625; --line-height: 1.625;
--height-unit: calc(var(--font-size) * var(--line-height)); --font-family: monospace;
--width-unit: 1ch;
--padding-left: calc(1 * var(--width-unit)); /* font-derived vertical and horizontal units */
--padding-right: calc(1 * var(--width-unit)); --v-un: calc(var(--font-size) * var(--line-height));
--padding-top: calc(1 * var(--height-unit)); --h-un: 1ch;
--padding-bottom: calc(1 * var(--height-unit));
--gap-vertical: calc(1 * var(--height-unit)); /* gaps and paddings */
--gap-horizontal: calc(2 * var(--width-unit)); --body-padding-h: var(--h-un);
--column-width: clamp(32ch, 72ch, calc(100vw - var(--gap-horizontal) - var(--padding-left) - var(--padding-right) - var(--width-unit))); --body-padding-v: var(--v-un);
font: var(--font-size)/var(--line-height) monospace; --main-gap-h: calc(2 * var(--h-un));
color-scheme: light dark; --main-gap-v: 0;
/* font-derived column width */
--max-col-w: calc(100vw - (2 * var(--body-padding-h)) - var(--main-gap-h) - 1ch);
--col-w: clamp(32ch, 72ch, var(--max-col-w));
/* colors */
--fg-c: #000000;
--bg-c: #ffffff;
--link-c: hsl(240 100% 50%);
--visited-c: hsl(270 100% 50%);
--active-c: hsl(0 100% 50%);
}
@media (prefers-color-scheme: dark) {
:root {
--fg-c: #ffffff;
--bg-c: #000000;
--link-c: hsl(240 100% 75%);
--visited-c: hsl(270 100% 75%);
--active-c: hsl(0 100% 75%);
}
} }
/* reset */ /* reset */
* { * {
box-sizing: border-box; box-sizing: border-box;
margin: unset;
hyphens: auto;
} }
body {
color: light-dark(#000000, #ffffff); /* root */
background-color: light-dark(#ffffff, #000000); :root {
margin: 0; color: var(--fg-c);
background-color: var(--bg-c);
font: var(--font-size)/var(--line-height) var(--font-family);
} }
/* content sectioning */
address {
font-style: unset;
}
h1, h2, h3, h4, h5, h6 { h1, h2, h3, h4, h5, h6 {
font: inherit; font-size: unset;
font-weight: bold;
} }
h1 {
font-weight: bold; article {
margin: var(--height-unit) var(--height-unit) 0 0; counter-reset: heading;
} }
h2, h3, h4, h5, h6 {
font-style: italic; article h1:before {
margin: var(--height-unit) var(--height-unit) 0 0; content:
counter(heading)". ";
counter-increment: heading;
} }
p {
margin: var(--height-unit) 0 0 0; article h1 {
hyphens: auto; counter-reset: subheading;
} }
article h2:before {
content:
counter(heading)"."
counter(subheading)". ";
counter-increment: subheading;
}
article h2 {
counter-reset: subsubheading;
}
article h3:before {
content:
counter(heading)"."
counter(subheading)"."
counter(subsubheading)". ";
counter-increment: subsubheading;
}
article h3 {
counter-reset: subsubsubheading;
}
article h4:before {
content:
counter(heading)"."
counter(subheading)"."
counter(subsubheading)"."
counter(subsubsubheading)". ";
counter-increment: subsubsubheading;
}
article h4 {
counter-reset: subsubsubsubheading;
}
article h5:before {
content:
counter(heading)"."
counter(subheading)"."
counter(subsubheading)"."
counter(subsubsubheading)"."
counter(subsubsubsubheading)". ";
counter-increment: subsubsubsubheading;
}
article h5 {
counter-reset: subsubsubsubsubheading;
}
article h6:before {
content:
counter(heading)"."
counter(subheading)"."
counter(subsubheading)"."
counter(subsubsubheading)"."
counter(subsubsubsubheading)"."
counter(subsubsubsubsubheading)". ";
counter-increment: subsubsubsubsubheading;
}
/* text content */
:is(blockquote, dl, figure, menu, ol, p, pre, ul) +
:is(blockquote, dl, figure, menu, ol, p, pre, ul) {
margin-block-start: var(--v-un);
}
:is(blockquote, dl, figure, menu, ol, p, pre, ul) +
:is(h1, h2, h3, h4, h5, h6) {
margin-block-start: calc(2 * var(--v-un));
margin-block-end: var(--v-un);
}
:is(h1, h2, h3, h4, h5, h6) +
:is(blockquote, dl, figure, menu, ol, p, pre, ul) {
margin-block-start: var(--v-un);
}
blockquote { blockquote {
margin: var(--height-unit) calc(2 * var(--width-unit)); margin-inline: calc(4 * var(--h-un));
} }
ul, ol {
margin: var(--height-unit) 0; ol, ul, menu {
padding: 0 0 0 calc(4 * var(--width-unit)); padding-inline-start: calc(4 * var(--h-un));
} }
:is(ol, ul, menu) :is(ol, ul, menu) {
margin-block: unset;
}
ul>li::marker { ul>li::marker {
content: "- "; content: "- ";
} }
hr { hr {
color: inherit; margin-block-start: var(--v-un);
border: none; color: unset;
margin: var(--height-unit) 0; border: unset;
} text-align: center;
hr:after {
content: "---";
} }
/* main layout */ hr:after {
content: "---";
}
/* inline text semantics */
a {
cursor: pointer;
text-decoration: underline;
}
a:link {
color: var(--link-c);
}
a:link:active {
color: var(--active-c);
}
a:visited {
color: var(--visited-c);
}
a:visited:active {
color: var(--active-c);
}
/* layout */
body { body {
padding: var(--height-unit) var(--width-unit);
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
padding: var(--body-padding-v) var(--body-padding-h);
} }
/* secondary grid */
body>main { body>main {
height: 100%; height: 100%;
display: grid; display: grid;
grid-auto-flow: column; grid-auto-flow: column;
grid-template-columns: repeat(auto-fit, var(--column-width)); grid-auto-columns: var(--col-w);
grid-gap: var(--gap-horizontal); gap: var(--main-gap-v) var(--main-gap-h);
overflow-x: scroll; overflow-x: scroll;
scroll-snap-type: x proximity;
} }
body>main>article { body>main>article {
scroll-snap-align: start;
scroll-snap-stop: always;
width: var(--column-width);
overflow-y: scroll; overflow-y: scroll;
} }
body>main>article>header>h1 {
margin: unset; body>main>article>header {
display: inline-block; margin-block-end: var(--v-un);
} }
body>main>article>article {
margin: var(--height-unit) 0 0 0; body>main>article>footer {
margin-block-start: var(--v-un);
} }

View File

@ -5,5 +5,5 @@
viewBox="0 0 32 32" viewBox="0 0 32 32"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"> xmlns:svg="http://www.w3.org/2000/svg">
<rect style="fill:#551a8b" width="32" height="32" x="0" y="0" /> <rect style="fill:hsl(270 100% 50%)" width="32" height="32" x="0" y="0" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 272 B

View File

@ -1,11 +1,9 @@
Odkrivanje zatona arhitektov kot aktivnih ideologov, spoznanje o > Odkrivanje zatona arhitektov kot aktivnih ideologov, spoznanje o
ogromnih tehnoloških zmožnostih racionalizacije mesta in ozemlja skupaj > ogromnih tehnoloških zmožnostih racionalizacije mesta in ozemlja skupaj
z vsakodnevnimi ugotovitvami o njihovi brezkoristnosti ter zastaranje > z vsakodnevnimi ugotovitvami o njihovi brezkoristnosti ter zastaranje
specifičnih metod projektiranja še preden so njihove hipoteze lahko > specifičnih metod projektiranja še preden so njihove hipoteze lahko
preverjene v realnosti za arhitekte tvorijo tesnobno vzdušje, ki na > preverjene v realnosti za arhitekte tvorijo tesnobno vzdušje, ki na
obzorju ponuja vpogled na zelo konkretno ozadje, zastrašujoče kot > obzorju ponuja vpogled na zelo konkretno ozadje, zastrašujoče kot
največje zlo ... > največje zlo ...
[[!inline pages="page(wiki/*)" feeds="no" archive="yes" sort="mtime"]]
[[!inlinepages pages="page(wiki/*)" sort="mtime"]] [[!inlinepages pages="page(wiki/*)" sort="mtime"]]

View File

@ -1,4 +0,0 @@
<article>
<a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a><br />
<TMPL_VAR MTIME>
</article>

View File

@ -4,29 +4,30 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<title><TMPL_VAR TITLE></title> <title><TMPL_VAR TITLE></title>
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="icon" href="<TMPL_VAR BASEURL>/favicon.svg" /> <link rel="icon" href="<TMPL_VAR BASEURL>favicon.svg" />
<link rel="stylesheet" href="<TMPL_VAR BASEURL>/css/style.css" type="text/css" /> <link rel="stylesheet" href="<TMPL_VAR BASEURL>css/style.css" type="text/css" />
<TMPL_IF META><TMPL_VAR META></TMPL_IF> <TMPL_IF META><TMPL_VAR META></TMPL_IF>
</head> </head>
<body class="index"> <body id="index">
<main> <main>
<article> <article>
<header> <header>
<TMPL_LOOP PARENTLINKS><!-- <a href="<TMPL_VAR BASEURL>"><TMPL_VAR WIKINAME></a>
--><TMPL_IF __FIRST__><a href="<TMPL_VAR URL>"><TMPL_VAR PAGE></a>/</TMPL_IF><!--
--></TMPL_LOOP><!--
--><h1><a href="<TMPL_VAR URL>"><TMPL_VAR TITLE></a></h1><br />
<TMPL_VAR MTIME>
</header> </header>
<TMPL_VAR CONTENT> <TMPL_VAR CONTENT>
<footer>
<TMPL_VAR MTIME>
</footer>
</article> </article>
<TMPL_LOOP INLINEPAGES> <TMPL_LOOP INLINEPAGES>
<article> <article>
<header> <header>
<a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a><br /> <a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a><br />
<TMPL_VAR MTIME>
</header> </header>
<TMPL_VAR CONTENT> <TMPL_VAR CONTENT>
<footer>
<TMPL_VAR MTIME>
</footer>
</article> </article>
</TMPL_LOOP> </TMPL_LOOP>
</main> </main>

View File

@ -4,29 +4,43 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<title><TMPL_VAR TITLE></title> <title><TMPL_VAR TITLE></title>
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="icon" href="<TMPL_VAR BASEURL>/favicon.svg" /> <link rel="icon" href="<TMPL_VAR BASEURL>favicon.svg" />
<link rel="stylesheet" href="<TMPL_VAR BASEURL>/css/style.css" type="text/css" /> <link rel="stylesheet" href="<TMPL_VAR BASEURL>css/style.css" type="text/css" />
<TMPL_IF META><TMPL_VAR META></TMPL_IF> <TMPL_IF META><TMPL_VAR META></TMPL_IF>
</head> </head>
<body class="page"> <body id="page"
onload="document.getElementById('start').scrollIntoView({behavior:'smooth',inline:'start'})">
<main> <main>
<article> <TMPL_LOOP FRONTLINKPAGES>
<article class="frontlinkpage">
<header> <header>
<TMPL_LOOP PARENTLINKS><!-- <a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a>
--><TMPL_IF __FIRST__><a href="<TMPL_VAR URL>"><TMPL_VAR PAGE></a>/</TMPL_IF><!--
--></TMPL_LOOP><!--
--><h1><a href="<TMPL_VAR URL>"><TMPL_VAR TITLE></a></h1><br />
<TMPL_VAR MTIME>
</header> </header>
<TMPL_VAR CONTENT> <TMPL_VAR CONTENT>
<footer>
<TMPL_VAR MTIME>
</footer>
</article>
</TMPL_LOOP>
<article id="start">
<header>
<a href="<TMPL_VAR BASEURL>"><TMPL_VAR WIKINAME></a>/<a href="<TMPL_VAR
URL>"><TMPL_VAR TITLE></a>
</header>
<TMPL_VAR CONTENT>
<footer>
<TMPL_VAR MTIME>
</footer>
</article> </article>
<TMPL_LOOP BACKLINKPAGES> <TMPL_LOOP BACKLINKPAGES>
<article> <article class="backlinkpage">
<header> <header>
<a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a><br /> <a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a>
<TMPL_VAR MTIME>
</header> </header>
<TMPL_VAR CONTENT> <TMPL_VAR CONTENT>
<footer>
<TMPL_VAR MTIME>
</footer>
</article> </article>
</TMPL_LOOP> </TMPL_LOOP>
</main> </main>