Convert the manpage to AsciiDoc

Writing DocBook XML by hand is an awful experience and the tools aren't
much better.  Asciidoctor does it well.  There's no need to worry about
semantics, man(1) just needs to be able to show something at all.

This project's manpage is sadly almost useless right now.
This commit is contained in:
Přemysl Eric Janouch 2020-10-26 17:01:43 +01:00
parent d7f502a731
commit d2fa9f3151
Signed by: p
GPG Key ID: A0420B94F92B9493
4 changed files with 59 additions and 83 deletions

View File

@ -96,29 +96,24 @@ GETTEXT_CREATE_TRANSLATIONS (
ALL ${project_PO_FILES}) ALL ${project_PO_FILES})
# Documentation # Documentation
find_program (XSLTPROC_EXECUTABLE xsltproc) find_program (ASCIIDOCTOR_EXECUTABLE asciidoctor)
if (NOT XSLTPROC_EXECUTABLE) if (NOT ASCIIDOCTOR_EXECUTABLE)
message (FATAL_ERROR "xsltproc not found") message (FATAL_ERROR "asciidoctor not found")
endif (NOT XSLTPROC_EXECUTABLE) endif (NOT ASCIIDOCTOR_EXECUTABLE)
set (project_MAN_PAGES "${PROJECT_NAME}.1") foreach (page "${PROJECT_NAME}.1")
foreach (page ${project_MAN_PAGES})
set (page_output "${PROJECT_BINARY_DIR}/${page}") set (page_output "${PROJECT_BINARY_DIR}/${page}")
list (APPEND project_MAN_PAGES_OUTPUT "${page_output}") list (APPEND project_MAN_PAGES "${page_output}")
add_custom_command (OUTPUT ${page_output} add_custom_command (OUTPUT ${page_output}
COMMAND ${XSLTPROC_EXECUTABLE} COMMAND ${ASCIIDOCTOR_EXECUTABLE} -b manpage
--nonet -a release-version=${PROJECT_VERSION}
--param make.year.ranges 1 "${PROJECT_SOURCE_DIR}/docs/${page}.adoc"
--param make.single.year.ranges 1 -o "${page_output}"
--param man.charmap.use.subset 0 DEPENDS "docs/${page}.adoc"
--param man.authors.section.enabled 0
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
"${PROJECT_SOURCE_DIR}/docs/${page}.xml"
DEPENDS "docs/${page}.xml"
COMMENT "Generating man page for ${page}" VERBATIM) COMMENT "Generating man page for ${page}" VERBATIM)
endforeach (page) endforeach (page)
add_custom_target (docs ALL DEPENDS ${project_MAN_PAGES_OUTPUT}) add_custom_target (docs ALL DEPENDS ${project_MAN_PAGES})
# Project libraries # Project libraries
set (project_common_libraries ${ZLIB_LIBRARIES} ${icu_LIBRARIES} set (project_common_libraries ${ZLIB_LIBRARIES} ${icu_LIBRARIES}
@ -182,7 +177,7 @@ include (GNUInstallDirs)
install (TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR}) install (TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
install (FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR}) install (FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
foreach (page ${project_MAN_PAGES_OUTPUT}) foreach (page ${project_MAN_PAGES})
string (REGEX MATCH "\\.([0-9])$" manpage_suffix "${page}") string (REGEX MATCH "\\.([0-9])$" manpage_suffix "${page}")
install (FILES "${page}" install (FILES "${page}"
DESTINATION "${CMAKE_INSTALL_MANDIR}/man${CMAKE_MATCH_1}") DESTINATION "${CMAKE_INSTALL_MANDIR}/man${CMAKE_MATCH_1}")

View File

@ -30,7 +30,7 @@ a package with the latest development version from Archlinux's AUR.
Building and Running Building and Running
-------------------- --------------------
Build dependencies: CMake, pkg-config, xsltproc, docbook-xsl + Build dependencies: CMake, pkg-config, asciidoctor +
Runtime dependencies: ncursesw, zlib, ICU, termo (included), Runtime dependencies: ncursesw, zlib, ICU, termo (included),
glib-2.0, pango, xcb and xcb-xfixes (optional) glib-2.0, pango, xcb and xcb-xfixes (optional)

45
docs/sdtui.1.adoc Normal file
View File

@ -0,0 +1,45 @@
sdtui(1)
========
:doctype: manpage
:manmanual: sdtui Manual
:mansource: sdtui {release-version}
Name
----
sdtui - StarDict terminal UI
Synopsis
--------
*sdtui* [_OPTION_]... [_DICTIONARY_.ifo]...
Description
-----------
*sdtui* is a StarDict dictionary viewer custom tailored for viewing translation
dictionaries, using a simple curses-based terminal UI.
The program expects to find on its command line the path to a dictionary's
_.ifo_ file, which contains further information required to load the dictionary.
Some options as well as dictionaries to load on start-up by default can be
specified in a configuration file. See the README for an example.
// FIXME: the README isn't even installed, so this manual isn't very useful
Options
-------
*-h*, *--help*::
Display a help message and exit.
*-V*, *--version*::
Output version information and exit.
Files
-----
_~/.config/sdtui/sdtui.conf_::
The configuration file, in which you can configure some settings, terminal
colours and the set of dictionaries to be loaded automatically on start-up.
Reporting bugs
--------------
Use https://git.janouch.name/p/sdtui to report bugs, request features,
or submit pull requests.

View File

@ -1,64 +0,0 @@
<refentry>
<refentryinfo>
<title>sdtui</title>
<productname>sdtui</productname>
<author>
<firstname>Přemysl</firstname>
<surname>Janouch</surname>
</author>
</refentryinfo>
<refmeta>
<refentrytitle>sdtui</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="manual">User Commands</refmiscinfo>
</refmeta>
<refnamediv>
<refname>sdtui</refname>
<refpurpose>StarDict terminal UI</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>sdtui</command>
<arg choice="opt" rep="repeat">
<option><replaceable>OPTION</replaceable></option>
</arg>
<arg choice="opt" rep="repeat">
<replaceable>dictionary.ifo</replaceable>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>
<para><command>sdtui</command> is a StarDict dictionary viewer custom tailored
for viewing translation dictionaries, using a simple curses-based terminal UI.
</para>
<para>The program expects to find on its command line the path to a dictionary's
.ifo file, which contains further information required for loading the
dictionary.</para>
<para>Some options as well as dictionaries to load on start by default can be
specified in a configuration file. See the README for an example.</para>
</refsect1>
<refsect1><title>Options</title>
<variablelist>
<varlistentry>
<term><option>-h</option>, <option>--help</option></term>
<listitem><para>
show help options
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-V</option>, <option>--version</option></term>
<listitem><para>
output version information and exit
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
</refentry>