2作者: Insanity7 天前原帖
嗨,HN, 如标题所示,有什么推荐和建议可以用 Vim 构建 LLM 助手吗?关于这种设置,有什么经验可以分享吗? 我只是在旁边尝试过使用 Gemini / ChatGPT 的 AI 辅助编码,而不是像 Cursor 那样的完全集成体验。
2作者: castwide7 天前原帖
这是一个简单的浏览器扩展,可以隐藏你不关注的人和页面的Facebook帖子。被隐藏的帖子会被一个小通知替代,上面写着“已隐藏”。 我遇到的最大问题是,有时它会连续隐藏几十个帖子(注意:没有误报),在这种情况下,我会关闭标签页去做其他事情。
2作者: zhousg7 天前原帖
HarmonyOS 5 新闻应用 - 新闻详情页实现案例 摘要 本文详细介绍了如何在 HarmonyOS 5.0 新闻应用中使用 ArkTS 语言实现新闻详情页。通过定义 BarButton 和 NewDetailPage 组件,实现了新闻详情页的界面布局、状态栏颜色设置和页面导航。 ```typescript @Component struct BarButton { icon: ResourceStr = '' build() { Row() { Image(this.icon) .width(24) .height(24) .fillColor(Color.White) } .justifyContent(FlexAlign.Center) .width(40) .aspectRatio(1) .borderRadius(22) .backgroundColor('#45FFFFFF') } } @Component struct NewDetailPage { news: NewsModel = {} as NewsModel async setStatusBarContentColor(color: string) { const ctx = this.getUIContext() .getHostContext()! const win = await window.getLastWindow(ctx) win.setWindowSystemBarProperties({ statusBarContentColor: color }) } @Builder CustomBarBuilder() { Row({ space: 10 }) { BarButton({ icon: $r('sys.media.ohos_ic_public_arrow_left') }) .onClick(() => pathStack.pop()) Blank() BarButton({ icon: $r('sys.media.ohos_ic_public_share') }) BarButton({ icon: $r('sys.media.ohos_ic_public_more') }) } .padding(15) .width('100%') } @Builder TitleBuilder () { Column({ space: 12 }){ Button(this.news.category) .size({ height: 36 }) Text(this.news.title) .fontSize(24) .fontWeight(FontWeight.Medium) .fontColor(Color.White) Text() { Span(this.news.author) Span('·') Span(this.news.time) } .fontSize(14) .fontColor(Color.White) } .padding(15) .height(300) .width('100%') .justifyContent(FlexAlign.End) .alignItems(HorizontalAlign.Start) } @Builder ContentBuilder () { Column(){ Row({ space: 10 }){ Image(this.news.companyLogo) .width(40) .aspectRatio(1) .borderRadius(20) Text(this.news.company) .fontSize(18) .fontWeight(FontWeight.Bold) } .width('100%') .height(60) Text(` 在新扩展的国际足联俱乐部世界杯上 `) .fontSize(16) .lineHeight(24) } .borderRadius({ topLeft: 30, topRight: 30 }) .backgroundColor(Color.White) .padding(15) } build() { NavDestination() { List(){ ListItem(){ this.CustomBarBuilder() } ListItem(){ this.TitleBuilder() } ListItem(){ this.ContentBuilder() } } .width('100%') .height('100%') .layoutWeight(1) } .hideTitleBar(true) .backgroundImage($r('app.media.news01')) .backgroundImageSize({ height: '60%', width: 'auto' }) .backgroundImagePosition(Alignment.Top) .onShown(() => this.setStatusBarContentColor('#FFFFFF')) .onHidden(() => this.setStatusBarContentColor('#000000')) .onReady((ctx) => { this.news = ctx.pathInfo.param as NewsModel }) } } ```