返回首页
最新
嗨,HN,
我们在过去几年里一直在开发 [OOMOL](https://oomol.com)——一个为开发者打造的工作流自动化平台。
与 Zapier 或 n8n 不同,OOMOL 在本地的容器化环境中运行,支持完整的 Python 和 Node.js(包括第三方库),并且提供与编写真实代码相同的灵活性。它就像 VS Code 与工作流自动化的结合。
关键点:
- 本地优先(无云锁定)
- 支持 Python 和 Node.js(可以混合使用!)
- 开箱即用的 Pip/npm 库支持
- 完全可视化,具有可编程节点
- 以容器或子工作流的形式共享和重用流程
我们还处于早期阶段,非常希望获得 HN 社区的反馈。欢迎随时提问!
我几年前在这里发布了NumPad v1,当时它不过是我编写的计算器引擎的一个简单CodeMirror封装。<p>现在我已经将其重写为一个渐进式Web应用(PWA),支持多个文档,并将其持久化到IndexedDB中,同时为付费用户提供同步服务。同步功能在后台由Automerge[1]处理,这应该使得文档共享变得相对简单。<p>[1] <a href="https://automerge.org/" rel="nofollow">https://automerge.org/</a>
HarmonyOS 5 新闻应用日历事件管理实现
摘要
本文介绍了在 HarmonyOS 5.0 新闻应用中实现日历事件管理功能的过程,包括绑定弹出窗口、添加日历事件和显示事件详情。该功能使用 ArkTS 语言实现。
代码实现
1. 绑定弹出组件
```javascript
.bindSheet($$this.isShow, this.AccountDetailBuilder, {
height: 500
})
```
2. 实现添加日历事件的功能
```javascript
async addCalendarEvent(title: string) {
await this.currCalendar?.addEvent({
title: title,
startTime: Number(new Date('2025-12-12 19:00:00')),
endTime: Number(new Date('2025-12-12 21:00:00')),
reminderTime: [0, 5, 10, 60],
type: calendarManager.EventType.NORMAL
})
this.currCalendarEvents = await this.currCalendar?.getEvents() || []
}
```
3. 构建账户详情组件以显示事件列表
```javascript
@Builder
AccountDetailBuilder() {
Column({ space: 15 }) {
Text(this.currCalendar?.getAccount().displayName)
.fontSize(24)
.fontWeight(500)
Column({ space: 15 }) {
Button('订阅 CNN 新闻')
.onClick(() => {
this.addCalendarEvent('订阅 CNN 新闻')
})
Button('订阅 BBC 新闻')
.onClick(() => {
this.addCalendarEvent('订阅 BBC 新闻')
})
}
Text('我的订阅 : ')
List({ space: 15 }) {
ForEach(this.currCalendarEvents, (event: calendarManager.Event) => {
ListItem(){
Column({ space: 5 }){
Text(event.title)
Text(new Date(event.startTime).toString())
}
.padding({ left: 15, right: 15 })
.justifyContent(FlexAlign.Center)
.alignItems(HorizontalAlign.Start)
.width('100%')
.height(60)
.borderRadius(12)
.backgroundColor('#DDDDDD')
}
})
}
}
.padding(15)
.alignItems(HorizontalAlign.Start)
}
```
HarmonyOS 5 新闻应用日历账户管理实现
摘要
本文介绍了在 HarmonyOS 5.0 新闻应用中实现日历账户管理功能的过程。该功能包括添加特定类型日历账户的按钮以及删除日历账户的构建器。使用 ArkTS 语言实现账户的添加和删除操作。
1. 实现账户添加按钮组件
```
Column({ space: 15 }){
Button('添加体育新闻账户')
.onClick(async () => {
await this.addAccount('体育新闻', '#006699')
this.list = await this.calendarMgr.getAllCalendars()
})
Button('添加国际新闻账户')
.onClick(async () => {
await this.addAccount('国际新闻', '#ffaa00')
this.list = await this.calendarMgr.getAllCalendars()
})
}
.margin(15)
```
2. 实现账户删除构建器
```
@Builder
DeleteBuilder(calendar: calendarManager.Calendar) {
Text('删除')
.fontSize(24)
.width(120)
.textAlign(TextAlign.Center)
.height('100%')
.onClick(async () => {
await this.calendarMgr.deleteCalendar(calendar)
this.list = await this.calendarMgr.getAllCalendars()
})
}
```