chore: updates
* Update `run` tasks to use the Nix Flake instead of Docker. * Output PDFs into a `dist` directory and name them as the talk name. * Move the stylesheets into a common place.
This commit is contained in:
parent
d9f3cae654
commit
1f271a2655
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -4,6 +4,7 @@
|
|||
# rst2df.
|
||||
/**/*.pdf
|
||||
/**/*.rst.build_temp
|
||||
/dist/
|
||||
|
||||
# pdfpc.
|
||||
/**/*.pdfpc
|
||||
|
|
|
@ -12,7 +12,11 @@
|
|||
formatter = pkgs.nixpkgs-fmt;
|
||||
|
||||
devshells.default = {
|
||||
packages = with pkgs; [ python310Packages.rst2pdf ];
|
||||
packages = with pkgs; [
|
||||
pdfpc
|
||||
python310Packages.rst2pdf
|
||||
tree
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
39
run
39
run
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
|
@ -6,8 +6,9 @@ PDF_FILENAME=slides.pdf
|
|||
RST_FILENAME=slides.rst
|
||||
THUMBNAIL_FILENAME=thumbnail.jpg
|
||||
|
||||
function clean:all {
|
||||
# Clean all generated files.
|
||||
function clean {
|
||||
mkdir -p dist
|
||||
rm -fr dist/*
|
||||
|
||||
find . \
|
||||
-type f \( -name "${PDF_FILENAME}*" -o -name *.build_temp -o -name ${THUMBNAIL_FILENAME} \) \
|
||||
|
@ -23,37 +24,28 @@ function help {
|
|||
}
|
||||
|
||||
function pdf:generate {
|
||||
# Generate a new PDF file.
|
||||
|
||||
DIRECTORY_NAME=$1
|
||||
shift 1
|
||||
pushd "${DIRECTORY_NAME}"
|
||||
|
||||
docker run --rm -it \
|
||||
-v $HOME/.local/share/fonts:/usr/share/fonts \
|
||||
-v $PWD/${DIRECTORY_NAME}:/rst2pdf \
|
||||
-w /rst2pdf \
|
||||
opdavies/rst2pdf \
|
||||
${RST_FILENAME} \
|
||||
rst2pdf "${RST_FILENAME}" \
|
||||
--break-level 1 \
|
||||
--extension-module preprocess \
|
||||
-e preprocess \
|
||||
--fit-background-mode scale \
|
||||
--font-path /usr/share/fonts \
|
||||
--output ${PDF_FILENAME} \
|
||||
--stylesheets main,tango \
|
||||
--font-path ../fonts \
|
||||
--output "../dist/${DIRECTORY_NAME}.pdf" \
|
||||
--stylesheets ../styles/style-light,tango \
|
||||
"${@}"
|
||||
|
||||
popd
|
||||
tree dist
|
||||
}
|
||||
|
||||
function pdf:present {
|
||||
TALK_PATH=$1
|
||||
shift 1
|
||||
|
||||
pdfpc "${@}" "$TALK_PATH/$PDF_FILENAME" \
|
||||
--switch-screens
|
||||
}
|
||||
|
||||
function pdf:watch {
|
||||
# Generate a new PDF file and watch for changes.
|
||||
echo "TODO: pdf:watch"
|
||||
pdfpc "${@}" "dist/${TALK_PATH}.pdf" --switch-screens
|
||||
}
|
||||
|
||||
function thumbnail:generate {
|
||||
|
@ -61,4 +53,5 @@ function thumbnail:generate {
|
|||
echo "TODO: thumbnail:generate"
|
||||
}
|
||||
|
||||
eval "${@:-help}"
|
||||
TIMEFORMAT=$'\nTask completed in %3lR'
|
||||
time "${@:-help}"
|
||||
|
|
164
styles/style-dark.yaml
Normal file
164
styles/style-dark.yaml
Normal file
|
@ -0,0 +1,164 @@
|
|||
embeddedFonts:
|
||||
- - Inconsolata.ttf
|
||||
- Inconsolata.ttf
|
||||
- Inconsolata.ttf
|
||||
- Inconsolata.ttf
|
||||
- - Helvetica.ttf
|
||||
- Helvetica-Bold.ttf
|
||||
- Helvetica.ttf
|
||||
- Helvetica-Bold.ttf
|
||||
|
||||
fontsAlias:
|
||||
fontBold: Helvetica-Bold
|
||||
fontFont: Helvetica
|
||||
fontItalic: Helvetica
|
||||
fontMono: Inconsolata
|
||||
fontMonoBold: Inconsolata
|
||||
fontMonoBoldItalic: Inconsolata
|
||||
fontMonoItalic: Inconsolata
|
||||
|
||||
linkColor: '#60a5fa'
|
||||
|
||||
pageSetup:
|
||||
firstTemplate: coverPage
|
||||
height: 18cm
|
||||
margin-bottom: 0cm
|
||||
margin-gutter: 0cm
|
||||
margin-left: 0cm
|
||||
margin-right: 0cm
|
||||
margin-top: 0cm
|
||||
size: null
|
||||
spacing-footer: 2mm
|
||||
spacing-header: 2mm
|
||||
width: 32cm
|
||||
|
||||
pageTemplates:
|
||||
coverPage:
|
||||
background: ./images/bg-dark.png
|
||||
frames:
|
||||
- - 12%
|
||||
- 10%
|
||||
- 76%
|
||||
- 75%
|
||||
showFooter: false
|
||||
showHeader: false
|
||||
|
||||
imagePage:
|
||||
alignment: TA_CENTER
|
||||
background: ./images/bg-dark.png
|
||||
frames:
|
||||
- - 3%
|
||||
- 3%
|
||||
- 92%
|
||||
- 92%
|
||||
showFooter: true
|
||||
showHeader: false
|
||||
|
||||
outputPage:
|
||||
background: ./images/bg-dark.png
|
||||
frames:
|
||||
- - 8%
|
||||
- 10%
|
||||
- 82%
|
||||
- 65%
|
||||
showFooter: false
|
||||
showHeader: false
|
||||
|
||||
standardPage:
|
||||
background: ./images/bg-dark.png
|
||||
frames:
|
||||
- - 3%
|
||||
- 3%
|
||||
- 92%
|
||||
- 92%
|
||||
showFooter: true
|
||||
showHeader: false
|
||||
|
||||
titlePage:
|
||||
alignment: TA_CENTER
|
||||
background: ./images/bg-dark.png
|
||||
frames:
|
||||
- - 8%
|
||||
- 8%
|
||||
- 85%
|
||||
- 65%
|
||||
showFooter: true
|
||||
showHeader: false
|
||||
|
||||
styles:
|
||||
bodytext:
|
||||
alignment: TA_LEFT
|
||||
|
||||
bullet-list:
|
||||
colWidths:
|
||||
- '20'
|
||||
- null
|
||||
commands:
|
||||
- - LEFTPADDING
|
||||
- - 0
|
||||
- 0
|
||||
- - 1
|
||||
- -1
|
||||
- 5
|
||||
- - RIGHTPADDING
|
||||
- - 0
|
||||
- 0
|
||||
- - 1
|
||||
- -1
|
||||
- 0
|
||||
textColor: '#ffffff'
|
||||
|
||||
bullet-list-item:
|
||||
spaceAfter: 0
|
||||
spaceBefore: 18
|
||||
|
||||
centred:
|
||||
alignment: TA_CENTER
|
||||
parent: normal
|
||||
|
||||
centredtitle:
|
||||
alignment: TA_CENTER
|
||||
fontName: fontBold
|
||||
fontSize: 48
|
||||
leading: 64
|
||||
parent: heading
|
||||
|
||||
code:
|
||||
backColor: '#111111'
|
||||
borderWidth: 0
|
||||
fontSize: 24
|
||||
leading: 26
|
||||
parent: literal
|
||||
spaceBefore: 4
|
||||
|
||||
footer:
|
||||
alignment: TA_RIGHT
|
||||
fontName: fontMono
|
||||
fontSize: 20
|
||||
rightIndent: 16
|
||||
spaceBefore: 0
|
||||
textColor: '#24608a'
|
||||
|
||||
heading:
|
||||
fontName: fontBold
|
||||
fontSize: 20
|
||||
spaceAfter: 16
|
||||
textColor: '#60a5fa'
|
||||
|
||||
literal:
|
||||
backColor: '#111111'
|
||||
fontName: fontMono
|
||||
|
||||
normal:
|
||||
fontSize: 24
|
||||
textColor: '#ffffff'
|
||||
|
||||
title:
|
||||
fontSize: 300%
|
||||
parent: heading
|
||||
|
||||
titleslideinfo:
|
||||
alignment: TA_CENTER
|
||||
fontSize: 140%
|
||||
parent: normal
|
||||
|
157
styles/style-light.yaml
Normal file
157
styles/style-light.yaml
Normal file
|
@ -0,0 +1,157 @@
|
|||
embeddedFonts:
|
||||
- - Inconsolata.ttf
|
||||
- Inconsolata.ttf
|
||||
- Inconsolata.ttf
|
||||
- Inconsolata.ttf
|
||||
- - Helvetica.ttf
|
||||
- Helvetica-Bold.ttf
|
||||
- Helvetica.ttf
|
||||
- Helvetica-Bold.ttf
|
||||
|
||||
fontsAlias:
|
||||
fontBold: Helvetica-Bold
|
||||
fontFont: Helvetica
|
||||
fontItalic: Helvetica
|
||||
fontMono: Inconsolata
|
||||
fontMonoBold: Inconsolata
|
||||
fontMonoBoldItalic: Inconsolata
|
||||
fontMonoItalic: Inconsolata
|
||||
|
||||
linkColor: '#24608a'
|
||||
|
||||
pageSetup:
|
||||
firstTemplate: coverPage
|
||||
height: 18cm
|
||||
margin-bottom: 0cm
|
||||
margin-gutter: 0cm
|
||||
margin-left: 0cm
|
||||
margin-right: 0cm
|
||||
margin-top: 0cm
|
||||
size: null
|
||||
spacing-footer: 2mm
|
||||
spacing-header: 2mm
|
||||
width: 32cm
|
||||
|
||||
pageTemplates:
|
||||
coverPage:
|
||||
frames:
|
||||
- - 12%
|
||||
- 10%
|
||||
- 76%
|
||||
- 75%
|
||||
showFooter: false
|
||||
showHeader: false
|
||||
|
||||
imagePage:
|
||||
alignment: TA_CENTER
|
||||
frames:
|
||||
- - 3%
|
||||
- 3%
|
||||
- 92%
|
||||
- 92%
|
||||
showFooter: true
|
||||
showHeader: false
|
||||
|
||||
outputPage:
|
||||
frames:
|
||||
- - 8%
|
||||
- 10%
|
||||
- 82%
|
||||
- 65%
|
||||
showFooter: false
|
||||
showHeader: false
|
||||
|
||||
standardPage:
|
||||
frames:
|
||||
- - 3%
|
||||
- 3%
|
||||
- 92%
|
||||
- 92%
|
||||
showFooter: true
|
||||
showHeader: false
|
||||
|
||||
titlePage:
|
||||
alignment: TA_CENTER
|
||||
frames:
|
||||
- - 8%
|
||||
- 8%
|
||||
- 85%
|
||||
- 65%
|
||||
showFooter: true
|
||||
showHeader: false
|
||||
|
||||
styles:
|
||||
bodytext:
|
||||
alignment: TA_LEFT
|
||||
|
||||
bullet-list:
|
||||
colWidths:
|
||||
- '20'
|
||||
- null
|
||||
commands:
|
||||
- - LEFTPADDING
|
||||
- - 0
|
||||
- 0
|
||||
- - 1
|
||||
- -1
|
||||
- 5
|
||||
- - RIGHTPADDING
|
||||
- - 0
|
||||
- 0
|
||||
- - 1
|
||||
- -1
|
||||
- 0
|
||||
textColor: '#aaaaaa'
|
||||
|
||||
bullet-list-item:
|
||||
spaceAfter: 0
|
||||
spaceBefore: 18
|
||||
|
||||
centred:
|
||||
alignment: TA_CENTER
|
||||
parent: normal
|
||||
|
||||
centredtitle:
|
||||
alignment: TA_CENTER
|
||||
fontName: fontBold
|
||||
fontSize: 48
|
||||
leading: 64
|
||||
parent: heading
|
||||
|
||||
code:
|
||||
backColor: white
|
||||
borderWidth: 0
|
||||
fontSize: 22
|
||||
leading: 24
|
||||
parent: literal
|
||||
spaceBefore: 0
|
||||
|
||||
footer:
|
||||
alignment: TA_RIGHT
|
||||
fontSize: 20
|
||||
rightIndent: 16
|
||||
spaceBefore: 0
|
||||
textColor: '#aaaaaa'
|
||||
|
||||
heading:
|
||||
fontName: fontBold
|
||||
fontSize: 20
|
||||
spaceAfter: 16
|
||||
textColor: '#24608a'
|
||||
|
||||
literal:
|
||||
backColor: white
|
||||
fontName: fontMono
|
||||
|
||||
normal:
|
||||
fontSize: 24
|
||||
textColor: '#383745'
|
||||
|
||||
title:
|
||||
fontSize: 300%
|
||||
parent: heading
|
||||
|
||||
titleslideinfo:
|
||||
alignment: TA_CENTER
|
||||
fontSize: 140%
|
||||
parent: normal
|
Loading…
Reference in a new issue