forked from SPC/spc-site
Refactor masters
This commit is contained in:
parent
a85322231e
commit
56822a3644
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Максим Сергеевич Долгоносов
|
name: Максим Сергеевич Долгоносов
|
||||||
id: Dolgonosov
|
id: Dolgonosov
|
||||||
photo: images/mentors/Dolgonosov.jpg
|
image: images/mentors/Dolgonosov.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Константин Викторович Герценбергер
|
name: Константин Викторович Герценбергер
|
||||||
id: Gertsenberger
|
id: Gertsenberger
|
||||||
photo: images/mentors/Gertsenberger.jpg
|
image: images/mentors/Gertsenberger.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
#### Организация
|
#### Организация
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Roland Grinis
|
name: Roland Grinis
|
||||||
id: Grinis
|
id: Grinis
|
||||||
photo: images/mentors/Grinis.jpg
|
image: images/mentors/Grinis.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Олег Евгеньевич Калашев
|
name: Олег Евгеньевич Калашев
|
||||||
id: Kalashev
|
id: Kalashev
|
||||||
photo: images/mentors/Kalashev.jpg
|
image: images/mentors/Kalashev.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Igor Khokhriakov
|
name: Igor Khokhriakov
|
||||||
id: Khokhriakov
|
id: Khokhriakov
|
||||||
photo: images/mentors/Khokhriakov.jpg
|
image: images/mentors/Khokhriakov.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Петр Климай
|
name: Петр Климай
|
||||||
id: Klimai
|
id: Klimai
|
||||||
photo: images/mentors/Klimai.jpg
|
image: images/mentors/Klimai.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Dmitriy Kostunin
|
name: Dmitriy Kostunin
|
||||||
id: Kostunin
|
id: Kostunin
|
||||||
photo: images/mentors/Kostunin.jpg
|
image: images/mentors/Kostunin.jpg
|
||||||
language: ru
|
language: ru
|
||||||
published: false
|
published: false
|
||||||
---
|
---
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Александр Нозик
|
name: Александр Нозик
|
||||||
id: Nozik
|
id: Nozik
|
||||||
photo: images/mentors/Nozik.jpg
|
image: images/mentors/Nozik.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Дмитрий Робертович Олийниченко
|
name: Дмитрий Робертович Олийниченко
|
||||||
id: Oliinychenko
|
id: Oliinychenko
|
||||||
photo: images/mentors/Oliinychenko.jpg
|
image: images/mentors/Oliinychenko.jpg
|
||||||
language: ru
|
language: ru
|
||||||
published: false
|
published: false
|
||||||
---
|
---
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Владислав Сергеевич Пантуев
|
name: Владислав Сергеевич Пантуев
|
||||||
id: Pantuev
|
id: Pantuev
|
||||||
photo: images/mentors/Pantuev.jpg
|
image: images/mentors/Pantuev.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Игорь Анатольевич Пшеничнов
|
name: Игорь Анатольевич Пшеничнов
|
||||||
id: Pshenichnov
|
id: Pshenichnov
|
||||||
photo: images/mentors/Pshenichnov.jpg
|
image: images/mentors/Pshenichnov.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Лев Михайлович Шагалов
|
name: Лев Михайлович Шагалов
|
||||||
id: Shagalov
|
id: Shagalov
|
||||||
photo: images/mentors/Shagalov.jpg
|
image: images/mentors/Shagalov.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Айно Константиновна Скасырская
|
name: Айно Константиновна Скасырская
|
||||||
id: Skasyrskaya
|
id: Skasyrskaya
|
||||||
photo: images/mentors/Skasyrskaya.jpg
|
image: images/mentors/Skasyrskaya.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Ильмир Усманов
|
name: Ильмир Усманов
|
||||||
id: Usmanov
|
id: Usmanov
|
||||||
photo: images/mentors/Usmanov.jpg
|
image: images/mentors/Usmanov.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Алексей Викторович Зиновьев
|
name: Алексей Викторович Зиновьев
|
||||||
id: Zinoviev
|
id: Zinoviev
|
||||||
photo: images/mentors/Zinoviev.jpg
|
image: images/mentors/Zinoviev.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
#### Организация
|
#### Организация
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Иван Харук
|
name: Иван Харук
|
||||||
id: Kharuk
|
id: Kharuk
|
||||||
photo: images/mentors/Kharuk.jpg
|
image: images/mentors/Kharuk.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Виталий Кондратов
|
name: Виталий Кондратов
|
||||||
id: Kondratov
|
id: Kondratov
|
||||||
photo: images/mentors/Kondratov.jpg
|
image:
|
||||||
|
path: images/mentors/Kondratov.jpg
|
||||||
|
position: right
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Ирина Геннадьевна Низовцева
|
name: Ирина Геннадьевна Низовцева
|
||||||
id: Nizovtseva
|
id: Nizovtseva
|
||||||
photo: images/mentors/Nizovtseva.jpg
|
image: images/mentors/Nizovtseva.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
#### Биография
|
#### Биография
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Александр Светличный
|
name: Александр Светличный
|
||||||
id: Svetlichny
|
id: Svetlichny
|
||||||
photo: images/mentors/Svetlichny.jpg
|
image: images/mentors/Svetlichny.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
#### Организация
|
#### Организация
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
name: Полиграф Шариков
|
name: Полиграф Шариков
|
||||||
id: template
|
id: template
|
||||||
photo: images/mentors/Template.jpg
|
image: images/mentors/Template.jpg
|
||||||
published: false
|
published: false
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
@ -3,7 +3,7 @@ content_type: magprog_team
|
|||||||
name: Денис Айвазов
|
name: Денис Айвазов
|
||||||
id: Aivazov
|
id: Aivazov
|
||||||
order: 4
|
order: 4
|
||||||
photo: images/team/Aivazov.jpg
|
image: images/team/Aivazov.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
Консультант от ФПМИ
|
Консультант от ФПМИ
|
||||||
|
@ -3,7 +3,7 @@ content_type: magprog_team
|
|||||||
name: Татьяна Мухина
|
name: Татьяна Мухина
|
||||||
id: muhina
|
id: muhina
|
||||||
order: 3
|
order: 3
|
||||||
photo: images/team/muhina.jpg
|
image: images/team/muhina.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ content_type: magprog_team
|
|||||||
name: Александр Нозик
|
name: Александр Нозик
|
||||||
id: nozik
|
id: nozik
|
||||||
order: 1
|
order: 1
|
||||||
photo: images/mentors/Nozik.jpg
|
image: images/mentors/Nozik.jpg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
**Руководитель программы**
|
**Руководитель программы**
|
||||||
|
@ -3,7 +3,7 @@ content_type: magprog_team
|
|||||||
name: Александр Светличный
|
name: Александр Светличный
|
||||||
id: svetlichnii
|
id: svetlichnii
|
||||||
order: 2
|
order: 2
|
||||||
photo: images/team/svetlichny.jpeg
|
image: images/team/svetlichny.jpeg
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
|
||||||
|
659
src/main/kotlin/html5up/hyperspace/elements.kt
Normal file
659
src/main/kotlin/html5up/hyperspace/elements.kt
Normal file
@ -0,0 +1,659 @@
|
|||||||
|
package html5up.hyperspace
|
||||||
|
|
||||||
|
import kotlinx.html.*
|
||||||
|
|
||||||
|
fun FlowContent.elements() {
|
||||||
|
h1("major") { +"""Elements""" }
|
||||||
|
+"""<!-- Text -->"""
|
||||||
|
section {
|
||||||
|
h2 { +"""Text""" }
|
||||||
|
p {
|
||||||
|
+"""This is"""
|
||||||
|
b { +"""bold""" }
|
||||||
|
+"""and this is"""
|
||||||
|
strong { +"""strong""" }
|
||||||
|
+""". This is"""
|
||||||
|
i { +"""italic""" }
|
||||||
|
+"""and this is"""
|
||||||
|
em { +"""emphasized""" }
|
||||||
|
+""".
|
||||||
|
This is"""
|
||||||
|
sup { +"""superscript""" }
|
||||||
|
+"""text and this is"""
|
||||||
|
sub { +"""subscript""" }
|
||||||
|
+"""text.
|
||||||
|
This is"""
|
||||||
|
// u { +"""underlined""" }
|
||||||
|
+"""and this is code:"""
|
||||||
|
code { +"""for (;;) { ... }""" }
|
||||||
|
+""". Finally,"""
|
||||||
|
a {
|
||||||
|
href = "#"
|
||||||
|
+"""this is a link"""
|
||||||
|
}
|
||||||
|
+"""."""
|
||||||
|
}
|
||||||
|
hr {
|
||||||
|
}
|
||||||
|
p { +"""Nunc lacinia ante nunc ac lobortis. Interdum adipiscing gravida odio porttitor sem non mi integer non faucibus ornare mi ut ante amet placerat aliquet. Volutpat eu sed ante lacinia sapien lorem accumsan varius montes viverra nibh in adipiscing blandit tempus accumsan.""" }
|
||||||
|
hr {
|
||||||
|
}
|
||||||
|
h2 { +"""Heading Level 2""" }
|
||||||
|
h3 { +"""Heading Level 3""" }
|
||||||
|
h4 { +"""Heading Level 4""" }
|
||||||
|
hr {
|
||||||
|
}
|
||||||
|
h3 { +"""Blockquote""" }
|
||||||
|
blockQuote { +"""Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet nullam adipiscing eu felis.""" }
|
||||||
|
h3 { +"""Preformatted""" }
|
||||||
|
pre {
|
||||||
|
code {
|
||||||
|
+"""i = 0;
|
||||||
|
|
||||||
|
while (!deck.isInOrder()) {
|
||||||
|
print 'Iteration ' + i;
|
||||||
|
deck.shuffle();
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
print 'It took ' + i + ' iterations to sort the deck.';"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+"""<!-- Lists -->"""
|
||||||
|
section {
|
||||||
|
h2 { +"""Lists""" }
|
||||||
|
div("row") {
|
||||||
|
div("col-6 col-12-medium") {
|
||||||
|
h3 { +"""Unordered""" }
|
||||||
|
ul {
|
||||||
|
li { +"""Dolor pulvinar etiam.""" }
|
||||||
|
li { +"""Sagittis adipiscing.""" }
|
||||||
|
li { +"""Felis enim feugiat.""" }
|
||||||
|
}
|
||||||
|
h3 { +"""Alternate""" }
|
||||||
|
ul("alt") {
|
||||||
|
li { +"""Dolor pulvinar etiam.""" }
|
||||||
|
li { +"""Sagittis adipiscing.""" }
|
||||||
|
li { +"""Felis enim feugiat.""" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-6 col-12-medium") {
|
||||||
|
h3 { +"""Ordered""" }
|
||||||
|
ol {
|
||||||
|
li { +"""Dolor pulvinar etiam.""" }
|
||||||
|
li { +"""Etiam vel felis viverra.""" }
|
||||||
|
li { +"""Felis enim feugiat.""" }
|
||||||
|
li { +"""Dolor pulvinar etiam.""" }
|
||||||
|
li { +"""Etiam vel felis lorem.""" }
|
||||||
|
li { +"""Felis enim et feugiat.""" }
|
||||||
|
}
|
||||||
|
h3 { +"""Icons""" }
|
||||||
|
ul("icons") {
|
||||||
|
li {
|
||||||
|
a(classes = "icon brands fa-twitter") {
|
||||||
|
href = "#"
|
||||||
|
span("label") { +"""Twitter""" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "icon brands fa-facebook-f") {
|
||||||
|
href = "#"
|
||||||
|
span("label") { +"""Facebook""" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "icon brands fa-instagram") {
|
||||||
|
href = "#"
|
||||||
|
span("label") { +"""Instagram""" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "icon brands fa-github") {
|
||||||
|
href = "#"
|
||||||
|
span("label") { +"""Github""" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
h2 { +"""Actions""" }
|
||||||
|
div("row") {
|
||||||
|
div("col-6 col-12-medium") {
|
||||||
|
ul("actions") {
|
||||||
|
li {
|
||||||
|
a(classes = "button primary") {
|
||||||
|
href = "#"
|
||||||
|
+"""Default"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button") {
|
||||||
|
href = "#"
|
||||||
|
+"""Default"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul("actions small") {
|
||||||
|
li {
|
||||||
|
a(classes = "button primary small") {
|
||||||
|
href = "#"
|
||||||
|
+"""Small"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button small") {
|
||||||
|
href = "#"
|
||||||
|
+"""Small"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul("actions stacked") {
|
||||||
|
li {
|
||||||
|
a(classes = "button primary") {
|
||||||
|
href = "#"
|
||||||
|
+"""Default"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button") {
|
||||||
|
href = "#"
|
||||||
|
+"""Default"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul("actions stacked") {
|
||||||
|
li {
|
||||||
|
a(classes = "button primary small") {
|
||||||
|
href = "#"
|
||||||
|
+"""Small"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button small") {
|
||||||
|
href = "#"
|
||||||
|
+"""Small"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-6 col-12-medium") {
|
||||||
|
ul("actions stacked") {
|
||||||
|
li {
|
||||||
|
a(classes = "button primary fit") {
|
||||||
|
href = "#"
|
||||||
|
+"""Default"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button fit") {
|
||||||
|
href = "#"
|
||||||
|
+"""Default"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul("actions stacked") {
|
||||||
|
li {
|
||||||
|
a(classes = "button primary small fit") {
|
||||||
|
href = "#"
|
||||||
|
+"""Small"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button small fit") {
|
||||||
|
href = "#"
|
||||||
|
+"""Small"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+"""<!-- Table -->"""
|
||||||
|
section {
|
||||||
|
h2 { +"""Table""" }
|
||||||
|
h3 { +"""Default""" }
|
||||||
|
div("table-wrapper") {
|
||||||
|
table {
|
||||||
|
thead {
|
||||||
|
tr {
|
||||||
|
th { +"""Name""" }
|
||||||
|
th { +"""Description""" }
|
||||||
|
th { +"""Price""" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tbody {
|
||||||
|
tr {
|
||||||
|
td { +"""Item One""" }
|
||||||
|
td { +"""Ante turpis integer aliquet porttitor.""" }
|
||||||
|
td { +"""29.99""" }
|
||||||
|
}
|
||||||
|
tr {
|
||||||
|
td { +"""Item Two""" }
|
||||||
|
td { +"""Vis ac commodo adipiscing arcu aliquet.""" }
|
||||||
|
td { +"""19.99""" }
|
||||||
|
}
|
||||||
|
tr {
|
||||||
|
td { +"""Item Three""" }
|
||||||
|
td { +"""Morbi faucibus arcu accumsan lorem.""" }
|
||||||
|
td { +"""29.99""" }
|
||||||
|
}
|
||||||
|
tr {
|
||||||
|
td { +"""Item Four""" }
|
||||||
|
td { +"""Vitae integer tempus condimentum.""" }
|
||||||
|
td { +"""19.99""" }
|
||||||
|
}
|
||||||
|
tr {
|
||||||
|
td { +"""Item Five""" }
|
||||||
|
td { +"""Ante turpis integer aliquet porttitor.""" }
|
||||||
|
td { +"""29.99""" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tfoot {
|
||||||
|
tr {
|
||||||
|
td {
|
||||||
|
colSpan = "2"
|
||||||
|
}
|
||||||
|
td { +"""100.00""" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
h3 { +"""Alternate""" }
|
||||||
|
div("table-wrapper") {
|
||||||
|
table("alt") {
|
||||||
|
thead {
|
||||||
|
tr {
|
||||||
|
th { +"""Name""" }
|
||||||
|
th { +"""Description""" }
|
||||||
|
th { +"""Price""" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tbody {
|
||||||
|
tr {
|
||||||
|
td { +"""Item One""" }
|
||||||
|
td { +"""Ante turpis integer aliquet porttitor.""" }
|
||||||
|
td { +"""29.99""" }
|
||||||
|
}
|
||||||
|
tr {
|
||||||
|
td { +"""Item Two""" }
|
||||||
|
td { +"""Vis ac commodo adipiscing arcu aliquet.""" }
|
||||||
|
td { +"""19.99""" }
|
||||||
|
}
|
||||||
|
tr {
|
||||||
|
td { +"""Item Three""" }
|
||||||
|
td { +"""Morbi faucibus arcu accumsan lorem.""" }
|
||||||
|
td { +"""29.99""" }
|
||||||
|
}
|
||||||
|
tr {
|
||||||
|
td { +"""Item Four""" }
|
||||||
|
td { +"""Vitae integer tempus condimentum.""" }
|
||||||
|
td { +"""19.99""" }
|
||||||
|
}
|
||||||
|
tr {
|
||||||
|
td { +"""Item Five""" }
|
||||||
|
td { +"""Ante turpis integer aliquet porttitor.""" }
|
||||||
|
td { +"""29.99""" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tfoot {
|
||||||
|
tr {
|
||||||
|
td {
|
||||||
|
colSpan = "2"
|
||||||
|
}
|
||||||
|
td { +"""100.00""" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+"""<!-- Buttons -->"""
|
||||||
|
section {
|
||||||
|
h3 { +"""Buttons""" }
|
||||||
|
ul("actions") {
|
||||||
|
li {
|
||||||
|
a(classes = "button primary") {
|
||||||
|
href = "#"
|
||||||
|
+"""Primary"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button") {
|
||||||
|
href = "#"
|
||||||
|
+"""Default"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul("actions") {
|
||||||
|
li {
|
||||||
|
a(classes = "button large") {
|
||||||
|
href = "#"
|
||||||
|
+"""Large"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button") {
|
||||||
|
href = "#"
|
||||||
|
+"""Default"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button small") {
|
||||||
|
href = "#"
|
||||||
|
+"""Small"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul("actions fit") {
|
||||||
|
li {
|
||||||
|
a(classes = "button primary fit") {
|
||||||
|
href = "#"
|
||||||
|
+"""Fit"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button fit") {
|
||||||
|
href = "#"
|
||||||
|
+"""Fit"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button fit") {
|
||||||
|
href = "#"
|
||||||
|
+"""Fit"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul("actions fit small") {
|
||||||
|
li {
|
||||||
|
a(classes = "button primary fit small") {
|
||||||
|
href = "#"
|
||||||
|
+"""Fit + Small"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button fit small") {
|
||||||
|
href = "#"
|
||||||
|
+"""Fit + Small"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button fit small") {
|
||||||
|
href = "#"
|
||||||
|
+"""Fit + Small"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul("actions") {
|
||||||
|
li {
|
||||||
|
a(classes = "button primary icon solid fa-download") {
|
||||||
|
href = "#"
|
||||||
|
+"""Icon"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button icon solid fa-upload") {
|
||||||
|
href = "#"
|
||||||
|
+"""Icon"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
a(classes = "button icon solid fa-save") {
|
||||||
|
href = "#"
|
||||||
|
+"""Icon"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ul("actions") {
|
||||||
|
li {
|
||||||
|
span("button primary disabled") { +"""Disabled""" }
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
span("button disabled") { +"""Disabled""" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+"""<!-- Form -->"""
|
||||||
|
section {
|
||||||
|
h2 { +"""Form""" }
|
||||||
|
form {
|
||||||
|
method = FormMethod.post
|
||||||
|
action = "#"
|
||||||
|
div("row gtr-uniform") {
|
||||||
|
div("col-6 col-12-xsmall") {
|
||||||
|
input {
|
||||||
|
type = InputType.text
|
||||||
|
name = "demo-name"
|
||||||
|
id = "demo-name"
|
||||||
|
value = ""
|
||||||
|
placeholder = "Name"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-6 col-12-xsmall") {
|
||||||
|
input {
|
||||||
|
type = InputType.email
|
||||||
|
name = "demo-email"
|
||||||
|
id = "demo-email"
|
||||||
|
value = ""
|
||||||
|
placeholder = "Email"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-12") {
|
||||||
|
select {
|
||||||
|
name = "demo-category"
|
||||||
|
id = "demo-category"
|
||||||
|
option {
|
||||||
|
value = ""
|
||||||
|
+"""- Category -"""
|
||||||
|
}
|
||||||
|
option {
|
||||||
|
value = "1"
|
||||||
|
+"""Manufacturing"""
|
||||||
|
}
|
||||||
|
option {
|
||||||
|
value = "1"
|
||||||
|
+"""Shipping"""
|
||||||
|
}
|
||||||
|
option {
|
||||||
|
value = "1"
|
||||||
|
+"""Administration"""
|
||||||
|
}
|
||||||
|
option {
|
||||||
|
value = "1"
|
||||||
|
+"""Human Resources"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-4 col-12-small") {
|
||||||
|
input {
|
||||||
|
type = InputType.radio
|
||||||
|
id = "demo-priority-low"
|
||||||
|
name = "demo-priority"
|
||||||
|
checked = true
|
||||||
|
}
|
||||||
|
label {
|
||||||
|
htmlFor = "demo-priority-low"
|
||||||
|
+"""Low"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-4 col-12-small") {
|
||||||
|
input {
|
||||||
|
type = InputType.radio
|
||||||
|
id = "demo-priority-normal"
|
||||||
|
name = "demo-priority"
|
||||||
|
}
|
||||||
|
label {
|
||||||
|
htmlFor = "demo-priority-normal"
|
||||||
|
+"""Normal"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-4 col-12-small") {
|
||||||
|
input {
|
||||||
|
type = InputType.radio
|
||||||
|
id = "demo-priority-high"
|
||||||
|
name = "demo-priority"
|
||||||
|
}
|
||||||
|
label {
|
||||||
|
htmlFor = "demo-priority-high"
|
||||||
|
+"""High"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-6 col-12-small") {
|
||||||
|
input {
|
||||||
|
type = InputType.checkBox
|
||||||
|
id = "demo-copy"
|
||||||
|
name = "demo-copy"
|
||||||
|
}
|
||||||
|
label {
|
||||||
|
htmlFor = "demo-copy"
|
||||||
|
+"""Email me a copy"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-6 col-12-small") {
|
||||||
|
input {
|
||||||
|
type = InputType.checkBox
|
||||||
|
id = "demo-human"
|
||||||
|
name = "demo-human"
|
||||||
|
checked = true
|
||||||
|
}
|
||||||
|
label {
|
||||||
|
htmlFor = "demo-human"
|
||||||
|
+"""Not a robot"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-12") {
|
||||||
|
textArea {
|
||||||
|
name = "demo-message"
|
||||||
|
id = "demo-message"
|
||||||
|
placeholder = "Enter your message"
|
||||||
|
rows = "6"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-12") {
|
||||||
|
ul("actions") {
|
||||||
|
li {
|
||||||
|
input(classes = "primary") {
|
||||||
|
type = InputType.submit
|
||||||
|
value = "Send Message"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
input {
|
||||||
|
type = InputType.reset
|
||||||
|
value = "Reset"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+"""<!-- Image -->"""
|
||||||
|
section {
|
||||||
|
h2 { +"""Image""" }
|
||||||
|
h3 { +"""Fit""" }
|
||||||
|
div("box alt") {
|
||||||
|
div("row gtr-uniform") {
|
||||||
|
div("col-12") {
|
||||||
|
span("image fit") {
|
||||||
|
img {
|
||||||
|
src = "images/pic04.jpg"
|
||||||
|
alt = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-4") {
|
||||||
|
span("image fit") {
|
||||||
|
img {
|
||||||
|
src = "images/pic01.jpg"
|
||||||
|
alt = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-4") {
|
||||||
|
span("image fit") {
|
||||||
|
img {
|
||||||
|
src = "images/pic02.jpg"
|
||||||
|
alt = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-4") {
|
||||||
|
span("image fit") {
|
||||||
|
img {
|
||||||
|
src = "images/pic03.jpg"
|
||||||
|
alt = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-4") {
|
||||||
|
span("image fit") {
|
||||||
|
img {
|
||||||
|
src = "images/pic03.jpg"
|
||||||
|
alt = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-4") {
|
||||||
|
span("image fit") {
|
||||||
|
img {
|
||||||
|
src = "images/pic01.jpg"
|
||||||
|
alt = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-4") {
|
||||||
|
span("image fit") {
|
||||||
|
img {
|
||||||
|
src = "images/pic02.jpg"
|
||||||
|
alt = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-4") {
|
||||||
|
span("image fit") {
|
||||||
|
img {
|
||||||
|
src = "images/pic02.jpg"
|
||||||
|
alt = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-4") {
|
||||||
|
span("image fit") {
|
||||||
|
img {
|
||||||
|
src = "images/pic03.jpg"
|
||||||
|
alt = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div("col-4") {
|
||||||
|
span("image fit") {
|
||||||
|
img {
|
||||||
|
src = "images/pic01.jpg"
|
||||||
|
alt = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
h3 { +"""Left & Right""" }
|
||||||
|
p {
|
||||||
|
span("image left") {
|
||||||
|
img {
|
||||||
|
src = "images/pic05.jpg"
|
||||||
|
alt = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+"""Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent."""
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
span("image right") {
|
||||||
|
img {
|
||||||
|
src = "images/pic06.jpg"
|
||||||
|
alt = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+"""Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent tincidunt felis sagittis eget. tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan eu faucibus. Integer ac pellentesque praesent."""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -41,6 +41,9 @@ import kotlin.collections.set
|
|||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
private val HtmlData.imagePath: String? get() = meta["image"]?.string ?: meta["image.path"].string
|
||||||
|
private val HtmlData.name: String get() = meta["name"].string ?: error("Name not found")
|
||||||
|
|
||||||
class MagProgSection(
|
class MagProgSection(
|
||||||
val id: String,
|
val id: String,
|
||||||
val title: String,
|
val title: String,
|
||||||
@ -119,13 +122,13 @@ context(PageContext) private fun FlowContent.partners() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Person(val data: HtmlData) : HtmlData by data {
|
//class Person(val data: HtmlData) : HtmlData by data {
|
||||||
val name: String by meta.string { error("Mentor name is not defined") }
|
// val name: String by meta.string { error("Mentor name is not defined") }
|
||||||
val photo: String? by meta.string()
|
// val photo: String? by meta.string()
|
||||||
}
|
//}
|
||||||
|
|
||||||
context(PageContext) private fun FlowContent.team() {
|
context(PageContext) private fun FlowContent.team() {
|
||||||
val team = findByType("magprog_team").map { Person(it.value) }.sortedBy { it.order }
|
val team = findByType("magprog_team").values.sortedBy { it.order }
|
||||||
|
|
||||||
div("inner") {
|
div("inner") {
|
||||||
h2 { +"Команда" }
|
h2 { +"Команда" }
|
||||||
@ -133,14 +136,14 @@ context(PageContext) private fun FlowContent.team() {
|
|||||||
team.forEach { member ->
|
team.forEach { member ->
|
||||||
section {
|
section {
|
||||||
a {
|
a {
|
||||||
val imagePath = member.photo?.let { resolveRef(it) }
|
val imagePath = member.imagePath?.let { resolveRef(it) }
|
||||||
img(
|
img(
|
||||||
classes = "icon major",
|
classes = "icon major",
|
||||||
src = imagePath,
|
src = imagePath,
|
||||||
alt = imagePath
|
alt = imagePath
|
||||||
) {
|
) {
|
||||||
h3 { +member.name }
|
h3 { +member.name }
|
||||||
htmlData(member.data)
|
htmlData(member)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -180,7 +183,7 @@ context(PageContext) private fun FlowContent.team() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
context(PageContext) private fun FlowContent.mentors() {
|
context(PageContext) private fun FlowContent.mentors() {
|
||||||
val mentors = findByType("magprog_mentor").mapValues { Person(it.value) }.entries.sortedBy { it.value.id }
|
val mentors = findByType("magprog_mentor").entries.sortedBy { it.value.id }
|
||||||
|
|
||||||
div("inner") {
|
div("inner") {
|
||||||
h2 {
|
h2 {
|
||||||
@ -191,7 +194,7 @@ context(PageContext) private fun FlowContent.mentors() {
|
|||||||
section {
|
section {
|
||||||
id = mentor.id
|
id = mentor.id
|
||||||
a(classes = "image", href = resolveRef("mentor-${mentor.id}")) {
|
a(classes = "image", href = resolveRef("mentor-${mentor.id}")) {
|
||||||
mentor.photo?.let { photoPath ->
|
mentor.imagePath?.let { photoPath ->
|
||||||
img(
|
img(
|
||||||
src = resolveRef(photoPath),
|
src = resolveRef(photoPath),
|
||||||
alt = mentor.name
|
alt = mentor.name
|
||||||
@ -287,7 +290,7 @@ context(PageContext) internal fun BODY.magProgFooter() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal val Person.mentorPageId get() = "mentor-${id}"
|
private val HtmlData.mentorPageId get() = "mentor-${id}"
|
||||||
|
|
||||||
internal fun Application.spcMaster(context: Context, dataPath: Path, prefix: String = "/magprog") {
|
internal fun Application.spcMaster(context: Context, dataPath: Path, prefix: String = "/magprog") {
|
||||||
|
|
||||||
@ -371,9 +374,7 @@ internal fun Application.spcMaster(context: Context, dataPath: Path, prefix: Str
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val mentors = findByType("magprog_mentor").map {
|
val mentors = findByType("magprog_mentor").values.sortedBy {
|
||||||
Person(it.value)
|
|
||||||
}.sortedBy {
|
|
||||||
it.order
|
it.order
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -388,7 +389,7 @@ internal fun Application.spcMaster(context: Context, dataPath: Path, prefix: Str
|
|||||||
href = "$homeRef#mentors"
|
href = "$homeRef#mentors"
|
||||||
+"Научные руководители"
|
+"Научные руководители"
|
||||||
}
|
}
|
||||||
nav{
|
nav {
|
||||||
ul {
|
ul {
|
||||||
mentors.forEach {
|
mentors.forEach {
|
||||||
li {
|
li {
|
||||||
@ -407,8 +408,9 @@ internal fun Application.spcMaster(context: Context, dataPath: Path, prefix: Str
|
|||||||
id = "main"
|
id = "main"
|
||||||
div("inner") {
|
div("inner") {
|
||||||
h1("major") { +mentor.name }
|
h1("major") { +mentor.name }
|
||||||
span("image left") {
|
val imageClass = mentor.meta["image.position"].string ?: "left"
|
||||||
mentor.photo?.let { photoPath ->
|
span("image $imageClass") {
|
||||||
|
mentor.imagePath?.let { photoPath ->
|
||||||
img(
|
img(
|
||||||
src = resolveRef(photoPath),
|
src = resolveRef(photoPath),
|
||||||
alt = mentor.name
|
alt = mentor.name
|
||||||
|
Loading…
Reference in New Issue
Block a user