Skip to content

Commit bc77916

Browse files
authored
Merge pull request #2500 from dorimon-1/vertx
Add vertx docs
2 parents c6b1fd0 + e6d8941 commit bc77916

File tree

7 files changed

+133
-0
lines changed

7 files changed

+133
-0
lines changed

assets/javascripts/news.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
[
2+
[
3+
"2025-05-28",
4+
"New documentation: <a href=\"/vertx/\">Vert.x</a>"
5+
],
26
[
37
"2025-02-23",
48
"New documentation: <a href=\"/threejs/\">Three.js</a>"

lib/docs/filters/vertx/clean_html.rb

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
module Docs
2+
class Vertx
3+
class CleanHtmlFilter < Filter
4+
def call
5+
css('footer', 'hr', 'header', 'nav', '.navbar', '.topbar', '.bg-bg-warning').remove
6+
xpath('//*[@id="docs-layout"]/div/div[3]').remove
7+
xpath('//*[@id="docs-layout"]/div/div[1]').remove
8+
xpath('//main/div[last()]').remove
9+
xpath('//main/div[1]').remove
10+
css('#changelog').remove if root_page?
11+
12+
# Set id attributes on <h3> instead of an empty <a>
13+
css('h3').each do |node|
14+
anchor = node.at_css('a')
15+
node['id'] = anchor['id'] if anchor && anchor['id']
16+
end
17+
18+
# Make proper table headers
19+
css('td.header').each do |node|
20+
node.name = 'th'
21+
end
22+
23+
# Remove code highlighting
24+
css('pre').each do |node|
25+
node['data-language'] = node.at_css('code')['data-lang'] if node.at_css('code')
26+
node.content = node.content
27+
end
28+
29+
# ❗ Skip <img> tags with data: URIs
30+
css('img').each do |img|
31+
src = img['src']
32+
img.remove if src&.start_with?('data:')
33+
end
34+
35+
doc
36+
end
37+
end
38+
end
39+
end
40+

lib/docs/filters/vertx/entries.rb

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
module Docs
2+
class Vertx
3+
class EntriesFilter < Docs::EntriesFilter
4+
# Determines the default name of the page entry
5+
def get_name
6+
node = at_css('h1')
7+
return nil unless node
8+
9+
result = node.content.strip
10+
result << ' event' if type == 'Events'
11+
result << '()' if node['class'].to_s.include?('function')
12+
result
13+
end
14+
15+
# Determines the type of the default entry (used for sidebar grouping)
16+
def get_type
17+
return nil if root_page?
18+
19+
node = at_xpath('/html/body/div/div/div[2]/main/div[1]/div[1]')
20+
node ? node.text.strip : 'Miscellaneous'
21+
end
22+
23+
# Returns additional entries from subheadings (usually <h2>)
24+
def additional_entries
25+
# return [] if root_page?
26+
#
27+
# css('h2').map do |node|
28+
# name = node.content.strip
29+
# id = node['id']
30+
# [name, id, type]
31+
# end
32+
[]
33+
end
34+
35+
# Determines whether to include the default entry for the page
36+
def include_default_entry?
37+
!at_css('.obsolete')
38+
end
39+
end
40+
end
41+
end
42+

lib/docs/scrapers/vertx.rb

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
module Docs
2+
class Vertx < UrlScraper
3+
self.name = 'Vert.x'
4+
self.slug = 'vertx'
5+
self.type = 'vertx'
6+
self.links = {
7+
home: 'http://vertx.io',
8+
code: 'https://github.com/eclipse-vertx/vert.x'
9+
}
10+
11+
html_filters.push 'vertx/entries', 'vertx/clean_html'
12+
13+
options[:attribution] = <<-HTML
14+
© 2025 Eclipse Vert.x™</br>
15+
Eclipse Vert.x™ is open source and dual-licensed under the Eclipse Public License 2.0 and the Apache License 2.0.</br>
16+
Website design by Michel Krämer.
17+
HTML
18+
19+
options[:skip_patterns] = [
20+
/api/,
21+
/5.0.0/,
22+
/apidocs/,
23+
/blog/,
24+
]
25+
26+
version '5' do
27+
self.release = '5.0.0'
28+
self.base_url = "https://vertx.io/docs/"
29+
end
30+
31+
version '4' do
32+
self.release = '4.5.15'
33+
self.base_url = "https://vertx.io/docs/#{self.release}"
34+
end
35+
36+
version '3' do
37+
self.release = '3.9.16'
38+
self.base_url = "https://vertx.io/docs/#{self.release}"
39+
end
40+
41+
def get_latest_version(opts)
42+
doc = fetch_doc('https://repo1.maven.org/maven2/io/vertx/vertx-stack-manager/maven-metadata.xml', opts)
43+
doc.css('version')[-1].text
44+
end
45+
end
46+
end

public/icons/docs/vertx/16.png

855 Bytes
Loading
2.03 KB
Loading

public/icons/docs/vertx/SOURCE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
https://avatars.githubusercontent.com/u/8124623?s=200&v=4

0 commit comments

Comments
 (0)