Added mentors
This commit is contained in:
parent
1b738f88c9
commit
1e537b74ab
13
package.json
13
package.json
@ -5,6 +5,7 @@
|
|||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bootstrap": "4.6.0",
|
"bootstrap": "4.6.0",
|
||||||
|
"breakpoints": "^0.0.0",
|
||||||
"gatsby": "3.1.1",
|
"gatsby": "3.1.1",
|
||||||
"gatsby-awesome-pagination": "0.3.6",
|
"gatsby-awesome-pagination": "0.3.6",
|
||||||
"gatsby-cli": "3.1.0",
|
"gatsby-cli": "3.1.0",
|
||||||
@ -22,25 +23,23 @@
|
|||||||
"gatsby-source-graphql": "3.1.0",
|
"gatsby-source-graphql": "3.1.0",
|
||||||
"gatsby-transformer-remark": "3.1.0",
|
"gatsby-transformer-remark": "3.1.0",
|
||||||
"gatsby-transformer-sharp": "3.1.0",
|
"gatsby-transformer-sharp": "3.1.0",
|
||||||
"node-sass": "^5.0.0",
|
|
||||||
"gatsby-plugin-sass": "4.1.0",
|
|
||||||
"html-react-parser": "1.2.4",
|
"html-react-parser": "1.2.4",
|
||||||
"imagemin-pngquant": "9.0.2",
|
"imagemin-pngquant": "9.0.2",
|
||||||
"jquery": "3.6.0",
|
"jquery": "3.6.0",
|
||||||
|
"jquery.scrollex": "^0.2.1",
|
||||||
|
"jquery.scrolly": "^0.0.1",
|
||||||
"katex": "0.13.0",
|
"katex": "0.13.0",
|
||||||
"mini-css-extract-plugin": "1.3.9",
|
"mini-css-extract-plugin": "1.3.9",
|
||||||
"ncp": "2.0.0",
|
"ncp": "2.0.0",
|
||||||
"netlify-cms-app": "2.14.32",
|
|
||||||
"prop-types": "15.7.2",
|
"prop-types": "15.7.2",
|
||||||
"react": "17.0.2",
|
"react": "17.0.2",
|
||||||
"react-bootstrap": "1.5.2",
|
"react-bootstrap": "1.5.2",
|
||||||
"react-helmet": "6.1.0",
|
"react-helmet": "6.1.0",
|
||||||
"react-intl": "^5.13.5",
|
"react-intl": "^5.13.5",
|
||||||
"redux": "4.0.5",
|
|
||||||
"typescript": "^4.2.3",
|
|
||||||
"vertical-timeline-component-for-react": "1.0.7",
|
|
||||||
"react-scrollspy": "^3.4.3",
|
"react-scrollspy": "^3.4.3",
|
||||||
"smoothscroll-polyfill": "^0.4.4"
|
"redux": "4.0.5",
|
||||||
|
"smoothscroll-polyfill": "^0.4.4",
|
||||||
|
"vertical-timeline-component-for-react": "1.0.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"autoprefixer": "10.2.5",
|
"autoprefixer": "10.2.5",
|
||||||
|
@ -18,13 +18,8 @@ const MagProgLayout = ({children}) => {
|
|||||||
{/*<noscript>{*/}
|
{/*<noscript>{*/}
|
||||||
{/* <link rel="stylesheet" href={withPrefix("magprog/css/noscript.css")}/>*/}
|
{/* <link rel="stylesheet" href={withPrefix("magprog/css/noscript.css")}/>*/}
|
||||||
{/*</noscript>*/}
|
{/*</noscript>*/}
|
||||||
<script src={withPrefix("magprog/js/jquery.min.js")} defer={true}/>
|
{/* <script src={withPrefix("magprog/js/util.js")} defer={true}/>
|
||||||
<script src={withPrefix("magprog/js/jquery.scrollex.min.js")} defer={true}/>
|
<script src={withPrefix("magprog/js/main.js")} defer={true}/>*/}
|
||||||
<script src={withPrefix("magprog/js/jquery.scrolly.min.js")} defer={true}/>
|
|
||||||
<script src={withPrefix("magprog/js/browser.min.js")} defer={true}/>
|
|
||||||
<script src={withPrefix("magprog/js/breakpoints.min.js")} defer={true}/>
|
|
||||||
<script src={withPrefix("magprog/js/util.js")} defer={true}/>
|
|
||||||
<script src={withPrefix("magprog/js/main.js")} defer={true}/>
|
|
||||||
</Helmet>
|
</Helmet>
|
||||||
<NpmNavbar/>
|
<NpmNavbar/>
|
||||||
<div className="container-fluid">
|
<div className="container-fluid">
|
||||||
|
@ -3,69 +3,74 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
const Element = props => {
|
const Element = props => {
|
||||||
return props.children;
|
return props.children;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Scroll extends React.Component {
|
class Scroll extends React.Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
type: PropTypes.string,
|
type: PropTypes.string,
|
||||||
element: PropTypes.string,
|
element: PropTypes.string,
|
||||||
offset: PropTypes.number,
|
offset: PropTypes.number,
|
||||||
timeout: PropTypes.number,
|
timeout: PropTypes.number,
|
||||||
children: PropTypes.node.isRequired,
|
children: PropTypes.node.isRequired,
|
||||||
};
|
};
|
||||||
constructor() {
|
|
||||||
super();
|
constructor() {
|
||||||
this.handleClick = this.handleClick.bind(this);
|
super();
|
||||||
}
|
this.handleClick = this.handleClick.bind(this);
|
||||||
componentDidMount() {
|
|
||||||
smoothscroll.polyfill();
|
|
||||||
}
|
|
||||||
handleClick(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
let elem = 0;
|
|
||||||
let scroll = true;
|
|
||||||
const { type, element, offset, timeout } = this.props;
|
|
||||||
if (type && element) {
|
|
||||||
switch (type) {
|
|
||||||
case 'class':
|
|
||||||
elem = document.getElementsByClassName(element)[0];
|
|
||||||
scroll = !!elem;
|
|
||||||
break;
|
|
||||||
case 'id':
|
|
||||||
elem = document.getElementById(element);
|
|
||||||
scroll = !!elem;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
scroll
|
|
||||||
? this.scrollTo(elem, offset, timeout)
|
componentDidMount() {
|
||||||
: console.log(`Element not found: ${element}`); // eslint-disable-line
|
smoothscroll.polyfill();
|
||||||
}
|
}
|
||||||
scrollTo(element, offSet = 0, timeout = null) {
|
|
||||||
const elemPos = element
|
handleClick(e) {
|
||||||
? element.getBoundingClientRect().top + window.pageYOffset
|
e.preventDefault();
|
||||||
: 0;
|
let elem = 0;
|
||||||
if (timeout) {
|
let scroll = true;
|
||||||
setTimeout(() => {
|
const {type, element, offset, timeout} = this.props;
|
||||||
window.scroll({ top: elemPos + offSet, left: 0, behavior: 'smooth' });
|
if (type && element) {
|
||||||
}, timeout);
|
switch (type) {
|
||||||
} else {
|
case 'class':
|
||||||
window.scroll({ top: elemPos + offSet, left: 0, behavior: 'smooth' });
|
elem = document.getElementsByClassName(element)[0];
|
||||||
|
scroll = !!elem;
|
||||||
|
break;
|
||||||
|
case 'id':
|
||||||
|
elem = document.getElementById(element);
|
||||||
|
scroll = !!elem;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scroll
|
||||||
|
? this.scrollTo(elem, offset, timeout)
|
||||||
|
: console.log(`Element not found: ${element}`); // eslint-disable-line
|
||||||
|
}
|
||||||
|
|
||||||
|
scrollTo(element, offSet = 0, timeout = null) {
|
||||||
|
const elemPos = element
|
||||||
|
? element.getBoundingClientRect().top + window.pageYOffset
|
||||||
|
: 0;
|
||||||
|
if (timeout) {
|
||||||
|
setTimeout(() => {
|
||||||
|
window.scroll({top: elemPos + offSet, left: 0, behavior: 'smooth'});
|
||||||
|
}, timeout);
|
||||||
|
} else {
|
||||||
|
window.scroll({top: elemPos + offSet, left: 0, behavior: 'smooth'});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<Element>
|
||||||
|
{typeof this.props.children === 'object' ? (
|
||||||
|
React.cloneElement(this.props.children, {onClick: this.handleClick})
|
||||||
|
) : (
|
||||||
|
<span onClick={this.handleClick}>{this.props.children}</span>
|
||||||
|
)}
|
||||||
|
</Element>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
render() {
|
|
||||||
return (
|
|
||||||
<Element>
|
|
||||||
{typeof this.props.children === 'object' ? (
|
|
||||||
React.cloneElement(this.props.children, { onClick: this.handleClick })
|
|
||||||
) : (
|
|
||||||
<span onClick={this.handleClick}>{this.props.children}</span>
|
|
||||||
)}
|
|
||||||
</Element>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Scroll;
|
export default Scroll;
|
||||||
|
22
src/content/ru/magprog/mentors/Dolgonosov.md
Normal file
22
src/content/ru/magprog/mentors/Dolgonosov.md
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
content_type: magprog_mentor
|
||||||
|
title: Долгоносов Максим Сергеевич
|
||||||
|
id: Dolgonosov
|
||||||
|
photo: Dolgonosov.jpg
|
||||||
|
language: ru
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Организация
|
||||||
|
ИКИ РАН, ВШЭ
|
||||||
|
|
||||||
|
#### Биография
|
||||||
|
|
||||||
|
Выпускник МФТИ (ФПФЭ 2003, красный диплом). Аспирантура ИКИ РАН (теоретическая физика). Кандидат физико-математических наук. Работа в ИКИ РАН с 2001-по настоящее время отдел Физики космической плазмы. Научный руководитель космического эксперимента "Микроспутник Чибис-АИ" на борту МКС, старший научный сотрудник ИКИ РАН
|
||||||
|
|
||||||
|
#### Направление исследований
|
||||||
|
|
||||||
|
Исследование УКВ излучения грозовых разрядов.
|
||||||
|
|
||||||
|
#### Требования к студентам
|
||||||
|
|
||||||
|
Знание английского языка не ниже pre-intermidiate. Python продвинутый.
|
26
src/content/ru/magprog/mentors/Gertsenberger.md
Normal file
26
src/content/ru/magprog/mentors/Gertsenberger.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
content_type: magprog_mentor
|
||||||
|
title: Герценбергер Константин Викторович
|
||||||
|
id: Gertsenberger
|
||||||
|
photo: Gertsenberger.jpg
|
||||||
|
language: ru
|
||||||
|
---
|
||||||
|
#### Организация
|
||||||
|
Объединенный институт ядерных исследований (ОИЯИ), начальник группы
|
||||||
|
|
||||||
|
#### Биография
|
||||||
|
|
||||||
|
Родился 03.06.1983 года в г. Дубна Московской области. В 2000 г. поступил в НИЯУ “Московский инженерно-физический институт”, который окончил в 2006 г. по специальности “Математическое и программное обеспечение вычислительных систем”, в 2009 году закончил аспирантуру МИФИ. В 2014 году стал кандидатом технических наук по специальности 05.13.11. С 2009 года работаю в ОИЯИ, в настоящее время являюсь начальником группы математического и программного обеспечения НЭОФСТИ на комплексе NICA ЛФВЭ ОИЯИ. Также являюсь координатором разработки программных систем для эксперимента BM@N и вхожу в исполнительный совет эксперимента.
|
||||||
|
|
||||||
|
#### Направление исследований
|
||||||
|
|
||||||
|
Разработка программного обеспечения для обработки экспериментальных и моделированных данных эксперимента на фиксированной мишени BM@N проекта NICA.
|
||||||
|
Направления работ по тематике магистерских диссертаций:
|
||||||
|
|
||||||
|
- Использование распределённых и высокопроизводительных вычислений для моделирования и обработки данных эксперимента.
|
||||||
|
- Развитие системы визуализации событий столкновения частиц эксперимента.
|
||||||
|
- Разработка баз данных эксперимента и интерфейсов доступа.
|
||||||
|
|
||||||
|
#### Требования к студентам
|
||||||
|
|
||||||
|
Требования: знание языка C++, желательно знание Linux, CERN ROOT. Возможность участия в конференциях ОИЯИ, оплачиваемых летних практиках, публикация работ.
|
24
src/content/ru/magprog/mentors/Ingvord.md
Normal file
24
src/content/ru/magprog/mentors/Ingvord.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
content_type: magprog_mentor
|
||||||
|
title: Igor Khokhriakov
|
||||||
|
id: Khokhriakov
|
||||||
|
photo: Khokhriakov.jpg
|
||||||
|
language: ru
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Организация
|
||||||
|
Helmholtz-Zentrum Geesthacht/IK Company (Solutions Architect/CTO)
|
||||||
|
|
||||||
|
#### Биография
|
||||||
|
|
||||||
|
I am a results-oriented professional who has been consistently praised as quality-oriented by my co-workers and management. Over the course of my 14-year career, I've developed a skill set directly relevant to full life cycle of software development including requirements capture, prototyping, design, implementation, testing and maintenance as well as team leading. Overall, I have consistently demonstrated critical thinking, analytical and problem-solving abilities in every aspect of my software solutions architect role at Helmholtz-Zentrum Geesthacht.
|
||||||
|
|
||||||
|
Regular participation as a speaker at various community meetings and scientific conferences since 2012. Have organized more than a dozen of workshops in different countries.
|
||||||
|
|
||||||
|
I enjoy reading about and applying new technologies.
|
||||||
|
|
||||||
|
Out with the world of Software development, I enjoy boardgaming, shooting short-movies with my friends about post nuclear mankind life based on Fallout (a Role Playing Game). DJing psytrance music. And I am interested in space research.
|
||||||
|
|
||||||
|
#### Направление исследований
|
||||||
|
|
||||||
|
SCADA, DCS, IoT, Micro-services architecture, Reactive systems design
|
22
src/content/ru/magprog/mentors/Kalashev.md
Normal file
22
src/content/ru/magprog/mentors/Kalashev.md
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
content_type: magprog_mentor
|
||||||
|
title: Калашев Олег Евгеньевич
|
||||||
|
id: Kalashev
|
||||||
|
photo: Kalashev.jpg
|
||||||
|
language: ru
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Организация
|
||||||
|
ИЯИ РАН
|
||||||
|
|
||||||
|
#### Биография
|
||||||
|
|
||||||
|
Окончил МФТИ в 1999. В 1999-2002 году обучался в аспирантуре Института ядерных исследований РАН под руководством В.А. Кузьмина. В 2005-2006 году работал на факультете физики и астрономии в университете штата Калифорния, Лос-Анджелес. В 2003 году защитил кандидатскую, а в 2017 докторскую диссертацию по специальности теоретическая физика и темам связанным с космическими лучами сверхвысоких энергий. С 2006 года работает в институте ядерных исследований РАН, преподает на кафедре физики частиц и космологии физического факультета МГУ и кафедре фундаментальных взаимодействий и космологии факультета проблем физики и энергетики МФТИ. С 2008 года действительный член международной коллаборации Telescope Array.
|
||||||
|
|
||||||
|
#### Направление исследований
|
||||||
|
|
||||||
|
Разработка методов, основанных на алгоритмах машинного обучения для анализа экспериментальных данных, а также в теоретических задачах астрофизики частиц. Моделирование распространения космических лучей.
|
||||||
|
|
||||||
|
#### Требования к студентам
|
||||||
|
|
||||||
|
Возможно сотрудничество с экспериментальными группами Telescope Array (США), Байкальского подводного нейтринного телескопа, Баксанской Нейтринной Обсерватории.
|
25
src/content/ru/magprog/mentors/Klimai.md
Normal file
25
src/content/ru/magprog/mentors/Klimai.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
content_type: magprog_mentor
|
||||||
|
title: Петр Климай
|
||||||
|
id: Klimai
|
||||||
|
photo: Klimai.jpg
|
||||||
|
language: ru
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Организация
|
||||||
|
ИЯИ РАН, МФТИ, JetBrains Research
|
||||||
|
|
||||||
|
#### Биография
|
||||||
|
|
||||||
|
Выпускник МФТИ (2007), учился в аспирантуре ИЯИ РАН, в 2010 году защитил диссертацию к.ф.-м.н. по теме ""Ограничения на концентрацию первичных черных дыр и их космологические следствия"". Автор более 30 научных работ.
|
||||||
|
|
||||||
|
Как наиболее интересные результаты можно выделить:
|
||||||
|
- Выявлена связь между первичными возмущениями плотности, спектром индуцированных гравитационных волн, и возможной концентрацией первичных черных дыр во Вселенной.
|
||||||
|
- Изучен вопрос рождения первичных черных дыр в ряде инфляционных моделей, в том числе в теоретических моделях «водопада» гибридной инфляции, «курватона», и модели аксионной инфляции.
|
||||||
|
- Рассчитаны временные и энергетические параметры «вспышки» излучения первичной черной дыры, находящейся на финальной стадии испарения. Получены параметризации результатов, удобные для использования при анализе экспериментальных данных. Эти результаты продолжают использоваться в работах нескольких экспериментальных коллабораций.
|
||||||
|
|
||||||
|
На сегодняшний день занимается разработкой научного программного обеспечения и построением ИТ-инфраструктуры для физических экспериментов. В работе в первую очередь использует языки программирования Kotlin и Python.
|
||||||
|
|
||||||
|
#### Направление исследований
|
||||||
|
|
||||||
|
ИТ-инфраструктура физических экспериментов
|
37
src/content/ru/magprog/mentors/Nozik.md
Normal file
37
src/content/ru/magprog/mentors/Nozik.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
content_type: magprog_mentor
|
||||||
|
title: Александр Нозик
|
||||||
|
id: Nozik
|
||||||
|
photo: Nozik.jpg
|
||||||
|
language: ru
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Организация
|
||||||
|
МФТИ, JetBrains Research, ИЯИ РАН
|
||||||
|
|
||||||
|
#### Биография
|
||||||
|
|
||||||
|
Окончил Л2Ш в 2002 году. Поступил в МФТИ на ФПФЭ, кафедру фундаментальных взаимодействий и космологии (ИЯИ РАН).
|
||||||
|
- В 2006 году с отличием окончил бакалавриат МФТИ.
|
||||||
|
- В 2008 году окончил магистратуру МФТИ.
|
||||||
|
- В 2012 году защитил кандидатскую диссертацию по направлению 01.04.16: физика атомного ядра и элементарных частиц. Тема: "Результаты обработки данных эксперимента "Троицк ню-масс" по прямому измерению массы электронного нейтрино"
|
||||||
|
- С 2013 году преподаватель общей физики в МФТИ.
|
||||||
|
- С 2019 года заместитель заведующего ЛМЯФЭ МФТИ.
|
||||||
|
- С 2019 года руководитель направления в JetBrains Research.
|
||||||
|
|
||||||
|
[ResearchGate](https://www.researchgate.net/profile/Alexander-Nozik)
|
||||||
|
|
||||||
|
[Страница на сайте JBR](https://research.jetbrains.org/groups/npm/)
|
||||||
|
|
||||||
|
#### Направление исследований
|
||||||
|
|
||||||
|
Разработка научного программного обеспечения на Kotlin и других языках.
|
||||||
|
* Разработка систем визуализации научных данных.
|
||||||
|
* Разработка систем сбора данных и управления оборудованием и использование этих систем в международных экспериментах, таких как Троицк ню-масс и IAXO.
|
||||||
|
* Разработка автоматизированных систем анализа данных.
|
||||||
|
|
||||||
|
Разработка научных библиотек на языке Kotlin.
|
||||||
|
|
||||||
|
#### Требования к студентам
|
||||||
|
|
||||||
|
Работа возможна в дистанционном и очном формате (в Москве).
|
21
src/content/ru/magprog/mentors/Usmanov.md
Normal file
21
src/content/ru/magprog/mentors/Usmanov.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
content_type: magprog_mentor
|
||||||
|
title: Ильмир Усманов
|
||||||
|
id: Usmanov
|
||||||
|
photo: Usmanov.jpg
|
||||||
|
language: ru
|
||||||
|
---
|
||||||
|
|
||||||
|
#### Организация
|
||||||
|
JetBrains
|
||||||
|
|
||||||
|
#### Биография
|
||||||
|
|
||||||
|
Окончил в ФРТК МФТИ в 2013 г.
|
||||||
|
Последние 9 лет работал над различными компиляторами - от GCC и LLVM до котлиновского компилятора.
|
||||||
|
Сейчас работаю в JetBrans в команде Kotlin Language Research Team.
|
||||||
|
|
||||||
|
#### Направление исследований
|
||||||
|
|
||||||
|
Дизайн и реализация языков программирования, компиляторные оптимизации, гетерогенные вычисления, символьное исполнение
|
||||||
|
|
@ -2,9 +2,8 @@
|
|||||||
content_type: magprog_mentor
|
content_type: magprog_mentor
|
||||||
title: Полиграф Шариков
|
title: Полиграф Шариков
|
||||||
id: template
|
id: template
|
||||||
order: 0
|
|
||||||
photo: Template.jpg
|
photo: Template.jpg
|
||||||
publish: false
|
published: false
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
Выдающийся ученый
|
Выдающийся ученый
|
||||||
|
BIN
src/images/magprog/mentors/Khokhriakov.jpg
Normal file
BIN
src/images/magprog/mentors/Khokhriakov.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 613 KiB |
BIN
src/images/magprog/mentors/Nozik.jpg
Normal file
BIN
src/images/magprog/mentors/Nozik.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.8 MiB |
Binary file not shown.
Before Width: | Height: | Size: 555 KiB |
@ -14,14 +14,12 @@ function mentors(edges) {
|
|||||||
return <section>
|
return <section>
|
||||||
<a className="image">
|
<a className="image">
|
||||||
<img src={withPrefix(`images/magprog/mentors/${edge.node.frontmatter.photo}`)}
|
<img src={withPrefix(`images/magprog/mentors/${edge.node.frontmatter.photo}`)}
|
||||||
alt={edge.node.frontmatter.title} data-position="25% 25%"/>
|
alt={edge.node.frontmatter.title} width="100%" data-position="center center"/>
|
||||||
</a>
|
</a>
|
||||||
<div className="content">
|
<div className="content">
|
||||||
<div className="inner">
|
<div className="inner">
|
||||||
<h2>{edge.node.frontmatter.title}</h2>
|
<h2>{edge.node.frontmatter.title}</h2>
|
||||||
<p>
|
{Parser(edge.node.html)}
|
||||||
{Parser(edge.node.html)}
|
|
||||||
</p>
|
|
||||||
{/*
|
{/*
|
||||||
<ul className="actions">
|
<ul className="actions">
|
||||||
<li><a href="generic.html" className="button">Learn more</a></li>
|
<li><a href="generic.html" className="button">Learn more</a></li>
|
||||||
@ -167,7 +165,7 @@ export const query = graphql`
|
|||||||
}
|
}
|
||||||
|
|
||||||
mentors: allMarkdownRemark(filter: {frontmatter: {content_type: {eq: "magprog_mentor"}, published: {ne: false}, language: {eq: "ru"}}},
|
mentors: allMarkdownRemark(filter: {frontmatter: {content_type: {eq: "magprog_mentor"}, published: {ne: false}, language: {eq: "ru"}}},
|
||||||
sort: {fields: frontmatter___order, order: ASC}) {
|
sort: {fields: frontmatter___title, order: ASC}) {
|
||||||
edges{
|
edges{
|
||||||
node {
|
node {
|
||||||
html
|
html
|
||||||
|
@ -3908,8 +3908,4 @@ body.is-preload #sidebar nav ul li {
|
|||||||
background-attachment: scroll;
|
background-attachment: scroll;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
z-index: -100;
|
|
||||||
}
|
}
|
@ -4,8 +4,14 @@
|
|||||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
if(typeof $ == "undefined"){
|
||||||
|
require("$")
|
||||||
|
}
|
||||||
|
|
||||||
(function($) {
|
(function($) {
|
||||||
|
|
||||||
|
require("jquery.scrollex")
|
||||||
|
|
||||||
var $window = $(window),
|
var $window = $(window),
|
||||||
$body = $('body'),
|
$body = $('body'),
|
||||||
$sidebar = $('#sidebar');
|
$sidebar = $('#sidebar');
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
if(typeof $ == "undefined"){
|
||||||
|
require("$")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
(function($) {
|
(function($) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -6,13 +11,13 @@
|
|||||||
*/
|
*/
|
||||||
$.fn.navList = function() {
|
$.fn.navList = function() {
|
||||||
|
|
||||||
var $this = $(this);
|
const $this = $(this);
|
||||||
$a = $this.find('a'),
|
$a = $this.find('a'),
|
||||||
b = [];
|
b = [];
|
||||||
|
|
||||||
$a.each(function() {
|
$a.each(function() {
|
||||||
|
|
||||||
var $this = $(this),
|
const $this = $(this),
|
||||||
indent = Math.max(0, $this.parents('li').length - 1),
|
indent = Math.max(0, $this.parents('li').length - 1),
|
||||||
href = $this.attr('href'),
|
href = $this.attr('href'),
|
||||||
target = $this.attr('target');
|
target = $this.attr('target');
|
||||||
@ -48,7 +53,7 @@
|
|||||||
// Multiple elements?
|
// Multiple elements?
|
||||||
if (this.length > 1) {
|
if (this.length > 1) {
|
||||||
|
|
||||||
for (var i=0; i < this.length; i++)
|
for (let i=0; i < this.length; i++)
|
||||||
$(this[i]).panel(userConfig);
|
$(this[i]).panel(userConfig);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
@ -149,7 +154,7 @@
|
|||||||
$this
|
$this
|
||||||
.on('click', 'a', function(event) {
|
.on('click', 'a', function(event) {
|
||||||
|
|
||||||
var $a = $(this),
|
const $a = $(this),
|
||||||
href = $a.attr('href'),
|
href = $a.attr('href'),
|
||||||
target = $a.attr('target');
|
target = $a.attr('target');
|
||||||
|
|
||||||
@ -191,7 +196,7 @@
|
|||||||
|| $this.touchPosY === null)
|
|| $this.touchPosY === null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX,
|
const diffX = $this.touchPosX - event.originalEvent.touches[0].pageX,
|
||||||
diffY = $this.touchPosY - event.originalEvent.touches[0].pageY,
|
diffY = $this.touchPosY - event.originalEvent.touches[0].pageY,
|
||||||
th = $this.outerHeight(),
|
th = $this.outerHeight(),
|
||||||
ts = ($this.get(0).scrollHeight - $this.scrollTop());
|
ts = ($this.get(0).scrollHeight - $this.scrollTop());
|
||||||
@ -199,8 +204,8 @@
|
|||||||
// Hide on swipe?
|
// Hide on swipe?
|
||||||
if (config.hideOnSwipe) {
|
if (config.hideOnSwipe) {
|
||||||
|
|
||||||
var result = false,
|
let result = false;
|
||||||
boundary = 20,
|
const boundary = 20,
|
||||||
delta = 50;
|
delta = 50;
|
||||||
|
|
||||||
switch (config.side) {
|
switch (config.side) {
|
||||||
@ -327,7 +332,7 @@
|
|||||||
$this.find('input[type=text],textarea')
|
$this.find('input[type=text],textarea')
|
||||||
.each(function() {
|
.each(function() {
|
||||||
|
|
||||||
var i = $(this);
|
const i = $(this);
|
||||||
|
|
||||||
if (i.val() == ''
|
if (i.val() == ''
|
||||||
|| i.val() == i.attr('placeholder'))
|
|| i.val() == i.attr('placeholder'))
|
||||||
@ -338,7 +343,7 @@
|
|||||||
})
|
})
|
||||||
.on('blur', function() {
|
.on('blur', function() {
|
||||||
|
|
||||||
var i = $(this);
|
const i = $(this);
|
||||||
|
|
||||||
if (i.attr('name').match(/-polyfill-field$/))
|
if (i.attr('name').match(/-polyfill-field$/))
|
||||||
return;
|
return;
|
||||||
@ -351,7 +356,7 @@
|
|||||||
})
|
})
|
||||||
.on('focus', function() {
|
.on('focus', function() {
|
||||||
|
|
||||||
var i = $(this);
|
const i = $(this);
|
||||||
|
|
||||||
if (i.attr('name').match(/-polyfill-field$/))
|
if (i.attr('name').match(/-polyfill-field$/))
|
||||||
return;
|
return;
|
||||||
@ -367,14 +372,14 @@
|
|||||||
$this.find('input[type=password]')
|
$this.find('input[type=password]')
|
||||||
.each(function() {
|
.each(function() {
|
||||||
|
|
||||||
var i = $(this);
|
const i = $(this);
|
||||||
var x = $(
|
const x = $(
|
||||||
$('<div>')
|
$('<div>')
|
||||||
.append(i.clone())
|
.append(i.clone())
|
||||||
.remove()
|
.remove()
|
||||||
.html()
|
.html()
|
||||||
.replace(/type="password"/i, 'type="text"')
|
.replace(/type="password"/i, 'type="text"')
|
||||||
.replace(/type=password/i, 'type=text')
|
.replace(/type=password/i, 'type=text')
|
||||||
);
|
);
|
||||||
|
|
||||||
if (i.attr('id') != '')
|
if (i.attr('id') != '')
|
||||||
@ -396,7 +401,7 @@
|
|||||||
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
const x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
||||||
|
|
||||||
if (i.val() == '') {
|
if (i.val() == '') {
|
||||||
|
|
||||||
@ -412,7 +417,7 @@
|
|||||||
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
|
const i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
|
||||||
|
|
||||||
x.hide();
|
x.hide();
|
||||||
|
|
||||||
@ -437,7 +442,7 @@
|
|||||||
$this.find('input[type=text],input[type=password],textarea')
|
$this.find('input[type=text],input[type=password],textarea')
|
||||||
.each(function(event) {
|
.each(function(event) {
|
||||||
|
|
||||||
var i = $(this);
|
const i = $(this);
|
||||||
|
|
||||||
if (i.attr('name').match(/-polyfill-field$/))
|
if (i.attr('name').match(/-polyfill-field$/))
|
||||||
i.attr('name', '');
|
i.attr('name', '');
|
||||||
@ -462,8 +467,8 @@
|
|||||||
$this.find('input,textarea')
|
$this.find('input,textarea')
|
||||||
.each(function() {
|
.each(function() {
|
||||||
|
|
||||||
var i = $(this),
|
const i = $(this);
|
||||||
x;
|
let x;
|
||||||
|
|
||||||
i.removeClass('polyfill-placeholder');
|
i.removeClass('polyfill-placeholder');
|
||||||
|
|
||||||
@ -525,7 +530,7 @@
|
|||||||
*/
|
*/
|
||||||
$.prioritize = function($elements, condition) {
|
$.prioritize = function($elements, condition) {
|
||||||
|
|
||||||
var key = '__prioritize';
|
const key = '__prioritize';
|
||||||
|
|
||||||
// Expand $elements if it's not already a jQuery object.
|
// Expand $elements if it's not already a jQuery object.
|
||||||
if (typeof $elements != 'jQuery')
|
if (typeof $elements != 'jQuery')
|
||||||
@ -534,8 +539,9 @@
|
|||||||
// Step through elements.
|
// Step through elements.
|
||||||
$elements.each(function() {
|
$elements.each(function() {
|
||||||
|
|
||||||
var $e = $(this), $p,
|
const $e = $(this);
|
||||||
$parent = $e.parent();
|
let $p;
|
||||||
|
const $parent = $e.parent();
|
||||||
|
|
||||||
// No parent? Bail.
|
// No parent? Bail.
|
||||||
if ($parent.length == 0)
|
if ($parent.length == 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user