1
0
mirror of https://github.com/osmarks/mycorrhiza.git synced 2024-10-30 03:36:16 +00:00

Merge branch 'master' into pkg-revolution

This commit is contained in:
Timur Ismagilov 2022-04-09 15:13:22 +03:00 committed by GitHub
commit b90b36a5fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 32 deletions

View File

@ -2,28 +2,27 @@
**Mycorrhiza Wiki** is a lightweight file-system wiki engine that uses Git for keeping history. [Main wiki](https://mycorrhiza.wiki) **Mycorrhiza Wiki** is a lightweight file-system wiki engine that uses Git for keeping history. [Main wiki](https://mycorrhiza.wiki)
<img src="https://mycorrhiza.wiki/binary/release/1.8/screenshot" alt="A screenshot of mycorrhiza.wiki's home page in the Safari browser" width="600"> <img src="https://mycorrhiza.wiki/binary/release/1.9/screenshot" alt="A screenshot of mycorrhiza.wiki's home page in the Safari browser" width="700">
## Features ## Features
* **No database required.** Everything is stored in plain files. It makes installation super easy, and you can modify the content directly by yourself. * **No database required.** Everything is stored in plain files. It makes installation super easy, and you can modify the content directly by yourself.
* **Everything is hyphae.** A [hypha] is a unit of content such as a picture, video or a text article. Hyphae can [transclude][transclusion] and link each other resulting in a tight network of hypertext pages. * **Everything is hyphae.** A hypha is a unit of content such as a picture, video or a text article. Hyphae can [transclude] and link each other, forming a tight network of hypertext pages.
* **Hyphae are authored in [Mycomarkup],** a markup language that's designed to be unambigious yet easy to use. * **Hyphae are authored in [Mycomarkup],** a markup language that's designed to be unambigious yet easy to use.
* **Nesting of hyphae** is supported. A tree of related hyphae is shown on every page. * **Categories** let you organize hyphae without any hierarchy restrictions, with all the benefits of a category system.
* **History of changes** for textual parts of hyphae. Every change is safely stored in [Git]. Web feeds for recent changes included! * **Nesting of hyphae** is also supported if you like hierarchies.
* **History of changes** for textual parts of hyphae. Every change is safely stored in [Git]. Web feeds for recent changes included.
* **Keyboard-driven navigation.** Press `?` to see the list of shortcuts. * **Keyboard-driven navigation.** Press `?` to see the list of shortcuts.
* **Support for [authorization].** * **Support for [authorization].** Both plain username-password pairs and [Telegram]'s login widget are supported.
* **[Open Graph] support.** * **[Open Graph] support.** The most relevant info about a hypha is made available through OG meta tags for consumption by other software.
* **Optional [Telegram] authentication.**
[hypha]: https://mycorrhiza.wiki/hypha/feature/hypha [transclude]: https://mycorrhiza.wiki/hypha/feature/transclusion
[transclusion]: https://mycorrhiza.wiki/hypha/feature/transclusion
[authorization]: https://mycorrhiza.wiki/hypha/feature/authorization
[Mycomarkup]: https://mycorrhiza.wiki/help/en/mycomarkup [Mycomarkup]: https://mycorrhiza.wiki/help/en/mycomarkup
[Git]: https://mycorrhiza.wiki/hypha/integration/git [Git]: https://mycorrhiza.wiki/hypha/integration/git
[Open Graph]: https://mycorrhiza.wiki/hypha/standard/opengraph [authorization]: https://mycorrhiza.wiki/hypha/feature/authorization
[Telegram]: https://mycorrhiza.wiki/help/en/telegram [Telegram]: https://mycorrhiza.wiki/help/en/telegram
[Open Graph]: https://mycorrhiza.wiki/hypha/opengraph
Compare Mycorrhiza Wiki with other engines on [WikiMatrix](https://www.wikimatrix.org/show/mycorrhiza). Compare Mycorrhiza Wiki with other engines on [WikiMatrix](https://www.wikimatrix.org/show/mycorrhiza).
@ -35,18 +34,12 @@ See [the deployment guide](https://mycorrhiza.wiki/hypha/guide/deployment) on th
## Contributing ## Contributing
* [GitHub](https://github.com/bouncepaw/mycorrhiza)
* [SourceHut](https://sr.ht/~bouncepaw/mycorrhiza) * [SourceHut](https://sr.ht/~bouncepaw/mycorrhiza)
* [GitHub](https://github.com/bouncepaw/mycorrhiza)
* [#mycorrhiza on irc.libera.chat](irc://irc.libera.chat/#mycorrhiza) * [#mycorrhiza on irc.libera.chat](irc://irc.libera.chat/#mycorrhiza)
* [@mycorrhizadev (Russian) in Telegram](https://t.me/mycorrhizadev) * [@mycorrhizadev (Russian) in Telegram](https://t.me/mycorrhizadev)
If you want to contribute with code, open a pull request on GitHub or send a If you want to contribute with code, open a pull request on GitHub or send a patch to the [mailing list](https://lists.sr.ht/~bouncepaw/mycorrhiza-devel).
patch to the [mailing list]. If you want to report an issue, open an issue on If you want to report an issue, open an issue on GitHub or contact us directly.
GitHub or contact us directly.
Consider supporting the development on [Boosty](https://boosty.to/bouncepaw). Consider supporting the development on [Boosty](https://boosty.to/bouncepaw).
You can view the list of planned features on the [roadmap page].
[mailing list]: https://lists.sr.ht/~bouncepaw/mycorrhiza-devel
[roadmap page]: https://mycorrhiza.wiki/hypha/release/roadmap

1
go.mod
View File

@ -24,6 +24,7 @@ require (
// but do not commit the change to the path: // but do not commit the change to the path:
// replace github.com/bouncepaw/mycomarkup/v4 v4.0.0 => "/Users/bouncepaw/GolandProjects/mycomarkup" // replace github.com/bouncepaw/mycomarkup/v4 v4.0.0 => "/Users/bouncepaw/GolandProjects/mycomarkup"
// Use this utility every time Mycomarkup gets a major update: // Use this utility every time Mycomarkup gets a major update:
// https://github.com/marwan-at-work/mod // https://github.com/marwan-at-work/mod
// Or maybe just R every time, the utility is kinda weird. // Or maybe just R every time, the utility is kinda weird.

1
go.sum
View File

@ -39,7 +39,6 @@ golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qx
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211109184856-51b60fd695b3 h1:T6tyxxvHMj2L1R2kZg0uNMpS8ZhB9lRa9XRGTCSA65w= golang.org/x/sys v0.0.0-20211109184856-51b60fd695b3 h1:T6tyxxvHMj2L1R2kZg0uNMpS8ZhB9lRa9XRGTCSA65w=
golang.org/x/sys v0.0.0-20211109184856-51b60fd695b3/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211109184856-51b60fd695b3/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=

View File

@ -7,10 +7,10 @@ The file is generated automatically when you create a new wiki:
``` ```
# Generate a new wiki # Generate a new wiki
$ mycorrhiza bestWiki $ mycorrhiza best-wiki
... ...
# See what's inside # See what's inside
$ ls bestWiki $ ls best-wiki
cache config.ini static wiki.git cache config.ini static wiki.git
``` ```
@ -19,7 +19,7 @@ The file is written in the [[https://en.wikipedia.org/wiki/INI_file | .ini forma
== Example configuration == Example configuration
The auto-generated file is the best example (it has comments too). The auto-generated file is the best example (it has comments too).
Here's another example: Here's an example of a configuration file adapted from the default:
```ini ```ini
WikiName = My wiki WikiName = My wiki
NaviTitleIcon = 🐑 NaviTitleIcon = 🐑
@ -30,34 +30,44 @@ UserHypha = u
HeaderLinksHypha = header-links HeaderLinksHypha = header-links
[Network] [Network]
HTTPPort = 8080 ListenAddr = 0.0.0.0:8080
URL = https://wiki URL = https://wiki
GeminiCertificatePath = /home/wiki/gemcerts
[Authorization] [Authorization]
UseRegistration = true UseAuth = true
AllowRegistration = true
``` ```
== Fields == Fields
=== Root section === Root section
* `WikiName`: //string//. The name your wiki has. It is shown in the header by default and in other places. **Default:** `Mycorrhiza Wiki`. * `WikiName`: //string//. The name your wiki has. It is shown in the header by default and in other places. **Default:** `Mycorrhiza Wiki`.
* `NaviTitleIcon`: //string//. The icon shown before the colon in the navigational titles above each hypha. You may want to use an emoji or HTML here. **Default:** `🍄` (mushroom emoji). * `NaviTitleIcon`: //string//. The icon shown before the colon in the navigational titles above each hypha. You may want to use an emoji or HTML here. **Default:** `🍄` (mushroom emoji).
* `UseSiblingHyphaeSidebar`: //boolean//. Whether to show the [[/help/en/sibling_hyphae_section | sibling hyphae sidebar]]. You are discouraged from using the sibling hyphae sidebar on new wikis. Enable it on old wikis that depend on it heavily. **Default:** `false`.
=== [Hyphae] === [Hyphae]
* `HomeHypha`: //string//. The name your home hypha has. **Default:** `home`. * `HomeHypha`: //string//. The name your home hypha has. **Default:** `home`.
* `UserHypha`: //string//. The name of the hypha that is parent of all user hyphae. **Default:** `u`. * `UserHypha`: //string//. The name of the hypha that is parent of all user hyphae. **Default:** `u`.
* `HeaderLinkHypha`: //string//. The name of the hypha where you can configure the header. There is no default. * `HeaderLinkHypha`: //string//. The name of the hypha where you can configure the header. See [[/help/en/top_bar]]. There is no default.
=== [Network] === [Network]
* `HTTPPort`: //number//. What port is used for serving the web interface of Mycorrhiza. **Default:** `1737`. * `ListenAddr`: //number//. What port is used for serving the web interface of Mycorrhiza. **Default:** `1737`.
* `URL`: //url//. What URL is used for Opengraph and Web feed in the web interface. There is no default and you really should set it to something. * `URL`: //url//. What URL is used for Opengraph and Web feed in the web interface. There is no default and you really should set it to something.
=== [Authorization] === [Authorization]
* `UseRegistration`: //boolean//. Whether you want unregistered visitors to be able to register themselves using the web form. **Default:** `false`. * `UseAuth`: //boolean//. Whether to enable authorization system. **Default:** `false`.
* `LimitRegistration`: //number//. There cannot be more registered users than this number. If the number is zero, there is no limit. Makes sense only when `UseRegistration` is `true`. **Default:** `0`. * `AllowRegistration`: //boolean//. Whether you want unregistered visitors to be able to register themselves using the web form. **Default:** `false`.
* `RegistrationLimit`: //number//. There cannot be more registered users than this number. If the number is zero, there is no limit. Makes sense only when `UseRegistration` is `true`. **Default:** `0`.
* `Locked`: //boolean//. Whether the users have to authorize first to access the wiki. **Default:** `false`.
* `UseWhiteList`: //boolean//. Whether to use a whitelist to allow specific users in. **Default:** `false`.
* `WhiteList`: //list of strings//. Usernames of people to allow in, if `UseWhiteList` is turned on. **Default:** `[]`.
=== [CustomScripts] === [CustomScripts]
You can specify URLs of JavaScript files you want to load. You can specify URLs of JavaScript files you want to load.
* `CommonScripts`: //list of url//. Comma-separated list of unquoted URLs to JS files to load on //all// pages. * `CommonScripts`: //list of url//. Comma-separated list of unquoted URLs to JS files to load on //all// pages.
* `ViewScripts`: //list of urls//. Comma-separated list of unquoted URLs to JS files to load on //view// pages: `/hypha`, `/rev`. * `ViewScripts`: //list of urls//. Comma-separated list of unquoted URLs to JS files to load on //view// pages: `/hypha`, `/rev`.
* `EditScripts`: //list of urls//. Comma-separated list of unquoted URLs to JS files to load on the `/edit` page. * `EditScripts`: //list of urls//. Comma-separated list of unquoted URLs to JS files to load on the `/edit` page.
=== [Telegram]
You can set up Telegram-based authorization. You have to define both parameters.
* `TelegramBotToken`: //string// Token of your bot. There is no default.
* `TelegramBotName`: //string// Username of your bot, sans @. There is no default.