mirror of https://github.com/freeCodeCamp/devdocs
parent
acfa06aa28
commit
cb6a65e482
@ -0,0 +1,7 @@
|
|||||||
|
._joi {
|
||||||
|
@extend %simple;
|
||||||
|
|
||||||
|
pre > code {
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
}
|
@ -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
|
@ -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
|
@ -0,0 +1,37 @@
|
|||||||
|
module Docs
|
||||||
|
|
||||||
|
class Joi < UrlScraper
|
||||||
|
self.name = "Joi"
|
||||||
|
self.slug = "joi"
|
||||||
|
self.type = "joi"
|
||||||
|
self.release = "17.9.1"
|
||||||
|
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 © 2012-2022, Project contributors Copyright © 2012-2022, Sideway Inc Copyright © 2012-2014, Walmart
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||||
|
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||||
|
The names of any contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
|
||||||
|
HTML
|
||||||
|
|
||||||
|
def get_latest_version(opts)
|
||||||
|
get_npm_version("joi", opts)
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 3.6 KiB |
@ -0,0 +1 @@
|
|||||||
|
https://joi.dev/img/joiTransparent.png
|
Loading…
Reference in new issue