diff options
author | Jaakko Keränen <jaakko.keranen@iki.fi> | 2020-09-08 14:34:42 +0300 |
---|---|---|
committer | Jaakko Keränen <jaakko.keranen@iki.fi> | 2020-09-08 14:34:42 +0300 |
commit | a288eb43ed772f7aff5500ca5fc9ba545ab341c4 (patch) | |
tree | a2c3fbade9d80d6a3253e999bf24d97d6d2efb73 | |
parent | 0f05f64bba29ecc5873c1faeb2e4395763ae060d (diff) |
Updated "about:help" with more content
-rw-r--r-- | res/about/help.gmi | 51 | ||||
-rw-r--r-- | src/ui/documentwidget.c | 5 |
2 files changed, 49 insertions, 7 deletions
diff --git a/res/about/help.gmi b/res/about/help.gmi index 9e617015..c8750140 100644 --- a/res/about/help.gmi +++ b/res/about/help.gmi | |||
@@ -4,17 +4,37 @@ | |||
4 | |___ /~~\ \__> | \ /~~\ | \| \__> |___ | 4 | |___ /~~\ \__> | \ /~~\ | \| \__> |___ |
5 | 5 | ||
6 | ``` | 6 | ``` |
7 | # Introduction | 7 | # Help |
8 | 8 | ||
9 | ## What is Lagrange | 9 | ## What is Lagrange |
10 | 10 | ||
11 | Lagrange is a GUI client for browsing Geminispace. It offers modern conveniences familiar from web browsers, such as smooth scrolling, inline image viewing, multiple tabs, visual themes, Unicode fonts, bookmarks, history, and page outlines. | 11 | Lagrange is a GUI client for browsing Geminispace. It offers modern conveniences familiar from web browsers, such as smooth scrolling, inline image viewing, multiple tabs, visual themes, Unicode fonts, bookmarks, history, and page outlines. |
12 | 12 | ||
13 | Lagrange relies on a minimal set of dependencies. It is written in C and uses SDL for window management and hardware-accelerated graphics. OpenSSL is used for secure communications. | 13 | Like Gemini, Lagrange has been designed with minimalism in mind. It depends on a small number of essential libraries. It is written in C and uses SDL for hardware-accelerated graphics. OpenSSL is used for secure communications. |
14 | 14 | ||
15 | => https://www.libsdl.org SDL: Simple DirectMedia Layer | 15 | => https://www.libsdl.org SDL: Simple DirectMedia Layer |
16 | => https://www.openssl.org OpenSSL: Cryptography and SSL/TLS Toolkit | 16 | => https://www.openssl.org OpenSSL: Cryptography and SSL/TLS Toolkit |
17 | 17 | ||
18 | ### Features | ||
19 | |||
20 | * UI inspired by Safari on macOS | ||
21 | * Light and dark UI themes | ||
22 | * Multiple tabs | ||
23 | * Sidebar for page outline, managing bookmarks and identities, and viewing history | ||
24 | * Smart suggestions when typing the URL — search bookmarks, history, identities | ||
25 | * Scaling factor for the UI (for arbitrary monitor DPI) | ||
26 | * Beautiful typography using Unicode fonts | ||
27 | * Autogenerated page style and Unicode icon for each Gemini domain | ||
28 | * Open image links inline on the same page | ||
29 | * Instant back/forward navigation | ||
30 | * Smooth scrolling | ||
31 | * Scaling page content (50%...200%) | ||
32 | * Select and copy text with the mouse | ||
33 | * Find text on the page | ||
34 | * Identity management — create and use TLS client certificates | ||
35 | * Persistent app state — tabs and history are restored on next run | ||
36 | * Opening links via keyboard shortcuts | ||
37 | |||
18 | ## What is Gemini | 38 | ## What is Gemini |
19 | 39 | ||
20 | Gemini is a simple protocol for serving content over the internet. It specifies a Markdown inspired format allowing basic plain text document markup. Compared to HTTP and HTML, Gemini is vastly simpler and easier to work with. | 40 | Gemini is a simple protocol for serving content over the internet. It specifies a Markdown inspired format allowing basic plain text document markup. Compared to HTTP and HTML, Gemini is vastly simpler and easier to work with. |
@@ -28,28 +48,47 @@ Modern web browsers are complex beasts. In fact, they are so complex that one ca | |||
28 | 48 | ||
29 | => https://win95.ajf.me Windows 95 on DOSBox (using Emscripten) | 49 | => https://win95.ajf.me Windows 95 on DOSBox (using Emscripten) |
30 | 50 | ||
31 | If one seeks to just read text and view images, this is absurd overkill. While having a universal platform that runs on everything and everywhere is clearly a valuable notion, it comes with a hefty price tag. The software stack towers ever higher, and similarly hardware needs to be ever more powerful and complicated to run it well. But everything happening over the internet doesn't have to be on this behemoth. | 51 | If one seeks to just read text and view images, this is absurd overkill. Having a universal platform that runs everywhere and on everything is clearly a valuable notion, but it comes with a hefty price tag. The software stack towers ever higher, and hardware needs to be ever more powerful and complicated to run it well. However, everything happening over the internet doesn't have to rely on this behemoth. |
32 | 52 | ||
33 | One way to browse Gemini content is via web browser extensions or proxies that translate the content for the web. This may be a sufficient and easy solution for you. However, native clients such as Lagrange also benefit from the simpleness of the protocol and the content. The experience can be optimized, and the software runs well even on simple hardware like the Raspberry Pi. | 53 | One way to browse Gemini content is via web browser extensions or proxies that translate the content for the web. This may be a sufficient and easy solution for you. However, native clients such as Lagrange also benefit from the simpleness of the protocol and the content. The experience can be optimized, and the software runs well even on simple hardware like the Raspberry Pi. |
34 | 54 | ||
35 | # User interface | 55 | # User interface |
36 | 56 | ||
57 | The user interface has been designed to have a feel similar to Safari on macOS. | ||
58 | |||
59 | ## URL entry and quick search | ||
60 | |||
61 | The URL input field is in its typical location in the navigation bar. It can be accessed quickly by pressing ${CTRL+}L. | ||
62 | |||
63 | As you enter text, Lagrange starts looking for matches in bookmarks, history, content of cached pages, and identities. Search terms are case insensitive, and if many words are entered, they are all required to appear in the specified order in any matched content. Search of cached pages is limited to the (small-ish) set of pages that Lagrange keeps in memory for back navigation. | ||
64 | |||
65 | ## Sidebar | ||
66 | |||
37 | ## Navigation | 67 | ## Navigation |
38 | 68 | ||
69 | ### Opening links using the keyboard | ||
70 | |||
39 | When navigating via keyboard, hold down ${ALT} to see link shortcut keys. Try doing so now and see how the link icon below is replaced with a number. | 71 | When navigating via keyboard, hold down ${ALT} to see link shortcut keys. Try doing so now and see how the link icon below is replaced with a number. |
40 | 72 | ||
41 | => gemini://gemini.circumlunar.space/ Project Gemini | 73 | => gemini://gemini.circumlunar.space/ Project Gemini |
42 | 74 | ||
43 | Each visible link on the page gets an alphanumeric shortcut. For example, the first link can be opened by pressing ${ALT+}1. The tenth link is ${ALT+}A. Additionally hold down ${CTRL} to open the link in a new tab. | 75 | Each visible link on the page gets an alphanumeric shortcut. For example, the first link can be opened by pressing ${ALT+}1. The tenth link is ${ALT+}A. Additionally hold down ${CTRL} to open the link in a new tab. |
44 | 76 | ||
45 | ### SEomting | 77 | ## Bookmarks |
46 | |||
47 | ## Bookmarking | ||
48 | 78 | ||
49 | ## Managing and using identities | 79 | ## Managing and using identities |
50 | 80 | ||
51 | TLS client certificates used to identify you. | 81 | TLS client certificates used to identify you. |
52 | 82 | ||
83 | # Runtime files | ||
84 | |||
85 | * bookmarks.txt | ||
86 | * idents.binary and idents/ | ||
87 | * prefs.cfg | ||
88 | * state.binary | ||
89 | * trusted.txt | ||
90 | * visited.txt | ||
91 | |||
53 | # Platform-specific instructions | 92 | # Platform-specific instructions |
54 | 93 | ||
55 | # Compiling from source | 94 | # Compiling from source |
diff --git a/src/ui/documentwidget.c b/src/ui/documentwidget.c index 9f45f246..f99280d7 100644 --- a/src/ui/documentwidget.c +++ b/src/ui/documentwidget.c | |||
@@ -444,7 +444,10 @@ static void updateWindowTitle_DocumentWidget_(const iDocumentWidget *d) { | |||
444 | else { | 444 | else { |
445 | iUrl parts; | 445 | iUrl parts; |
446 | init_Url(&parts, d->mod.url); | 446 | init_Url(&parts, d->mod.url); |
447 | if (!isEmpty_Range(&parts.host)) { | 447 | if (equalCase_Rangecc(parts.scheme, "about")) { |
448 | pushBackCStr_StringArray(title, "Lagrange"); | ||
449 | } | ||
450 | else if (!isEmpty_Range(&parts.host)) { | ||
448 | pushBackRange_StringArray(title, parts.host); | 451 | pushBackRange_StringArray(title, parts.host); |
449 | } | 452 | } |
450 | } | 453 | } |