[devdocsgjs/main: 1018/1867] [gnuplot] Dedent code blocks




commit 5adb7a7b32aa45551919d9d02177c4f3762a3fae
Author: Jed Fox <git twopointzero us>
Date:   Tue Jan 14 12:16:06 2020 -0500

    [gnuplot] Dedent code blocks

 lib/docs/filters/gnuplot/clean_html.rb | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
---
diff --git a/lib/docs/filters/gnuplot/clean_html.rb b/lib/docs/filters/gnuplot/clean_html.rb
index e612982b..c14cab59 100644
--- a/lib/docs/filters/gnuplot/clean_html.rb
+++ b/lib/docs/filters/gnuplot/clean_html.rb
@@ -36,6 +36,10 @@ module Docs
           node.remove if node.content.strip.empty?
         end
 
+        css('pre').each do |node|
+          node.content = dedent(node.content)
+        end
+
         # links generated are of the form (NB: some might have been removed):
         # <B>{text} (p.&nbsp;<A HREF="{target}"><IMG  ALT="[*]" SRC="crossref.png"></A>)<A 
NAME="{anchor}"></A></B>
         # transform to <b><a href="{target}>{text}</a></b>
@@ -56,6 +60,25 @@ module Docs
 
         doc
       end
+
+      private
+      def dedent string
+        lines = string.split "\n"
+        indent = lines.reduce Float::INFINITY do |least, line|
+          if line == ''
+            least
+          else
+            [least, line.index(line.lstrip)].min
+          end
+        end
+        if indent == Float::INFINITY
+          string
+        else
+          lines
+            .map { |line| line[indent..] || '' }
+            .join("\n")
+        end
+      end
     end
   end
 end


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]