分享好友 最新动态首页 最新动态分类 切换频道
outline.js - 自动生成文章导读(Table of Contents)导航的 JavaScript 工具
2024-12-26 12:09
# outline.js [![npm version](https://img.shields.io/npm/v/@yaohaixiao/outline.js)](https://www.npmjs.com/package/@yaohaixiao/outline.js) ![Gzip size](http://img.badgesize.io/https://cdn.jsdelivr.net/gh/yaohaixiao/outline.js/outline.min.js?compression=gzip&label=gzip%20size) [![prettier code style](https://img.shields.io/badge/code_style-prettier-07b759.svg)](https://prettier.io) [![Coverage](https://codecov.io/gh/yaohaixiao/outline.js/branch/master/graph/badge.svg)](https://codecov.io/gh/yaohaixiao/outline.js) [![npm downloads](https://img.shields.io/npm/dt/@yaohaixiao/outline.js)](https://npmcharts.com/compare/@yaohaixiao/outline.js?minimal=true) [![MIT License](https://img.shields.io/github/license/yaohaixiao/outline.js.svg)](https://github.com/yaohaixiao/outline.js/blob/master/LICENSE) outline.js - 自动生成文章导读(Table of Contents)导航的 JavaScript 工具。会自动分析文章中的标题( h1~h6 )标签,并生成文章段落层次结构的导读导航菜单。 ## 创作灵感 AnchorJS 是 outline.js 的创作灵感来源。既然 AnchorJS 可创建标题的链接,为什么不直接给文章生成一个文章导读(Table of Contents)导航呢? 于是便有了 outline.js。 ## 特点 - 原生 JavaScript 编写,无需任何依赖; - 支持 UMD 规范; - 支持 E6 模块,提供功能独立的 ES6 模块; * Anchors 模块:类似 AnchorJS 基础功能模块,自动分析段落层级 * Drawer 模块:独立的侧滑窗口模块 * Chapters 模块:独立的导航菜单模块; * Toolbar 模块:独立的固定定位的工具栏模块; - 拥有 AnchorJS 基础功能; - 支持中文和英文标题文字生成ID; - 支持生成独立的侧边栏导航菜单; - 支持直接在文章中指定的 DOM 元素内生成文章导读导航(fixed 或者 sticky 布局); - 自动分析标题关系,生成段落层级索引值; - 支持配置自定义工具栏按钮和按钮的回调函数; * 支持针对(github 项目的)API 文档的 tags 和 issues 等按钮的跳转; * 支持自定义图标的自定义按钮,并且支持配置自定义按钮的触发事件和事件处理器; - 自动为文章页面添加通用的打印样式; - (在配置打印样式后)有纯净的阅读视图(按ESC键可退出); - 针对超长文章,采用 time slice 机制优化性能; - 可以作为 jQuery 插件使用; - 界面简洁大方; - 配置灵活,丰富,让你随心所欲掌控 outline.js; 说明:outline.js 的 Wiki 中介绍了实现自动计算段落层次的算法 ## Examples outline.js 的支持的滚动元素可以是 Window 窗口,也可以是某个 DOM 元素。 ### 窗口滚动 ![独立侧滑菜单](https://yaohaixiao.github.io/outline.js/img/screen-shot.png) * 独立侧滑菜单:[https://yaohaixiao.github.io/outline.js/examples/relative.html](https://yaohaixiao.github.io/outline.js/examples/relative.html) * WordPress:[http://www.yaohaixiao.com/blog/publish-subscribe-pattern-in-javascript/](http://www.yaohaixiao.com/blog/publish-subscribe-pattern-in-javascript/) ![sticky 定位](https://yaohaixiao.github.io/outline.js/img/sticky.png) * sticky 定位:[https://yaohaixiao.github.io/outline.js/examples/sticky.html](https://yaohaixiao.github.io/outline.js/examples/sticky.html) ![fixed 定位](https://yaohaixiao.github.io/outline.js/img/fixed.png) * fixed 定位(不显示按钮工具栏):[https://yaohaixiao.github.io/outline.js/examples/fixed.html](https://yaohaixiao.github.io/outline.js/examples/fixed.html) ### DOM 元素滚动 ![flex 布局](https://yaohaixiao.github.io/outline.js/img/flex.png) * flex 布局(超长文章):[https://yaohaixiao.github.io/outline.js/examples/flex.html](https://yaohaixiao.github.io/outline.js/examples/flex.html) ### Anchors 模块独立调用 * Anchors 模块(仅给文章的标题添加):[https://yaohaixiao.github.io/outline.js/examples/anchors.html](https://yaohaixiao.github.io/outline.js/examples/anchors.html) ## 浏览器支持 | [<img src=https://download.csdn.net/download/weixin_63553972/"https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](https://github.com/yaohaixiao/outline.js/)</br>IE / Edge | [<img src=https://download.csdn.net/download/weixin_63553972/"https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](https://github.com/yaohaixiao/outline.js/)</br>Firefox | [<img src=https://download.csdn.net/download/weixin_63553972/"https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](https://github.com/yaohaixiao/outline.js/)</br>Chrome | [<img src=https://download.csdn.net/download/weixin_63553972/"https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](https://github.com/yaohaixiao/outline.js/)</br>Safari | [<img src=https://download.csdn.net/download/weixin_63553972/"https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](https://github.com/yaohaixiao/outline.js/)</br>Opera | |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | IE11, Edge | last 10 versions | last 10 versions | last 10 versions | last 10 versions | ## 安装说明 outline.js 提供多种安装方式的支持: npm 安装、加载 CDN 资源、以及本地资源调用。 ### npm install ```shell $ npm install -S @yaohaixiao/outline.js ``` ### script 可以根据项目的实际情况,选择调用 CDN 文件或者本地文件。 #### CDN ```html <link href=https://download.csdn.net/download/weixin_63553972/"https://cdn.jsdelivr.net/gh/yaohaixiao/outline.js/outline.min.css" rel="stylesheet" /> <script src=https://download.csdn.net/download/weixin_63553972/"https://cdn.jsdelivr.net/gh/yaohaixiao/outline.js/outline.min.js"></script> ``` #### 调用本地JS文件 ```html <link href=https://download.csdn.net/download/weixin_63553972/"path/to/outline.min.css" rel="stylesheet" /></script> <script src=https://download.csdn.net/download/weixin_63553972/"path/to/outline.min.js"></script> ``` ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Outline.js</title> <link href=https://download.csdn.net/download/weixin_63553972/"https://cdn.jsdelivr.net/gh/yaohaixiao/outline.js/outline.min.css" rel="stylesheet" /> </head> <body> <main>
最新文章
目前市面上哪种微型货车比较好呢?
今天找车网小编整理了目前市面上哪种微型货车比较好呢?相关内容,希望能帮助到大家,一起来看下吧。1、目前市面上哪种微型货车比较好呢?2、11月两厢车销量排行出炉,车型细分为:微型,小型,紧凑级3、微型轿车排行榜 1.五菱之光(推荐)
详细笔记:OpenAI 发布会上的关键信息(上)
本文来自微信公众号:AI 破壳儿,原文标题:《详细笔记:OpenAI 发布会上的关键信息(上)》OpenAI 正在进行一场为期 12 天的发布会“马拉松”,目前已经进行到第 7 天。发布会的形式比较简单:每天在 YouTube 放出视频,主要由团队一线成
这几个彩票优质公众号,让你中奖不再难!
在这个激动人心的时刻,彩票迷们是否渴望能第一时间获取到开奖结果呢?今天,小编为大家推荐几个彩票优质公众号,希望能帮助大家在未来的购彩中好运连连,期期爆中!关注这些公众号,您将能在第一时间获取到你关心的各类彩票开奖信息。无论
这电脑打英雄联盟开录制视频一卡一卡的有点掉帧关掉录制就不卡是怎么回事?以前录制都不卡的?
你的cpu是不是9750啊,我9750 2060笔记本,外接2k 不开录制就很流畅,开了录制就会卡,也不是卡的严重,但就是能看到卡帧,我在全网找办法。1、打开TGP后,进入英雄联盟游戏界面,在选择大区的页面,右上角勾选开启QT语音,然后在游戏主页
退本!kimi智能App是做任务诈骗软件!被骗提现不了怎么办
kimi智能App是做任务诈骗软件!被骗提现不了怎么办技术出嘿《溦:9836356》(一)希望阅读此文的读者能够及时采取措施以减少损失;请及时与团队联系提供解决方案(文章下面图片有咨询方式)若想追回损失资产,务必仔细阅读以下内容。【JFHHERYE
高德地图怎么在地图上设置自己店的位置-门店地图定位服务
高德地图是一款功能丰富的地图应用,它提供了详细的地图信息、实时的交通状况和的服务。这款地图应用适合各种使用场景,无论是城市出行、郊区探索还是驾车、骑行和步行,都能为用户提供可靠的导航指引。高德地图拥有庞大的地图数据,覆盖了
这家跨境独立站年入42.9亿元 引流用的什么招儿?
原创:派派粉来源:跨境派做跨境电商无非两个路子:一是在亚马逊、ebay、wish 等电商平台开店卖货;另一条则是搭建自己的网站,将商品放在自己的网站上销售。刚入行的跨境小白们起初会选择在大平台上开店卖货。大平台做的久了,会发现平台
超好用的视频界AI助手——NoteGPT
6.笔记与记忆卡生成 我可以根据自己的需要,创建个性化的笔记和学习卡片,这不仅加深了我对知识的理解和记忆,也为我的复习提供了极大的方便。 二、AI助手还有哪些功能 NoteGPT作为一个视频界的AI助手,还有以下功
用AI一键生成超逼真美女写真,快来体验超火的AI神器!
在首页找到“生成照片”选项,进入后你会看到多种美女写真模板可供选择。你可以根据个人的喜好,选择想要的模板,模特风格多样化,能满足不同用户的需求。步骤三:输入描述 选择好模板后,系统会提示输入相应的文本描述。描述可以尽量详细
绵羊漫画app免费版下载
绝对好看的漫画都在这里。《绵羊漫画 免费版》是一款非常不错的漫画阅读软件。在绵羊漫画软件内,拥有着海量的漫画资源,各种类型的漫画,超全的漫画种类,只要是你想看的漫画,都能轻松的在这里搜索的到,而且所有的漫画,免费任你尽情的
相关文章
推荐文章
发表评论
0评