Module: Giblish
- Defined in:
- lib/giblish/docid.rb,
lib/giblish.rb,
lib/giblish/core.rb,
lib/giblish/utils.rb,
lib/giblish/gititf.rb,
lib/giblish/docinfo.rb,
lib/giblish/version.rb,
lib/giblish/buildgraph.rb,
lib/giblish/buildindex.rb,
lib/giblish/application.rb,
lib/giblish/docconverter.rb,
lib/giblish/indexheadings.rb
Overview
put the indexing in the giblish namespace
Defined Under Namespace
Classes: Application, AsciidoctorLogger, BasicIndexBuilder, DeploymentPaths, DocConverter, DocInfo, DocidCollector, FileTreeConverter, GitGraphBuilderGraphviz, GitItf, GitRepoConverter, GitRepoIndexBuilder, GitSummaryIndexBuilder, GraphBuilderGraphviz, HtmlConverter, IndexHeadings, PathManager, PdfConverter, SimpleIndexBuilder
Constant Summary collapse
- VERSION =
"0.8.2".freeze
Class Method Summary collapse
- .application ⇒ Object
-
.generate_search_box_html(css, cgi_path, opts) ⇒ Object
returns raw html that displays a search box to let the user acces the text search functionality.
-
.process_header_lines(lines) ⇒ Object
Helper method that provides the user with a way of processing only the lines within the asciidoc header block.
-
.process_header_lines_from_file(path) ⇒ Object
Helper method that provides the user with a way of processing only the lines within the asciidoc header block.
-
.register_docid_extension ⇒ Object
Helper method to register the docid preprocessor extension with the asciidoctor engine.
-
.register_index_heading_extension ⇒ Object
Helper method to register the docid preprocessor extension with the asciidoctor engine.
-
.to_valid_id(input_str, id_prefix = "_", id_separator = "_") ⇒ Object
transforms strings to valid asciidoctor id strings.
-
.which(cmd) ⇒ Object
See stackoverflow.com/questions/2108727/which-in-ruby-checking-if-program-exists-in-path-from-ruby Cross-platform way of finding an executable in the $PATH.
-
.with_captured_stderr ⇒ Object
runs the supplied block but redirect stderr to a string returns the string containing stderr contents.
Class Method Details
.application ⇒ Object
14 15 16 |
# File 'lib/giblish.rb', line 14 def application @application ||= Giblish::Application.new end |
.generate_search_box_html(css, cgi_path, opts) ⇒ Object
returns raw html that displays a search box to let the user acces the text search functionality.
css - the name of the css file to use for the search result layout cgi_path - the (uri) path to a cgi script that implements the server side
functionality of searching the text
opts: :web_assets_top => string # the path to the ‘web_assets’ dir as seen when serving
the web server (eg www.mysite.com/blah/doc_root ->
web_assets_top shall be '/blah/doc_root')
:search_assets_top => string # the path to where the ‘heading.json’ file is located (
as seen from the local file system on the machine that
runs the search script)
403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 |
# File 'lib/giblish/utils.rb', line 403 def generate_search_box_html(css, cgi_path, opts) # Replace the button with the below to use a text-only version of the btn # <button id="search" type="submit">Search</button> <<~SEARCH_INFO ++++ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <form class="example" action="#{cgi_path}" style="margin:20px 0px 20px 0px;max-width:790px"> Search all documents: <input id="searchphrase" type="text" placeholder="Search.." name="searchphrase"/> <button id="search" type="submit"><i class="fa fa-search"></i></button> <br> <input id="ignorecase" type="checkbox" value="true" name="ignorecase" checked/> <label for="ignorecase">Ignore Case</label> <input id="useregexp" type="checkbox" value="true" name="useregexp"/> <label for="useregexp">Use Regexp</label> <input type="hidden" name="searchassetstop" value="#{opts[:search_assets_top]}"</input> <input type="hidden" name="webassetstop" value="#{opts[:web_assets_top]}"</input> #{%(<input type="hidden" name="css" value="#{css}"</input>) unless css.nil?} </form> ++++ SEARCH_INFO end |
.process_header_lines(lines) ⇒ Object
Helper method that provides the user with a way of processing only the lines within the asciidoc header block. The user must return nil to get the next line.
ex: process_header_lines(file_path) do |line|
if line == "Quack!"
puts "Donald!"
1
else
nil
end
end
322 323 324 325 326 327 328 329 330 331 |
# File 'lib/giblish/utils.rb', line 322 def process_header_lines(lines) state = "before_header" lines.each do |line| case state when "before_header" then (state = "in_header" if line =~ /^[=+]^.*$/ || yield(line)) when "in_header" then (state = "done" if line =~ /^\s*$/ || yield(line)) when "done" then break end end end |
.process_header_lines_from_file(path) ⇒ Object
Helper method that provides the user with a way of processing only the lines within the asciidoc header block. The user must return nil to get the next line.
ex: process_header_lines_from_file(file_path) do |line|
if line == "Quack!"
puts "Donald!"
1
else
nil
end
end
347 348 349 350 |
# File 'lib/giblish/utils.rb', line 347 def process_header_lines_from_file(path) lines = File.readlines(path) process_header_lines(lines, &Proc.new) end |
.register_docid_extension ⇒ Object
Helper method to register the docid preprocessor extension with the asciidoctor engine.
174 175 176 177 178 |
# File 'lib/giblish/docid.rb', line 174 def register_docid_extension Asciidoctor::Extensions.register do preprocessor DocidCollector end end |
.register_index_heading_extension ⇒ Object
Helper method to register the docid preprocessor extension with the asciidoctor engine.
244 245 246 247 248 |
# File 'lib/giblish/indexheadings.rb', line 244 def register_index_heading_extension Asciidoctor::Extensions.register do preprocessor IndexHeadings end end |
.to_valid_id(input_str, id_prefix = "_", id_separator = "_") ⇒ Object
transforms strings to valid asciidoctor id strings
366 367 368 369 370 |
# File 'lib/giblish/utils.rb', line 366 def to_valid_id(input_str, id_prefix = "_", id_separator = "_") id_str = input_str.strip.downcase.gsub(/[^a-z0-9]+/, id_separator) id_str = "#{id_prefix}#{id_str}" id_str.chomp(id_separator) end |
.which(cmd) ⇒ Object
See stackoverflow.com/questions/2108727/which-in-ruby-checking-if-program-exists-in-path-from-ruby Cross-platform way of finding an executable in the $PATH.
Ex
which('ruby') #=> /usr/bin/ruby
378 379 380 381 382 383 384 385 386 387 |
# File 'lib/giblish/utils.rb', line 378 def which(cmd) exts = ENV["PATHEXT"] ? ENV["PATHEXT"].split(";") : [""] ENV["PATH"].split(File::PATH_SEPARATOR).each do |path| exts.each do |ext| exe = File.join(path, "#{cmd}#{ext}") return exe if File.executable?(exe) && !File.directory?(exe) end end nil end |
.with_captured_stderr ⇒ Object
runs the supplied block but redirect stderr to a string returns the string containing stderr contents
355 356 357 358 359 360 361 362 |
# File 'lib/giblish/utils.rb', line 355 def with_captured_stderr old_stderr = $stderr $stderr = StringIO.new("", "w") yield $stderr.string ensure $stderr = old_stderr end |