How to draft content complete

This commit is contained in:
mattyl006 2022-09-22 13:31:53 +02:00
parent acca12b53f
commit d43701b08f
4 changed files with 304 additions and 13 deletions

View File

@ -18,7 +18,7 @@ const CodeShellStyle = styled(FlexColumn)`
const CodeShell = (props) => { const CodeShell = (props) => {
return ( return (
<CodeShellStyle> <CodeShellStyle>
<Svg position='absolute' top='12px' right='12px' <Svg position='absolute' top='12px' right='12px' cursor='pointer'
backgroundColor={theme.colors.white} src={copyIco}/> backgroundColor={theme.colors.white} src={copyIco}/>
{props.children} {props.children}
</CodeShellStyle> </CodeShellStyle>

View File

@ -1,12 +1,14 @@
import React from 'react'; import React from 'react';
import {FlexColumn, FlexRow} from '../../utils/containers'; import {FlexColumn, FlexRow, Svg} from '../../utils/containers';
import {Body, H2, Medium} from '../../utils/fonts'; import {Body, Code, CodeMedium, H2, H3, Medium} from '../../utils/fonts';
import CircleNumber from '../elements/CircleNumber'; import CircleNumber from '../elements/CircleNumber';
import CodeShell from '../elements/CodeShell'; import CodeShell from '../elements/CodeShell';
import cubeIcon from '../../assets/cube_ico.svg';
import theme from '../../utils/theme';
const HowTo = () => { const HowTo = () => {
return ( return (
<FlexColumn padding='64px' gap='48px' alignmentX='flex-start' maxWidth='668px'> <FlexColumn margin='64px 0 0 0' gap='48px' alignmentX='flex-start' maxWidth='668px'>
<FlexColumn as='article' gap='24px' alignmentX='flex-start'> <FlexColumn as='article' gap='24px' alignmentX='flex-start'>
<H2 as='h2' margin='0 0 8px 0'> <H2 as='h2' margin='0 0 8px 0'>
Get challenge repo Get challenge repo
@ -21,7 +23,10 @@ const HowTo = () => {
</Body> </Body>
</FlexRow> </FlexRow>
<CodeShell> <CodeShell>
siema <Code as='p'>
<CodeMedium>~$</CodeMedium> git clone
git@git.wmi.amu.edu.pl:YOURID/challenging-america-geo-prediction.git
</Code>
</CodeShell> </CodeShell>
<FlexRow width='100%' gap='16px' alignmentX='flex-start'> <FlexRow width='100%' gap='16px' alignmentX='flex-start'>
<CircleNumber number='2'/> <CircleNumber number='2'/>
@ -29,10 +34,280 @@ const HowTo = () => {
Pull gonito challenge repo Pull gonito challenge repo
</Body> </Body>
</FlexRow> </FlexRow>
<CodeShell>
<Code as='p'>
<CodeMedium>~$</CodeMedium> cd challenging-america-geo-prediction
</Code>
<Code as='p'>
<CodeMedium>~$</CodeMedium> git pull git://gonito.net/challenging-america-geo-prediction.git
</Code>
</CodeShell>
<Body as='p'> <Body as='p'>
Make sure Gonito.net has access to your repo (e.g. by making it public). Make sure Gonito.net has access to your repo (e.g. by making it public).
</Body> </Body>
</FlexColumn> </FlexColumn>
<FlexColumn as='article' gap='24px' alignmentX='flex-start'>
<H2 as='h2' margin='0 0 8px 0'>
Work on your solution
</H2>
<Body as='p'>
You need to generate your solution for the test set as <Medium>test-A/out.tsv</Medium>. It is also
recommended to
generate the output for the dev set <Medium>(dev-0/out.tsv)</Medium>.
</Body>
<Body as='p'>
You can evaluate results for the dev set locally by <Medium>geval</Medium>.
</Body>
<FlexColumn as='article' gap='24px' alignmentX='flex-start' width='100%'>
<H3 as='h3'>
Install geval
</H3>
<CodeShell>
<Code as='p'>
<CodeMedium>~$</CodeMedium> wget https://gonito.net/get/bin/geval
</Code>
<Code as='p'>
<CodeMedium>~$</CodeMedium> chmod u+x geval
</Code>
<Code as='p'>
<CodeMedium>~$</CodeMedium> ./geval --help
</Code>
</CodeShell>
</FlexColumn>
</FlexColumn>
<FlexColumn as='article' gap='24px' alignmentX='flex-start'>
<H2 as='h2' margin='0 0 8px 0'>
Push your solution
</H2>
<Body>
Commit and push <Medium>out.tsv</Medium> files to your repo. It is also recommended to push your
source codes along
with <Medium>out.tsv</Medium> files.
</Body>
<CodeShell>
<Code as='p'>
<CodeMedium>~$</CodeMedium> cd challenging-america-geo-prediction
</Code>
<Code as='p'>
<CodeMedium>~$</CodeMedium> git checkout -b my-brilliant-branch # switch to some other branch
</Code>
<Code as='p'>
<CodeMedium>~$</CodeMedium> git add foo.py build.sh # add your source codes
</Code>
<Code as='p'>
<CodeMedium>~$</CodeMedium> git add gonito.yaml # it's a good practice to add metadata file, see
below
</Code>
</CodeShell>
<CodeShell>
<Code as='p'>
<CodeMedium>~$</CodeMedium> git add dev-0/out.tsv test-A/out.tsv # add your output files
</Code>
<Code as='p'>
<CodeMedium>~$</CodeMedium> git commit -m 'my brilliant solution'
</Code>
<Code as='p'>
<CodeMedium>~$</CodeMedium> git push origin my-brilliant-branch
</Code>
</CodeShell>
</FlexColumn>
<FlexColumn as='article' gap='24px' alignmentX='flex-start'>
<H2 as='h2' margin='0 0 8px 0'>
Submit solution to Gonito
</H2>
<FlexColumn as='article' gap='24px' alignmentX='flex-start' width='100%'>
<H3 as='h3'>
Manual submission
</H3>
<Body>
In case other methods fail, you can submit your solution manually go to the <Medium>submit
form</Medium>.
</Body>
</FlexColumn>
<FlexColumn as='article' gap='24px' alignmentX='flex-start' width='100%'>
<H3 as='h3'>
Integration with external repos
</H3>
<Body>
If you use an external repo (e.g. at your own of Gitolite or at GitLab/GitHub), you can
configure a webhook.
</Body>
</FlexColumn>
<FlexColumn as='article' gap='24px' alignmentX='flex-start' width='100%'>
<H3 as='h3'>
Submission metadata
</H3>
<Body>
Gonito can take the metadata (description, tags, parameters) of a submission from a number of
sources (in order of precedence):
</Body>
<FlexRow width='100%' gap='16px' alignmentX='flex-start'>
<CircleNumber number='1'/>
<Body as='p'>
The YAML files specified in the param-files field of the gonito.yaml file
</Body>
</FlexRow>
<FlexRow gap='16px' alignmentX='flex-start' margin='0 0 0 44px'>
<Svg src={cubeIcon} width='24px' height='22px' size='cover'
backgroundColor={theme.colors.green}/>
<Body as='p' width='90%'>
only applicable for parameters
</Body>
</FlexRow>
<FlexRow gap='16px' alignmentX='flex-start' margin='0 0 0 44px'>
<Svg src={cubeIcon} width='24px' height='22px' size='cover'
backgroundColor={theme.colors.green}/>
<Body as='p' width='90%'>
<Medium>gonito.yaml</Medium> will be always skipped even if matches a mask given in the
param-files field,
</Body>
</FlexRow>
<FlexRow gap='16px' alignmentX='flex-start' margin='0 0 0 44px'>
<Svg src={cubeIcon} width='24px' height='22px' size='cover'
backgroundColor={theme.colors.green}/>
<Body as='p' width='90%'>
parameters blacklisted in the unwanted-params field of the gonito.yaml file will be
discarded,
</Body>
</FlexRow>
<FlexRow width='100%' gap='16px' alignmentX='flex-start'>
<CircleNumber number='2'/>
<Body as='p'>
<Medium>Gonito.yaml</Medium> file committed to the repository,
</Body>
</FlexRow>
<FlexRow gap='16px' alignmentX='flex-start' margin='0 0 0 44px'>
<Svg src={cubeIcon} width='24px' height='22px' size='cover'
backgroundColor={theme.colors.green}/>
<Body as='p' width='90%'>
description given in the description field,
</Body>
</FlexRow>
<FlexRow gap='16px' alignmentX='flex-start' margin='0 0 0 44px'>
<Svg src={cubeIcon} width='24px' height='22px' size='cover'
backgroundColor={theme.colors.green}/>
<Body as='p' width='90%'>
tags given in tags field,
</Body>
</FlexRow>
<FlexRow gap='16px' alignmentX='flex-start' margin='0 0 0 44px'>
<Svg src={cubeIcon} width='24px' height='22px' size='cover'
backgroundColor={theme.colors.green}/>
<Body as='p' width='90%'>
parameters given in params field,
</Body>
</FlexRow>
<FlexRow width='100%' gap='16px' alignmentX='flex-start'>
<CircleNumber number='3'/>
<Body as='p'>
Names of output files (only for parameters)
</Body>
</FlexRow>
<FlexRow gap='16px' alignmentX='flex-start' margin='0 0 0 44px'>
<Svg src={cubeIcon} width='24px' height='22px' size='cover'
backgroundColor={theme.colors.green}/>
<Body as='p' width='90%'>
e.g. if the output file
is <Medium>out-epochs=10</Medium>, <Medium>learning-rate=0.01</Medium>, then parameters
<Medium>epochs=10</Medium> and <Medium>learning-rare=0.01</Medium> will be extracted;
</Body>
</FlexRow>
<FlexRow width='100%' gap='16px' alignmentX='flex-start'>
<CircleNumber number='4'/>
<Body as='p'>
Submission form (when submitting manually)
</Body>
</FlexRow>
<FlexRow width='100%' gap='16px' alignmentX='flex-start'>
<CircleNumber number='5'/>
<Body as='p'>
Git commit message
</Body>
</FlexRow>
<FlexRow gap='16px' alignmentX='flex-start' margin='0 0 0 44px'>
<Svg src={cubeIcon} width='24px' height='22px' size='cover'
backgroundColor={theme.colors.green}/>
<Body as='p' width='90%'>
description taken from the first paragraph
</Body>
</FlexRow>
<FlexRow gap='16px' alignmentX='flex-start' margin='0 0 0 44px'>
<Svg src={cubeIcon} width='24px' height='22px' size='cover'
backgroundColor={theme.colors.green}/>
<Body as='p' width='90%'>
tags taken from a line starting with <Medium>tags:</Medium>
</Body>
</FlexRow>
<Body>
Here is an example of <Medium>gonito.yaml</Medium>, in which all metadata could be given (note
that you can also
add links to external resources using the <Medium>`links`</Medium> section):
</Body>
<CodeShell>
<Code as='p'>
description: This my brilliant solution
</Code>
<Code as='p'>
tags:
</Code>
<Code as='p' margin='0 0 0 12px'>
- neural-network
</Code>
<Code as='p' margin='0 0 0 12px'>
- left-to-right
</Code>
<Code as='p'>
params:
</Code>
<Code as='p' margin='0 0 0 12px'>
epochs: 10
</Code>
<Code as='p' margin='0 0 0 12px'>
learning-rate: 0.01
</Code>
<Code as='p'>
unwanted-params:
</Code>
<Code as='p' margin='0 0 0 12px'>
- model-file
</Code>
<Code as='p' margin='0 0 0 12px'>
- vocab-file
</Code>
<Code as='p'>
param-files:
</Code>
<Code as='p' margin='0 0 0 12px'>
- *.yaml
</Code>
<Code as='p' margin='0 0 0 12px'>
- config/*.yaml
</Code>
<Code as='p'>
links:
</Code>
<Code as='p' margin='0 0 0 12px'>
- title: "Some external link"
</Code>
<Code as='p' margin='0 0 0 12px'>
&nbsp;&nbsp;url: "https://example.com/foo-bar-baz-123"
</Code>
<Code as='p' margin='0 0 0 12px'>
- title: "Yet another link"
</Code>
<Code as='p' margin='0 0 0 12px'>
&nbsp;&nbsp;url: "https://example.org/xyz"
</Code>
<Code as='p' margin='0 0 0 12px'>
- url: "https://example.net/bare-link-without-text"
</Code>
</CodeShell>
<Body>
It might seem a little bit complicated, but you could simply use the method which is the most
convenient for you.
</Body>
</FlexColumn>
</FlexColumn>
</FlexColumn> </FlexColumn>
); );
}; };

View File

@ -1,4 +1,4 @@
@import url('https://fonts.googleapis.com/css2?family=Kanit:wght@400;500&family=Roboto:wght@300;400;500&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Kanit:wght@400;500&family=Roboto:wght@300;400;500&family=Ubuntu:wght@300;400;500&display=swap');
html { html {
box-sizing: border-box; box-sizing: border-box;

View File

@ -7,7 +7,6 @@ const H1 = styled(Container)`
font-weight: 400; font-weight: 400;
font-size: 24px; font-size: 24px;
line-height: 24px; line-height: 24px;
@media (min-width: ${({theme}) => theme.overMobile}) { @media (min-width: ${({theme}) => theme.overMobile}) {
font-size: 48px; font-size: 48px;
line-height: 52px; line-height: 52px;
@ -16,7 +15,6 @@ const H1 = styled(Container)`
const H2 = styled(H1)` const H2 = styled(H1)`
font-size: 20px; font-size: 20px;
@media (min-width: ${({theme}) => theme.overMobile}) { @media (min-width: ${({theme}) => theme.overMobile}) {
font-size: 32px; font-size: 32px;
line-height: 36px; line-height: 36px;
@ -26,7 +24,6 @@ const H2 = styled(H1)`
const H3 = styled(H1)` const H3 = styled(H1)`
font-size: 18px; font-size: 18px;
line-height: 22px; line-height: 22px;
@media (min-width: ${({theme}) => theme.overMobile}) { @media (min-width: ${({theme}) => theme.overMobile}) {
font-size: 24px; font-size: 24px;
line-height: 26px; line-height: 26px;
@ -39,7 +36,6 @@ const Body = styled(Container)`
font-weight: 300; font-weight: 300;
font-size: 14px; font-size: 14px;
line-height: 20px; line-height: 20px;
@media (min-width: ${({theme}) => theme.overMobile}) { @media (min-width: ${({theme}) => theme.overMobile}) {
font-weight: 400; font-weight: 400;
font-size: 16px; font-size: 16px;
@ -49,7 +45,6 @@ const Body = styled(Container)`
const Medium = styled(Body)` const Medium = styled(Body)`
font-weight: 400; font-weight: 400;
@media (min-width: ${({theme}) => theme.overMobile}) { @media (min-width: ${({theme}) => theme.overMobile}) {
font-weight: 500; font-weight: 500;
} }
@ -66,11 +61,32 @@ const Menu = styled(Container)`
const Label = styled(Menu)` const Label = styled(Menu)`
display: inline-block; display: inline-block;
font-weight: 300; font-weight: 300;
@media (min-width: ${({theme}) => theme.overMobile}) { @media (min-width: ${({theme}) => theme.overMobile}) {
font-size: 22px; font-size: 22px;
line-height: 24px; line-height: 24px;
} }
`; `;
export {H1, H2, H3, Body, Medium, Menu, Label}; const Code = styled(Container)`
display: inline-block;
font-family: 'Ubuntu', sans-serif;
font-size: 12px;
line-height: 18px;
font-weight: 300;
color: ${({theme}) => theme.colors.white};
@media (min-width: ${({theme}) => theme.overMobile}) {
font-size: 16px;
line-height: 24px;
font-weight: 400;
}
`;
const CodeMedium = styled(Code)`
color: ${({theme}) => theme.colors.green};
font-weight: 400;
@media (min-width: ${({theme}) => theme.overMobile}) {
font-weight: 500;
}
`;
export {H1, H2, H3, Body, Medium, Menu, Label, Code, CodeMedium};