Personal pages
This commit is contained in:
parent
212950734e
commit
153b6b606c
2
.github/workflows/gatsby.yml
vendored
2
.github/workflows/gatsby.yml
vendored
@ -18,7 +18,7 @@ jobs:
|
|||||||
yarn
|
yarn
|
||||||
gatsby build
|
gatsby build
|
||||||
- name: Publish to server via scp
|
- name: Publish to server via scp
|
||||||
uses: appleboy/scp-action@master
|
uses: appleboy/scp-action@0.1.2
|
||||||
with:
|
with:
|
||||||
host: ${{ secrets.HOST }}
|
host: ${{ secrets.HOST }}
|
||||||
port: ${{ secrets.PORT }}
|
port: ${{ secrets.PORT }}
|
||||||
|
@ -57,6 +57,20 @@ exports.createPages = async ({actions, graphql}) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
personalPages: allMarkdownRemark(
|
||||||
|
filter: {frontmatter: {content_type: {eq: "personal_page"}, published: {ne: false}}}
|
||||||
|
){
|
||||||
|
edges{
|
||||||
|
node{
|
||||||
|
html
|
||||||
|
frontmatter{
|
||||||
|
path
|
||||||
|
memberName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
`)
|
`)
|
||||||
|
|
||||||
@ -75,6 +89,18 @@ exports.createPages = async ({actions, graphql}) => {
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//Render personal pages
|
||||||
|
const personalPageTemplate = path.resolve(`./src/components/templates/personalPageTemplate.js`);
|
||||||
|
const personalPages = result.data.personalPages.edges;
|
||||||
|
|
||||||
|
personalPages.forEach(({node}) => {
|
||||||
|
createPage({
|
||||||
|
memberName: node.frontmatter.memberName,
|
||||||
|
path: node.frontmatter.path,
|
||||||
|
component: personalPageTemplate,
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
// Render news page
|
// Render news page
|
||||||
|
|
||||||
const newsTemplate = path.resolve(`./src/components/templates/news.js`);
|
const newsTemplate = path.resolve(`./src/components/templates/news.js`);
|
||||||
|
54
src/components/templates/personalPageTemplate.js
Normal file
54
src/components/templates/personalPageTemplate.js
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
import React from "react"
|
||||||
|
import {graphql} from "gatsby"
|
||||||
|
import {injectIntl, useIntl} from "react-intl"
|
||||||
|
import {Link} from "gatsby-plugin-react-intl"
|
||||||
|
import Parser from "html-react-parser"
|
||||||
|
|
||||||
|
import Layout from "../layout"
|
||||||
|
|
||||||
|
const PersonalPage = (props) => {
|
||||||
|
const intl = useIntl()
|
||||||
|
const lang = intl.locale
|
||||||
|
const content = props.data.personalPage
|
||||||
|
|
||||||
|
if (!content) {
|
||||||
|
return (
|
||||||
|
<Layout/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Layout>
|
||||||
|
<nav aria-label="breadcrumb">
|
||||||
|
<ol className="breadcrumb" style={{margin: 0}}>
|
||||||
|
<li className="breadcrumb-item">
|
||||||
|
{lang === "en"
|
||||||
|
? <Link to={`/about`}>Laboratory</Link>
|
||||||
|
: <Link to={`/about`}>Лаборатория</Link>
|
||||||
|
}
|
||||||
|
</li>
|
||||||
|
<li className="breadcrumb-item active" aria-current="page">{content.frontmatter.memberName}</li>
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<h1 style={{marginTop: `15px`, textAlign: `center`}}>{content.frontmatter.memberName}</h1>
|
||||||
|
<div>{Parser(content.html)}</div>
|
||||||
|
</Layout>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default injectIntl(PersonalPage)
|
||||||
|
|
||||||
|
|
||||||
|
export const PersonalPageQuery = graphql`
|
||||||
|
query PersonalPageByPath($memberName: String){
|
||||||
|
personalPage: markdownRemark(
|
||||||
|
frontmatter: {content_type: {eq: "personal_page"}, memberName: {eq: $memberName}}
|
||||||
|
){
|
||||||
|
html
|
||||||
|
frontmatter{
|
||||||
|
path
|
||||||
|
memberName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}`
|
@ -4,7 +4,7 @@ title: Tatyana Abramova
|
|||||||
id: abramova
|
id: abramova
|
||||||
order: 70
|
order: 70
|
||||||
photo: abramova.jpg
|
photo: abramova.jpg
|
||||||
published: true
|
published: false
|
||||||
language: en
|
language: en
|
||||||
---
|
---
|
||||||
Student of HSE.
|
Student of HSE.
|
||||||
|
@ -4,6 +4,7 @@ title: Alexander Nozik
|
|||||||
id: nozik
|
id: nozik
|
||||||
order: 2
|
order: 2
|
||||||
photo: nozik.png
|
photo: nozik.png
|
||||||
|
page_link: /about/nozik
|
||||||
published: true
|
published: true
|
||||||
language: en
|
language: en
|
||||||
---
|
---
|
||||||
|
73
src/content/en/pages/nozik.md
Normal file
73
src/content/en/pages/nozik.md
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
---
|
||||||
|
content_type: personal_page
|
||||||
|
path: /about/nozik
|
||||||
|
memberName: Alexander Nozik
|
||||||
|
published: true
|
||||||
|
language: en
|
||||||
|
---
|
||||||
|
|
||||||
|
<img src="/images/members/nozik_2.png" alt="nozik" />
|
||||||
|
|
||||||
|
* Phd in particle physics.
|
||||||
|
|
||||||
|
* Deputy head of [MIPT-NPM](/) lab.
|
||||||
|
|
||||||
|
* Team lead at [JetBrains Research](https://research.jetbrains.org/groups/npm/)
|
||||||
|
|
||||||
|
* Google developer expert in Kotlin.
|
||||||
|
|
||||||
|
|
||||||
|
## About me
|
||||||
|
|
||||||
|
When I finished the school, I had two choices: I liked physics and I liked programming. In the end I decided that physics is more interesting. Now I am doing programming in physics. Currently I am doing software and physical data analysis for a number of experiments in particle physics (Troitsk nu-mass, IAXO and other experiments). I am leading development of scientific libraries and leading the development of new simulation software and models.
|
||||||
|
|
||||||
|
The laboratory at MIPT, we created in the last years includes young passionate researchers in different fields connected to particle and nuclear physics methods. The aim of the laboratory is to prepare the new generation of researchers, familiar with modern scientific tools and able to develop new ones.
|
||||||
|
|
||||||
|
## Social
|
||||||
|
|
||||||
|
* [ResearchGate profile](https://www.researchgate.net/profile/Alexander_Nozik)
|
||||||
|
* [Twitter](https://twitter.com/noraltavir)
|
||||||
|
* [Telegram](https://t.me/noraltavir)
|
||||||
|
|
||||||
|
## Education
|
||||||
|
|
||||||
|
* Lyceum “2nd school” 1997 - 2002
|
||||||
|
* MIPT (bachelor, problems of physics and energetics) 2002 - 2006. Finished with honors.
|
||||||
|
* MIPT (master, fundamental particles and cosmology) 2006 - 2008
|
||||||
|
* [PhD in physics](https://www.researchgate.net/publication/260058278_Rezultaty_obrabotki_dannyh_eksperimenta_Troick_nu-mass_po_pramomu_izmereniu_massy_elektronnogo_nejtrino), INR RAS 2012 .
|
||||||
|
|
||||||
|
## Work experience
|
||||||
|
|
||||||
|
* INR RAS Laboratory assistant, 2004–2008
|
||||||
|
* INR RAS Researcher, 2008–2012
|
||||||
|
* INR RAS Senior researcher, 2012–present
|
||||||
|
* MIPT Assistant, 2013–2018, The department of general physics laboratory practice and seminars. Special courses on programming and statistics.
|
||||||
|
* MIPT Associate professor, 2019–present
|
||||||
|
* MIPT Senior researcher, 2019–present, Deputy head of the nuclear physics methods laboratory.
|
||||||
|
* JetBrains Research, 2020–present, Head of the research group.
|
||||||
|
|
||||||
|
## The code
|
||||||
|
|
||||||
|
* Private GitHub account: https://github.com/altavir
|
||||||
|
* Laboratory GitHub account: https://github.com/mipt-npm
|
||||||
|
|
||||||
|
## Achievements
|
||||||
|
|
||||||
|
* The best (until 2020) limit on electron neutrino mass: https://arxiv.org/abs/1108.5034
|
||||||
|
|
||||||
|
* The best limit on sterile neutrino contribution to the electron neutrino with masses up to 2 keV: https://arxiv.org/abs/1307.5687, https://arxiv.org/abs/1703.10779
|
||||||
|
|
||||||
|
* The data acquisition and analysis software in Troitsk nu-mass experiment.
|
||||||
|
|
||||||
|
* The Reactor model for TGF generation in thunderclouds.
|
||||||
|
|
||||||
|
* KMath library: https://github.com/mipt-npm/kmath.
|
||||||
|
|
||||||
|
## Publications
|
||||||
|
* ORCID: https://orcid.org/0000-0001-9075-0080
|
||||||
|
* Scopus ID: 24071435300
|
||||||
|
* Web of Science ID: H-3844-2019
|
||||||
|
|
||||||
|
## Keywords
|
||||||
|
|
||||||
|
Particle physics, Neutrino, Data analysis, Mathematical statistics, Scientific programming, Java, Kotlin
|
@ -4,7 +4,7 @@ title: Татьяна Абрамова
|
|||||||
id: abramova
|
id: abramova
|
||||||
order: 70
|
order: 70
|
||||||
photo: abramova.jpg
|
photo: abramova.jpg
|
||||||
published: true
|
published: false
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
Студентка ФКН ВШЭ.
|
Студентка ФКН ВШЭ.
|
||||||
|
@ -4,6 +4,7 @@ title: Александр Нозик
|
|||||||
id: nozik
|
id: nozik
|
||||||
order: 2
|
order: 2
|
||||||
photo: nozik.png
|
photo: nozik.png
|
||||||
|
page_link: /about/nozik
|
||||||
published: true
|
published: true
|
||||||
language: ru
|
language: ru
|
||||||
---
|
---
|
||||||
|
BIN
src/images/members/nozik_2.png
Normal file
BIN
src/images/members/nozik_2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 774 KiB |
@ -35,30 +35,22 @@ const AboutPage = ({data}) => {
|
|||||||
{members.map(({node}) => {
|
{members.map(({node}) => {
|
||||||
const name = node.frontmatter.title;
|
const name = node.frontmatter.title;
|
||||||
const photo = node.frontmatter.photo;
|
const photo = node.frontmatter.photo;
|
||||||
|
const page_link = node.frontmatter.page_link
|
||||||
const path = "../../images/members/"
|
const path = "../../images/members/"
|
||||||
if (photo === null)
|
|
||||||
return (
|
return (
|
||||||
<div key={node.frontmatter.id} id={node.frontmatter.id}>
|
<div key={node.frontmatter.id} id={node.frontmatter.id}>
|
||||||
<hr/>
|
<hr/>
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col-lg-2"/>
|
{photo
|
||||||
|
? <div className="col-lg-2"><img src={path + photo} alt=" "/></div>
|
||||||
|
: <div className="col-lg-2"/>
|
||||||
|
}
|
||||||
<div className="col-lg-10">
|
<div className="col-lg-10">
|
||||||
<h2>{name}</h2>
|
{page_link
|
||||||
<div>{Parser(node.html)}</div>
|
? <h2><Link to={page_link}>{name}</Link></h2>
|
||||||
</div>
|
: <h2>{name}</h2>
|
||||||
</div>
|
}
|
||||||
</div>
|
|
||||||
)
|
|
||||||
else
|
|
||||||
return (
|
|
||||||
<div key={node.frontmatter.id} id={node.frontmatter.id}>
|
|
||||||
<hr/>
|
|
||||||
<div className="row">
|
|
||||||
<div className="col-lg-2">
|
|
||||||
<img src={path + photo} alt=" "/>
|
|
||||||
</div>
|
|
||||||
<div className="col-lg-10">
|
|
||||||
<h2>{name}</h2>
|
|
||||||
<div>{Parser(node.html)}</div>
|
<div>{Parser(node.html)}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -84,6 +76,7 @@ export const query = graphql`
|
|||||||
title
|
title
|
||||||
photo
|
photo
|
||||||
language
|
language
|
||||||
|
page_link
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -100,6 +93,7 @@ export const query = graphql`
|
|||||||
title
|
title
|
||||||
photo
|
photo
|
||||||
language
|
language
|
||||||
|
page_link
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ export default injectIntl(QuarksPage)
|
|||||||
|
|
||||||
export const query = graphql`
|
export const query = graphql`
|
||||||
query{
|
query{
|
||||||
ru_publications: allMarkdownRemark(filter: {frontmatter: {content_type: {eq: "quarks"}, published: {ne: false}, language: {eq: "ru"}}}){
|
ru_publications: allMarkdownRemark(filter: {frontmatter: {shortTitle: {eq: "QUARKS-2020"}, published: {ne: false}, language: {eq: "ru"}}}){
|
||||||
edges{
|
edges{
|
||||||
node{
|
node{
|
||||||
html
|
html
|
||||||
@ -48,7 +48,7 @@ export const query = graphql`
|
|||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
|
||||||
en_publications: allMarkdownRemark(filter: {frontmatter: {content_type: {eq: "quarks"}, published: {ne: false}, language: {eq: "en"}}}){
|
en_publications: allMarkdownRemark(filter: {frontmatter: {shortTitle: {eq: "QUARKS-2020"}, published: {ne: false}, language: {eq: "en"}}}){
|
||||||
edges{
|
edges{
|
||||||
node{
|
node{
|
||||||
html
|
html
|
||||||
|
Loading…
Reference in New Issue
Block a user