Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wiki: Docs, Tutorials #124

Closed
15 of 16 tasks
makew0rld opened this issue Nov 20, 2020 · 30 comments
Closed
15 of 16 tasks

Wiki: Docs, Tutorials #124

makew0rld opened this issue Nov 20, 2020 · 30 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@makew0rld
Copy link
Owner

makew0rld commented Nov 20, 2020

The wiki has started!

Amfora is growing, and its feature-set is becoming larger and less obvious when casually browsing. I feel that the README is also becoming a bit cluttered. Some documentation or tutorials on specific features should be created to resolve this, and then linked in the README.

Documentation Topics

  • Basic navigation
    • Mention link numbers!! You can access links > 10 by pressing space, typing the number, then Enter.
  • Client certs
    • Move this off the README
    • How to add to config
    • How to generate on Windows
    • Expiry dates?
  • [url-handlers] config section
  • [[mediatype-handlers]] config section(s) (Mediatype handlers #121)
  • Proxying
    • Links to existing proxy software
  • Subscriptions (Subscriptions #61)
    • Write gemlog post after release
  • Bookmarks

Readme changes

  • Table of contents
  • Collapse the Building From Source section with <details> and <summary>

Other

  • Mirror wiki on Gemini - put script in contrib/
  • Link to GitHub and Gemini version of wiki on new tab page.
@makew0rld makew0rld added the documentation Improvements or additions to documentation label Nov 20, 2020
@makew0rld makew0rld self-assigned this Nov 23, 2020
@lokesh-krishna
Copy link
Contributor

How about using GitHub's wiki system and moving all documentation to it? I'd be willing to write about the parts that I have a decent grasp on.

@makew0rld
Copy link
Owner Author

I was thinking about that last night! A GitHub wiki seems like the way to go. It's clone-able, so I don't feel tied in.

As for you contributing, that sounds great! Thanks. I think I'd like to write the opening sections myself, but you're welcome to add on.

@makew0rld
Copy link
Owner Author

makew0rld commented Nov 29, 2020

@lokesh-krishna I would be happy to have you create and write sections, I take back what I said about starting them. I've been tied up with code (#61) and also day-to-day life. Let me know if you can!

I've created the Wiki, with a dummy first page. That way you can open PRs to add to it.

@lokesh-krishna
Copy link
Contributor

Hey,
It would be an honor.
I've already begun and should hopefully have the basics ready by tomorrow!

@lokesh-krishna
Copy link
Contributor

lokesh-krishna commented Nov 30, 2020

Here is what I have so far: Amfora WIki
I have a few doubts though so lemme know when you'll be available on IRC and we can maybe discuss things?

@makew0rld
Copy link
Owner Author

Thanks! I'm happy to add that as it is and then make my own changes, but I'll come online this afternoon (EST) and we can talk.

@makew0rld
Copy link
Owner Author

makew0rld commented Dec 1, 2020

Your page was added with some small changes, and the sections it contained were removed from the README.

@lokesh-krishna
Copy link
Contributor

Added sections on URL-handlers and proxying (which includes the few proxies that I know of).

@makew0rld
Copy link
Owner Author

Thanks! Unfortunately I think this is just starting to look like a big README. I want to split this up into different pages to make it more readable, and to allow a user to focus on the areas they want. But I'm not sure exactly what the pages would be. Any ideas? I'll think about it more as well.

Once we figure that out, I can add these new sections.

Other things:

  • It's helpful if you sync your wiki with mine, as I made some small changes when I added your homepage
  • Aren't the proxies X-to-Gemini, not Gemini-to-X?

@lokesh-krishna
Copy link
Contributor

lokesh-krishna commented Dec 6, 2020

Any ideas? I'll think about it more as well.

I like the Polybar wiki's organization a lot and think their categorization with a home page and then separate pages for compiling, configuration and theming would be a good fit for Amfora too.

It's helpful if you sync your wiki with mine, as I made some small changes when I added your homepage

Right, I did add yours as a remote but forgot to sync. If you settle upon an organization scheme then would it be too much to ask if I could be a collaborator for just the wiki? GitHub has made things needlessly unwieldy otherwise.

Aren't the proxies X-to-Gemini, not Gemini-to-X?

I'm pretty confused about this myself. I based this choice upon Drew's Kineto which is described as a HTTP to Gemini proxy. It lets you serve a Gemini capsule over HTTP. So I figured these proxies that make a HTTP site available on Gemini would be Gemini to X proxies.
I would love to be corrected if I'm getting this wrong.

@makew0rld
Copy link
Owner Author

The polybar wiki organization is not super clear to me, but seems decent. For Amfora I think having a general configuration page is good, but I don't want to end up putting everything in there, like URL handlers and proxies. Maybe just at the top pages that require configuration just link back to config page? Like polybar does here.

As for specific pages, I think if you look at the opening comment in this issue and go off that that'd be good. Each top-level checkbox should have it's own page. Maybe with a different name though, like instead of it being named url-handlers, it could be called "Opening non-gemini URLs" or something.

If you settle upon an organization scheme then would it be too much to ask if I could be a collaborator for just the wiki? GitHub has made things needlessly unwieldy otherwise.

You've been invited as a collaborator. Once you accept, you should be able to edit the wiki yourself. Please let me know here when you add/edit things, but you're welcome to go ahead and do it.

I based this choice upon Drew's Kineto which is described as a HTTP to Gemini proxy. It lets you serve a Gemini capsule over HTTP. So I figured these proxies that make a HTTP site available on Gemini would be Gemini to X proxies.

I realize it's more complicated than I thought, because both portals and proxies are biderectional. Portals take HTTP requests from the user and make Gemini requests, and then translate the Gemini responses into HTTP. Proxies are vice-versa. I would still consider proxies to be X-to-Gemini, since most of the flow of content is the response, which starts out as protocol X, and then is turned into Gemini.

@makew0rld makew0rld added this to the v1.7.0 milestone Dec 7, 2020
@lokesh-krishna
Copy link
Contributor

For Amfora I think having a general configuration page is good, but I don't want to end up putting everything in there, like URL handlers and proxies. Maybe just at the top pages that require configuration just link back to config page?

Yup, that sounds good. I'll go with that then :)

You've been invited as a collaborator.

Thank you so, so much! I'm honoured! I definitely mean for everything to be reviewed by you first. Can we do branches on the wiki? That way nothing would get on the main branch until you approved it.

I would still consider proxies to be X-to-Gemini, since most of the flow of content is the response, which starts out as protocol X, and then is turned into Gemini.

This is all I needed. I just kept getting confused.

@makew0rld
Copy link
Owner Author

Can we do branches on the wiki? That way nothing would get on the main branch until you approved it.

Thanks, good idea. You should be able to, let me know if you have any issues.

Let me know when you've reorganized and pushed the URL-handlers and proxying sections, and I'll take a look. Thanks!

@lokesh-krishna
Copy link
Contributor

I've pushed my changes to the proxy-and-handlers branch. Could you please review them?

@makew0rld
Copy link
Owner Author

makew0rld commented Dec 11, 2020

Thank you, merged. You can look at the branch history and the master branch history for changes I made.

Some things for the future:

  • Don't start the page with a H1 heading like # Proxying, GitHub does this for us
  • Page titles can't have hyphens in them apparently. So Handling Non-Gemini URLs became Handling Other URL Schemes

@makew0rld
Copy link
Owner Author

It seems to me like there's now an overlap between the documentation in the config file and in the Wiki. The recently added pages are nice, but it seems like they mostly just copy what's said in the config file. But I think they're good for bringing attention to the feature, and for providing extra info, like links to proxies. But I don't want to maintain docs in two separate places. Thoughts on how to reconcile this?

@makew0rld makew0rld changed the title Documentation/Tutorials Wiki: Docs, Tutorials Dec 11, 2020
@lokesh-krishna
Copy link
Contributor

lokesh-krishna commented Dec 12, 2020

I think all projects have this redundancy though it's usually in the form of an online wiki and an offline man page. I don't think Amfora is complex enough (yet) to need a man page and I love that you can just copy over the default config file and know everything you need to configure Amfora. I wouldn't want the information to disappear from the default config file.

Maybe we could add more information to the wiki? I am limited by my knowledge but if you were willing to share any notes or make the additions yourself then the wiki could address more involved workflows, additional context and edge cases. An example of this would be the page on subscription giving a brief overview of all supported formats with their advantages and shortcomings. The config file meanwhile would just provide the bare minimum.

Eventually though I think we might need a man page, judging by all that's in store and I would love to be a part of it.

EDIT: Having gone through #142, I can definitely see the need for a man page arising soon. We would need documentation for all that the infobar is capable of but the default config would grow too cluttered if all of it was added there. I strongly believe that all programs should ship with comprehensive offline documentation though so...

Thoughts on how to reconcile this?

Default config file has the bare minimum, comprehensive man page, wiki which at least matches the man page in covering features and configuration with maybe additional context and links to relevant projects (such as proxies).

@makew0rld
Copy link
Owner Author

I love that you can just copy over the default config file and know everything you need to configure Amfora. I wouldn't want the information to disappear from the default config file.

Agreed. It would be simpler for me to just maintain everything in the wiki and link to it in the config file, but I think having it all there is much nicer for users.

Maybe we could add more information to the wiki? [...] The config file meanwhile would just provide the bare minimum.

This makes sense to me. I was more wondering about how write the info that's already in the config. Like so far it's been rewritten into prose sentences, but would it be better to just paste the config in there? Like so:

# Allows setting the commands to run for various URL schemes.
# E.g. to open FTP URLs with FileZilla set the following key:
#   ftp = 'filezilla'
# You can set any scheme to "off" or "" to disable handling it, or
# just leave the key unset.
#
# DO NOT use this for setting the HTTP command.
# Use the http setting in the "a-general" section above.
#
# NOTE: These settings are overrided by the ones in the proxies section.
# Note the use of single quotes, so that backslashes will not be escaped.

# This is a special key that defines the handler for all URL schemes for which
# no handler is defined.
other = 'off'

And then additional info can be written afterwards in sentences.

EDIT: Having gone through #142, I can definitely see the need for a man page arising soon. We would need documentation for all that the infobar is capable of but the default config would grow too cluttered if all of it was added there.

I'm not a huge fan of man pages, and I'm not sure if it's really needed here. Why can't the instructions for the info bar just be added to the config? [theme] is already a large section and I don't think it's an issue.

Default config file has the bare minimum, comprehensive man page, wiki which at least matches the man page in covering features and configuration with maybe additional context and links to relevant projects (such as proxies).

I was thinking config file with relevant info and short explanation, and wiki with more info, context, example setups, etc.

@lokesh-krishna
Copy link
Contributor

And then additional info can be written afterwards in sentences.

This is good. Would be make it easier to update both too if they share the same base. We could just drop the comments and use code blocks for the actual config stuff?

I'm not a huge fan of man pages, and I'm not sure if it's really needed here.

I just like that they provide an entirely offline yet entirely complete source of documentation. However, if you mean for the config file to still cover everything then I think there's no need for one.

I was thinking config file with relevant info and short explanation, and wiki with more info, context, example setups, etc.

Let's go ahead with this then?

@makew0rld
Copy link
Owner Author

Would be make it easier to update both too if they share the same base.

That's what I was thinking, yeah.

We could just drop the comments and use code blocks for the actual config stuff?

Basically I was just thinking to copy the minimal info in the config file into the wiki as a TOML code block, and then write extra info on the wiki outside of that. Is that what you understood?

However, if you mean for the config file to still cover everything then I think there's no need for [a man page.]

Yep, I like just having that single offline source for info.

Let's go ahead with this then?

Sounds good!


Unrelated, but I'm planning to mirror the wiki on my capsule with a script that uses git pull and md2gemini, and then I can link to it on the new tab page 😄. I've added this as a checkbox to the top.

@lokesh-krishna
Copy link
Contributor

Basically I was just thinking to copy the minimal info in the config file into the wiki as a TOML code block, and then write extra info on the wiki outside of that. Is that what you understood?

So all the info in the config file that is in the form of comments would remain as comments within the TOML code block? I was thinking the comments could be moved out of the code block but leaving it in would sure make it even easier to keep both updated.

@makew0rld
Copy link
Owner Author

Yep, that's what I was thinking. It also makes it obvious to the user what information is in the config and what is not. I will update the wiki to do this with existing pages.

@makew0rld
Copy link
Owner Author

@lokesh-krishna I've added a full page on the Subscriptions feature, would be happy to have you take a look, and maybe try out the feature too! It's in master. Let me know if you need a binary.

@lokesh-krishna
Copy link
Contributor

lokesh-krishna commented Dec 19, 2020

That's a comprehensive implementation with a comprehensive wiki page to go along with it :)
I just touched up a couple of lines, added a missing word. Hope that's alright.
Testing it out now.

EDIT:
Tried it out and love the implementation. The only suggestion that I have is to link to the wiki in about:subscriptions right after you mention it.

@makew0rld
Copy link
Owner Author

Glad you like both the code and page! Thanks for the fixes. And yes, I'm planning on linking the wiki page. Just want to get the wiki running on Gemini first, so I can link to both versions.

@makew0rld
Copy link
Owner Author

The wiki is now on Gemini! And it's in the new tab page, as of 507c6e8.

gemini://makeworld.gq/amfora-wiki/

@makew0rld
Copy link
Owner Author

I will keep this open as more sections will need to be added over time, but I'm removing it from the v1.7.0 milestone as all the docs I wanted for that release are done.

@makew0rld makew0rld modified the milestones: v1.7.0, v1.8.0 Dec 20, 2020
@makew0rld
Copy link
Owner Author

Wiki is done for v1.8.0, but this page will need to be updated to remove the "not released yet!" notice at the top.

@makew0rld makew0rld removed this from the v1.8.0 milestone Feb 17, 2021
@makew0rld makew0rld added this to the v1.9.0 milestone Mar 8, 2021
@makew0rld
Copy link
Owner Author

makew0rld commented Mar 8, 2021

Things to add for v1.9.0 that don't have issues:

@makew0rld makew0rld modified the milestones: v1.9.0, v1.10.0 Dec 8, 2021
@makew0rld
Copy link
Owner Author

makew0rld commented Dec 11, 2021

Todo for v1.10.0 release

@makew0rld makew0rld modified the milestones: v1.10.0, v1.11.0 Feb 4, 2024
@makew0rld makew0rld removed this from the v1.11.0 milestone Dec 19, 2024
@makew0rld makew0rld reopened this Dec 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants