mirror of https://github.com/freeCodeCamp/devdocs
parent
eca9d7ef09
commit
716fc26af1
@ -0,0 +1,4 @@
|
|||||||
|
._terraform {
|
||||||
|
@extend %simple;
|
||||||
|
.note, .alert { @extend %note; }
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
module Docs
|
||||||
|
class Terraform
|
||||||
|
class CleanHtmlFilter < Filter
|
||||||
|
def call
|
||||||
|
@doc = at_css('#inner')
|
||||||
|
|
||||||
|
css('hr', 'a.anchor').remove
|
||||||
|
|
||||||
|
css('.alert').each do |node|
|
||||||
|
node.name = 'blockquote'
|
||||||
|
end
|
||||||
|
|
||||||
|
css('pre').each do |node|
|
||||||
|
if language = node['class'][/(json|shell|ruby)/, 1]
|
||||||
|
node['data-language'] = language
|
||||||
|
end
|
||||||
|
# HCL isn't currently supported by Prism, Ruby syntax does an acceptable job for now
|
||||||
|
if language = node['class'][/(hcl)/, 1]
|
||||||
|
node['data-language'] = 'ruby'
|
||||||
|
end
|
||||||
|
node.content = node.content
|
||||||
|
end
|
||||||
|
|
||||||
|
doc
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,76 @@
|
|||||||
|
module Docs
|
||||||
|
class Terraform
|
||||||
|
class EntriesFilter < Docs::EntriesFilter
|
||||||
|
|
||||||
|
# Some providers have non-trivial mappings between the directory they live in and their name
|
||||||
|
# Anything *not* in this list will be capitalized instead.
|
||||||
|
PROVIDER_NAME_MAP = {
|
||||||
|
'aws' => 'AWS',
|
||||||
|
'azure' => 'Azure (Legacy)',
|
||||||
|
'azurerm' => 'Azure',
|
||||||
|
'centurylinkcloud' => 'CenturyLinkCloud',
|
||||||
|
'cloudscale' => 'CloudScale.ch',
|
||||||
|
'cloudstack' => 'CloudStack',
|
||||||
|
'dme' => 'DNSMadeEasy',
|
||||||
|
'dns' => 'DNS',
|
||||||
|
'dnsimple' => 'DNSimple',
|
||||||
|
'do' => 'DigitalOcean',
|
||||||
|
'github' => 'GitHub',
|
||||||
|
'google' => 'Google Cloud',
|
||||||
|
'http' => 'HTTP',
|
||||||
|
'mysql' => 'MySQL',
|
||||||
|
'newrelic' => 'New Relic',
|
||||||
|
'oneandone' => '1&1',
|
||||||
|
'opentelekomcloud' => 'OpenTelekomCloud',
|
||||||
|
'opsgenie' => 'OpsGenie',
|
||||||
|
'opc' => 'Oracle Public Cloud',
|
||||||
|
'oraclepaas' => 'Oracle Cloud Platform',
|
||||||
|
'ovh' => 'OVH',
|
||||||
|
'pagerduty' => 'PagerDuty',
|
||||||
|
'panos' => 'Palo Alto Networks',
|
||||||
|
'postgresql' => 'PostgreSQL',
|
||||||
|
'powerdns' => 'PowerDNS',
|
||||||
|
'profitbricks' => 'ProfitBricks',
|
||||||
|
'rabbitmq' => 'RabbitMQ',
|
||||||
|
'softlayer' => 'SoftLayer',
|
||||||
|
'statuscake' => 'StatusCake',
|
||||||
|
'tls' => 'TLS',
|
||||||
|
'ultradns' => 'UltraDNS',
|
||||||
|
'vcd' => 'VMware vCloud Director',
|
||||||
|
'nsxt' => 'VMware NSX-T',
|
||||||
|
'vsphere' => 'VMware vSphere',
|
||||||
|
}
|
||||||
|
|
||||||
|
# Some providers have a lot (> 100) entries, which makes browsing them unwieldy.
|
||||||
|
# Any present in the list below will have an extra set of types added, breaking the pages out into the different
|
||||||
|
# products they offer.
|
||||||
|
LARGE_PROVIDERS = {
|
||||||
|
"aws" => true,
|
||||||
|
"azurerm" => true,
|
||||||
|
"google" => true,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def get_name
|
||||||
|
name ||= at_css('#inner h1').content
|
||||||
|
name.remove! "» "
|
||||||
|
name.remove! "Data Source: "
|
||||||
|
name
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_type
|
||||||
|
category, subcategory, subfolder, page = *slug.split('/')
|
||||||
|
provider = page ? subcategory : category
|
||||||
|
nice_provider = PROVIDER_NAME_MAP[provider] || provider.capitalize
|
||||||
|
|
||||||
|
if LARGE_PROVIDERS[provider]
|
||||||
|
category_node = at_css('ul > li > ul > li.active')
|
||||||
|
parent_node = category_node.parent.previous_element if category_node
|
||||||
|
nice_provider = nice_provider + ": #{parent_node.content}" if category_node
|
||||||
|
end
|
||||||
|
|
||||||
|
nice_provider
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,23 @@
|
|||||||
|
module Docs
|
||||||
|
class Terraform < UrlScraper
|
||||||
|
self.name = 'Terraform'
|
||||||
|
self.type = 'terraform'
|
||||||
|
self.release = '0.11.7'
|
||||||
|
self.base_url = 'https://www.terraform.io/docs/'
|
||||||
|
# self.dir = '/mnt/c/Users/Doug/Code/terraform-docs/www.terraform.io/docs'
|
||||||
|
self.root_path = 'index.html'
|
||||||
|
self.links = {
|
||||||
|
home: 'https://www.terraform.io/',
|
||||||
|
code: 'https://github.com/hashicorp/terraform'
|
||||||
|
}
|
||||||
|
|
||||||
|
html_filters.push 'terraform/entries', 'terraform/clean_html'
|
||||||
|
|
||||||
|
options[:skip_patterns] = [/enterprise/, /enterprise-legacy/]
|
||||||
|
|
||||||
|
options[:attribution] = <<-HTML
|
||||||
|
Copyright © 2018 HashiCorp</br>
|
||||||
|
Licensed under the MPL 2.0 License.
|
||||||
|
HTML
|
||||||
|
end
|
||||||
|
end
|
After Width: | Height: | Size: 806 B |
After Width: | Height: | Size: 1.1 KiB |
Loading…
Reference in new issue