REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 4.20 KB
Close
/proc/thread-self/root/opt/alt/ruby40/share/gems/gems/rdoc-7.0.4/lib/rdoc/generator/aliki.rb
Text
Base64
# frozen_string_literal: true require 'uri' ## # Aliki theme for RDoc documentation # # Author: Stan Lo # class RDoc::Generator::Aliki < RDoc::Generator::Darkfish RDoc::RDoc.add_generator self def initialize(store, options) super aliki_template_dir = File.expand_path(File.join(__dir__, 'template', 'aliki')) @template_dir = Pathname.new(aliki_template_dir) end ## # Generate documentation. Overrides Darkfish to use Aliki's own search index # instead of the JsonIndex generator. def generate setup write_style_sheet generate_index generate_class_files generate_file_files generate_table_of_contents write_search_index copy_static rescue => e debug_msg "%s: %s\n %s" % [ e.class.name, e.message, e.backtrace.join("\n ") ] raise end ## # Copy only the static assets required by the Aliki theme. Unlike Darkfish we # don't ship embedded fonts or image sprites, so limit the asset list to keep # generated documentation lightweight. def write_style_sheet debug_msg "Copying Aliki static files" options = { verbose: $DEBUG_RDOC, noop: @dry_run } install_rdoc_static_file @template_dir + 'css/rdoc.css', "./css/rdoc.css", options unless @options.template_stylesheets.empty? FileUtils.cp @options.template_stylesheets, '.', **options end Dir[(@template_dir + 'js/**/*').to_s].each do |path| next if File.directory?(path) next if File.basename(path).start_with?('.') dst = Pathname.new(path).relative_path_from(@template_dir) install_rdoc_static_file @template_dir + path, dst, options end end ## # Build a search index array for Aliki's searcher. def build_search_index setup index = [] @classes.each do |klass| next unless klass.display? index << build_class_module_entry(klass) klass.constants.each do |const| next unless const.display? index << build_constant_entry(const, klass) end end @methods.each do |method| next unless method.display? index << build_method_entry(method) end index end ## # Write the search index as a JavaScript file # Format: var search_data = { index: [...] } # # We still write to a .js instead of a .json because loading a JSON file triggers CORS check in browsers. # And if we simply inspect the generated pages using file://, which is often the case due to lack of the server mode, # the JSON file will be blocked by the browser. def write_search_index debug_msg "Writing Aliki search index" index = build_search_index FileUtils.mkdir_p 'js' unless @dry_run search_index_path = 'js/search_data.js' return if @dry_run data = { index: index } File.write search_index_path, "var search_data = #{JSON.generate(data)};" end ## # Resolves a URL for use in templates. Absolute URLs are returned unchanged. # Relative URLs are prefixed with rel_prefix to ensure they resolve correctly from any page. def resolve_url(rel_prefix, url) uri = URI.parse(url) if uri.absolute? url else "#{rel_prefix}/#{url}" end rescue URI::InvalidURIError "#{rel_prefix}/#{url}" end private def build_class_module_entry(klass) type = case klass when RDoc::NormalClass then 'class' when RDoc::NormalModule then 'module' else 'class' end entry = { name: klass.name, full_name: klass.full_name, type: type, path: klass.path } snippet = klass.search_snippet entry[:snippet] = snippet unless snippet.empty? entry end def build_method_entry(method) type = method.singleton ? 'class_method' : 'instance_method' entry = { name: method.name, full_name: method.full_name, type: type, path: method.path } snippet = method.search_snippet entry[:snippet] = snippet unless snippet.empty? entry end def build_constant_entry(const, parent) entry = { name: const.name, full_name: "#{parent.full_name}::#{const.name}", type: 'constant', path: parent.path } snippet = const.search_snippet entry[:snippet] = snippet unless snippet.empty? entry end end
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 2 × Files: 6
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
pot
DIR
-
drwxr-xr-x
2026-06-09 07:03:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
template
DIR
-
drwxr-xr-x
2026-06-09 07:03:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
aliki.rb
4.20 KB
lrw-r--r--
2026-05-21 12:15:23
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
darkfish.rb
21.83 KB
lrw-r--r--
2026-05-21 12:15:23
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
json_index.rb
7.33 KB
lrw-r--r--
2026-05-21 12:15:23
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
markup.rb
3.45 KB
lrw-r--r--
2026-05-21 12:15:23
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pot.rb
2.22 KB
lrw-r--r--
2026-05-21 12:15:23
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ri.rb
464 B
lrw-r--r--
2026-05-21 12:15:23
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).