doc: remove unnecessary contents
This commit is contained in:
@@ -10,11 +10,3 @@ It contains information about me and my projects as well as blog entries about s
|
|||||||
## zterm
|
## zterm
|
||||||
|
|
||||||
This tui application also serves as an example implementation of the [zterm](https://gitea.yves-biener.de/yves-biener/zterm) library.
|
This tui application also serves as an example implementation of the [zterm](https://gitea.yves-biener.de/yves-biener/zterm) library.
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Open tasks
|
|
||||||
|
|
||||||
- [ ] Improve navigation
|
|
||||||
- [ ] Have clickable/navigatable links inside of the tui application
|
|
||||||
- [ ] Launch simple http server alongside tui application
|
|
||||||
|
|||||||
3
doc/about.md
Normal file
3
doc/about.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# About
|
||||||
|
|
||||||
|
Hi, I'm Yves. I'm a developer who <3 the terminal and everything around text interfaces.
|
||||||
5
doc/blog.md
Normal file
5
doc/blog.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Blog
|
||||||
|
|
||||||
|
This is the main entry page for my blog. I plan on writing on things I feel like worth sharing, mentioning for other developers, tinkers like me.
|
||||||
|
|
||||||
|
The blog is currently a work in progress and will be updated once a first version of the tui website supports more dynamic contents.
|
||||||
59
src/content.zig
Normal file
59
src/content.zig
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
pub fn Content(App: type) type {
|
||||||
|
return struct {
|
||||||
|
pub fn init(allocator: Allocator) @This() {
|
||||||
|
_ = allocator;
|
||||||
|
return .{};
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn element(this: *@This()) App.Element {
|
||||||
|
return .{
|
||||||
|
.ptr = this,
|
||||||
|
.vtable = &.{
|
||||||
|
.handle = handle,
|
||||||
|
.content = content,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
fn handle(ctx: *anyopaque, model: *App.Model, event: App.Event) !void {
|
||||||
|
_ = ctx;
|
||||||
|
switch (event) {
|
||||||
|
.about => model.page = .about,
|
||||||
|
.blog => model.page = .blog,
|
||||||
|
else => {},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn content(ctx: *anyopaque, model: *const App.Model, cells: []zterm.Cell, size: zterm.Point) !void {
|
||||||
|
_ = ctx;
|
||||||
|
assert(cells.len == @as(usize, size.x) * @as(usize, size.y));
|
||||||
|
|
||||||
|
const text = switch (model.page) {
|
||||||
|
.about => @embedFile("about"),
|
||||||
|
.blog => @embedFile("blog"),
|
||||||
|
};
|
||||||
|
var index: usize = 0;
|
||||||
|
|
||||||
|
for (0..size.y) |row| {
|
||||||
|
for (0..size.x) |col| {
|
||||||
|
const cell = row * size.x + col;
|
||||||
|
assert(cell < cells.len);
|
||||||
|
|
||||||
|
if (index == text.len) return;
|
||||||
|
const cp = text[index];
|
||||||
|
index += 1;
|
||||||
|
|
||||||
|
cells[cell].cp = switch (cp) {
|
||||||
|
'\n' => break,
|
||||||
|
else => cp,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const std = @import("std");
|
||||||
|
const Allocator = std.mem.Allocator;
|
||||||
|
const assert = std.debug.assert;
|
||||||
|
const zterm = @import("zterm");
|
||||||
6
src/model.zig
Normal file
6
src/model.zig
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
page: Pages = .blog,
|
||||||
|
|
||||||
|
const Pages = enum {
|
||||||
|
about,
|
||||||
|
blog,
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user