generated from vilor/hyde-template
22 changed files with 571 additions and 345 deletions
@ -0,0 +1,56 @@ |
|||||||
|
# Copyright (C) 2022 Ivan Polyakov
|
||||||
|
#
|
||||||
|
# This file is part of vilor's website.
|
||||||
|
#
|
||||||
|
# Vilor's website is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# Vilor's website is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
include config.mk |
||||||
|
|
||||||
|
DIRS := $(shell find $(SRCDIR)/pages/* -type d | sed 's/$(SRCDIR)\/pages/$(OUTDIR)/')
|
||||||
|
|
||||||
|
SRCPAGES := $(shell find $(SRCDIR)/pages/* -name '*.scm')
|
||||||
|
SRCSTYLES := $(shell find $(SRCDIR)/styles/* -name '*.scm')
|
||||||
|
SRCJS := $(shell find $(SRCDIR)/scripts/* -name '*.js')
|
||||||
|
|
||||||
|
all: $(OUTDIR) $(STATICDIR) pages styles js |
||||||
|
|
||||||
|
pages: $(SRCPAGES) |
||||||
|
for page in $(SRCPAGES) ; do \
|
||||||
|
$(SCHEME) $(SCHEMEFLAGS) $$page \
|
||||||
|
| sed -f scripts/minify-html.sed \
|
||||||
|
> $$(echo $$page | sed 's/.*\/pages/dist/' | sed 's/scm/xhtml/') \
|
||||||
|
; done
|
||||||
|
|
||||||
|
styles: $(SRCSTYLES) |
||||||
|
for style in $(SRCSTYLES) ; do \
|
||||||
|
$(SCHEME) $(SCHEMEFLAGS) $$style \
|
||||||
|
> $$(echo $$style | sed 's/.*\/styles/dist/' | sed 's/scm/css/') \
|
||||||
|
; done
|
||||||
|
|
||||||
|
js: $(SRCJS) |
||||||
|
for script in $(SRCJS) ; do \
|
||||||
|
cp $$script $$(echo $$script | sed 's/.*\/scripts/dist/') \
|
||||||
|
; done
|
||||||
|
|
||||||
|
$(OUTDIR): |
||||||
|
mkdir -p $(OUTDIR)
|
||||||
|
mkdir -p $(DIRS)
|
||||||
|
|
||||||
|
$(STATICDIR): $(OUTDIR) |
||||||
|
cp -rf $@/* $< || echo $(STATICDIR) "dir is empty"
|
||||||
|
cp COPYING dist/
|
||||||
|
|
||||||
|
clean: |
||||||
|
rm -rf $(OUTDIR)
|
||||||
|
|
||||||
|
.PHONY: all $(OUTDIR) $(STATICDIR) clean |
@ -0,0 +1,23 @@ |
|||||||
|
# Copyright (C) 2022 Ivan Polyakov
|
||||||
|
#
|
||||||
|
# This file is part of vilor's website.
|
||||||
|
#
|
||||||
|
# Vilor's website is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# Vilor's website is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
SCHEME=csi
|
||||||
|
SCHEMEFLAGS=-s
|
||||||
|
|
||||||
|
SRCDIR=src
|
||||||
|
STATICDIR=public
|
||||||
|
OUTDIR=dist
|
@ -1,25 +0,0 @@ |
|||||||
;; Copyright (C) 2022 Ivan Polyakov |
|
||||||
;; |
|
||||||
;; This file is part of vilor's website. |
|
||||||
;; |
|
||||||
;; Vilor's website is free software: you can redistribute it and/or modify |
|
||||||
;; it under the terms of the GNU General Public License as published by |
|
||||||
;; the Free Software Foundation, either version 3 of the License, or |
|
||||||
;; (at your option) any later version. |
|
||||||
;; |
|
||||||
;; Vilor's website is distributed in the hope that it will be useful, |
|
||||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
;; GNU General Public License for more details. |
|
||||||
;; |
|
||||||
;; You should have received a copy of the GNU General Public License |
|
||||||
;; along with this program. If not, see <https://www.gnu.org/licenses/>. |
|
||||||
|
|
||||||
() |
|
||||||
`((xhtml-1.0-strict) |
|
||||||
(html (@ (xmlns "http://www.w3.org/1999/xhtml") (xml:lang "en") (lang "en")) |
|
||||||
(head |
|
||||||
(meta (@ (http-equiv "Content-Type") (content "text/html; charset=ascii"))) |
|
||||||
(link (@ (rel "stylesheet") (href "/style.css"))) |
|
||||||
(title ,($ 'title))) |
|
||||||
(body (inject ,contents)))) |
|
@ -1,52 +0,0 @@ |
|||||||
;; Copyright (C) 2022 Ivan Polyakov |
|
||||||
;; |
|
||||||
;; This file is part of vilor's website. |
|
||||||
;; |
|
||||||
;; Vilor's website is free software: you can redistribute it and/or modify |
|
||||||
;; it under the terms of the GNU General Public License as published by |
|
||||||
;; the Free Software Foundation, either version 3 of the License, or |
|
||||||
;; (at your option) any later version. |
|
||||||
;; |
|
||||||
;; Vilor's website is distributed in the hope that it will be useful, |
|
||||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
;; GNU General Public License for more details. |
|
||||||
;; |
|
||||||
;; You should have received a copy of the GNU General Public License |
|
||||||
;; along with this program. If not, see <https://www.gnu.org/licenses/>. |
|
||||||
|
|
||||||
() |
|
||||||
`((xhtml-1.0-strict) |
|
||||||
(html (@ (xmlns "http://www.w3.org/1999/xhtml") (xml:lang "en") (lang "en")) |
|
||||||
(head |
|
||||||
(meta (@ (http-equiv "Content-Type") (content "text/html; charset=ascii"))) |
|
||||||
(link (@ (rel "stylesheet") (href "/style.css"))) |
|
||||||
(title ,($ 'title))) |
|
||||||
(body |
|
||||||
(div (@ (class "wrapper")) |
|
||||||
(div (@ (class "header")) |
|
||||||
(div (@ (class "container")) |
|
||||||
(h4 (@ (class "header__logo")) vilor) |
|
||||||
(ul (@ (class "header__nav")) |
|
||||||
(li (a (@ (href "/index.html")) "Home")) |
|
||||||
(li (a (@ (href "/webapps/index.html")) "Web Apps")) |
|
||||||
(li (a (@ (href "http://31.184.254.176:8078/")) "Git")) |
|
||||||
(li (a (@ (href "/contacts.html")) "Contacts"))))) |
|
||||||
|
|
||||||
(div (@ (class "content container")) |
|
||||||
(h1 (@ (class "content__title")) ,($ 'page-name)) |
|
||||||
(div (@ (class "content__description")) ,($ 'page-desc)) |
|
||||||
(inject ,contents)) |
|
||||||
|
|
||||||
(div (@ (class "footer")) |
|
||||||
(div (@ (class "footer__authors")) |
|
||||||
(div "Content: " (a (@ (href "/contacts.html")) "Ivan Polyakov")) |
|
||||||
(div "Design: " (a (@ (href "https://t.me/olnaolna")) "Olga Revenkova"))) |
|
||||||
(div (@ (class "links")) |
|
||||||
(a (@ (href "http://validator.w3.org/check?uri=referer")) |
|
||||||
(img (@ (src "http://www.w3.org/Icons/valid-xhtml10") (alt "Valid XHTML 1.0 Strict") (height 31) (width 88)))) |
|
||||||
(a (@ (href "http://31.184.254.176:8078/vilor/website/")) |
|
||||||
"Source code") |
|
||||||
(a (@ (href "http://www.anybrowser.org/campaign/")) |
|
||||||
(img (@ (src "/img/anybrowser3.jpg") |
|
||||||
(alt "Viewable With Any Browser")))))))))) |
|
After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
@ -0,0 +1,38 @@ |
|||||||
|
;; Copyright (C) 2022 Ivan Polyakov |
||||||
|
;; |
||||||
|
;; This file is part of vilor's website. |
||||||
|
;; |
||||||
|
;; Vilor's website is free software: you can redistribute it and/or modify |
||||||
|
;; it under the terms of the GNU General Public License as published by |
||||||
|
;; the Free Software Foundation, either version 3 of the License, or |
||||||
|
;; (at your option) any later version. |
||||||
|
;; |
||||||
|
;; Vilor's website is distributed in the hope that it will be useful, |
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
;; GNU General Public License for more details. |
||||||
|
;; |
||||||
|
;; You should have received a copy of the GNU General Public License |
||||||
|
;; along with this program. If not, see <https://www.gnu.org/licenses/>. |
||||||
|
|
||||||
|
(define footer-links |
||||||
|
'(("http://validator.w3.org/check?uri=referer" "XHTML 1.0") |
||||||
|
("https://call-cc.org/" "Made with Chicken Scheme") |
||||||
|
("http://31.184.254.176:8078/vilor/website/" "Source code") |
||||||
|
("http://www.anybrowser.org/campaign/" "Any Browser"))) |
||||||
|
|
||||||
|
(define footer |
||||||
|
`(div (@ (class "footer")) |
||||||
|
(div (@ (class "footer__authors")) |
||||||
|
(div "Content: " |
||||||
|
(a (@ (href "/contacts.xhtml")) "Ivan Polyakov")) |
||||||
|
(div "Design: " |
||||||
|
(a (@ (href "https://t.me/olnaolna")) "Olga Revenkova"))) |
||||||
|
|
||||||
|
(div (@ (class "footer__links")) |
||||||
|
,(let ((idx -1)) |
||||||
|
(map (lambda (l) |
||||||
|
(set! idx (+ idx 1)) |
||||||
|
`(,(if (> idx 0) '(" | ") '()) |
||||||
|
(a (@ (href ,(car l))) ,(cdr l)))) |
||||||
|
footer-links))))) |
Before Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1,55 @@ |
|||||||
|
;; Copyright (C) 2022 Ivan Polyakov |
||||||
|
;; |
||||||
|
;; This file is part of vilor's website. |
||||||
|
;; |
||||||
|
;; Vilor's website is free software: you can redistribute it and/or modify |
||||||
|
;; it under the terms of the GNU General Public License as published by |
||||||
|
;; the Free Software Foundation, either version 3 of the License, or |
||||||
|
;; (at your option) any later version. |
||||||
|
;; |
||||||
|
;; Vilor's website is distributed in the hope that it will be useful, |
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
;; GNU General Public License for more details. |
||||||
|
;; |
||||||
|
;; You should have received a copy of the GNU General Public License |
||||||
|
;; along with this program. If not, see <https://www.gnu.org/licenses/>. |
||||||
|
|
||||||
|
(import sxml-serializer) |
||||||
|
|
||||||
|
(load "./src/general.scm") |
||||||
|
|
||||||
|
(define ideas-list |
||||||
|
'(("Desktop YouTube client" |
||||||
|
("Google is peace of shit. Repository: " '(a (@ (href "https://notabug.org/vilor/fltube")) "notabug.org/vilor/fltube")) |
||||||
|
"Work in progress") |
||||||
|
|
||||||
|
("System calls translator and binary format converter" |
||||||
|
|
||||||
|
("On computers with the same CPU architecture, the executable always has the same CPU instructions, " |
||||||
|
"and the only difference is in the format of the executable (such as ELF and PE) and system calls. " |
||||||
|
"So, if we convert the executable (and the libraries used, of course) and translate system calls " |
||||||
|
"from the source OS to the target, we can run any software on any OS.") |
||||||
|
|
||||||
|
"Suspended, there are developments.") |
||||||
|
|
||||||
|
("Open source ArmA" "ArmA is the battle simulator" "Idea"))) |
||||||
|
|
||||||
|
(define title "vilor/webapps") |
||||||
|
(define page-name "webapps") |
||||||
|
(define page-desc '()) |
||||||
|
|
||||||
|
(define webapps-links |
||||||
|
'(("scrollbar.xhtml" "Scrollbar styling"))) |
||||||
|
|
||||||
|
(define content |
||||||
|
`(div (@ (class "webapps")) |
||||||
|
(ul |
||||||
|
,(map (lambda (l) |
||||||
|
`(li (a (@ (href ,(car l))) ,(cdr l)))) |
||||||
|
webapps-links)))) |
||||||
|
|
||||||
|
(load "./src/templates/default.scm") |
||||||
|
(display xhtml-1.0-doctype) |
||||||
|
(display (serialize-sxml |
||||||
|
(default-tpl title content page-name page-desc))) |
@ -1,227 +0,0 @@ |
|||||||
;; Copyright (C) 2022 Ivan Polyakov |
|
||||||
;; |
|
||||||
;; This file is part of vilor's website. |
|
||||||
;; |
|
||||||
;; Vilor's website is free software: you can redistribute it and/or modify |
|
||||||
;; it under the terms of the GNU General Public License as published by |
|
||||||
;; the Free Software Foundation, either version 3 of the License, or |
|
||||||
;; (at your option) any later version. |
|
||||||
;; |
|
||||||
;; Vilor's website is distributed in the hope that it will be useful, |
|
||||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
;; GNU General Public License for more details. |
|
||||||
;; |
|
||||||
;; You should have received a copy of the GNU General Public License |
|
||||||
;; along with this program. If not, see <https://www.gnu.org/licenses/>. |
|
||||||
|
|
||||||
() |
|
||||||
'((|html, body| |
|
||||||
(height 100%) |
|
||||||
(margin 0)) |
|
||||||
|
|
||||||
(|body| |
|
||||||
(font-family "Arial, sans-serif") |
|
||||||
(color white) |
|
||||||
(background-color "#3b4252")) |
|
||||||
|
|
||||||
(|.wrapper| |
|
||||||
(position relative) |
|
||||||
(min-height 100%)) |
|
||||||
|
|
||||||
(|.container| |
|
||||||
(max-width 937px) |
|
||||||
(padding 0 16px) |
|
||||||
(margin 0 auto)) |
|
||||||
|
|
||||||
(|a| |
|
||||||
(color white)) |
|
||||||
|
|
||||||
(|a:hover| |
|
||||||
(text-decoration none)) |
|
||||||
|
|
||||||
(|a:visited| |
|
||||||
(color "#bbb")) |
|
||||||
|
|
||||||
;; /general |
|
||||||
;; header |
|
||||||
|
|
||||||
(|.header| |
|
||||||
(background-color "#262d3e")) |
|
||||||
|
|
||||||
(|.header .container| |
|
||||||
(display flex) |
|
||||||
(justify-content space-between)) |
|
||||||
|
|
||||||
(|.header__logo| |
|
||||||
(display inline) |
|
||||||
(font-size 24px) |
|
||||||
(padding 8px 0) |
|
||||||
(margin 0)) |
|
||||||
|
|
||||||
(|.header__nav| |
|
||||||
(display inline) |
|
||||||
(list-style none) |
|
||||||
(font-size 16px) |
|
||||||
(padding 14px 0) |
|
||||||
(margin 0)) |
|
||||||
|
|
||||||
(|.header__nav li| |
|
||||||
(display inline)) |
|
||||||
|
|
||||||
;; /header |
|
||||||
;; content |
|
||||||
|
|
||||||
(|.content| |
|
||||||
(padding 32px 16px 138px 16px)) |
|
||||||
|
|
||||||
(|.content__title| |
|
||||||
(font-size 36px) |
|
||||||
(margin-top 0) |
|
||||||
(margin-bottom 12px)) |
|
||||||
|
|
||||||
(|.content__description| |
|
||||||
(font-size 20px) |
|
||||||
(margin-bottom 24px)) |
|
||||||
|
|
||||||
(|.content__description .note| |
|
||||||
(font-size 16px) |
|
||||||
(margin-top 16px)) |
|
||||||
|
|
||||||
(|.content__description p| |
|
||||||
(margin 0)) |
|
||||||
|
|
||||||
;; /content |
|
||||||
;; footer |
|
||||||
|
|
||||||
(|.footer| |
|
||||||
(position absolute) |
|
||||||
(bottom 0) |
|
||||||
(width 100%) |
|
||||||
(text-align center) |
|
||||||
(background-color "#262d3e") |
|
||||||
(padding 14px 0)) |
|
||||||
|
|
||||||
(|.footer__authors| |
|
||||||
(margin-bottom 5px)) |
|
||||||
|
|
||||||
(|.footer .links a| |
|
||||||
(margin "0 5px")) |
|
||||||
|
|
||||||
;; /footer |
|
||||||
|
|
||||||
(|.under-construction| |
|
||||||
(max-width 300px) |
|
||||||
(text-align center) |
|
||||||
(margin "0 auto")) |
|
||||||
|
|
||||||
(|.ideas table| |
|
||||||
(margin "0 auto")) |
|
||||||
|
|
||||||
(|table, th, td| |
|
||||||
(border "1px solid black")) |
|
||||||
|
|
||||||
(|th, td| |
|
||||||
(padding "5px")) |
|
||||||
|
|
||||||
(|.scrollbar-app form| |
|
||||||
(margin-bottom 10px)) |
|
||||||
|
|
||||||
(|.scrollbar-app form fieldset| |
|
||||||
(border none) |
|
||||||
(padding 0) |
|
||||||
(margin 0)) |
|
||||||
|
|
||||||
(|.scrollbar-app form .scrollbar-app__panel| |
|
||||||
(margin-bottom 16px)) |
|
||||||
|
|
||||||
(|.scrollbar-app form h3| |
|
||||||
(font-size 24px) |
|
||||||
(margin 0)) |
|
||||||
|
|
||||||
(|.scrollbar-app form h4| |
|
||||||
(font-size 20px) |
|
||||||
(margin 12px 0 0 0)) |
|
||||||
|
|
||||||
(|.scrollbar-app__panel, .scrollbar-app form .scrollbar-app__panel| |
|
||||||
(background-color "#585F70") |
|
||||||
(padding 12px)) |
|
||||||
|
|
||||||
(|.scrollbar-app__input| |
|
||||||
(display inline-block) |
|
||||||
(display inline-flex) |
|
||||||
(align-items center) |
|
||||||
(padding 8px)) |
|
||||||
|
|
||||||
(|.scrollbar-app textarea| |
|
||||||
("--sb-w" 10px) |
|
||||||
("--thumb-clr" "#9b3e46") |
|
||||||
("--thumb-bstl" "solid") |
|
||||||
("--thumb-bw" 1px) |
|
||||||
("--thumb-bclr" white) |
|
||||||
("--thumb-brad" 8px) |
|
||||||
("--track-clr" "#3b4252") |
|
||||||
("--track-brad" 8px) |
|
||||||
("--track-mt" 0px) |
|
||||||
("--track-mb" 0px) |
|
||||||
(height 300px) |
|
||||||
(font-size 32px) |
|
||||||
(overflow-y scroll) |
|
||||||
(scrollbar-width "var(--sb-w)") |
|
||||||
(scrollbar-color "var(--thumb-clr) var(--track-clr)") |
|
||||||
(margin-top 60px)) |
|
||||||
|
|
||||||
(|.scrollbar-app textarea::-webkit-scrollbar| |
|
||||||
(width "var(--sb-w)") |
|
||||||
(margin-bottom 5px)) |
|
||||||
|
|
||||||
(|.scrollbar-app textarea::-webkit-scrollbar-thumb| |
|
||||||
(background-color "var(--thumb-clr)") |
|
||||||
(border-style "var(--thumb-bstl)") |
|
||||||
(border-width "var(--thumb-bw)") |
|
||||||
(border-color "var(--thumb-bclr)") |
|
||||||
(border-radius "var(--thumb-brad)")) |
|
||||||
|
|
||||||
(|.scrollbar-app textarea::-webkit-scrollbar-track| |
|
||||||
(background-color "var(--track-clr)") |
|
||||||
(border-radius "var(--track-brad)") |
|
||||||
(margin-top "var(--track-mt)") |
|
||||||
(margin-bottom "var(--track-mb)")) |
|
||||||
|
|
||||||
(|.scrollbar-app__buttons| |
|
||||||
(margin-top 24px)) |
|
||||||
|
|
||||||
(|.scrollbar-app__buttons button| |
|
||||||
(min-width 149px) |
|
||||||
(font-size 18px) |
|
||||||
(background-color "#ced9f3") |
|
||||||
(padding 14px 25px) |
|
||||||
(border none) |
|
||||||
(border-radius 4px) |
|
||||||
(outline none) |
|
||||||
(margin-right 16px)) |
|
||||||
|
|
||||||
(|.scrollbar-app__buttons button:hover| |
|
||||||
(background-color "#a2b8ed")) |
|
||||||
|
|
||||||
(|.rad-app .rtable| |
|
||||||
(width 100%)) |
|
||||||
|
|
||||||
(|.rad-app table td > div| |
|
||||||
(resize horizontal) |
|
||||||
(overflow auto)) |
|
||||||
|
|
||||||
(|.rad-app .rad-app__tree ul| |
|
||||||
(list-style none) |
|
||||||
(padding-left 10px)) |
|
||||||
|
|
||||||
(|.rad-app .rad-app__tree ul li| |
|
||||||
(padding-left 5px) |
|
||||||
(border-left "1px solid #9b3e46")) |
|
||||||
|
|
||||||
(|.rad-app .rad-app__tree ul li:hover| |
|
||||||
(background-color "#9b3e46")) |
|
||||||
|
|
||||||
(|.rad-app__viewport| |
|
||||||
(color black) |
|
||||||
(background-color white))) |
|
@ -0,0 +1,111 @@ |
|||||||
|
;; Copyright (C) 2022 Ivan Polyakov |
||||||
|
;; |
||||||
|
;; This file is part of vilor's website. |
||||||
|
;; |
||||||
|
;; Vilor's website is free software: you can redistribute it and/or modify |
||||||
|
;; it under the terms of the GNU General Public License as published by |
||||||
|
;; the Free Software Foundation, either version 3 of the License, or |
||||||
|
;; (at your option) any later version. |
||||||
|
;; |
||||||
|
;; Vilor's website is distributed in the hope that it will be useful, |
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
;; GNU General Public License for more details. |
||||||
|
;; |
||||||
|
;; You should have received a copy of the GNU General Public License |
||||||
|
;; along with this program. If not, see <https://www.gnu.org/licenses/>. |
||||||
|
|
||||||
|
(import scss) |
||||||
|
|
||||||
|
(define global-styles |
||||||
|
`(css+ |
||||||
|
(|html, body| |
||||||
|
(height 100%) |
||||||
|
(margin 0)) |
||||||
|
|
||||||
|
(|body| |
||||||
|
(font-family "Arial, sans-serif") |
||||||
|
(color white) |
||||||
|
(background-color "#3b4252")) |
||||||
|
|
||||||
|
(a |
||||||
|
(color white) |
||||||
|
|
||||||
|
((& :hover) |
||||||
|
(text-decoration none)) |
||||||
|
|
||||||
|
((& :visited) |
||||||
|
(color "#bbb"))) |
||||||
|
|
||||||
|
(.wrapper |
||||||
|
(position relative) |
||||||
|
(min-height 100%) |
||||||
|
|
||||||
|
((// > hr) |
||||||
|
(display none))) |
||||||
|
|
||||||
|
(.container |
||||||
|
(max-width 937px) |
||||||
|
(padding 0 16px) |
||||||
|
(margin 0 auto)) |
||||||
|
|
||||||
|
(.under-construction |
||||||
|
(max-width 300px) |
||||||
|
(text-align center) |
||||||
|
(margin 0 auto)) |
||||||
|
|
||||||
|
(.header |
||||||
|
(background-color "#262d3e") |
||||||
|
|
||||||
|
((// .container) |
||||||
|
(display flex) |
||||||
|
(justify-content space-between)) |
||||||
|
|
||||||
|
((// .header__logo) |
||||||
|
(display inline) |
||||||
|
(font-size 24px) |
||||||
|
(padding 8px 0) |
||||||
|
(margin 0)) |
||||||
|
|
||||||
|
((// .header__nav) |
||||||
|
(display inline) |
||||||
|
(list-style none) |
||||||
|
(fonst-size 16px) |
||||||
|
(padding 14px 0) |
||||||
|
(margin 0))) |
||||||
|
|
||||||
|
(.content |
||||||
|
(padding 32px 16px 138px 16px) |
||||||
|
|
||||||
|
((// .content__title) |
||||||
|
(font-size 36px) |
||||||
|
(margin-top 0) |
||||||
|
(margin-bottom 12px)) |
||||||
|
|
||||||
|
((// .content__description) |
||||||
|
(font-size 20px) |
||||||
|
(margin-bottom 24px) |
||||||
|
|
||||||
|
((// .note) |
||||||
|
(font-size 16px) |
||||||
|
(margin-top 16px)) |
||||||
|
|
||||||
|
((// p) |
||||||
|
(margin 0)))) |
||||||
|
|
||||||
|
(.footer |
||||||
|
(position absolute) |
||||||
|
(bottom 0) |
||||||
|
(width 100%) |
||||||
|
(text-align center) |
||||||
|
(background-color "#262d3e") |
||||||
|
(padding 14px 0) |
||||||
|
|
||||||
|
((// .footer__authors) |
||||||
|
(margin-bottom 15px) |
||||||
|
|
||||||
|
((// a) |
||||||
|
(margin 0 5px)))))) |
||||||
|
|
||||||
|
(write-css global-styles) |
||||||
|
(newline) |
@ -0,0 +1,104 @@ |
|||||||
|
;; Copyright (C) 2022 Ivan Polyakov |
||||||
|
;; |
||||||
|
;; This file is part of vilor's website. |
||||||
|
;; |
||||||
|
;; Vilor's website is free software: you can redistribute it and/or modify |
||||||
|
;; it under the terms of the GNU General Public License as published by |
||||||
|
;; the Free Software Foundation, either version 3 of the License, or |
||||||
|
;; (at your option) any later version. |
||||||
|
;; |
||||||
|
;; Vilor's website is distributed in the hope that it will be useful, |
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
;; GNU General Public License for more details. |
||||||
|
;; |
||||||
|
;; You should have received a copy of the GNU General Public License |
||||||
|
;; along with this program. If not, see <https://www.gnu.org/licenses/>. |
||||||
|
|
||||||
|
(import scss) |
||||||
|
|
||||||
|
(define scrollbar-styles |
||||||
|
`(css+ |
||||||
|
(.scrollbar-app |
||||||
|
((// form) |
||||||
|
(margin-bottom 10px) |
||||||
|
|
||||||
|
((// fieldset) |
||||||
|
(border none) |
||||||
|
(padding 0) |
||||||
|
(margin 0)) |
||||||
|
|
||||||
|
((// .scrollbar-app__panel) |
||||||
|
(margin-bottom 16px)) |
||||||
|
|
||||||
|
((// h3) |
||||||
|
(font-size 24px) |
||||||
|
(margin 0)) |
||||||
|
|
||||||
|
((// h4) |
||||||
|
(font-size 20px) |
||||||
|
(margin 12px 0 0 0)) |
||||||
|
|
||||||
|
((// .scrollbar-app__input) |
||||||
|
(display inline-block) |
||||||
|
(display inline-flex) |
||||||
|
(align-items center) |
||||||
|
(padding 8px))) |
||||||
|
|
||||||
|
((// .scrollbar-app__panel) |
||||||
|
(background-color "#585f70") |
||||||
|
(padding 12px)) |
||||||
|
|
||||||
|
((// textarea) |
||||||
|
("--sb-w" 10px) |
||||||
|
("--thumb-clr" "#9b3e46") |
||||||
|
("--thumb-bstl" "solid") |
||||||
|
("--thumb-bw" 1px) |
||||||
|
("--thumb-bclr" white) |
||||||
|
("--thumb-brad" 8px) |
||||||
|
("--track-clr" "#3b4252") |
||||||
|
("--track-brad" 8px) |
||||||
|
("--track-mt" 0px) |
||||||
|
("--track-mb" 0px) |
||||||
|
(height 300px) |
||||||
|
(font-size 32px) |
||||||
|
(overflow-y scroll) |
||||||
|
(scrollbar-width "var(--sb-w)") |
||||||
|
(scrollbar-color "var(--thumb-clr) var(--track-clr)") |
||||||
|
(margin-top 60px) |
||||||
|
|
||||||
|
((& ::-webkit-scrollbar) |
||||||
|
(width "var(--sb-w)") |
||||||
|
(margin-bottom 5px)) |
||||||
|
|
||||||
|
((& ::-webkit-scrollbar-thumb) |
||||||
|
(background-color "var(--thumb-clr)") |
||||||
|
(border-style "var(--thumb-bstl)") |
||||||
|
(border-width "var(--thumb-bw)") |
||||||
|
(border-color "var(--thumb-bclr)") |
||||||
|
(border-radius "var(--thumb-brad)")) |
||||||
|
|
||||||
|
((& ::-webkit-scrollbar-track) |
||||||
|
(background-color "var(--track-clr)") |
||||||
|
(border-radius "var(--track-brad)") |
||||||
|
(margin-top "var(--track-mt)") |
||||||
|
(margin-bottom "var(--track-mb)"))) |
||||||
|
|
||||||
|
((// .scrollbar-app__buttons) |
||||||
|
(margin-top 24px) |
||||||
|
|
||||||
|
((// button) |
||||||
|
(min-width 149px) |
||||||
|
(font-size 18px) |
||||||
|
(background-color "#ced9f3") |
||||||
|
(padding 14px 25px) |
||||||
|
(border none) |
||||||
|
(border-radius 4px) |
||||||
|
(outline none) |
||||||
|
(margin-right 16px) |
||||||
|
|
||||||
|
((& :hover) |
||||||
|
(background-color "#a2b8ed"))))))) |
||||||
|
|
||||||
|
(write-css scrollbar-styles) |
||||||
|
(newline) |
@ -0,0 +1,39 @@ |
|||||||
|
;; Copyright (C) 2022 Ivan Polyakov |
||||||
|
;; |
||||||
|
;; This file is part of vilor's website. |
||||||
|
;; |
||||||
|
;; Vilor's website is free software: you can redistribute it and/or modify |
||||||
|
;; it under the terms of the GNU General Public License as published by |
||||||
|
;; the Free Software Foundation, either version 3 of the License, or |
||||||
|
;; (at your option) any later version. |
||||||
|
;; |
||||||
|
;; Vilor's website is distributed in the hope that it will be useful, |
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
;; GNU General Public License for more details. |
||||||
|
;; |
||||||
|
;; You should have received a copy of the GNU General Public License |
||||||
|
;; along with this program. If not, see <https://www.gnu.org/licenses/>. |
||||||
|
|
||||||
|
(define (clean-tpl |
||||||
|
page-title |
||||||
|
page-content |
||||||
|
#!optional (page-styles '()) (page-scripts '())) |
||||||
|
`(html (@ (xmlns "http://www.w3.org/1999/xhtml") |
||||||
|
(xml:lang "en") |
||||||
|
(lang "en")) |
||||||
|
(head |
||||||
|
(meta (@ (http-equiv "Content-Type") |
||||||
|
(content "text/html; charset=ascii"))) |
||||||
|
(meta (@ (name "viewport") |
||||||
|
(content "width=device-width, initial-scale=1"))) |
||||||
|
|
||||||
|
,(map (lambda (l) |
||||||
|
`(link (@ (rel "stylesheet") (href ,l)))) |
||||||
|
page-styles) |
||||||
|
|
||||||
|
(title ,page-title)) |
||||||
|
(body |
||||||
|
,page-content |
||||||
|
|
||||||
|
,(map (lambda (l) `(script (@ (src ,l)))) page-scripts)))) |
@ -0,0 +1,55 @@ |
|||||||
|
;; Copyright (C) 2022 Ivan Polyakov |
||||||
|
;; |
||||||
|
;; This file is part of vilor's website. |
||||||
|
;; |
||||||
|
;; Vilor's website is free software: you can redistribute it and/or modify |
||||||
|
;; it under the terms of the GNU General Public License as published by |
||||||
|
;; the Free Software Foundation, either version 3 of the License, or |
||||||
|
;; (at your option) any later version. |
||||||
|
;; |
||||||
|
;; Vilor's website is distributed in the hope that it will be useful, |
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
;; GNU General Public License for more details. |
||||||
|
;; |
||||||
|
;; You should have received a copy of the GNU General Public License |
||||||
|
;; along with this program. If not, see <https://www.gnu.org/licenses/>. |
||||||
|
|
||||||
|
(load "./src/components/header.scm") |
||||||
|
(load "./src/components/footer.scm") |
||||||
|
|
||||||
|
(define (default-tpl |
||||||
|
page-title |
||||||
|
page-content |
||||||
|
page-name |
||||||
|
page-desc |
||||||
|
#!optional (page-styles '()) (page-scripts '())) |
||||||
|
`(html (@ (xmlns "http://www.w3.org/1999/xhtml") |
||||||
|
(xml:lang "en") |
||||||
|
(lang "en")) |
||||||
|
(head |
||||||
|
(meta (@ (http-equiv "Content-Type") |
||||||
|
(content "text/html; charset=ascii"))) |
||||||
|
(meta (@ (name "viewport") |
||||||
|
(content "width=device-width, initial-scale=1"))) |
||||||
|
|
||||||
|
,(map (lambda (l) |
||||||
|
`(link (@ (rel "stylesheet") (href ,l)))) |
||||||
|
page-styles) |
||||||
|
|
||||||
|
(link (@ (rel "stylesheet") (href "/style.css"))) |
||||||
|
|
||||||
|
(title ,title)) |
||||||
|
(body |
||||||
|
(div (@ (class "wrapper")) |
||||||
|
,header |
||||||
|
(hr) |
||||||
|
|
||||||
|
(div (@ (class "content container")) |
||||||
|
(h1 (@ (class "content__title")) ,page-name) |
||||||
|
(div (@ (class "content__description")) ,page-desc) |
||||||
|
,page-content) |
||||||
|
|
||||||
|
(hr) |
||||||
|
,footer |
||||||
|
,(map (lambda (l) `(script (@ (src ,l)))) page-scripts))))) |
Loading…
Reference in new issue