You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We're excited to announce the release of version **1.5.1**! This update brings several improvements and bug fixes to enhance usability and stability. Below are the key changes in this release.
14
+
15
+
---
16
+
17
+
## 🔧 Improvements
18
+
19
+
-**Separate Background Color for Navigation**
20
+
The navigation bar now has a distinct background color for better visual separation and improved user experience. *(Thanks @shuashuai & @LinkinStars[#1346](https://github.com/apache/answer/pull/1346))*
21
+
22
+
-**Enhanced Admin Menu**
23
+
The admin menu has been refined for better organization and usability. *(Thanks @shuashuai[#1345](https://github.com/apache/answer/pull/1345))*
24
+
25
+
-**Refined Command Usage Statements**
26
+
Command-line tool usage descriptions have been improved for clarity. *(Thanks @Octobug[#1330](https://github.com/apache/answer/pull/1330))*
27
+
28
+
-**Comprehensive Tests for KV Storage Plugin**
29
+
Added thorough testing for the key-value storage plugin to ensure reliability. *(Thanks @sosyz[#1344](https://github.com/apache/answer/pull/1344))*
30
+
31
+
---
32
+
33
+
## 🐞 Bug Fixes
34
+
35
+
-**Google Login Users Losing Image Access**
36
+
Fixed an issue where users logging in via Google connector couldn't access images. *(Thanks @Giorgio-Bonvicini-R4P[#1334](https://github.com/apache/answer/pull/1334))*
37
+
38
+
-**Username Minimum Length Inconsistency**
39
+
Resolved a mismatch where the admin panel still enforced a 4-character minimum despite the setting being reduced to 2. *(Thanks @sy-records[#1341](https://github.com/apache/answer/pull/1341))*
40
+
41
+
-**Code Snippet Layout Breakage**
42
+
Fixed a bug where code snippets could disrupt the page layout. *(Thanks @shuashuai[#1329](https://github.com/apache/answer/pull/1329))*
43
+
44
+
-**Image Placement When Copying Mixed Content**
45
+
Corrected an issue where pasted images would always appear at the end of copied text-and-image content. *(Thanks @shuashuai)*
46
+
47
+
---
48
+
49
+
## ❤️ Thanks to Our Contributors
50
+
51
+
A huge thank you to all the contributors who helped improve this release (sorted by GitHub ID):
Your contributions make this project better with every update! 🚀
55
+
56
+
---
57
+
58
+
**Upgrade now** to enjoy these improvements and fixes! If you encounter any issues, please report them on [GitHub](https://github.com/apache/answer/issues).
description: "Got your Answer server up and running? Now, let's take it to the next level with HTTPS with the tutorials."
@@ -99,4 +99,4 @@ your.answer.domain {
99
99
}
100
100
```
101
101
102
-
Of course, you can also install Caddy using other methods, such as using the binary file, etc. All in all, I wish you can follow this blog to deploy Answer with HTTPS successfully. If you have any questions, please feel free to leave a question on [Meta](https://meta.answer.dev/). We will try our best to help you.
102
+
Of course, you can also install Caddy using other methods, such as using the binary file, etc. All in all, I wish you can follow this blog to deploy Answer with HTTPS successfully. If you have any questions, please feel free to leave a question on [Meta](https://meta.answer.dev/). We will try our best to help you.
description: "Let's discuss the design and implementation of the plugin system for Answer, and know why we design this way."
@@ -80,4 +80,4 @@ Using [xcaddy](https://github.com/caddyserver/xcaddy/) can easy to make custom b
80
80
In this blog post, we discussed the design and implementation of the plugin system for Answer, a popular open-source Q&A platform.
81
81
We discussed the motivation behind the design, and the features and principles of the plugin system, and provided a step-by-step guide on implementation.
82
82
If you are interested in developing plugins for Answer, please feel free to leave us a comment.
83
-
We will also write an article on how to implement an Answer plugin from scratch, so stay focused!
83
+
We will also write an article on how to implement an Answer plugin from scratch, so stay focused!
description: "Let's discuss the design and implementation of the plugin system for Answer, and know why we design this way."
9
9
10
10
---
11
-
> 1. Why is Answer's plugin system designed in such a way that it seems a bit of difficulty to use?
11
+
> 1. Why is Answer's plugin system designed in such a way that it seems a bit difficult to use?
12
12
> 2. How can I implement plugin functionality using Golang?
13
13
> 3. What exactly does Answer's plugin system do when it is compiled and packaged?
14
14
15
15
## Background
16
-
You can build a Q&A community using answer easily. However, the basic features of Answer may not sufficiently support to every use case.
16
+
You can build a Q&A community using Answer easily. However, the basic features of Answer may not sufficiently support to every use case.
17
17
Therefore, we need to design a plugin system to extend its features.
18
18
As you may know, Answer is built using `React.js` and `Golang`. Both these languages require compilation. So designing a plugin system is a bit difficult.
19
19
20
20
## Goal & Features
21
21
The goal of Answer's plugin system is to provide a **flexible** and **extendable** architecture that can accommodate a wide range of use cases. Some of the key features of the plugin system include:
22
22
23
23
### Connectors
24
-
By default, Answer supports login via email and password. Withing the plugin system, developers can easily integrate other authentication, such as GitHub.
24
+
By default, Answer supports login via email and password. Within the plugin system, developers can easily integrate other authentication, such as GitHub.
Out of the box, Answer stores files in the local file system. However, there could be scenarios where users might prefer to save their uploaded files to a cloud storage service like `S3`. This can be achieved by plugin system.
29
+
Out of the box, Answer stores files in the local file system. However, there could be scenarios where users might prefer to save their uploaded files to a cloud storage service like `S3`. This can be achieved by the plugin system.
@@ -58,18 +58,18 @@ Here are the reasons behind our design choices:
58
58
> This is the main reason why the plugin system is designed this way.
59
59
60
60
`React.js` and `Golang` both these languages require compilation. They are not dynamically executable like some other scripting languages.
61
-
So the plugin system should be static compilation, which means that the application and plugins are compiled together, resulting in a single binary that can be easily distributed and deployed.
61
+
So the plugin system should be a static compilation, which means that the application and plugins are compiled together, resulting in a single binary that can be easily distributed and deployed.
62
62
63
63
#### Fixed Functionality
64
64
The plugin system allows users to add features that are fixed for their specific use cases without changing the core system.
65
65
Furthermore, these functionalities persistently remain operational once they are employed.
66
66
Therefore, it is sufficient to deliberate on the necessities of their incorporation at the initial stage, and subsequently, package them accordingly.
67
-
In the future, we can build a Docker image that contains all officially plugins, thereby enabling users to access the entire range of features. The enablement or disablement of these functionalities can be managed through the plugin control interface.
67
+
In the future, we can build a Docker image that contains all official plugins, thereby enabling users to access the entire range of features. The enablement or disablement of these functionalities can be managed through the plugin control interface.
68
68
69
69
#### Extension
70
-
The most important capability of a plugin system is actually its extensibility.
71
-
It is impossible for a program to provide all the functions that every user wants.
72
-
However, with a plugin system, users can develop their own plugins to help them achieve the functions that they want.
70
+
The most important capability of a plugin system is its extensibility.
71
+
A program can't provide all the functions that every user wants.
72
+
However, with a plugin system, users can develop their plugins to help them achieve the functions that they want.
73
73
74
74
## Reference
75
75
The Caddy is a great open-source software that inspired the design of the Answer plugin system.
@@ -78,6 +78,6 @@ Using [xcaddy](https://github.com/caddyserver/xcaddy/) can easy to make custom b
78
78
79
79
## More
80
80
In this blog post, we discussed the design and implementation of the plugin system for Answer, a popular open-source Q&A platform.
81
-
We discussed the motivation behind the design, the features and principles of the plugin system, and provided a step-by-step guide on implementation.
81
+
We discussed the motivation behind the design, and the features and principles of the plugin system, and provided a step-by-step guide on implementation.
82
82
If you are interested in developing plugins for Answer, please feel free to leave us a comment.
83
-
We will also write an article on how to implement an Answer plugin from scratch, so stay focus!
83
+
We will also write an article on how to implement an Answer plugin from scratch, so stay focused!
0 commit comments