Skip to content

ireina7/blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

λ Blog

My personal blog written mostly in Scala and Java. Trying finally tagless with extensive effects. k-on!

  • version: 0.4.2

Dependences

  • Scala3 the programming language
  • Java the programming language for better performence
  • JVM the runtime
  • sbt the build tool
  • cats and cats-effect for core
  • scala.js and scalatags for front end
  • circe for Json processing
  • http4s, doobie and quill for back end

Configuration

Features

The Skeleton programming language

Development

The HTTP server

The HTTP server is modeled as a simple function: Request[F] => OptionT[F, Response[F]] where F is the computation effect.

Highly extensible and scalable by using finally tagless

All trait are parameterized with computation effects (e.g. F[_]). One can easily extend more implementations of the program without changing any existed code.

Dependency Injection

Using The ReaderT pattern.

Static blog generation

Just given the static blog configuration, then everything done!

given blog.Configuration = Configuration.staticBlog

Online dynamic blog generation

given blog.Configuration = Configuration.onlineBlog

Usage

Server mode

  1. cd <this folder>
  2. sbt
  3. compile
  4. server/run
  5. Go to http://localhost:8080/

Static Engine mode

  1. cd <this folder>
  2. sbt
  3. compile
  4. skeleton/run register <skeleton script file path> <new blog title>

Releases

No releases published

Packages

No packages published

Languages