64 lines
1.4 KiB
Text
64 lines
1.4 KiB
Text
(
|
|
title: "Gemview",
|
|
summary: Some("A browser widget in gtk4 for the smol internet"),
|
|
published: Some((
|
|
year: 2022,
|
|
month: 4,
|
|
day: 14,
|
|
hour: 16,
|
|
minute: 0,
|
|
second: 51,
|
|
)),
|
|
tags: [
|
|
"software",
|
|
"gemview",
|
|
"rust",
|
|
"gtk",
|
|
],
|
|
)
|
|
---
|
|
## Introduction
|
|
GemView is a gemini protocol browser widget for gtk+ (version 4) implemented in Rust.
|
|
## Features
|
|
* Browse and render gemini gemtext content
|
|
* Display plain text over gemini
|
|
* Display images over gemini
|
|
* Display text and images from `data://` url's
|
|
* Browse and render gopher maps, plain text and images over gopher
|
|
* Display finger protocol content
|
|
* Browse local files and directories via 'file://' url's
|
|
* Open http(s) links in a *normal* browser
|
|
* User customizable fonts
|
|
* User customizable colors (via CSS)
|
|
* Back/forward list
|
|
|
|
## Usage
|
|
Cargo.toml
|
|
```
|
|
[dependencies]
|
|
gemview = 0.2.0
|
|
|
|
[dependencies.gtk]
|
|
version = "~0.4"
|
|
package = "gtk4"
|
|
```
|
|
Rust source code
|
|
```Rust
|
|
use gemview::GemView;
|
|
use gtk::prelude::*;
|
|
|
|
fn main() {
|
|
let browser = GemView::default();
|
|
let scroller = gtk::builders::ScrolledWindowBuilder::new()
|
|
.child(&browser)
|
|
.hexpand(true)
|
|
.vexpand(true)
|
|
.build();
|
|
let window = gtk::builders::WindowBuilder::new()
|
|
.child(&scroller)
|
|
.title("GemView")
|
|
.build()
|
|
window.show();
|
|
browser.visit("gemini://gemini.circumlunar.space");
|
|
}
|
|
```
|