Code Monkey home page Code Monkey logo

upupor's Introduction

Upupor

让每个人享受分享

感谢JetBrains对 upupor 开源项目的支持

JetBrains Logo (Main) logo

Star数

Stargazers over time

Upupor编码

出于自己对技术的纯粹和要求,在upupor项目的开发过程中,会遵循以下准则:

  1. 充分使用Java基本特性: 封装、继承、多态
  2. 对类似的业务逻辑进行抽象,提取出公用的逻辑,朝着易扩展、易维护的方向前进
  3. 定期会Code Review,因为自己的技术能力和思维能力在不断地提升,所以会定期的Review代码,会将自己的知识进行沉淀和落地
  4. 减少外部依赖。除了最基本的依赖之外,会尽可能减少外部依赖的引入。例如,upupor的全局检索,是基于lucene实现的,而不是引入ES来实现
  5. 算法的引入,会将学到的算法应用其中。例如,雪花算法,upupor的资源id生成有雪花算法的参与

部署文档

运维文档

markdown编辑器

markdown编辑器fork了腾讯的cherry-markdown进行了微改动以适配upupor网站业务及风格

地址: https://github.com/upupor/cherry-markdown

联系方式

微信

QA

0. 数据库建表语句在哪里?

upupor使用了flyway,因此数据库SQL文件维护在upupor-web/src/main/resources/db/migration目录,只需要配置好DB然后启动程序,就会创建相应的表以及执行相应的SQL. 后续如果想新增表或者执行SQL可以直接在migration目录按照规则新建migration文件即可,程序启动时会自动执行.

1.为什么采用 thymeleaf 建站?

upupor用 thymeleaf 的原因是为了做SEO,目前所有页面均采用服务端渲染。在做upupor网站的初期(2019年)前端框架SSR还不成熟,所以没有采用前端SSR. 现在前端SSR方案成熟了很多,现在如果做SEO的话,可以采用前端SSR.

2.计划使用前端SSR方案重构upupor吗?

目前没有计划,我们永远不要为了"技术而技术"! 一个项目是否够好要看是否满足需求。 当然成本也在考虑的范围内,有多少资源做多少事情。一个人开发的时候才用最小技术栈永远是最优的选择。所以从这一点来说,upupor适合单人作战.

用最低的成本拿到相等的收益

3.Upupor接入了哪些三方服务?

  1. Google分析 https://marketingplatform.google.com/about/analytics/?hl=zh-CN
  2. Google广告 https://www.google.com/intl/zh-CN_cn/adsense/start/

4.程序启动时图片不显示怎么处理?

因为有防盗链,只允许localhost、*.upupor.com两个域访问。解决方法:

  • 本机环境使用http://localhost:2020访问
  • 将系统默认的图片地址修改为您本地的图片地址或者您可访问的远程图片地址

5.upupor页面加载性能如何?

下面是Google PageSpeed Insights桌面版的测试结果 PageSpeed Insights性能测试

Google Search 页面体验报告

image

upupor's People

Contributors

yangrunkang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

upupor's Issues

重构文章编辑等操作

重构的原因:

  1. 新增文章、编辑文章、变更状态代码不优化,且代码都在一块,不移维护和拓展
  2. 新增、编辑、更新字段命名不一致,维护困难
  3. 前端js代码重复获取值

在开源页面添加技术栈

主要用【图标+文字+链接】展示

  • MySQL
  • Redis
  • SpringBoot
  • Java8
  • maven
  • cherry-markdown
  • clipboard
  • crop
  • goup
  • sweetalert
  • viewerjs
  • Bootstrap
  • lazysizes
  • JQuery
  • CSS
  • HTML
  • docker
  • migration
  • python
  • shell
  • Javascript
  • thymeleaf
  • tika
  • lombok
  • mybatis-plus
  • fastjson
  • segment
  • guava
  • thumbnailator
  • lucene
  • fastjson
  • logback

新建脱敏字库

有些用户的用户名或者文章内容存在敏感内容,需要脱敏处理。
需要建立脱敏字库,统一处理

【新功能】自定义创作内容id

您期望的新特性描述
支持自定义文章id
方便索引和seo

在新增和编辑时要检验文章ID是否唯一

想法
目前优先实现content表内容自定义id

完善部署文档

  • 完善docker部署文档
  • 自动化部署文档
  • 完善程序运行方法

新增异常活动监控功能

  • 短时间内大量注册用户 同一会话如果一直注册会触发限流
  • 短时间内文章暴增,自动限制发文 单用户短时间内大批量发文会触发限制器
  • 短时间内频繁触发敏感词,自动处理文章为审核中 触发敏感词会替换

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.