New layout
7
.gitignore
vendored
|
@ -4,14 +4,12 @@ __pycache__
|
|||
|
||||
# node/bower
|
||||
node_modules
|
||||
bower_components
|
||||
|
||||
# emacs
|
||||
*~
|
||||
|
||||
# static js
|
||||
assets/static/js/app-min.js
|
||||
assets/static/js/app.js
|
||||
assets/static/js
|
||||
assets/static/css
|
||||
|
||||
# Tests
|
||||
|
@ -19,3 +17,6 @@ tests/venv
|
|||
|
||||
# Build
|
||||
public
|
||||
|
||||
# Lektor
|
||||
.lektor
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
image: archlinux/base:latest
|
||||
|
||||
variables:
|
||||
POETRY_CACHE_DIR: "$CI_PROJECT_DIR/.cache/poetry"
|
||||
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
|
||||
|
||||
before_script:
|
||||
- pacman -Syu python-pip nodejs npm python2 base-devel --noconfirm
|
||||
|
||||
cache:
|
||||
paths:
|
||||
- .cache/pip
|
||||
- .cache/poetry
|
||||
|
||||
stages:
|
||||
- deploy
|
||||
|
||||
pages:
|
||||
stage: deploy
|
||||
script:
|
||||
- pip install -r requirements.txt
|
||||
- npm install
|
||||
- make build
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
only:
|
||||
- master
|
||||
|
||||
pages_test:
|
||||
stage: deploy
|
||||
script:
|
||||
- pip install requests
|
||||
- python -m unittest tests.tests_deploy
|
||||
only:
|
||||
- master
|
15
Makefile
|
@ -1,16 +1,15 @@
|
|||
setup:
|
||||
poetry install
|
||||
|
||||
dev:
|
||||
node_modules/gulp/bin/gulp.js sass
|
||||
node_modules/gulp/bin/gulp.js js
|
||||
npm install
|
||||
|
||||
build:
|
||||
make dev
|
||||
lektor build --prune --output-path ${PWD}/public
|
||||
node_modules/gulp/bin/gulp.js sass
|
||||
node_modules/gulp/bin/gulp.js js
|
||||
lektor build --prune --output-path ${PWD}/public --buildstate-path ${PWD}/.lektor
|
||||
|
||||
watch:
|
||||
node_modules/gulp/bin/gulp.js sass:watch
|
||||
|
||||
deploy_tests:
|
||||
bash tests/run.sh
|
||||
deploy:
|
||||
make build
|
||||
rsync -e ssh --info=progress2 -r ${PWD}/public/ pages.sites.town:~/public_html/fmartingr.com/
|
||||
|
|
380
assets/pubkey.txt
Normal file
|
@ -0,0 +1,380 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
AAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMF
|
||||
BQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn
|
||||
KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SV
|
||||
lpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz
|
||||
9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQH
|
||||
BQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBka
|
||||
JicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
|
||||
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz
|
||||
9PX29/j5+v/aAAwDAQACEQMRAD8A9qspGht1RxjjkelRTclhu/GlaRS20EE+gqMsJGwR8o7+
|
||||
tdUYqOxyuTluc9D4U+3Xs8s7BISuQqNgsc9xik/4Re1vL1pp3kdI+AN2MAdB9K6kgRFZD0NY
|
||||
Wu65Dp8TrJ5geTkbMDIzyM07vVjaWiOd8bXtvbaXBZRxOSMqGJ+6B2OfwNeWXO2SZ5gqKS2S
|
||||
iDA/D0rrfFOqpqdwvlReXGBxlsk8dT71x985jgcjaSgOCBWc3zFQXKV5ZG2hQqDIxnI6VVZc
|
||||
HofrWVI7sxLMST70kVzLC25HIP1rN0zVM1wmc8gYHQ96sCCNxlVC5HPNV9PvIblwkuFk7E9D
|
||||
XQR2BkXOAF9qwneO5pFXMpbLygfLO4nJ3DsKY6FGwRwew7V0hs440VBxkfexmq0umeXcCOQg
|
||||
FhkY5FZc5fKY5yx+UbV9AKlhtjMHldXEEXLlRyfYf54q6LcHzGICovBYLwP8TVe4m3bIV3JB
|
||||
kgY4J+tUtSWiB7x5JN20AAbUQdEHoKiILAZHSpjaSRAl42X3YYqQBoXLZzt44PT6UwKm0AdK
|
||||
KncE5ZelFAHuOiXsKSNZTylLluTubIf6Gt0YIBXGO2K8wuriQQrKFEsaAMsndAfeus8M+IIb
|
||||
23S0mZUmXhcnAb6V3wqN7nLUh1Rv3DSm3YIRkf3jgCvPNXuY3MsUrG5bosjtwvrium1rWlDG
|
||||
3tyGGcEj+I+n0rnbm0haMF4nluXy2EOD9fpSnUS0CEHuzkr5ETGzLDuSayriLzY3iK4De3Nd
|
||||
fbaJK2om2KK8irvOW+RR7+prOvdOmbZK0WzHyucYII/pWLmaKJ5rMhjkZGGGU4NQNXUeJtIa
|
||||
JFvo1BQYWQqD17H+n5VyrGtFLmVwtYTcVOQcEV3Xg/W4Z/8AQrxv3gGYmJ+97GuFRHlcKikk
|
||||
9hU5hurF1lwykHIZexqJKMtGaRutUewXYtXiRlfywCWdZCAFz3HsfpWLcbBjDPhjsGIznPbA
|
||||
OM57etYmm6z9uSGORdpXIxEwjDHBIBwM5J44I7ces9petb21vIotlcuQX3FSMHlXGOTjHc9i
|
||||
Oc1rHCUlrui6VT2q5LWl+Hl8vxLl9HFJHDBZ3YYjhYuMu3rwSee2QBWA7tJKTzvB5B6g/Sti
|
||||
SVGlaG1SG1iwxZZRIhZRk5yvUEevc4qpJZw3FlHcWuxZTxhMgMcZK4JPPX6/iMzVw0Y6w2Kg
|
||||
1VSja01uvT7/AMxlvqEu9fN/exgEFGORjpWrDd2iabdQC3BuWceUxUEhO/PY++K52GVSDu5w
|
||||
Og4qe3ungk84qjfKV57e/wBa5ldaMyZaYD95C0qq27I52iis152clhnjufSipGX18QXxhEDT
|
||||
AxA52bRj8fWtzR7xJj5xYh0x8o7muHDGul8L4a6LMSEUfMeuK3b0IS1PQLCAyH7TcMeeAv8A
|
||||
SrIlRJijkNjkY6r9KyXu5o1OQDlf3QHQ+lYs+omKYF2LTN1PQ/jjtWN2zS1joL6WSxsZEtVJ
|
||||
aZt0k5OWI7VDa2872qGaJgkpwCDgk07Tbw3CbZTuD87T0PvXQ2dsbmcohDnbiMtwqiolOysU
|
||||
oXZxerXNvHbtpcVs1xcTqFaPGce5PauGudFVdSexkgRe6XEDlk/M9fSvdYPDEWn6fLHcMklx
|
||||
cKRNKiYLZ7Z64rj9S0C0j1GC0jcI8pOHk5CgdWx34H51tTqU9KcNZMmVKok6s7KCOEawtbFF
|
||||
UMq5HX1qvKVIK5DKR0q7q3hu1N05F25JY4XeGOB37VlDRru3j86CeO5st2C6P909gR2PsM05
|
||||
UGru+xNLHU5tJdSiyfYbjcBmB+CPSty3uJnzNb7JJ2GJFbqSPuyAZ68nnnnOetZ93atGmyQh
|
||||
gw7HpUWnTbd8EgDMFK/N3BrShVtox1qbi1OGjOisSoK25kknWT91OpO4IzDIK/kQfpn0qpPN
|
||||
NYmI/wCj+fC3lqcKWwPutjr+ft61TPyA7GdMjBCMRkehxUHyr0ArVVdGrGkqnvKcdH1/Qadw
|
||||
OQeauI6Pb4AO5iA4FUHmVQec/SmQzky9doIxXPON0ZJmi9qUyc4XHeilSQyRkHLpxuPeisCh
|
||||
lnaJKZMyIAFJBY4/Ae9a1hL9kc5JTy1yABnis/ToBLyZY0ABJDnGQO31qxLMWJdAGcADYvXj
|
||||
ire409DpbfV4Wt8yMAh6q3GPcf4VWmjge782O4EykZOOtcmsjO/P1xWnaAswz27VNrDvc7rR
|
||||
kiYh2A4+4M8j61o30y29tJJFeJA8PzLuOMt/dHrXOWep/ZLXLZZgduM81LJoss8Bn1W1ubea
|
||||
QfuZS3yJ6A//AF+awnbqdOHpylL3TqtB8SPqdu1penZdxDcGHRx6iud8XwyX87NbvskCBAT6
|
||||
d8frV3w7Y2rgWt98s8Z/dsGxkex710kOm2l080LruCPhT3HFYKbp1OaJ3ShCpTcZnj0WntBJ
|
||||
Kl95ckJUoI+SSOxB7evelW4mhUWEK+RbSqVKhcH8/f8AM969Yn8G2bS7ypJqGfwrbuEVol+U
|
||||
5BxW9TGSl8SOWngqUHeLPF5opYm2ykso+Ugnr6H61mXKPazpNjocEV69r3g1QvmQLuQj5x3H
|
||||
vXAazpJhspExlox19a0p1lI2qYWU6bkuhkyXIxxzmqrzM9QwSZTy26jofatnS9OjmgkuZyxC
|
||||
DKoFzn3x+f5Guq6POo0J1p8kTIx680mSrKR2NdNYm0ujJZv5ZznyyTkMQM7T6ZHQjGDXPTxC
|
||||
G6kjDbgjkA+o9a3qUHCKle6ZyKqvaypPeJZjZkJ5IBoqJizNksT9TRXE0bFqO6cSZAA7YHSp
|
||||
i5knLqNpJzx61EIcDpViFDuCkUNjRbijjuuHKxT9n/hb6+h96sCN7dtkyFGXtUccSqm5jwPW
|
||||
qmq6hI1ukAY7F+6cc/TPp7VK1L2NW1We6n/0c8hgFO7qa9M8Of2iLc2eoRlnxhg/II968g0P
|
||||
WpNOuI2AHB4Jr0tvHlq8EcyjEmMEk9T/AJzXPXjP7KOvDzjFasq+LbGTSriBreQKrPmNQeUP
|
||||
cD2rrtNt54I0lkB3SKGYehxXnmreIU1TVYZnAIiA47GuusfEiyyLFKw+6PwrCcZcqOiNROTd
|
||||
zp3mbHXpUMlww6/pVU3sJGVdcdetZ1zr9pAv3iz54ArL3marlW5tEjaS3TvmvKfGcsUepiOA
|
||||
gxsMkDsfSt+88QzXkbLGwVTn5R1x6mubGkT6jO6QplQPnkI75roox5HzSIlWltDqcTqdqtvd
|
||||
iWH7jYJHpmuk0VrabRhB5/k3BO3OBhsFjtyeBkMcH6+lS6p4L1UqGto/tOcgqn3hj271zGbz
|
||||
TZ3jdJIJhw8ciY/MGu2E1NaMxp1Pqtfna0Zc8sacZVEu1mU7hkEjtzj/ACTWRI5llZwMbjnm
|
||||
nyyySkl2z3wBgZ+gqOKNpZQgz7/SuuVZuCj0R5tSFN1XOCtclBIOcHpRUrIyEgcr6UVzXuKx
|
||||
rRKHxiu80/4Z31xYrNNdw28rjcsTKTj/AHiOn61wEU211VMbs/WvVbT4gaLeadbDU2eKdRyV
|
||||
QsCRwcEZrCv7SKXKa01F7nDa/oepaG5jvLdlGfllXlH+hrmWDSq2U+ma+g7HxToeqjyIbyF9
|
||||
3BilHX8DVk6BojP5n9jaaWPOfsqf4VksVbSS1LdBvZnzXKpwvy9qQSyou3dx79q+l20PR5EK
|
||||
Po+nlT2+yp/hXNa18MNA1VGa0R9PuD91oiWTPup/oRVxxUXuhOjJHiUF0wI56ck+tbFjq0kY
|
||||
aTPfqTyaztd0G+8O6pLYXseHToy/ddezD2rM81lxya2cVJaERm4naHX5jCFWTBJG5s9R6VGm
|
||||
qhS75LO3GSev+FcnHM2AQfmq1ah5Jgq5b6VLppGqqtnbaLC15dIgAI6kkZwK9Bt1t4bVrO2Q
|
||||
GZsA7V4GfU1xeg30GhXFql1GRC4JkfGTnt+HWuzPiXRQnyarapgZw7DiuCs235HpUUoq73Ir
|
||||
LQVuUlGpF1vIWK+YrcEHkYH+elcN8TLcW9pYC5kSS7V3RJP4niwDz9DWn4h+KVrZB4tJCXdy
|
||||
esxBEa/1Y/pXlWp6ze6zetd307TTN3PQD0A7CtsPRlzKb0MMTiE4uG/6FcknpWjDbG2gDvkM
|
||||
3Lc84pmmwqJBNMucfdUn9av3RjltUbYwdT83PUGuuc9eU81Ip71dCCu49eKKrKzI25cge9FL
|
||||
lfQLlx54beP9xMgb3IH9apS6tK6OhSMljlmGck+vWp4tNSPk/MfpT3hVOQtdLRmRQ3ksqKWJ
|
||||
DL0bcc16B4O+JMmnFbDWXeW36JOeSn19R7153JKRx2FVHlJbJNY1KUZqzLhNxeh9V2Wo2Wow
|
||||
rNaXEcqMMgqwNWyABk18r6fqV3ZOGs7uWFv9h8V0X/CW+J3g8v8AtOYqe4Az/KuKWGktmdUa
|
||||
yfQ6z4tz2dze6fGjBriJGEm3nAOMA/rXmEkKhWJHPpWi8F3cP5km52JyWY5JPvTBazSyBNjF
|
||||
j6CumnaEbXMJqUpXsZsUDvIqLkk9q7rwv4cMQ+0XKY7gGrvh7wosTrdXS5YcqCOldHeOsEJC
|
||||
AcCuatXv7sTtw+Ht70jmvFEsaxjYvzKMCvMLy4aS5f5u9dZ4jv5C7IpwTwAK5eO3hAZ5mJbs
|
||||
o7mtqEeWN2Y4mpzSsiOCNnyTnb61bhWNcAAL6tVYuzADPA6CpNrqoJOQa3ZzJljzSgKqxxnv
|
||||
VsXYkibcF3enQCqax7Ytzg8/dNIi54zg9qlxTAnYKy5Ve/PtRTFORjjA70VQj03xV4SEVi2r
|
||||
aYim3jfyp0M3mSBu7uRwDyBgVwMkRzyNv4167YWcfhM3sepXjfYdQzFFbNESzrnAdv7vB+tc
|
||||
V4s8JjQb8KjyS2kqh4Zsghx+HeuhdjNnFTwk5+6azpoSD0Nb0lmvZzVSS0cdifpSaC5jBGzw
|
||||
cGt3R9ZS0cJfQtLEf4l+8P8AGqLwMO1R7COo4qJQUlZlxk4u6PUtLttN1lAdPuY5SBkp0cfU
|
||||
Hmt6z8NxwsHeMFh0JHSvEYneCVZYZHikU5VlJBH4iuz0f4m6xpyrFfIl/COMv8r/APfQ6/iD
|
||||
XDVw0/sM7qeKj9tHpxtmA2qOBWbfWZETbugFRad8SPDl8AJ3ls5D1EqZXP1XP64q5qGvaFPZ
|
||||
s0eq2bccYlGfy61wunUi9Ud0KtOS0Z4/q4W71GZYn+eNioQ/xfSsVwVYg8EdjU1+x+3zOrZD
|
||||
OWUjvk05roXSKlxhZRwJMdf97/GvYjGySPFm7ybKqn5utXrGBbmY7shFGaoyI0T7XXBrX09o
|
||||
4bQzMep6UyRt5CcAgYHQDPQVTCHk1ae73b96/Mehqu7DaCpz60gJbfy/+WnIPaiq5+cZHSin
|
||||
YD3HSr7SvE62/huSW8aBGLxXEqr5nA+7nnAxn1qTxDo+pXOmPpdloqra2gOyaa73soHOVG4A
|
||||
Z+lFFbbMjoeXPbv3x+FVpLY/3jRRVsSKzxsvXmq0irjuKKKkorMhHpTCcDpRRUjEynoacrAn
|
||||
AzRRSAScYVGBPpVZunvRRUsCSO4+XypQXj7eq/T/AAqYBolCg7kc7lP/ANaiigYO2RgdB1pv
|
||||
O3I6UUUkA8MpOBkLRRRTA//ZiQJUBBMBCAA+FiEE9J2vlwze66v3RD+ycWvBR3FecW8FAl4P
|
||||
VigCGwMFCQlmAYAFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQcWvBR3FecW/anA/6Ar/S
|
||||
clVW45egAbHF4VeaLAktzuwlTW9zL2f8plCmbVibR/dXt6xSI86FaOb1JJBbE7JzFOc3fUrG
|
||||
Pmu6s+vTmTmiBkPjyBlKl29mSzulVxDW7gOwVqwMsMWHo0flCG5mHY1cY/tTPTEhDoEQpsjW
|
||||
L266IbNAvIyvylDmAtjvm2zyP6ZWzWRpMYlb2tuxgJAZbC8YG+NIA7zbTqZfuh0+IcHnpprF
|
||||
x9YewNvFrhqQOQpZy5eUVHrWCvf0H/nbWjE89c3pY2qbjIKbF1v1luJcRBfyc1cBOIPsvQcr
|
||||
krawEkEl/XPBo7KLLkTtnzxOhmYDalinsw8hrxFr8K1nIN5lDKC5vRzIwWEWKdFAUY9R4wz1
|
||||
OZsXT3mxlNseVnmuYmihgzPsqaRZ0J4Og2j/dS+5NvoNU5Fysy+e36mvoZja9EfvCiZUI7NW
|
||||
UalRx2zwPa7D7JR0mK2F4f80RJubn01fcFoiUMKRjXtbWoAH+w926AMzl8mVoXBJfCM+hcsu
|
||||
qQ9ArTLPc/ibXxFqxCMBFBGeiIywyU+7SQWKhx99yuohk4BTMpXFEnjuiSxsQvz/KzeUQAZb
|
||||
9mz3YIkhhxab+BLJnVtjvL1MvngxkPzO57xx5sq/hL+GQZP2SpgXpsmNu26oUquqmQk+rg8F
|
||||
QgAXjB7o+aKZXneXovFvDPCA/8tLalLR/wAAIXP/AAAhbgEQAAEBAAAAAAAAAAAAAAAA/9j/
|
||||
4AAQSkZJRgABAQAASABIAAD/4QBMRXhpZgAATU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAA
|
||||
A6ABAAMAAAABAAEAAKACAAQAAAABAAAA+qADAAQAAAABAAAA+gAAAAD/7QA4UGhvdG9zaG9w
|
||||
IDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8IAEQgA+gD6
|
||||
AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAMCBAEFAAYHCAkKC//EAMMQAAEDAwIE
|
||||
AwQGBAcGBAgGcwECAAMRBBIhBTETIhAGQVEyFGFxIweBIJFCFaFSM7EkYjAWwXLRQ5I0ggjh
|
||||
U0AlYxc18JNzolBEsoPxJlQ2ZJR0wmDShKMYcOInRTdls1V1pJXDhfLTRnaA40dWZrQJChka
|
||||
KCkqODk6SElKV1hZWmdoaWp3eHl6hoeIiYqQlpeYmZqgpaanqKmqsLW2t7i5usDExcbHyMnK
|
||||
0NTV1tfY2drg5OXm5+jp6vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAQIAAwQFBgcI
|
||||
CQoL/8QAwxEAAgIBAwMDAgMFAgUCBASHAQACEQMQEiEEIDFBEwUwIjJRFEAGMyNhQhVxUjSB
|
||||
UCSRoUOxFgdiNVPw0SVgwUThcvEXgmM2cCZFVJInotIICQoYGRooKSo3ODk6RkdISUpVVldY
|
||||
WVpkZWZnaGlqc3R1dnd4eXqAg4SFhoeIiYqQk5SVlpeYmZqgo6SlpqeoqaqwsrO0tba3uLm6
|
||||
wMLDxMXGx8jJytDT1NXW19jZ2uDi4+Tl5ufo6ery8/T19vf4+fr/2wBDAAwMDAwMDBQMDBQd
|
||||
FBQUHScdHR0dJzEnJycnJzE7MTExMTExOzs7Ozs7OztHR0dHR0dTU1NTU11dXV1dXV1dXV3/
|
||||
2wBDAQ4PDxgWGCgWFihhQjZCYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
|
||||
YWFhYWFhYWFhYWFhYWH/2gAMAwEAAhEDEQAAAegOFTLAioZakz4oNM7dQQ0pH1cCJWSjQjao
|
||||
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
|
||||
=aVl0
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
BIN
assets/static/images/favicon.ico
Normal file
After Width: | Height: | Size: 1.4 KiB |
|
@ -1,84 +0,0 @@
|
|||
body
|
||||
font-family: "Antic Slab"
|
||||
font-size: $font-size-normal
|
||||
line-height: 1.5em
|
||||
|
||||
.center
|
||||
margin: 0 auto
|
||||
max-width: 920px
|
||||
|
||||
a
|
||||
text-decoration: underilne
|
||||
color: $red
|
||||
|
||||
&.no-underline
|
||||
text-decoration: none
|
||||
|
||||
img
|
||||
max-width: 100%
|
||||
|
||||
header
|
||||
h1
|
||||
font-size: 1.5em
|
||||
margin-bottom: 0
|
||||
text-align: right
|
||||
|
||||
h2
|
||||
font-size: 0.8em
|
||||
font-weight: normal
|
||||
margin-top: 0
|
||||
display: none
|
||||
|
||||
nav.main-menu
|
||||
text-align: right
|
||||
|
||||
footer
|
||||
font-size: 0.7em
|
||||
padding-top: 1em
|
||||
|
||||
hr.light
|
||||
border: 0px
|
||||
margin: 1em 0 1em 0
|
||||
border-top: #CCC 1px solid
|
||||
|
||||
p:first-child
|
||||
margin-top: 0
|
||||
|
||||
.text-center
|
||||
text-align: center
|
||||
|
||||
.text-right
|
||||
text-align: right
|
||||
|
||||
.text-bold
|
||||
font-weight: bold
|
||||
|
||||
.text-size-normal
|
||||
font-size: $font-size-normal
|
||||
|
||||
.text-size-enormous
|
||||
font-size: $font-size-enormous
|
||||
|
||||
.float-right
|
||||
float: right
|
||||
|
||||
.float-left
|
||||
float: left
|
||||
|
||||
.clearfloat
|
||||
clear: both
|
||||
|
||||
.display-block
|
||||
display: block
|
||||
|
||||
.block-info
|
||||
background-color: lightblue
|
||||
padding: 12px
|
||||
|
||||
&:before
|
||||
color: darken(lightblue, 50)
|
||||
content: '🛈'
|
||||
float: left
|
||||
font-size: 180%
|
||||
line-height: 80%
|
||||
padding-right: 6px
|
|
@ -1,6 +0,0 @@
|
|||
$red: #c24e4a
|
||||
$lightgray: #f6f6f6
|
||||
$darkgray: #e9e9e9
|
||||
|
||||
$font-size-normal: 20px
|
||||
$font-size-enormous: 5em
|
48
content/about/contents.lr
Normal file
|
@ -0,0 +1,48 @@
|
|||
_model: page
|
||||
---
|
||||
title: About
|
||||
---
|
||||
body:
|
||||
Hi! I'm Felipe, and I am a developer. Whatever that is.
|
||||
|
||||
I have been playing with code for a while now, but I also enjoy geeking around with computers, algorithms and other stuff; the less I know about it, the better!
|
||||
Learning new things every day is my way of life.
|
||||
|
||||
I think that developers are like artists, writers and composers... we all make art. But we don't use strokes and colors, words or notes, we make it through code. And I really love it.
|
||||
|
||||
If you want to get in touch feel free to drop me a line.
|
||||
|
||||
<div class="grid">
|
||||
<div class="col-1-3">
|
||||
<h4>E-Mail</h4>
|
||||
<a target="_blank" href="mailto:me@fmartingr.com">me@fmartingr.com</a>
|
||||
</div>
|
||||
<div class="col-1-3">
|
||||
<h4>LinkedIn</h4>
|
||||
<a target="_blank" href="https://www.linkedin.com/in/fmartingr/">linkedin.com/fmartingr</a>
|
||||
</div>
|
||||
<div class="col-1-3">
|
||||
<h4>Mastodon</h4>
|
||||
<a target="_blank" rel="me" href="https://fosstodon.org/@fmartingr">fmartingr@fosstodon.org</a>
|
||||
</div>
|
||||
<div class="col-1-3">
|
||||
<h4>Sourcehut</h4>
|
||||
<a target="_blank" href="https://git.sr.ht/~fmartingr">~fmartingr</a>
|
||||
</div>
|
||||
<div class="col-1-3">
|
||||
<h4>Github</h4>
|
||||
<a target="_blank" href="https://github.com/fmartingr">fmartingr</a>
|
||||
</div>
|
||||
<div class="col-1-3">
|
||||
<h4>Gitlab</h4>
|
||||
<a target="_blank" href="https://gitlab.com/fmartingr">fmartingr</a>
|
||||
</div>
|
||||
<div class="col-1-3">
|
||||
<h4>Telegram</h4>
|
||||
<a target="_blank" href="https://t.me/fmartingr">@fmartingr</a>
|
||||
</div>
|
||||
<div class="col-1-3">
|
||||
<h4>Keybase</h4>
|
||||
<a target="_blank" href="https://keybase.io/fmarting">@fmarting</a>
|
||||
</div>
|
||||
</div>
|
Before Width: | Height: | Size: 164 KiB |
Before Width: | Height: | Size: 160 KiB |
Before Width: | Height: | Size: 213 KiB |
Before Width: | Height: | Size: 211 KiB |
Before Width: | Height: | Size: 185 KiB |
Before Width: | Height: | Size: 310 KiB |
Before Width: | Height: | Size: 192 KiB |
|
@ -1,3 +0,0 @@
|
|||
_model: gallery
|
||||
---
|
||||
_discoverable: no
|
Before Width: | Height: | Size: 383 KiB After Width: | Height: | Size: 240 KiB |
|
@ -2,13 +2,14 @@ title: Welcome to Felipe Martin!
|
|||
---
|
||||
body:
|
||||
|
||||
Hi! I'm Felipe, and I am a developer. Whatever that is.
|
||||
|
||||
I have been playing with code for a while now, but I also enjoy geeking around with computers, algorithms and other stuff; the less I know about it, the better! Learning new things every day is my way of life.
|
||||
|
||||
I think that developers are like artists, writers and composers... we all make art. But we don't use strokes and colors, words or notes, we make it through code. And I really love it.
|
||||
|
||||
If you want to get in touch feel free to drop me a line.
|
||||
<h3>I'm currently reading...</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.goodreads.com/book/show/9579634-prince-of-thorns" target="_blank">Prince of Thorns (The Broken Empire, #1)</a> by <i>Mark Lawrence</i></li>
|
||||
</ul>
|
||||
|
||||
<h3>I'm currently playing...</h3>
|
||||
<ul>
|
||||
<li><a href="https://backloggery.com/fmartingr" target="_blank">Final Fantasy IX</a> on PC</li>
|
||||
</ul>
|
||||
---
|
||||
_template: home.html
|
||||
|
|
26
gulpfile.js
|
@ -1,32 +1,26 @@
|
|||
'use strict';
|
||||
|
||||
var gulp = require('gulp');
|
||||
|
||||
// Styles
|
||||
var sass = require('gulp-sass');
|
||||
var concatCss = require('gulp-concat-css');
|
||||
var concatJs = require('gulp-concat');
|
||||
var merge = require('merge-stream');
|
||||
var minifyCss = require('gulp-minify-css');
|
||||
var livereload = require('gulp-livereload');
|
||||
var yargs = require('yargs').argv;
|
||||
var minify = require('gulp-minify');
|
||||
|
||||
gulp.task('sass', function () {
|
||||
var sassStream = gulp.src('./assets/static/sass/style.sass')
|
||||
gulp.task('sass', function() {
|
||||
var sassStream = gulp.src('./static/sass/style.sass')
|
||||
.pipe(sass().on('error', sass.logError));
|
||||
// var bowerStream = gulp.src([]);
|
||||
|
||||
return merge(sassStream)
|
||||
.pipe(concatCss("style.css"))
|
||||
.pipe(minifyCss())
|
||||
.pipe(gulp.dest('./assets/static/css'))
|
||||
.pipe(livereload());
|
||||
.pipe(gulp.dest('./assets/static/css'));
|
||||
});
|
||||
|
||||
gulp.task('js', function () {
|
||||
gulp.task('js', function() {
|
||||
var jsStream = gulp.src([
|
||||
'./assets/static/js/main.js'
|
||||
'./static/js/main.js'
|
||||
]);
|
||||
return jsStream
|
||||
.pipe(concatJs('app.js'))
|
||||
|
@ -37,12 +31,6 @@ gulp.task('js', function () {
|
|||
.pipe(gulp.dest('./assets/static/js'))
|
||||
})
|
||||
|
||||
gulp.task('livereload', function () {
|
||||
return gulp.src('./templates/**/*.html').pipe(livereload());
|
||||
});
|
||||
|
||||
gulp.task('sass:watch', function () {
|
||||
livereload.listen();
|
||||
gulp.watch('./assets/static/sass/*', gulp.parallel(['sass']));
|
||||
gulp.watch('./assets/static/templates/**/*.html', gulp.parallel(['livereload']));
|
||||
gulp.task('sass:watch', function() {
|
||||
gulp.watch('./static/sass/*', gulp.parallel(['sass']));
|
||||
});
|
394
package-lock.json
generated
|
@ -4,12 +4,6 @@
|
|||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@types/color-name": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
|
||||
"integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
|
||||
"dev": true
|
||||
},
|
||||
"abbrev": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
||||
|
@ -469,18 +463,6 @@
|
|||
"inherits": "~2.0.0"
|
||||
}
|
||||
},
|
||||
"body": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz",
|
||||
"integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"continuable-cache": "^0.3.1",
|
||||
"error": "^7.0.0",
|
||||
"raw-body": "~1.1.0",
|
||||
"safe-json-parse": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
|
@ -567,12 +549,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"bytes": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
|
||||
"integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=",
|
||||
"dev": true
|
||||
},
|
||||
"cache-base": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
|
||||
|
@ -862,12 +838,6 @@
|
|||
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
|
||||
"dev": true
|
||||
},
|
||||
"continuable-cache": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz",
|
||||
"integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=",
|
||||
"dev": true
|
||||
},
|
||||
"convert-source-map": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
|
||||
|
@ -1142,12 +1112,6 @@
|
|||
"safer-buffer": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"emoji-regex": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
||||
"dev": true
|
||||
},
|
||||
"end-of-stream": {
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
||||
|
@ -1157,15 +1121,6 @@
|
|||
"once": "^1.4.0"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"version": "7.2.1",
|
||||
"resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz",
|
||||
"integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"string-template": "~0.2.1"
|
||||
}
|
||||
},
|
||||
"error-ex": {
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
|
||||
|
@ -1408,15 +1363,6 @@
|
|||
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
|
||||
"dev": true
|
||||
},
|
||||
"faye-websocket": {
|
||||
"version": "0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
|
||||
"integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"websocket-driver": ">=0.5.1"
|
||||
}
|
||||
},
|
||||
"file-uri-to-path": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
||||
|
@ -2475,55 +2421,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"gulp-livereload": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/gulp-livereload/-/gulp-livereload-4.0.2.tgz",
|
||||
"integrity": "sha512-InmaR50Xl1xB1WdEk4mrUgGHv3VhhlRLrx7u60iY5AAer90FlK95KXitPcGGQoi28zrUJM189d/h6+V470Ncgg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^2.4.1",
|
||||
"debug": "^3.1.0",
|
||||
"fancy-log": "^1.3.2",
|
||||
"lodash.assign": "^4.2.0",
|
||||
"readable-stream": "^3.0.6",
|
||||
"tiny-lr": "^1.1.1",
|
||||
"vinyl": "^2.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "3.2.6",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
|
||||
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"lodash.assign": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
|
||||
"integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
|
||||
"dev": true
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
|
||||
"integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"gulp-minify": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/gulp-minify/-/gulp-minify-3.1.0.tgz",
|
||||
|
@ -2795,12 +2692,6 @@
|
|||
"integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==",
|
||||
"dev": true
|
||||
},
|
||||
"http-parser-js": {
|
||||
"version": "0.4.10",
|
||||
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz",
|
||||
"integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=",
|
||||
"dev": true
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||
|
@ -3216,12 +3107,6 @@
|
|||
"resolve": "^1.1.7"
|
||||
}
|
||||
},
|
||||
"livereload-js": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz",
|
||||
"integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==",
|
||||
"dev": true
|
||||
},
|
||||
"load-json-file": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
|
||||
|
@ -3235,15 +3120,6 @@
|
|||
"strip-bom": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"locate-path": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
|
||||
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-locate": "^4.1.0"
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.15",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
|
||||
|
@ -3978,30 +3854,6 @@
|
|||
"os-tmpdir": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"p-limit": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
|
||||
"integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-try": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"p-locate": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
|
||||
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-limit": "^2.2.0"
|
||||
}
|
||||
},
|
||||
"p-try": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
||||
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
|
||||
"dev": true
|
||||
},
|
||||
"parse-filepath": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
|
||||
|
@ -4238,30 +4090,6 @@
|
|||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.9.1",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz",
|
||||
"integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==",
|
||||
"dev": true
|
||||
},
|
||||
"raw-body": {
|
||||
"version": "1.1.7",
|
||||
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
|
||||
"integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"bytes": "1",
|
||||
"string_decoder": "0.10"
|
||||
},
|
||||
"dependencies": {
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"read-pkg": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
|
||||
|
@ -4560,12 +4388,6 @@
|
|||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
||||
"dev": true
|
||||
},
|
||||
"safe-json-parse": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz",
|
||||
"integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=",
|
||||
"dev": true
|
||||
},
|
||||
"safe-regex": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
|
||||
|
@ -4949,12 +4771,6 @@
|
|||
"integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
|
||||
"dev": true
|
||||
},
|
||||
"string-template": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
|
||||
"integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=",
|
||||
"dev": true
|
||||
},
|
||||
"string-width": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||
|
@ -5077,43 +4893,6 @@
|
|||
"integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=",
|
||||
"dev": true
|
||||
},
|
||||
"tiny-lr": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz",
|
||||
"integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"body": "^5.1.0",
|
||||
"debug": "^3.1.0",
|
||||
"faye-websocket": "~0.10.0",
|
||||
"livereload-js": "^2.3.0",
|
||||
"object-assign": "^4.1.0",
|
||||
"qs": "^6.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "3.2.6",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
|
||||
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"to-absolute-glob": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
|
||||
|
@ -5482,23 +5261,6 @@
|
|||
"source-map": "^0.5.1"
|
||||
}
|
||||
},
|
||||
"websocket-driver": {
|
||||
"version": "0.7.3",
|
||||
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz",
|
||||
"integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"http-parser-js": ">=0.4.0 <0.4.11",
|
||||
"safe-buffer": ">=5.1.0",
|
||||
"websocket-extensions": ">=0.1.1"
|
||||
}
|
||||
},
|
||||
"websocket-extensions": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
|
||||
"integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
|
||||
"dev": true
|
||||
},
|
||||
"which": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||
|
@ -5557,162 +5319,6 @@
|
|||
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
|
||||
"dev": true
|
||||
},
|
||||
"yargs": {
|
||||
"version": "15.1.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-15.1.0.tgz",
|
||||
"integrity": "sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cliui": "^6.0.0",
|
||||
"decamelize": "^1.2.0",
|
||||
"find-up": "^4.1.0",
|
||||
"get-caller-file": "^2.0.1",
|
||||
"require-directory": "^2.1.1",
|
||||
"require-main-filename": "^2.0.0",
|
||||
"set-blocking": "^2.0.0",
|
||||
"string-width": "^4.2.0",
|
||||
"which-module": "^2.0.0",
|
||||
"y18n": "^4.0.0",
|
||||
"yargs-parser": "^16.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-styles": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
|
||||
"integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/color-name": "^1.1.1",
|
||||
"color-convert": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"camelcase": {
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
||||
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
|
||||
"dev": true
|
||||
},
|
||||
"cliui": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
|
||||
"integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"string-width": "^4.2.0",
|
||||
"strip-ansi": "^6.0.0",
|
||||
"wrap-ansi": "^6.2.0"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-name": "~1.1.4"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
},
|
||||
"find-up": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
|
||||
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"locate-path": "^5.0.0",
|
||||
"path-exists": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"get-caller-file": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
|
||||
"dev": true
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
||||
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
|
||||
"dev": true
|
||||
},
|
||||
"path-exists": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
||||
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
|
||||
"dev": true
|
||||
},
|
||||
"require-main-filename": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
|
||||
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
|
||||
"dev": true
|
||||
},
|
||||
"string-width": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
|
||||
"integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"emoji-regex": "^8.0.0",
|
||||
"is-fullwidth-code-point": "^3.0.0",
|
||||
"strip-ansi": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
|
||||
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"which-module": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
|
||||
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
|
||||
"dev": true
|
||||
},
|
||||
"wrap-ansi": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
|
||||
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^4.0.0",
|
||||
"string-width": "^4.1.0",
|
||||
"strip-ansi": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"y18n": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
|
||||
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
|
||||
"dev": true
|
||||
},
|
||||
"yargs-parser": {
|
||||
"version": "16.1.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz",
|
||||
"integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"camelcase": "^5.0.0",
|
||||
"decamelize": "^1.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"yargs-parser": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
|
||||
|
|
|
@ -7,12 +7,10 @@
|
|||
"gulp": "*",
|
||||
"gulp-concat": "*",
|
||||
"gulp-concat-css": "*",
|
||||
"gulp-livereload": "*",
|
||||
"gulp-minify": "*",
|
||||
"gulp-minify-css": "*",
|
||||
"gulp-sass": "*",
|
||||
"merge-stream": "*",
|
||||
"yargs": "*"
|
||||
"merge-stream": "*"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
article.blog-post
|
||||
h1
|
||||
font-size: 1.8em
|
||||
.title
|
||||
margin-bottom: 0.3em
|
||||
|
||||
.info
|
||||
|
@ -14,6 +13,7 @@ article.blog-post
|
|||
border-radius: 6px
|
||||
display: block
|
||||
margin: 0 auto
|
||||
max-width: 100%
|
||||
|
||||
img
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2)
|
103
static/sass/_layout.sass
Normal file
|
@ -0,0 +1,103 @@
|
|||
body
|
||||
font-family: $font-family
|
||||
font-size: $font-size-base
|
||||
line-height: 1.5em
|
||||
|
||||
.center
|
||||
margin: 0 auto
|
||||
max-width: 920px
|
||||
|
||||
a
|
||||
text-decoration: underilne
|
||||
color: $highlight-color
|
||||
|
||||
&.no-underline
|
||||
text-decoration: none
|
||||
|
||||
hr.light
|
||||
border: 0px
|
||||
margin: 1em 0 1em 0
|
||||
border-top: #CCC 1px solid
|
||||
|
||||
p:first-child
|
||||
margin-top: 0
|
||||
|
||||
.text-left
|
||||
text-align: left
|
||||
|
||||
.text-center
|
||||
text-align: center
|
||||
|
||||
.text-right
|
||||
text-align: right
|
||||
|
||||
.text-bold
|
||||
font-weight: bold
|
||||
|
||||
.text-size-small
|
||||
font-size: $font-size-small
|
||||
|
||||
.text-size-normal
|
||||
font-size: $font-size-normal
|
||||
|
||||
.text-size-enormous
|
||||
font-size: $font-size-enormous
|
||||
|
||||
.float-right
|
||||
float: right
|
||||
|
||||
.float-left
|
||||
float: left
|
||||
|
||||
.clearfloat
|
||||
clear: both
|
||||
|
||||
.display-block
|
||||
display: block
|
||||
|
||||
.block-info
|
||||
background-color: lighten($highlight-color, 40%)
|
||||
padding: 12px
|
||||
|
||||
// New
|
||||
.page-content
|
||||
display: flex
|
||||
margin: 0 auto
|
||||
flex-direction: row
|
||||
max-width: 980px
|
||||
|
||||
@media ($tablet)
|
||||
display: block
|
||||
width: 100%
|
||||
|
||||
header
|
||||
width: 25%
|
||||
text-align: center
|
||||
|
||||
@media ($tablet)
|
||||
width: 100%
|
||||
.avatar
|
||||
max-width: 125px
|
||||
|
||||
h1
|
||||
font-size: 1.3em
|
||||
|
||||
.avatar
|
||||
width: 70%
|
||||
margin: 0 auto
|
||||
border-radius: 12%
|
||||
|
||||
nav
|
||||
a
|
||||
display: block
|
||||
|
||||
.social
|
||||
list-style: none
|
||||
padding: 0
|
||||
|
||||
.main-content
|
||||
@media ($tablet)
|
||||
width: 100%
|
||||
|
||||
width: 75%
|
||||
padding-right: 16px
|
|
@ -4,7 +4,7 @@ table
|
|||
box-shadow: 0 1px 3px rgba(0,0,0,0.2)
|
||||
|
||||
th
|
||||
background: $red
|
||||
background: $highlight-color
|
||||
color: white
|
||||
font-weight: bold
|
||||
|
11
static/sass/_variables.sass
Normal file
|
@ -0,0 +1,11 @@
|
|||
$highlight-color: #c24e4a
|
||||
$lightgray: #f6f6f6
|
||||
$darkgray: #e9e9e9
|
||||
|
||||
$font-family: "Antic Slab"
|
||||
|
||||
$font-size-base: 1.2em
|
||||
|
||||
$font-size-small: 0.8em
|
||||
$font-size-normal: 1.3em
|
||||
$font-size-enormous: 5em
|
|
@ -3,7 +3,6 @@
|
|||
@import ./mixins
|
||||
@import ./grid
|
||||
@import ./layout
|
||||
@import ./about
|
||||
@import ./blog
|
||||
@import ./portfolio
|
||||
@import ./table
|
|
@ -8,6 +8,7 @@
|
|||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fork-awesome@1.0.11/css/fork-awesome.min.css" integrity="sha256-MGU/JUq/40CFrfxjXb5pZjpoZmxiP2KuICN5ElLFNd8=" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="{{ get_pygments_stylesheet()|url }}">
|
||||
<link rel="alternate" type="application/rss+xml" title="RSS Feed for fmartingr.com" href="/feed.xml" />
|
||||
<link rel="icon" href="/static/images/favicon.ico">
|
||||
<!-- Mobile -->
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
<meta name="MobileOptimized" content="320">
|
||||
|
@ -17,40 +18,58 @@
|
|||
{% block endhead %}{% endblock %}
|
||||
</head>
|
||||
<body class="{% block body_class %}{% endblock %}">
|
||||
<header class="center">
|
||||
<div class="page-content">
|
||||
<section class="main-content">
|
||||
{% block main_content %}asd{% endblock %}
|
||||
</section>
|
||||
<header>
|
||||
<h1>Felipe Martín</h1>
|
||||
<h2>Be incomprehensible. If they can't understand, they can't disagree.</h2>
|
||||
<nav class="main-menu">
|
||||
<a {% if this.path == '/' %}class="text-bold"{% endif %} href="{{ '/'|url }}">/home</a>
|
||||
<img class="avatar" src="{{ '/static/images/avatar.jpg'|asseturl }}">
|
||||
<hr class="light" />
|
||||
<nav>
|
||||
<a {% if this.path == '/' %}class="text-bold"{% endif %} href="{{ '/'|url }}">/home</a>
|
||||
{% for section in site.get('/').children %}
|
||||
<a{% if this.is_child_of(section) %} class="text-bold"{% endif
|
||||
%} href="{{ section|url }}">{{ section.path }}</a> {% if not loop.last %} {% endif %}
|
||||
<a {% if this.is_child_of(section) %}class="text-bold"{% endif %} href="{{ section|url }}">{{ section.path }}</a>
|
||||
{% endfor %}
|
||||
</nav>
|
||||
<hr class="light">
|
||||
<hr class="light" />
|
||||
<ul class="social text-size-small">
|
||||
<li>
|
||||
<span class="title">E-mail</span>
|
||||
<a target="_blank" href="mailto:me@fmartingr.com">me@fmartingr.com</a>
|
||||
</li>
|
||||
<li>
|
||||
<span class="title">Sourcehut</span>
|
||||
<a target="_blank" href="https://git.sr.ht/~fmartingr">~fmartingr</a>
|
||||
</li>
|
||||
<li>
|
||||
<span class="title">LinkedIn</span>
|
||||
<a target="_blank" href="https://www.linkedin.com/in/fmartingr/">linkedin.com/fmartingr</a>
|
||||
</li>
|
||||
<li>
|
||||
<span class="title">Mastodon</span>
|
||||
<a target="_blank" rel="me" href="https://fosstodon.org/@fmartingr">fmartingr@fosstodon.org</a>
|
||||
</li>
|
||||
<li>
|
||||
<span class="title">PGP</span>
|
||||
<a href="/pubkey.txt">716B C147 715E 716F</a>
|
||||
<li>
|
||||
<a href="{{ '/about'|url }}">[+ more]</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr class="light" />
|
||||
<ul class="social text-size-small">
|
||||
<li>
|
||||
<span class="title">Site created using</span>
|
||||
<a target="_blank" href="https://www.getlektor.com/">lektor</a>
|
||||
</li>
|
||||
<li>
|
||||
<span class="title">Published using</span>
|
||||
<a target="_blank" href="https://sites.town">sites.town</a>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
{% block main_content %}{% endblock %}
|
||||
<footer class="center text-center">
|
||||
<hr class="light">
|
||||
<div>
|
||||
Powered by <a href="https://www.getlektor.com/" target="_blank">Lektor</a> and <a href="https://about.gitlab.com/product/pages/">Gitlab Pages</a>.
|
||||
</div>
|
||||
<div>
|
||||
<a target="_blank" href="mailto:me@fmartingr.com">E-Mail</a>
|
||||
|
|
||||
<a target="_blank" href="https://gitlab.com/fmartingr">Gitlab</a>
|
||||
|
|
||||
<a target="_blank" href="https://github.com/fmartingr">Github</a>
|
||||
|
|
||||
<a target="_blank" href="https://www.linkedin.com/in/fmartingr/">LinkedIn</a>
|
||||
|
|
||||
<a target="_blank" href="https://telegram.me/fmartingr">Telegram</a>
|
||||
|
|
||||
<a target="_blank" rel="me" href="https://fosstodon.org/@fmartingr">Mastodon</a>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="https://cdn.commento.io/js/commento.js"></script>
|
||||
<script src="https://cdn.commento.io/js/count.js"></script>
|
||||
<script type="text/javascript" src="{{ '/static/js/app-min.js'|url }}"></script>
|
||||
{% block endbody %}{% endblock %}
|
||||
</body>
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
{% extends "_base.html" %}
|
||||
|
||||
{% block page_title %}{{ super() }} | Blog{% endblock %}
|
||||
{% block page_title %}Blog | {{ super() }}{% endblock %}
|
||||
|
|
|
@ -3,15 +3,15 @@
|
|||
|
||||
{% block body_class %}blog post{% endblock %}
|
||||
|
||||
{% block page_title %}{{ super() }} | {{ this.title }}{% endblock %}
|
||||
{% block page_title %}{{ this.title }} | {{ super() }}{% endblock %}
|
||||
|
||||
{% block main_content %}
|
||||
{{ render_blog_post(this) }}
|
||||
{% if this.children.get("gallery") %}
|
||||
{{ render_gallery(this) }}
|
||||
{% endif %}
|
||||
<div class="center block-info">
|
||||
Comments have been disabled in this blog. If you want to contact me directly please use the information at the bottom of the page.
|
||||
In order to make a public comment on this entry please use
|
||||
<a href="mailto:~fmartingr/fmartingr.com@lists.sr.ht?subject=Re: {{ this.title }}">the mailing list</a>
|
||||
and if you want to approach me directly use the most appropriate channel from
|
||||
<a href="{{ '/about'|url }}">the about page</a>.
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
{% extends "_base.html" %}
|
||||
{% from "macros/blog.html" import render_blog_post %}
|
||||
|
||||
{% block page_title %}{{ super() }} | {{ this.title }}{% endblock %}
|
||||
{% block page_title %}{{ this.title }} | {{ super() }}{% endblock %}
|
||||
|
||||
{% block main_content %}
|
||||
<div class="grid center">
|
||||
<div class="col-1-3">
|
||||
<img src="{{ 'static/images/avatar.jpg'|url }}">
|
||||
</div>
|
||||
<div class="col-2-3">
|
||||
<h2>Latest blog posts</h2>
|
||||
{% for post in site.get('/blog').pagination.for_page(1).pagination.items %}
|
||||
<article class="blog-post center">
|
||||
<p class="text-right float-right"><a href="{{ post|url }}">Read »</a></p>
|
||||
<h3 class="title"><a href="{{ post|url }}">{{ post.title }}</a></h3>
|
||||
<div class="info">{{ post.pub_date }}</div>
|
||||
</article>
|
||||
<hr class="light">
|
||||
{% endfor %}
|
||||
{{ this.body }}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block body_class %}home{% endblock %}
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
{% macro render_blog_post(post, from_index=false) %}
|
||||
{% macro render_blog_post(post, from_index=false, include_content=true) %}
|
||||
{% set summary = post.body.html.split('<!-- readmore -->') %}
|
||||
<article class="blog-post center">
|
||||
<h1><a href="{{ post|url }}">{{ post.title }}</a></h1>
|
||||
<h1 class="title"><a href="{{ post|url }}">{{ post.title }}</a></h1>
|
||||
<div class="info">
|
||||
Published on {{ post.pub_date }}
|
||||
</div>
|
||||
{% if include_content %}
|
||||
<div class="content">
|
||||
{% if from_index and summary|length > 1 %}
|
||||
{{ summary[0] }}
|
||||
|
@ -17,23 +18,7 @@
|
|||
<h3>Edits</h3>
|
||||
{{ post.edit_comment }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<hr class="light">
|
||||
</article>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro render_gallery(post) %}
|
||||
<div class="center">
|
||||
<h2>Gallery</h2>
|
||||
<div class="grid">
|
||||
{% for attachment in post.children.get("gallery").attachments.order_by("_id") %}
|
||||
<a href="/blog/{{post._slug}}/gallery/{{attachment._id}}">
|
||||
<img src="/blog/{{post._slug}}/gallery/{{attachment._id}}" class="col-1-3">
|
||||
</a>
|
||||
{% if loop.index is divisibleby(3) %}
|
||||
</div><div class="grid">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<hr class="light">
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
{% extends "_base.html" %}
|
||||
|
||||
{% block page_title %}{{ super() }} | {{ this.title }}{% endblock %}
|
||||
|
||||
{% block main_content %}
|
||||
<div class="center">
|
||||
{{ this.body }}
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -1,10 +1,11 @@
|
|||
{% extends "_base.html" %}
|
||||
|
||||
{% block page_title %}{{ super() }} | {{ this.title }}{% endblock %}
|
||||
{% block page_title %}{{ this.title }} | {{ super() }}{% endblock %}
|
||||
|
||||
{% block body_class %}{{ this.title|lower }}{% endblock %}
|
||||
|
||||
{% block main_content %}
|
||||
<h2>{{ this.title }}</h2>
|
||||
<div class="center">
|
||||
{{ this.body }}
|
||||
</div>
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
{% extends "_base.html" %}
|
||||
|
||||
{% block page_title %}{{ super() }} | Portfolio{% endblock %}
|
||||
|
||||
{% block main_content %}
|
||||
<div class="center">
|
||||
<h1>Portfolio</h1>
|
||||
|
||||
<p>{{ this.content }}</p>
|
||||
|
||||
<ul>
|
||||
{% for category in this.children %}
|
||||
<li><a href="#{{ category.slug }}">{{ category.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
{% for category in this.children %}
|
||||
<h2 id="{{ category.slug }}">{{ category.name }}</h2>
|
||||
{% for item in category.children %}
|
||||
<div class="project project-{{ category.slug }}" id="{{ item.slug }}">
|
||||
<h3><a href="{% if item.url_in_list and item.url %}{{ item.url }}{% else %}{{ item|url }}{% endif %}">{{ item.name }}</a></h3>
|
||||
{% if category.show_images %}
|
||||
<div><img src="{{ item.attachments.images.first().thumbnail(512, 256, crop=True)|url }}"></div>
|
||||
{% endif %}
|
||||
{% if item.description_in_list %}
|
||||
<p>{{ item.description }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div class="clearfloat"></div>
|
||||
{% if not loop.last %}<hr class="light">{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -1,48 +0,0 @@
|
|||
{% extends "_base.html" %}
|
||||
|
||||
{% block page_title %}{{ super() }} | Portfolio | {{ this.name }}{% endblock %}
|
||||
|
||||
{% set images_number = this.attachments.images.count() %}
|
||||
|
||||
{% block main_content %}
|
||||
<div class="center">
|
||||
<h1>{{ this.name }}</h1>
|
||||
|
||||
<ul>
|
||||
{% if this.date %}<li><strong>Date:</strong> {{ this.date.year }}</li>{% endif %}
|
||||
{% if this.role %}<li><strong>Role:</strong> {{ this.role }}</li>{% endif %}
|
||||
{% if this.stack %}<li><strong>Stack:</strong> {{ this.stack }}</li>{% endif %}
|
||||
{% if this.company %}<li><strong>Company:</strong> {{ this.company }}</li>{% endif %}
|
||||
{% if this.url %}<li><strong>URL:</strong> <a href="{{ this.url }}">{{ this.url }}</a></li>{% endif %}
|
||||
</ul>
|
||||
|
||||
<p>{{ this.description }}</p>
|
||||
|
||||
{% if images_number > 0 %}
|
||||
<div class="grid grid-pad" data-featherlight-gallery data-featherlight-filter="a">
|
||||
{% for image in this.attachments.images %}
|
||||
<div class="col-1-8">
|
||||
<a href="{{ image|url }}">
|
||||
<img src="{{ image.thumbnail(200, 150, crop=True)|url }}">
|
||||
</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block endhead %}
|
||||
{% if images_number > 0 %}
|
||||
<link href="//cdn.rawgit.com/noelboss/featherlight/1.7.2/release/featherlight.min.css" type="text/css" rel="stylesheet" />
|
||||
<link href="//cdn.rawgit.com/noelboss/featherlight/1.7.2/release/featherlight.gallery.min.css" type="text/css" rel="stylesheet" />
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block endbody %}
|
||||
{% if images_number > 0 %}
|
||||
<script src="//code.jquery.com/jquery-latest.js"></script>
|
||||
<script src="//cdn.rawgit.com/noelboss/featherlight/1.7.2/release/featherlight.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="//cdn.rawgit.com/noelboss/featherlight/1.7.2/release/featherlight.gallery.min.js" type="text/javascript" charset="utf-8"></script>
|
||||
{% endif %}
|
||||
{% endblock %}
|
|
@ -1,19 +0,0 @@
|
|||
from urllib.parse import urlsplit
|
||||
import unittest
|
||||
import requests
|
||||
|
||||
|
||||
class PagesTestCase(unittest.TestCase):
|
||||
def test_http_redirect_to_https(self):
|
||||
response = requests.get('http://fmartingr.com', allow_redirects=False)
|
||||
scheme, host, *_ = urlsplit(response.headers.get("Location"))
|
||||
self.assertEqual(response.status_code, 301)
|
||||
self.assertEqual(scheme, 'https')
|
||||
self.assertEquals(host, "fmartingr.com")
|
||||
|
||||
def test_www_redirects_to_non_www(self):
|
||||
response = requests.get('https://www.fmartingr.com', allow_redirects=False)
|
||||
scheme, host, *_ = urlsplit(response.headers.get("Location"))
|
||||
self.assertEqual(response.status_code, 301)
|
||||
self.assertEqual(scheme, 'https')
|
||||
self.assertEquals(host, "fmartingr.com")
|