Aéroports du Mali, Cape Meares, Oregon & Calathea utilis
This commit is contained in:
parent
d2f85732c5
commit
a99ccc59ec
16 changed files with 630 additions and 1 deletions
|
@ -11,5 +11,11 @@ A proposition, for Whitehead, is neither true nor false in itself. It is a lure
|
||||||
can be found in the ~notes/~ folder
|
can be found in the ~notes/~ folder
|
||||||
|
|
||||||
* propositions (cards)
|
* propositions (cards)
|
||||||
can be found in the ~cards/~ folder
|
|
||||||
|
card design can be found in the ~cards/~ folder and rendered cards can be found in the ~cards/_ouput~ folder
|
||||||
|
|
||||||
|
- testing deck creating using [[https://github.com/andymeneely/squib][squib]]
|
||||||
|
- edit card descriptions in the ~cards.txt~ files
|
||||||
|
- change layout in the ~layout.yml~ file(s)
|
||||||
|
- change design logic in the ~deck.rb~ file
|
||||||
|
|
||||||
|
|
3
cards/Gemfile
Normal file
3
cards/Gemfile
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
|
gem 'squib'
|
20
cards/README.org
Normal file
20
cards/README.org
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# -*- mode: org; coding: utf-8; -*-
|
||||||
|
* a proposition
|
||||||
|
|
||||||
|
* structure
|
||||||
|
|
||||||
|
- ~deck.rb~ - design logic
|
||||||
|
- ~cards.csv~ - list of cards and their properties
|
||||||
|
- ~layout-space-*.yml~ - layout description
|
||||||
|
- ~cards-verbs.txt~ - text for ’verb’ cards
|
||||||
|
- ~cards-occasions.txt~ - text for ’O’ cards
|
||||||
|
- ~cards-qualifiers.txt~ - text for ’Q’ cards
|
||||||
|
- ~img/~ - folder for images (etc)
|
||||||
|
|
||||||
|
* build
|
||||||
|
|
||||||
|
- in this directory
|
||||||
|
- edit ~deck.rb~ (if needed)
|
||||||
|
- run ~rake~
|
||||||
|
- the cards should be in the ~_output~ directory
|
||||||
|
|
8
cards/Rakefile
Normal file
8
cards/Rakefile
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
require 'squib'
|
||||||
|
|
||||||
|
task default: [:deck]
|
||||||
|
|
||||||
|
task :deck do
|
||||||
|
load 'preprocess.rb'
|
||||||
|
load 'deck.rb'
|
||||||
|
end
|
31
cards/cards-occasions.txt
Normal file
31
cards/cards-occasions.txt
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
Livingroom
|
||||||
|
Computer
|
||||||
|
Facebook
|
||||||
|
Urban
|
||||||
|
Empty City
|
||||||
|
Depleted Resources
|
||||||
|
Supplies
|
||||||
|
Mask
|
||||||
|
Hospital
|
||||||
|
ICU
|
||||||
|
Bed
|
||||||
|
Sanitizer
|
||||||
|
Patio
|
||||||
|
Produce
|
||||||
|
Meat
|
||||||
|
Canned Goods
|
||||||
|
Debate
|
||||||
|
Fight
|
||||||
|
Resistance
|
||||||
|
Fake
|
||||||
|
True
|
||||||
|
Vaccine
|
||||||
|
Hoax
|
||||||
|
Internet
|
||||||
|
Connection
|
||||||
|
Disconnection
|
||||||
|
Conspiracy
|
||||||
|
Cult
|
||||||
|
Meme
|
||||||
|
Space race
|
||||||
|
Idiocracy
|
52
cards/cards-old.csv
Normal file
52
cards/cards-old.csv
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
name,type,text,illustration
|
||||||
|
Livingroom,O,...,o_card.svg
|
||||||
|
Computer,O,...,o_card.svg
|
||||||
|
Facebook,O,...,o_card.svg
|
||||||
|
Urban ,O,...,o_card.svg
|
||||||
|
Empty City,O,...,o_card.svg
|
||||||
|
Depleted Resources,O,...,o_card.svg
|
||||||
|
Supplies,O,...,o_card.svg
|
||||||
|
Mask,O,...,o_card.svg
|
||||||
|
Hospital,O,...,o_card.svg
|
||||||
|
ICU,O,...,o_card.svg
|
||||||
|
Bed,O,...,o_card.svg
|
||||||
|
Sanitizer,O,...,o_card.svg
|
||||||
|
Patio,O,...,o_card.svg
|
||||||
|
Produce,O,...,o_card.svg
|
||||||
|
Meat,O,...,o_card.svg
|
||||||
|
Canned Goods,O,...,o_card.svg
|
||||||
|
Debate,O,...,o_card.svg
|
||||||
|
Fight,O,...,o_card.svg
|
||||||
|
Resistance,O,...,o_card.svg
|
||||||
|
Fake,O,...,o_card.svg
|
||||||
|
True,O,...,o_card.svg
|
||||||
|
Vaccine,O,...,o_card.svg
|
||||||
|
Hoax,O,...,o_card.svg
|
||||||
|
Internet,O,...,o_card.svg
|
||||||
|
Connection,O,...,o_card.svg
|
||||||
|
Disconnection,O,...,o_card.svg
|
||||||
|
Conspiracy,O,...,o_card.svg
|
||||||
|
Cult,O,...,o_card.svg
|
||||||
|
Meme,O,...,o_card.svg
|
||||||
|
Space race,O,...,o_card.svg
|
||||||
|
Idiocracy,O,...,o_card.svg
|
||||||
|
Hostility,Z,...,q_card.svg
|
||||||
|
Malaise,Z,...,q_card.svg
|
||||||
|
Anxiety,Z,...,q_card.svg
|
||||||
|
Boredom,Z,...,q_card.svg
|
||||||
|
Frenzy,Z,...,q_card.svg
|
||||||
|
Suffocation,Z,...,q_card.svg
|
||||||
|
Paralyzed,Z,...,q_card.svg
|
||||||
|
Desperation,Z,...,q_card.svg
|
||||||
|
Hospitably,Z,...,q_card.svg
|
||||||
|
Erratic,Z,...,q_card.svg
|
||||||
|
Tedium,Z,...,q_card.svg
|
||||||
|
Wastefully,Z,...,q_card.svg
|
||||||
|
Conservatively,Z,...,q_card.svg
|
||||||
|
Solidarity,Z,...,q_card.svg
|
||||||
|
Racist,Z,...,q_card.svg
|
||||||
|
Inequality,Z,...,q_card.svg
|
||||||
|
Acedia,Z,...,q_card.svg
|
||||||
|
Cook,V,...,v_card.svg
|
||||||
|
Walk,V,...,v_card.svg
|
||||||
|
Isolate,V,...,v_card.svg
|
|
17
cards/cards-qualifiers.txt
Normal file
17
cards/cards-qualifiers.txt
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
Hostility
|
||||||
|
Malaise
|
||||||
|
Anxiety
|
||||||
|
Boredom
|
||||||
|
Frenzy
|
||||||
|
Suffocation
|
||||||
|
Paralyzed
|
||||||
|
Desperation
|
||||||
|
Hospitably
|
||||||
|
Erratic
|
||||||
|
Tedium
|
||||||
|
Wastefully
|
||||||
|
Conservatively
|
||||||
|
Solidarity
|
||||||
|
Racist
|
||||||
|
Inequality
|
||||||
|
Acedia
|
6
cards/cards-verbs.txt
Normal file
6
cards/cards-verbs.txt
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
Cook
|
||||||
|
Walk
|
||||||
|
Isolate
|
||||||
|
Test
|
||||||
|
Avoid
|
||||||
|
Plan
|
55
cards/cards.csv
Normal file
55
cards/cards.csv
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
name,type,text,illustration
|
||||||
|
Livingroom,O,...,o_card.svg
|
||||||
|
Computer,O,...,o_card.svg
|
||||||
|
Facebook,O,...,o_card.svg
|
||||||
|
Urban ,O,...,o_card.svg
|
||||||
|
Empty City,O,...,o_card.svg
|
||||||
|
Depleted Resources,O,...,o_card.svg
|
||||||
|
Supplies,O,...,o_card.svg
|
||||||
|
Mask,O,...,o_card.svg
|
||||||
|
Hospital,O,...,o_card.svg
|
||||||
|
ICU,O,...,o_card.svg
|
||||||
|
Bed,O,...,o_card.svg
|
||||||
|
Sanitizer,O,...,o_card.svg
|
||||||
|
Patio,O,...,o_card.svg
|
||||||
|
Produce,O,...,o_card.svg
|
||||||
|
Meat,O,...,o_card.svg
|
||||||
|
Canned Goods,O,...,o_card.svg
|
||||||
|
Debate,O,...,o_card.svg
|
||||||
|
Fight,O,...,o_card.svg
|
||||||
|
Resistance,O,...,o_card.svg
|
||||||
|
Fake,O,...,o_card.svg
|
||||||
|
True,O,...,o_card.svg
|
||||||
|
Vaccine,O,...,o_card.svg
|
||||||
|
Hoax,O,...,o_card.svg
|
||||||
|
Internet,O,...,o_card.svg
|
||||||
|
Connection,O,...,o_card.svg
|
||||||
|
Disconnection,O,...,o_card.svg
|
||||||
|
Conspiracy,O,...,o_card.svg
|
||||||
|
Cult,O,...,o_card.svg
|
||||||
|
Meme,O,...,o_card.svg
|
||||||
|
Space race,O,...,o_card.svg
|
||||||
|
Idiocracy,O,...,o_card.svg
|
||||||
|
Hostility,Q,...,q_card.svg
|
||||||
|
Malaise,Q,...,q_card.svg
|
||||||
|
Anxiety,Q,...,q_card.svg
|
||||||
|
Boredom,Q,...,q_card.svg
|
||||||
|
Frenzy,Q,...,q_card.svg
|
||||||
|
Suffocation,Q,...,q_card.svg
|
||||||
|
Paralyzed,Q,...,q_card.svg
|
||||||
|
Desperation,Q,...,q_card.svg
|
||||||
|
Hospitably,Q,...,q_card.svg
|
||||||
|
Erratic,Q,...,q_card.svg
|
||||||
|
Tedium,Q,...,q_card.svg
|
||||||
|
Wastefully,Q,...,q_card.svg
|
||||||
|
Conservatively,Q,...,q_card.svg
|
||||||
|
Solidarity,Q,...,q_card.svg
|
||||||
|
Racist,Q,...,q_card.svg
|
||||||
|
Inequality,Q,...,q_card.svg
|
||||||
|
Acedia,Q,...,q_card.svg
|
||||||
|
Cook,V,...,v_card.svg
|
||||||
|
Walk,V,...,v_card.svg
|
||||||
|
Isolate,V,...,v_card.svg
|
||||||
|
Test,V,...,v_card.svg
|
||||||
|
Avoid,V,...,v_card.svg
|
||||||
|
Plan,V,...,v_card.svg
|
|
49
cards/config.yml
Normal file
49
cards/config.yml
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
# Settings in the config.yml are overriding Squib's defaults. Anything in the main script will override this.
|
||||||
|
|
||||||
|
# DPI is used in making PDFs and in unit conversions
|
||||||
|
# Default: 300
|
||||||
|
#dpi: 72
|
||||||
|
|
||||||
|
#antialias: best #recommended. Only about 10% slower than fast
|
||||||
|
#antialias: default # set the anti-aliasing algorithm. default defers to the underlying graphics device. See http://www.cairographics.org/manual/cairo-cairo-t.html#cairo-antialias-t
|
||||||
|
|
||||||
|
# Text hints are used to show the boundaries of text boxes.
|
||||||
|
# Can be enabled/disabled at the command-level, or set globally with `set`
|
||||||
|
#text_hint: '#F00'
|
||||||
|
|
||||||
|
# Show progress bars on the command line for potentially long-running operations
|
||||||
|
#progress_bars: true
|
||||||
|
|
||||||
|
#Enable some custom colors that can be used in any color
|
||||||
|
#custom_colors:
|
||||||
|
# foo: '#abc'
|
||||||
|
|
||||||
|
#For reading image file command (e.g. png and svg), read from this directory instead
|
||||||
|
#img_dir: img-color
|
||||||
|
#img_dir: img-bw
|
||||||
|
|
||||||
|
# Use a SVG cairo back end, instead of an in-memory buffer
|
||||||
|
# backend: :memory # default
|
||||||
|
# backend: :svg # can create scalable pdfs, but rendering done at the printer level is not as good as Cairo.
|
||||||
|
|
||||||
|
# Configure what text markup uses replace characters
|
||||||
|
# Below are the defaults
|
||||||
|
# lsquote: "\u2018" #note that Yaml wants double quotes here to use escape chars
|
||||||
|
# rsquote: "\u2019"
|
||||||
|
# ldquote: "\u201C"
|
||||||
|
# rdquote: "\u201D"
|
||||||
|
# em_dash: "\u2014"
|
||||||
|
# en_dash: "\u2013"
|
||||||
|
# ellipsis: "\u2026"
|
||||||
|
|
||||||
|
# We can also disallow smart quotes and only allow explicit replacements with ``LaTeX-style'' quotes.
|
||||||
|
# smart_quotes: false
|
||||||
|
|
||||||
|
# By default, Squib warns when a text box is ellipsized. This can get verbose
|
||||||
|
# and can be turned off here
|
||||||
|
# warn_ellipsize: true # default
|
||||||
|
# warn_ellipsize: false # turn off entirely
|
||||||
|
|
||||||
|
# By default, Squib will warn if a PNG is being up-scaled.
|
||||||
|
# warn_png_scale: true # default
|
||||||
|
# warn_png_scale: false # turn off entirely
|
62
cards/deck.rb
Normal file
62
cards/deck.rb
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
|
||||||
|
require 'squib'
|
||||||
|
|
||||||
|
# Squib::Deck.new cards: 3, layout: 'economy.yml' do
|
||||||
|
# background color: 'white'
|
||||||
|
# rect layout: 'cut' # cut line as defined by TheGameCrafter
|
||||||
|
# rect layout: 'safe' # safe zone as defined by TheGameCrafter
|
||||||
|
# text str: ['Occasion','Qualifier','Virus','Reflection'] , layout: 'title'
|
||||||
|
# text str: 'S.P.A.C.E.', layout: 'description'
|
||||||
|
# save format: :png
|
||||||
|
# end
|
||||||
|
|
||||||
|
data = Squib.csv file: 'cards.csv'
|
||||||
|
|
||||||
|
layouts = ['economy.yml', 'space-layout-1.yml']
|
||||||
|
|
||||||
|
c1 = '#9f68ed'
|
||||||
|
c2 = '#ed9f68'
|
||||||
|
c3 = '#b5ed68'
|
||||||
|
|
||||||
|
# conditional coloring
|
||||||
|
# https://squib.readthedocs.io/en/v0.15.0/colors.html?highlight=color#samples
|
||||||
|
|
||||||
|
bg = c1
|
||||||
|
fg = c2
|
||||||
|
|
||||||
|
Squib::Deck.new cards: data['name'].size, layout: layouts do
|
||||||
|
|
||||||
|
# background_color = cards['type'].map do |t|
|
||||||
|
# if color == 'bg' && t == 'O' then
|
||||||
|
# 'bg'
|
||||||
|
# else
|
||||||
|
# 'fg'
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
#background color: background_color
|
||||||
|
|
||||||
|
background color: bg #background color: '#9f68ed'
|
||||||
|
rect fill_color: fg , x: 78, y: 78, width: '2.25in', height: '3.25in', radius: 32
|
||||||
|
|
||||||
|
rect layout: 'cut' # cut line as defined by TheGameCrafter
|
||||||
|
rect layout: 'safe' # safe zone as defined by TheGameCrafter
|
||||||
|
text str: data['name'], layout: 'title'
|
||||||
|
text str: data['type'], layout: 'type'
|
||||||
|
text str: data['text'], layout: 'description'
|
||||||
|
svg file: data['illustration'], layout: 'illustration'
|
||||||
|
save_png
|
||||||
|
save_pdf
|
||||||
|
|
||||||
|
# Defaults are pretty sensible.
|
||||||
|
showcase file: 'showcase.png'
|
||||||
|
|
||||||
|
# Here's a more complete example.
|
||||||
|
# Tons of ways to tweak it if you like - check the docs.
|
||||||
|
showcase trim: 32, trim_radius: 32, margin: 100, face: :right,
|
||||||
|
scale: 0.85, offset: 0.95, fill_color: :black,
|
||||||
|
reflect_offset: 25, reflect_strength: 0.1, reflect_percent: 0.4,
|
||||||
|
file: 'showcase2.png'
|
||||||
|
|
||||||
|
save_png prefix: 'showcase_individual_' # to show that they're not trimmed
|
||||||
|
|
||||||
|
end
|
71
cards/img/o_card.svg
Normal file
71
cards/img/o_card.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 396 KiB |
73
cards/img/q_card.svg
Normal file
73
cards/img/q_card.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 266 KiB |
112
cards/img/v_card.svg
Normal file
112
cards/img/v_card.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 269 KiB |
32
cards/preprocess.rb
Normal file
32
cards/preprocess.rb
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
|
||||||
|
# convert text files into .csv for deck.rb mogrification
|
||||||
|
|
||||||
|
$cards_csv = "cards.csv"
|
||||||
|
$cards_o = "cards-occasions.txt"
|
||||||
|
$cards_q = "cards-qualifiers.txt"
|
||||||
|
$cards_v = "cards-verbs.txt"
|
||||||
|
|
||||||
|
# preamble...
|
||||||
|
File.open($cards_csv, "w")
|
||||||
|
File.write($cards_csv, "name,type,text,illustration\n", mode: "w")
|
||||||
|
|
||||||
|
# Occasions
|
||||||
|
def write_occasion(line)
|
||||||
|
File.write($cards_csv, "#{line},O,...,o_card.svg\n", mode: "a")
|
||||||
|
end
|
||||||
|
|
||||||
|
# Qualifiers
|
||||||
|
def write_qualifier(line)
|
||||||
|
File.write($cards_csv, "#{line},Q,...,q_card.svg\n", mode: "a")
|
||||||
|
end
|
||||||
|
|
||||||
|
# Verbs
|
||||||
|
def write_verb(line)
|
||||||
|
File.write($cards_csv, "#{line},V,...,v_card.svg\n", mode: "a")
|
||||||
|
end
|
||||||
|
|
||||||
|
# write to file...
|
||||||
|
File.foreach($cards_o) { |line| write_occasion line.chomp }
|
||||||
|
File.foreach($cards_q) { |line| write_qualifier line.chomp }
|
||||||
|
File.foreach($cards_v) { |line| write_verb line.chomp }
|
||||||
|
|
32
cards/space-layout-1.yml
Normal file
32
cards/space-layout-1.yml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
# _prop1.yml
|
||||||
|
corner:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
type:
|
||||||
|
x: 120
|
||||||
|
y: 120
|
||||||
|
width: 600
|
||||||
|
#fill_color: '#DED4B9'
|
||||||
|
#fill_color: '#CE534D'
|
||||||
|
font: 'Montchauve, Bold 190'
|
||||||
|
color: '#b5ed68'
|
||||||
|
align: :center
|
||||||
|
description:
|
||||||
|
x: 250
|
||||||
|
y: 120
|
||||||
|
font: 'Solide Mirage, 12'
|
||||||
|
color: "#333"
|
||||||
|
illustration:
|
||||||
|
x: 137
|
||||||
|
y: 257
|
||||||
|
width: 550
|
||||||
|
height: 550
|
||||||
|
title:
|
||||||
|
extends: illustration
|
||||||
|
font: 'Noto Serif, 9'
|
||||||
|
y: += 600
|
||||||
|
align: :center
|
||||||
|
|
||||||
|
# 9f68ed
|
||||||
|
# ed9f68
|
||||||
|
# b5ed68
|
Loading…
Reference in a new issue