@@ -48,10 +48,15 @@ module AsciidocUtils
4848 end
4949end
5050
51+ file "#{ $root} /ext/docs-resources/themes/riscv-pdf.yml" => "#{ $root} /.gitmodules" do |t |
52+ system "git submodule update --init ext/docs-resources"
53+ end
54+
5155rule %r{#{ $root} /gen/ext_pdf_doc/.*/pdf/.*_extension\. pdf} => proc { |tname |
5256 config_name = Pathname . new ( tname ) . relative_path_from ( "#{ $root} /gen/ext_pdf_doc" ) . to_s . split ( "/" ) [ 0 ]
5357 ext_name = Pathname . new ( tname ) . basename ( ".pdf" ) . to_s . split ( "_" ) [ 0 ..-2 ] . join ( "_" )
5458 [
59+ "#{ $root} /ext/docs-resources/themes/riscv-pdf.yml" ,
5560 "#{ $root} /gen/ext_pdf_doc/#{ config_name } /adoc/#{ ext_name } _extension.adoc"
5661 ]
5762} do |t |
@@ -60,7 +65,20 @@ rule %r{#{$root}/gen/ext_pdf_doc/.*/pdf/.*_extension\.pdf} => proc { |tname|
6065 adoc_file = "#{ $root} /gen/ext_pdf_doc/#{ config_name } /adoc/#{ ext_name } _extension.adoc"
6166
6267 FileUtils . mkdir_p File . dirname ( t . name )
63- Asciidoctor . convert_file ( adoc_file , backend : "pdf" , safe : :safe , to_file : t . name )
68+ sh [
69+ "asciidoctor-pdf" ,
70+ "-w" ,
71+ "-v" ,
72+ "-a toc" ,
73+ "-a compress" ,
74+ "-a pdf-theme=#{ $root} /ext/docs-resources/themes/riscv-pdf.yml" ,
75+ "-a pdf-fontsdir=#{ $root} /ext/docs-resources/fonts" ,
76+ "-a imagesdir=#{ $root} /ext/docs-resources/images" ,
77+ "-r asciidoctor-diagram" ,
78+ "-r #{ $root} /backends/ext_pdf_doc/idl_lexer" ,
79+ "-o #{ t . name } " ,
80+ adoc_file
81+ ] . join ( " " )
6482
6583 puts
6684 puts "Success!! File written to #{ t . name } "
@@ -102,6 +120,8 @@ rule %r{#{$root}/gen/ext_pdf_doc/.*/adoc/.*_extension\.adoc} => proc { |tname|
102120 erb . filename = template_path . to_s
103121
104122 ext = arch_def . extension ( ext_name )
123+ version_num = ENV . key? ( "EXT_VERSION" ) ? ENV [ "EXT_VERSION" ] : ext . versions . sort { |v | Gem ::Version . new ( v [ "version" ] ) } . last [ "version" ]
124+ ext_version = ext . versions . find { |v | v [ "version" ] == version_num }
105125 FileUtils . mkdir_p File . dirname ( t . name )
106126 File . write t . name , AsciidocUtils . resolve_links ( arch_def . find_replace_links ( erb . result ( binding ) ) )
107127end
@@ -120,6 +140,8 @@ namespace :gen do
120140
121141 desc <<~DESC
122142 Generate PDF documentation for :extension that is defined or overlayed in :cfg
143+
144+ The latest version will be used, but can be overloaded by setting the EXT_VERSION environment variable.
123145 DESC
124146 task :cfg_ext_pdf , [ :extension , :cfg ] do |_t , args |
125147 raise ArgumentError , "Missing required argument :extension" if args [ :extension ] . nil?
0 commit comments