teleren/devto huggingface dataset:
Checksum Verification by aqua
Published: 2022-11-08 00:29:24

In this blog post I introduce aqua's Checksum Verification.

https://aquaproj.github.io/docs/reference/checksum/

aqua is a declarative CLI Version Manager written in Go.

https://aquaproj.github.io/

From [v1.20.0](https://github.com/aquaproj/aqua/releases/tag/v1.20.0), aqua has supported Checksum Verification.
Checksum Verification is a feature verifying downloaded assets with checksum. Checksum Verification prevents the supply chain attack and allows you to install tools securely.

By default, aqua's Checksum Verification is disabled. To enable it, please add the configuration to `aqua.yaml`.

```yaml
checksum:
  enabled: true
registries:
  - type: standard
    ref: v3.90.0 # renovate: depName=aquaproj/aqua-registry
packages:
  - name: golangci/golangci-lint@v1.46.2
```

aqua creates or updates a file `aqua-checksums.json` in the same directory as `aqua.yaml`.

e.g. `aqua-checksums.json`

```json
{
  "checksums": [
    {
      "id": "github_release/github.com/golangci/golangci-lint/v1.49.0/golangci-lint-1.49.0-darwin-amd64.tar.gz",
      "checksum": "20cd1215e0420db8cfa94a6cd3c9d325f7b39c07f2415a02d111568d8bc9e271",
      "algorithm": "sha256"
    },
    {
      "id": "github_release/github.com/golangci/golangci-lint/v1.49.0/golangci-lint-1.49.0-darwin-arm64.tar.gz",
      "checksum": "cabb1a4c35fe1dadbe5a81550a00871281a331e7660cd85ae16e936a7f0f6cfc",
      "algorithm": "sha256"
    }
  ]
}
```

Basically, you don't have to edit this file manually, because this is updated by aqua.

Many tools publish checksum files, so aqua gets checksums from them.

e.g.

* [Terraform](https://releases.hashicorp.com/terraform/1.2.7/terraform_1.2.7_SHA256SUMS)
* [GitHub CLI](https://github.com/cli/cli/releases/download/v2.14.4/gh_2.14.4_checksums.txt)

## `aqua update-checksum` command

You can create or update `aqua-checksums.json` without installing tools by `aqua update-checksum` command.

```console
$ aqua update-checksum
```

By default, `aqua update-checksum` gets checksums from each tool's checksum files (e.g. [GitHub CLI](https://github.com/cli/cli/releases/download/v2.14.4/gh_2.14.4_checksums.txt)), so it can't get checksums if no checksum file of the package is released.

If `-deep` option is set, `aqua update-checksum` downloads assets to calculate checksums.

```console
$ aqua update-checksum -deep
```

## Autoupdate `aqua-checksums.json` by GitHub Actions

You can autoupdate `aqua-checksums.json` by GitHub Actions. Please see the example.

https://github.com/aquaproj/example-update-checksum

## Getting Started

Please see [Getting Started](https://aquaproj.github.io/docs/tutorial-extras/checksum#getting-started).

## Summary

In this blog post I've introduced aqua's Checksum Verification.
Checksum Verification is very important to install tools securely.
This feature is disabled by default, so please enable it.
In this blog I haven't described the detail, so please see the official document too.

https://aquaproj.github.io/docs/reference/checksum/
Can Text formatting increase site traffic?
Tags: html, css, javascript, webdev
Published: 2022-11-08 03:20:47

## Can [Text formatting](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=15&tutorial_id=14) increase [site](https://prhocoding.com/prhocoding_sitemap.php) traffic?



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vsbizwphmz5tk7h7sjky.jpg)


We know that a lot of people in the world of internet are [content](https://prhocoding.com/) writers. These content writers writes content on daily bases which we all people consume. So, improving the overall [structure](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=1), [styling](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=2) and [quality](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=3) of content is necessary for them to retain their views keep visiting their sites. Without it, they will loose a bunch of their revenue.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yoz73d458agj9bnepvbh.jpg)

Some popular [tags](https://prhocoding.com/index.php?page=section&cat_id=1&lang_id=1&sec_id=60) and [attributes](https://prhocoding.com/index.php?page=section&cat_id=1&lang_id=1&sec_id=62) used for this purpose are:-



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fluaiyztut1gys81tooe.jpg)


- [Superscript Tag](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=60&tutorial_id=445) ( makes the content superscript)
- [Subscript Tag](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=60&tutorial_id=443) ( makes the content subscript)
- [Italic Tag](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=60&tutorial_id=405) ( makes the content in italic)
- [Small Tag](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=60&tutorial_id=438) ( makes the content smaller as compared to surrounding)
- [Strong Tag](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=60&tutorial_id=441) ( makes the content strong and important)
Rename Task in Windows Task Scheduler
Tags: windows
Published: 2022-11-08 03:16:01

今天要記錄關於 Windows 內建功能—**任務排程器（Task Scheduler）**

Task Scheduler 是一款很好用但一般使用者卻很少用的功能，它可以設定程式自動執行，系統預設會有一些系統的 Task 掛載在上面執行，如果使用者想掛載自己的程式也是沒有問題，你可以設置自動發送 Mail，或是定時關機及喚醒電腦等等。

這篇不會教學如何建立排程，而是如何重新命名已經存在的排程，一般
來說對項目點擊右鍵就會出現 rename 的選項，可直接在上方修改名稱，但是 Task Scheduler 沒有這個選項！當我發現這個問題時頭都暈了，如果不能 rename 但又想 rename，豈不是要先砍掉排程，再重新建立和設定排程，我不想這麼重工，而且萬一遺漏掉設定，也不知何年何月會發現？

重頭戲來了，由於我不想為了改名而從頭設定排程，我發現一個方法可以完美 rename 排程，簡單來說，將現有排程匯出成 .xml 檔案，再將檔案重新匯入，重新匯入的過程中就可以修改名稱，此題還算是有解！

選擇想要 rename 的排程，對項目點擊右鍵選擇匯出，或者在右側的動作側邊欄/選取的項目，選擇匯出

![win-003](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9wyjczbhp5n7co3ewqra.png)

此時會開啟另存檔案的視窗，將排程儲存成 .xml 檔案，接著在工作排程器中把原有的排程刪除

![win-004](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v8tu8iwz8838g63o3ce5.png)

選擇匯入工作，並選取剛剛儲存的 .xml 檔案

![win-005](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zonggmmtd7roh4rjus6c.png)

此時會開啟新建工作的視窗，原先排程的設定都會套用上去，無須重新設定，名稱的地方則是變成可編輯的樣式，重新命名後選擇確定即可

---

Thanks for reading the article :tulip: :sunflower: :blossom:

If you like it, please don't hesitate to click heart button :heart:
or follow my [GitHub](https://github.com/FakeStandard) :star:
or buy me a coffee :arrow_down: I'd appreciate it.

[![Buy-me-a-coffee][1]][2]

[1]: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h077sxd0vx1hix4t7lw8.png
[2]: https://www.buymeacoffee.com/FakeStandard

---
Why Comments Necessary in Coding?
Tags: html, css, webdev, javascript
Published: 2022-11-08 02:49:37

## Why [Comments](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=15&tutorial_id=10) Necessary in [Coding](https://prhocoding.com/prhocoding_sitemap.php)?



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xzzf6ct9wa9tyab55yfx.jpg)


[Comments](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=60&tutorial_id=360) are an essential part in coding whether we are writing code for any [programming language](https://prhocoding.com/) like:-


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y1ahgjoocknqn4ue1c2g.jpg)


- [HTML](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=1)
- [CSS](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=2)
- [JavaScript](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=3)
- [jQuery](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=4)
- [SVG](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=5)
- [Canvas](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=6)
- [AngularJS](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=7)
- [Bootstrap 5](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=8)



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/id2yxbz4odnc5xd73a1o.jpg)


Comments in [HTML](https://prhocoding.com/index.php?page=section&cat_id=1&lang_id=1&sec_id=18) are neither [Tags](https://prhocoding.com/index.php?page=section&cat_id=1&lang_id=1&sec_id=60) nor [attributes](https://prhocoding.com/index.php?page=section&cat_id=1&lang_id=1&sec_id=62) and some of their main uses are:-


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/13gh26dn3bxouq2pvi4z.jpg)

- makes code more readable
- helps new develop to understand basic functionality
- can be used as notes
Using Google Fonts with Next.js (typescript)
Tags: nextjs, typescript
Published: 2022-11-08 02:32:53

To add a google font to an Next.js application, create a [Custom Document](https://nextjs.org/docs/advanced-features/custom-document) ( _document.tsx in the pages folder), and copy <link> from [google fonts](https://fonts.google.com/)

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1660306591072/ExtlXI80A.png)

```
// pages/_document.tsx
import Document, {
    DocumentContext,
    DocumentInitialProps,
    Html,
    Head,
    Main,
    NextScript
} from 'next/document'

class MyDocument extends Document {
    static async getInitialProps(
        ctx: DocumentContext
    ): Promise<DocumentInitialProps> {
        const initialProps = await Document.getInitialProps(ctx)

        return initialProps
    }

    render() {
        return (
            <Html>
                <Head>
                    <link rel="preconnect" href="https://fonts.googleapis.com"/>
                    <link rel="preconnect" href="https://fonts.gstatic.com"/>
                    <link href="https://fonts.googleapis.com/css2?family=Raleway&display=swap" rel="stylesheet"/>
                </Head>
                <body>
                <Main/>
                <NextScript/>
                </body>
            </Html>
        )
    }
}

export default MyDocument
```

Finally, apply this CSS rule

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1660306739149/kKMGw3krZ.png)
Why Horizontal Lines are important in a webpage?
Tags: html, css, webdev, javascript
Published: 2022-11-08 02:27:17

## Why [Horizontal Lines](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=15&tutorial_id=9) are important in a [webpage](https://prhocoding.com/prhocoding_sitemap.php)?


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u9ip1zxsv55b4wgrdp03.jpg)

There are cases when a user writes too big content on the [website](https://prhocoding.com/). In Such cases, we might need [horizontal lines](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=60&tutorial_id=403) which can divide our [content](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=1). This will also helps user to read more and it will also changes the [styles](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=2) and [scripts](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=3) of that current content.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nqp27kk96pu5xuuyr72q.jpg)

### Some important uses of [Horizontal lines](https://prhocoding.com/index.php?page=section&cat_id=1&lang_id=1&sec_id=60) are:-


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ia84luzylzbp7djugib.jpg)

- It helps divide the [content](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=4)
- It will separate the [content](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=5)
- It will enhance [styling](https://prhocoding.com/index.php?page=section&cat_id=1&lang_id=2&sec_id=72) of the [content](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=6)
- It will encourage reader to read more
- Will help in improving our all quality to your [website](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=8)
Is Headings important when writing a blog?
Tags: html, css, webdev, javascript
Published: 2022-11-08 02:18:05

## Is [Headings](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=15&tutorial_id=8) important when writing a [blog](https://prhocoding.com/prhocoding_sitemap.php)?



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g5jel3a14t5vnf74mszr.png)


As we know, blogging is the source of income for majority of publishers around the internet. Blogging is similar to writing an article in news papers but the difference is that you can have your own website on which you can writes blogs.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4suzip375tp9puo856x6.jpg)

A blog consists of [headings](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=60&tutorial_id=400), [paragraphs](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=15&tutorial_id=11), [quotations](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=60&tutorial_id=373), [references](https://prhocoding.com/index.php?page=Tutorials&cat_id=1&lang_id=1&sec_id=15&tutorial_id=23) and many other similar things. Let us go into details about each of them:-


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zu9bxy0nmdufnxtsacwl.jpg)

### [Paragraphs](https://prhocoding.com/):-


[Paragraphs](https://prhocoding.com/index.php?page=section&cat_id=1&lang_id=1&sec_id=60) are important as we can place our all contents in it. Then we can [style](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=2) them according to used needs and present it to the reader



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w9iu7snftu21l7r8x1v4.jpg)

## [References](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=9):-


[References](https://prhocoding.com/index.php?page=language&cat_id=1&lang_id=10) are important as it helps reader to know what are the sources of the given blog. It will increase the trust among the readers and it will benefit you a lot in the long race.
How To Detect And Prevent Credit Card Fraud
Tags: webdev, tutorial, javascript, help
Published: 2022-11-08 02:07:02

## Credit Card Fraud 
Credit card fraud is a wide-ranging term for theft and fraud committed using or involving a payment card, such as a credit card or debit card, as a fraudulent source of funds in a transaction. Credit card fraud is also an adjunct to identity theft.

Card fraud begins either with the theft of the physical card or with the compromise of data associated with the account, including the card account number or other information that would routinely and necessarily be available to a merchant during a legitimate transaction. The compromise can occur by many common routes and can usually be conducted without tipping off the cardholder, the merchant, or the issuer at least until the account is ultimately used for fraud.

When a credit card is lost or stolen, it may be used for illegal purchases until the holder notifies the issuing bank and the bank puts a block on the account. Most banks have free 24-hour telephone numbers to encourage prompt reporting. Still, it is possible for a thief to make unauthorized purchases on a card before the card is canceled. Without other security measures, a thief could potentially purchase thousands of dollars in merchandise or services before the cardholder or the card issuer realizes that the card has been compromised.

As part of your financial obligations to the card networks, you must ensure that disputes (also called chargebacks) and fraud are kept to acceptable levels. If these exceed the thresholds dictated by each network (e.g., Visa or Mastercard), you are placed into one of their monitoring programs. As part of a program, you can be subject to monthly fines and additional fees until your dispute or fraud levels have been reduced.

## Fraud Detection
In this article we will focus on 3 ways to detect possible fraud :

1. Compare billing address with visitor location.

2. Detect Tor, VPN, anonymous proxy usage and hosting providers

3. Check for known cyberattack vectors

Check out code implementation here 

[IpForensics Credit Card Fraud Detection and Prevention Code](https://ipforensics.gitbook.io/ipforensics/code-implantation/how-to-detect-and-prevent-credit-card-fraud)


Follow us on LinkedIn
[https://www.linkedin.com/company/ipforensics/](https://www.linkedin.com/company/ipforensics/)

Visit our website for more
[IPFORENSICS WEBSITE](https://ipforensics.com)
¿Deep Learning? ¿Qué es eso?
Tags: spanish, deeplearning, machinelearning, beginners
Published: 2022-11-08 02:00:00

El **Deep Learning** es el área del **Machine Learning** que usa Redes Neuronales Artificiales de múltiples capas para aprendizaje automático de características en distintos niveles de abstracción, y así resolver problemas que normalmente son difíciles para el **Machine Learning** tradicional.

## Veamos algo de Historia

La historia del **Deep Learning** comienza desde los 50, cuando se empezaron a sentar las bases de estos algoritmos.

- **1950-1990:** Creación de principales algoritmos para entrenamiento de Redes Neuronales.
- **1990:** Dificultades para entrenar modelos profundos + Investigación.
- **2010 en adelante:** Explosión del **Deep Learning**.

Pero la explosión de estas redes sucede a partir de que se alcanza y supera el performance humano en gran parte de las tareas de percepción como detección de objetos, segmentación semántica, traducción automática y en juegos como Ajedrez, Go o LoL.

En el **Premio Turing de 2018** le es otorgado a tres investigadores en Inteligencia Artificial: Geoffrey Hinton, Yann LeCun y Yoshua Bengio, por sus aportaciones en **Deep Learning,** que han permitido grandes avances en áreas como la visión artificial y el reconocimiento de voz.

Este sería el comienzo de una nueva era de la computación, la era del **Deep Learning.**

## Deep Learning Aplicado

Actualmente, podemos encontrar al **Deep Learning** aplicado en muchas formas, por ejemplo.

### Generative Adversarial Networks

Son una aplicación del **Deep Learning** que ha adquirido mucha fama en los últimos años debido a los **DeepFakes**. Un ejemplo de esto es una red que entrenada a partir de un conjunto de imágenes de rostros sea capaz de generar nuevos rostros de personas ficticias.

### Pix2Pix

Es capaz de crear imágenes realistas a partir de los bosquejos que se le ingresan.

### CycleGAN

Es capaz de transferir los estilos de una imagen a otras, por ejemplo, puede convertir la imagen de un paisaje de primavera a la forma en que se vería en invierno o viceversa.

## Conclusión

El **Deep Learning** nos ha traído nuevas posibilidades para la computación y los resultados de años de investigación ya se están viendo.

Ahora ya entiendes que es el **Deep Learning**, un poco de su historia y algunas de sus aplicaciones. ¿Qué opinas? Deja tu comentario abajo 👇, ayúdame a enriquecer este contenido. Así podremos llegar a mejores conclusiones y aprenderemos más.

**Este artículo es parte del contenido que publico en mi [blog personal](https://raulpacheco.dev/), si quieres leer más artículos así, visítalo [Aquí](https://raulpacheco.dev/) y no olvides seguirme en mis redes sociales para estar al pendiente de nuevas publicaciones.**
Using Husky Pre-commit git hook with prettier
Tags: nextjs, git
Published: 2022-11-08 01:43:28

Husky allows scripts to run at various git lifecycle events. Here, we want to use the Husky pre-commit hook to run prettier to automatically format the files in the repository on commit.

> project setup on gitlab: https://gitlab.com/test-projects47/husky-prettier-lintstaged-test

# Setup Husky

We set up husky automatically with husky-init

```
npx husky-init && npm install       # npm
# or
npx husky-init && yarn              # Yarn 1
```
A new folder, .husky is created in the root directory

Reference: https://typicode.github.io/husky/#/?id=automatic-recommended

# Install Prettier

```
npm install prettier --save-dev
# or
yarn add prettier -D
```

# Add prettier format script (optional)

add the following to `package.json`, so we can use `yarn format` to format all files with prettier

```
 "scripts": {
    ...
    "format": "prettier --write ."
  }
```

# Configure Husky
In `.husky/pre-commit`, add `yarn format`

```
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

yarn format

```
Now, `yarn format` will run every time we use `git commit`

# Only format staged files (optional)
With above setup, all files will be formatted. If we only want to format staged files, we can use `lint-staged`

1. Install lint-staged
```
npm install lint-staged --save-dev
# or
yarn add lint-staged -D
```
2. Add the lint-staged configuration to `package.json`
```
"scripts": {
    ...
  },
  "lint-staged": {
    "**/*.{js,jsx,ts,tsx}": [
      "prettier --write"
    ]
  },
  "dependencies": {
    ...
  },
  ...
```
3. Edit `.husky/pre-commit` file

  ```
    #!/bin/sh
    . "$(dirname "$0")/_/husky.sh"
  
    npx lint-staged
  ```
Now, on git commit, prettier will only format, staged files, with specific file extension (js, jsx, ts, tsx) in this case. 

  but there's a [bug](https://github.com/typicode/husky/issues/968#issuecomment-1176848345) with lint-staged and husky which creates too many terminal messages like below
  
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/djeuvzfqb02ei7rq1334.png)

  
  The temporary fix is as follow (in `.husky/pre-commit`),
 
  ```
    #!/usr/bin/env sh
    . "$(dirname -- "$0")/_/husky.sh"

    exec >/dev/tty 2>&1

    npx lint-staged
```
Things I learned this week - Week 45 (2022 ed.)
Published: 2022-11-08 01:42:07



1. Typed JavaScript? For real? The type annotations proposal and what it’s all about
{% embed https://www.youtube.com/watch?v=8EXuuLtYFY0 %}

2. How to fix a No `Access-Control-Allow-Origin’ error message on Google Cloud Storage
I’m trying to download a file via jQuery Ajax. The file is stored a file on Google Cloud Storage. My domain is http://localhost:8888/. 
https://selom.medium.com/how-to-fix-a-no-access-control-allow-origin-error-message-on-google-cloud-storage-90dd9b7e3ddb

3. Rendering real-time data with Vue, Node, and socket.io
https://blog.openreplay.com/rendering-real-time-data-with-vue-node-and-socket-io

4. GraphQL error handling to the max with Typescript, codegen and fp-ts
https://the-guild.dev/blog/graphql-error-handling-with-fp

5. Async processes in Javascript
{% embed https://www.youtube.com/watch?v=gB-OmN1egV8 %}
{% embed https://www.youtube.com/watch?v=PoRJizFvM7s %}
{% embed https://www.youtube.com/watch?v=4lqJBBEpjRE %}
{% embed https://www.youtube.com/watch?v=vn3tm0quoqE %}
TechLab
Published: 2023-09-09 19:03:36

---
title: TechLab
published: true
date: 2022-11-08 01:19:11 UTC
tags: 
canonical_url: https://themes.gohugo.io/themes/techlab-hugo-theme/
---

TechLab Hugo Theme A Hugo theme that targets simplicity. Screenshots Live Demos Live Demo: https://techlab.seanfeng.dev/ The content and config of this sample site can be found in the techlab-example-site directory You can also check out https://seanfeng.dev for a more realistic usage. Install Run git submodule add git@github.com:sefeng211/techlab-hugo-theme.git themes/techlab Add theme= 'techlab' to the theme.toml. Configuration TODO