feat: update blog single template

This commit is contained in:
Henk Verlinde 2022-06-24 16:32:15 +02:00
parent 75d250b240
commit 9f2a3fbbc5
15 changed files with 152 additions and 14 deletions

View File

@ -1,11 +1,15 @@
--- ---
title: "{{ replace .Name "-" " " | title }}" title: "{{ replace .Name "-" " " | title }}"
description: "" description: ""
lead: "" excerpt: ""
date: {{ .Date }} date: {{ .Date }}
lastmod: {{ .Date }} lastmod: {{ .Date }}
draft: true draft: true
weight: 50 weight: 50
images: ["{{ .Name | urlize }}.jpg"] images: []
categories: []
tags: []
contributors: [] contributors: []
pinned: false
homepage: false
--- ---

View File

@ -570,3 +570,9 @@ $navbar-dark-active-color: $link-color-dark;
[data-dark-mode] details summary::before { [data-dark-mode] details summary::before {
content: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%28222, 226, 230, 0.75%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e"); content: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%28222, 226, 230, 0.75%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e");
} }
[data-dark-mode] .btn-light {
color: $link-color-dark;
background: $body-overlay-dark;
border: 1px solid $body-overlay-dark;
}

View File

@ -59,6 +59,8 @@ rel = "sitemap"
[taxonomies] [taxonomies]
contributor = "contributors" contributor = "contributors"
category = "categories"
tag = "tags"
[permalinks] [permalinks]
blog = "/blog/:title/" blog = "/blog/:title/"

View File

@ -1,11 +1,15 @@
--- ---
title: "Say hello to Doks 👋" title: "Say hello to Doks 👋"
description: "Introducing Doks, a Hugo theme helping you build modern documentation websites that are secure, fast, and SEO-ready — by default." description: "Introducing Doks, a Hugo theme helping you build modern documentation websites that are secure, fast, and SEO-ready — by default."
lead: "Introducing Doks, a Hugo theme helping you build modern documentation websites that are secure, fast, and SEO-ready — by default." excerpt: "Introducing Doks, a Hugo theme helping you build modern documentation websites that are secure, fast, and SEO-ready — by default."
date: 2020-11-04T09:19:42+01:00 date: 2020-11-04T09:19:42+01:00
lastmod: 2020-11-04T09:19:42+01:00 lastmod: 2020-11-04T09:19:42+01:00
draft: false draft: false
weight: 50 weight: 50
images: ["say-hello-to-doks.png"] images: ["say-hello-to-doks.png"]
categories: []
tags: []
contributors: ["Henk Verlinde"] contributors: ["Henk Verlinde"]
pinned: false
homepage: false
--- ---

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -0,0 +1,38 @@
---
title: "Security-as-code startup Jit comes out of stealth with $38.5M in seed funding"
description: ""
excerpt: "Jit today announced that it has raised a $38.5 million seed round led by boldstart ventures, with Insight Partners, Tiger Global, TeachAviv and a number of strategic angel investors also participating."
date: 2022-06-24T12:14:59+02:00
lastmod: 2022-06-24T12:14:59+02:00
draft: false
weight: 50
images: ["security-as-code-startup-jit-comes-out-of-stealth-with-38-5m-in-seed-funding.jpg"]
categories: ["Startups", "News"]
tags: ["security", "CI/CD"]
contributors: ["Henk Verlinde"]
pinned: false
homepage: false
---
[Jit](https://jit.io/), a startup that helps developers automate product security by codifying their security plans and workflows as code that can then be managed in a code repository like GitHub, today announced that it has raised a $38.5 million seed round led by [boldstart ventures](https://boldstart.vc/), with Insight Partners, Tiger Global, TeachAviv and a number of strategic angel investors also participating. The company was incubated by [FXP](https://www.fxp.com/), a Boston-Israel startup venture studio
```python
import subprocess
output = subprocess.check_output(f"nslookup2 {domain}", shell=True, encoding='UTF-8')
```
With this announcement, Jit is also coming out of stealth and announcing the addition of former Puppet CTO and Cloud Foundry Foundation executive director [Abby Kearns](https://www.linkedin.com/in/abbykearns/) to its advisory board.
“Cybersecurity leaders are adding more tools, faster than their teams are able to implement, tune and configure them — increasing risk spend,” said Jit CTO David Melamed. “Creating a security plan or program is too time-consuming for high-velocity dev and product teams. Jit streamlines technical security for engineering teams over compliance checkboxes all while reducing spend. We deliver the simplest approach to implementing DevSecOps where product security is built into the software from the start along with a way to continuously maintain it in a language developers understand — code.”
![Jit](image003.png "Image Credits: Jit")
The idea behind Jit is to offer what the company calls “minimal viable security” (MVS). Out of the box, the service offers developers MVS plans that have already codified a minimum [set of tools](https://www.jit.io/security-tools) and workflows that theyll need to secure their apps and the infrastructure they run on.
“Instead of having to research, configure, implement and do the work to integrate open source security tools into your stacks and CI/CD pipelines, the security research team at Jit has taken the time to curate and select the tools that will provide the first line of defense for your applications, without having to figure it out yourself,” the company explains.
The company argues that its approach also means developers will only get alerts if there are important vulnerabilities they have to react to right away — and can then remediate them from inside their existing workflows. The tool will create automatic security reviews inside of pull requests or find AWS misconfigurations or issues with security controls for third-party services like npm-audit.
With this, the service can also make it easier for businesses to start their gap analysis for a number of compliance programs like SOC2 or ISO 27001 by giving them a dashboard that lays out their current status.
“With the rapid increase in the number of applications being developed and managed, product security needs to be simple and easy to use as code, as well as work within current CI/CD pipelines,” said Ed Sim, founder and managing partner at boldstart ventures. “Jit ensures that modern engineering teams can build secure cloud-based applications by design, all while simplifying continuous security. Jit is unique in that it unifies a variety of open source security tools while natively integrating the entire security as code experience into the current developer workflow.”

View File

@ -10,7 +10,7 @@
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<h2 class="h3"><a class="stretched-link text-body" href="{{ .RelPermalink }}">{{ .Params.title }}</a></h2> <h2 class="h3"><a class="stretched-link text-body" href="{{ .RelPermalink }}">{{ .Params.title }}</a></h2>
<p>{{ .Params.lead | safeHTML }}</p> <p>{{ .Params.excerpt | safeHTML }}</p>
{{ partial "main/blog-meta.html" . -}} {{ partial "main/blog-meta.html" . -}}
</div> </div>
</div> </div>

View File

@ -1,14 +1,29 @@
{{ define "main" }} {{ define "main" }}
<article>
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-md-12 col-lg-10 col-xl-8"> <div class="col-md-12 col-lg-10">
<article>
<div class="blog-header"> <div class="blog-header">
<div class="mt-5 mb-n3">{{ if .Params.categories -}}{{ range $index, $category := .Params.categories -}}{{ if gt $index 0 -}}, {{ end -}}<a class="link-muted" href="{{ "/categories/" | absURL }}{{ . | urlize }}/">{{ . }}</a>{{ end -}}{{ end -}}</div>
<h1>{{ .Title }}</h1> <h1>{{ .Title }}</h1>
{{ partial "main/blog-meta.html" . }} {{ partial "main/blog-meta.html" . }}
</div> </div>
<p class="lead">{{ .Params.lead | safeHTML }}</p> </div>
<div class="col-md-12">
<div class="mt-n3">
{{- .Scratch.Set "fillImage" "1270x620 Center" -}}
{{ partial "content/figure.html" . }}
</div>
</div>
<div class="col-md-12 col-lg-10 col-xl-8">
{{ .Content }} {{ .Content }}
</article> {{ if .Params.tags -}}
<div class="mt-4">
{{ range $index, $tag := .Params.tags -}}
<a class="btn btn-light" href="{{ "/tags/" | absURL }}{{ . | urlize }}/" role="button">{{ . }}</a>
{{ end -}}
</div>
{{ end -}}
</div> </div>
</div> </div>
</article>
{{ end }} {{ end }}

View File

@ -10,7 +10,7 @@
<div class="card-body"> <div class="card-body">
<h2 class="h3"><a class="stretched-link text-body" href="{{ .RelPermalink }}">{{ .Params.title }}</a></h2> <h2 class="h3"><a class="stretched-link text-body" href="{{ .RelPermalink }}">{{ .Params.title }}</a></h2>
{{ if eq .Section "blog" -}} {{ if eq .Section "blog" -}}
<p>{{ .Params.lead | safeHTML }}</p> <p>{{ .Params.excerpt | safeHTML }}</p>
{{ partial "main/blog-meta.html" . -}} {{ partial "main/blog-meta.html" . -}}
{{ end -}} {{ end -}}
</div> </div>

View File

@ -0,0 +1,37 @@
{{ $fillImage := .Scratch.Get "fillImage" }}
{{ if not $fillImage -}}
{{ $fillImage = site.Params.fillImage }}
{{ end -}}
{{ $image := .Resources.GetMatch (printf "**%s" (index .Params.images 0)) }}
{{ if not $image -}}
{{ $image = resources.Get (printf "%s%s" "images/" site.Params.defaultImage) }}
{{ end -}}
{{ $image = $image.Fill $fillImage }}
{{ $lqip := $image.Resize site.Params.lqipWidth -}}
{{ $imgSrc := "" -}}
{{ $imgSrcSet := slice -}}
{{ $widths := site.Params.landscapePhotoWidths -}}
{{ if gt $image.Height $image.Width -}}
{{ $widths = site.Params.portraitPhotoWidths -}}
{{ end -}}
{{ range $widths -}}
{{ $srcUrl := (printf "%dx" . | $image.Resize).Permalink -}}
{{ if eq $imgSrc "" -}}{{ $imgSrc = $srcUrl -}}{{ end -}}
{{ $imgSrcSet = $imgSrcSet | append (printf "%s %dw" $srcUrl .) -}}
{{ end -}}
{{ $imgSrcSet = (delimit $imgSrcSet ",") -}}
{{ if gt $image.Width site.Params.smallLimit -}}
<figure class="figure">
<img class="figure-img img-fluid lazyload blur-up" data-sizes="auto" src="{{ $lqip.Permalink }}" data-srcset="{{ $imgSrcSet }}" width="{{ $image.Width }}" height="{{ $image.Height }}" alt="{{ .Title }}">
<noscript><img class="figure-img img-fluid" sizes="100vw" srcset="{{ $imgSrcSet }}" src="{{ $image.Permalink }}" width="{{ $image.Width }}" height="{{ $image.Height }}" alt="{{ .Title }}"></noscript>
<!-- {{ with .Title }}<figcaption class="figure-caption">{{ . | safeHTML }}</figcaption>{{ end -}} -->
</figure>
{{ else -}}
<img class="img-fluid lazyload blur-up" src="{{ $lqip.Permalink }}" data-src="{{ $image.Permalink }}" width="{{ $image.Width }}" height="{{ $image.Height }}" alt="{{ .Title }}">
{{ end -}}

View File

@ -0,0 +1,32 @@
{{ $image := .Resources.GetMatch (printf "**%s" (index .Params.images 0)) }}
{{ if not $image -}}
{{ $image = resources.Get (printf "%s%s" "images/" site.Params.defaultImage) }}
{{ end -}}
{{ $image = $image.Fill site.Params.fillImage }}
{{ $lqip := $image.Resize site.Params.lqipWidth -}}
{{ $imgSrc := "" -}}
{{ $imgSrcSet := slice -}}
{{ $widths := site.Params.landscapePhotoWidths -}}
{{ if gt $image.Height $image.Width -}}
{{ $widths = site.Params.portraitPhotoWidths -}}
{{ end -}}
{{ range $widths -}}
{{ $srcUrl := (printf "%dx" . | $image.Resize).Permalink -}}
{{ if eq $imgSrc "" -}}{{ $imgSrc = $srcUrl -}}{{ end -}}
{{ $imgSrcSet = $imgSrcSet | append (printf "%s %dw" $srcUrl .) -}}
{{ end -}}
{{ $imgSrcSet = (delimit $imgSrcSet ",") -}}
{{ if gt $image.Width site.Params.smallLimit -}}
<figure class="figure">
<img class="figure-img img-fluid lazyload blur-up" data-sizes="auto" src="{{ $lqip.Permalink }}" data-srcset="{{ $imgSrcSet }}" width="{{ $image.Width }}" height="{{ $image.Height }}" alt="{{ .Title }}">
<noscript><img class="figure-img img-fluid" sizes="100vw" srcset="{{ $imgSrcSet }}" src="{{ $image.Permalink }}" width="{{ $image.Width }}" height="{{ $image.Height }}" alt="{{ .Title }}"></noscript>
<!-- {{ with .Title }}<figcaption class="figure-caption">{{ . | safeHTML }}</figcaption>{{ end -}} -->
</figure>
{{ else -}}
<img class="img-fluid lazyload blur-up" src="{{ $lqip.Permalink }}" data-src="{{ $image.Permalink }}" width="{{ $image.Width }}" height="{{ $image.Height }}" alt="{{ .Title }}">
{{ end -}}