AUCF(AsciiDoc User Converter Framework)是一款基于Ruby的轉換器框架,可以將AsciiDoc文檔轉換為多種格式。其中,轉換為HTML格式是比較常見的需求。本文將介紹如何使用Ruby代碼將AUCF轉換為HTML格式。
require 'asciidoctor' require 'asciidoctor/converter/html5' require 'asciidoctor-diagram' $source_file = 'myfile.adoc' $output_dir = './output' Asciidoctor.convert_file( $source_file, to_file: File.join($output_dir, 'index.html'), safe: :unsafe, backend: 'html5', attributes: %w(source-highlighter=coderay imagesdir=./images) )
上述代碼中,我們首先引入了三個庫:Asciidoctor、Asciidoctor/converter/html5以及Asciidoctor-diagram。其中,Asciidoctor是AUCF的核心庫,提供了將Asciidoc格式轉換為HTML、PDF、EPub等多種格式的功能。Asciidoctor/converter/html5則是Asciidoctor的HTML轉換器,能夠將生成的HTML代碼轉化為符合HTML5標準的格式。Asciidoctor-diagram是一個Asciidoctor的附加插件,支持在Asciidoc中添加流程圖、ER圖、UML圖等多種圖形,能夠提供更加豐富的文檔表達效果。
接著,我們定義了兩個全局變量$source_file和$output_dir,分別指明了源文件的路徑和生成文件的目錄。在Asciidoctor.convert_file方法中,我們將$source_file指定為輸入文件,設置to_file參數為生成的HTML文件名,并傳遞了一些配置選項。safe選項表示關閉安全限制,可以使AsciiDoc文檔中的HTML標簽被直接解釋,便于生成更加復雜的HTML代碼;backend選項表示輸出格式為HTML5,attributes選項則定義了一些額外的屬性,如代碼高亮使用CodeRay,圖片路徑指定為./images等等。
最后,執行上述代碼,便可以生成符合HTML5規范的HTML文檔了。當然,這只是最基礎的用法,AUCF支持更多的功能擴展,如嵌入式視頻、自定義主題等等,需要根據具體需求進行配置。