diff --git a/assets/stylesheets/pages/_elisp.scss b/assets/stylesheets/pages/_elisp.scss index 3b366005..f8fbe580 100644 --- a/assets/stylesheets/pages/_elisp.scss +++ b/assets/stylesheets/pages/_elisp.scss @@ -1,9 +1,14 @@ ._elisp { - div > b { + dl > dt { @extend %block-label, %label-blue; } - div > b { - margin: 2% auto; + dl[compact] > dt { + background: none; + border-color: none; + line-height: normal; + margin: auto; + border: none; } + } diff --git a/lib/docs/filters/elisp/clean_html.rb b/lib/docs/filters/elisp/clean_html.rb index 7b4db744..7d173360 100644 --- a/lib/docs/filters/elisp/clean_html.rb +++ b/lib/docs/filters/elisp/clean_html.rb @@ -8,7 +8,7 @@ module Docs css('table ~ p').remove # remove "Detailed Node Listing" header - css('h3').remove + css('h2').remove # remove "Detailed Node Listing" table css('table')[1].remove @@ -21,10 +21,10 @@ module Docs end # remove navigation bar - css('.node').remove + css('.header').remove # Remove content in headers - css('h2', 'h3', 'h4', 'h5', 'h6').each do |node| + css('.chapter', '.section', '.subsection', '.subsubsection', '.appendix').each do |node| # remove numbers at the beginning of all headers node.content = node.content.slice(/[[:alpha:]]...*/) @@ -45,13 +45,10 @@ module Docs end # add id to each defun section that contains a functions, macro, etc. - css('.defun').each do |node| - node['id']= node.first_element_child.content - - # change all tags to , this helps pages style - functionName = node.first_element_child - arguments = functionName.next_sibling - arguments.parent= functionName + css('dl > dt').each do |node| + if !(node.parent.attribute('compact')) + node['id'] = node.at_css('strong').content + end end # remove br for style purposes diff --git a/lib/docs/filters/elisp/entries.rb b/lib/docs/filters/elisp/entries.rb index 4961e36d..9ccacb59 100644 --- a/lib/docs/filters/elisp/entries.rb +++ b/lib/docs/filters/elisp/entries.rb @@ -3,7 +3,7 @@ module Docs class EntriesFilter < Docs::EntriesFilter def get_name # remove numbers at the beginnig - name = at_css('h2', 'h3', 'h4', 'h5', 'h6').content.slice(/[[:alpha:]]...*/) + name = at_css('.chapter', '.section', '.subsection', '.subsubsection', '.appendix').content.slice(/[[:alpha:]]...*/) # remove 'Appendix' word name = name.sub(/Appendix.{2}/, '') if name.include?('Appendix') @@ -28,18 +28,20 @@ module Docs def additional_entries entries = [] - css('.defun').each do |node| - entry_type = 'Builtin Functions' if node.content.include?('Function') - entry_type = 'Builtin Macros' if node.content.include?('Macro') - entry_type = 'Builtin Variables' if node.content.include?('Variable') - entry_type = 'Builtin User Options' if node.content.include?('User Option') - entry_type = 'Builtin Special Forms' if node.content.include?('Special Form') - entry_type = 'Builtin Commands' if node.content.include?('Command') - entry_type = 'Builtin Constants' if node.content.include?('Constant') - - entry_name = node.first_element_child.content - entry_path = slug + '#' + entry_name - entries << [entry_name, entry_path.downcase, entry_type] + css('dl > dt').each do |node| + if !(node.parent.attribute('compact')) + entry_type = 'Builtin Functions' if node.content.include?('Function') + entry_type = 'Builtin Macros' if node.content.include?('Macro') + entry_type = 'Builtin Variables' if node.content.include?('Variable') + entry_type = 'Builtin User Options' if node.content.include?('User Option') + entry_type = 'Builtin Special Forms' if node.content.include?('Special Form') + entry_type = 'Builtin Commands' if node.content.include?('Command') + entry_type = 'Builtin Constants' if node.content.include?('Constant') + + entry_name = node.at_css('strong').content + entry_path = slug + '#' + entry_name + entries << [entry_name, entry_path.downcase, entry_type] + end end entries diff --git a/lib/docs/scrapers/elisp.rb b/lib/docs/scrapers/elisp.rb index 264ba6f5..70702945 100644 --- a/lib/docs/scrapers/elisp.rb +++ b/lib/docs/scrapers/elisp.rb @@ -1,7 +1,7 @@ module Docs class Elisp < UrlScraper self.type = 'elisp' - self.release = '26.3' + self.release = '27.1' self.base_url= 'https://www.gnu.org/software/emacs/manual/html_node/elisp/' self.root_path = 'index.html' self.links = {