๐ฎ scriptorium
Mix.install([
{:kino, "~> 0.14.2"},
])
Application.put_env(:livebook, :deployment, [
title: "scriptorium",
public_access: true
])
port = System.get_env("LIVEBOOK_PORT", "8080")
hostname = System.get_env("LIVEBOOK_HOSTNAME", "localhost")
base_url = "http://#{hostname}:#{port}/apps"
Welcome Page
Kino.Markdown.new("""
### ๐ Overview
The `scriptorium` is an open-source, interactive [livebook](https://hexdocs.pm/livebook/readme.html) that teaches developers about [manuscripts](https://docs.chainbase.com/core-concepts/manuscript/overview).

`scriptorium` is a tailor-made experience in the spirit of rustlings; it is designed to take a skilled web3 developer from zero-knowledge to expert in the minimum possible time. As such, it can be used as an adjunct to the existing documentation, linked above, and the information available on the [`manuscript-core`](https://https://github.com/chainbase-labs/manuscript-core) github
""")
chapters = [
%{
number: 1,
title: "Introduction to Scriptorium",
link: "#{base_url}/scriptorium-intro"
},
%{
number: 2,
title: "Understanding the Chainbase Network",
link: "#{base_url}/scriptorium-network"
},
%{
number: 3,
title: "Manuscripts & Their Mechanisms",
link: "#{base_url}/scriptorium-manuscripts"
},
%{
number: 4,
title: "Advanced Features",
link: "#{base_url}/scriptorium-advanced"
},
%{
number: 5,
title: "Examples and Use Cases",
link: "#{base_url}/scriptorium-examples"
}
]
toc_content = chapters
|> Enum.map(fn %{number: num, title: title, link: link} ->
"* Chapter #{num}: [#{title}](#{link})"
end)
|> Enum.join("\n")
Kino.Markdown.new("""
### ๐ Table of Contents
#{toc_content}
""")
next_link = "#{base_url}/scriptorium-intro"
Kino.Markdown.new("""
### ๐งญ Navigation
โ๏ธ To view the source code for this project visit https://github.com/KagemniKarimu/scriptorium
**โ Previous: N/A | [Next: Introduction to Scriptorium โ](#{next_link})**
""")