Primo commit
This commit is contained in:
parent
e88c57b676
commit
6fddac379e
|
@ -0,0 +1,3 @@
|
|||
public
|
||||
resources/_gen
|
||||
themes/*
|
|
@ -0,0 +1,13 @@
|
|||
# Repository del sito web di loviuz.me
|
||||
|
||||
## Come compilare
|
||||
```bash
|
||||
git clone https://github.com/loviuz/loviuz-website.git
|
||||
cd loviuz-website
|
||||
git submodule add https://github.com/luizdepra/hugo-coder.git themes/hugo-coder
|
||||
```
|
||||
|
||||
Per testare live:
|
||||
```bash
|
||||
hugo server -D
|
||||
```
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
|
@ -0,0 +1,139 @@
|
|||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
.progress {
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
height: 1rem;
|
||||
overflow: hidden;
|
||||
font-size: 0.75rem;
|
||||
background-color: #e9ecef;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.progress-bar {
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-direction: column;
|
||||
flex-direction: column;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
background-color: #007bff;
|
||||
transition: width 0.6s ease;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.progress-bar {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
|
||||
.progress-bar-striped {
|
||||
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-size: 1rem 1rem;
|
||||
}
|
||||
|
||||
.progress-bar-animated {
|
||||
-webkit-animation: progress-bar-stripes 1s linear infinite;
|
||||
animation: progress-bar-stripes 1s linear infinite;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.progress-bar-animated {
|
||||
-webkit-animation: none;
|
||||
animation: none;
|
||||
}
|
||||
}
|
||||
|
||||
.bg-primary {
|
||||
background-color: #007bff !important;
|
||||
}
|
||||
|
||||
a.bg-primary:hover, a.bg-primary:focus,
|
||||
button.bg-primary:hover,
|
||||
button.bg-primary:focus {
|
||||
background-color: #0062cc !important;
|
||||
}
|
||||
|
||||
.bg-secondary {
|
||||
background-color: #6c757d !important;
|
||||
}
|
||||
|
||||
a.bg-secondary:hover, a.bg-secondary:focus,
|
||||
button.bg-secondary:hover,
|
||||
button.bg-secondary:focus {
|
||||
background-color: #545b62 !important;
|
||||
}
|
||||
|
||||
.bg-success {
|
||||
background-color: #28a745 !important;
|
||||
}
|
||||
|
||||
a.bg-success:hover, a.bg-success:focus,
|
||||
button.bg-success:hover,
|
||||
button.bg-success:focus {
|
||||
background-color: #1e7e34 !important;
|
||||
}
|
||||
|
||||
.bg-info {
|
||||
background-color: #17a2b8 !important;
|
||||
}
|
||||
|
||||
a.bg-info:hover, a.bg-info:focus,
|
||||
button.bg-info:hover,
|
||||
button.bg-info:focus {
|
||||
background-color: #117a8b !important;
|
||||
}
|
||||
|
||||
.bg-warning {
|
||||
background-color: #ffc107 !important;
|
||||
}
|
||||
|
||||
a.bg-warning:hover, a.bg-warning:focus,
|
||||
button.bg-warning:hover,
|
||||
button.bg-warning:focus {
|
||||
background-color: #d39e00 !important;
|
||||
}
|
||||
|
||||
.bg-danger {
|
||||
background-color: #dc3545 !important;
|
||||
}
|
||||
|
||||
a.bg-danger:hover, a.bg-danger:focus,
|
||||
button.bg-danger:hover,
|
||||
button.bg-danger:focus {
|
||||
background-color: #bd2130 !important;
|
||||
}
|
||||
|
||||
.bg-light {
|
||||
background-color: #f8f9fa !important;
|
||||
}
|
||||
|
||||
a.bg-light:hover, a.bg-light:focus,
|
||||
button.bg-light:hover,
|
||||
button.bg-light:focus {
|
||||
background-color: #dae0e5 !important;
|
||||
}
|
||||
|
||||
.bg-dark {
|
||||
background-color: #343a40 !important;
|
||||
}
|
||||
|
||||
a.bg-dark:hover, a.bg-dark:focus,
|
||||
button.bg-dark:hover,
|
||||
button.bg-dark:focus {
|
||||
background-color: #1d2124 !important;
|
||||
}
|
||||
|
||||
.bg-white {
|
||||
background-color: #fff !important;
|
||||
}
|
||||
|
||||
.bg-transparent {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
.projects-list{
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.list ul.projects-list > li{
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.projects-list > li > img{
|
||||
float: left;
|
||||
}
|
||||
|
||||
.list ul.tags,
|
||||
.page ul.tags{
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.list ul.tags > li{
|
||||
display: inline;
|
||||
color: #999;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
.page ul.tags > li{
|
||||
display: inline;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.list ul.projects-list li .title{
|
||||
font-size: 1.5em;
|
||||
line-height: 1.3em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.list ul li .date{
|
||||
width: auto;
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.project-image{
|
||||
display: inline;
|
||||
float: left;
|
||||
position: relative;
|
||||
margin-right: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.project-image > span{
|
||||
position: absolute;
|
||||
bottom: 15px;
|
||||
right: -5px;
|
||||
color: #fff;
|
||||
padding: 0em .5em;
|
||||
background: rgb(16, 104, 192);
|
||||
font-size: 70%;
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.projects-list > li > img{
|
||||
float: none;
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.projects-list > li > a{
|
||||
float: right;
|
||||
}
|
||||
|
||||
.projects-list .progress{
|
||||
width: 100%;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
baseurl = "https://loviuz.blog"
|
||||
title = "Loviuz"
|
||||
theme = "hugo-coder"
|
||||
languagecode = "it"
|
||||
defaultcontentlanguage = "it"
|
||||
pluralizeListTitles = false
|
||||
|
||||
paginate = 20
|
||||
|
||||
pygmentsstyle = "bw"
|
||||
pygmentscodefences = true
|
||||
pygmentscodefencesguesssyntax = true
|
||||
|
||||
[params]
|
||||
author = "Fabio Lovato"
|
||||
info = "Sviluppatore, Imprenditore e Hacker"
|
||||
description = "Sito web personale di Fabio Lovato"
|
||||
keywords = "hacking,linux,opensource,blog,developer,personal"
|
||||
avatarurl = "images/loviuz_avatar.jpg"
|
||||
#gravatar = "john.doe@example.com"
|
||||
|
||||
favicon_32 = "images/favicon-32x32.png"
|
||||
favicon_16 = "images/favicon-16x16.png"
|
||||
|
||||
since = 2011
|
||||
|
||||
enableTwemoji = true
|
||||
|
||||
colorScheme = "auto"
|
||||
hidecolorschemetoggle = false
|
||||
|
||||
customCSS = ["css/custom.css", "css/bootstrap.css"]
|
||||
#customSCSS = ["scss/custom.scss"]
|
||||
#customJS = ["js/custom.js"]
|
||||
|
||||
[taxonomies]
|
||||
category = "categorie"
|
||||
|
||||
# Social links
|
||||
[[params.social]]
|
||||
name = "Telegram"
|
||||
icon = "fa fa-telegram fa-2x"
|
||||
weight = 1
|
||||
url = "https://t.me/loviuz"
|
||||
[[params.social]]
|
||||
name = "Mastodon"
|
||||
icon = "fa fa-mastodon fa-2x"
|
||||
weight = 2
|
||||
url = "https://mastodon.uno/web/@loviuz86"
|
||||
[[params.social]]
|
||||
name = "Github"
|
||||
icon = "fa fa-github fa-2x"
|
||||
weight = 3
|
||||
url = "https://github.com/loviuz/"
|
||||
[[params.social]]
|
||||
name = "Gitlab"
|
||||
icon = "fa fa-gitlab fa-2x"
|
||||
weight = 4
|
||||
url = "https://gitlab.com/loviuz/"
|
||||
[[params.social]]
|
||||
name = "Twitter"
|
||||
icon = "fa fa-twitter fa-2x"
|
||||
weight = 5
|
||||
url = "https://twitter.com/loviuz/"
|
||||
|
||||
# Menu links
|
||||
[[menu.main]]
|
||||
name = "Chi sono"
|
||||
weight = 1
|
||||
url = "chi-sono/"
|
||||
[[menu.main]]
|
||||
name = "Hacking civico"
|
||||
weight = 2
|
||||
url = "hacking/"
|
||||
[[menu.main]]
|
||||
name = "Progetti"
|
||||
weight = 3
|
||||
url = "progetti/"
|
||||
|
||||
|
||||
[imaging]
|
||||
anchor = 'Smart'
|
||||
bgColor = '#ffffff'
|
||||
hint = 'photo'
|
||||
quality = 75
|
||||
resampleFilter = 'Box'
|
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
title: Chi sono
|
||||
slug: chi-sono
|
||||
date: 2022-06-04T16:34:00+02:00
|
||||
---
|
||||
|
||||
Sono un **programmatore** web italiano dell'annata 86, appassionato di **hacking** in qualsiasi forma e dal 2015 **imprenditore** in un'azienda di sviluppo software fondata con un socio e dipendenti, dove sviluppiamo il gestionale open source [OpenSTAManager](https://openstamanager.com).
|
||||
|
||||
![Io a computer](/images/work-g21747db40_1280.jpg)
|
||||
|
||||
|
||||
### Perché questo blog?
|
||||
Questo blog nasce da tante idee che in questi anni ho voluto esternare ad amici e conoscenti o ad altre persone su Internet. Leggendo molto su vari argomenti e con una buona esperienza su alcuni di questi ho sempre avuto difficoltà nel concentrarmi su uno in particolare, ma non ho mai voluto scrivere di tutto in modo approssimativo senza entrare nello specifico, ed è questo che forse mi ha frenato e ha fatto tardare l'uscita di un blog personale.
|
||||
|
||||
Per far capire quali sono tutti questi argomenti provo a elencarli in una banale lista:
|
||||
- libertà digitali
|
||||
- software libero
|
||||
- questioni etiche nel mondo digitale
|
||||
- politica e hacktivismo
|
||||
- cybersecurity
|
||||
- OSINT su fake news (open source intelligence e approfondimento delle notizie per rilevare quelle false)
|
||||
|
||||
Sono tutti temi legati fra loro. Alcune sembrano parolone ma ti assicuro che quello che era traducibile in italiano l'ho fatto 😅. Scendere nel dettaglio di ciascun argomento diventerebbe troppo pesante, soprattutto per chi non è del settore, per questo cercherò di rendere la lettura leggera dove possibile.
|
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: Civic Hacking
|
||||
slug: hacking
|
||||
date: 2022-06-04T17:34:00+02:00
|
||||
---
|
||||
|
||||
|
||||
## Cosa fa un hacker?
|
||||
Diversamente da come lo dipingono i media, cioè come un pirata informatico o chi invia virus, ransomware o lancia attacchi informatici, l'[hacker](https://it.wikipedia.org/wiki/Hacker) è semplicemente una persona curiosa che smonta, rimonta, studia qualsiasi cosa per il gusto di farlo e per raggiungere anche degli obiettivi "smanettando". Spesso è un termine legato al mondo della cybersicurezza ma non è così.
|
||||
|
||||
## Cos'è quindi il CivicHacking?
|
||||
E' un termine che non ho sentito molto usare, ma se non ha una sua definizione gliela darò io:
|
||||
|
||||
**fare hacking per la collettività e il territorio**.
|
||||
|
||||
Il Civic Hacking diventa quindi usare la propria curiosità per aiutare le persone, trovare soluzioni e sperimentare nel mondo digitale con lo scopo di partecipare attivamente alla vita democratica del proprio paese, mettendosi a disposizione di tutti le proprie scoperte o soluzioni, così come il mondo open source insegna.
|
||||
|
||||
## Si ma... qualche esempio?
|
||||
Lo puoi trovare tra [i miei progetti](/progetti), se pur qualcuno iniziato da poco (per iniziare qualcosa di utile serve tempo, sperimentare e trovare qualcosa che può fare la differenza).
|
Binary file not shown.
After Width: | Height: | Size: 76 KiB |
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
title: Mappa dei prezzi distributori in Italia
|
||||
description: Mappatura dei prezzi dei distributori in Italia importati dai dati ufficiali del MISE (MInistero dello Sviluppo Economico) dal formato CSV
|
||||
date: 2022-05-28T19:46:00+02:00
|
||||
image: fuel-gf6da54ccc_1280.jpg
|
||||
obiettivo_percent: 90
|
||||
categories:
|
||||
- Mappe
|
||||
tags:
|
||||
- openstreetmap
|
||||
- umap
|
||||
- benzina
|
||||
- italia
|
||||
---
|
||||
|
||||
|
||||
## Subtitle
|
||||
das
|
Binary file not shown.
After Width: | Height: | Size: 351 KiB |
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
title: Mappa dei raccoglitori di olio a Este
|
||||
description: Mappatura dei raccoglitori
|
||||
date: 2022-06-05T10:30:00+02:00
|
||||
image: glass-g3f8fa8a62_1280.jpg
|
||||
obiettivo_percent: 10
|
||||
categories:
|
||||
- Mappe
|
||||
tags:
|
||||
- openstreetmap
|
||||
- umap
|
||||
- riciclo
|
||||
- italia
|
||||
---
|
||||
|
||||
|
||||
A maggio ho letto un articolo de **LaPiazzaWeb.it** dove scrivevano che il comune stava posizionando dei contenitori di olio alimentare esausto:
|
||||
|
||||
https://www.lapiazzaweb.it/2022/05/a-este-nuovi-contenitori-per-conferire-lolio-alimentare-esausto/
|
||||
|
||||
In quel momento ho pensato di poter mappare su OpenStreetMap i punti dove trovare questi raccoglitori. Al momento non sapendo come mapparli su OpenStreetMap e se è corretto mapparli lì ho pensato di usare [uMap](http://umap.openstreetmap.fr/it/). Devo ancora iniziare, devo prima trovarli fisicamente 😅
|
|
@ -0,0 +1,7 @@
|
|||
<a href="{{ .Destination | safeURL }}"
|
||||
{{ with .Title}} title="{{ . }}"{{ end }}
|
||||
{{ if strings.HasPrefix .Destination "http" }}
|
||||
target="_blank" rel="noopener noreferrer"
|
||||
{{ end }}>
|
||||
{{ .Text | safeHTML }}
|
||||
</a>
|
|
@ -0,0 +1,24 @@
|
|||
<head>
|
||||
{{ partial "head/meta-tags.html" . }}
|
||||
|
||||
<title>{{ block "title" . }}{{ .Site.Title }}{{ if not (eq .Site.Title .Page.Title) }} - {{ .Page.Title }}{{ end }}{{ end }}</title>
|
||||
|
||||
{{ if .Permalink }}
|
||||
<link rel="canonical" href="{{ .Permalink }}">
|
||||
{{ end }}
|
||||
|
||||
{{ partialCached "head/theme-styles.html" . }}
|
||||
|
||||
{{ partialCached "head/color-scheme.html" . }}
|
||||
|
||||
{{ partialCached "head/custom-styles.html" . }}
|
||||
|
||||
{{ partialCached "head/custom-icons.html" . }}
|
||||
|
||||
{{ partialCached "head/alternative-output-formats.html" . }}
|
||||
|
||||
{{ partialCached "head/hugo-generator.html" . }}
|
||||
|
||||
{{ partial "head/extensions.html" . }}
|
||||
</head>
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
<nav class="navigation">
|
||||
<section class="container">
|
||||
<a class="navigation-title" href="{{ .Site.BaseURL | relLangURL }}">
|
||||
<i class="fa fa-terminal"></i> {{ .Site.Title }}
|
||||
</a>
|
||||
{{ if or .Site.Menus.main .Site.IsMultiLingual }}
|
||||
<input type="checkbox" id="menu-toggle" />
|
||||
<label class="menu-button float-right" for="menu-toggle">
|
||||
<i class="fa fa-bars fa-fw" aria-hidden="true"></i>
|
||||
</label>
|
||||
<ul class="navigation-list">
|
||||
{{ with .Site.Menus.main}}
|
||||
{{ range sort . }}
|
||||
<li class="navigation-item">
|
||||
<a class="navigation-link" href="{{ index (apply (slice .URL) (.Params.urlFunc | default "relLangURL") ".") 0 }}">{{ .Name }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ if .Site.IsMultiLingual }}
|
||||
{{ $node := . }}
|
||||
{{ .Scratch.Set "separator" true }}
|
||||
{{ range (default .Site.Home.AllTranslations .Translations) }}
|
||||
{{ if ne $.Site.Language .Language }}
|
||||
{{ if $node.Scratch.Get "separator" }}
|
||||
<li class="navigation-item menu-separator">
|
||||
<span>|</span>
|
||||
</li>
|
||||
{{ $node.Scratch.Set "separator" false }}
|
||||
{{ end }}
|
||||
<li class="navigation-item">
|
||||
<a href="{{ .Permalink }}">{{ .Language.LanguageName | emojify }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
</section>
|
||||
</nav>
|
|
@ -0,0 +1,50 @@
|
|||
<section class="container list">
|
||||
<h1 class="title">
|
||||
<a class="title-link" href="{{ .Permalink | safeURL }}">
|
||||
{{- if eq .Kind "term" -}}
|
||||
{{- i18n .Data.Plural 1 | title -}}
|
||||
{{- print ": " -}}
|
||||
{{- end -}}
|
||||
{{- i18n (lower .Title) | default .Title | title -}}
|
||||
</a>
|
||||
</h1>
|
||||
{{ .Content }}
|
||||
<ul class="projects-list">
|
||||
{{ range .Paginator.Pages }}
|
||||
{{ $image := .Resources.GetMatch .Params.image }}
|
||||
{{ $image := $image.Resize "x350" }}
|
||||
{{ $image := $image.Crop "350x350" }}
|
||||
{{ if $image }}
|
||||
<li>
|
||||
<div class="project-image">
|
||||
<a href="{{ .Params.externalLink | default .RelPermalink }}">
|
||||
<img src="{{ $image.RelPermalink }}">
|
||||
</a>
|
||||
<span class="date">{{ .Date | time.Format (.Site.Params.dateFormat | default "January 2006" ) }}</span>
|
||||
</div>
|
||||
|
||||
{{ if .Params.obiettivo_percent }}
|
||||
<div class="progress">
|
||||
<div class="progress-bar" style="width:{{ .Params.obiettivo_percent }}%;"></div>
|
||||
</div>
|
||||
{{ end }}
|
||||
<br>
|
||||
|
||||
<a class="title" href="{{ .Params.externalLink | default .RelPermalink }}">{{ .Title }}</a>
|
||||
<br>
|
||||
<span class="description">{{ .Params.description }}</span>
|
||||
|
||||
{{ if .Params.tags }}
|
||||
<ul class="tags">
|
||||
{{ range .Params.tags }}
|
||||
<li>#{{ . }}</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
<div style="clear:both;"></div>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ partial "pagination.html" . }}
|
||||
</section>
|
|
@ -0,0 +1,28 @@
|
|||
<section class="container page">
|
||||
<a href="{{.Site.BaseURL}}{{.Section}}"><i class="fa fa-chevron-left fa-fw"></i> Torna a {{.Section}}</a>
|
||||
<article>
|
||||
<header>
|
||||
<h1 class="title">
|
||||
<a class="title-link" href="{{ .Permalink | safeURL }}">
|
||||
{{ .Title }}
|
||||
</a>
|
||||
</h1>
|
||||
|
||||
{{ if .Params.tags }}
|
||||
<ul class="tags">
|
||||
{{ range .Params.tags }}
|
||||
<li>#{{ . }}</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
</header>
|
||||
|
||||
{{ $image := .Resources.GetMatch .Params.image }}
|
||||
{{ if $image }}
|
||||
{{ $image := $image.Crop "1280x250" }}
|
||||
<img src="{{ $image.RelPermalink }}">
|
||||
{{ end }}
|
||||
|
||||
{{ .Content }}
|
||||
</article>
|
||||
</section>
|
Binary file not shown.
After Width: | Height: | Size: 117 KiB |
Loading…
Reference in New Issue