From 3969f9232c418838c129c58fbc9723128de00723 Mon Sep 17 00:00:00 2001 From: Pouya Abbassi Date: Sat, 10 Oct 2020 09:55:57 +0330 Subject: [PATCH] FG42.org init, using Pelican --- .gitignore | 13 +- website/Makefile | 75 +++ website/README.md | 43 ++ website/content/docs.md | 21 + website/content/pages/.404.md.swp | Bin 0 -> 12288 bytes website/content/pages/404.md | 23 + website/content/pages/release-notes.md | 20 + website/pelicanconf.py | 59 ++ website/publishconf.py | 27 + website/requirements.txt | 17 + website/sass/bulma.sass | 312 +++++++++++ website/sass/sass/.DS_Store | Bin 0 -> 6148 bytes website/sass/sass/base/_all.sass | 5 + website/sass/sass/base/generic.sass | 142 +++++ website/sass/sass/base/helpers.sass | 281 ++++++++++ website/sass/sass/base/minireset.sass | 85 +++ website/sass/sass/components/_all.sass | 15 + website/sass/sass/components/breadcrumb.sass | 75 +++ website/sass/sass/components/card.sass | 79 +++ website/sass/sass/components/dropdown.sass | 81 +++ website/sass/sass/components/level.sass | 77 +++ website/sass/sass/components/list.sass | 39 ++ website/sass/sass/components/media.sass | 48 ++ website/sass/sass/components/menu.sass | 57 ++ website/sass/sass/components/message.sass | 87 +++ website/sass/sass/components/modal.sass | 113 ++++ website/sass/sass/components/navbar.sass | 443 +++++++++++++++ website/sass/sass/components/pagination.sass | 149 ++++++ website/sass/sass/components/panel.sass | 103 ++++ website/sass/sass/components/tabs.sass | 151 ++++++ website/sass/sass/elements/_all.sass | 15 + website/sass/sass/elements/box.sass | 24 + website/sass/sass/elements/button.sass | 305 +++++++++++ website/sass/sass/elements/container.sass | 23 + website/sass/sass/elements/content.sass | 155 ++++++ website/sass/sass/elements/form.sass | 1 + website/sass/sass/elements/icon.sass | 21 + website/sass/sass/elements/image.sass | 69 +++ website/sass/sass/elements/notification.sass | 35 ++ website/sass/sass/elements/other.sass | 39 ++ website/sass/sass/elements/progress.sass | 67 +++ website/sass/sass/elements/table.sass | 127 +++++ website/sass/sass/elements/tag.sass | 121 +++++ website/sass/sass/elements/title.sass | 70 +++ website/sass/sass/form/_all.sass | 8 + website/sass/sass/form/checkbox-radio.sass | 21 + website/sass/sass/form/file.sass | 180 +++++++ website/sass/sass/form/input-textarea.sass | 60 +++ website/sass/sass/form/select.sass | 85 +++ website/sass/sass/form/shared.sass | 55 ++ website/sass/sass/form/tools.sass | 205 +++++++ website/sass/sass/grid/_all.sass | 4 + website/sass/sass/grid/columns.sass | 504 ++++++++++++++++++ website/sass/sass/grid/tiles.sass | 34 ++ website/sass/sass/layout/_all.sass | 5 + website/sass/sass/layout/footer.sass | 9 + website/sass/sass/layout/hero.sass | 143 +++++ website/sass/sass/layout/section.sass | 13 + website/sass/sass/utilities/_all.sass | 8 + website/sass/sass/utilities/animations.sass | 5 + website/sass/sass/utilities/controls.sass | 50 ++ .../sass/utilities/derived-variables.sass | 85 +++ website/sass/sass/utilities/functions.sass | 62 +++ .../sass/utilities/initial-variables.sass | 76 +++ website/sass/sass/utilities/mixins.sass | 262 +++++++++ website/tasks.py | 109 ++++ website/theme/static/css/init | 0 website/theme/static/css/pygment.css | 72 +++ website/theme/static/css/pygment.min.css | 1 + .../fonts/Quicksand/Quicksand-Light.woff2 | Bin 0 -> 11488 bytes .../fonts/Quicksand/Quicksand-Medium.woff2 | Bin 0 -> 13616 bytes .../static/fonts/Roboto/Roboto-Bold.woff2 | Bin 0 -> 8996 bytes .../static/fonts/Roboto/Roboto-Italic.woff2 | Bin 0 -> 9936 bytes .../static/fonts/Roboto/Roboto-Regular.woff2 | Bin 0 -> 8992 bytes .../fonts/Ubuntu_Mono/UbuntuMono-Bold.woff2 | Bin 0 -> 12164 bytes .../Ubuntu_Mono/UbuntuMono-Regular.woff2 | Bin 0 -> 12940 bytes website/theme/static/images/articles/.init | 0 website/theme/static/images/articles/docs.png | Bin 0 -> 50742 bytes .../images/favicon/android-chrome-192x192.png | Bin 0 -> 19379 bytes .../images/favicon/android-chrome-512x512.png | Bin 0 -> 36006 bytes .../images/favicon/apple-touch-icon.png | Bin 0 -> 20046 bytes .../static/images/favicon/favicon-16x16.png | Bin 0 -> 6434 bytes .../static/images/favicon/favicon-32x32.png | Bin 0 -> 7419 bytes .../theme/static/images/favicon/favicon.svg | 1 + .../static/images/favicon/site.webmanifest | 1 + website/theme/static/images/logo.png | Bin 0 -> 7727 bytes website/theme/static/images/pages/404.jpg | Bin 0 -> 61592 bytes website/theme/static/images/pages/pgp.jpg | Bin 0 -> 57573 bytes .../static/images/pages/release-notes.png | Bin 0 -> 50742 bytes website/theme/static/js/fa.min.js | 1 + website/theme/static/js/main.js | 50 ++ website/theme/static/js/main.min.js | 3 + website/theme/templates/archives.html | 22 + website/theme/templates/article.html | 120 +++++ website/theme/templates/author.html | 14 + website/theme/templates/authors.html | 23 + website/theme/templates/base.html | 136 +++++ website/theme/templates/categories.html | 23 + website/theme/templates/category.html | 15 + website/theme/templates/google.html | 9 + website/theme/templates/gosquared.html | 14 + website/theme/templates/index.html | 44 ++ website/theme/templates/page.html | 52 ++ website/theme/templates/pagination.html | 11 + website/theme/templates/period_archives.html | 14 + website/theme/templates/tag.html | 14 + website/theme/templates/tags.html | 23 + website/theme/templates/translations.html | 16 + 108 files changed, 6373 insertions(+), 1 deletion(-) create mode 100644 website/Makefile create mode 100644 website/README.md create mode 100644 website/content/docs.md create mode 100644 website/content/pages/.404.md.swp create mode 100644 website/content/pages/404.md create mode 100644 website/content/pages/release-notes.md create mode 100644 website/pelicanconf.py create mode 100644 website/publishconf.py create mode 100644 website/requirements.txt create mode 100644 website/sass/bulma.sass create mode 100644 website/sass/sass/.DS_Store create mode 100644 website/sass/sass/base/_all.sass create mode 100644 website/sass/sass/base/generic.sass create mode 100644 website/sass/sass/base/helpers.sass create mode 100644 website/sass/sass/base/minireset.sass create mode 100644 website/sass/sass/components/_all.sass create mode 100644 website/sass/sass/components/breadcrumb.sass create mode 100644 website/sass/sass/components/card.sass create mode 100644 website/sass/sass/components/dropdown.sass create mode 100644 website/sass/sass/components/level.sass create mode 100644 website/sass/sass/components/list.sass create mode 100644 website/sass/sass/components/media.sass create mode 100644 website/sass/sass/components/menu.sass create mode 100644 website/sass/sass/components/message.sass create mode 100644 website/sass/sass/components/modal.sass create mode 100644 website/sass/sass/components/navbar.sass create mode 100644 website/sass/sass/components/pagination.sass create mode 100644 website/sass/sass/components/panel.sass create mode 100644 website/sass/sass/components/tabs.sass create mode 100644 website/sass/sass/elements/_all.sass create mode 100644 website/sass/sass/elements/box.sass create mode 100644 website/sass/sass/elements/button.sass create mode 100644 website/sass/sass/elements/container.sass create mode 100644 website/sass/sass/elements/content.sass create mode 100644 website/sass/sass/elements/form.sass create mode 100644 website/sass/sass/elements/icon.sass create mode 100644 website/sass/sass/elements/image.sass create mode 100644 website/sass/sass/elements/notification.sass create mode 100644 website/sass/sass/elements/other.sass create mode 100644 website/sass/sass/elements/progress.sass create mode 100644 website/sass/sass/elements/table.sass create mode 100644 website/sass/sass/elements/tag.sass create mode 100644 website/sass/sass/elements/title.sass create mode 100644 website/sass/sass/form/_all.sass create mode 100644 website/sass/sass/form/checkbox-radio.sass create mode 100644 website/sass/sass/form/file.sass create mode 100644 website/sass/sass/form/input-textarea.sass create mode 100644 website/sass/sass/form/select.sass create mode 100644 website/sass/sass/form/shared.sass create mode 100644 website/sass/sass/form/tools.sass create mode 100644 website/sass/sass/grid/_all.sass create mode 100644 website/sass/sass/grid/columns.sass create mode 100644 website/sass/sass/grid/tiles.sass create mode 100644 website/sass/sass/layout/_all.sass create mode 100644 website/sass/sass/layout/footer.sass create mode 100644 website/sass/sass/layout/hero.sass create mode 100644 website/sass/sass/layout/section.sass create mode 100644 website/sass/sass/utilities/_all.sass create mode 100644 website/sass/sass/utilities/animations.sass create mode 100644 website/sass/sass/utilities/controls.sass create mode 100644 website/sass/sass/utilities/derived-variables.sass create mode 100644 website/sass/sass/utilities/functions.sass create mode 100644 website/sass/sass/utilities/initial-variables.sass create mode 100644 website/sass/sass/utilities/mixins.sass create mode 100644 website/tasks.py create mode 100644 website/theme/static/css/init create mode 100644 website/theme/static/css/pygment.css create mode 100644 website/theme/static/css/pygment.min.css create mode 100644 website/theme/static/fonts/Quicksand/Quicksand-Light.woff2 create mode 100644 website/theme/static/fonts/Quicksand/Quicksand-Medium.woff2 create mode 100644 website/theme/static/fonts/Roboto/Roboto-Bold.woff2 create mode 100644 website/theme/static/fonts/Roboto/Roboto-Italic.woff2 create mode 100644 website/theme/static/fonts/Roboto/Roboto-Regular.woff2 create mode 100644 website/theme/static/fonts/Ubuntu_Mono/UbuntuMono-Bold.woff2 create mode 100644 website/theme/static/fonts/Ubuntu_Mono/UbuntuMono-Regular.woff2 create mode 100644 website/theme/static/images/articles/.init create mode 100644 website/theme/static/images/articles/docs.png create mode 100644 website/theme/static/images/favicon/android-chrome-192x192.png create mode 100644 website/theme/static/images/favicon/android-chrome-512x512.png create mode 100644 website/theme/static/images/favicon/apple-touch-icon.png create mode 100644 website/theme/static/images/favicon/favicon-16x16.png create mode 100644 website/theme/static/images/favicon/favicon-32x32.png create mode 100644 website/theme/static/images/favicon/favicon.svg create mode 100644 website/theme/static/images/favicon/site.webmanifest create mode 100644 website/theme/static/images/logo.png create mode 100644 website/theme/static/images/pages/404.jpg create mode 100644 website/theme/static/images/pages/pgp.jpg create mode 100644 website/theme/static/images/pages/release-notes.png create mode 100644 website/theme/static/js/fa.min.js create mode 100644 website/theme/static/js/main.js create mode 100644 website/theme/static/js/main.min.js create mode 100644 website/theme/templates/archives.html create mode 100644 website/theme/templates/article.html create mode 100644 website/theme/templates/author.html create mode 100644 website/theme/templates/authors.html create mode 100644 website/theme/templates/base.html create mode 100644 website/theme/templates/categories.html create mode 100644 website/theme/templates/category.html create mode 100644 website/theme/templates/google.html create mode 100644 website/theme/templates/gosquared.html create mode 100644 website/theme/templates/index.html create mode 100644 website/theme/templates/page.html create mode 100644 website/theme/templates/pagination.html create mode 100644 website/theme/templates/period_archives.html create mode 100644 website/theme/templates/tag.html create mode 100644 website/theme/templates/tags.html create mode 100644 website/theme/templates/translations.html diff --git a/.gitignore b/.gitignore index 7969193..345b979 100644 --- a/.gitignore +++ b/.gitignore @@ -29,4 +29,15 @@ projectile-bookmarks.eld smex-items elpa/ bm-repository -.fpkg-v3/ \ No newline at end of file +.fpkg-v3/ +website/__pycache__/ +website/*.pyc +website/.sass-cache/ +website/theme/static/css/bulma.css +website/output/ +website/public/ +website/*.old.jpg +website/pelican-plugins/ +website/.*.swp +website/*~ +#*# diff --git a/website/Makefile b/website/Makefile new file mode 100644 index 0000000..6fcf43f --- /dev/null +++ b/website/Makefile @@ -0,0 +1,75 @@ +PY?=python3 +PELICAN?=pelican +PELICANOPTS= + +BASEDIR=$(CURDIR) +INPUTDIR=$(BASEDIR)/content +OUTPUTDIR=$(BASEDIR)/public +CONFFILE=$(BASEDIR)/pelicanconf.py +PUBLISHCONF=$(BASEDIR)/publishconf.py + + +DEBUG ?= 0 +ifeq ($(DEBUG), 1) + PELICANOPTS += -D +endif + +RELATIVE ?= 0 +ifeq ($(RELATIVE), 1) + PELICANOPTS += --relative-urls +endif + +help: + @echo 'Makefile for a pelican Web site ' + @echo ' ' + @echo 'Usage: ' + @echo ' make html (re)generate the web site ' + @echo ' make clean remove the generated files ' + @echo ' make regenerate regenerate files upon modification ' + @echo ' make publish generate using production settings ' + @echo ' make serve [PORT=8000] serve site at http://localhost:8000' + @echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 ' + @echo ' make devserver [PORT=8000] serve and regenerate together ' + @echo ' make ssh_upload upload the web site via SSH ' + @echo ' make rsync_upload upload the web site via rsync+ssh ' + @echo ' ' + @echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html ' + @echo 'Set the RELATIVE variable to 1 to enable relative urls ' + @echo ' ' + +html: + $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) + +clean: + [ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR) + +regenerate: + $(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) + +serve: +ifdef PORT + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) +else + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) +endif + +serve-global: +ifdef SERVER + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) -b $(SERVER) +else + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) -b 0.0.0.0 +endif + + +devserver: +ifdef PORT + $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) +else + $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) +endif + +publish: + $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS) + + +.PHONY: html help clean regenerate serve serve-global devserver publish diff --git a/website/README.md b/website/README.md new file mode 100644 index 0000000..c9653e0 --- /dev/null +++ b/website/README.md @@ -0,0 +1,43 @@ +![Build Status](https://gitlab.com/pouya-abbassi/pouyacode/badges/master/build.svg) + +--- + +[FG42](https://fg42.org) built using [Pelican](https://blog.getpelican.com) & [Bulma](https://bulma.io). + +## Build + +``` +pip install -r requirements.txt +git clone git@github.com:getpelican/pelican-plugins.git +make publish +``` + +This will create `public` directory contaning all static files. + +## Email Obfuscation +I use [ROT13](https://en.wikipedia.org/wiki/ROT13) to obfuscate email adresses. +So email adresses that would be visible to users should be generated using this command (or similar tools): + +``` +echo "pcode@protonmail.com" | tr 'A-Za-z' 'N-ZA-Mn-za-m' +#or +tr 'A-Za-z' 'N-ZA-Mn-za-m' <<< "pcode@protonmail.com" +``` + +They are then processed on user's browser using a simple js function. + +## Sample Pages +There is a sample page at `content/docs.md` that has a metadata `status: hidden`. +Remove this metadata to see it in the index page. This page is just for demo purpose. + +Also there are two pages inside `content/pages/` directory with metadata `error: true`. +This makes the background to stretch and fill the page. +The `content/pages/release-notes.md` is also just for demo purpose. + +## Images +Images for articles and pages should be stored at `theme/static/images/articles/` and `theme/static/images/pages/` directory. +These images should be named after their page title so it would be easier to manage. + +## Configs +Development config file is `pelicanconf.py` and the deployment config file is `publishconf.py`. +`SITEURL` and `PLUGINS` are two most important lines of those files. diff --git a/website/content/docs.md b/website/content/docs.md new file mode 100644 index 0000000..556a5f3 --- /dev/null +++ b/website/content/docs.md @@ -0,0 +1,21 @@ +Title: Docs +Description: of Future Gadget 42 +Date: 2020-05-28 05:57:59 +category: Docs +image: docs.png +icon: far fa-clipboard +status: hidden + + +## Title +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + +| Syntax | Description | +| ----------- | ----------- | +| Header | Title | +| Paragraph | Text | + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + +--- +*Image was the preceding FG42 logo.* diff --git a/website/content/pages/.404.md.swp b/website/content/pages/.404.md.swp new file mode 100644 index 0000000000000000000000000000000000000000..aebe8d1b58e2bb182a7069bd02514592ad49525d GIT binary patch literal 12288 zcmeI2Pm2^s7{<%!EisB7a(#^fb+EhV&x-2=5`?hp93+y}fGo>W(_J%NZckOGs(PEb zM9JNoN56w7uYLjj0$#o6m{ShsshQaXvcX-62_(G5JoHSxRnPm@ueuwC?s50~(QR5! zdjjpO5IfJdcYnP!6h9AysBJTsvHyrx=SK`!g@0TaW>X!qjm@=w)~d1BL1no$L79-% za;ki`)?G_y#qk_@6cb#NwR)g4Enup9Dnii3v~Y6y<<(~K}>)NFaajO1egF5 zU;<2l3H(0@g!+Vdh^2hATFz&yNfC>Bu z2}nF?fBuOO$!Qdi=l=))|9?3n#B1mU^bC3mJ%)aQYREzcT7w4At51b^33&{F#S%OAaMrLn@3M*D=2OJ zmzzi<#8-45-OCERoWoTjN2xvG6H`pIkrh%qqs?@A9c|homJv$p6}6?sdc5`_rD!(_ z%b5qU+Ip|Nr&jv{*I*njomyB=ok9&h(8Suxr*sP@*3GGuo_uLrLrttf`!pJFVFmsw z65Fd7vA?j;j^ePfnraj4LwwxC`qe5@+g7<)UsDAv$*e*JvbrV@+M0C1WJ4Ql#Uc-` zLTU`4I;<|1BLDDT+8ayCV22{ikpUnb=9ntBP}Q#VLyE7t$6XN0IqQZ