`

博客自动生成目录功能--Jsoup分析H1标签

 
阅读更多

一、写在前面的话

这篇文章主要介绍博客自动生成目录的功能,以及怎么来生成漂亮的目录。

为什么要有目录呢?一篇很长的文章,有了目录后就可以定位到想看的位置。这是非常方便的!

1、自动生成目录原理

1 public static List<String> Anchor = new ArrayList<String>(){{
2     add("h1");
3     add("h2");
4     add("h3");
5     add("h4");
6     add("h5");
7     add("h6");
8 }};
  • 检测文章中的H标签,添加锚点
01 public String htmlAnchor(String html) {
02     Document doc = Jsoup.parseBodyFragment(html);
03     Elements anchors = doc.select("*");
04     int i = 0;
05     for(Element anchor : anchors){
06         String tagName = anchor.tagName().toLowerCase();
07         if(Anchor.contains(tagName) && anchor.hasText()) {
08             i++;
09             anchor.before("<span id='OSC_"+tagName+"_"+String.valueOf(i)+"'></span>");
10         }
11     }
12     return doc.body().html();
13 }
  • 根据锚点,生成对应的目录
01 public String htmlContent(String html) {
02     StringBuffer content = new StringBuffer();
03     Document doc = Jsoup.parseBodyFragment(html);
04     Elements anchors = doc.select("*");
05     int i = 0;
06     for(Element anchor : anchors) {
07         String tagName = anchor.tagName().toLowerCase();
08         if(Anchor.contains(tagName) && anchor.hasText()) {
09             i++;
10             content.append("<li class='osc_"+tagName+"'><a href='#OSC_"+tagName+"_"+String.valueOf(i)+"'>"+anchor.text()+"</a></li>");
11         }
12     }
13     return content.toString();
14 }

2、写OSChina博客的时候怎么自动生成呢?

 

(1)、可视化编辑器

设置每一段落的小标题,如上图标题1、标题2、标题3...,也可以在html代码中使用h1、h2、h3...标签

(2)、MarkDown编辑器

markdown编辑器,只要在标题的前面添加“#”,标题(h1~h6)可使用相应个数的#来生成,如下

1 ### this is a level-3 header ###

将生成 h3 标签

更多markdown语法 http://www.oschina.net/question/100267_75314

最后发表的时候别忘了把自动生成目录勾选为 是

3、怎么使生成的目录比较好看?

h1生成的目录是顶级目录,依次是h2、h3...

不同级别的标题使用不同的h标签,对应的markdown编辑器就是“#”号的个数,可视化编辑器就是“标题1”、“标题2”选项...

二、最后的话

返回到这篇博客的前面,目录是不是挺好看的呢

注:目前可视化编辑器和markdown编辑器只能生成到h5标签,h6无效, markdown预览的时候只到h3(预览由js解析,最终显示是由java解析的)。

 

转自:http://my.oschina.net/zino/blog/125689

分享到:
评论

相关推荐

    jsoup-1.15.3.jar

    jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jarjsoup-...

    jsoup-annotations是Jsoup注解的POJO

    **JSoup库与JSoup-Annotations** JSoup是一款强大的Java库,专为处理HTML文档而设计,它提供了方便的API,使得抓取和解析HTML变得简单易行。JSoup能够模拟浏览器的行为,理解和构建DOM树,进而允许开发者通过CSS...

    Ajax-kotlin-headlessbrowser-selenium-jsoup-parser.zip

    Ajax-kotlin-headlessbrowser-selenium-jsoup-parser.zip,科特琳製_____,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不...

    httpclient-4.3.3+jsoup-1.7.3模拟登陆csdn

    在IT行业中,网络爬虫和自动化测试经常需要模拟用户的登录行为,以便访问受保护的网页内容。...通过这种方式,开发者可以自动化获取并分析网站上的数据,为数据分析、内容监控或其他自动化任务提供便利。

    基于java的开发源码-HTML解析器 jsoup.zip

    基于java的开发源码-HTML解析器 jsoup.zip 基于java的开发源码-HTML解析器 jsoup.zip 基于java的开发源码-HTML解析器 jsoup.zip 基于java的开发源码-HTML解析器 jsoup.zip 基于java的开发源码-HTML解析器 jsoup.zip ...

    async-crawler-jsoup_2.10-1.0.0.zip

    此外,Jsoup还提供了文本提取、属性获取、链接处理等功能,使得解析和分析网页内容变得非常便捷。 在异步爬虫实现中,通常会用到Java的非阻塞I/O框架,如NIO(New IO)或更高级的Netty。这些框架允许爬虫并发地处理...

    jsoup-1.11.2.rar

    **jsoup库详解** ...在“jsoup-1.11.2.jar”文件中,封装了所有这些功能,而“jsoup-1.11.2.txt”文件则可能提供了关于这个版本的详细信息。开发者可以结合这两个资源,轻松地将jsoup集成到自己的Java项目中。

    Android代码-android-web-scraping-app-jsoup

    Android Web Scraping App using Jsoup Library I'll scrap here, the first portion of this page My expected output is like this screenshot. These data are not on a webview of predefined in the App. ...

    -JsoupXpath.zip

    commons-lang3-3.3.2、jsoup-1.13.1和JsoupXpath-0.3.2,要是实现JsoupXpath必须要加载依赖包commons-lang3-3.3.2、jsoup-1.13.1。

    jsoup官网最新版-1.11.2(含jar、resource、doc)

    2. **jsoup-1.11.2-sources.jar**:这个文件包含了jsoup源代码,对于开发者来说,这是一个宝贵的资源。通过查看源代码,你可以深入了解jsoup的工作原理,以及如何实现特定的解析和操作功能。 3. **jsoup-1.11.2-...

    jsoup-jsoup-1.6.1.zip

    在jsoup 1.6.1版本中,我们可以看到这个库已经相当成熟,提供了丰富的功能和优化。以下是一些关于jsoup的关键知识点: 1. **HTML解析**:jsoup的核心能力在于它强大的HTML解析机制。它使用了名为"Jsoup Parser"的...

    jsoup-1.11.2.jar JsoupXpath-0.3.2

    至于文件"libs",这通常指的是包含库文件的目录,其中"jsoup-1.11.2.jar"和"JsoupXpath-0.3.2"是Java的库文件,需要添加到项目的类路径(ClassPath)中才能在Java程序中使用。 总的来说,Jsoup和JsoupXpath为Java...

    website-parser-with-jsoup

    为了深入了解并使用这个项目,你可以查看解压后的"website-parser-with-jsoup-master"文件夹中的源代码,包括主类、配置文件以及可能存在的样例数据。此外,学习Jsoup的官方文档和相关教程,将有助于你更好地理解和...

    jsoup1.8.1集成代理IP最新版proxy ip

    不知道官方作者为什么不加上代理功能,此版本正好加上了代理IP功能使用方法如:Jsoup.connect(urls).proxy(Proxy.Type.HTTP, "ip地址", 8080)

    jsoup-1.13.1.zip

    - **jsoup-1.13.1-sources.jar**:包含了JSoup库的源代码,便于开发者查看和学习内部实现,对于调试和自定义功能非常有用。 - **jsoup-1.13.1-javadoc.jar**:包含了JSoup的API文档,提供了详细的类和方法描述,是...

    jsoup-1.14.3-API文档-中文版.zip

    赠送jar包:jsoup-1.14.3.jar; 赠送原API文档:jsoup-1.14.3-javadoc.jar; 赠送源代码:jsoup-1.14.3-sources.jar; 赠送Maven依赖信息文件:jsoup-1.14.3.pom; 包含翻译后的API文档:jsoup-1.14.3-javadoc-API...

    jsoup-1.11.2.jar工具类包.rar

    jsoup-1.11.2.jar JsoupXpath-0.3.2.jar jsoup-1.11.2-sources.jar jsoup-1.11.2-javadoc.jar 解析读取xml或html文档的工具类

    Jsoup1.10.2.jar

    - **jsoup-1.10.2.jar**:这是Jsoup的核心库文件,用于在项目中引入和使用Jsoup的功能。 - **jsoup-1.10.2-sources.jar**:包含了Jsoup的源代码,可供开发者查看和学习内部实现。 在实际开发中,Jsoup广泛应用于...

Global site tag (gtag.js) - Google Analytics