summaryrefslogtreecommitdiffstats
path: root/doc/asciidoctor-macros/manarg-block
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-19 04:14:53 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-19 04:14:53 +0000
commita86c5f7cae7ec9a3398300555a0b644689d946a1 (patch)
tree39fe4b107c71174fd1e8a8ceb9a4d2aa14116248 /doc/asciidoctor-macros/manarg-block
parentReleasing progress-linux version 4.2.6-1~progress7.99u1. (diff)
downloadwireshark-a86c5f7cae7ec9a3398300555a0b644689d946a1.tar.xz
wireshark-a86c5f7cae7ec9a3398300555a0b644689d946a1.zip
Merging upstream version 4.4.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'doc/asciidoctor-macros/manarg-block')
-rw-r--r--doc/asciidoctor-macros/manarg-block/extension.rb45
-rw-r--r--doc/asciidoctor-macros/manarg-block/sample.adoc19
2 files changed, 64 insertions, 0 deletions
diff --git a/doc/asciidoctor-macros/manarg-block/extension.rb b/doc/asciidoctor-macros/manarg-block/extension.rb
new file mode 100644
index 00000000..2461e723
--- /dev/null
+++ b/doc/asciidoctor-macros/manarg-block/extension.rb
@@ -0,0 +1,45 @@
+# SPDX-License-Identifier: MIT
+require 'asciidoctor/extensions' unless RUBY_ENGINE == 'opal'
+
+include Asciidoctor
+
+# An inline macro that generates markup for man page arguments.
+# Adapted from https://github.com/asciidoctor/asciidoctor-extensions-lab/blob/master/lib/man-inline-macro.rb
+#
+# Usage:
+#
+# [manarg]
+# *command*
+# [ *--help* ]
+# [ *--flash-lights* ]
+#
+class ManArgBlock < Extensions::BlockProcessor
+ use_dsl
+
+ named :manarg
+ parse_content_as :simple
+
+ def process parent, reader, attrs
+ nowrap_lines = reader.readlines.map {|line|
+ if parent.document.basebackend? 'html'
+ # Apply the custom style "[.nowrap]## ... ##" to each line.
+ # This generates "<span content="nowrap"> ... </span>". Pass
+ # each '#' through for extra paranoia.
+ %([.nowrap]###{line.gsub('#', '+++#+++')}##)
+ elsif parent.document.backend == 'manpage'
+ # Replace spaces with non-breaking spaces ('&#160;'), then make
+ # bold markup unconstrained ('*' -> '**'). For now we naively
+ # assume that bolds are always constrained (that is, we only
+ # have single '*'s). We *should* be able to do this properly
+ # with a regex, but for some reason
+ # gsub(/([^*])\*([^*])/, '\1**\2')
+ # doesn't match the first asterisk in "*--extcap-interface*=<interface>"
+ %(#{line.gsub(' ', '&#160;').gsub('*', '**')})
+ else
+ line
+ end
+ }
+ # STDERR.puts(nowrap_lines)
+ create_paragraph parent, nowrap_lines, attrs
+ end
+end
diff --git a/doc/asciidoctor-macros/manarg-block/sample.adoc b/doc/asciidoctor-macros/manarg-block/sample.adoc
new file mode 100644
index 00000000..5b4a4019
--- /dev/null
+++ b/doc/asciidoctor-macros/manarg-block/sample.adoc
@@ -0,0 +1,19 @@
+= androiddump(1)
+:doctype: manpage
+
+== NAME
+
+sample - Sample man page
+
+== SYNOPSIS
+
+[manarg]
+*androiddump*
+*--mandatory-argument
+[ *--optional-argument* ]
+*--complex-mandatory*=<argument>
+[ *--complex-optional*=<argument> ]
+
+== DESCRIPTION
+
+Sample man page.