Add the trio documentation (#1002)

Add the trio documentation

Co-authored-by: Jasper van Merle <jaspervmerle@gmail.com>
pull/1066/head
Jasper van Merle 6 years ago committed by GitHub
commit 5e23f645b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -721,6 +721,11 @@ credits = [
'2018 HashiCorp',
'MPL',
'https://raw.githubusercontent.com/hashicorp/terraform-website/master/LICENSE.md'
], [
'Trio',
'2017 Nathaniel J. Smith',
'MIT',
'https://raw.githubusercontent.com/python-trio/trio/master/LICENSE.MIT'
], [
'Twig',
'2009-2018 The Twig Team',

@ -0,0 +1,58 @@
module Docs
class Trio
class CleanHtmlFilter < Filter
def call
@doc = at_css('div[role="main"]')
css('.section, [itemprop=articleBody]').each do |node|
node.replace node.children
end
css('.headerlink').remove
css('dt').each do |node|
node.name = 'h3'
if node.parent.classes.include? 'field-list'
node.name = 'h4'
node['style'] = 'margin: 0'
if node.text == 'Parameters' or node.text == 'Raises'
node.next_element.css('strong').each do |n|
n.name = 'code'
end
end
else
code = doc.document.create_element 'code'
if em = node.at_css('.property')
code.inner_html = "<em>#{em.text.strip}</em> "
em.remove
end
code.inner_html += node.inner_text.strip
node.inner_html = code
end
end
css('pre').each do |node|
node.content = node.content.strip
classes = node.parent.parent.classes
if classes.include? 'highlight-python3'
node['data-language'] = 'python'
end
node.parent.parent.replace(node)
end
css('.admonition').each do |node|
node.name = 'blockquote'
node.at_css('.admonition-title').name = 'h4'
end
doc
end
end
end
end

@ -0,0 +1,48 @@
module Docs
class Trio
class EntriesFilter < Docs::EntriesFilter
def get_name
at_css('h1').text[0...-1]
end
def get_type
at_css('h1').text[0...-1]
end
def additional_entries
css('.descname').each_with_object [] do |node, entries|
name = node.text
if node.previous.classes.include? 'descclassname'
name = node.previous.text + name
end
name.strip!
dl = node.parent.parent
if dl.classes.include?('attribute') \
or dl.classes.include?('method') \
or dl.classes.include?('data')
parent = dl.parent.previous_element
cls = ''
if n = parent.at_css('.descclassname')
cls += n.text
end
if n = parent.at_css('.descname')
if n.text == "The nursery interface"
cls += "Nursery."
else
cls += n.text + '.'
end
end
name = cls + name
end
entries << [name, node.parent['id']]
end
end
end
end
end

@ -0,0 +1,31 @@
module Docs
class Trio < UrlScraper
self.type = 'simple'
self.release = '0.12.1'
self.base_url = 'https://trio.readthedocs.io/en/v0.12.1/'
self.root_path = 'index.html'
self.links = {
home: 'https://trio.readthedocs.io/',
code: 'https://github.com/python-trio/trio'
}
html_filters.push 'trio/entries', 'trio/clean_html'
options[:only_patterns] = [
/reference-core/,
/reference-io/,
/reference-testing/,
/reference-hazmat/,
]
options[:attribution] = <<-HTML
&copy; 2017 Nathaniel J. Smith<br>
Licensed under the MIT License.
HTML
def get_latest_version(opts)
doc = fetch_doc('https://trio.readthedocs.io/en/stable/', opts)
doc.at_css('.rst-other-versions a[href^="/en/v"]').content[1..-1]
end
end
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 794 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -0,0 +1 @@
https://github.com/python-trio/trio/blob/37de153f858e29df3a19db9fffcd0fb3f2308951/logo/logo-transparent-no-text.svg
Loading…
Cancel
Save