Skip to content

sutchan/MyNews

 
 

Repository files navigation

《今日时事》

一个现代化简约的新闻聚合平台

实时聚合多源资讯,掌握天下动态

简体中文 | English

License: MIT Vue 3 Nuxt4 TypeScript TailwindCSS


产品截图

浅色模式 深色模式 hot finance tech favorites

项目介绍

《今日时事》 是一个综合性的新闻聚合平台,整合了来自社交媒体、科技资讯、金融市场和娱乐等多个热门源的信息。采用现代化的Web技术构建,为用户提供简洁、直观的界面,让您轻松掌握全球动态。

核心特性

  • 多平台聚合: 集成30+平台资讯,包括微博、GitHub、豆瓣、B站等主流平台
  • 智能分类: 按科技、财经、社交媒体、娱乐、体育等领域组织内容
  • 实时更新: 实时数据同步,支持自动刷新功能
  • 响应式设计: 针对桌面端和移动端优化的浏览体验
  • 主题切换: 支持暗色/亮色主题无缝切换
  • 收藏系统: 保存和管理您喜爱的新闻源和文章
  • 交互组件: 丰富的交互元素,包括悬浮卡片和详细视图
  • 拖拽排序: 支持拖拽的可定制化卡片布局
  • 搜索筛选: 高级筛选选项,个性化内容发现

支持平台

社交媒体与热点

  • 微博热搜
  • 百度热搜
  • 抖音热点
  • 知乎热榜
  • 快手热门

科技与开发

  • GitHub趋势
  • V2EX最新
  • IT之家资讯
  • Solidot奇客
  • 36氪科技
  • 掘金文章

财经与市场

  • 华尔街见闻
  • 热门股票
  • 金十数据
  • 市场分析

娱乐与媒体

  • 豆瓣电影/电视
  • B站热门视频
  • 音乐排行榜(酷狗、QQ音乐)
  • 游戏赛事(英雄联盟)

新闻与资讯

  • 澎湃新闻
  • 参考消息
  • 人民日报
  • 俄罗斯卫星通讯社

技术栈

  • 前端框架: Nuxt 4.0 + Vue 3.5 + TypeScript 5.6
  • 构建工具: Vite (集成在Nuxt中)
  • 样式方案: TailwindCSS 4.1 + @nuxt/ui
  • UI组件: Reka UI + shadcn-nuxt
  • 状态管理: Vue Composition API
  • 动画效果: GSAP 3.13 + tw-animate-css
  • 图标库: Lucide Vue Next 0.536
  • 日期处理: Day.js 1.11
  • 拖拽功能: Vue Draggable Plus 0.6
  • 消息通知: Vue Sonner 2.0
  • 工具库: @vueuse/core 13.6, clsx, tailwind-merge, class-variance-authority

快速开始

环境要求

  • Node.js 18+
  • Yarn 1.22+ (项目使用yarn@1.22.22) 或 npm

安装步骤

  1. 克隆仓库

    git clone https://github.com/sutchan/MyNews.git
    cd MyNews
  2. 安装依赖

    yarn install
    #
    npm install
  3. 环境配置

    # 复制环境变量模板
    cp .env.example .env
    
    # 配置API端点(默认:http://localhost:10010)
    VITE_API_BASE_URL=http://localhost:10010
  4. 启动开发服务器

    yarn dev
    #
    npm run dev
  5. 打开浏览器 访问 http://localhost:5173

使用Docker运行

如果你更倾向于使用 Docker 运行:

git clone https://github.com/sutchan/MyNews/
cd MyNews/docker
# 如果你安装了 docker-compose 或 docker 安装了 compose 插件
docker-compose up -d  # or docker compose up -d
# 如果两个都没有安装
docker run -d --name what-happen-app --restart always -p 3001:3000 yltfspace/what-happen
# 访问应用 http://localhost:3001

生产环境构建

# 构建生产版本
yarn build

# 预览生产构建
yarn preview

API要求

本前端应用需要后端API服务运行在10010端口(可配置)。API应提供:

  • GET /platforms - 可用新闻平台配置
  • GET /news - 支持平台筛选的新闻数据

预期API响应格式

interface NewsItem {
  id: string
  title: string
  url: string
  extra?: {
    info?: string
    time?: string
    rank?: number
    thumbnail?: { url: string }
    // ... 其他元数据
  }
}

interface ApiResponse<T> {
  code: number
  msg: string
  data: T
}

配置说明

环境变量

# API配置
VITE_API_BASE_URL=http://localhost:10010  # 后端API地址

自定义新闻源

编辑 app/pages/dashboard/index.vue 修改平台配置:

const platformIcons = {
  weibo: WeiBo,
  github: Github,
  // 添加您的自定义平台
}

开发指南

项目结构

app/
├── api/           # API接口和配置
├── components/    # 可复用Vue组件
│   ├── ui/        # 基础UI组件
│   ├── NewsItems/ # 新闻项组件
│   └── icon/      # 平台图标组件
├── composables/   # Vue组合式函数
├── pages/         # 应用页面
├── router/        # Vue Router配置
└── lib/           # 工具函数

添加新闻源

  1. 创建平台图标组件app/components/icon/ 目录
  2. 添加平台配置 在dashboard中配置
  3. 创建自定义新闻项组件(如需要)在 app/components/NewsItems/
  4. 更新API集成app/api/news.ts 中配置

组件开发规范

  • 使用TypeScript确保类型安全
  • 遵循Vue 3 Composition API模式
  • 使用TailwindCSS实现响应式设计
  • 保持与现有组件一致的样式风格

贡献指南

我们欢迎所有形式的贡献!请查看我们的贡献指南了解详情。

开发流程

  1. Fork本仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交您的更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建Pull Request

开源协议

本项目采用MIT协议 - 查看LICENSE文件了解详情。

技术支持

致谢

  • 感谢所有新闻平台提供的公开API
  • 使用Vue 3和现代化Web技术倾情打造
  • 致力于为用户提供统一的新闻阅读体验

更新日志

版本 2.0.0 (当前版本)

  • 支持40+新闻平台
  • 响应式设计和暗色模式
  • 收藏和筛选系统
  • 实时更新功能
  • AI总结功能
  • 增强的时间线视图
  • 拖拽排序自定义
  • 支持更多内容类型,包括视频和图片

详细更新日志请查看 CHANGELOG.md


Made with ❤️ by the 《今日时事》 Team

保持知情,保持连接

About

一个简约无广,专注新闻的聚合体,完美适配Web端,手机端,《今日时事》为您实时聚合各大平台最新资讯,按时间序列 展示热点新闻动态,包含头条、百度、知乎、哔哩哔哩、豆瓣、微博、贴吧、汽车之家、虎扑、Github、抖音、懂车帝等各种消息,给您提供极致的专注阅读的信息流体验!

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Vue 80.5%
  • TypeScript 18.9%
  • Other 0.6%