列表项与标题项的内容都相同,只需要其中之一就 ok 了,请问大佬们怎么弄。

列表项与标题项的内容都相同,只需要其中之一就 ok 了,请问大佬们怎么弄。

思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。
融合块、大纲和双向链接,重构你的思维。
提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。
我想你的本意是想去除面包屑中的重复项吧,因为除了标题,其他块也可能产生重复。
依靠纯 css 很难兼容其他情况。
下面这个用 js 代码实现的去除重复项(暂不支持手机端,手机端面包屑在菜单中),仅供参考。
(()=>{
// 已存在的面包屑
let breadcrumbs = [], timer = null;
// 监听面包屑项出现
observeElementExist('.protyle-breadcrumb__item', (element) => {
if(!timer) {
timer = setTimeout(() => {
breadcrumbs = [];
timer = null;
}, 300);
}
const text = element.querySelector('.protyle-breadcrumb__text');
if(!text) return;
if(!breadcrumbs.includes(text.textContent)) {
breadcrumbs.push(text.textContent);
return;
}
element.style.display = 'none';
const arrow = element.previousElementSibling;
if(!arrow || !arrow.classList.contains('protyle-breadcrumb__arrow')) return;
arrow.style.display = 'none';
}, '.layout__center');
// 监听元素出现
function observeElementExist(selector, callback, observeNode) {
const handleMutations = (mutationsList, observer) => {
for (let mutation of mutationsList) {
if (mutation.type === 'childList') {
mutation.addedNodes.forEach(node => {
if (node.matches && node.matches(selector)) {
callback(node);
//observer.disconnect(); // 一旦找到元素,停止监听
}
});
}
}
};
// 创建一个MutationObserver实例
const config = { attributes: false, childList: true, subtree: true };
const observer = new MutationObserver(handleMutations);
// 选择需要监听的父节点
observeNode = typeof observeNode === 'string' ? document.querySelector(observeNode) : observeNode;
const targetNode = observeNode || document.body;
// 开始监听目标节点的变化
observer.observe(targetNode, config);
}
})();
效果

我想你的本意是想去除面包屑中的重复项吧,因为除了标题,其他块也可能产生重复。
依靠纯 css 很难兼容其他情况。
下面这个用 js 代码实现的去除重复项(暂不支持手机端,手机端面包屑在菜单中),仅供参考。
(()=>{
// 已存在的面包屑
let breadcrumbs = [], timer = null;
// 监听面包屑项出现
observeElementExist('.protyle-breadcrumb__item', (element) => {
if(!timer) {
timer = setTimeout(() => {
breadcrumbs = [];
timer = null;
}, 300);
}
const text = element.querySelector('.protyle-breadcrumb__text');
if(!text) return;
if(!breadcrumbs.includes(text.textContent)) {
breadcrumbs.push(text.textContent);
return;
}
element.style.display = 'none';
const arrow = element.previousElementSibling;
if(!arrow || !arrow.classList.contains('protyle-breadcrumb__arrow')) return;
arrow.style.display = 'none';
}, '.layout__center');
// 监听元素出现
function observeElementExist(selector, callback, observeNode) {
const handleMutations = (mutationsList, observer) => {
for (let mutation of mutationsList) {
if (mutation.type === 'childList') {
mutation.addedNodes.forEach(node => {
if (node.matches && node.matches(selector)) {
callback(node);
//observer.disconnect(); // 一旦找到元素,停止监听
}
});
}
}
};
// 创建一个MutationObserver实例
const config = { attributes: false, childList: true, subtree: true };
const observer = new MutationObserver(handleMutations);
// 选择需要监听的父节点
observeNode = typeof observeNode === 'string' ? document.querySelector(observeNode) : observeNode;
const targetNode = observeNode || document.body;
// 开始监听目标节点的变化
observer.observe(targetNode, config);
}
})();
效果

Postman 是一款简单好用的 HTTP API 调试工具。
链滴是一个记录生活的地方。
记录生活,连接点滴
React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。
你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!
我来 wolai:不仅仅是未来的云端笔记!
NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。
互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。
Communication channel for makers and users.
ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。
有什么新发现就分享给大家吧!
App(应用程序,Application 的缩写)一般指手机软件。
域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。
腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。
Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。
Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。
微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。
汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。
主仓库地址:Hi-Windom/Sillot
文档地址:sillot.db.sc.cn
注意事项:
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。
jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。
心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。
Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。
ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。
jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。
H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。
深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。