From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.0 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 447231F437; Tue, 24 Jan 2017 23:19:14 +0000 (UTC) Date: Tue, 24 Jan 2017 23:19:14 +0000 From: Eric Wong To: Daniel Ferreira Cc: olddoc-public@80x24.org, ruby-talk@ruby-lang.org Subject: Re: [ANN] olddoc 1.4.0 - old-fashioned RDoc generator Message-ID: <20170124231913.GA29936@whir> References: <20170122215451.GA6054@dcvr> <20170123125038.GA490@starla> <20170123150105.GA7761@starla> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: List-Id: Daniel Ferreira wrote: > Hi Eric, > > I'm removing the documentation at each generation. > > Replication steps: > > 1. `$ rdoc` > 2. `gem install olddoc` > 3. `$ rm -rf doc` > 4. `$ rdoc` # => Style has changed Thanks. I was able to reproduce the problem and come up with a patch below which seems to fix the problem: ----------------8<--------------- Subject: [PATCH] oldweb: apply LessHtml monkey patch late, at runtime RDoc will load oldweb.rb regardless of whether it is used or not, so do not apply our monkey patching to reduce HTML generated by RDoc::Markup::ToHtml until we initialize Oldweb. Thanks to Daniel Ferreira for noticing this in [ruby-talk:437390]: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/437390 This still assumes any Ruby VM instance (currently synonymous with an OS process in Ruby 2.4) will only use one RDoc template in its lifetime and not switch between them. More work will be required to support switching between `oldweb' and other templates within the same VM instance, but that's not a priority for me. --- lib/oldweb.rb | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/oldweb.rb b/lib/oldweb.rb index a5da1cc..95b7171 100644 --- a/lib/oldweb.rb +++ b/lib/oldweb.rb @@ -31,6 +31,8 @@ class Oldweb RDoc::Text::TO_HTML_CHARACTERS[Encoding::UTF_8] = RDoc::Text::TO_HTML_CHARACTERS[Encoding::ASCII] + less_html! + @store = store @options = options @base_dir = Pathname.pwd.expand_path @@ -298,12 +300,13 @@ class Oldweb @res << "" end end -end -# :stopdoc: -class RDoc::Markup::ToHtml # :nodoc: - remove_method :accept_heading - remove_method :accept_verbatim - include Oldweb::LessHtml + def less_html! # :nodoc: + klass = RDoc::Markup::ToHtml + return if klass.include?(Oldweb::LessHtml) + klass.__send__(:remove_method, :accept_heading) + klass.__send__(:remove_method, :accept_verbatim) + klass.__send__(:include, Oldweb::LessHtml) + end end # :startdoc: --- > > I'm not sure what you mean by suffix, though. > > Suffix would be: > > `$ rdoc -f olddoc-light` > `$ rdoc -f olddoc-dark` Yeah, you're missing the point as Ryan alluded to in [ruby-talk:437398] <8A8AAC2B-1615-4B26-939D-B118495F1BCF@zenspider.com> I do not believe people should choose colors or fonts for other people, only themselves. I consider user interface elements such as colors and fonts a personal preference for each and every individual. oldweb tries to get out-of-the-way as much as possible. So yeah, "light" and "dark" don't make sense for a webmaster or designer to decide, and some mainstream browsers even have plugins to support per-site color schemes via CSS. > `$ rdoc -f olddoc-modern` LOL > Using `oldweb` demands extra overhead which in this case is avoidable IMO. *shrug* Naming things is one of the most difficult subjects in computer science :)