markdownpad2生成目录

简介: 生成目录一只需要把下面代码加到html head上就行 document.addEventListener(“DOMContentLoaded”, function() { // 生成目录列表 var outline = document.

生成目录一

只需要把下面代码加到html head上就行
document.addEventListener(“DOMContentLoaded”, function() {
// 生成目录列表
var outline = document.createElement(“ul”);
outline.setAttribute(“id”, “outline-list”);
outline.style.cssText = “border: 1px solid #ccc;”;
document.body.insertBefore(outline, document.body.childNodes[0]);
// 获取所有标题
var headers = document.querySelectorAll(‘h1,h2,h3,h4,h5,h6’);
for (var i = 0; i < headers.length; i++) {
var header = headers[i];
var hash = _hashCode(header.textContent);
// MarkdownPad2无法为中文header正确生成id,这里生成一个
header.setAttribute(“id”, header.tagName + hash);
// 找出它是H几,为后面前置空格准备
var prefix = parseInt(header.tagName.replace(‘H’, ”), 10);
outline.appendChild(document.createElement(“li”));
var a = document.createElement(“a”);
// 为目录项设置链接
a.setAttribute(“href”, “#” + header.tagName + hash)
// 目录项文本前面放置对应的空格
a.innerHTML = new Array(prefix * 4).join(‘ ’) + header.textContent;
outline.lastChild.appendChild(a);
}

});

// 类似Java的hash生成方式,为一段文字生成一段基本不会重复的数字
function _hashCode(txt) {
var hash = 0;
if (txt.length == 0) return hash;
for (i = 0; i < txt.length; i++) {
char = txt.charCodeAt(i);
hash = ((hash<<5)-hash)+char;
hash = hash & hash; // Convert to 32bit integer
}
return hash;
}

生成目录二

document.addEventListener("DOMContentLoaded", function() { // 生成目录列表 var div1 = document.createElement("div"); div1.style.cssText = "clear:both"; var outline = document.createElement("div"); outline.setAttribute("id", "outline-list"); outline.style.cssText = "border:solid 1px #ccc; background:#eee; min-width:200px;padding:4px 10px;"; var ele_p = document.createElement("p"); ele_p.style.cssText = "text-align: left; margin: 0;"; outline.appendChild(ele_p); var ele_span = document.createElement("span"); // ele_span.style.cssText = "float: left;"; var ele_text=document.createTextNode("目录"); ele_span.appendChild(ele_text); var ele_a = document.createElement("a"); ele_a.appendChild(document.createTextNode("[+]")); ele_a.setAttribute("href", "#"); ele_a.setAttribute("onclick", "javascript:return openct(this);"); ele_a.setAttribute("title", "点击打开目录"); ele_span.appendChild(ele_a); ele_p.appendChild(ele_span); var ele_ol = document.createElement("ol"); ele_ol.style.cssText = "display:none;margin-left:14px;padding-left:14px;line-height:160%;"; ele_ol.setAttribute("id", "outline_ol"); outline.appendChild(ele_ol); var div1 = document.createElement("div"); div1.style.cssText = "clear:both"; document.body.insertBefore(outline, document.body.childNodes[0]); // 获取所有标题 var headers = document.querySelectorAll('h1,h2,h3,h4,h5,h6'); if (headers.length
相关文章
|
C++
C++代码来计算一个点围绕另一个点旋转45度后的坐标
C++代码来计算一个点围绕另一个点旋转45度后的坐标
298 0
|
10月前
|
搜索推荐 开发者
通义灵码团队自定义规范代码检查场景DEMO
通义灵码团队展示自定义规范代码检查的DEMO。通过团队制定的固定提示,利用大型模型根据企业特定要求检测代码,提供个性化注意事项和修正建议,实现“千企千面”甚至“千人千面”的定制化服务。未来还将支持企业内部市场机制,鼓励开发者创造实用的自定义指令。
250 1
|
12月前
|
JavaScript 开发者
在软件开发中,代码规范至关重要,TypeScript 和 ESLint 是提升代码质量和团队协作效率的两大利器
在软件开发中,代码规范至关重要,TypeScript 和 ESLint 是提升代码质量和团队协作效率的两大利器。TypeScript 通过类型检查、接口定义和模块系统增强代码规范;ESLint 则专注于语法检查、风格统一和最佳实践。二者结合使用,能有效提高代码的可读性、可维护性,促进团队协作。制定合理的代码规范策略,注重团队共识、灵活性和持续优化,是确保项目成功的基石。
226 5
|
前端开发 JavaScript 测试技术
前端研发链路之代码规范
大家好,我是徐徐。本文将探讨前端研发链路中的代码规范,包括业界流行规范、CSS命名规范和相关工具。通过保持代码整洁和一致性,不仅能提高团队协作效率,还能减少错误,提升开发质量。文中详细对比了几种常见的代码规范和工具,如 Airbnb Style Guide、BEM、Eslint 和 Prettier,并展望了未来代码规范的发展趋势。希望对大家有所帮助。
276 1
前端研发链路之代码规范
|
12月前
|
安全 IDE Java
Java常见规范及易忘点
遵循Java编程规范和注意易忘点是提高代码质量和可维护性的关键。通过规范的命名、格式、注释和合理的代码组织,可以让代码更加清晰和易于维护。同时,注意空指针检查、线程安全、集合框架和字符串操作等常见易忘点,可以减少程序错误,提高运行效率。结合单一职责原则、面向接口编程和合理的异常处理,能够编写出高质量的Java代码。希望本文能够帮助Java开发者提升编码水平,写出更高效、更可靠的代码。
125 2
|
11月前
|
Devops Java 应用服务中间件
你们团队的规范吃灰去了吗,如何落地团队规范?
本文探讨了项目团队中常见的沟通问题及其解决方案。通过制定统一的规范,可以降低沟通成本,提高团队效率。然而,规范的落地成为新的挑战。借助自动化工具和平台,如DevOps工具链,可以有效解决这一问题。文中介绍了几种主要的DevOps工具及其应用场景,帮助团队实现高效协作。
153 0
|
前端开发 测试技术
如何从零到一建立前端规范
【10月更文挑战第6天】
263 2
|
数据可视化
Mlflow可视化学习笔记(一):可视化YOLOV4损失函数
这篇博客介绍了如何使用Mlflow可视化YOLOV4损失函数,并提供了安装指南、代码示例和运行程序的步骤。
190 0
Mlflow可视化学习笔记(一):可视化YOLOV4损失函数