commit
938049d1cc
|
@ -0,0 +1,29 @@
|
|||
SRCS := $(shell find content pages -name '*.md')
|
||||
HTML := $(SRCS:content/%.md=%.html)
|
||||
HTML := $(HTML:pages/%.md=%.html)
|
||||
vpath %.md content pages
|
||||
vpath %.html dist
|
||||
|
||||
%.html: %.md
|
||||
pandoc -t html \
|
||||
--standalone \
|
||||
-B templates/nav.html \
|
||||
--css assets/styles/main.css \
|
||||
--toc \
|
||||
-o dist/$@ $<
|
||||
|
||||
index.md:
|
||||
./bin/build-index.sh
|
||||
|
||||
rssfeed:
|
||||
./bin/build-feed.sh
|
||||
|
||||
build: $(HTML) index.md rssfeed
|
||||
cp -R assets dist
|
||||
pandoc -t html \
|
||||
--standalone \
|
||||
-H templates/header.html \
|
||||
-B templates/nav.html \
|
||||
-o dist/index.html \
|
||||
--css assets/styles/main.css \
|
||||
index.md app.yaml
|
|
@ -0,0 +1,19 @@
|
|||
# Pandoc Blog
|
||||
|
||||
this is a static website that uses pandoc and pandoc templates to build a blog
|
||||
|
||||
## Getting Started
|
||||
|
||||
- add content to `/content`. The filename must be in `yyyy-mm-dd-file-name.md` format. This is how the blog posts are ordered, because the tool is not very smart.
|
||||
- other "pages" go in `/pages`
|
||||
|
||||
That's kind of it..
|
||||
|
||||
You'll need to edit a bunch of values in index.yml and build-feed.sh where it's hard coded.
|
||||
|
||||
images and styles go in `/assets`.
|
||||
|
||||
## Resources
|
||||
|
||||
- <https://pandoc.org/MANUAL.html#variables>
|
||||
- <https://pandoc.org/MANUAL.html#templates>
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: welcome to my blog
|
||||
subtitle: it is where i write stuff
|
||||
author: dozens
|
||||
---
|
|
@ -0,0 +1,141 @@
|
|||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
html {
|
||||
line-height: 1.5;
|
||||
font-family: Georgia, serif;
|
||||
font-size: 22px;
|
||||
color: #1a1a1a;
|
||||
background-color: #fdfdfd;
|
||||
}
|
||||
body {
|
||||
margin: 0 auto;
|
||||
max-width: 60ch;
|
||||
padding-left: 50px;
|
||||
padding-right: 50px;
|
||||
padding-top: 50px;
|
||||
padding-bottom: 50px;
|
||||
hyphens: auto;
|
||||
overflow-wrap: break-word;
|
||||
text-rendering: optimizeLegibility;
|
||||
font-kerning: normal;
|
||||
}
|
||||
@media (max-width: 600px) {
|
||||
body {
|
||||
font-size: 0.9em;
|
||||
padding: 1em;
|
||||
}
|
||||
}
|
||||
@media print {
|
||||
body {
|
||||
background-color: transparent;
|
||||
color: black;
|
||||
font-size: 12pt;
|
||||
}
|
||||
p, h2, h3 {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
h2, h3, h4 {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
}
|
||||
p {
|
||||
margin: 1em 0;
|
||||
}
|
||||
a {
|
||||
color: #1a1a1a;
|
||||
}
|
||||
a:visited {
|
||||
color: #1a1a1a;
|
||||
}
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin-top: 1.4em;
|
||||
}
|
||||
h5, h6 {
|
||||
font-size: 1em;
|
||||
font-style: italic;
|
||||
}
|
||||
h6 {
|
||||
font-weight: normal;
|
||||
}
|
||||
ol, ul {
|
||||
padding-left: 1.7em;
|
||||
margin-top: 1em;
|
||||
}
|
||||
li > ol, li > ul {
|
||||
margin-top: 0;
|
||||
}
|
||||
blockquote {
|
||||
margin: 1em 0 1em 1.7em;
|
||||
padding-left: 1em;
|
||||
border-left: 2px solid #e6e6e6;
|
||||
color: #606060;
|
||||
}
|
||||
code {
|
||||
font-family: Menlo, Monaco, 'Lucida Console', Consolas, monospace;
|
||||
font-size: 85%;
|
||||
margin: 0;
|
||||
}
|
||||
pre {
|
||||
margin: 1em 0;
|
||||
overflow: auto;
|
||||
}
|
||||
pre code {
|
||||
padding: 0;
|
||||
overflow: visible;
|
||||
overflow-wrap: normal;
|
||||
}
|
||||
.sourceCode {
|
||||
background-color: transparent;
|
||||
overflow: visible;
|
||||
}
|
||||
hr {
|
||||
background-color: #1a1a1a;
|
||||
border: none;
|
||||
height: 1px;
|
||||
margin: 1em 0;
|
||||
}
|
||||
table {
|
||||
margin: 1em 0;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
display: block;
|
||||
font-variant-numeric: lining-nums tabular-nums;
|
||||
}
|
||||
table caption {
|
||||
margin-bottom: 0.75em;
|
||||
}
|
||||
tbody {
|
||||
margin-top: 0.5em;
|
||||
border-top: 1px solid #1a1a1a;
|
||||
border-bottom: 1px solid #1a1a1a;
|
||||
}
|
||||
th {
|
||||
border-top: 1px solid #1a1a1a;
|
||||
padding: 0.25em 0.5em 0.25em 0.5em;
|
||||
}
|
||||
td {
|
||||
padding: 0.125em 0.5em 0.25em 0.5em;
|
||||
}
|
||||
header {
|
||||
margin-bottom: 4em;
|
||||
text-align: center;
|
||||
}
|
||||
#TOC li {
|
||||
list-style: none;
|
||||
}
|
||||
#TOC a:not(:hover) {
|
||||
text-decoration: none;
|
||||
}
|
||||
code{white-space: pre-wrap;}
|
||||
span.smallcaps{font-variant: small-caps;}
|
||||
span.underline{text-decoration: underline;}
|
||||
div.column{display: inline-block; vertical-align: top; width: 50%;}
|
||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||
ul.task-list{list-style: none;}
|
||||
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/zsh
|
||||
title=blog
|
||||
description="yrafn afuynta arr a ar"
|
||||
baseurl="http://tilde.town/~dozens/gamelog"
|
||||
link="$baseurl/index.html"
|
||||
href="$baseurl/feed.xml"
|
||||
outfile="dist/feed.xml"
|
||||
|
||||
echo "<rss version=\"2.0\"><channel><title>$title</title>" > $outfile
|
||||
echo "<link>$link</link><description>$description</description><atom:link rel=\"self\" type=\"application/rss+xml\" href=\"$href\"/>" >> $outfile
|
||||
|
||||
for file in $(ls -1 content/*.md | sort -r)
|
||||
do
|
||||
dest="${$(basename $file)/md/html}"
|
||||
pandoc --template=templates/rss-feed-item.template --variable=url:"$baseurl/$dest" $file >> $outfile
|
||||
done
|
||||
|
||||
echo '</channel></rss>' >> $outfile
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/zsh
|
||||
cat templates/index-before.html > index.md
|
||||
|
||||
for file in $(ls -1 content/*.md | sort -r)
|
||||
do
|
||||
dest="${$(basename $file)/md/html}"
|
||||
pandoc --template=templates/blog-list-item.template --variable=url:$dest $file >> index.md
|
||||
done
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
title: hello world!
|
||||
subtitle: a whole new blog
|
||||
date: 2022-01-01
|
||||
toc-title: Contents
|
||||
---
|
||||
Hola, Wikipedia!
|
||||
|
||||
I started a new blog! Isn't that just really special?
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
title: giraffes
|
||||
subtitle: a long necked hoax?
|
||||
date: 2022-02-01
|
||||
updated: 2022-02-20
|
||||
toc-title: Contents
|
||||
---
|
||||
## Intro
|
||||
**Edit**: It has been brought to my attention that giraffes are actually real. I am willing to admit my mistakes, and stand corrected. You have to admit that they are *unlikely* though.
|
||||
|
||||
---
|
||||
|
||||
I mean, have you ever even seen a giraffe?
|
||||
|
||||
they look like aliens.
|
||||
|
||||
## Too tall
|
||||
|
||||
long legs
|
||||
|
||||
## Too long
|
||||
|
||||
all that neck, and still only 7 neckbones. same as a field mouse, same as any other mammal. what you trying to prove?
|
||||
|
||||
## Black tongue
|
||||
|
||||
maybe try washing that thing
|
||||
|
||||
## horns?
|
||||
|
||||
what you even got horns for dude?
|
|
@ -0,0 +1,3 @@
|
|||
<p>These are all of my blog posts:</p>
|
||||
- [giraffes](2022-02-01-giraffes.html): long neck hoax? --- 2022-02-20
|
||||
- [hello world!](2022-01-01-hello-world.html): a whole new blog --- 2022-01-01
|
|
@ -0,0 +1,20 @@
|
|||
# show all recipes
|
||||
default:
|
||||
just --list
|
||||
|
||||
# build
|
||||
build:
|
||||
make build
|
||||
|
||||
# watch for changes
|
||||
watch:
|
||||
ls content/*.md | entr make build
|
||||
|
||||
# upload
|
||||
up:
|
||||
echo "TODO"
|
||||
|
||||
# clean dist
|
||||
clean:
|
||||
rm -rf dist/*
|
||||
touch dist/.gitkeep
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: about
|
||||
subtitle: what is all this anyway
|
||||
---
|
||||
honestly it's whatever you want it to be, dreamchild
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: contact
|
||||
subtitle: stay in touch!
|
||||
---
|
||||
- dozens@tilde.team
|
||||
- @dozens@tiny.tilde.website
|
|
@ -0,0 +1 @@
|
|||
- [$title$]($url$): $subtitle$ --- $if(updated)$$updated$$else$$date$$endif$
|
|
@ -0,0 +1 @@
|
|||
<link rel="alternate" type="application/rss+xml" href="feed.xml" title="my awesome blog name">
|
|
@ -0,0 +1 @@
|
|||
<p>These are all of my blog posts:</p>
|
|
@ -0,0 +1,7 @@
|
|||
<nav>
|
||||
<p>
|
||||
<a href="index.html">home</a>
|
||||
| <a href="about.html">about</a>
|
||||
| <a href="contact.html">contact</a>
|
||||
</p>
|
||||
</nav>
|
|
@ -0,0 +1,8 @@
|
|||
<item>
|
||||
<title>$title$</title>
|
||||
<link>$url$</link>
|
||||
<pubDate>$date$</pubDate>
|
||||
<description>
|
||||
$body$
|
||||
</description>
|
||||
</item>
|
Loading…
Reference in New Issue