一個定義良好的HTML標題結構除了能讓訪客更輕鬆地瀏覽網頁之外,也能夠幫助搜尋引擎更精確地理解HTML文件的內容,提高網站的搜尋排名。那要如何使用Rust程式語言來產生HTML文件的標題大綱(Outline)呢?
HTML Outliner
「HTML Outliner」是筆者開發的套件,用以產生HTML文件的大綱。
Crates.io
Cargo.toml
html-outliner = "*"
使用方法
html_outliner
這個crate提供了Outline
和OutlineStructure
兩種結構體。OutlineStructure
結構體是解析HTML文件之後的結果,僅把標題和章節型內容「Sectioning Content」從中區分出來,並未對標題等級進行處理。Outline
結構體則是將OutlineStructure
結構體轉為字串的階層結構後的結果,會去處理標題等級(例如h1
後緊接h2
的話,h2
會放在h1
的下層)。
如果您想要使用這個crate提供的方式將HTML文件轉成字串大綱,可以直接使用Outline
結構體的parse_html
關聯函數來轉。程式如下:
use html_outliner::Outline;
const MAX_DEPTH: usize = 50;
let outline = Outline::parse_html(r"
<h1>Header Top</h1>
<h1>Header 1</h1>
<h2>Header 2</h2>
<h3>Header 3</h3>
<h4>Header 4</h4>
<h5>Header 5</h5>
<h6>Header 6</h6>
", MAX_DEPTH);
println!("{}", outline);
parse_html
關聯函數的第二個參數是要存取的HTML元素的最高層數,如果太多層的話就會發生堆疊溢出(Stack Overflow),所以要進行合理的限制。
以上程式會輸出:
1. Header Top 2. Header 1 1. Header 2 1. Header 3 1. Header 4 1. Header 5 1. Header 6