diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 7d6289d..e961c20 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -8,11 +8,11 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
- submodules: 'recursive'
+ submodules: "recursive"
- name: Setup Zig
uses: goto-bus-stop/setup-zig@v2
with:
- version: master
+ version: 0.13.0
- name: Render website
run: |
zig build
@@ -34,5 +34,5 @@ jobs:
Heya!
You can check out a preview of your PR at [staging.microzig.tech/pulls/${{ github.event.number }}](https://staging.microzig.tech/pulls/${{ github.event.number }}/)!
repo-token: ${{ secrets.GITHUB_TOKEN }}
- repo-token-user-login: 'github-actions[bot]' # The user.login for temporary GitHub tokens
+ repo-token-user-login: "github-actions[bot]" # The user.login for temporary GitHub tokens
allow-repeats: false # This is the default
diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml
index daa3250..2bc39d1 100644
--- a/.github/workflows/website.yml
+++ b/.github/workflows/website.yml
@@ -3,8 +3,8 @@ name: Render Website
on:
push:
branches:
- - 'main'
- - 'master'
+ - "main"
+ - "master"
jobs:
build:
@@ -13,12 +13,12 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
- submodules: 'recursive'
+ submodules: "recursive"
- name: Setup Zig
uses: goto-bus-stop/setup-zig@v2
with:
- version: master
+ version: 0.13.0
- name: Render website
run: |
diff --git a/.gitignore b/.gitignore
index 06606ca..09def3e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
zig-cache/
+.zig-cache/
render/
zig-out/
.direnv/
diff --git a/build.zig b/build.zig
index f1d8096..cd92888 100644
--- a/build.zig
+++ b/build.zig
@@ -4,12 +4,10 @@ const zine = @import("zine");
pub fn build(b: *std.Build) !void {
// zine.scriptyReferenceDocs(b, "content/documentation/scripty/index.md");
try zine.addWebsite(b, .{
+ .title = "Zig Embedded Group",
+ .host_url = "https://microzig.tech",
.layouts_dir_path = "layouts",
.content_dir_path = "content",
.static_dir_path = "static",
- .site = .{
- .base_url = "https://microzig.tech",
- .title = "Zig Embedded Group",
- },
});
}
diff --git a/build.zig.zon b/build.zig.zon
index 4ec7868..1fc4ea9 100644
--- a/build.zig.zon
+++ b/build.zig.zon
@@ -4,8 +4,8 @@
.paths = .{"."},
.dependencies = .{
.zine = .{
- .url = "https://github.com/kristoff-it/zine/archive/03f80646b83cadb2e693ff5d97445d3e16c8e222.tar.gz",
- .hash = "1220e3e4938edf652776349c45b3bb58774d540a050034488ff8dab7dbe410cc2977",
+ .url = "git+https://github.com/kristoff-it/zine#c4924570fa54ab204bb8b1bf1a140d0cc04ab08a",
+ .hash = "1220e2050b5fb6788675c0af6b2bfb601226fc90fb32aeeccc95cf9f4945543bd13a",
},
},
}
diff --git a/content/getting-started.md b/content/getting-started.md
index d9edbd1..dd9e9bb 100644
--- a/content/getting-started.md
+++ b/content/getting-started.md
@@ -1,11 +1,11 @@
---
{
- "title": "Home",
- "date": "2020-07-06T00:00:00",
- "author": "Felix Queißner",
- "draft": false,
- "layout": "getting-started.html",
- "tags": []
-}
+ .title = "Getting Started",
+ .date = @date("2020-07-06T00:00:00"),
+ .author = "Felix Queißner",
+ .draft = false,
+ .layout = "getting-started.html",
+ .tags = []
+}
---
Dummy, full text is implemented in the HTML file for now.
diff --git a/content/index.md b/content/index.md
index af1d6e7..2b1e9ce 100644
--- a/content/index.md
+++ b/content/index.md
@@ -1,11 +1,11 @@
---
{
- "title": "Home",
- "date": "2020-07-06T00:00:00",
- "author": "Felix Queißner",
- "draft": false,
- "layout": "index.html",
- "tags": []
-}
+ .title = "Home",
+ .date = @date("2020-07-06T00:00:00"),
+ .author = "Felix Queißner",
+ .draft = false,
+ .layout = "index.html",
+ .tags = [],
+}
---
Dummy, full text is implemented in the HTML file for now.
diff --git a/content/tutorials/01-embedded-basics.md b/content/tutorials/01-embedded-basics.md
index e1a246a..b1b2fa5 100644
--- a/content/tutorials/01-embedded-basics.md
+++ b/content/tutorials/01-embedded-basics.md
@@ -1,12 +1,12 @@
---
{
- "title": "Embedded Basics",
- "date": "2020-07-06T00:00:00",
- "author": "Felix Queißner",
- "draft": false,
- "layout": "tutorial.html",
- "tags": []
-}
+ .title = "Embedded Basics",
+ .date = @date("2020-07-06T00:00:00"),
+ .author = "Felix Queißner",
+ .draft = false,
+ .layout = "tutorial.html",
+ .tags = []
+}
---
# Embedded Basics
diff --git a/content/tutorials/02-embedded-programming.md b/content/tutorials/02-embedded-programming.md
index 86e04e1..9d93959 100644
--- a/content/tutorials/02-embedded-programming.md
+++ b/content/tutorials/02-embedded-programming.md
@@ -1,11 +1,11 @@
---
{
- "title": "Embedded Basics",
- "date": "2020-07-06T00:00:00",
- "author": "Felix Queißner",
- "draft": false,
- "layout": "tutorial.html",
- "tags": []
+ .title = "Embedded Programming",
+ .date = @date("2020-07-06T00:00:00"),
+ .author = "Felix Queißner",
+ .draft = false,
+ .layout = "tutorial.html",
+ .tags = []
}
---
# Embedded Programming
@@ -14,7 +14,7 @@ In this tutorial, you'll learn the ways of the embedded programmer and how to ma
## Prerequisites
-- [Embedded Basics](01-embedded-basics.htm)
+- [Embedded Basics](01-embedded-basics/)
## Contents
@@ -38,7 +38,7 @@ Every embedded programmer requires some materials to get their work done efficie
First of all, the *SOC datasheet*. It contains all relevant information about the SOC/chip you are using, which functions each pin of the package has, where your RAM and flash is located in the memory map and so on. You *will* learn to navigate this document very quickly, as it's the main reference for everything you do.
-Second, you need the schematics of the device you want to program. You usually can obtain them from the manufacturer of your development board (assuming you are using one), by the vendor of the device you're hacking (if you are lucky enough) or by reverse engineering the device you have at hands (consider this the *hard mode* of embedded development). Reading a schematic is crucial to get your device do what you want, and you can learn a bit about this in the [Embedded Basics](01-embedded-basics.htm) tutorial.
+Second, you need the schematics of the device you want to program. You usually can obtain them from the manufacturer of your development board (assuming you are using one), by the vendor of the device you're hacking (if you are lucky enough) or by reverse engineering the device you have at hands (consider this the *hard mode* of embedded development). Reading a schematic is crucial to get your device do what you want, and you can learn a bit about this in the [Embedded Basics](01-embedded-basics/) tutorial.
These two documents are the ones you *definitly* need and it's near-impossible to work without them. But usually you need more documents than this:
Datasheets for all the peripherial devices like displays, display controllers, motor controllers, expander chips and so on. Another document that helps a lot is the CPU datasheet for the core of your SOC. This document contains a precise description of the startup procedure of your system, what instructions are available, how the interrupts work in detail and similar topics.
@@ -60,7 +60,7 @@ The RAM will contain garbage after startup. Our variables aren't initialized and
To do this, we first have to tell the compiler to store our pre-initialized data somewhere in flash memory, so we can copy it into RAM at startup. This is done via the linker script:
-```ld
+```cpp
/* This section declares two memory regions:
* flash: 512k of non-writeable memory at position 0,
* ram: 32k of writeable memory at position 256M
diff --git a/layouts/index.html b/layouts/index.html
index 4210966..bc46819 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -32,7 +32,7 @@