MoguBlog Documentation

repository·Nacos·Indexed 23 days ago

https://github.com/moxi624/mogu_blog_v2

A microservice-based, decoupled blog system built with Java and Vue. The documentation covers deployment on low-memory servers, database setup and updates using SQL scripts, Nuxt.js frontend architecture (including layouts, middleware, and plugins), and integration with services like Zipkin, RabbitMQ, and Nginx. It also includes guides for extending the system with new modules and implementing code highlighting via Highlight.js.

Tokens
24.4K
Snippets
53
Records
153
Agent score
78%

What's inside MoguBlog

  1. Overview of MoguBlog

    Nacos

    MoguBlog is a microservice-based, decoupled (front-end and back-end) blog system. It is designed as a learning project for SpringBoot, SpringCloud, and Vue technologies.

    Core Tech Stack:

    • Web: Vue + ElementUi
    • Mobile: uniapp + ColorUI
    • Backend: SpringCloud + SpringBoot + Mybatis-plus
    • Security: Jwt + SpringSecurity
    • Search: ElasticSearch and Solr
    • CI/CD: Github Actions
    • Logging: ElasticStack
    • File Storage: Supports local upload, Qiniu Cloud, and Minio.
  2. Overview of the Moono-lisa CKEditor skin

    Nacos

    Moono-lisa is a monochromatic, flat, and minimalistic skin for CKEditor 4. It has been a default skin since CKEditor version 4.6.0 and is maintained by the core developers.

    Key features include:

    • Chameleon feature: Allows for brightness adjustments.
    • High-contrast compatibility: Designed to work well in high-contrast modes.
    • SVG Graphics: Uses SVG for graphics sources to ensure modern design quality.
  3. Overview of Mogu Blog features

    Nacos

    Mogu Blog is a microservices-based blog system with the following key features:

    • Architecture: Decoupled frontend and backend using JSON for data interaction. Built with SpringCloud and Vue2.x.
    • Search: Supports pluggable full-text search using either ElasticSearch or Solr.
    • Security & Permissions: Implements RBAC (Role-Based Access Control) with fine-grained button-level permissions. Uses Sentinel for traffic control and SpringSecurity for authentication.
    • Third-party Integration: Supports Gitee and Github login via JustAuth. Supports Qiniu Cloud for object storage (with local file storage fallback).
    • Observability: Includes Zipkin for distributed tracing and an ElasticStack (ElasticSearch, Beats, Kibana, Logstash) pipeline for log collection.
    • Mobile Support: Mobile portal built with uniapp and ColorUi.
    • Content Editing: Supports both Markdown (Vditor) and Rich Text (CKEditor).
    • Deployment: Supports container orchestration via Docker Compose and visualization via Portainer.
  4. CKEditor 4 Features and Capabilities

    Nacos

    CKEditor 4 is a highly configurable WYSIWYG HTML editor. Key features include:

    • Content Creation: Rich text with captioned images, videos, tables, and media embeds (tweets, maps, etc.).
    • Import/Export: Pasting content from Microsoft Word and Excel.
    • Media Handling: Drag&drop image uploads.
    • Quality Control: Advanced Content Filter for content quality control.
    • Extensibility: Extensible widget system and over 500 available plugins via the Add-ons Repository.
    • Accessibility: Conforms to WCAG and Section 508.
    • Localization: Over 60 localizations with full RTL support.
  5. Understand CKEditor licensing options

    Nacos

    CKEditor is available under several different licenses. When using, reproducing, modifying, or distributing the software, you can choose to be bound by any one of the following:

    • GNU General Public License (GPL): Version 2 or later.
    • GNU Lesser General Public License (LGPL): Version 2.1 or later.
    • Mozilla Public License (MPL): Version 1.1 or later.

    If you wish to explicitly declare which license you have chosen, you should include a text file titled legal.txt in your version of the software indicating your choice. Your choice does not restrict recipients from using the software under any of the other available licenses.

  6. Understand the "Kama" skin structure for CKEditor

    Nacos

    The "Kama" skin is the default skin for CKEditor 3.x, ported to CKEditor 4 with full feature support. It is composed of several CSS modules for specific UI components and a JavaScript registration file.

    CSS Components

    • editor.css: The main entry point that loads other CSS files.
    • mainui.css: Styles for the editor outline structures.
    • toolbar.css: Styles for the top toolbar area.
    • richcombo.css: Styles for rich combo UI elements on the toolbar.
    • panel.css: Styles for rich combo drop-down panels (loaded on demand).
    • elementspath.css: Styles for the element path bar at the bottom.
    • menu.css: Styles for all editor menus, including context menus and button drop-downs (loaded on demand).
    • dialog.css: Styles for dialog UI (loaded on demand).
    • reset.css: Base style resets for all editor UI spaces.
    • preset.css: Default styles for UI elements reflecting skin preferences.
    • editor_XYZ.css and dialog_XYZ.css: Browser-specific CSS hacks.

    Other Assets

    • skin.js: The core JavaScript file used to register the skin, handle browser-specific files, manage icons, and define the Chameleon feature.
    • icons/: Directory containing all skin-defined icons.
    • images/: Directory containing general-use images.
  7. Understand the LGPL requirements for CKEditor

    Nacos

    CKEditor includes components licensed under the Lesser General Public License (LGPL). When using the library in a combined work (e.g., side-by-side with non-LGPL code), you must adhere to the following requirements:

    1. Separate Distribution: If you distribute a combined library, you must also provide a copy of the LGPL-based work uncombined with other library facilities.
    2. Prominent Notice: You must provide a prominent notice within the combined library stating that part of it is a work based on the LGPL and explaining where to find the uncombined form of that work.
    3. No Additional Restrictions: You may not impose further restrictions on the recipients' exercise of the rights granted by the LGPL.

    Note on Acceptance: By modifying or distributing the library (or any work based on it), you indicate your acceptance of the LGPL terms.

  8. Choose between Eureka and Nacos versions

    Nacos

    MoguBlog is maintained in different branches depending on the service discovery component used:

    • Nacos Version (Recommended): Uses SpringCloudAlibaba components (e.g., Nacos, Sentinel). This is the branch for long-term maintenance. Use the Nacos branch.
    • Eureka Version (Deprecated): Uses standard SpringCloud components. This branch is no longer maintained and will not receive new features. Use the Eureka branch if specifically required.
    • master Branch: This is the stable version based on the Nacos branch.
  9. MoguBlog Community Edition vs. Standard Edition

    Nacos

    MoguBlog offers two main versions:

    1. Standard MoguBlog: A personal blog system.
    2. Community Edition: A multi-user community system. It includes advanced features such as:
      • User contributions and personal profiles
      • Check-ins, following/unfollowing, favorites, and likes
      • Points/Credit modules and VIP privileges
      • User dynamics (Mogu Circle), interview notes, and course modules
      • Message notifications, private messaging, and group chats
      • SEO optimization, image moderation, and task/achievement/medal systems
      • Payment and withdrawal modules

    Note: The Community Edition source code is not open-source. It can be obtained via sponsorship/authorization.

  10. Understand the LGPL licensing for CKEditor

    Nacos

    CKEditor is distributed under the GNU Lesser General Public License (LGPL). When using this library, it is critical to distinguish between a "work based on the library" and a "work that uses the library":

    • Work that uses the library: A program designed to work with the library by being compiled or linked with it, but which contains no derivative of any portion of the library. Such a work, in isolation, is not a derivative work and falls outside the scope of the LGPL.
    • Work based on the library: A work containing the library or a portion of it, either verbatim or with modifications. This includes the library itself or any derivative work under copyright law.

    Key Compliance Requirements for Linking/Distribution:

    If you combine a "work that uses the library" with the library to produce a work containing portions of the library, you may distribute that work under terms of your choice, provided that:

    1. The terms permit modification of the work for the customer's own use.
    2. The terms permit reverse engineering for debugging such modifications.
    3. You give prominent notice that the library is used and that it is covered by the LGPL.
    4. You supply a copy of the LGPL license.
    5. If the work displays copyright notices during execution, you must include the library's copyright notice and a reference to the license.

    To satisfy the source code requirements, you must fulfill one of the following:

    • Option A: Accompany the work with the complete machine-readable source code for the library (including changes) and the object code/source code of the "work that uses the library" so the user can relink a modified library.
    • Option B: Use a suitable shared library mechanism (e.g., using a copy of the library already present on the user's system at runtime) that operates properly with an interface-compatible modified version of the library.
    • Option C: Provide a written offer (valid for 3 years) to provide the materials specified in Option A.
    • Option D: If distributing via a designated download location, offer equivalent access to the materials from that same location.
  11. Understand the MPL 1.1 license for CKEditor components

    Nacos

    Some parts of CKEditor are licensed under the Mozilla Public License (MPL) version 1.1. Key concepts include:

    • Covered Code: The Original Code or Modifications (additions/deletions to files or new files containing parts of the original code).
    • Larger Work: A work that combines Covered Code with code not governed by the MPL.
    • Initial Developer Grant: The Initial Developer grants a worldwide, royalty-free, non-exclusive license to use, reproduce, modify, display, perform, sublicense, and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work.
    • Patent Claims: The license includes rights under patent claims infringed by the making, using, or selling of the Original Code, but excludes patents for code you delete, patents separate from the Original Code, or infringements caused by your modifications or combinations with other software.