Personal pages

This commit is contained in:
Alexander Nozik 2021-10-31 12:19:05 +03:00
parent 212950734e
commit 153b6b606c
12 changed files with 4374 additions and 3666 deletions

View File

@ -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 }}

View File

@ -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`);

View 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
}
}
}`

View File

@ -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.

View File

@ -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
--- ---

View 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, 20042008
* INR RAS Researcher, 20082012
* INR RAS Senior researcher, 2012present
* MIPT Assistant, 20132018, The department of general physics laboratory practice and seminars. Special courses on programming and statistics.
* MIPT Associate professor, 2019present
* MIPT Senior researcher, 2019present, Deputy head of the nuclear physics methods laboratory.
* JetBrains Research, 2020present, 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

View File

@ -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
--- ---
Студентка ФКН ВШЭ. Студентка ФКН ВШЭ.

View File

@ -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
--- ---

Binary file not shown.

After

Width:  |  Height:  |  Size: 774 KiB

View File

@ -35,35 +35,27 @@ 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"> {photo
<div className="col-lg-2"/> ? <div className="col-lg-2"><img src={path + photo} alt=" "/></div>
<div className="col-lg-10"> : <div className="col-lg-2"/>
<h2>{name}</h2> }
<div>{Parser(node.html)}</div> <div className="col-lg-10">
</div> {page_link
? <h2><Link to={page_link}>{name}</Link></h2>
: <h2>{name}</h2>
}
<div>{Parser(node.html)}</div>
</div> </div>
</div> </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>
</div>
</div>
)
})} })}
</Layout> </Layout>
) )
@ -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
} }
} }
} }

View File

@ -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

7829
yarn.lock

File diff suppressed because it is too large Load Diff