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

Create a man page #146

Closed
rhansen opened this issue Jun 2, 2020 · 8 comments
Closed

Create a man page #146

rhansen opened this issue Jun 2, 2020 · 8 comments
Assignees
Labels
discussion Discussions around the future/development of ddclient

Comments

@rhansen
Copy link
Member

rhansen commented Jun 2, 2020

The output of -help is quite unwieldy. I think it would be good to move the examples to a man page to drastically shrink the amount of help text. The man page would also be a good place to clarify the config file format.

@rhansen rhansen self-assigned this Jun 2, 2020
@wimpunk wimpunk added the discussion Discussions around the future/development of ddclient label Jun 8, 2020
@wimpunk
Copy link
Contributor

wimpunk commented Jun 8, 2020

I think we should also add the contents of the website to the repository. It's bit unpractical to maintain two repositories which contain related material.
The website is based on markdown files which are rendered by the github infrastructure. You can find the code at https://github.com/ddclient/ddclient.github.io. As far as I remember we could add a directory doc which can be used as source for the github pages. I have to check this, I'm not completely sure about the directory name.
Documenting the code was a good thing to use but I'm not sure we have to keep it that way. I believe we need one documentation source which can generate the output we need. I've always been dreaming about integrating it in ddclient so we could run ddclient --help --web to generate the website an drun ddclient --help --man to create the man pages but this is probably to complex to setup.
I also hope to keep the documentation together. I'm not in favor of shrinking the amount of help text, I would prefer the possibility to select which part of the documentation you want to read. But again, it could make the help feature to complex.
So if you make any changes to the help, try to keep all documentation together. It may be all together in one directory, that's good enough. I just don't want to have to search on multiple places to find all the information.
Anyone from @ddclient/ddclientcore who wants to share his vision?

@SuperSandro2000
Copy link
Member

The idea was to move stuff from --help to the man page to minimize the help. Currently it is very long and may be confusing.

@wimpunk
Copy link
Contributor

wimpunk commented Jun 8, 2020

I know the result is pretty long. But it should also be easy readable without the need to install a man page handler. Maybe I'm just getting old but I prefer a human readable document above a man page. Adding the info to ddclient makes it easier to update. Currently there's already a difference between what ddclient can do and what's in the documentation. I've always considered ddclient --help as the only source of truth. So if we want to reduce the help-feature, we have to find a way to easily maintain the documentation and generate the contents of the website and man pages from that source.

@SuperSandro2000
Copy link
Member

If you type git --help you are automatically show the man page or just the arguments. Also I expect everyone to have man installed.

I never read --help and just searched through the script file. For me it is way to long to read and my less does not support mouse scroll so it is just inconvenient.

There are tools which can convert man files to markdown or HTML (groff) and the other way (roff).

@rhansen
Copy link
Member Author

rhansen commented Jun 9, 2020

As far as I remember we could add a directory doc which can be used as source for the github pages.

Huh, that would be nice. That would make it possible to update the web page and the code in the same pull request.

I've always been dreaming about integrating it in ddclient so we could run ddclient --help --web to generate the website and run ddclient --help --man to create the man pages but this is probably too complex to setup.

How about the other way around: Create a Markdown or DocBook XML file and use it to generate three outputs: (1) an HTML page for https://ddclient.net, (2) a man page, and (3) plain text for substitution into the ddclient script (by a to-be-added "build" system). This shouldn't be too hard to do.

Maybe I'm just getting old but I prefer a human readable document above a man page.

Debian policy says that everything should have a man page. To conform, the Debian package has a less-than-ideal stub man page. I think our users would greatly benefit from a fully fleshed-out man page.

Another thought: Change -help to output a summary and add -help-full to display everything.

rhansen added a commit to rhansen/ddclient that referenced this issue Jun 9, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 9, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
@wimpunk
Copy link
Contributor

wimpunk commented Jun 9, 2020

As far as I remember we could add a directory doc which can be used as source for the github pages.

Huh, that would be nice. That would make it possible to update the web page and the code in the same pull request.

Okay, I'll try to find out how to do it. I'll keep you posted.

I've always been dreaming about integrating it in ddclient so we could run ddclient --help --web to generate the website and run ddclient --help --man to create the man pages but this is probably too complex to setup.

How about the other way around: Create a Markdown or DocBook XML file and use it to generate three outputs: (1) an HTML page for https://ddclient.net, (2) a man page, and (3) plain text for substitution into the ddclient script (by a to-be-added "build" system). This shouldn't be too hard to do.

That's a good way too. As long as it gets updated while changing ddclient I'm happy. Is there anyone volunteering in doing this ?

Maybe I'm just getting old but I prefer a human readable document above a man page.

Debian policy says that everything should have a man page. To conform, the Debian package has a less-than-ideal stub man page. I think our users would greatly benefit from a fully fleshed-out man page.

Another thought: Change -help to output a summary and add -help-full to display everything.

Actually, I'm not against a good man page but I would like to keep it usable without groff. So if we could do it like you suggested earlier by starting from a docbook or markdown and generate the outputs, I'm happy.

@rhansen
Copy link
Member Author

rhansen commented Jun 9, 2020

How about the other way around: Create a Markdown or DocBook XML file and use it to generate three outputs: (1) an HTML page for https://ddclient.net, (2) a man page, and (3) plain text for substitution into the ddclient script (by a to-be-added "build" system).

That's a good way too. As long as it gets updated while changing ddclient I'm happy. Is there anyone volunteering in doing this ?

I volunteer. PR #161 adds a build system that we can leverage for the XML/Markdown to troff/html/text conversion and the substitution into the ddclient script.

Do you have a preference for DocBook XML vs. Ronn Markdown? (Or maybe something else?) Both DocBook and Ronn have built-in support for HTML and roff, and plain text can be generated from roff. Both will work on old platforms like CentOS 6, I think. Pros and cons:

  • GitHub renders Markdown but not DocBook XML. Some of this advantage is diminished by the fact that we have to write Ronn-friendly markdown.
  • Markdown is easier to write.
  • We're already using Markdown for other stuff.
  • DocBook gives us greater markup control, which is useful for complicated man pages.

I'm leaning toward Ronn-flavored Markdown for now. We can later migrate to DocBook XML if we need the extra power.

rhansen added a commit to rhansen/ddclient that referenced this issue Jun 10, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 11, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 11, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 11, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 11, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 11, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 12, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 12, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 12, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 13, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 13, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 13, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 13, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 16, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 17, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 23, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 24, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 24, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 24, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 28, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 29, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 29, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
rhansen added a commit to rhansen/ddclient that referenced this issue Jun 29, 2020
This makes it easier to package ddclient, especially as enhancements
are made such as unit tests or a man page.

I chose GNU Autoconf and Automake mostly because I'm familiar with
them, but also because I know they are well supported. Unfortunately
they can be difficult to understand/maintain (especially Autoconf), so
we may want to convert to something else later.

Addresses ddclient#146, ddclient#147
@SuperSandro2000
Copy link
Member

This is a feature request and feature requests in the form of issues are no longer accepted.

@SuperSandro2000 SuperSandro2000 closed this as not planned Won't fix, can't repro, duplicate, stale Jul 4, 2023
Major changes for ddclient 4.0 automation moved this from To do to Done Jul 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Discussions around the future/development of ddclient
Development

No branches or pull requests

3 participants