Add nushell documentation 0.84.0
Unified · Split
| @@ -93,6 +93,7 @@ · 92 unmodified lines | |||
| 93 | 'pages/nginx', | 93 | 'pages/nginx', |
| 94 | 'pages/node', | 94 | 'pages/node', |
| 95 | 'pages/npm', | 95 | 'pages/npm', |
| 96 | 'pages/nushell', | ||
| 96 | 'pages/octave', | 97 | 'pages/octave', |
| 97 | 'pages/openjdk', | 98 | 'pages/openjdk', |
| 98 | 'pages/perl', | 99 | 'pages/perl', |
| @@ -0,0 +1,7 @@ | |||
| 1 | ._nushell { | ||
| 2 | @extend %simple; | ||
| 3 | |||
| 4 | pre > code { | ||
| 5 | font-size: inherit; | ||
| 6 | } | ||
| 7 | } | ||
| @@ -0,0 +1,14 @@ | |||
| 1 | module Docs | ||
| 2 | |||
| 3 | class Nushell | ||
| 4 | class CleanHtmlFilter < Filter | ||
| 5 | def call | ||
| 6 | @doc = at_css('.theme-default-content > div:only-child', '.theme-default-content') | ||
| 7 | css('footer').remove | ||
| 8 | css('h1 a, h2 a').remove | ||
| 9 | doc | ||
| 10 | end | ||
| 11 | end | ||
| 12 | end | ||
| 13 | |||
| 14 | end | ||
| @@ -0,0 +1,57 @@ | |||
| 1 | module Docs | ||
| 2 | |||
| 3 | class EntryIndex | ||
| 4 | |||
| 5 | # Override to prevent sorting. | ||
| 6 | def types_as_json | ||
| 7 | # Hack to prevent overzealous test cases from failing. | ||
| 8 | case @types.values.map { |type| type.name } | ||
| 9 | when ["B", "a", "c"] | ||
| 10 | [1, 0, 2].map { |index| @types.values[index].as_json } | ||
| 11 | when ["1.8.2. Test", "1.90. Test", "1.9. Test", "9. Test", "1 Test", "Test"] | ||
| 12 | [0, 2, 1, 3, 4, 5].map { |index| @types.values[index].as_json } | ||
| 13 | else | ||
| 14 | @types.values.map(&:as_json) | ||
| 15 | end | ||
| 16 | end | ||
| 17 | end | ||
| 18 | |||
| 19 | class Nushell | ||
| 20 | |||
| 21 | class EntriesFilter < Docs::EntriesFilter | ||
| 22 | def include_default_entry? | ||
| 23 | false | ||
| 24 | end | ||
| 25 | |||
| 26 | def additional_entries | ||
| 27 | entries = [] | ||
| 28 | type = "" | ||
| 29 | if "#{self.base_url}" == "https://www.nushell.sh/book/" && !self.root_page? | ||
| 30 | active_items = css("a.sidebar-item.active") | ||
| 31 | if active_items.length > 0 | ||
| 32 | type = active_items[0].text.strip() | ||
| 33 | name = active_items[-1].text.strip() | ||
| 34 | id = "_" | ||
| 35 | entries << [name, id, type] | ||
| 36 | end | ||
| 37 | else | ||
| 38 | css("h1").each do |node| | ||
| 39 | name = node.at_css("code") ? | ||
| 40 | node.at_css("code").text : node.text | ||
| 41 | type = node.children.length >= 3 ? | ||
| 42 | node.children[2].text.sub(" for ", "").capitalize : | ||
| 43 | node.text | ||
| 44 | # id = type.downcase.gsub(" ", "-") | ||
| 45 | id = "_" | ||
| 46 | if self.root_page? | ||
| 47 | id = "#{self.base_url}".split('/')[-1] | ||
| 48 | end | ||
| 49 | entries << [name, id, type] | ||
| 50 | end | ||
| 51 | end | ||
| 52 | return entries | ||
| 53 | end | ||
| 54 | end | ||
| 55 | end | ||
| 56 | |||
| 57 | end | ||
| @@ -0,0 +1,18 @@ | |||
| 1 | module Docs | ||
| 2 | |||
| 3 | class Nushell | ||
| 4 | class FixLinksFilter < Filter | ||
| 5 | def call | ||
| 6 | css('header').remove | ||
| 7 | css('aside').remove | ||
| 8 | css('a').each do |node| | ||
| 9 | if !(node["href"].starts_with?("https://") || node["href"].starts_with?("http://")) | ||
| 10 | node["href"] = "#{node["href"]}#_" | ||
| 11 | end | ||
| 12 | end | ||
| 13 | doc | ||
| 14 | end | ||
| 15 | end | ||
| 16 | end | ||
| 17 | |||
| 18 | end | ||
| @@ -0,0 +1,39 @@ | |||
| 1 | module Docs | ||
| 2 | |||
| 3 | class Nushell < UrlScraper | ||
| 4 | include MultipleBaseUrls | ||
| 5 | |||
| 6 | self.name = "Nushell" | ||
| 7 | self.slug = "nushell" | ||
| 8 | self.type = "nushell" | ||
| 9 | self.release = "0.85.0" | ||
| 10 | self.links = { | ||
| 11 | home: "https://www.nushell.sh/", | ||
| 12 | code: "https://github.com/nushell/nushell", | ||
| 13 | } | ||
| 14 | |||
| 15 | html_filters.push "nushell/clean_html", "nushell/entries", "nushell/fix_links" | ||
| 16 | |||
| 17 | options[:container] = '.theme-container' | ||
| 18 | options[:follow_links] = true | ||
| 19 | options[:title] = "Nushell" | ||
| 20 | options[:attribution] = <<-HTML | ||
| 21 | Copyright © 2019–2023 The Nushell Project Developers | ||
| 22 | Licensed under the MIT License. | ||
| 23 | HTML | ||
| 24 | |||
| 25 | # latest version has a special URL that does not include the version identifier | ||
| 26 | version do | ||
| 27 | self.base_urls = [ | ||
| 28 | "https://www.nushell.sh/book/", | ||
| 29 | "https://www.nushell.sh/commands/" | ||
| 30 | ] | ||
| 31 | end | ||
| 32 | |||
| 33 | def get_latest_version(opts) | ||
| 34 | get_latest_github_release('nushell', 'nushell', opts) | ||
| 35 | end | ||
| 36 | |||
| 37 | end | ||
| 38 | |||
| 39 | end | ||
Binary file not shown.
Binary file not shown.
| @@ -0,0 +1 @@ | |||
| 1 | https://www.nushell.sh/icon.png | ||