Add documentation for gnuplot
Unified · Split
| @@ -311,6 +311,11 @@ credits = [ · 310 unmodified lines | ||
| 311 | 311 | 'Free Software Foundation', |
| 312 | 312 | 'GFDL', |
| 313 | 313 | 'https://www.gnu.org/licenses/fdl-1.3.en.html' |
| 314 | + ], [ | |
| 315 | + 'Gnuplot', | |
| 316 | + 'Copyright 1986 - 1993, 1998, 2004 Thomas Williams, Colin Kelley', | |
| 317 | + 'gnuplot license', | |
| 318 | + 'https://sourceforge.net/p/gnuplot/gnuplot-main/ci/master/tree/Copyright' | |
| 314 | 319 | ], [ |
| 315 | 320 | 'Go', |
| 316 | 321 | 'Google, Inc.', |
| @@ -60,6 +60,7 @@ · 59 unmodified lines | ||
| 60 | 60 | 'pages/github', |
| 61 | 61 | 'pages/go', |
| 62 | 62 | 'pages/graphite', |
| 63 | + 'pages/gnuplot', | |
| 63 | 64 | 'pages/haskell', |
| 64 | 65 | 'pages/jekyll', |
| 65 | 66 | 'pages/jquery', |
| @@ -0,0 +1,6 @@ | ||
| 1 | +._gnuplot { | |
| 2 | + .CENTER { | |
| 3 | + text-align: center; | |
| 4 | + } | |
| 5 | + @extend %simple; | |
| 6 | +} | |
| @@ -0,0 +1,61 @@ | ||
| 1 | +module Docs | |
| 2 | + class Gnuplot | |
| 3 | + class CleanHtmlFilter < Filter | |
| 4 | + def call | |
| 5 | + # remove some anchors nested inside headers: <hX><a name="">...</a></hX> | |
| 6 | + css('h1, h2, h3, h4, h5').each do |heading| | |
| 7 | + anchor = heading.css('a')[0] | |
| 8 | + heading['id'] = anchor['id'] || anchor['name'] | |
| 9 | + heading.content = anchor.content.strip | |
| 10 | + end | |
| 11 | + | |
| 12 | + # make the title on the front page which is in some weird tags | |
| 13 | + if root_page? | |
| 14 | + title = css('.HUGE')[0] | |
| 15 | + title.name = 'h1' | |
| 16 | + | |
| 17 | + subtitle = css('.XLARGE')[0] | |
| 18 | + title.content = title.content + ' − ' + subtitle.content | |
| 19 | + | |
| 20 | + css('> *:first-child')[0].before(title) | |
| 21 | + subtitle.remove | |
| 22 | + | |
| 23 | + css('p:contains("TableOfContents")').remove | |
| 24 | + end | |
| 25 | + | |
| 26 | + # remove nav, empty items, and any useless horizontal rules as well | |
| 27 | + # as the subsection table of contents (.ChildLinks) | |
| 28 | + css('.navigation').remove | |
| 29 | + css('#CHILD_LINKS, ul.ChildLinks').remove | |
| 30 | + css('hr').remove | |
| 31 | + # Anchors that use only names are some numerical IDs that latex2html distributes through the document | |
| 32 | + css('a[name]:not([href]):not([id])').remove | |
| 33 | + | |
| 34 | + # spacing | |
| 35 | + css('> div, p').each do |node| | |
| 36 | + node.remove if node.content.strip.empty? | |
| 37 | + end | |
| 38 | + | |
| 39 | + # links generated are of the form (NB: some might have been removed): | |
| 40 | + # <B>{text} (p. <A HREF="{target}"><IMG ALT="[*]" SRC="crossref.png"></A>)<A NAME="{anchor}"></A></B> | |
| 41 | + # transform to <b><a href="{target}>{text}</a></b> | |
| 42 | + css('b:contains(" (p. ")').each do |node| | |
| 43 | + text = node.content.gsub /\(p\. (\[\*\])?\)/, '' | |
| 44 | + | |
| 45 | + link = node.css('a[href]')[0] | |
| 46 | + if link | |
| 47 | + link.content = text.strip | |
| 48 | + | |
| 49 | + node.children.each do |child| | |
| 50 | + child.remove if child != link | |
| 51 | + end | |
| 52 | + else | |
| 53 | + node.content = text.strip | |
| 54 | + end | |
| 55 | + end | |
| 56 | + | |
| 57 | + doc | |
| 58 | + end | |
| 59 | + end | |
| 60 | + end | |
| 61 | +end | |
| @@ -0,0 +1,73 @@ | ||
| 1 | +module Docs | |
| 2 | + class Gnuplot | |
| 3 | + PROMOTE = {'Expressions' => nil, 'Linetypes, colors, and styles' => nil, 'Fit' => nil, 'Format' => nil, | |
| 4 | + 'Plot' => nil, 'Splot' => nil, 'Style' => 'Plot appearance', | |
| 5 | + 'Set-show' => 'Set / Show', 'Datafile' => nil, 'Key' => 'Legend'} | |
| 6 | + NOREPEAT = ['String constants, string variables, and string functions', 'Substitution and Command line macros'] | |
| 7 | + | |
| 8 | + class EntriesFilter < Docs::EntriesFilter | |
| 9 | + def initialize(*) | |
| 10 | + super | |
| 11 | + end | |
| 12 | + | |
| 13 | + def get_name | |
| 14 | + return 'Stats' if slug.downcase == 'stats_statistical_summary' | |
| 15 | + return css('h1')[0].content.strip | |
| 16 | + end | |
| 17 | + | |
| 18 | + def get_type | |
| 19 | + return (PROMOTE[name] || name) if PROMOTE.include? name | |
| 20 | + | |
| 21 | + parent = at_css('.navigation > b:contains("Up:")').next_element.content | |
| 22 | + return 'Using Gnuplot' if parent == 'Gnuplot' | |
| 23 | + return parent | |
| 24 | + end | |
| 25 | + | |
| 26 | + def include_default_entry? | |
| 27 | + !root_page? and slug.downcase != 'complete_list_terminals' #and !PROMOTE.include? name | |
| 28 | + end | |
| 29 | + | |
| 30 | + def additional_entries | |
| 31 | + return [] if root_page? | |
| 32 | + entries = [] | |
| 33 | + | |
| 34 | + if slug.downcase == 'complete_list_terminals' | |
| 35 | + list_stack = [[css('ul.ChildLinks'), '', nil]] | |
| 36 | + else | |
| 37 | + list_stack = [[css('ul.ChildLinks'), name, nil]] | |
| 38 | + end | |
| 39 | + | |
| 40 | + while !list_stack.empty? | |
| 41 | + list, name_, type_ = list_stack.pop | |
| 42 | + list.css('> li').each do |item| | |
| 43 | + | |
| 44 | + sublists = item.css('> ul') | |
| 45 | + link = item.css('> a, span') | |
| 46 | + | |
| 47 | + if link.empty? | |
| 48 | + item_name = name_ | |
| 49 | + else | |
| 50 | + item_name = link[0].text.strip | |
| 51 | + item_name = "#{name_} #{item_name}".strip unless PROMOTE.include? name_ or NOREPEAT.include? name_ | |
| 52 | + item_name = item_name.sub /^(\w+) \1/, '\1' | |
| 53 | + item_name = 'set style boxplot' if slug.downcase == 'set_show' and item_name == 'Boxplot' | |
| 54 | + | |
| 55 | + if PROMOTE.include? name_ | |
| 56 | + type_ = PROMOTE[name_] || name_ | |
| 57 | + end | |
| 58 | + | |
| 59 | + entries << [item_name, link[0]['href'].split('#')[1], type_] | |
| 60 | + end | |
| 61 | + | |
| 62 | + list_stack.push([sublists, item_name, type_]) unless sublists.empty? | |
| 63 | + end | |
| 64 | + end | |
| 65 | + | |
| 66 | + return entries | |
| 67 | + end | |
| 68 | + | |
| 69 | + private | |
| 70 | + | |
| 71 | + end | |
| 72 | + end | |
| 73 | +end | |
| @@ -0,0 +1,41 @@ | ||
| 1 | +module Docs | |
| 2 | + class Gnuplot < FileScraper | |
| 3 | + self.name = 'Gnuplot' | |
| 4 | + self.slug = 'gnuplot' | |
| 5 | + self.type = 'gnuplot' | |
| 6 | + self.links = { | |
| 7 | + home: 'http://gnuplot.sourceforge.net/' | |
| 8 | + } | |
| 9 | + | |
| 10 | + self.root_path = 'index.html' | |
| 11 | + | |
| 12 | + html_filters.push 'gnuplot/entries', 'gnuplot/clean_html' | |
| 13 | + | |
| 14 | + options[:skip_links] = false | |
| 15 | + | |
| 16 | + options[:skip] = %w( | |
| 17 | + Copyright.html | |
| 18 | + External_libraries.html | |
| 19 | + Known_limitations.html | |
| 20 | + Introduction.html | |
| 21 | + About_this_document.html | |
| 22 | + New_features.html | |
| 23 | + Differences_from_version_4.html | |
| 24 | + Seeking_assistance.html | |
| 25 | + Gnuplot.html | |
| 26 | + Deprecated_syntax.html | |
| 27 | + Demos_Online_Examples.html | |
| 28 | + Terminal_types.html | |
| 29 | + Plotting_styles.html | |
| 30 | + Commands.html | |
| 31 | + Contents.html | |
| 32 | + Bugs.html | |
| 33 | + ) | |
| 34 | + | |
| 35 | + options[:attribution] = <<-HTML | |
| 36 | + Copyright 1986 - 1993, 1998, 2004 Thomas Williams, Colin Kelley<br> | |
| 37 | + Distributed under the <a href="https://sourceforge.net/p/gnuplot/gnuplot-main/ci/master/tree/Copyright">gnuplot license</a> (rights to distribute modified versions are withheld). | |
| 38 | + HTML | |
| 39 | + | |
| 40 | + end | |
| 41 | +end | |
Binary file not shown.
Binary file not shown.
| @@ -0,0 +1 @@ | ||
| 1 | +https://sourceforge.net/p/gnuplot/gnuplot-main/ci/master/tree/demo/html/favicon.ico | |