這篇文章主要介紹博客自動生成目錄的功能,以及怎麼來生成漂亮的目錄。 html
爲何要有目錄呢?一篇很長的文章,有了目錄後就能夠定位到想看的位置。這是很是方便的! java
public static List<String> Anchor = new ArrayList<String>(){{ add("h1"); add("h2"); add("h3"); add("h4"); add("h5"); add("h6"); }};
public String htmlAnchor(String html) { Document doc = Jsoup.parseBodyFragment(html); Elements anchors = doc.select("*"); int i = 0; for(Element anchor : anchors){ String tagName = anchor.tagName().toLowerCase(); if(Anchor.contains(tagName) && anchor.hasText()) { i++; anchor.before("<span id='OSC_"+tagName+"_"+String.valueOf(i)+"'></span>"); } } return doc.body().html(); }
public String htmlContent(String html) { StringBuffer content = new StringBuffer(); Document doc = Jsoup.parseBodyFragment(html); Elements anchors = doc.select("*"); int i = 0; for(Element anchor : anchors) { String tagName = anchor.tagName().toLowerCase(); if(Anchor.contains(tagName) && anchor.hasText()) { i++; content.append("<li class='osc_"+tagName+"'><a href='#OSC_"+tagName+"_"+String.valueOf(i)+"'>"+anchor.text()+"</a></li>"); } } return content.toString(); }
設置每一段落的小標題,如上圖標題一、標題二、標題3...,也能夠在html代碼中使用h一、h二、h3...標籤 markdown
markdown編輯器,只要在標題的前面添加「#」,標題(h1~h6)可以使用相應個數的#來生成,以下 app
### this is a level-3 header ###
將生成 h3 標籤 編輯器
更多markdown語法 http://www.oschina.net/question/100267_75314 this
最後發表的時候別忘了把自動生成目錄勾選爲 是
spa
h1生成的目錄是頂級目錄,依次是h二、h3... .net
不一樣級別的標題使用不一樣的h標籤,對應的markdown編輯器就是「#」號的個數,可視化編輯器就是「標題1」、「標題2」選項... code
返回到這篇博客的前面,目錄是否是挺好看的呢 htm
注:目前可視化編輯器和markdown編輯器只能生成到h5標籤,h6無效, markdown預覽的時候只到h3(預覽由js解析,最終顯示是由java解析的)。