Merge branch 'website-new-design' into 'dev'
LIGO-225 Website new design See merge request ligolang/ligo!233
42
gitlab-pages/website/core/AlgoliaSearch.js
Normal file
@ -0,0 +1,42 @@
|
||||
const React = require("react");
|
||||
|
||||
module.exports = props => {
|
||||
const docsVersion = props.version;
|
||||
const algoliaOptions = props.config.algolia.algoliaOptions
|
||||
? props.config.algolia.algoliaOptions
|
||||
: {};
|
||||
|
||||
return (
|
||||
<div className="algoliaSearch">
|
||||
<img className="icon" src="img/search_icon.svg" />
|
||||
<input id="searchDocs" type="text" placeholder="Search" title="Search" />
|
||||
{props.config.algolia && (
|
||||
<div>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"
|
||||
></script>
|
||||
<script
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `
|
||||
docsearch({
|
||||
${
|
||||
props.config.algolia.appId
|
||||
? `appId: '${props.config.algolia.appId}',`
|
||||
: ""
|
||||
}
|
||||
apiKey: '${props.config.algolia.apiKey}',
|
||||
indexName: '${props.config.algolia.indexName}',
|
||||
inputSelector: '#searchDocs',
|
||||
algoliaOptions: ${JSON.stringify(algoliaOptions)
|
||||
.replace("VERSION", docsVersion)
|
||||
.replace("LANGUAGE", props.language)}
|
||||
});
|
||||
`
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
75
gitlab-pages/website/core/CodeExamples.js
Normal file
@ -0,0 +1,75 @@
|
||||
const React = require('react');
|
||||
|
||||
const pre = '```';
|
||||
|
||||
const PASCALIGO_EXAMPLE = `${pre}pascaligo
|
||||
// variant defining pseudo multi-entrypoint actions
|
||||
type action is
|
||||
| Increment of int
|
||||
| Decrement of int
|
||||
|
||||
function add (const a : int ; const b : int) : int is a + b
|
||||
|
||||
function subtract (const a : int ; const b : int) : int is a - b
|
||||
|
||||
// real entrypoint that re-routes the flow based on the action provided
|
||||
function main (const p : action ; const s : int) : (list(operation) * int) is
|
||||
((nil : list(operation)),
|
||||
case p of
|
||||
| Increment (n) -> add (s, n)
|
||||
| Decrement (n) -> subtract (s, n)
|
||||
end)
|
||||
${pre}`;
|
||||
|
||||
const CAMELIGO_EXAMPLE = `${pre}ocaml
|
||||
type storage = int
|
||||
|
||||
(* variant defining pseudo multi-entrypoint
|
||||
actions *)
|
||||
type action =
|
||||
| Increment of int
|
||||
| Decrement of int
|
||||
|
||||
let add (a: int) (b: int): int = a + b
|
||||
|
||||
let subtract (a: int) (b: int): int = a - b
|
||||
|
||||
(* real entrypoint that re-routes the flow
|
||||
based on the action provided *)
|
||||
let%entry main(p : action) storage =
|
||||
let storage =
|
||||
match p with
|
||||
| Increment n -> add storage n
|
||||
| Decrement n -> subtract storage n
|
||||
in (([] : operation list), storage)
|
||||
${pre}`;
|
||||
|
||||
module.exports = props => {
|
||||
const MarkdownBlock = props.MarkdownBlock;
|
||||
|
||||
return (
|
||||
<div className="tabs">
|
||||
<div className="nav-tabs">
|
||||
<div
|
||||
className="nav-link active"
|
||||
data-group="examples"
|
||||
data-tab="pascaligo"
|
||||
>
|
||||
PascaLIGO
|
||||
</div>
|
||||
<div className="nav-link" data-group="examples" data-tab="cameligo">
|
||||
CameLIGO
|
||||
</div>
|
||||
<div className="disabled">ReasonLIGO (coming soon)</div>
|
||||
</div>
|
||||
<div className="tab-content">
|
||||
<div id="pascaligo" className="tab-pane active" data-group="examples">
|
||||
<MarkdownBlock>{PASCALIGO_EXAMPLE}</MarkdownBlock>
|
||||
</div>
|
||||
<div id="cameligo" className="tab-pane" data-group="examples">
|
||||
<MarkdownBlock>{CAMELIGO_EXAMPLE}</MarkdownBlock>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
@ -1,80 +1,45 @@
|
||||
/**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
const React = require('react');
|
||||
const docUrl = require(`${process.cwd()}/core/UrlUtils`).docUrl;
|
||||
|
||||
class Footer extends React.Component {
|
||||
docUrl(doc, language) {
|
||||
const baseUrl = this.props.config.baseUrl;
|
||||
const docsUrl = this.props.config.docsUrl;
|
||||
const docsPart = `${docsUrl ? `${docsUrl}/` : ''}`;
|
||||
const langPart = `${language ? `${language}/` : ''}`;
|
||||
return `${baseUrl}${docsPart}${langPart}${doc}`;
|
||||
}
|
||||
const Link = props => {
|
||||
const link = props.href ? props.href : docUrl(props.config, props.doc);
|
||||
|
||||
pageUrl(doc, language) {
|
||||
const baseUrl = this.props.config.baseUrl;
|
||||
return baseUrl + (language ? `${language}/` : '') + doc;
|
||||
}
|
||||
return props.blankTarget ? (
|
||||
<a href={link} target="_blank" rel="noreferrer noopener">
|
||||
{props.label}
|
||||
</a>
|
||||
) : (
|
||||
<a href={link}>{props.label}</a>
|
||||
);
|
||||
};
|
||||
|
||||
render() {
|
||||
return (
|
||||
<footer className="nav-footer" id="footer">
|
||||
<section className="footer-wrapper">
|
||||
<div className="sitemap">
|
||||
<div>
|
||||
<h5>Docs</h5>
|
||||
<a href={this.docUrl('next/intro/installation')}>
|
||||
Installation
|
||||
</a>
|
||||
<a href={this.docUrl('next/api/cli-commands.html')}>
|
||||
CLI Commands
|
||||
</a>
|
||||
<a href={this.docUrl('next/contributors/origin.html')}>
|
||||
Contribute
|
||||
</a>
|
||||
<a href="/odoc">
|
||||
Api Documentation
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<h5>Community</h5>
|
||||
<a
|
||||
href="https://tezos.stackexchange.com/questions/tagged/ligo"
|
||||
target="_blank"
|
||||
rel="noreferrer noopener">
|
||||
Tezos Stack Exchange
|
||||
</a>
|
||||
<a
|
||||
href="https://discord.gg/9rhYaEt"
|
||||
target="_blank"
|
||||
rel="noreferrer noopener">
|
||||
Discord
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<h5>More</h5>
|
||||
<a href={`${this.props.config.baseUrl}blog`}>Blog</a>
|
||||
<a href={this.docUrl('tutorials/get-started/tezos-taco-shop-smart-contract.html')}>Tutorials</a>
|
||||
<a href={`${this.props.config.repoUrl}`}>Gitlab</a>
|
||||
</div>
|
||||
module.exports = props => {
|
||||
return (
|
||||
<footer className="nav-footer" id="footer">
|
||||
<section className="footer-wrapper">
|
||||
<div className="sitemap">
|
||||
<div>
|
||||
<h5>Docs</h5>
|
||||
{props.config.footerLinks.docs.map(entry =>
|
||||
Link({ config: props.config, ...entry })
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div className="copyright">
|
||||
{this.props.config.copyright}
|
||||
<div>
|
||||
<h5>Community</h5>
|
||||
{props.config.footerLinks.community.map(entry =>
|
||||
Link({ config: props.config, ...entry })
|
||||
)}
|
||||
</div>
|
||||
</section>
|
||||
<div>
|
||||
<h5>More</h5>
|
||||
{props.config.footerLinks.more.map(entry =>
|
||||
Link({ config: props.config, ...entry })
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Load the DM Sans font, there's most likely a more appropriate place to load it in docusaurus than here */}
|
||||
<link href="https://fonts.googleapis.com/css?family=DM+Sans:400,400i,500,500i,700,700i&display=swap&subset=latin-ext" rel="stylesheet"></link>
|
||||
|
||||
</footer>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Footer;
|
||||
<div className="copyright">{props.config.copyright}</div>
|
||||
</section>
|
||||
</footer>
|
||||
);
|
||||
};
|
||||
|
11
gitlab-pages/website/core/UrlUtils.js
Normal file
@ -0,0 +1,11 @@
|
||||
exports.docUrl = (config, doc, language) => {
|
||||
const docsPart = config.docsUrl ? `${config.docsUrl}/` : '';
|
||||
const langPart = language ? `${language}/` : '';
|
||||
|
||||
return `${config.baseUrl}${docsPart}${langPart}${doc}`;
|
||||
};
|
||||
|
||||
exports.pageUrl = (config, doc, language) => {
|
||||
const langPart = language ? `${language}/` : '';
|
||||
return `${config.baseUrl}${langPart}${doc}`;
|
||||
};
|
29
gitlab-pages/website/pages/en/404.js
Normal file
@ -0,0 +1,29 @@
|
||||
const React = require('react');
|
||||
const AlgoliaSearch = require(`${process.cwd()}/core/AlgoliaSearch`);
|
||||
|
||||
module.exports = props => {
|
||||
return (
|
||||
<div id="pageNotFoundPage" className="centered">
|
||||
<div id="mural">
|
||||
<img className="muralPolygon1" src="img/404-mural/polygon1.svg" />
|
||||
<img className="muralPolygon2" src="img/404-mural/polygon2.svg" />
|
||||
<img className="muralPolygon3" src="img/404-mural/polygon3.svg" />
|
||||
<img className="muralPolygon4" src="img/404-mural/polygon4.svg" />
|
||||
<img className="muralPolygon5" src="img/404-mural/polygon5.svg" />
|
||||
</div>
|
||||
<div id="message">
|
||||
<div className="title">404</div>
|
||||
<div className="lookingForSomething">
|
||||
You're looking for something that doesn't exist
|
||||
</div>
|
||||
<div className="discoveriesHappen">
|
||||
That's how great discoveries happen!
|
||||
</div>
|
||||
<div className="letUsHelpWrapper">
|
||||
<div className="letUsHelp">Let us help</div>
|
||||
<AlgoliaSearch {...props}></AlgoliaSearch>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
120
gitlab-pages/website/pages/en/contact.js
Normal file
@ -0,0 +1,120 @@
|
||||
const React = require('react');
|
||||
|
||||
const TEAM = [
|
||||
{
|
||||
firstName: 'Christian',
|
||||
lastName: 'Rinderknecht',
|
||||
image: 'img/christian.jpeg',
|
||||
link: 'https://github.com/rinderknecht',
|
||||
pinned: true
|
||||
},
|
||||
{
|
||||
firstName: 'Brice',
|
||||
lastName: 'Aldrich',
|
||||
image: 'img/brice.jpeg',
|
||||
link: 'https://github.com/DefinitelyNotAGoat',
|
||||
pinned: true
|
||||
},
|
||||
{
|
||||
firstName: 'Gabriel',
|
||||
lastName: 'Alfour',
|
||||
image: 'img/gabriel.jpeg',
|
||||
link: 'https://gitlab.com/gabriel.alfour',
|
||||
pinned: true
|
||||
},
|
||||
{
|
||||
firstName: 'Matej',
|
||||
lastName: 'Sima',
|
||||
image: 'img/matej.jpeg',
|
||||
link: 'https://github.com/maht0rz',
|
||||
pinned: true
|
||||
},
|
||||
{
|
||||
firstName: 'Sander',
|
||||
lastName: 'Spies',
|
||||
image: 'img/sander.jpeg',
|
||||
link: 'https://github.com/SanderSpies',
|
||||
pinned: true
|
||||
},
|
||||
{
|
||||
firstName: 'Suzanne',
|
||||
lastName: 'Dupéron',
|
||||
image: 'img/suzanne.jpeg',
|
||||
link: 'https://gitlab.com/suzanne.duperon',
|
||||
pinned: true
|
||||
}
|
||||
];
|
||||
|
||||
const COMMUNICATION_CHANNELS = [
|
||||
{
|
||||
link: 'https://discord.gg/9rhYaEt',
|
||||
icon: 'img/discord.svg',
|
||||
description: "We're hear to help. Ask us anything"
|
||||
},
|
||||
{
|
||||
link: 'https://gitlab.com/ligolang/ligo/issues',
|
||||
icon: 'img/gitlab.svg',
|
||||
description: 'Need a fix? Create an issue on GitLab'
|
||||
},
|
||||
{
|
||||
link: 'https://twitter.com/ligolang',
|
||||
icon: 'img/twitter.svg',
|
||||
description: 'Join the latest chit-chat'
|
||||
}
|
||||
];
|
||||
|
||||
const Portrait = props => {
|
||||
return (
|
||||
<a
|
||||
href={props.link}
|
||||
className="portraitContainer"
|
||||
key={props.link}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<img className="portrait" src={props.image} />
|
||||
<div className="overlay">
|
||||
<span>{props.firstName}</span>
|
||||
<span>{props.lastName}</span>
|
||||
</div>
|
||||
</a>
|
||||
);
|
||||
};
|
||||
|
||||
const CommunicationChannel = props => {
|
||||
return (
|
||||
<a
|
||||
className="option"
|
||||
href={props.link}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<img className="icon" src={props.icon} />
|
||||
{props.description}
|
||||
</a>
|
||||
);
|
||||
};
|
||||
|
||||
module.exports = () => {
|
||||
const pinnedMembers = TEAM.filter(member => member.pinned);
|
||||
const membersCeilCount = Math.ceil(pinnedMembers.length / 2);
|
||||
const membersInFistColumn = pinnedMembers.slice(0, membersCeilCount);
|
||||
const membersInSecondColumn = pinnedMembers.slice(membersCeilCount);
|
||||
|
||||
return (
|
||||
<div id="contactPage" className="centered">
|
||||
<div id="mural">
|
||||
<div className="column">{membersInFistColumn.map(Portrait)}</div>
|
||||
<div className="offset column">
|
||||
{membersInSecondColumn.map(Portrait)}
|
||||
</div>
|
||||
</div>
|
||||
<div id="message">
|
||||
<div className="title">Talk to us</div>
|
||||
<div className="communicationOptions">
|
||||
{COMMUNICATION_CHANNELS.map(CommunicationChannel)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
@ -1,54 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
const React = require('react');
|
||||
|
||||
const CompLibrary = require('../../core/CompLibrary.js');
|
||||
|
||||
const Container = CompLibrary.Container;
|
||||
const GridBlock = CompLibrary.GridBlock;
|
||||
|
||||
function Help(props) {
|
||||
const {config: siteConfig, language = ''} = props;
|
||||
const {baseUrl, docsUrl} = siteConfig;
|
||||
const docsPart = `${docsUrl ? `${docsUrl}/` : ''}`;
|
||||
const langPart = `${language ? `${language}/` : ''}`;
|
||||
const docUrl = doc => `${baseUrl}${docsPart}${langPart}${doc}`;
|
||||
|
||||
const supportLinks = [
|
||||
{
|
||||
content: `Learn more using the [documentation on this site.](${docUrl(
|
||||
'doc1.html',
|
||||
)})`,
|
||||
title: 'Browse Docs',
|
||||
},
|
||||
{
|
||||
content: 'Ask questions about the documentation and project',
|
||||
title: 'Join the community',
|
||||
},
|
||||
{
|
||||
content: "Find out what's new with this project",
|
||||
title: 'Stay up to date',
|
||||
},
|
||||
];
|
||||
|
||||
return (
|
||||
<div className="docMainWrapper wrapper">
|
||||
<Container className="mainContainer documentContainer postContainer">
|
||||
<div className="post">
|
||||
<header className="postHeader">
|
||||
<h1>Need help?</h1>
|
||||
</header>
|
||||
<p>This project is maintained by a dedicated group of people.</p>
|
||||
<GridBlock contents={supportLinks} layout="threeColumn" />
|
||||
</div>
|
||||
</Container>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = Help;
|
@ -1,399 +1,98 @@
|
||||
/**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
const React = require('react');
|
||||
const MarkdownBlock = require('../../core/CompLibrary').MarkdownBlock;
|
||||
const CodeExamples = require(`${process.cwd()}/core/CodeExamples`);
|
||||
const docUrl = require(`${process.cwd()}/core/UrlUtils`).docUrl;
|
||||
|
||||
const React = require("react");
|
||||
const FEATURES = [
|
||||
{
|
||||
image: 'img/strong-type-system.svg',
|
||||
title: 'Strong Type System',
|
||||
content: 'Write types, then code. Benefit from the safety of type systems.'
|
||||
},
|
||||
{
|
||||
image: 'img/syntax-agnostic.svg',
|
||||
title: 'Syntax Agnostic',
|
||||
content:
|
||||
'Code in your language. Write PascaLIGO, CameLIGO, or add your own syntax.'
|
||||
},
|
||||
{
|
||||
image: 'img/easy-integration.svg',
|
||||
title: 'Easy Integration',
|
||||
content: 'You can use LIGO as a NodeJS library with Granary'
|
||||
}
|
||||
];
|
||||
|
||||
const CompLibrary = require("../../core/CompLibrary.js");
|
||||
const PARTNERS = [
|
||||
{
|
||||
name: 'Nomadic Labs',
|
||||
image: 'img/nomadic-logo.png',
|
||||
link: 'https://www.nomadic-labs.com/',
|
||||
pinned: true
|
||||
},
|
||||
{
|
||||
name: 'Tocqueville Group',
|
||||
image: 'img/tq-logo.svg',
|
||||
link: 'https://tqgroup.io/',
|
||||
pinned: true
|
||||
},
|
||||
{
|
||||
name: 'Stove Labs',
|
||||
image: 'img/stove-logo.png',
|
||||
link: 'https://stove-labs.com',
|
||||
pinned: true
|
||||
}
|
||||
];
|
||||
|
||||
const hljs = require("highlight.js");
|
||||
|
||||
const MarkdownBlock = CompLibrary.MarkdownBlock; /* Used to read markdown */
|
||||
const Container = CompLibrary.Container;
|
||||
const GridBlock = CompLibrary.GridBlock;
|
||||
|
||||
const pre = "```";
|
||||
|
||||
const pascaligoExampleSmall = `${pre}pascaligo
|
||||
// variant defining pseudo multi-entrypoint actions
|
||||
type action is
|
||||
| Increment of int
|
||||
| Decrement of int
|
||||
|
||||
function add (const a : int ; const b : int) : int is a + b
|
||||
|
||||
function subtract (const a : int ; const b : int) : int is a - b
|
||||
|
||||
// real entrypoint that re-routes the flow based on the action provided
|
||||
function main (const p : action ; const s : int) : (list(operation) * int) is
|
||||
((nil : list(operation)),
|
||||
case p of
|
||||
| Increment (n) -> add (s, n)
|
||||
| Decrement (n) -> subtract (s, n)
|
||||
end)
|
||||
${pre}`;
|
||||
|
||||
const pascaligoExample = pascaligoExampleSmall;
|
||||
const cameligoExampleSmall = `${pre}ocaml
|
||||
type storage = int
|
||||
|
||||
(* variant defining pseudo multi-entrypoint
|
||||
actions *)
|
||||
type action =
|
||||
| Increment of int
|
||||
| Decrement of int
|
||||
|
||||
let add (a: int) (b: int): int = a + b
|
||||
|
||||
let subtract (a: int) (b: int): int = a - b
|
||||
|
||||
(* real entrypoint that re-routes the flow
|
||||
based on the action provided *)
|
||||
let%entry main(p : action) storage =
|
||||
let storage =
|
||||
match p with
|
||||
| Increment n -> add storage n
|
||||
| Decrement n -> subtract storage n
|
||||
in (([] : operation list), storage)
|
||||
${pre}`;
|
||||
|
||||
const cameligoExample = `${pre}ocaml
|
||||
type storage = int
|
||||
|
||||
(* variant defining pseudo multi-entrypoint actions *)
|
||||
type action =
|
||||
| Increment of int
|
||||
| Decrement of int
|
||||
|
||||
let add (a: int) (b: int): int = a + b
|
||||
|
||||
let subtract (a: int) (b: int): int = a - b
|
||||
|
||||
(* real entrypoint that re-routes the flow based on
|
||||
the action provided *)
|
||||
let%entry main(p : action) storage =
|
||||
let storage =
|
||||
match p with
|
||||
| Increment n -> add storage n
|
||||
| Decrement n -> subtract storage n
|
||||
in (([] : operation list), storage)
|
||||
${pre}`;
|
||||
|
||||
const PascalLIGOTab = () => (
|
||||
<div
|
||||
id="tab-group-3-content-4"
|
||||
className="tab-pane active code-snippet"
|
||||
data-group="group_3"
|
||||
tabIndex="-1"
|
||||
>
|
||||
<MarkdownBlock>{pascaligoExampleSmall}</MarkdownBlock>
|
||||
<MarkdownBlock>{pascaligoExample}</MarkdownBlock>
|
||||
const Feature = props => (
|
||||
<div className="feature" key={props.title}>
|
||||
<img src={props.image} />
|
||||
<h1>{props.title}</h1>
|
||||
<p>{props.content}</p>
|
||||
</div>
|
||||
);
|
||||
|
||||
const CamelLIGOTab = () => (
|
||||
<div
|
||||
id="tab-group-3-content-5"
|
||||
className="tab-pane code-snippet"
|
||||
data-group="group_3"
|
||||
tabIndex="-1"
|
||||
const Partner = props => (
|
||||
<a
|
||||
href={props.link}
|
||||
title={props.name}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<MarkdownBlock>{cameligoExampleSmall}</MarkdownBlock>
|
||||
<MarkdownBlock>{cameligoExample}</MarkdownBlock>
|
||||
</div>
|
||||
);
|
||||
|
||||
const LinkButton = props => (
|
||||
<a href={props.href} target={props.target}>
|
||||
<button className={props.className}>{props.children}</button>
|
||||
<img src={props.image} />
|
||||
</a>
|
||||
);
|
||||
|
||||
class HomeSplash extends React.Component {
|
||||
render() {
|
||||
const { siteConfig, language = "" } = this.props;
|
||||
const { baseUrl, docsUrl } = siteConfig;
|
||||
const docsPart = `${docsUrl ? `${docsUrl}/` : ""}`;
|
||||
const langPart = `${language ? `${language}/` : ""}`;
|
||||
const docUrl = doc => `${baseUrl}${docsPart}${langPart}${doc}`;
|
||||
|
||||
const SampleCode = props => (
|
||||
<div className="sample-code-container">
|
||||
<div className="sample-code">
|
||||
<div className="tabs">
|
||||
<div className="nav-tabs">
|
||||
<div
|
||||
id="tab-group-3-tab-4"
|
||||
className="nav-link active"
|
||||
data-group="group_3"
|
||||
data-tab="tab-group-3-content-4"
|
||||
>
|
||||
PascaLIGO
|
||||
</div>
|
||||
<div
|
||||
className="nav-link"
|
||||
data-group="group_3"
|
||||
data-tab="tab-group-3-content-5"
|
||||
>
|
||||
CameLIGO
|
||||
</div>
|
||||
<div className="disabled">ReasonLIGO (coming soon) </div>
|
||||
</div>
|
||||
<div className="tab-content">
|
||||
{PascalLIGOTab()}
|
||||
{CamelLIGOTab()}
|
||||
</div>
|
||||
module.exports = props => {
|
||||
return (
|
||||
<div id="homePage">
|
||||
<div id="intro" className="centered">
|
||||
<div id="callToAction">
|
||||
<ul>
|
||||
<li className="primary">
|
||||
<a href="https://ide.ligolang.org">Try Online</a>
|
||||
</li>
|
||||
<li className="secondary">
|
||||
<a href={docUrl(props.config, 'intro/installation')}>Install</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="preview">
|
||||
<h1>A friendly smart-contract language for Tezos</h1>
|
||||
<p>Michelson was never so easy</p>
|
||||
<CodeExamples MarkdownBlock={MarkdownBlock}></CodeExamples>
|
||||
</div>
|
||||
</div>
|
||||
<div id="features" className="centered">
|
||||
{FEATURES.map(Feature)}
|
||||
</div>
|
||||
<div id="partners">
|
||||
<div className="centered wrapper">
|
||||
<span id="heading">Our Partners</span>
|
||||
<div id="list">
|
||||
{PARTNERS.filter(entry => entry.pinned).map(Partner)}
|
||||
</div>
|
||||
</div>
|
||||
</div >
|
||||
);
|
||||
|
||||
return (
|
||||
<div className="home-container">
|
||||
<div className="home-text">
|
||||
<div className="projectTitle">
|
||||
LIGO is a statically typed high-level smart-contract programming language that compiles to Michelson
|
||||
</div>
|
||||
{/* <h4 className="tagline-text">{siteConfig.tagline}</h4> */}
|
||||
<p className="body subtagline-text">It seeks to be easy to use, extensible and safe.</p>
|
||||
<LinkButton
|
||||
href="https://ide.ligolang.org/"
|
||||
className="large-primary-button"
|
||||
>
|
||||
Try Online
|
||||
</LinkButton>
|
||||
<LinkButton
|
||||
href={docUrl("intro/what-and-why.html")}
|
||||
className="large-secondary-button"
|
||||
>
|
||||
Get Started
|
||||
</LinkButton>
|
||||
|
||||
|
||||
</div>
|
||||
<SampleCode />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class Index extends React.Component {
|
||||
render() {
|
||||
const { config: siteConfig, language = "" } = this.props;
|
||||
const { baseUrl } = siteConfig;
|
||||
|
||||
const Block = props => (
|
||||
<Container
|
||||
padding={["bottom", "top"]}
|
||||
id={props.id}
|
||||
background={props.background}
|
||||
>
|
||||
<GridBlock
|
||||
align="center"
|
||||
contents={props.children}
|
||||
layout={props.layout}
|
||||
/>
|
||||
</Container>
|
||||
);
|
||||
|
||||
const FeatureCallout = () => (
|
||||
<div
|
||||
className="productShowcaseSection paddingBottom"
|
||||
style={{ textAlign: "center" }}
|
||||
>
|
||||
<h2>Feature Callout</h2>
|
||||
<MarkdownBlock>These are features of this project</MarkdownBlock>
|
||||
</div>
|
||||
);
|
||||
|
||||
const TryOut = () => (
|
||||
<Block id="try">
|
||||
{[
|
||||
{
|
||||
content:
|
||||
"To make your landing page more attractive, use illustrations! Check out " +
|
||||
"[**unDraw**](https://undraw.co/) which provides you with customizable illustrations which are free to use. " +
|
||||
"The illustrations you see on this page are from unDraw.",
|
||||
image: `${baseUrl}img/undraw_code_review.svg`,
|
||||
imageAlign: "left",
|
||||
title: "Wonderful SVG Illustrations"
|
||||
}
|
||||
]}
|
||||
</Block>
|
||||
);
|
||||
|
||||
const Description = () => (
|
||||
<Block background="dark">
|
||||
{[
|
||||
{
|
||||
content:
|
||||
"This is another description of how this project is useful",
|
||||
image: `${baseUrl}img/undraw_note_list.svg`,
|
||||
imageAlign: "right",
|
||||
title: "Description"
|
||||
}
|
||||
]}
|
||||
</Block>
|
||||
);
|
||||
|
||||
const LearnHow = () => (
|
||||
<Block background="light">
|
||||
{[
|
||||
{
|
||||
content:
|
||||
"Each new Docusaurus project has **randomly-generated** theme colors.",
|
||||
image: `${baseUrl}img/undraw_youtube_tutorial.svg`,
|
||||
imageAlign: "right",
|
||||
title: "Randomly Generated Theme Colors"
|
||||
}
|
||||
]}
|
||||
</Block>
|
||||
);
|
||||
|
||||
const FeatureCard = props => (
|
||||
<div className="card" key={props.title}>
|
||||
<img src={props.image} />
|
||||
<div className="card-text">
|
||||
<h4>{props.title}</h4>
|
||||
<p className="body">{props.content}</p>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
const Features = () => (
|
||||
<div className="features">
|
||||
<h2>Features</h2>
|
||||
|
||||
<div className="flex-inline-container">
|
||||
{[
|
||||
{
|
||||
content:
|
||||
"Write types, then code, and benefit from the safety coming from type systems.",
|
||||
image: `${baseUrl}img/strong-type-system.svg`,
|
||||
title: "Strong Type System"
|
||||
},
|
||||
{
|
||||
content:
|
||||
"Write in PascaLIGO (pascal-like syntax) or CameLIGO (caml-like syntax). If you know OCaml, you can also add your own syntax.",
|
||||
image: `${baseUrl}img/syntax-agnostic.svg`,
|
||||
title: "Syntax Agnostic"
|
||||
},
|
||||
|
||||
{
|
||||
content: "With Granary, you can use LIGO as a lib from NodeJS.",
|
||||
image: `${baseUrl}img/easy-integration.svg`,
|
||||
title: "Easy Integration"
|
||||
}
|
||||
].map(FeatureCard)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
const Roadmap = () => (
|
||||
<div className="roadmap">
|
||||
<Block background="light">
|
||||
{[
|
||||
{
|
||||
content:
|
||||
"<h4>June 2019</h4>" +
|
||||
"<em><ul>" +
|
||||
"<li>First public release</li>" +
|
||||
"<li>PascaLIGO and CameLIGO syntaxes</li>" +
|
||||
"<li>Docs and Tutorials</li>" +
|
||||
"<li>Integration testing in ReasonML/JS with Granary</li>" +
|
||||
"</ul></em>" +
|
||||
"<h4>July 2019</h4>" +
|
||||
"<em><ul>" +
|
||||
"<li>Try LIGO online editor</li>" +
|
||||
"<li>Unit testing toolkit</li>" +
|
||||
"<li>ReasonLIGO syntax support</li>" +
|
||||
"<li>Repository with best practices & patterns for LIGO</li>" +
|
||||
"</ul></em>" +
|
||||
"<h4>August 2019</h4>" +
|
||||
"<em>" +
|
||||
"Long term plans will be announced soon" +
|
||||
"</em>",
|
||||
image: ``,
|
||||
imageAlign: "right",
|
||||
title: "Roadmap"
|
||||
}
|
||||
]}
|
||||
</Block>
|
||||
</div>
|
||||
);
|
||||
|
||||
const Partners = () => {
|
||||
if ((siteConfig.partners || []).length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const PartnerShowcase = siteConfig.partners
|
||||
.filter(user => user.pinned)
|
||||
.map(user => (
|
||||
<a className="partner-link" href={user.infoLink} key={user.infoLink}>
|
||||
<img src={user.image} alt={user.caption} title={user.caption} />
|
||||
</a>
|
||||
));
|
||||
|
||||
return (
|
||||
<div className="partners-container-wrapper hide-small">
|
||||
<div className="partners-container">
|
||||
{PartnerShowcase}
|
||||
<div className="partners-text">
|
||||
<h3>Partners</h3>
|
||||
<p>We're not alone in this world.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
const Team = () => {
|
||||
if ((siteConfig.team || []).length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const showcase = siteConfig.team
|
||||
.filter(user => user.pinned)
|
||||
.map(user => (
|
||||
<a
|
||||
className="profileContainer"
|
||||
href={user.infoLink}
|
||||
key={user.infoLink}
|
||||
>
|
||||
<img className="profileImage" src={user.image} alt={user.caption} />
|
||||
<p className="headline">{user.caption}</p>
|
||||
</a>
|
||||
));
|
||||
|
||||
return (
|
||||
<div className="team">
|
||||
<h2>Team</h2>
|
||||
<div className="flex-inline-container">{showcase}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="landing">
|
||||
<HomeSplash siteConfig={siteConfig} language={language} />
|
||||
<div className="mainContainer">
|
||||
<Features />
|
||||
{/* <Roadmap /> */}
|
||||
{/* <FeatureCallout /> */}
|
||||
{/* {/* <LearnHow /> */}
|
||||
{/* <TryOut /> */}
|
||||
{/* <Description /> */}
|
||||
<Team />
|
||||
<Partners />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Index;
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
@ -1,48 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
const React = require('react');
|
||||
|
||||
const CompLibrary = require('../../core/CompLibrary.js');
|
||||
|
||||
const Container = CompLibrary.Container;
|
||||
|
||||
class Users extends React.Component {
|
||||
render() {
|
||||
const {config: siteConfig} = this.props;
|
||||
if ((siteConfig.users || []).length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const editUrl = `${siteConfig.repoUrl}/edit/master/website/siteConfig.js`;
|
||||
const showcase = siteConfig.users.map(user => (
|
||||
<a href={user.infoLink} key={user.infoLink}>
|
||||
<img src={user.image} alt={user.caption} title={user.caption} />
|
||||
</a>
|
||||
));
|
||||
|
||||
return (
|
||||
<div className="mainContainer">
|
||||
<Container padding={['bottom', 'top']}>
|
||||
<div className="showcaseSection">
|
||||
<div className="prose">
|
||||
<h1>Who is Using This?</h1>
|
||||
<p>This project is used by many folks</p>
|
||||
</div>
|
||||
<div className="logos">{showcase}</div>
|
||||
<p>Are you using this project?</p>
|
||||
<a href={editUrl} className="button">
|
||||
Add your company
|
||||
</a>
|
||||
</div>
|
||||
</Container>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Users;
|
@ -1,157 +1,90 @@
|
||||
/**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
// See https://docusaurus.io/docs/site-config for all the possible
|
||||
// site configuration options.
|
||||
|
||||
// List of projects/orgs using your project for the users page.
|
||||
const partners = [
|
||||
{
|
||||
caption: "Nomadic Labs",
|
||||
// You will need to prepend the image path with your baseUrl
|
||||
// if it is not '/', like: '/test-site/img/image.jpg'.
|
||||
image: "/img/nomadic-logo.svg",
|
||||
infoLink: "https://www.nomadic-labs.com/",
|
||||
pinned: true
|
||||
},
|
||||
{
|
||||
caption: "Tocqueville Group",
|
||||
// You will need to prepend the image path with your baseUrl
|
||||
// if it is not '/', like: '/test-site/img/image.jpg'.
|
||||
image: "/img/tq-logo-2.svg",
|
||||
infoLink: "https://tqgroup.io/",
|
||||
pinned: true
|
||||
},
|
||||
{
|
||||
caption: "Stove Labs",
|
||||
// You will need to prepend the image path with your baseUrl
|
||||
// if it is not '/', like: '/test-site/img/image.jpg'.
|
||||
image: "/img/stove-logo.svg",
|
||||
infoLink: "https://stove-labs.com",
|
||||
pinned: true
|
||||
}
|
||||
];
|
||||
|
||||
const team = [
|
||||
{
|
||||
caption: "Gabriel Alfour",
|
||||
// You will need to prepend the image path with your baseUrl
|
||||
// if it is not '/', like: '/test-site/img/image.jpg'.
|
||||
image: "/img/user.svg",
|
||||
infoLink: "https://gitlab.com/gabriel.alfour",
|
||||
pinned: true
|
||||
},
|
||||
{
|
||||
caption: "Georges Dupéron",
|
||||
// You will need to prepend the image path with your baseUrl
|
||||
// if it is not '/', like: '/test-site/img/image.jpg'.
|
||||
image: "/img/user.svg",
|
||||
infoLink: "https://gitlab.com/georges.duperon",
|
||||
pinned: true
|
||||
},
|
||||
{
|
||||
caption: "Christian Rinderknecht",
|
||||
// You will need to prepend the image path with your baseUrl
|
||||
// if it is not '/', like: '/test-site/img/image.jpg'.
|
||||
image: "/img/christian.jpeg",
|
||||
infoLink: "https://github.com/rinderknecht",
|
||||
pinned: true
|
||||
},
|
||||
{
|
||||
caption: "Brice Aldrich",
|
||||
// You will need to prepend the image path with your baseUrl
|
||||
// if it is not '/', like: '/test-site/img/image.jpg'.
|
||||
image: "/img/brice.png",
|
||||
infoLink: "https://github.com/DefinitelyNotAGoat",
|
||||
pinned: true
|
||||
},
|
||||
{
|
||||
caption: "Matej Sima",
|
||||
// You will need to prepend the image path with your baseUrl
|
||||
// if it is not '/', like: '/test-site/img/image.jpg'.
|
||||
image: "/img/matej.jpg",
|
||||
infoLink: "https://github.com/maht0rz",
|
||||
pinned: true
|
||||
}
|
||||
];
|
||||
const repoUrl = 'https://gitlab.com/ligolang/ligo';
|
||||
|
||||
const siteConfig = {
|
||||
title: "LIGO", // Title for your website.
|
||||
tagline:
|
||||
"LIGO is a friendly smart-contract language for Tezos",
|
||||
taglineSub: "Michelson was never so easy",
|
||||
url: "https://ligolang.org", // Your website URL
|
||||
baseUrl: "/", // Base URL for your project */
|
||||
title: 'LIGO', // Title for your website.
|
||||
tagline: 'LIGO is a friendly smart-contract language for Tezos',
|
||||
taglineSub: 'Michelson was never so easy',
|
||||
url: 'https://ligolang.org', // Your website URL
|
||||
baseUrl: '/', // Base URL for your project */
|
||||
// For github.io type URLs, you would set the url and baseUrl like:
|
||||
// url: 'https://facebook.github.io',
|
||||
// baseUrl: '/test-site/',
|
||||
|
||||
// Used for publishing and more
|
||||
projectName: "ligo",
|
||||
organizationName: "marigold",
|
||||
projectName: 'ligo',
|
||||
organizationName: 'marigold',
|
||||
// For top-level user or org sites, the organization is still the same.
|
||||
// e.g., for the https://JoelMarcey.github.io site, it would be set like...
|
||||
// organizationName: 'JoelMarcey'
|
||||
|
||||
// For no header links in the top nav bar -> headerLinks: [],
|
||||
headerLinks: [
|
||||
{ doc: "intro/what-and-why", label: "Docs" },
|
||||
{ href: 'https://ide.ligolang.org/', label: 'Try Online' },
|
||||
{ doc: 'intro/installation', label: 'Install' },
|
||||
{ doc: 'intro/what-and-why', label: 'Docs' },
|
||||
{
|
||||
doc: "tutorials/get-started/tezos-taco-shop-smart-contract",
|
||||
label: "Tutorials"
|
||||
doc: 'tutorials/get-started/tezos-taco-shop-smart-contract',
|
||||
label: 'Tutorials'
|
||||
},
|
||||
{ blog: true, label: "Blog" },
|
||||
{ blog: true, label: 'Blog' },
|
||||
// TODO: { href: "/odoc", label: "Api" },
|
||||
{ doc: "contributors/origin", label: "Contribute" },
|
||||
{ href: "https://discord.gg/9rhYaEt", label: "" },
|
||||
// { doc: 'contributors/origin', label: 'Contribute' },
|
||||
{ href: '/contact', label: 'Ask Questions' },
|
||||
{ search: true }
|
||||
],
|
||||
|
||||
// If you have users set above, you add it here:
|
||||
partners,
|
||||
team,
|
||||
footerLinks: {
|
||||
docs: [
|
||||
{ doc: 'intro/installation', label: 'Install' },
|
||||
{ doc: 'api/cli-commands', label: 'CLI Commands' },
|
||||
{ doc: 'contributors/origin', label: 'Contribute' },
|
||||
{ href: '/odoc', label: 'Api Documentation' }
|
||||
],
|
||||
community: [
|
||||
{
|
||||
href: 'https://tezos.stackexchange.com/questions/tagged/ligo',
|
||||
label: 'Tezos Stack Exchange',
|
||||
blankTarget: true
|
||||
},
|
||||
{
|
||||
href: 'https://discord.gg/9rhYaEt',
|
||||
label: 'Discord',
|
||||
blankTarget: true
|
||||
}
|
||||
],
|
||||
more: [
|
||||
{
|
||||
doc: 'tutorials/get-started/tezos-taco-shop-smart-contract',
|
||||
label: 'Tutorials'
|
||||
},
|
||||
{ href: repoUrl, label: 'Gitlab' }
|
||||
]
|
||||
},
|
||||
|
||||
/* path to images for header/footer */
|
||||
footerIcon: "img/logo.svg",
|
||||
favicon: "img/logo.svg",
|
||||
footerIcon: 'img/logo.svg',
|
||||
favicon: 'img/logo.svg',
|
||||
|
||||
/* Colors for website */
|
||||
colors: {
|
||||
primaryColor: "#1A1A1A",
|
||||
secondaryColor: "#1A1A1A"
|
||||
primaryColor: '#1A1A1A',
|
||||
secondaryColor: '#1A1A1A'
|
||||
},
|
||||
|
||||
/* Custom fonts for website */
|
||||
/*
|
||||
fonts: {
|
||||
myFont: [
|
||||
"Times New Roman",
|
||||
"Serif"
|
||||
],
|
||||
myOtherFont: [
|
||||
"-apple-system",
|
||||
"system-ui"
|
||||
]
|
||||
},
|
||||
*/
|
||||
|
||||
// This copyright info is used in /core/Footer.js and blog RSS/Atom feeds.
|
||||
copyright: `© ${new Date().getFullYear()} LIGO. All rights reserved.`,
|
||||
|
||||
highlight: {
|
||||
// Highlight.js theme to use for syntax highlighting in code blocks.
|
||||
theme: "default",
|
||||
hljs: function (hljs) {
|
||||
hljs.registerLanguage('pascaligo', function (hljs) {
|
||||
theme: 'default',
|
||||
hljs: function(hljs) {
|
||||
hljs.registerLanguage('pascaligo', function(hljs) {
|
||||
return {
|
||||
// case_insensitive: true,
|
||||
beginKeywords: '',
|
||||
keywords: {
|
||||
keyword: 'and begin block case const contains down else end fail for ' +
|
||||
keyword:
|
||||
'and begin block case const contains down else end fail for ' +
|
||||
'from function if in is list map mod nil not of or patch ' +
|
||||
'procedure record remove set skip step then to type var while with',
|
||||
literal: 'true false unit int string some none bool nat list'
|
||||
@ -165,26 +98,26 @@ const siteConfig = {
|
||||
begin: /[A-Z][a-z]+/
|
||||
},
|
||||
{
|
||||
begin: /[*+-:;\(\)\{\}|\>\<]/,
|
||||
begin: /[*+-:;\(\)\{\}|\>\<]/
|
||||
// className: 'ignore'
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// Add custom scripts here that would be placed in <script> tags.
|
||||
scripts: ["https://buttons.github.io/buttons.js"],
|
||||
scripts: ['https://buttons.github.io/buttons.js'],
|
||||
|
||||
// On page navigation for the current documentation page.
|
||||
onPageNav: "separate",
|
||||
onPageNav: 'separate',
|
||||
// No .html extensions for paths.
|
||||
cleanUrl: true,
|
||||
|
||||
// Open Graph and Twitter card images.
|
||||
ogImage: "img/logo.svg",
|
||||
twitterImage: "img/undraw_tweetstorm.svg",
|
||||
ogImage: 'img/logo.svg',
|
||||
twitterImage: 'img/undraw_tweetstorm.svg',
|
||||
|
||||
// Show documentation's last contributor's name.
|
||||
// enableUpdateBy: true,
|
||||
@ -194,15 +127,17 @@ const siteConfig = {
|
||||
|
||||
// You may provide arbitrary config keys to be used as needed by your
|
||||
// template. For example, if you need your repo's URL...
|
||||
repoUrl: "https://gitlab.com/ligolang/ligo",
|
||||
repoUrl: repoUrl,
|
||||
stylesheets: [
|
||||
"https://fonts.googleapis.com/css?family=DM+Sans|Open+Sans|Source+Code+Pro&display=swap"
|
||||
'https://fonts.googleapis.com/css?family=DM+Sans:400,400i,500,500i,700,700i|Open+Sans:300,300i,400,600|Source+Code+Pro&display=swap'
|
||||
],
|
||||
algolia: {
|
||||
apiKey: "12be98d9fd4242a5f16b70a5cc6b0158",
|
||||
indexName: "ligolang",
|
||||
apiKey: '12be98d9fd4242a5f16b70a5cc6b0158',
|
||||
indexName: 'ligolang',
|
||||
algoliaOptions: {} // Optional, if provided by Algolia
|
||||
}
|
||||
},
|
||||
gaTrackingId: 'UA-153751765-1',
|
||||
gaGtag: true
|
||||
};
|
||||
|
||||
module.exports = siteConfig;
|
||||
|
1
gitlab-pages/website/static/img/404-mural/polygon1.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible" preserveAspectRatio="none" viewBox="0 0 80 159" width="80" height="159"><g transform="translate(0, 0)"><defs><path id="path-157428812574316601" d="M6.511627906976745 -58.78991596638658 C6.511627906976745 -58.78991596638658 86.51162790697681 100.21008403361328 86.51162790697681 100.21008403361328 C86.51162790697681 100.21008403361328 48.10626362645352 100.21008403361328 48.10626362645352 100.21008403361328 C48.10626362645352 100.21008403361328 6.511627906976745 100.21008403361328 6.511627906976745 100.21008403361328 C6.511627906976745 100.21008403361328 6.511627906976745 -58.78991596638658 6.511627906976745 -58.78991596638658 Z" vector-effect="non-scaling-stroke"/></defs><g transform="translate(-6.511627906976745, 58.78991596638658)"><path style="stroke-width: 0px; stroke: rgb(140, 140, 140); stroke-linecap: butt; stroke-linejoin: miter; fill: rgba(73, 114, 158, 0.4);" d="M6.511627906976745 -58.78991596638658 C6.511627906976745 -58.78991596638658 86.51162790697681 100.21008403361328 86.51162790697681 100.21008403361328 C86.51162790697681 100.21008403361328 48.10626362645352 100.21008403361328 48.10626362645352 100.21008403361328 C48.10626362645352 100.21008403361328 6.511627906976745 100.21008403361328 6.511627906976745 100.21008403361328 C6.511627906976745 100.21008403361328 6.511627906976745 -58.78991596638658 6.511627906976745 -58.78991596638658 Z" vector-effect="non-scaling-stroke"/></g></g></svg>
|
After Width: | Height: | Size: 1.5 KiB |
1
gitlab-pages/website/static/img/404-mural/polygon2.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible" preserveAspectRatio="none" viewBox="0 0 164 156" width="164" height="156"><g transform="translate(0, 0)"><defs><path id="path-157428812574116595" d="M-78.31460674157296 -56.00000000000001 C-78.31460674157296 -56.00000000000001 85.68539325842703 100.00000000000011 85.68539325842703 100.00000000000011 C85.68539325842703 100.00000000000011 6.449438202247191 100.00000000000011 6.449438202247191 100.00000000000011 C6.449438202247191 100.00000000000011 -78.31460674157296 -56.00000000000001 -78.31460674157296 -56.00000000000001 Z" vector-effect="non-scaling-stroke"/><linearGradient id="gradient-157428812580616791" x1="50%" y1="100%" x2="50%" y2="0%" vector-effect="non-scaling-stroke"><stop offset="14%" stop-color="rgba(58,160,255,1)" stop-opacity="1" vector-effect="non-scaling-stroke"/><stop offset="98%" stop-color="rgba(0,114,220,1)" stop-opacity="1" vector-effect="non-scaling-stroke"/><stop offset="98%" stop-color="rgba(58,160,255,1)" stop-opacity="1" vector-effect="non-scaling-stroke"/><stop offset="98%" stop-color="rgba(58,160,255,1)" stop-opacity="1" vector-effect="non-scaling-stroke"/><stop offset="100%" stop-color="rgba(26,213,253,1)" stop-opacity="1" vector-effect="non-scaling-stroke"/></linearGradient></defs><g transform="translate(78.31460674157296, 56.00000000000001)"><path style="stroke-width: 0px; stroke: rgb(140, 140, 140); stroke-linecap: butt; stroke-linejoin: miter; fill: url("#gradient-157428812580616791");" d="M-78.31460674157296 -56.00000000000001 C-78.31460674157296 -56.00000000000001 85.68539325842703 100.00000000000011 85.68539325842703 100.00000000000011 C85.68539325842703 100.00000000000011 6.449438202247191 100.00000000000011 6.449438202247191 100.00000000000011 C6.449438202247191 100.00000000000011 -78.31460674157296 -56.00000000000001 -78.31460674157296 -56.00000000000001 Z" vector-effect="non-scaling-stroke"/></g></g></svg>
|
After Width: | Height: | Size: 2.0 KiB |
1
gitlab-pages/website/static/img/404-mural/polygon3.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible" preserveAspectRatio="none" viewBox="0 0 189 168" width="189" height="168"><g transform="translate(0, 0)"><defs><path id="path-157428812574216598" d="M6.453658536585365 -58.666666666666615 C6.453658536585365 -58.666666666666615 195.45365853658552 -67.99999999999994 195.45365853658552 -67.99999999999994 C195.45365853658552 -67.99999999999994 6.453658536585365 100.00000000000006 6.453658536585365 100.00000000000006 C6.453658536585365 100.00000000000006 6.453658536585365 -58.666666666666615 6.453658536585365 -58.666666666666615 Z" vector-effect="non-scaling-stroke"/></defs><g transform="translate(-6.453658536585365, 67.99999999999994)"><path style="stroke-width: 0px; stroke: rgb(140, 140, 140); stroke-linecap: butt; stroke-linejoin: miter; fill: rgb(252, 104, 58);" d="M6.453658536585365 -58.666666666666615 C6.453658536585365 -58.666666666666615 195.45365853658552 -67.99999999999994 195.45365853658552 -67.99999999999994 C195.45365853658552 -67.99999999999994 6.453658536585365 100.00000000000006 6.453658536585365 100.00000000000006 C6.453658536585365 100.00000000000006 6.453658536585365 -58.666666666666615 6.453658536585365 -58.666666666666615 Z" vector-effect="non-scaling-stroke"/></g></g></svg>
|
After Width: | Height: | Size: 1.3 KiB |
1
gitlab-pages/website/static/img/404-mural/polygon4.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible" preserveAspectRatio="none" viewBox="0 0 220 175" width="220" height="175"><g transform="translate(0, 0)"><defs><path id="path-157428812574016592" d="M118.31932773109256 -188.36718749999983 C118.31932773109256 -188.36718749999983 145 -13 145 -13 C145 -13 -75 -27 -75 -27 C-75 -27 118.31932773109256 -188.36718749999983 118.31932773109256 -188.36718749999983 Z" vector-effect="non-scaling-stroke"/></defs><g transform="translate(75, 188.36718749999983)"><path style="stroke-width: 0px; stroke: rgb(140, 140, 140); stroke-linecap: butt; stroke-linejoin: miter; fill: rgba(73, 114, 158, 0.4);" d="M118.31932773109256 -188.36718749999983 C118.31932773109256 -188.36718749999983 145 -13 145 -13 C145 -13 -75 -27 -75 -27 C-75 -27 118.31932773109256 -188.36718749999983 118.31932773109256 -188.36718749999983 Z" vector-effect="non-scaling-stroke"/></g></g></svg>
|
After Width: | Height: | Size: 970 B |
1
gitlab-pages/website/static/img/404-mural/polygon5.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible" preserveAspectRatio="none" viewBox="0 0 57 318" width="57" height="318"><g transform="translate(0, 0)"><defs><path id="path-157428812573916589" d="M-36.77419354838707 -157.6638655462185 C-36.77419354838707 -157.6638655462185 20.22580645161288 -157.6638655462185 20.22580645161288 -157.6638655462185 C20.22580645161288 -157.6638655462185 14.709677419354833 160.3361344537815 14.709677419354833 160.3361344537815 C14.709677419354833 160.3361344537815 -36.77419354838707 -157.6638655462185 -36.77419354838707 -157.6638655462185 Z" vector-effect="non-scaling-stroke"/></defs><g transform="translate(36.77419354838707, 157.6638655462185)"><path style="stroke-width: 0px; stroke: rgb(140, 140, 140); stroke-linecap: butt; stroke-linejoin: miter; fill: rgb(13, 15, 51);" d="M-36.77419354838707 -157.6638655462185 C-36.77419354838707 -157.6638655462185 20.22580645161288 -157.6638655462185 20.22580645161288 -157.6638655462185 C20.22580645161288 -157.6638655462185 14.709677419354833 160.3361344537815 14.709677419354833 160.3361344537815 C14.709677419354833 160.3361344537815 -36.77419354838707 -157.6638655462185 -36.77419354838707 -157.6638655462185 Z" vector-effect="non-scaling-stroke"/></g></g></svg>
|
After Width: | Height: | Size: 1.3 KiB |
BIN
gitlab-pages/website/static/img/brice.jpeg
Normal file
After Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 1.2 MiB |
@ -1 +1 @@
|
||||
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 245 240"><style>.st0{fill:#3aa0ff;}</style><path class="st0" d="M104.4 103.9c-5.7 0-10.2 5-10.2 11.1s4.6 11.1 10.2 11.1c5.7 0 10.2-5 10.2-11.1.1-6.1-4.5-11.1-10.2-11.1zM140.9 103.9c-5.7 0-10.2 5-10.2 11.1s4.6 11.1 10.2 11.1c5.7 0 10.2-5 10.2-11.1s-4.5-11.1-10.2-11.1z"/><path class="st0" d="M189.5 20h-134C44.2 20 35 29.2 35 40.6v135.2c0 11.4 9.2 20.6 20.5 20.6h113.4l-5.3-18.5 12.8 11.9 12.1 11.2 21.5 19V40.6c0-11.4-9.2-20.6-20.5-20.6zm-38.6 130.6s-3.6-4.3-6.6-8.1c13.1-3.7 18.1-11.9 18.1-11.9-4.1 2.7-8 4.6-11.5 5.9-5 2.1-9.8 3.5-14.5 4.3-9.6 1.8-18.4 1.3-25.9-.1-5.7-1.1-10.6-2.7-14.7-4.3-2.3-.9-4.8-2-7.3-3.4-.3-.2-.6-.3-.9-.5-.2-.1-.3-.2-.4-.3-1.8-1-2.8-1.7-2.8-1.7s4.8 8 17.5 11.8c-3 3.8-6.7 8.3-6.7 8.3-22.1-.7-30.5-15.2-30.5-15.2 0-32.2 14.4-58.3 14.4-58.3 14.4-10.8 28.1-10.5 28.1-10.5l1 1.2c-18 5.2-26.3 13.1-26.3 13.1s2.2-1.2 5.9-2.9c10.7-4.7 19.2-6 22.7-6.3.6-.1 1.1-.2 1.7-.2 6.1-.8 13-1 20.2-.2 9.5 1.1 19.7 3.9 30.1 9.6 0 0-7.9-7.5-24.9-12.7l1.4-1.6s13.7-.3 28.1 10.5c0 0 14.4 26.1 14.4 58.3 0 0-8.5 14.5-30.6 15.2z"/></svg>
|
||||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible" preserveAspectRatio="none" viewBox="0 0 26 26" id="svg6_1573384242198" width="50" height="50"><g transform="translate(1, 1)"><defs/><path style="fill: rgb(0, 114, 220); fill-opacity: 0.678431;" id="path4_1573384242198" d="M20.222 0c1.406 0 2.54 1.137 2.607 2.475V24l-2.677-2.273-1.47-1.338-1.604-1.398.67 2.205H3.71c-1.402 0-2.54-1.065-2.54-2.476V2.48C1.17 1.142 2.31.003 3.715.003h16.5L20.222 0zm-6.118 5.683h-.03l-.202.2c2.073.6 3.076 1.537 3.076 1.537-1.336-.668-2.54-1.002-3.744-1.137-.87-.135-1.74-.064-2.475 0h-.2c-.47 0-1.47.2-2.81.735-.467.203-.735.336-.735.336s1.002-1.002 3.21-1.537l-.135-.135s-1.672-.064-3.477 1.27c0 0-1.805 3.144-1.805 7.02 0 0 1 1.74 3.743 1.806 0 0 .4-.533.805-1.002-1.54-.468-2.14-1.404-2.14-1.404s.134.066.335.2h.06c.03 0 .044.015.06.03v.006c.016.016.03.03.06.03.33.136.66.27.93.4.466.202 1.065.403 1.8.536.93.135 1.996.2 3.21 0 .6-.135 1.2-.267 1.8-.535.39-.2.87-.4 1.397-.737 0 0-.6.936-2.205 1.404.33.466.795 1 .795 1 2.744-.06 3.81-1.8 3.87-1.726 0-3.87-1.815-7.02-1.815-7.02-1.635-1.214-3.165-1.26-3.435-1.26l.056-.02zm.168 4.413c.703 0 1.27.6 1.27 1.335 0 .74-.57 1.34-1.27 1.34-.7 0-1.27-.6-1.27-1.334.002-.74.573-1.338 1.27-1.338zm-4.543 0c.7 0 1.266.6 1.266 1.335 0 .74-.57 1.34-1.27 1.34-.7 0-1.27-.6-1.27-1.334 0-.74.57-1.338 1.27-1.338z" vector-effect="non-scaling-stroke"/></g></svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.4 KiB |
BIN
gitlab-pages/website/static/img/gabriel.jpeg
Normal file
After Width: | Height: | Size: 22 KiB |
1
gitlab-pages/website/static/img/gitlab.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible" preserveAspectRatio="none" viewBox="0 0 26 26" id="svg6_1573384242206" width="50" height="50"><g transform="translate(1, 1)"><defs/><path style="fill: rgb(255, 72, 0); fill-opacity: 0.678431;" id="path4_1573384242206" d="M23.955 13.587l-1.342-4.135-2.664-8.189c-.135-.423-.73-.423-.867 0L16.418 9.45H7.582L4.919 1.263C4.783.84 4.185.84 4.05 1.26L1.386 9.449.044 13.587c-.121.375.014.789.331 1.023L12 23.054l11.625-8.443c.318-.235.453-.647.33-1.024" vector-effect="non-scaling-stroke"/></g></svg>
|
After Width: | Height: | Size: 611 B |
BIN
gitlab-pages/website/static/img/matej.jpeg
Normal file
After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 4.0 KiB |
BIN
gitlab-pages/website/static/img/nomadic-logo.png
Normal file
After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 236 KiB |
BIN
gitlab-pages/website/static/img/sander.jpeg
Normal file
After Width: | Height: | Size: 20 KiB |
1
gitlab-pages/website/static/img/search_icon.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible" preserveAspectRatio="none" viewBox="1 1 22.289999961853027 22.710000038146973" height="39" width="35"><g transform="translate(6, 6)"><g fill="none" stroke="#6c6c6c" stroke-width="2"><path d="M11.29 11.71l-4-4" style="fill: rgba(218, 218, 218, 0); stroke: rgb(255, 255, 255); stroke-width: 6px;" vector-effect="non-scaling-stroke"/><circle r="4" cy="5" cx="5" style="fill: rgba(218, 218, 218, 0); stroke: rgb(255, 255, 255); stroke-width: 6px;" vector-effect="non-scaling-stroke"/></g></g></svg>
|
After Width: | Height: | Size: 610 B |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 11 KiB |
BIN
gitlab-pages/website/static/img/suzanne.jpeg
Normal file
After Width: | Height: | Size: 24 KiB |
@ -1,17 +0,0 @@
|
||||
<svg width="108" height="66" viewBox="0 0 108 66" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.3" clip-path="url(#clip0)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M73.9777 1.32883C56.4584 1.32883 42.2529 15.6534 42.2529 33.318C42.2529 50.9901 56.4584 65.3134 73.9777 65.3134C74.3753 65.3134 74.7717 65.3071 75.1631 65.2873V54.3835C74.7717 54.4034 74.3753 54.4158 73.9777 54.4158C62.4225 54.4158 53.0535 44.9687 53.0535 33.318C53.0535 21.6723 62.4213 12.2251 73.9777 12.2251C85.0257 12.2251 94.0734 20.8645 94.8489 31.8018H105.675C104.888 14.8382 91.0021 1.32883 73.9777 1.32883Z" fill="black"/>
|
||||
<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="41" y="0" width="66" height="66">
|
||||
<path d="M41.7949 0.866028H106.157V65.7749H41.7949V0.866028Z" fill="black"/>
|
||||
</mask>
|
||||
<g mask="url(#mask0)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M73.9776 1.79015C56.7377 1.79015 42.7132 15.9347 42.7132 33.3177C42.7132 50.7044 56.7365 64.849 73.9776 64.849C74.2201 64.849 74.4626 64.849 74.7038 64.8403V54.8647C74.4626 54.8733 74.2201 54.8783 73.9776 54.8783C62.1873 54.8783 52.5955 45.2054 52.5955 33.3177C52.5955 21.4313 62.1873 11.7621 73.9776 11.7621C84.9997 11.7621 94.2715 20.327 95.271 31.3387H105.193C104.17 14.73 90.5527 1.79015 73.9763 1.79015H73.9776ZM73.9763 65.7734C56.233 65.7758 41.7949 51.2144 41.7949 33.3177C41.7949 15.4248 56.233 0.867027 73.9776 0.867027C91.2039 0.867027 105.328 14.4458 106.133 31.7804L106.158 32.2643H94.4216L94.3909 31.835C93.6301 21.0963 84.6649 12.6877 73.9776 12.6877C62.6932 12.6877 53.5126 21.94 53.5126 33.3177C53.5126 44.6954 62.6932 53.9527 73.9776 53.9527C74.3666 53.9527 74.7568 53.9403 75.1396 53.9204L75.6197 53.8969V65.7262L75.1852 65.7486C74.7876 65.7684 74.3826 65.7746 73.9788 65.7746" fill="black"/>
|
||||
</g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.713867 0.945824H74.2893V11.5481H32.6282V65.0259H21.1899V11.5481H0.713867V0.945824ZM91.5131 43.2978L85.7399 50.643L101.594 63.8831L107.374 56.6942L91.5131 43.2978Z" fill="black"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0">
|
||||
<rect width="107.095" height="65.76" fill="white" transform="translate(0.713867 0.0781555)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.1 KiB |
@ -1,16 +1,16 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="87" height="53" viewBox="0 0 87 53">
|
||||
<defs>
|
||||
<polygon id="logo-a" points=".351 .415 52.636 .415 52.636 52.729 .351 52.729"/>
|
||||
<polygon id="logo-a" points=".351 .415 52.636 .415 52.636 52.729 .351 52.729" />
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path fill="#2C7DF7" d="M59.516954,1.00802118 C45.2851511,1.00802118 33.7452679,12.5525859 33.7452679,26.7895271 C33.7452679,41.0328212 45.2851511,52.5767506 59.516954,52.5767506 C59.8395526,52.5767506 60.1621511,52.5716682 60.4796693,52.5557859 L60.4796693,43.7677624 C60.1621511,43.7836447 59.8395526,43.7944447 59.516954,43.7944447 C50.1298445,43.7944447 42.5189321,36.1804447 42.5189321,26.7895271 C42.5189321,17.4043271 50.1298445,9.79032706 59.516954,9.79032706 C68.4919248,9.79032706 75.8424723,16.7531506 76.4717934,25.5678565 L85.2670489,25.5678565 C84.6269321,11.8963271 73.3461438,1.00802118 59.516954,1.00802118"/>
|
||||
<path fill="white" d="M59.516954,1.00802118 C45.2851511,1.00802118 33.7452679,12.5525859 33.7452679,26.7895271 C33.7452679,41.0328212 45.2851511,52.5767506 59.516954,52.5767506 C59.8395526,52.5767506 60.1621511,52.5716682 60.4796693,52.5557859 L60.4796693,43.7677624 C60.1621511,43.7836447 59.8395526,43.7944447 59.516954,43.7944447 C50.1298445,43.7944447 42.5189321,36.1804447 42.5189321,26.7895271 C42.5189321,17.4043271 50.1298445,9.79032706 59.516954,9.79032706 C68.4919248,9.79032706 75.8424723,16.7531506 76.4717934,25.5678565 L85.2670489,25.5678565 C84.6269321,11.8963271 73.3461438,1.00802118 59.516954,1.00802118" />
|
||||
<g transform="translate(33.022 .22)">
|
||||
<mask id="logo-b" fill="#fff">
|
||||
<use xlink:href="#logo-a"/>
|
||||
<use xlink:href="#logo-a" />
|
||||
</mask>
|
||||
<path fill="#2C7DF7" d="M26.4950562,1.16055529 C12.4893263,1.16055529 1.09677153,12.5590024 1.09677153,26.5697788 C1.09677153,40.5830965 12.4893263,51.9834494 26.4950562,51.9834494 C26.6919175,51.9834494 26.8887788,51.9821788 27.0843701,51.9764612 L27.0843701,43.9361788 C26.8887788,43.9431671 26.6919175,43.9469788 26.4950562,43.9469788 C16.9168007,43.9469788 9.12426788,36.1512847 9.12426788,26.5697788 C9.12426788,16.9908141 16.9168007,9.19702588 26.4950562,9.19702588 C35.4490708,9.19702588 42.9812387,16.1001318 43.7934504,24.9745553 L51.8520635,24.9745553 C51.0233409,11.5889082 39.959735,1.16055529 26.4950562,1.16055529 M26.4950562,52.7292847 C12.0797277,52.7292847 0.351238686,40.9941318 0.351238686,26.5697788 C0.351238686,12.1479671 12.0797277,0.41472 26.4950562,0.41472 C40.4887204,0.41472 51.9625599,11.3589318 52.6172825,25.3296847 L52.6363336,25.7203906 L43.1025307,25.7203906 L43.0777642,25.37352 C42.4611438,16.7208141 35.1766401,9.94286118 26.4950562,9.94286118 C17.3276693,9.94286118 9.86980073,17.4012141 9.86980073,26.5697788 C9.86980073,35.7408847 17.3276693,43.2011435 26.4950562,43.2011435 C26.8113044,43.2011435 27.1281876,43.1903435 27.4387204,43.1750965 L27.8299029,43.1560376 L27.8299029,52.6898965 L27.4761876,52.70832 C27.152954,52.7242024 26.8240051,52.7292847 26.4950562,52.7292847" mask="url(#logo-b)"/>
|
||||
<path fill="white" d="M26.4950562,1.16055529 C12.4893263,1.16055529 1.09677153,12.5590024 1.09677153,26.5697788 C1.09677153,40.5830965 12.4893263,51.9834494 26.4950562,51.9834494 C26.6919175,51.9834494 26.8887788,51.9821788 27.0843701,51.9764612 L27.0843701,43.9361788 C26.8887788,43.9431671 26.6919175,43.9469788 26.4950562,43.9469788 C16.9168007,43.9469788 9.12426788,36.1512847 9.12426788,26.5697788 C9.12426788,16.9908141 16.9168007,9.19702588 26.4950562,9.19702588 C35.4490708,9.19702588 42.9812387,16.1001318 43.7934504,24.9745553 L51.8520635,24.9745553 C51.0233409,11.5889082 39.959735,1.16055529 26.4950562,1.16055529 M26.4950562,52.7292847 C12.0797277,52.7292847 0.351238686,40.9941318 0.351238686,26.5697788 C0.351238686,12.1479671 12.0797277,0.41472 26.4950562,0.41472 C40.4887204,0.41472 51.9625599,11.3589318 52.6172825,25.3296847 L52.6363336,25.7203906 L43.1025307,25.7203906 L43.0777642,25.37352 C42.4611438,16.7208141 35.1766401,9.94286118 26.4950562,9.94286118 C17.3276693,9.94286118 9.86980073,17.4012141 9.86980073,26.5697788 C9.86980073,35.7408847 17.3276693,43.2011435 26.4950562,43.2011435 C26.8113044,43.2011435 27.1281876,43.1903435 27.4387204,43.1750965 L27.8299029,43.1560376 L27.8299029,52.6898965 L27.4761876,52.70832 C27.152954,52.7242024 26.8240051,52.7292847 26.4950562,52.7292847" mask="url(#logo-b)" />
|
||||
</g>
|
||||
<polyline fill="#2C7DF7" points="0 .702 59.77 .702 59.77 9.247 25.926 9.247 25.926 52.348 16.634 52.348 16.634 9.247 0 9.247"/>
|
||||
<polygon fill="#2C7DF7" points="73.762 34.836 69.072 40.756 81.951 51.427 86.647 45.633"/>
|
||||
<polyline fill="white" points="0 .702 59.77 .702 59.77 9.247 25.926 9.247 25.926 52.348 16.634 52.348 16.634 9.247 0 9.247" />
|
||||
<polygon fill="white" points="73.762 34.836 69.072 40.756 81.951 51.427 86.647 45.633" />
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
1
gitlab-pages/website/static/img/twitter.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible" preserveAspectRatio="none" viewBox="0 0 26 26" id="svg6_1573384242210" width="50" height="50"><g transform="translate(1, 1)"><defs/><path style="fill: rgb(0, 114, 220); fill-opacity: 0.679612;" id="path4_1573384242210" d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z" vector-effect="non-scaling-stroke"/></g></svg>
|
After Width: | Height: | Size: 1.0 KiB |