Re: [PATCH 1/2] doc: add an option to have Asciidoctor build man pages directly
- From
Felipe Contreras <felipe.contreras@gmail.com>
- Date
- May 13, 2021, 22:37 UTC
- Message-ID
- <609daa1b108f3_42a0208de@natae.notmuch>
- In-Reply-To
- <CAN0heSqxFdiwF=--DaBFMqmvjMDY__hvs+u0vfc=GG1jcqZwoQ@mail.gmail.com>
Martin Ågren wrote:
Show 27 quoted lines
> On Wed, 12 May 2021 at 08:59, Jeff King <peff@peff.net> wrote: > > > We seem to have a problem with some escape codes. E.g.: > > > > - of nothing). The other file, git-add--interactive.perl, has 403 > > - lines added and 35 lines deleted if you commit what is in the > > - index, but working tree file has further modifications (one > > + of nothing). The other file, git-add--interactive.perl, > > + has 403 lines added and 35 lines deleted if you commit what is in > > + the index, but working tree file has further modifications (one > > > > and: > > > > - Added content is represented by lines beginning with "+". You can > > - prevent staging any addition lines by deleting them. > > + Added content is represented by lines beginning with "+". You > > + can prevent staging any addition lines by deleting them. > > > > which is a pretty bad regression. > > ASCIIDOC_EXTRA += -aplus='+' > ASCIIDOC_EXTRA += -alitdd='\--' > > seems to have done the trick for me at one point, but Todd had some > concerns [1] that it interacted badly with the html build, so we might > need to use a less aggressive choice of makefile variable to only affect > the direct manpage generation.
I don't see a point of complicating the Makefile more if we are already passing `-r ourstuff.rb`.
One advantage of Ruby is that everything can be overriden, so we can override the initialization of the Document object:
module Asciidoctor
class Document
alias old_initialize initialize
def initialize(data = nil, options = {})
attributes = options[:attributes]
case attributes['backend']
when 'manpage'
attributes['litdd'] = '\--'
attributes['plus'] = '+'
when 'xhtml5'
attributes['litdd'] = '--'
end
old_initialize(data, options)
end
end
endThis does the trick for me for both backends, and it simplifies the Makefile.
However, it's a hack for what seems to be a bug in asciidoctor. I'll report the issue.
Cheers.
-- Felipe Contreras