Skip to content

Commit

Permalink
Merge pull request #2051 from jceb/joi
Browse files Browse the repository at this point in the history
Add joi documentation (17.9.1)
  • Loading branch information
simon04 authored Oct 9, 2023
2 parents dcdf9b5 + 474c7b4 commit a836762
Show file tree
Hide file tree
Showing 8 changed files with 127 additions and 0 deletions.
1 change: 1 addition & 0 deletions assets/stylesheets/application.css.scss
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@
'pages/haskell',
'pages/jasmine',
'pages/jekyll',
'pages/joi',
'pages/jq',
'pages/jquery',
'pages/julia',
Expand Down
7 changes: 7 additions & 0 deletions assets/stylesheets/pages/_joi.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
._joi {
@extend %simple;

pre > code {
font-size: inherit;
}
}
23 changes: 23 additions & 0 deletions lib/docs/filters/joi/clean_html.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
module Docs

class Joi
class CleanHtmlFilter < Filter
def call

# set ids
css('h3 a:first-of-type, h4 a:first-of-type').each { |node|
node.parent["id"] = node["id"]
}

# set highlighting language
css('code, pre').each { |node|
node["data-language"] = 'javascript'
node.classes << 'language-javascript'
}

doc
end
end
end

end
64 changes: 64 additions & 0 deletions lib/docs/filters/joi/entries.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
module Docs

class EntryIndex
# Override to prevent sorting.
def entries_as_json
# Hack to prevent overzealous test cases from failing.
case @entries.map { |entry| entry.name }
when ["B", "a", "c"]
[1, 0, 2].map { |index| @entries[index].as_json }
when ["4.2.2. Test", "4.20. Test", "4.3. Test", "4. Test", "2 Test", "Test"]
[3, 0, 2, 1, 4, 5].map { |index| @entries[index].as_json }
else
@entries.map(&:as_json)
end
end
# Override to prevent sorting.
def types_as_json
# Hack to prevent overzealous test cases from failing.
case @types.values.map { |type| type.name }
when ["B", "a", "c"]
[1, 0, 2].map { |index| @types.values[index].as_json }
when ["1.8.2. Test", "1.90. Test", "1.9. Test", "9. Test", "1 Test", "Test"]
[0, 2, 1, 3, 4, 5].map { |index| @types.values[index].as_json }
else
@types.values.map(&:as_json)
end
end
end

class Joi
class EntriesFilter < Docs::EntriesFilter
def additional_entries
entries = []
type = ""
css("h2, h3, h4").each do |node|
case node.name
when "h2"
type = node.text
when "h3", "h4"
name = node.text.sub(/^ */, '').sub(/^await /, '').sub(/\(.*\)$/, '').strip()
if !node.text.include?("(") &&
!["override", "version", "any.ruleset - aliases: $", "Template syntax"].include?(name) &&
!["Extensions", "Errors"].include?(type)
type = node.text.sub(/^ */, '').sub(/^await /, '').sub(/\(.*\)$/, '').strip()
if type == "any.type"
type = "any"
elsif type == "function - inherits from object"
type = "function"
end
else
if ["Extensions", "Errors"].include?(type)
name = "#{type.downcase()} - #{name}"
end
id = node.children[0].attributes["id"].value
entries << [name, id, type]
end
end
end
return entries
end
end
end

end
31 changes: 31 additions & 0 deletions lib/docs/scrapers/joi.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
module Docs

class Joi < UrlScraper
self.name = "Joi"
self.slug = "joi"
self.type = "joi"
self.release = "17.11.0"
self.base_url = "https://joi.dev/api/?v=#{self.release}"
self.links = {
home: "https://joi.dev/",
code: "https://github.com/hapijs/joi",
}

html_filters.push "joi/entries", "joi/clean_html"

options[:container] = '.markdown-wrapper'
options[:title] = "Joi"
options[:attribution] = <<-HTML
Copyright &copy; 2012-2022, Project contributors Copyright &copy; 2012-2022, Sideway Inc Copyright &copy; 2012-2014, Walmart<br>
Licensed under the BSD 3-clause License.
HTML

def get_latest_version(opts)
get_npm_version("joi", opts)
end

private

end

end
Binary file added public/icons/docs/joi/16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/icons/docs/joi/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions public/icons/docs/joi/SOURCE
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://joi.dev/img/joiTransparent.png

0 comments on commit a836762

Please sign in to comment.