Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions packages/preview/beago-suite/0.1.0/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 Aaron P. Murniadi

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
95 changes: 95 additions & 0 deletions packages/preview/beago-suite/0.1.0/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# beago-suite

A minimal [Typst](https://typst.app) template package with two layouts: quick drafts and structured articles.

## Install

Published package:

```typst
#import "@preview/beago-suite:0.1.0": *
```

Local development:

```typst
#import "../src/beago.typ": *
```

## Templates

| Template | Use for |
| --------- | --------------------------------------------------------------------------- |
| `beago-draft` | Quick notes and working documents with an optional DRAFT watermark |
| `beago-article` | Long-form writing with abstract, heading numbering, and justified body text |

Full demos: [draft.typ](template/draft.typ), [main.typ](template/main.typ).

## Draft

```typst
#import "@preview/beago-suite:0.1.0": beago-draft

#show: beago-draft.with(
title: [Routing Config Notes],
author: [Your Name],
date: "2026-06-16",
)

= Open questions

- Should fallback chains be explicit or inferred?
```

### Parameters

| Parameter | Default | Description |
| ------------- | ---------- | ---------------------------- |
| `title` | `[Title]` | Document title |
| `author` | `[Author]` | Author name |
| `date` | today | Date string |
| `font-size` | `11pt` | Base font size |
| `paper` | `"a4"` | Page size |
| `watermark` | `true` | Show rotated DRAFT watermark |
| `title-align` | `left` | Title block alignment |

## Article

```typst
#import "@preview/beago-suite:0.1.0": beago-article

#show: beago-article.with(
title: [Document Title],
subtitle: [Optional subtitle],
author: [Your Name],
date: "2026-06-16",
abstract: [A short summary of the document.],
paper: "a4",
heading-numbering: "1.1.",
first-line-indent: (amount: 2em, all: false),
)

= Introduction

$ (-1.32865 plus.minus 0.50273) times 10^(-6) $
```

### Parameters

| Parameter | Default | Description |
| ------------------- | ---------- | ----------------------------------------- |
| `title` | `[Title]` | Document title |
| `subtitle` | `none` | Optional subtitle |
| `author` | `[Author]` | Author name |
| `date` | today | Date string |
| `abstract` | `none` | Optional abstract block |
| `font-size` | `11pt` | Base font size |
| `paper` | `"a4"` | Page size |
| `heading-numbering` | `"1.1."` | Heading number format (`none` to disable) |
| `title-align` | `center` | Title block alignment |
| `first-line-indent` | `none` | Paragraph first-line indent |
| `line-spacing` | `1em` | Line and paragraph spacing |

## License

MIT
3 changes: 3 additions & 0 deletions packages/preview/beago-suite/0.1.0/src/beago.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Templates
#import "templates/draft.typ": beago-draft
#import "templates/article.typ": beago-article
94 changes: 94 additions & 0 deletions packages/preview/beago-suite/0.1.0/src/templates/article.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
#let beago-article(
title: [Title],
subtitle: none,
author: [Author],
date: datetime.today().display("[month repr:long] [day], [year]"),
abstract: none,
font-size: 12pt,
paper: "a4",
heading-numbering: "1.1.",
title-align: center,
first-line-indent: none,
line-spacing: 1em,
body,
) = {
set document(title: title)
set text(size: font-size, hyphenate: true)

set page(
paper: paper,
footer: context {
set text(size: font-size * 0.85)
[
#h(1fr) #counter(page).display("1 / 1", both: true)
]
},
)

set par(
justify: true,
leading: line-spacing,
spacing: line-spacing,
)

set par(first-line-indent: first-line-indent) if first-line-indent != none
set heading(numbering: heading-numbering) if heading-numbering != none

show heading.where(level: 1): it => {
set text(weight: "bold")
it
}

show heading.where(level: 2): it => {
set text(weight: "regular", style: "italic")
it
}

block(
width: if title-align == left { 85% } else { 100% },
{
set par(justify: if title-align == left {
false
} else if title-align == right { false } else { true })
set align(title-align)
text(size: font-size * 1.35, weight: "bold", title)
if subtitle != none {
linebreak()
text(style: "italic", subtitle)
}

linebreak()

if date != none {
text(date)
}
if author != none and date != none {
[, #text(author)]
} else {
text(author)
}
},
)

if abstract != none {
block(
width: 100%,
inset: (x: 3em, y: 0.75em),
[
#set align(title-align)
#set text(size: font-size * 0.95)
#set par(
justify: true,
leading: 0.8em,
spacing: 0.8em,
first-line-indent: 0em,
)
#text(weight: "bold")[Abstract]
#v(0.5em)
#abstract
],
)
}

body
}
47 changes: 47 additions & 0 deletions packages/preview/beago-suite/0.1.0/src/templates/draft.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#let beago-draft(
title: [Title],
author: [Author],
date: datetime.today().display("[month repr:long] [day], [year]"),
font-size: 12pt,
paper: "a4",
watermark: true,
title-align: left,
body,
) = {
set document(title: title)
set text(size: font-size)

set page(
paper: paper,
footer: context {
set text(size: font-size * 0.85)
[
#h(1fr) #counter(page).display("1 / 1", both: true)
]
},
)

set page(
background: rotate(-45deg, text(
size: font-size * 4,
tracking: font-size * 0.08,
fill: luma(230),
)[*DRAFT*]),
) if watermark

block(
width: if title-align == left { 85% } else { 100% },
{
set align(title-align)
text(size: font-size * 1.35, weight: "bold", title)
linebreak()
text(date)
linebreak()
text(author)
},
)

v(1em)

body
}
18 changes: 18 additions & 0 deletions packages/preview/beago-suite/0.1.0/template/draft.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#import "@preview/beago-suite:0.1.0": *

#show: beago-draft.with(
title: [Routing Config Notes],
author: [Aaron P. Murniadi],
date: "2026-06-16",
)

= Open questions

- Should fallback chains be explicit or inferred?
- What is the max zone depth before solver time spikes?

#lorem(40)

= Scratch ideas

#lorem(60)
90 changes: 90 additions & 0 deletions packages/preview/beago-suite/0.1.0/template/main.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
#import "@preview/beago-suite:0.1.0": *

#show: beago-article.with(
title: [The Architecture of Distributed Logistics Systems],
subtitle: [A Case Study of the Beago Logistics System],
author: [Aaron P. Murniadi],
title-align: left,
heading-numbering: "1.1.",
paper: "a4",
first-line-indent: (amount: 2em, all: false),
font-size: 12pt,
line-spacing: 1em,
abstract: [
Modern logistics networks require automated routing configuration at scale.
This case study describes the Beago logistics system, its hierarchical zone
decomposition, and the composable routing schemas that reduce solver time
while preserving delivery accuracy.
],
)

= Introduction

#lorem(80)

= Background

$ (-1.32865 plus.minus 0.50273) times 10^(-6) $

== Motivation

Modern logistics networks operate at a scale that makes manual routing
infeasible. The combinatorial complexity of assigning parcels to zones, hubs,
and drivers grows exponentially with fleet size. Automated routing configuration
systems address this by encoding business rules — coverage zones, capacity
constraints, and service-level agreements — into structured, machine-readable
formats.#footnote[This is a test footnote]

#lorem(80)

== Related Work

Prior work in vehicle routing (VRP) and its variants established the theoretical
foundations now used in production systems. Recent industry efforts have shifted
toward hybrid approaches that combine constraint solvers with learned
heuristics, enabling real-time re-routing in response to traffic or failed
delivery attempts.

#lorem(60)

= Methodology

== System Design

#lorem(100)

== Routing Configuration

Routing nodes are the atomic unit of the configuration layer. Each node encodes
a mapping from a geographic zone identifier to a set of operational parameters:
hub assignment, delivery window, vehicle class, and fallback rules. Nodes are
composed into directed graphs, enabling cascading resolution when primary
assignments are unavailable.

#lorem(50)

== Evaluation

#lorem(90)

= Results

#lorem(110)

== Discussion

The results confirm that hierarchical zone decomposition significantly reduces
solver time without sacrificing delivery accuracy. Notably, configurations that
expose fallback chains — rather than hard-failing on unresolvable zones —
improved overall fulfillment rate by reducing manual intervention in edge cases.

#lorem(40)

= Conclusion

#lorem(70)

Taken together, these findings suggest that investing in expressive, composable
routing configuration schemas is a more tractable path to scalable logistics
than pursuing purely algorithmic improvements in isolation. Future work will
explore dynamic reconfiguration triggered by real-time demand signals.
Binary file added packages/preview/beago-suite/0.1.0/thumbnail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 16 additions & 0 deletions packages/preview/beago-suite/0.1.0/typst.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[package]
name = "beago-suite"
version = "0.1.0"
compiler = "0.14.2"
entrypoint = "src/beago.typ"
authors = ["Aaron P. Murniadi <aaronmurniadi@gmail.com>"]
repository = "https://github.com/aaronmurniadi/beago-suite"
license = "MIT"
keywords = ["suite", "minimal", "template", "pack"]
description = "Minimal templates for quick drafts and structured articles"
categories = ["layout", "paper"]

[template]
path = "template"
entrypoint = "main.typ"
thumbnail = "thumbnail.png"
Loading
Loading