1
0
Fork 0
mirror of https://github.com/Nutomic/ibis.git synced 2024-11-22 09:01:09 +00:00

Add usage guide to readme

This commit is contained in:
Felix Ableitner 2024-02-14 14:45:58 +01:00
parent 2cf36210ff
commit 458c2297d2
3 changed files with 20 additions and 6 deletions

View file

@ -7,6 +7,16 @@ A federated Wikipedia alternative. Main objects in terms of federation are the `
The Ibis is a [bird which is related to the Egyptian god of knowledge and science](https://en.wikipedia.org/wiki/African_sacred_ibis#In_myth_and_legend). The Ibis is a [bird which is related to the Egyptian god of knowledge and science](https://en.wikipedia.org/wiki/African_sacred_ibis#In_myth_and_legend).
## How to Use
You can start by reading the main page which is rendered from Markdown. In the "History" tab you can see all the changes that were made to create the current article version. Each change consists of a diff, along with information about the author and the change date. This is similar to a git log. You can discover more articles with the "List Articles" menu option on the left side. By default all known articles from different instances are shown (remote articles are indicated by `@domain`). You can interact with remote articles just the same as local articles. It is also possible to list local articles only.
To continue, register a new account and you are logged in immediately without further confirmation. If you are admin of a newly created instance, login to the automatically created admin account instead. Login details are specified in the config file (by default user `ibis` and password also `ibis`).
On a new instance only the default Main Page will be shown. Use "Create Article" to create a new one. You have to enter the title, text and a summary of the edit. Afterwards press the submit button, and you are redirected to the new article. You can also make changes to existing articles with the "Edit" button at the top. For remote articles, there is additionally a "Fork" option under the "Actions" tab. This allows copying a remote article including the full change history to the local instance. It can be useful if the original instance is dead, or if there are disagreements how the article should be written.
To kickstart federation, paste the domain of a remote instance into the search field, eg `https://example.com`. This will fetch the instance data over Activitypub, and also fetch all articles to make them available locally. The search page will show a link to the instance details page. Here you can follow the instance, so that new articles and edits are automatically federated to your local instance. You can also fetch individual articles from remote instances by pasting the URL into the search field.
## Development ## Development
You need to install [cargo](https://rustup.rs/) and [trunk](https://trunkrs.dev). Then run the following commands in separate terminals: You need to install [cargo](https://rustup.rs/) and [trunk](https://trunkrs.dev). Then run the following commands in separate terminals:

View file

@ -70,9 +70,11 @@ pub fn CreateArticle() -> impl IntoView {
view! { <p style="color:red;">{err}</p> } view! { <p style="color:red;">{err}</p> }
}) })
}} }}
<input type="text" on:keyup=move |ev| { <input type="text"
let val = event_target_value(&ev); placeholder="Summary"
set_summary.update(|p| *p = val); on:keyup=move |ev| {
let val = event_target_value(&ev);
set_summary.update(|p| *p = val);
}/> }/>
<button <button
prop:disabled=move || button_is_disabled.get() prop:disabled=move || button_is_disabled.get()

View file

@ -74,9 +74,11 @@ pub fn EditArticle() -> impl IntoView {
view! { <p style="color:red;">{err}</p> } view! { <p style="color:red;">{err}</p> }
}) })
}} }}
<input type="text" on:keyup=move |ev| { <input type="text"
let val = event_target_value(&ev); placeholder="Summary"
set_summary.update(|p| *p = val); on:keyup=move |ev| {
let val = event_target_value(&ev);
set_summary.update(|p| *p = val);
}/> }/>
<button <button
prop:disabled=move || button_is_disabled.get() prop:disabled=move || button_is_disabled.get()