Projects moved and finished to showcase on index
This commit is contained in:
parent
8b6dbc83c7
commit
6dc6a581e3
16
_projects/2020-04-04-panoramic.md
Normal file
16
_projects/2020-04-04-panoramic.md
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
title: Panoramic
|
||||
displayed: true
|
||||
description: "*Panoramic* was a company focused on building a web application
|
||||
for data scientists to be able to create and share models and graphs in
|
||||
between each other."
|
||||
classification: webapp
|
||||
tags:
|
||||
- Webapp
|
||||
- Node.js
|
||||
- TypeScript
|
||||
- React
|
||||
- GraphQL
|
||||
- Data analytics
|
||||
featured: false
|
||||
---
|
19
_projects/2022-05-05-the-expert.md
Normal file
19
_projects/2022-05-05-the-expert.md
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
title: The Expert
|
||||
displayed: true
|
||||
description: _The Expert_ is a digital platform that connects clients to
|
||||
interior designers around the world. For experts, it allows **managing** their
|
||||
**portfolio and profile** and **schedule** in which they are open for
|
||||
**consultations**. Clients are able to view their profiles and book
|
||||
consultations.
|
||||
link: https://www.theexpert.com/
|
||||
cover_image: /images/uploads/the-expert-logo.svg
|
||||
classification: webapp
|
||||
tags:
|
||||
- Node.js
|
||||
- PostgreSQL
|
||||
- TypeScript
|
||||
- React
|
||||
- GraphQL
|
||||
featured: true
|
||||
---
|
12
_projects/2024-08-06-beinsports.md
Normal file
12
_projects/2024-08-06-beinsports.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
title: beinSports
|
||||
displayed: true
|
||||
description: "*beIN Sports* is a global network of sports channels jointly owned
|
||||
and operated by *Qatari Sports Investments*, an affiliate of *Al Jazeera Media
|
||||
Networks*"
|
||||
cover_image: /images/uploads/bein_logo.af017869.webp
|
||||
classification: website
|
||||
tags:
|
||||
- Freemarker
|
||||
featured: false
|
||||
---
|
11
_projects/2024-08-06-ckvive.md
Normal file
11
_projects/2024-08-06-ckvive.md
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
title: CK Vive
|
||||
displayed: true
|
||||
description: Websitefor *CK Vive* travel agency with a **custom CMS system** for
|
||||
managing travel destinations.
|
||||
cover_image: /images/uploads/ck_vive_logo.svg
|
||||
classification: website
|
||||
tags:
|
||||
- PHP
|
||||
featured: false
|
||||
---
|
9
_projects/2024-08-06-dev-project-test.md
Normal file
9
_projects/2024-08-06-dev-project-test.md
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
title: dev project test
|
||||
displayed: true
|
||||
description: Testing project
|
||||
classification: webapp
|
||||
tags:
|
||||
- Webapp
|
||||
featured: false
|
||||
---
|
12
_projects/2024-08-06-docker-presentation.md
Normal file
12
_projects/2024-08-06-docker-presentation.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
title: Docker
|
||||
displayed: false
|
||||
description: An introduction to Docker containerization technology and how it
|
||||
differs from virtualization.
|
||||
cover_image: /images/uploads/docker-use-cases.png
|
||||
classification: presentation
|
||||
tags:
|
||||
- Presentation
|
||||
- Docker
|
||||
featured: false
|
||||
---
|
14
_projects/2024-08-06-fx-sales.md
Normal file
14
_projects/2024-08-06-fx-sales.md
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
title: FX Sales
|
||||
displayed: true
|
||||
description: "*Caplin FX Sales* allows sales people to **trade on behalf of
|
||||
their clients**. This needs to be an efficient workflow providing all the
|
||||
relevant information to the sales user"
|
||||
cover_image: /images/uploads/fx_sales_screen2x.png
|
||||
classification: webapp
|
||||
tags:
|
||||
- Webapp
|
||||
- React
|
||||
- Knockout
|
||||
featured: false
|
||||
---
|
16
_projects/2024-08-06-heylady.md
Normal file
16
_projects/2024-08-06-heylady.md
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
title: HeyLady!
|
||||
displayed: true
|
||||
description: A thriving online community supporting women to learn and practise
|
||||
speaking English.
|
||||
cover_image: /images/uploads/heyladylogo.svg
|
||||
classification: webapp
|
||||
tags:
|
||||
- Webapp
|
||||
- React
|
||||
- GraphQL
|
||||
- TypeScript
|
||||
- NodeJS
|
||||
- PostgreSQL
|
||||
featured: false
|
||||
---
|
13
_projects/2024-08-06-košice-peace-marathon.md
Normal file
13
_projects/2024-08-06-košice-peace-marathon.md
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Košice Peace Marathon
|
||||
displayed: true
|
||||
description: "*Košice Peace Marathon* is the oldest marathon in Europe and the
|
||||
third-oldest in the world."
|
||||
link: https://www.kosicemarathon.com/
|
||||
cover_image: /images/uploads/screenshot-from-2024-08-06-18-22-52.png
|
||||
classification: website
|
||||
tags:
|
||||
- PHP
|
||||
- MySQL
|
||||
featured: false
|
||||
---
|
10
_projects/2024-08-06-livesport-tv.md
Normal file
10
_projects/2024-08-06-livesport-tv.md
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
title: Livesport.tv
|
||||
displayed: false
|
||||
description: "*Livesport.tv* is a network of premium online sports channels,
|
||||
featuring all the top sports competitions from around the world."
|
||||
classification: website
|
||||
tags:
|
||||
- Freemarker
|
||||
featured: false
|
||||
---
|
14
_projects/2024-08-06-manualogic.md
Normal file
14
_projects/2024-08-06-manualogic.md
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
title: Manualogic
|
||||
displayed: false
|
||||
description: "*Manualogic* is a **single-page application** for product manual
|
||||
creators. It contains **custom web editor** and management system of
|
||||
**translatable pages, books** and **products.** Its main goal is to enable
|
||||
customers to get manuals of their products in digital form."
|
||||
classification: webapp
|
||||
tags:
|
||||
- Webapp
|
||||
- Angular
|
||||
- RxJS
|
||||
featured: false
|
||||
---
|
14
_projects/2024-08-06-renaissance-of-hypermedia-systems-1.md
Normal file
14
_projects/2024-08-06-renaissance-of-hypermedia-systems-1.md
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
title: Renaissance of hypermedia systems
|
||||
displayed: true
|
||||
description: A presentation about hypermedia systems, HTMX, HyperView, and the
|
||||
HATEOAS principles. 2024
|
||||
link: https://michalvankodev.github.io/presentation-renaissance-of-hypermedia-systems/#/intro
|
||||
cover_image: /images/uploads/screenshot-from-2024-08-06-19-01-03.png
|
||||
classification: presentation
|
||||
tags:
|
||||
- Webdev
|
||||
- Mobile
|
||||
- HTMX
|
||||
featured: true
|
||||
---
|
14
_projects/2024-08-06-responzio.md
Normal file
14
_projects/2024-08-06-responzio.md
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
title: responzIO
|
||||
displayed: true
|
||||
description: "***responzIO*** is a smart, easy-to-use monitoring and automation
|
||||
system. The ultimate tool for various applications such as hydroponics,
|
||||
aquariums, and gardens."
|
||||
cover_image: /images/uploads/responzio.png
|
||||
classification: embedded
|
||||
tags:
|
||||
- Webapp
|
||||
- Embedded
|
||||
- NodeJS
|
||||
featured: false
|
||||
---
|
11
_projects/2024-08-06-ship-structured-heard-input-process.md
Normal file
11
_projects/2024-08-06-ship-structured-heard-input-process.md
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
title: SHIP (Structured heard input process)
|
||||
displayed: true
|
||||
description: "*SHIP* is a web application for **editors** who actively **track
|
||||
trades offers and bids** on the commodity market."
|
||||
classification: webapp
|
||||
tags:
|
||||
- Webapp
|
||||
- Angular
|
||||
featured: false
|
||||
---
|
13
_projects/2024-08-06-signal-hub-manager.md
Normal file
13
_projects/2024-08-06-signal-hub-manager.md
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Signal Hub Manager
|
||||
displayed: true
|
||||
description: "*Signal Hub* is an end-to-end **Big Data analytics platform** for
|
||||
large enterprises. It accelerates the process of extracting insights and
|
||||
intelligence from large volumes of data, including data of different types and
|
||||
in different formats."
|
||||
classification: webapp
|
||||
tags:
|
||||
- Webapp
|
||||
- React
|
||||
featured: false
|
||||
---
|
10
_projects/2024-08-06-skosy.md
Normal file
10
_projects/2024-08-06-skosy.md
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
title: Skosy
|
||||
displayed: false
|
||||
description: "*Skosy* is a web application whose purpose is to **automate the
|
||||
writing of integration tests** for websites."
|
||||
classification: webapp
|
||||
tags:
|
||||
- Webapp
|
||||
featured: false
|
||||
---
|
13
_projects/2024-08-06-spreading-the-web.md
Normal file
13
_projects/2024-08-06-spreading-the-web.md
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Spreading the Web
|
||||
displayed: true
|
||||
description: A presentation about the rising number of use cases for utilizing
|
||||
web technologies outside of the web platform such as native mobile
|
||||
applications and robotics. 2015
|
||||
cover_image: /images/uploads/screenshot-from-2024-08-06-18-48-02.png
|
||||
classification: presentation
|
||||
tags:
|
||||
- Presentation
|
||||
- NodeJS
|
||||
featured: false
|
||||
---
|
14
_projects/2024-08-06-the-grand-escape.md
Normal file
14
_projects/2024-08-06-the-grand-escape.md
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
title: The Grand Escape
|
||||
displayed: true
|
||||
description: A videogame where you need to steer your boat to avoid obstacles
|
||||
and enemy bullets. The difficulty will be increased after a certain time and
|
||||
new enemies will be spawned to make your escape harder.
|
||||
link: https://michalvankodev.itch.io/the-grand-escape
|
||||
cover_image: /images/uploads/logo.png
|
||||
classification: videogame
|
||||
tags:
|
||||
- Rust
|
||||
- Bevy
|
||||
featured: true
|
||||
---
|
@ -0,0 +1,12 @@
|
||||
---
|
||||
title: Unstoppable growth of front-end frameworks
|
||||
displayed: true
|
||||
description: A simple summary of the web front-end evolution. Describes how and
|
||||
why new tools in the NodeJS ecosystem improve & why there is still something
|
||||
to explore.
|
||||
classification: presentation
|
||||
tags:
|
||||
- Presentation
|
||||
- NodeJS
|
||||
featured: false
|
||||
---
|
12
_projects/2024-08-06-webassembly-presentation.md
Normal file
12
_projects/2024-08-06-webassembly-presentation.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
title: WebAssembly presentation
|
||||
displayed: true
|
||||
description: A presentation about what WebAssembly is about and how it might
|
||||
affect the future of the world.
|
||||
cover_image: /images/uploads/screenshot-from-2024-08-06-18-52-41.png
|
||||
classification: presentation
|
||||
tags:
|
||||
- Presentation
|
||||
- WebAssembly
|
||||
featured: false
|
||||
---
|
@ -1,4 +1,8 @@
|
||||
use crate::{pages::project::ProjectMetadata, post_list::get_post_list, post_parser::ParseResult};
|
||||
use crate::{
|
||||
pages::project::ProjectMetadata,
|
||||
post_list::get_post_list,
|
||||
post_parser::{parse_html, ParseResult},
|
||||
};
|
||||
use axum::http::StatusCode;
|
||||
|
||||
pub async fn get_featured_projects() -> Result<Vec<ParseResult<ProjectMetadata>>, StatusCode> {
|
||||
@ -7,6 +11,10 @@ pub async fn get_featured_projects() -> Result<Vec<ParseResult<ProjectMetadata>>
|
||||
let featured_projects = project_list
|
||||
.into_iter()
|
||||
.filter(|post| post.metadata.featured)
|
||||
.map(|mut post| {
|
||||
post.metadata.description = parse_html(&post.metadata.description);
|
||||
post
|
||||
})
|
||||
.collect();
|
||||
|
||||
Ok(featured_projects)
|
||||
|
@ -9,4 +9,15 @@ pub struct ProjectMetadata {
|
||||
pub cover_image: Option<String>,
|
||||
pub tags: Vec<String>,
|
||||
pub featured: bool,
|
||||
pub link: Option<String>,
|
||||
}
|
||||
|
||||
pub fn translate_classification(classification: &str) -> &str {
|
||||
match classification {
|
||||
"webapp" => "Web application",
|
||||
"website" => "Web site",
|
||||
"presentation" => "Presentation",
|
||||
"videogame" => "Video game",
|
||||
any => any,
|
||||
}
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ pub async fn parse_post<'de, Metadata: DeserializeOwned>(
|
||||
.parse_with_struct::<Metadata>(&file_contents)
|
||||
.ok_or_else(|| {
|
||||
tracing::error!("Failed to parse metadata");
|
||||
return StatusCode::INTERNAL_SERVER_ERROR;
|
||||
StatusCode::INTERNAL_SERVER_ERROR
|
||||
})?;
|
||||
|
||||
let body = parse_html(&metadata.content);
|
||||
@ -52,14 +52,14 @@ pub async fn parse_post<'de, Metadata: DeserializeOwned>(
|
||||
.ok_or(StatusCode::INTERNAL_SERVER_ERROR)?
|
||||
.to_owned();
|
||||
|
||||
return Ok(ParseResult {
|
||||
Ok(ParseResult {
|
||||
body,
|
||||
metadata: metadata.data,
|
||||
slug: filename,
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
fn parse_html(markdown: &str) -> String {
|
||||
pub fn parse_html(markdown: &str) -> String {
|
||||
let mut options = Options::empty();
|
||||
options.insert(Options::ENABLE_TABLES);
|
||||
options.insert(Options::ENABLE_FOOTNOTES);
|
||||
@ -68,45 +68,45 @@ fn parse_html(markdown: &str) -> String {
|
||||
options.insert(Options::ENABLE_SMART_PUNCTUATION);
|
||||
options.insert(Options::ENABLE_HEADING_ATTRIBUTES);
|
||||
|
||||
let parser = Parser::new_ext(&markdown, options).map(|event| match event {
|
||||
Event::Start(ref tag) => match tag {
|
||||
// Parsing images considers `alt` attribute as inner `Text` event
|
||||
// Therefore the `[alt]` is rendered in html as subtitle
|
||||
// and the `[](url "title")` `title` is rendered as `alt` attribute
|
||||
Tag::Image {
|
||||
link_type,
|
||||
dest_url,
|
||||
title,
|
||||
id,
|
||||
} => {
|
||||
println!(
|
||||
"Image link_type: {:?} url: {} title: {} id: {}",
|
||||
link_type, dest_url, title, id
|
||||
);
|
||||
// TODO src set
|
||||
Event::Html(
|
||||
format!(
|
||||
r#"<figure>
|
||||
let parser = Parser::new_ext(markdown, options).map(|event| match event {
|
||||
/*
|
||||
Parsing images considers `alt` attribute as inner `Text` event
|
||||
Therefore the `[alt]` is rendered in html as subtitle
|
||||
and the `[](url "title")` `title` is rendered as `alt` attribute
|
||||
*/
|
||||
Event::Start(Tag::Image {
|
||||
link_type,
|
||||
dest_url,
|
||||
title,
|
||||
id,
|
||||
}) => {
|
||||
println!(
|
||||
"Image link_type: {:?} url: {} title: {} id: {}",
|
||||
link_type, dest_url, title, id
|
||||
);
|
||||
// TODO src set
|
||||
Event::Html(
|
||||
format!(
|
||||
r#"<figure>
|
||||
<img
|
||||
alt="{alt}"
|
||||
src="{src}"
|
||||
/>
|
||||
<figcaption>
|
||||
"#,
|
||||
alt = title,
|
||||
src = dest_url,
|
||||
)
|
||||
.into(),
|
||||
alt = title,
|
||||
src = dest_url,
|
||||
)
|
||||
}
|
||||
_ => event,
|
||||
},
|
||||
.into(),
|
||||
)
|
||||
}
|
||||
Event::Start(_) => event,
|
||||
Event::End(TagEnd::Image) => Event::Html("</figcaption></figure>".into()),
|
||||
_ => event,
|
||||
});
|
||||
|
||||
// Write to String buffer.
|
||||
// Write to String buffer
|
||||
let mut html = String::new();
|
||||
pulldown_cmark::html::push_html(&mut html, parser);
|
||||
return html;
|
||||
html
|
||||
}
|
||||
|
@ -1,42 +0,0 @@
|
||||
use std::path::Path;
|
||||
|
||||
use axum::http::StatusCode;
|
||||
use serde::de::DeserializeOwned;
|
||||
use tokio::fs::read_dir;
|
||||
use tracing::info;
|
||||
|
||||
use crate::post_parser::{parse_post, ParseResult};
|
||||
|
||||
pub async fn get_post_list<'de, Metadata: DeserializeOwned>(
|
||||
path: &Path,
|
||||
) -> Result<Vec<ParseResult<Metadata>>, StatusCode> {
|
||||
// let path = "../_posts/blog/";
|
||||
let mut dir = read_dir(path)
|
||||
.await
|
||||
.map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?;
|
||||
let mut posts: Vec<ParseResult<Metadata>> = Vec::new();
|
||||
|
||||
while let Some(file) = dir
|
||||
.next_entry()
|
||||
.await
|
||||
.map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?
|
||||
{
|
||||
let file_path = file.path();
|
||||
let file_path_str = file_path.to_str().unwrap();
|
||||
info!(":{}", file_path_str);
|
||||
let post = parse_post::<Metadata>(file_path_str).await?;
|
||||
posts.push(post);
|
||||
}
|
||||
|
||||
if std::env::var("TARGET")
|
||||
.unwrap_or_else(|_| "DEV".to_owned())
|
||||
.eq("PROD")
|
||||
{
|
||||
posts = posts
|
||||
.into_iter()
|
||||
.filter(|post| !post.slug.starts_with("dev"))
|
||||
.collect()
|
||||
}
|
||||
|
||||
return Ok(posts);
|
||||
}
|
@ -624,6 +624,16 @@ video {
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.mx-1 {
|
||||
margin-left: 0.25rem;
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
|
||||
.my-1 {
|
||||
margin-top: 0.25rem;
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
.mb-1 {
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
@ -644,6 +654,10 @@ video {
|
||||
margin-top: 0.75rem;
|
||||
}
|
||||
|
||||
.mt-1 {
|
||||
margin-top: 0.25rem;
|
||||
}
|
||||
|
||||
.block {
|
||||
display: block;
|
||||
}
|
||||
@ -892,6 +906,11 @@ video {
|
||||
line-height: 1.25rem;
|
||||
}
|
||||
|
||||
.text-xl {
|
||||
font-size: 1.25rem;
|
||||
line-height: 1.75rem;
|
||||
}
|
||||
|
||||
.font-bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
@ -1,34 +1,45 @@
|
||||
<article>
|
||||
<article class="border rounded-md bg-white m-4 p-4">
|
||||
<header class="px-4 mb-3">
|
||||
<h2 class="text-3xl font-semibold text-blue-900">
|
||||
{{project.metadata.title}}
|
||||
<h2 class="text-xl font-semibold text-blue-900">
|
||||
{% match project.metadata.link %}
|
||||
{% when Some with (href) %}
|
||||
<a href="{{href}}" class="text-blue-900 no-underline">
|
||||
{{project.metadata.title}}
|
||||
</a>
|
||||
{% when None %}
|
||||
{{project.metadata.title}}
|
||||
{% endmatch %}
|
||||
</h2>
|
||||
<p class="px-5 text-gray-800">
|
||||
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make</p>
|
||||
<p class="text-gray-800 text-lg my-2">
|
||||
{{project.metadata.description|safe}}
|
||||
</p>
|
||||
</header>
|
||||
<!-- <hr class="border-blue-950 my-5"> -->
|
||||
|
||||
{% match project.metadata.cover_image %}
|
||||
{% when Some with (source) %}
|
||||
<figure>
|
||||
<!-- <img src="{{source}}" /> -->
|
||||
<figure class="my-2">
|
||||
{% match project.metadata.link %}
|
||||
{% when Some with (href) %}
|
||||
<a href="{{href}}">
|
||||
<img src="{{source}}" />
|
||||
</a>
|
||||
{% when None %}
|
||||
<img src="{{source}}" />
|
||||
{% endmatch %}
|
||||
<!-- TODO <figure> -->
|
||||
<svg aria-hidden="true" class="h-12 w-12 fill-blue-950">
|
||||
<use xlink:href="/svg/icons-sprite.svg#mail" />
|
||||
</svg>
|
||||
|
||||
</figure>
|
||||
{% when None %}
|
||||
{% endmatch %}
|
||||
|
||||
|
||||
<footer class="text-sm">
|
||||
<h3 class="text-3xl font-semibold text-blue-900">
|
||||
TODO classification
|
||||
<footer class="text-sm px-4">
|
||||
<h3 class="text-xl font-semibold text-blue-900 my-2">
|
||||
{{crate::pages::project::translate_classification(project.metadata.classification)}}
|
||||
</h3>
|
||||
<ul class="inline-block">
|
||||
{% for tag in project.metadata.tags %}
|
||||
<li class="inline-block">
|
||||
<li class="inline-block text-blue-700 italic">
|
||||
{{tag}}
|
||||
</li>
|
||||
{% endfor %}
|
||||
|
BIN
static/images/uploads/bein_logo.af017869.webp
Normal file
BIN
static/images/uploads/bein_logo.af017869.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
86
static/images/uploads/ck_vive_logo.svg
Normal file
86
static/images/uploads/ck_vive_logo.svg
Normal file
@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 172 75" style="enable-background:new 0 0 172 75;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{clip-path:url(#SVGID_2_);fill:url(#SVGID_3_);}
|
||||
.st1{clip-path:url(#SVGID_5_);fill:url(#SVGID_6_);}
|
||||
.st2{fill:#A72C32;}
|
||||
.st3{fill:#ED1C24;}
|
||||
</style>
|
||||
<g>
|
||||
<defs>
|
||||
<path id="SVGID_1_" d="M122.7,21.2C122.7,21.2,122.7,21.2,122.7,21.2c-6.7-7.5-15-14.7-24.9-17.4l0,0c15.2-4.4,29-1.4,41,15.8l0,0
|
||||
l-3,2.5C132,25.5,126.1,25.1,122.7,21.2L122.7,21.2z"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_2_">
|
||||
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
|
||||
</clipPath>
|
||||
|
||||
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="10.3229" y1="463.0904" x2="10.6827" y2="463.0904" gradientTransform="matrix(56.4463 43.9349 -41.9345 53.8764 18943.2227 -25399.9766)">
|
||||
<stop offset="0" style="stop-color:#7C1C1E"/>
|
||||
<stop offset="1" style="stop-color:#C9234A"/>
|
||||
</linearGradient>
|
||||
<polygon class="st0" points="85.2,15.7 123.4,45.4 151.5,9.2 113.3,-20.5 "/>
|
||||
</g>
|
||||
<g>
|
||||
<defs>
|
||||
<path id="SVGID_4_" d="M114.3,2.3c-5.5-1-23.6-1.5-28.9-0.6c-8.2,1.8-24,15.5-51.9,40.7C58.3,24.9,82.1,4.8,114.3,2.3"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_5_">
|
||||
<use xlink:href="#SVGID_4_" style="overflow:visible;"/>
|
||||
</clipPath>
|
||||
|
||||
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="12.5912" y1="456.284" x2="13.1524" y2="456.284" gradientTransform="matrix(-120.901 74.4084 -61.6717 -100.2061 29764.8125 44789.3945)">
|
||||
<stop offset="0" style="stop-color:#ED1B2F"/>
|
||||
<stop offset="1" style="stop-color:#9E0B0F"/>
|
||||
</linearGradient>
|
||||
<polygon class="st1" points="92.1,-35.3 14.9,12.2 55.7,78.4 132.8,31 "/>
|
||||
</g>
|
||||
<path class="st2" d="M109.5,49.3l-8.2-18.1c-1.3,0-2.6,0-3.9,0l10.3,22L109.5,49.3z"/>
|
||||
<polygon class="st3" points="25.1,31.2 21.3,31.2 13.1,49.3 4.9,31.2 1,31.2 13,57.1 13.1,57.1 "/>
|
||||
<rect x="59.5" y="31.2" class="st3" width="3.5" height="25.5"/>
|
||||
<path class="st3" d="M121.5,31.2c-3.2,0-4.1,0.7-5.4,3.7l-8.4,18.3l1.8,3.9C113.5,48.5,117.5,39.8,121.5,31.2"/>
|
||||
<path class="st3" d="M171.1,31.2h-15.8v25.5h16.1v-3.3H168h-9.2v-8.1h10.8v-3.2h-10.8c0-2.6,0-5.2,0-7.7c4.1,0,8.2,0,12.3,0
|
||||
C171.1,33.4,171.1,32.3,171.1,31.2"/>
|
||||
<path class="st2" d="M136.8,71.5l0.5,1.3h-1.1L136.8,71.5z M136.8,69.8L136.8,69.8l-2.1,4.3h1l0.3-0.7h1.6l0.3,0.7h1L136.8,69.8z
|
||||
M132.3,69.9h-0.9v4.3h0.9V69.9z M127.2,70.6c0.1,0,0.3,0,0.4,0.1c0.1,0,0.2,0.1,0.2,0.2c0.1,0.1,0.1,0.2,0.1,0.3
|
||||
c0,0.1,0,0.2-0.1,0.3c-0.1,0.1-0.1,0.2-0.2,0.2c-0.1,0-0.2,0.1-0.4,0.1h-0.7v-1.2H127.2z M127.3,69.9h-1.7v4.3h0.9v-1.5h0.6l0.9,1.5
|
||||
h1l-1-1.6c0.2-0.1,0.3-0.2,0.4-0.3c0.1-0.1,0.2-0.3,0.3-0.4c0.1-0.2,0.1-0.3,0.1-0.5c0-0.2,0-0.4-0.1-0.6c-0.1-0.2-0.2-0.3-0.3-0.4
|
||||
c-0.1-0.1-0.3-0.2-0.5-0.3C127.7,69.9,127.5,69.9,127.3,69.9z M122.4,68.9h-1l-0.7,0.7h0.8L122.4,68.9z M121.1,71.5l0.5,1.3h-1.1
|
||||
L121.1,71.5z M121.1,69.8L121.1,69.8l-2.1,4.3h1l0.3-0.7h1.6l0.3,0.7h1L121.1,69.8z M115.2,69.9h-0.9v4.3h2.7v-0.8h-1.8V69.9z
|
||||
M111.7,69.9h-2.7v4.3h2.8v-0.8h-1.9v-1h1.6v-0.7h-1.6v-0.9h1.9V69.9z M104.9,69.8c-0.3,0-0.5,0-0.7,0.1c-0.2,0.1-0.4,0.2-0.6,0.3
|
||||
c-0.2,0.1-0.3,0.3-0.5,0.5c-0.1,0.2-0.2,0.4-0.3,0.6c-0.1,0.2-0.1,0.5-0.1,0.7c0,0.3,0,0.5,0.1,0.7c0.1,0.2,0.2,0.4,0.3,0.6
|
||||
c0.1,0.2,0.3,0.3,0.5,0.5c0.2,0.1,0.4,0.2,0.6,0.3c0.2,0.1,0.5,0.1,0.7,0.1c0.2,0,0.4,0,0.6-0.1c0.2,0,0.4-0.1,0.5-0.2
|
||||
c0.2-0.1,0.3-0.2,0.5-0.4l-0.5-0.6c-0.1,0.1-0.2,0.2-0.3,0.2c-0.1,0.1-0.2,0.1-0.3,0.2c-0.1,0-0.3,0.1-0.4,0.1c-0.2,0-0.4,0-0.5-0.1
|
||||
c-0.2-0.1-0.3-0.2-0.4-0.3c-0.1-0.1-0.2-0.3-0.3-0.4c-0.1-0.2-0.1-0.4-0.1-0.6c0-0.2,0-0.4,0.1-0.6c0.1-0.2,0.1-0.3,0.3-0.4
|
||||
c0.1-0.1,0.2-0.2,0.4-0.3c0.2-0.1,0.3-0.1,0.5-0.1c0.1,0,0.3,0,0.4,0.1c0.1,0,0.2,0.1,0.3,0.2c0.1,0.1,0.2,0.2,0.3,0.2l0.6-0.6
|
||||
c-0.1-0.1-0.3-0.3-0.4-0.4c-0.2-0.1-0.3-0.2-0.5-0.2C105.3,69.8,105.1,69.8,104.9,69.8z M100.2,69.9h-0.9v2.4l-2.5-2.4h0v4.3h0.9
|
||||
v-2.4l2.5,2.4h0V69.9z M92.3,71.5l0.5,1.3h-1.1L92.3,71.5z M92.3,69.8L92.3,69.8l-2.1,4.3h1l0.3-0.7h1.6l0.3,0.7h1L92.3,69.8z
|
||||
M88,69.9h-1l-1.4,2.5v-2.5h-0.9v4.3h0.7l0.9-1.4l1,1.4h1.1l-1.5-2.2L88,69.9z M78.1,68.9h-1l-0.7,0.7h0.8L78.1,68.9z M76.9,71.5
|
||||
l0.5,1.3h-1.1L76.9,71.5z M76.9,69.8L76.9,69.8l-2.1,4.3h1l0.3-0.7h1.6l0.3,0.7h1L76.9,69.8z M72.4,69.9h-0.9v2.4L69,69.8h0v4.3h0.9
|
||||
v-2.4l2.5,2.4h0V69.9z M66.5,69.9h-1l-1.1,2.5l-1.1-2.5h-1l2,4.3h0L66.5,69.9z M58.3,70.6c0.2,0,0.4,0,0.5,0.1
|
||||
c0.2,0.1,0.3,0.2,0.4,0.3c0.1,0.1,0.2,0.3,0.3,0.4c0.1,0.2,0.1,0.4,0.1,0.6c0,0.2,0,0.4-0.1,0.6c-0.1,0.2-0.2,0.3-0.3,0.4
|
||||
c-0.1,0.1-0.3,0.2-0.4,0.3c-0.2,0.1-0.3,0.1-0.5,0.1c-0.2,0-0.4,0-0.5-0.1c-0.2-0.1-0.3-0.2-0.4-0.3c-0.1-0.1-0.2-0.3-0.3-0.4
|
||||
C57,72.4,57,72.2,57,72c0-0.2,0-0.4,0.1-0.6c0.1-0.2,0.2-0.3,0.3-0.4c0.1-0.1,0.3-0.2,0.4-0.3C57.9,70.6,58.1,70.6,58.3,70.6z
|
||||
M58.3,69.8c-0.3,0-0.6,0.1-0.9,0.2c-0.3,0.1-0.5,0.3-0.7,0.5c-0.2,0.2-0.3,0.4-0.5,0.7c-0.1,0.3-0.2,0.6-0.2,0.9
|
||||
c0,0.3,0.1,0.6,0.2,0.9c0.1,0.3,0.3,0.5,0.5,0.7c0.2,0.2,0.4,0.3,0.7,0.5c0.3,0.1,0.6,0.2,0.9,0.2c0.3,0,0.5,0,0.7-0.1
|
||||
c0.2-0.1,0.4-0.2,0.6-0.3c0.2-0.1,0.3-0.3,0.5-0.5c0.1-0.2,0.2-0.4,0.3-0.6c0.1-0.2,0.1-0.5,0.1-0.7c0-0.3,0-0.5-0.1-0.7
|
||||
c-0.1-0.2-0.2-0.4-0.3-0.6c-0.1-0.2-0.3-0.3-0.5-0.5c-0.2-0.1-0.4-0.2-0.6-0.3C58.7,69.8,58.5,69.8,58.3,69.8z M53.8,69.9h-3.6v0.8
|
||||
h1.4v3.5h0.9v-3.5h1.4V69.9z M46.4,69.8c-0.2,0-0.4,0-0.6,0.1c-0.2,0.1-0.3,0.2-0.5,0.3c-0.1,0.1-0.2,0.3-0.3,0.4
|
||||
c-0.1,0.2-0.1,0.3-0.1,0.5c0,0.2,0,0.3,0.1,0.4c0,0.1,0.1,0.3,0.2,0.4c0.1,0.1,0.3,0.2,0.4,0.3c0.2,0.1,0.4,0.2,0.7,0.2
|
||||
c0.2,0,0.4,0.1,0.5,0.1c0.1,0,0.2,0.1,0.3,0.2c0.1,0.1,0.1,0.1,0.1,0.2c0,0.2-0.1,0.3-0.2,0.4c-0.1,0.1-0.3,0.1-0.5,0.1
|
||||
c-0.1,0-0.3,0-0.4-0.1c-0.1,0-0.3-0.1-0.4-0.2c-0.1-0.1-0.2-0.2-0.3-0.3l-0.5,0.7c0.1,0.1,0.3,0.2,0.5,0.3c0.2,0.1,0.4,0.1,0.6,0.2
|
||||
c0.2,0,0.4,0.1,0.6,0.1c0.3,0,0.5,0,0.7-0.1c0.2-0.1,0.4-0.2,0.5-0.3c0.1-0.1,0.2-0.3,0.3-0.4C48,73.2,48,73,48,72.8
|
||||
c0-0.2,0-0.3-0.1-0.4c0-0.1-0.1-0.3-0.2-0.4c-0.1-0.1-0.3-0.2-0.4-0.3c-0.2-0.1-0.4-0.1-0.7-0.2c-0.2,0-0.3-0.1-0.4-0.1
|
||||
c-0.1,0-0.2-0.1-0.2-0.1c-0.1,0-0.1-0.1-0.1-0.1c0,0,0-0.1,0-0.2c0-0.1,0-0.2,0.1-0.3c0-0.1,0.1-0.1,0.2-0.2c0.1,0,0.2,0,0.3,0
|
||||
c0.2,0,0.3,0,0.4,0c0.1,0,0.2,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.3,0.2l0.5-0.7c-0.1-0.1-0.3-0.2-0.4-0.2c-0.2-0.1-0.3-0.1-0.5-0.2
|
||||
C46.8,69.8,46.6,69.8,46.4,69.8z M42.4,69.9h-2.7v4.3h2.8v-0.8h-1.9v-1h1.6v-0.7h-1.6v-0.9h1.9V69.9z M35.7,69.8
|
||||
c-0.3,0-0.5,0-0.7,0.1c-0.2,0.1-0.4,0.2-0.6,0.3c-0.2,0.1-0.3,0.3-0.5,0.5c-0.1,0.2-0.2,0.4-0.3,0.6c-0.1,0.2-0.1,0.5-0.1,0.7
|
||||
c0,0.3,0,0.5,0.1,0.7c0.1,0.2,0.2,0.4,0.3,0.6c0.1,0.2,0.3,0.3,0.5,0.5c0.2,0.1,0.4,0.2,0.6,0.3c0.2,0.1,0.5,0.1,0.7,0.1
|
||||
c0.2,0,0.4,0,0.6-0.1c0.2,0,0.4-0.1,0.5-0.2c0.2-0.1,0.3-0.2,0.5-0.4l-0.5-0.6c-0.1,0.1-0.2,0.2-0.3,0.2c-0.1,0.1-0.2,0.1-0.3,0.2
|
||||
c-0.1,0-0.3,0.1-0.4,0.1c-0.2,0-0.4,0-0.5-0.1c-0.2-0.1-0.3-0.2-0.4-0.3c-0.1-0.1-0.2-0.3-0.3-0.4c-0.1-0.2-0.1-0.4-0.1-0.6
|
||||
c0-0.2,0-0.4,0.1-0.6c0.1-0.2,0.1-0.3,0.3-0.4c0.1-0.1,0.2-0.2,0.4-0.3c0.2-0.1,0.3-0.1,0.5-0.1c0.1,0,0.3,0,0.4,0.1
|
||||
c0.1,0,0.2,0.1,0.3,0.2c0.1,0.1,0.2,0.2,0.3,0.2l0.6-0.6c-0.1-0.1-0.3-0.3-0.4-0.4c-0.2-0.1-0.3-0.2-0.5-0.2
|
||||
C36.1,69.8,35.9,69.8,35.7,69.8z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 7.0 KiB |
BIN
static/images/uploads/docker-use-cases.png
(Stored with Git LFS)
Normal file
BIN
static/images/uploads/docker-use-cases.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
static/images/uploads/fx_sales_screen2x.png
(Stored with Git LFS)
Normal file
BIN
static/images/uploads/fx_sales_screen2x.png
(Stored with Git LFS)
Normal file
Binary file not shown.
13
static/images/uploads/heyladylogo.svg
Normal file
13
static/images/uploads/heyladylogo.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 83 KiB |
BIN
static/images/uploads/logo.png
(Stored with Git LFS)
Normal file
BIN
static/images/uploads/logo.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
static/images/uploads/screenshot-from-2024-08-06-18-22-52.png
(Stored with Git LFS)
Normal file
BIN
static/images/uploads/screenshot-from-2024-08-06-18-22-52.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
static/images/uploads/screenshot-from-2024-08-06-18-48-02.png
(Stored with Git LFS)
Normal file
BIN
static/images/uploads/screenshot-from-2024-08-06-18-48-02.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
static/images/uploads/screenshot-from-2024-08-06-18-52-41.png
(Stored with Git LFS)
Normal file
BIN
static/images/uploads/screenshot-from-2024-08-06-18-52-41.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
static/images/uploads/screenshot-from-2024-08-06-19-01-03.png
(Stored with Git LFS)
Normal file
BIN
static/images/uploads/screenshot-from-2024-08-06-19-01-03.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -143,6 +143,12 @@ collections:
|
||||
default: true,
|
||||
}
|
||||
- { label: Description, name: description, widget: markdown }
|
||||
- {
|
||||
label: Link,
|
||||
name: link,
|
||||
widget: string,
|
||||
required: false,
|
||||
}
|
||||
- {
|
||||
label: Cover image,
|
||||
name: cover_image,
|
||||
|
Loading…
Reference in New Issue
Block a user