2022-06-08 23:24:19 +03:00
|
|
|
|
import { PageLayout } from "../comp/page_layout.ts";
|
|
|
|
|
import { AnyNode, E } from "ren/node.ts";
|
|
|
|
|
import { classNames } from "ren/attrs.ts";
|
|
|
|
|
import { Context } from "../../context.ts";
|
|
|
|
|
import { H3 } from "../uikit/typo.ts";
|
2022-06-22 00:35:55 +03:00
|
|
|
|
import { Link, RepoLink } from "../uikit/link.ts";
|
2022-06-08 23:24:19 +03:00
|
|
|
|
|
2022-06-22 00:35:55 +03:00
|
|
|
|
const tr = E.bind(null, "tr", []);
|
|
|
|
|
const td = E.bind(null, "td", []);
|
|
|
|
|
const th = E.bind(null, "th", []);
|
2022-06-08 23:24:19 +03:00
|
|
|
|
|
|
|
|
|
export function WorksPage(ctx: Context): AnyNode {
|
|
|
|
|
return PageLayout(ctx, [
|
|
|
|
|
E("div", classNames("content-width gap-v-1x5 responsive-typography"), [
|
2022-06-22 00:35:55 +03:00
|
|
|
|
H3(ctx.tr.Chronological),
|
|
|
|
|
E("table", [], [
|
|
|
|
|
E("thead", [], [
|
|
|
|
|
tr([
|
|
|
|
|
th("Name"),
|
|
|
|
|
th("Description"),
|
|
|
|
|
th("Role"),
|
|
|
|
|
th("Stack"),
|
|
|
|
|
th("Start"),
|
|
|
|
|
th("Status"),
|
|
|
|
|
]),
|
|
|
|
|
]),
|
|
|
|
|
E("tbody", [], [
|
|
|
|
|
tr([
|
|
|
|
|
td([RepoLink("paren", "/pleshevskiy/paren")]),
|
|
|
|
|
td("Library for parsing and rendering information."),
|
|
|
|
|
td("author"),
|
|
|
|
|
td("TS, Deno"),
|
|
|
|
|
td("2022"),
|
|
|
|
|
td(`${Status.ActiveDeveloped}, ${Status.Experimental}`),
|
|
|
|
|
]),
|
|
|
|
|
tr([
|
|
|
|
|
td([RepoLink("hwt", "//github.com/pleshevskiy/hwt")]),
|
|
|
|
|
td(
|
|
|
|
|
"healthy workaholic timer – A tool that keeps you from breaking your health by working all day.",
|
|
|
|
|
),
|
|
|
|
|
td("author"),
|
|
|
|
|
td("Rust"),
|
|
|
|
|
td("2022"),
|
|
|
|
|
td(Status.ActiveDeveloped),
|
|
|
|
|
]),
|
|
|
|
|
tr([
|
|
|
|
|
td([RepoLink("migra", "//github.com/pleshevskiy/migra")]),
|
|
|
|
|
td("Simple SQL migration manager for your project."),
|
|
|
|
|
td("author"),
|
|
|
|
|
td("Rust"),
|
|
|
|
|
td("2021"),
|
|
|
|
|
td(Status.AsIs),
|
|
|
|
|
]),
|
|
|
|
|
tr([
|
|
|
|
|
td([
|
|
|
|
|
RepoLink(
|
|
|
|
|
"ood_persistence",
|
|
|
|
|
"//github.com/pleshevskiy/ood_persistence",
|
|
|
|
|
),
|
|
|
|
|
]),
|
|
|
|
|
td(
|
|
|
|
|
"Asynchronous and synchronous interfaces and persistence implementations for your OOD architecture ",
|
|
|
|
|
),
|
|
|
|
|
td("author"),
|
|
|
|
|
td("Rust"),
|
|
|
|
|
td("2021"),
|
|
|
|
|
td(`${Status.Deprecated}, ${Status.Experimental}`),
|
|
|
|
|
]),
|
|
|
|
|
tr([
|
|
|
|
|
td([
|
|
|
|
|
RepoLink(
|
|
|
|
|
"espruino-starter",
|
|
|
|
|
"//github.com/pleshevskiy/espruino-starter",
|
|
|
|
|
),
|
|
|
|
|
]),
|
|
|
|
|
td(
|
|
|
|
|
"Quickly start creating your new project on the espruino board or a board based on it.",
|
|
|
|
|
),
|
|
|
|
|
td("author"),
|
|
|
|
|
td("JS"),
|
|
|
|
|
td("2021"),
|
|
|
|
|
td(Status.AsIs),
|
|
|
|
|
]),
|
|
|
|
|
tr([
|
|
|
|
|
td([
|
|
|
|
|
RepoLink(
|
|
|
|
|
"sonic-channel",
|
|
|
|
|
"//github.com/pleshevskiy/sonic-channel",
|
|
|
|
|
),
|
|
|
|
|
]),
|
|
|
|
|
td("Rust client for sonic search backend."),
|
|
|
|
|
td("author"),
|
|
|
|
|
td("Rust"),
|
|
|
|
|
td("2020"),
|
|
|
|
|
td(Status.PassivelyMaintained),
|
|
|
|
|
]),
|
|
|
|
|
tr([
|
|
|
|
|
td([
|
|
|
|
|
RepoLink(
|
|
|
|
|
"react-rest-request",
|
|
|
|
|
"//github.com/pleshevskiy/react-rest-request",
|
|
|
|
|
),
|
|
|
|
|
]),
|
|
|
|
|
td("Minimalistic REST API client for React inspired by Apollo."),
|
|
|
|
|
td("author"),
|
|
|
|
|
td("TS, React"),
|
|
|
|
|
td("2020"),
|
|
|
|
|
td(Status.AsIs),
|
|
|
|
|
]),
|
|
|
|
|
tr([
|
|
|
|
|
td([RepoLink("itconfig", "/pleshevskiy/itconfig")]),
|
|
|
|
|
td(
|
|
|
|
|
"Easy build a configs from environment variables and use it in globally.",
|
|
|
|
|
),
|
|
|
|
|
td("author"),
|
|
|
|
|
td("Rust"),
|
|
|
|
|
td("2019"),
|
|
|
|
|
td(Status.PassivelyMaintained),
|
|
|
|
|
]),
|
|
|
|
|
tr([
|
|
|
|
|
td([
|
|
|
|
|
Link("Cabinet Master Progress", {
|
|
|
|
|
href: "https://cabinet.masterprogress.ru",
|
|
|
|
|
}),
|
|
|
|
|
]),
|
|
|
|
|
td(
|
|
|
|
|
"Student's cabinet of the educational center Master Progress (SSR + SPA)",
|
|
|
|
|
),
|
2022-06-22 00:39:14 +03:00
|
|
|
|
td("Tech lead"),
|
2022-06-22 00:35:55 +03:00
|
|
|
|
td("Python, Flask, React"),
|
|
|
|
|
td("2019"),
|
|
|
|
|
td(Status.PassivelyMaintained),
|
|
|
|
|
]),
|
|
|
|
|
tr([
|
|
|
|
|
td([
|
|
|
|
|
Link("Master Progress", { href: "https://masterprogress.ru" }),
|
|
|
|
|
]),
|
|
|
|
|
td(
|
|
|
|
|
"Main website of the educational center Master Progress (SSR + Forms)",
|
|
|
|
|
),
|
2022-06-22 00:39:14 +03:00
|
|
|
|
td("Tech lead"),
|
2022-06-22 00:35:55 +03:00
|
|
|
|
td("Python, Flask"),
|
|
|
|
|
td("2018"),
|
|
|
|
|
td(Status.PassivelyMaintained),
|
|
|
|
|
]),
|
|
|
|
|
tr([
|
|
|
|
|
td([RepoLink("ictmpl", "//github.com/pleshevskiy/ictmpl")]),
|
|
|
|
|
td("Generate projects from templates"),
|
|
|
|
|
td("author"),
|
|
|
|
|
td("Python"),
|
|
|
|
|
td("2018"),
|
|
|
|
|
td(Status.AsIs),
|
|
|
|
|
]),
|
|
|
|
|
tr([
|
|
|
|
|
td([RepoLink("jjcrypto", "//github.com/pleshevskiy/ictmpl")]),
|
|
|
|
|
td("Javascript encoder and decoder"),
|
|
|
|
|
td("author"),
|
|
|
|
|
td("PHP"),
|
|
|
|
|
td("2015"),
|
|
|
|
|
td(Status.AsIs),
|
|
|
|
|
]),
|
|
|
|
|
]),
|
2022-06-08 23:24:19 +03:00
|
|
|
|
]),
|
|
|
|
|
]),
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-22 00:35:55 +03:00
|
|
|
|
enum Status {
|
|
|
|
|
// New features are being added and bugs are being fixed.
|
|
|
|
|
ActiveDeveloped = "actively-developed",
|
|
|
|
|
|
|
|
|
|
// There are no plans for new features, but the maintainer intends to respond
|
|
|
|
|
// to issues that get filed.
|
|
|
|
|
PassivelyMaintained = "passively-maintained",
|
|
|
|
|
|
|
|
|
|
// The package is feature complete, the maintainer does not intend to continue
|
|
|
|
|
// working on it or providing support, but it works for the purposes it was
|
|
|
|
|
// designed for.
|
|
|
|
|
AsIs = "as-is",
|
|
|
|
|
|
|
|
|
|
// The author wants to share it with the community but is not intending to
|
|
|
|
|
// meet anyone's particular use case.
|
|
|
|
|
Experimental = "experimental",
|
|
|
|
|
|
|
|
|
|
// The current maintainer would like to transfer the package to someone else.
|
|
|
|
|
LookingForMaintainer = "looking-for-maintainer",
|
|
|
|
|
|
|
|
|
|
// The maintainer does not recommend using this package (the description of the
|
|
|
|
|
// package can describe why, there could be a better solution available or
|
|
|
|
|
// there could be problems with the package that the author does not want to fix).
|
|
|
|
|
Deprecated = "deprecated",
|
2022-06-08 23:24:19 +03:00
|
|
|
|
}
|