20 lines
1009 B
Markdown
20 lines
1009 B
Markdown
# Shōko
|
|
|
|
Shōko (硝子) is a browser and file viewer written in C#, supporting many protocols, schemes, and media types. It is designed to be simple and very extensible.
|
|
|
|
Shōko, at first, is aimed primarily at the small and experimental web. It probably won't support the entire HTML5 spec anytime soon, yet it aims to support protocols and formats your average web browser won't even dare to support natively. Gemini, Gopher, Markdown, JPEG XL, name it.
|
|
|
|
## Features
|
|
|
|
- Supports protocols and schemes such as: file, http(s), ftp(s), data, gemini, gopher, finger
|
|
- Supports media types such as: plain text, images, Gemtext markup
|
|
|
|
## How it works
|
|
|
|
Step 1: Parse the URL
|
|
Step 2: Find a suitable protocol handler based on the URL scheme
|
|
Step 3: Protocol handler returns a Stream and a media type
|
|
Step 4: Find a suitable media handler based on the media type
|
|
Step 5: Render!
|
|
|
|
C#'s class inheritance, together with annotations and reflections, makes it easy to add and register new protocol and media handlers. |