titlebar
志当存高远。—— 诸葛亮《诫外生书》 https://github.com/getActivity/TitleBar Android 开发神器:TitleBar 的使用与优势解析在 Android 开发中,标题栏(TitleBar)是应用界面设计中不可或缺的一部分。然而,原生的 Toolbar 或 ActionBar 功能有限且自定义成本较高,给开发者带来不少麻烦。为了解决这些痛点,TitleBar 组件应运而生。 今天我们来介绍一个开源库 TitleBar,它是由 getActivity 团队开发的轻量级标题栏工具,帮助开发者快速而灵活地实现标题栏功能。 为什么选择 TitleBar?TitleBar 是一个功能强大且高度可定制的标题栏解决方案,以下是它的主要特点: 高度自定义:支持自定义标题、左右按钮、背景颜色等,满足各种 UI 需求。 轻量易用:只需简单配置即可快速集成,无需繁琐的代码。 兼容性强:支持 Android 各版本,且与多种布局兼容。 代码简洁:使用 TitleBar 可以大幅减少代码量,提升开发效率。 持续维护:由活跃的开源社区支持,拥有完善的文档和示...
wangeditor渲染node方式
青,取之于蓝而青于蓝;冰,水为之而寒于水。 ——《荀子·劝学》 代码如下: 1234567891011121314import { Boot, createEditor, createToolbar, SlateEditor, SlateElement, SlateNode, SlateText, SlateTransforms} from '@wangeditor/editor'SlateTransforms.insertNodes(editor, nodes)editor.updateView() 这里的nodes格式参考 https://www.wangeditor.com/v5/node-define.html 节点数据结构wangEditor 是基于 slate.js 为内核开发的,所以学习本文之前,要先了解 slate Node 设计 。 是什么很多同学可能根本不知道本文要讲什么,对于这里的“节点”和“数据结构”也不知何意。没关系,接下来通过几个问题,就可以让你快速入门。 我们通过 API 的学习,已经知道...
升级项目为typescript
志不强者智不达。——《墨子·修身》 在一个 JavaScript + Vue 项目中引入 TypeScript 编写的代码组件 1. 保证依赖支持 TypeScript 安装 TypeScript 相关依赖(如果还没有): 12npm install --save-dev typescriptnpm install --save-dev @types/node 如果你的 Vue 版本是 Vue 2,建议也装上 vue-property-decorator 和 vue-class-component(class 风格): 1npm install --save vue-class-component vue-property-decorator 2. 配置 tsconfig.json 在项目根目录新建或完善 tsconfig.json,确保包括你的 TypeScript 组件目录。例如: 123456789101112131415161718192021222324252627{ "compilerOptions": { &q...
Minecraft颜色选择转换
天行健,君子以自强不息。——《周易·乾·象》 https://codepen.io/0biwan/pen/ggVemP html 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071<div class="container"> <div class="tools"> <div class="colors"> <button data-color="0" class="bg-1">&0</button> <button data-color="1" class="bg-2">&1</button> &...
SmoothBottomBar
一寸光阴一寸金,寸金难买寸光阴。——《增广贤文》 https://github.com/ibrahimsn98/SmoothBottomBar SmoothBottomBar:轻量级的 Android 底部导航栏库在现代移动应用中,底部导航栏是常见的设计模式之一,它为用户提供了直观的导航操作。SmoothBottomBar 是一个轻量级的 Android 库,专为实现流畅的 Material Design 风格底部导航栏而设计。 什么是 SmoothBottomBar?SmoothBottomBar 是一个开源的 Android 底部导航栏库,旨在为开发者提供一个简单、可定制且高效的解决方案。它基于 Material Design 指南,支持多种样式和动画效果,非常适合需要实现现代化用户界面的项目。 核心特点: 轻量级:库的体积小,对应用性能影响极低。 Material Design 风格:完全遵守 Material Design 设计规范。 高度可定制:支持自定义颜色、图标、文本和动画效果。 流畅的动画:提供一流的视觉效果,增强用户体验。 易于集成:无需复杂的配置即可快速...
vue2-editor
一寸光阴一寸金,寸金难买寸光阴。——《增广贤文》 https://github.com/davidroyer/vue2-editor Vue2Editor:基于 Vue.js 和 Quill 的轻量级文本编辑器在现代 Web 开发中,富文本编辑器是许多应用(如博客、评论系统和内容管理系统)中的关键组件。Vue2Editor 是一个基于 Vue.js 和 Quill 的开源富文本编辑器,提供了简洁易用的接口和强大的功能,适合 Vue 2.x 项目的开发者。 什么是 Vue2Editor?Vue2Editor 是一个使用 Vue.js 和 Quill 构建的富文本编辑器,旨在为开发者提供一个轻量级、功能全面且易于集成的文本编辑解决方案。它基于 Quill.js 的强大功能,同时简化了在 Vue 项目中的集成过程。 核心特点: 基于 Vue 2.x:专为 Vue 2.x 项目设计。 强大的 Quill.js 支持:继承了 Quill.js 的所有功能,包括格式化、工具栏自定义和扩展支持。 易于集成:通过简单的 Vue 组件即可快速集成到项目中。 MIT 许可证:完全开源且免费。 ...
pickr
业精于勤,荒于嬉。—— 韩 愈《进学解》 https://github.com/simonwep/pickr Pickr:一个简单、多主题、响应式且可定制的颜色选择器库在网页设计和前端开发中,颜色选择器是一个不可或缺的工具。虽然许多框架提供了内置的颜色选择器,但它们往往难以扩展或自定义。Pickr 是一个轻量级、无依赖的颜色选择器库,它提供了丰富的功能,同时完全兼容所有主流 CSS 框架。 什么是 Pickr?Pickr 是一个开源的颜色选择器库,支持多种颜色格式(如 rgba、hsla、hsva 等),并提供多种主题和自定义选项。它专为现代前端开发设计,具有以下特点: 核心特点: 无依赖:不依赖任何第三方库(如 jQuery)。 多格式支持:支持 rgba、hsla、hsva、hex 和 CMYK 格式。 多主题:内置多种主题样式,兼容主流 CSS 框架(如 Bootstrap、Materialize)。 响应式设计:适配移动端和桌面端。 自定义能力:可通过 JavaScript 和 CSS 轻松自定义外观和功能。 支持透明度:包括 alpha 通道的选择。 轻量级:小巧...
snabbdom
少壮不努力,老大徒悲伤。—— 汉乐府古辞《长歌行》 https://github.com/snabbdom/snabbdom/ Snabbdom:轻量、高效、模块化的虚拟 DOM 库在现代前端开发中,虚拟 DOM 技术已成为流行的界面更新方式。许多框架(如 React、Vue.js)都内置了虚拟 DOM 功能。然而,Snabbdom 提供了一种更轻量化和可扩展的虚拟 DOM 解决方案,适合希望深入控制渲染过程的开发者。 什么是 Snabbdom?Snabbdom 是一个以简洁和高效为目标的虚拟 DOM 库,其核心代码不足 200 行,但提供了丰富的功能扩展能力。开发者可以根据需要选择模块或自定义功能,打造个性化的虚拟 DOM 架构。 核心特点: 极简核心:仅 200 行核心代码,易于理解和定制。 模块化设计:通过模块扩展功能,如样式、事件监听、动画等。 高性能:Snabbdom 是目前最高效的虚拟 DOM 库之一。 灵活的 hook 系统:支持 vnode 和全局模块的生命周期钩子。 支持 JSX 和 TypeScript:方便与现代前端工具链集成。 使用场景Snabb...
wangeditor自定义菜单
时间是衡量事业的标准。 —— 培根 代码如下: 12345678910111213141516171819202122232425262728293031323334import { DomEditor, IButtonMenu, IDomEditor, ISelectMenu } from '@wangeditor/editor'export class MentionMenu implements IButtonMenu { constructor() { this.title = '设置标签' // this.iconSvg = '<svg >...</svg>' this.tag = 'button' } title: string iconSvg?: string | undefined hotkey?: string | undefined alwaysEnable?: boolea...
wangeditor实现鼠标悬停选中句子
学校要求教师在他的本职工作上成为一种艺术家。 —— 爱因斯坦 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103import { DomEditor, IDomEditor, SlateEditor, SlateTransforms } from '@wangeditor/editor'function addMouseHoverListener(editor: IDomEditor) { const editorElement = DomEditor.toDOMNode(editor, editor) let hoverTimeout: NodeJS.Timeout | nu...
