Skip to content

AshGreyG/Obsino

Repository files navigation

Obsino

build status Typst Nix MIT

Rule

โœจ Features

Obsino is a digital knowledge tree โ€” a structured personal knowledge base organized by academic discipline. Knowledge is authored in CUE files with Typst markup and compiled into PDF handbooks.

Each subject directory is a CUE module. Within each module, content is organized into:

Category Purpose Examples
concept/ Fundamental concepts alpha-helix, peptide-bond, torque
principle/ Experimental principles or methods gel-electrophoresis
phenomenon/ Observed phenomena protein refolding
specific/ Specific case studies structure-of-collagen, mass-center-of-semicircle
law/ Physical or mathematical laws conservation-of-momentum-law, impulse-momentum-theorem
proof/ Formal proofs proof-impulse-momentum-theorem
desire/ Motivation or "why this matters" invariant-tensor

๐Ÿ”ฎ Authoring Knowledge

Knowledge entries are CUE files conforming to the schema in schema.cue:

#KnowledgeStructure: {
  content: string
  // Main body text for a concept or principle. Usually a raw string; may include
  // other properties.
  related?: [...string]
  // Related concepts/principles within the same handbook. Rendered as #link in
  // Typst.
  external_related?: [...string]
  // Related concepts/principles in external handbooks. Cannot use #link since
  // it targets a PDF page.
  external_link?: [...string]
  // External resources such as papers or websites.
  [=~"^figure_part"]: string
  // Embed figures (e.g., `figure_part_test`) from the assets directory into
  // content.
  [=~"^code_part"]: string
  // Embed code blocks (e.g., `code_part_evaluating_expression`) from the src
  // directory into content
}
  • Content: Written in Typst markup inside the content field
  • Figures: Typst figure code in figure_part_* fields (embedded via #"" raw strings)
  • Code Blocks: Typst code blocks in code_part_* fields
  • Assets: SVG/PNG files in an assets/ subdirectory
  • Cross-references: Array of related concept paths in the related field

โ„๏ธ Build

Enter the development shell

nix develop

Provides cue, yq, typst, and typstyle.

Export a single concept to PDF

make single-export FILE=concept/alpha-helix.cue

Export a property from a CUE package

make package-export PACKAGE=natural-science.biology.biochemistry TARGET=alpha_helix

Generate a handbook

make handbook

Scans all subdirectories in the current module and assembles one comprehensive PDF.

Build all handbooks

nix run .#handbook

Outputs to build/.

Clean

nix run .#clean       # clean all build artifacts
make clean            # clean PDFs in current directory

Status

nix run .#status      # check the status of project

โ™ป๏ธ CI

  • A nightly GitHub Action builds all handbooks and publishes them as a pre-release.
  • A status Github Action embeds the status to README.md.

๐Ÿ“ License

Copyright ยฉ 2026 AshGrey.
This project is MIT licensed.

About

๐Ÿ”ฎ Obsino is a digital knowledge tree โ€” a structured personal knowledge base organized by academic discipline. Knowledge is authored in CUE files with Typst markup and compiled into PDF handbooks.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors