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