Compare commits

...

1617 Commits

Author SHA1 Message Date
Luffy 3b9f137061 fix: edit question fails when short links enabled (#1554)
CI / Check and lint (push) Has been cancelled
Build Latest Docker Image For Release / build (push) Has been cancelled
Lint / Lint (ubuntu-latest) (push) Has been cancelled
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
Close #1553
2026-07-17 22:38:41 +08:00
Luffy 897fc8c4d4 fix: add missing license entry for mozillazg-go-unidecode (#1552)
Lint / Lint (ubuntu-latest) (push) Has been cancelled
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2026-07-14 16:03:24 +08:00
LinkinStars 2758e23381 fix: update version to 2.0.2 in Makefile and README
Lint / Lint (ubuntu-latest) (push) Has been cancelled
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2026-07-10 10:19:39 +08:00
LinkinStars 9d9f5d06a8 fix: enhance user admin service to manage API keys and filter answer visibility 2026-07-10 10:19:39 +08:00
LinkinStars c589b59dd5 fix: enhance answer visibility checks for user permissions 2026-07-10 10:19:39 +08:00
LinkinStars dc84431768 fix(build): update Docker build process to use buildx and streamline image tagging 2026-07-10 10:19:39 +08:00
LinkinStars 0705ea6bae fix(tests): add mock methods for cache OAuth state in new question notification tests 2026-07-10 10:19:39 +08:00
LinkinStars c52e2eeb1f fix(build): update Go version in Dockerfile to 1.25-alpine 2026-07-10 10:19:39 +08:00
LinkinStars 58dbe2c027 fix(build): streamline Docker image build process in CI configuration 2026-07-10 10:19:39 +08:00
LinkinStars 88c288fdda fix(tests): update goroutine handling in new question email worker tests 2026-07-10 10:19:39 +08:00
LinkinStars f5e25dcb8d fix(notification): remove buffer size parameter from new question email worker for test 2026-07-10 10:19:39 +08:00
Artur Iusupov e06311a514 fix(notification): make new question email queue configurable 2026-07-10 10:19:39 +08:00
Artur Iusupov cb97394211 fix(notification): move new question email throttling to worker 2026-07-10 10:19:39 +08:00
Artur Iusupov dda51232b9 feat(notification): add interval for new question emails 2026-07-10 10:19:39 +08:00
LinkinStars a00cb2d38c fix: update goroutine handling and context imports for consistency 2026-07-10 10:19:39 +08:00
LinkinStars f92a0fe140 Harden Accept-Language parsing 2026-07-10 10:19:39 +08:00
LinkinStars b575fe893b Harden avatar cleanup ownership checks 2026-07-10 10:19:39 +08:00
LinkinStars 54b1b35df5 Align revision audit permission checks 2026-07-10 10:19:39 +08:00
LinkinStars 06a0f742f2 fix external login account binding 2026-07-10 10:19:39 +08:00
Artur Iusupov 3a5a15fe77 fix(site): require explicit email verification setting
Replace OptionalBool with an explicit require_email_verification value for the login settings save request while keeping legacy read defaults intact.

Use positive RequireEmailVerification naming through the registration flow and inline the site setting mapping.

Add validation, save-path, and registration coverage for the explicit email verification setting.
2026-07-10 10:19:39 +08:00
Artur Iusupov 7123326515 feat(site): allow disabling email verification 2026-07-10 10:19:39 +08:00
hgaol 4aa52a6b52 fix: accept answer fails when short links enabled (#1541)
The ownership check added to AcceptAnswer compared the answer's QuestionID
against the request's QuestionID directly. When short links are enabled,
answerRepo.GetByID re-encodes QuestionID to its short form while the
controller de-shorts req.QuestionID to its long form, so the two encodings
of the same question never matched and every accept returned "Answer do not
found". Normalize both ids via uid.DeShortID before comparing, preserving the
privilege-escalation guard for answers that truly belong to another question.
2026-07-10 10:19:39 +08:00
hhc7 9234d80246 fix: scope JSON 500 to API routes, skip rewriting already-flushed responses 2026-07-10 10:19:39 +08:00
hhc7 10be96814e feat: add recovery middleware to handle panic gracefully 2026-07-10 10:19:39 +08:00
Ahmed Qasid a6d867e4cc fix: avoid topic fallback for non-Latin titles via pragmatic ASCII transliteration (#1526)
# fix: avoid `topic` fallback for non-Latin titles via pragmatic ASCII
transliteration

> **Scope update (in response to review):** this PR is intentionally
broader than its original "Arabic-only" framing. The implementation
changes URL slug generation for **every non-Latin, non-CJK script** that
`slugify` previously stripped — see *Scope* below for the explicit list.
The goal is *not* linguistically correct romanization; it is "avoid
collapsing to `/topic` by producing a usable ASCII slug."

## What this PR is (and isn't)

**Goal:** when a question title contains characters outside Basic Latin
/ Latin Extended / CJK Han, generate a URL slug that is a deterministic
ASCII approximation instead of letting `slugify` strip everything and
falling back to the literal `"topic"`.

**Non-goal:** this is *not* a linguistically correct multi-language
romanizer. The output is a machine-acceptable ASCII slug, not what a
native speaker would choose. For example, `こんにちは` → `konnichiha` (not
the more natural `kon'nichiwa`), `ไทย` → `aithy` (not `thai`). Treat the
slug as an opaque, stable, indexable identifier — the
path-after-`/questions/<id>/` is for SEO and shareability, the canonical
reference is always the ID.

## The bug

Pure non-Latin titles previously got stripped by `slugify.Slugify`, hit
the empty-result fallback in `htmltext.UrlTitle`, and collapsed to the
literal slug `"topic"`. On a live multilingual site, every Arabic / Thai
/ Japanese-hiragana / Korean / Hebrew / Cyrillic question ended up at
`/questions/<id>/topic`.

## The fix

`UrlTitle()` gets a `convertNonLatin` pre-step that mirrors the existing
`convertChinese` pre-step pattern, using
`github.com/mozillazg/go-unidecode` (same author as `go-pinyin` already
in the repo, to minimise new-dep friction).

```
UrlTitle(title)
  → convertChinese(title)        // pre-existing: Han-block → pinyin
  → convertNonLatin(title)       // NEW: detect non-Latin letters → unidecode to ASCII
  → clearEmoji / slugify / url.QueryEscape / cutLongTitle (unchanged)
```

The non-Latin detector skips ASCII, Latin-1 Supplement, Latin
Extended-A/B, and CJK Han. Inputs that hit none of those non-Latin
letter categories short-circuit and return unchanged, so Latin-only and
Chinese-only inputs remain byte-identical (pinned by tests).

## Scope — what scripts are affected

This PR changes behavior for **any** title containing letters in scripts
that `slugify` doesn't handle. Confirmed by tests in
`pkg/htmltext/htmltext_test.go`:

| Script | Example title | Before | After |
| --- | --- | --- | --- |
| Arabic | `كيف حالك` | `topic` | `kyf-hlk` |
| Mixed Latin + Arabic | `مرحبا hello` | `hello` | `mrhb-hello` |
| Thai | `ไทย ไทย` | `topic` | `aithy-aithy` |
| Japanese hiragana | `こんにちは` | `topic` | `konnichiha` |
| Korean | `안녕하세요` | `topic` | `annyeonghaseyo` |
| Hebrew | `שלום עולם` | `topic` | `shlvm-vlm` |
| Cyrillic | `Привет мир` | `topic` | `privet-mir` |

**Unchanged:**

| Case | Behavior |
| --- | --- |
| Pure Latin (`hello world`) | unchanged → `hello-world` |
| Pure Chinese (`这是一个,标题,title`) | unchanged → `zhe-shi-yi-ge-biao-ti`
(pinyin path) |
| Japanese with Han-block kanji (`日本`) | unchanged → `ri-ben` (caught by
pre-existing pinyin path; treated as Chinese reading, not Japanese — a
pre-existing limitation, **not** introduced by this PR) |
| Emoji only (`😂😂😂`) | unchanged → `topic` |
| Empty / whitespace | unchanged → `topic` |

## Transliteration quality — explicit acknowledgement

`go-unidecode` is a generic Unicode → ASCII approximation. It is **not**
a per-language romanization library. Specifically:

- It will pick *one* approximation per codepoint regardless of language
context. `ใ` → `ai` (Thai romanization is `i` or `ai` depending on
standard), `한` → `han`, `語` → `Yu` (Chinese pinyin reading even when
used in Japanese), etc.
- The result is *good enough* to be a stable, URL-safe,
human-recognizable handle, but speakers of the source language will not
consider it "correct."
- It is deterministic, so the same title always produces the same slug —
important since `url_title` is recomputed on every request.

If maintainers prefer to scope this PR more narrowly (e.g. Arabic only,
and reject Thai/Hebrew/Cyrillic/etc.), the detector in
`containsNonLatin` can be tightened to specific Unicode blocks — but
that means the other scripts continue to collapse to `topic`, which is
the bug we're trying to fix. I'd argue the broader fix is preferable to
a piecemeal one, but happy to narrow if you want.

## Live deployment / real-world verification

This patch has been running in production on
**[ask.namasoft.com](https://ask.namasoft.com)** (an Apache Answer
instance we operate) since deployment, built directly from this branch
via `docker compose build`. The site hosts Arabic-language questions, so
the fix exercises the affected code path on every page load.

Sample question URL on the deployed instance:

> `https://ask.namasoft.com/questions/10010000000000115`

The slug in the URL is the transliterated Arabic title rather than
`topic`. No data migration was needed since `url_title` is computed on
every request from `Title` and never persisted (see *Why this is safe to
ship* below).

## Admin-configurable

The transliteration is gated by a package-level `atomic.Bool` (default
**on**, since the current behavior is objectively broken for affected
users):

- `htmltext.SetTransliterateNonLatin(enabled bool)`
- `htmltext.IsTransliterateNonLatinEnabled() bool`

This is deliberately the minimum surface needed to satisfy "the setting
must be readable from `UrlTitle()`". A follow-up PR can add an admin UI
section that calls `SetTransliterateNonLatin` on save and on startup,
without having to re-plumb every `htmltext.UrlTitle` call site through
`context.Context`.

**Default choice — please confirm:** I picked **default-on** because the
existing `topic` behavior is a bug for affected users. If you'd prefer
default-off for strict backward compat on existing installs, flip the
`init()` in `pkg/htmltext/htmltext.go` to `Store(false)` and surface the
toggle as opt-in.

## Why this is safe to ship

- `url_title` is **not** a persisted column. It's not on the `Question`
entity in `internal/entity/question_entity.go`, no migration has ever
added/dropped it, and every call site (`question_service.go`,
`revision_service.go`, `vote_service.go`,
search/report/review/rank/comment services, controllers, repos)
recomputes it from `Title` at response-build time via
`htmltext.UrlTitle(...)`.
- That means the fix is read-only: existing rows light up with correct
slugs on the next request, with no migration and no data rewrite.
- Rollback is just redeploying the prior image; nothing on disk changes.

## Test coverage

`pkg/htmltext/htmltext_test.go`:

- **`TestUrlTitleTable`** — table-driven, one case per affected script
(the full matrix above), plus:
  - `empty` → `topic`
  - `pure latin unchanged` → byte-identical to pre-fix
- `pure chinese unchanged` → byte-identical to pre-fix (pins existing
pinyin behavior)
- `japanese kanji goes through pinyin path unchanged` → documents the
pre-existing Han-block limitation
  - `emoji only falls back to topic` → unchanged
- `long arabic truncates at cutLongTitle boundary` → exercises the
150-byte cap and UTF-8 boundary safety
- **`TestUrlTitleTransliterationToggle`** — with the toggle off,
non-Latin titles collapse to `topic` (pre-fix behavior); with it on,
they transliterate.
- Existing `TestUrlTitle` left untouched.

Test plan for reviewers:

- [ ] `go test ./pkg/htmltext/...` — all pass
- [ ] Visit the live sample URL above and confirm slug is
transliterated, not `topic`
- [ ] Verify Chinese / Latin / emoji-only / empty behavior is
byte-identical to `main` (covered by table tests)

## Out of scope (intentionally)

- No admin UI / site setting plumbing in this PR — see
*Admin-configurable* above. Happy to do the React `Non-Latin Languages
Handling` admin page + `SiteType` + service / controller / migration in
a follow-up if maintainers want it.
- No change to the `"topic"` empty-result fallback.
- No plugin interface for slug generation — mirrored the existing
`convertChinese` pre-step pattern instead.
- No per-language romanization library — this is an explicit non-goal;
see *Transliteration quality* above.

## Issues / discussion

I didn't find an existing upstream issue covering this — happy to be
pointed at one if there is.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: LinkinStars <linkinstar@foxmail.com>
2026-07-10 10:19:39 +08:00
Luffy 4b8de1897b fix: update license entries 2026-07-10 10:19:39 +08:00
Luke Gao 09eaa5b7e3 feat: add reasoning content to AI conversation records and update related components (#1530)
Fix #1524 

Root cause

DeepSeek's reasoning models stream reasoning_content alongside content.
Answer ignored it, so follow-up requests failed with 400: The
reasoning_content in the thinking mode must be passed back to the API,
and the thinking text was never shown or saved.

Fix

- Capture reasoning_content from the stream and pass it back to theAPI
on subsequent rounds.
 - Persist it with the conversation (new DB column via migrationv2.0.2).
- Render it in the chat UI as a collapsible "Thinking…/Thoughts"panel
above the answer.

Compatibility

Nullable column, omitempty field, UI hides the panel when empty — old
conversations and non-reasoning models behave exactly as before.

Demo



https://github.com/user-attachments/assets/49b1a2a1-9133-4ac2-bbeb-860215a50285
2026-07-10 10:19:39 +08:00
robin 2746bf5b45 fix: update copyright year to 2026
Build Latest Docker Image For Release / build (push) Has been cancelled
Lint / Lint (ubuntu-latest) (push) Has been cancelled
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-25 10:46:54 +08:00
Luffy f9941827b1 fix: missing uuid license 2026-05-25 10:38:59 +08:00
LinkinStars 48b4622aca chore: update Docker actions to specific versions for consistency
Lint / Lint (ubuntu-latest) (push) Has been cancelled
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2026-05-20 14:27:00 +08:00
LinkinStars 2a442d333c chore: update Docker actions to latest versions for improved stability 2026-05-20 14:27:00 +08:00
LinkinStars 84204a718a chore: update GitHub Actions to use latest versions of setup actions 2026-05-20 14:27:00 +08:00
LinkinStars 5be5c84a26 chore: update version to 2.0.1 2026-05-20 11:29:14 +08:00
LinkinStars a218924ba0 Merge remote-tracking branch 'origin/dev' into test 2026-05-20 11:20:08 +08:00
robin 316417961a fix: attachment upload broken after v2.0.0 upgrade (#1525)
- base.ts: add replaceRange method to CodeMirror adapter
- file.tsx: use replaceSelection to insert loading text (fixes RangeError)
- file.tsx: use useState/useEffect for stable editorState reference in async callbacks

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-19 10:15:36 +08:00
LinkinStars b1da65fbe4 Merge remote-tracking branch 'origin/fix/2.0.1/chat' into test 2026-05-11 12:16:58 +08:00
LinkinStars 0aca063077 Merge remote-tracking branch 'origin/dev' into test 2026-05-11 12:16:49 +08:00
LinkinStars 11091244f6 fix(user): enhance avatar validation by adding checks for custom avatars and file ownership 2026-05-11 12:05:18 +08:00
LinkinStars d1a4092c61 fix(email): enhance email templates by escaping HTML characters in dynamic content 2026-05-09 16:07:09 +08:00
LinkinStars 11c80384f1 fix(chat): enhance visibility checks by adding admin moderator support in answer and comment services 2026-05-09 15:13:50 +08:00
Herrtian ab236f2d6a fix(helm): keep install port aligned with service port
Signed-off-by: Tian Teng <tian.teng@emerson.com>
2026-05-08 20:09:04 +08:00
LinkinStars 97924574c4 Merge remote-tracking branch 'origin/dev' into test 2026-05-08 19:58:22 +08:00
hgaol e3831b6f52 refactor: streamline plugin initialization by removing redundant search syncer registration 2026-05-08 19:57:19 +08:00
hgaol c93f3bc5c3 refactor: simplify SaveSiteAI method by removing unnecessary error handling 2026-05-08 19:57:19 +08:00
hgaol 278fdfd8c3 refactor: rename UpdateSearch to updateSearch for consistency 2026-05-08 19:57:19 +08:00
hgaol 2836d0ea81 chore: add Apache License header to multiple files 2026-05-08 19:57:19 +08:00
hgaol ac7bdda074 fix lint 2026-05-08 19:57:19 +08:00
hgaol 057679a2bf refactor: remove unused build-local-vector-plugins target and delete VECTOR_SEARCH_DESIGN.md 2026-05-08 19:57:19 +08:00
hgaol 5d923f8ca3 feat: add vector sync service and integrate with answer and question services 2026-05-08 19:57:19 +08:00
hgaol 7d0714dd1a fix lint 2026-05-08 19:57:19 +08:00
hgaol 8dd55af6cd fix lint 2026-05-08 19:57:19 +08:00
hgaol 22c2a5c276 feat: implement vector search plugin and syncer for question/answer embeddings
- Added a new vector search syncer to aggregate questions and answers with comments for vector embedding.
- Introduced a new VectorSearch interface and related structures for managing vector storage and similarity search.
- Refactored embedding service to delegate semantic search to the new vector search plugin.
- Removed embedding-related fields from SiteAIProvider and UI forms as part of the transition to the new vector search architecture.
- Updated plugin registration to include vector search capabilities.
- Cleaned up embedding service methods and removed unused dependencies.
2026-05-08 19:57:19 +08:00
hgaol f346bcc8fa update init tables 2026-05-08 19:57:19 +08:00
hgaol dc71f4a292 fix lint issue 2026-05-08 19:57:19 +08:00
hgaol dea18f997c feat: support semantic search in AI chat and embedding ability 2026-05-08 19:57:19 +08:00
hgaol 71d11b6205 fix: resolve local plugin paths to absolute and enhance module replacement logic 2026-04-15 19:43:57 +08:00
LinkinStars 9da00a807d fix(build): enhance module replacement handling for v2+ versions and implement local cloning 2026-04-15 16:15:13 +08:00
LinkinStars cfc3e54f30 fix(image): enhance image decoding by implementing format-specific checks for JPEG, PNG, and GIF 2026-03-25 19:31:31 +08:00
LinkinStars 2dbe594da2 fix(short_id): enhance GetEnableShortID to support gin context for short ID flag retrieval 2026-03-04 12:04:52 +08:00
LinkinStars 36b548140e Merge remote-tracking branch 'origin/dev' into test 2026-03-03 12:17:41 +08:00
LinkinStars 3c5c47b91b Merge remote-tracking branch 'origin/fix/2.0.1/chat' into test 2026-03-03 12:17:36 +08:00
LinkinStars 6fc25c69f4 fix(auth): add API key scope checks to enhance authorization security 2026-03-03 12:17:20 +08:00
maishivamhoo123 ff997cb014 fix: update migration version to v2.0.1 and remove default value for TEXT column 2026-03-02 17:37:43 +08:00
maishivamhoo123 09599e4c20 style: apply gofmt formatting 2026-03-02 17:37:43 +08:00
maishivamhoo123 844c73cd7f fix: change avatar column type to TEXT to support long URLs 2026-03-02 17:37:43 +08:00
MakiWinster d6cb1b119f fix: update bubble user background color for dark mode 2026-03-02 16:14:07 +08:00
MakiWinster 52880f9d5a fix: update bubble user background color for dark mode 2026-03-02 16:14:07 +08:00
LinkinStars 659d1f6ad9 Merge remote-tracking branch 'origin/fix/2.0.1/chat' into test 2026-02-09 23:36:02 +08:00
LinkinStars 7952075ce5 fix: normalize ObjectID and CommentID in comment requests 2026-02-09 23:35:17 +08:00
LinkinStars 52d057ef18 fix: add ID validation and normalization functions for comment handling 2026-02-09 20:27:37 +08:00
LinkinStars 869b040e92 fix(auth): enhance admin user cache management and add status checks for email verification and suspension 2026-02-06 20:31:54 +08:00
LinkinStars 0db88d63e3 fix(chat): implement HTML rendering for display content 2026-02-06 18:07:52 +08:00
LinkinStars 92994b4997 fix: add IsAdminModerator field to request structs and implement visibility checks for timeline objects 2026-02-06 15:32:45 +08:00
LinkinStars 638fb082c5 fix: enhance bracket handling in formatting and add concurrency test for internationalization 2026-02-05 16:17:32 +08:00
kumfo fca80abbaf fix: correct variable name in JSON unmarshal for site general information 2026-02-03 11:07:48 +08:00
LinkinStars a6bfd402b6 fix: update AI provider configuration ID in default settings
Build Latest Docker Image For Release / build (push) Has been cancelled
Lint / Lint (ubuntu-latest) (push) Has been cancelled
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2026-01-29 17:02:43 +08:00
LinkinStars a55b4c65d2 fix: update Russian translation for unlist post title 2026-01-29 17:02:43 +08:00
LinkinStars 5ec9d8b623 fix: add AI provider configuration to initialization data 2026-01-29 17:02:43 +08:00
shuai ff6b5736c3 fix: admin users-setting page title should be users 2026-01-29 17:02:15 +08:00
LinkinStars d47d7cc452 fix: update Indonesian and Russian translations for tag creation and appreciation 2026-01-29 16:50:25 +08:00
LinkinStars 90022ce039 fix: integrate API key authentication into existing services and routes 2026-01-29 16:50:25 +08:00
shuai 50a96809d8 fix: Installation of the fourth part of form validation error 2026-01-29 16:50:25 +08:00
LinkinStars a08c124748 fix: update translations for Czech, Indonesian, and Russian languages
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
Lint / Lint (ubuntu-latest) (push) Has been cancelled
2026-01-29 12:28:40 +08:00
LinkinStars b522a168e3 feat: add GetConfigByKeyFromDB method to retrieve config directly 2026-01-29 11:15:38 +08:00
LinkinStars e5cb38bd74 chore: add license files and update Go version to 1.24.0 2026-01-28 17:30:31 +08:00
LinkinStars 7dfb8b320e New translations (#1486)
Co-authored-by: Sunny <1147886+sunshineg@users.noreply.github.com>
2026-01-28 16:24:27 +08:00
LinkinStars 34c1e8a38a docs(Makefile): upgrade version to 2.0.0
Lint / Lint (ubuntu-latest) (push) Has been cancelled
2026-01-28 15:45:39 +08:00
LinkinStars 4fd96675f3 fix: improve Brotli compression handling and validate user input in vote status 2026-01-28 12:11:28 +08:00
LinkinStars a5edc4fc01 feat: add advanced site settings and related API endpoints 2026-01-28 11:15:40 +08:00
LinkinStars 2a99d234ea Merge remote-tracking branch 'origin/feat/1.8.0/new-cp-fe' into test
# Conflicts:
#	docs/docs.go
#	docs/swagger.json
#	docs/swagger.yaml
#	internal/base/constant/site_type.go
#	internal/controller/ai_controller.go
#	internal/controller/siteinfo_controller.go
#	internal/migrations/migrations.go
#	internal/schema/siteinfo_schema.go
#	internal/service/mock/siteinfo_repo_mock.go
2026-01-28 11:13:44 +08:00
LinkinStars 8b61cad014 fix(lint): resolve the lint issue 2026-01-27 17:49:29 +08:00
LinkinStars bdd1949a96 Merge remote-tracking branch 'origin/dev' into test
# Conflicts:
#	go.mod
#	internal/base/translator/provider.go
2026-01-27 17:39:45 +08:00
LinkinStars 9ea13af860 feat(revision): enhance revision management with object status handling 2026-01-27 17:38:47 +08:00
ferhat elmas b83d0214c7 feat(ci): add lint action
related to #1432

Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2026-01-27 16:08:00 +08:00
shuai ef54781b77 fix: mcp menu moved to ai assistant 2026-01-26 14:29:20 +08:00
shuai cc1567ac4b fix: Fix incorrect default value when the input type is number in SchemeForm. 2026-01-26 14:25:25 +08:00
LinkinStars f403eadb2c feat: add AI conversation management endpoints and update related schemas 2026-01-23 17:28:19 +08:00
LinkinStars 94c030829d fix: correct loop iteration in AI conversation rounds 2026-01-23 17:25:46 +08:00
LinkinStars ce5aadf30d feat: add AI configuration support with related controllers and services 2026-01-23 17:25:42 +08:00
LinkinStars 9fbf9e4ff4 fix: correct loop iteration in AI conversation rounds 2026-01-23 17:22:13 +08:00
dashuai dc7f752128 Support AI Assistant and MCP functions (#1477)
1. Add AI assistant-related business. 
2. Add Mcp related configuration in the management background
2026-01-23 17:12:26 +08:00
LinkinStars c1549d2909 feat: add AI configuration support with related controllers and services 2026-01-23 17:09:05 +08:00
kumfo c509723f29 feat(docs): add layout property with enum options to schema definitions 2026-01-22 15:14:01 +08:00
shuai 06e9d437e0 fix: Changes in the editor content will reset the values of other form fields. 2026-01-22 15:13:23 +08:00
shuai 2d02452e17 fix: Changes in the editor content will reset the values of other form fields. 2026-01-22 14:50:53 +08:00
dashuai 630ac20a38 Management Backend Menu and Function Adjustments (#1474)
…ent, regardless of functional split or reorganization
2026-01-22 14:07:30 +08:00
kumfo f3dddfeb0e Merge remote-tracking branch 'origin/feat/1.8.0/menu' into feat/1.8.0/menu 2026-01-22 12:28:35 +08:00
kumfo 86c2d64dbf feat(docs): add Apache License 2.0 header to docs.go and swagger.yaml 2026-01-22 12:25:37 +08:00
kumfo 73cfbace70 feat(menu): deprecate default_avatar and gravatar_base_url in SiteInterfaceReq schema 2026-01-22 12:25:37 +08:00
kumfo 18b76f3e23 feat(siteinfo): add site_security to response structure and update related schemas 2026-01-22 12:25:37 +08:00
kumfo 6369056914 feat(siteinfo): fix GetSiteTag method to correctly assign response from siteInfoCommonService 2026-01-22 12:25:37 +08:00
kumfo 128c44f5a3 feat(menu): update schema to remove deprecated min_tags and add MinimumTags to SiteQuestionsReq 2026-01-22 12:25:37 +08:00
kumfo 3264fdd1d9 feat(siteinfo): refactor site legal and security settings to use new policies and security endpoints 2026-01-22 12:25:37 +08:00
kumfo c2a0bee7dc feat(siteinfo): add users settings endpoint and update interface settings structure 2026-01-22 12:25:37 +08:00
kumfo 9efa9471bd feat(menu): update admin menu settings to include questions, tags, and advanced options 2026-01-22 12:25:37 +08:00
kumfo f05f1eb80d feat(menu): update admin menu settings to include questions, tags, and advanced options 2026-01-22 12:25:32 +08:00
kumfo d65e257f92 feat(docs): add Apache License 2.0 header to wire_gen.go 2026-01-22 12:21:02 +08:00
kumfo 8b8550e9ca feat(docs): add Apache License 2.0 header to docs.go and swagger.yaml 2026-01-22 12:18:57 +08:00
kumfo 81511e386a feat(menu): deprecate default_avatar and gravatar_base_url in SiteInterfaceReq schema 2026-01-22 11:49:50 +08:00
kumfo 60f8cd1803 feat(siteinfo): add site_security to response structure and update related schemas 2026-01-22 10:59:28 +08:00
kumfo 0bb33e7ea4 feat(siteinfo): fix GetSiteTag method to correctly assign response from siteInfoCommonService 2026-01-21 17:21:28 +08:00
kumfo 94de21361e feat(menu): update schema to remove deprecated min_tags and add MinimumTags to SiteQuestionsReq 2026-01-21 16:29:08 +08:00
kumfo f0636d4369 feat(siteinfo): refactor site legal and security settings to use new policies and security endpoints 2026-01-21 16:06:17 +08:00
kumfo 0d7979e901 feat(siteinfo): add users settings endpoint and update interface settings structure 2026-01-21 09:39:37 +08:00
kumfo 3cd3e4a888 feat(menu): update admin menu settings to include questions, tags, and advanced options 2026-01-20 15:32:45 +08:00
kumfo 29ec29bde7 feat(menu): update admin menu settings to include questions, tags, and advanced options 2026-01-20 14:54:52 +08:00
LinkinStars 6b834c745a Merge remote-tracking branch 'origin/dev' into test 2026-01-14 11:31:17 +08:00
LinkinStars 5be6ec9e71 docs(lic): add MIT license file and clean up init function in install_main.go 2026-01-14 11:30:50 +08:00
maishivamhoo123 3d5465334c fix: added the init fuction in install_main.go 2026-01-14 11:26:00 +08:00
maishivamhoo123 f6d30a5b57 chore: revert documentation changes in README 2026-01-14 11:26:00 +08:00
maishivamhoo123 d773b86906 fix: remove unrelated generated files 2026-01-14 11:26:00 +08:00
maishivamhoo123 1fbb802e8f feat: load optional .env file and add .env.example 2026-01-14 11:26:00 +08:00
ferhat elmas 5ff6106d37 fix: address comments and add a test
Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2026-01-14 11:22:53 +08:00
ferhat elmas 26d868b123 refactor(queue): improve queues
* fix race condition for registering handler
* add close method
* use generics to reduce duplication
* rename packages to drop underscore for go convention
* rename interface to drop stutter with package name

Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2026-01-14 11:22:53 +08:00
shuai d7d692bb37 fix: Fixed-layout navigation aligns with the width of the main content. 2025-12-31 15:37:38 +08:00
LinkinStars d5c07f18ad Merge remote-tracking branch 'origin/dev' into test 2025-12-29 14:45:52 +08:00
Yusuke Tanaka a1f0b0963b fix: update migration version from v1.7.1 to v1.7.2 2025-12-29 10:28:27 +08:00
Yusuke Tanaka 57f31ec7eb fix: expand avatar column length from 1024 to 2048
The avatar column was too short to store long URLs from external OAuth
providers. When users log in via connector-google plugin, the Google
profile picture URL can exceed 1024 characters, causing a database error:

  Error 1406 (22001): Data too long for column 'avatar' at row 1

This change expands the avatar column from VARCHAR(1024) to VARCHAR(2048).

Note: While URLs can technically exceed 2048 characters per specification,
2048 is the practical limit supported by most browsers and services.
URLs longer than 2048 characters are extremely rare in real-world usage.
2025-12-29 10:28:27 +08:00
Douglas Cortez c8908b7b34 fix(review): notifications from the specific external system will take precedence 2025-12-29 10:27:00 +08:00
Douglas Cortez 42f8947e7c fix(notification): use SSO provider for external_id lookup in notifications 2025-12-29 10:27:00 +08:00
liqiang46 61d9bf34d3 修复最佳评论越权问题
在AcceptAnswer方法中添加了安全检查,确保要设置为最佳答案的回答确实属于该问题。
这可以防止攻击者将其他问题的回答设置为当前问题的最佳答案。

安全问题:越权设置最佳评论
修复方法:验证acceptedAnswerInfo.QuestionID == req.QuestionID
2025-12-29 10:24:01 +08:00
LinkinStars 9e236f65a3 Merge remote-tracking branch 'origin/feat/1.7.2/ui' into test 2025-12-25 12:03:42 +08:00
robin 762e8a739d fix(gitignore): correct node_modules entry and remove specific plugin exceptions 2025-12-25 11:51:14 +08:00
robin 78714e83cf feat(editor): implement image upload functionality with validation and hooks 2025-12-25 11:50:55 +08:00
robin aa7e19b896 Remove TipTap editor utility files including commands, constants, error handling, events, position conversion, and table extension to streamline the editor's functionality and reduce code complexity. 2025-12-22 18:25:42 +08:00
shuai cf7f601cb0 Merge branch 'test' of github.com:apache/answer into test 2025-12-22 17:29:31 +08:00
shuai c8881889c8 fix: admin.themes layout initial value 2025-12-22 17:29:17 +08:00
LinkinStars 462931a309 Merge remote-tracking branch 'origin/feat/1.7.2/layout' into test 2025-12-22 15:30:07 +08:00
shuai f92d3a3481 fix: update zh_CN.ymal content 2025-12-19 15:45:19 +08:00
shuai 92d853ce3c fix: add i18n 2025-12-19 14:14:37 +08:00
shuai 2ae309abc3 fix: delete log 2025-12-19 14:11:42 +08:00
shuai b5ae2d0351 fix: admin/themes add layout config 2025-12-19 14:09:38 +08:00
LinkinStars d3a29e7ad9 feat(theme): add layout options for site theme configuration 2025-12-19 12:23:55 +08:00
robin 0bad2c7249 chore(dependencies): update TipTap packages to version 3.13.0
- Upgraded all TipTap related dependencies in package.json and pnpm-lock.yaml to version 3.13.0 for improved functionality and compatibility.
- Ensured consistent versioning across all TipTap extensions and core packages.
2025-12-18 10:46:36 +08:00
robin 1c2c733190 feat(editor): enhance plugin system and improve command methods
- Introduced PluginSlot component for better plugin insertion in the editor.
- Updated MDEditor to default to 'markdown' mode for improved user experience.
- Refactored command methods in TipTap to use chaining for better selection handling.
- Enhanced PluginRender to load plugins asynchronously and prevent duplicate registrations.
2025-12-18 10:43:59 +08:00
robin ffa8dc2bb8 feat(editor): update TipTap dependencies and enhance table functionality
- Added @tiptap/core version 3.13.0 to package.json and updated related dependencies in pnpm-lock.yaml.
- Refactored RichEditor to utilize new table extension with responsive wrapper and improved styling.
- Adjusted editor mode initialization in MDEditor to default to 'rich' for enhanced user experience.
- Removed redundant styles from index.scss to streamline the editor's appearance.
2025-12-17 14:20:09 +08:00
robin 7a4b57d1ff refactor(editor): improve editor component functionality and code clarity
- Updated ToolItem component to ensure consistent return type for command functions.
- Modified heading toolbar to allow optional label parameter in handleClick function.
- Enhanced image component comments for clarity on editor state updates and event listener management.
- Cleaned up utility functions in htmlRender to remove unnecessary comments and improve readability.
2025-12-17 10:50:36 +08:00
robin d87726bd6e refactor(editor): enhance editor components with base props and initialization logic
- Introduced BaseEditorProps interface to standardize props across MarkdownEditor and RichEditor components.
- Improved initialization logic in RichEditor and MarkdownEditor to handle editor state more effectively.
- Updated useEditor hook to support initial values and prevent unnecessary updates during prop changes.
- Refactored command methods to utilize dispatch for state changes in CodeMirror editor.
2025-12-17 10:38:31 +08:00
robin 498c142198 feat(editor): rename WYSIWYG editor to Rich editor and implement new RichEditor component
- Updated the editor mode from WYSIWYG to Rich in the MDEditor component.
- Introduced a new RichEditor component utilizing TipTap for enhanced editing capabilities.
- Adjusted styles and references in the editor components to reflect the new naming convention.
2025-12-16 15:07:29 +08:00
robin 3d43700556 refactor(editor): streamline editor component structure and enhance command methods
- Removed unnecessary conditional rendering in the MDEditor component for the PluginRender.
- Simplified the MarkdownEditor component's useEffect hooks for better clarity.
- Refactored command methods to utilize self-referencing for improved maintainability.
2025-12-16 14:50:29 +08:00
robin 762773cedb chore: clean up pnpm-lock.yaml by removing unused dependencies and updating existing ones 2025-12-16 14:50:19 +08:00
Gregorius Bima Kharisma Wicaksana c2a62804b0 fix: add feedback after successfully adding a user in admin panel (#1462)
## Summary
- Show success toast notification after user is added
- Refresh user list and navigate to 'normal' filter on page 1 to display
the newly added user

## Problem
When adding a user in Admin -> Users, the page had no feedback after
submission (as reported in #1457).

**Root cause:** The code only refreshed the user list if the current
filter was "all" or "staff", but the default filter is "normal".
Additionally, there was no success toast notification.

## Solution
1. Added toast notification to confirm successful user creation
2. After adding user, navigate to "normal" filter page 1 and refresh the
list so the new user is visible

## Test plan
1. Go to Admin -> Users
2. Click "Add User"
3. Submit user information
4.  Success toast should appear
5.  Page should navigate to "normal" filter
6.  Newly added user should be visible in the list

Fixes #1457

---------

Co-authored-by: LinkinStars <linkinstar@foxmail.com>
2025-12-16 14:43:21 +08:00
robin 9ef55ca07c feat(editor): integrate TipTap WYSIWYG editor with Markdown support and enhance editor functionalities
- Added TipTap extensions for image, placeholder, table, and markdown support.
- Implemented WYSIWYG and Markdown editor components.
- Refactored editor context and tool items to utilize the new editor interface.
- Updated styles for the WYSIWYG editor.
- Removed deprecated utility functions and integrated new command methods for better editor interaction.
2025-12-16 11:08:48 +08:00
LinkinStars 3000e3aec0 Fix/translation (#1460)
Build Latest Docker Image For Release / build (push) Has been cancelled
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2025-12-15 15:48:45 +08:00
LinkinStars 59408774fb fix(lang): correct translations in Polish and Turkish language files 2025-12-15 15:10:10 +08:00
LinkinStars e35b955159 fix(lang): enhance language retrieval from gin context 2025-12-15 12:34:42 +08:00
LinkinStars 3ddec99837 Merge remote-tracking branch 'origin/main' into dev
# Conflicts:
#	i18n/pl_PL.yaml
#	i18n/tr_TR.yaml
2025-12-11 15:12:43 +08:00
LinkinStars fbb877ab11 fix(translator): enhance error reporting for invalid translator YAML files 2025-12-11 14:23:17 +08:00
LinkinStars 216786a6de New translations (#1456)
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
Co-authored-by: Sunny <1147886+sunshineg@users.noreply.github.com>
2025-12-11 14:14:06 +08:00
LinkinStars dd836497e3 style(sideNav): update ASF header 2025-12-11 11:47:53 +08:00
LinkinStars 8412ccdc12 docs(Makefile): upgrade version to 1.7.1 2025-12-11 11:47:53 +08:00
liruohrh 8f5c164e38 feat: add env for glob load template files by gin debug render 2025-12-11 11:47:53 +08:00
Burak Tekin c82f0a4fdd chore: turkish translation improved (#1454)
turkish translations improved

Co-authored-by: dashuai <lishuailing@sifou.com>
2025-12-11 11:47:53 +08:00
joaoback f5600865e0 Update pt_BR.yaml
Translations of items that had not yet been translated. Adjustments to translations already made.
2025-12-11 11:47:53 +08:00
kinjelom 82a1127c64 Polish translation 2025-12-11 11:47:53 +08:00
liruohrh 0065e355aa fix: get right lang 2025-12-11 11:47:53 +08:00
Krypt0n123 bf2127dbd0 fix: add missing revision data for default content (fixes #1436) 2025-12-11 11:47:53 +08:00
shuai 5fa638a3e1 fix: The page tag selector exceeds the page height, causing the page to scroll. 2025-12-11 11:47:53 +08:00
ferhat elmas e1255373cb refactor(lint): add new linters and fix their issues
* gocritic
* misspell
* modernize (aside, bumping go would be nice)
* testifylint
* unconvert
* unparam
* whitespace

related to #1432

Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2025-12-11 11:47:53 +08:00
LinkinStars 4950009248 refactor(lint): improve error handling and code consistency across multiple files 2025-12-11 11:47:53 +08:00
LinkinStars 62e765f70a refactor(goimports): add goimports to golangci-lint configuration #1432 2025-12-11 11:47:53 +08:00
ferhat elmas 74654f2703 feat: add golangci-lint into lint target
* replace empty interface with any
* run fmt via golangci-lint

related to #1432

Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2025-12-11 11:47:53 +08:00
shuai 92de2ef16f fix: When the input box's type is set to number, the result is forcibly converted to the number type. #1425 2025-12-11 11:47:53 +08:00
shuai bb60dca5eb fix: footer layout adjustment 2025-12-11 11:47:53 +08:00
shuai 480474d7be fix: footer layout adjustment 2025-12-11 11:47:53 +08:00
LinkinStars d15d55abe3 fix(answer): update QuestionID handling in answer update process 2025-12-11 11:47:53 +08:00
ferhat elmas 2b64983464 chore(deps): bump mockgen to 0.6.0 for go1.25 support
Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2025-12-11 11:47:53 +08:00
ferhat elmas c0a9f3155a fix(ui): null pointer access if get branding fails
Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2025-12-11 11:47:53 +08:00
ferhat elmas f86e98167f fix: multi byte run boundary for cut long title
Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2025-12-11 11:47:53 +08:00
ferhat elmas 9b64d7d64d refactor(internal): compile regex once while clearing text
Regex and Replacer can be reused.
No need to recreate for each invocation.

Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2025-12-11 11:47:53 +08:00
LinkinStars 4609e200ae fix(comment): decode CommentID using DeShortID for consistency 2025-12-11 11:47:53 +08:00
LinkinStars 8b739c5a59 fix(service): set default language to "en_US" if invalid language is provided 2025-12-11 11:47:53 +08:00
Dinesht04 27cd77358c fix(ui): refactor number input props (min,max) 2025-12-11 11:47:53 +08:00
Dinesht04 1418745b00 feat(ui): add types, logic and defaults for min, max value of input component of form 2025-12-11 11:47:53 +08:00
Dinesht04 9bb87bf8d6 feat(ui): add min values for inputs and context-based keyboards for inputs 2025-12-11 11:47:53 +08:00
shuai 59df184bab fix: Optimization of request parameters 2025-12-11 11:47:53 +08:00
shuai 7a1c96d2cb fix: fix the issue where the comment_id parameter is forcibly converted to a string, causing a 500 error in the PostgreSQL database interface. #1426 2025-12-11 11:47:53 +08:00
liruohrh d468e2ba8d feat: add env for glob load template files by gin debug render 2025-12-11 10:49:32 +08:00
Burak Tekin 57ba299543 chore: turkish translation improved (#1454)
turkish translations improved

Co-authored-by: dashuai <lishuailing@sifou.com>
2025-12-11 09:42:21 +08:00
joaoback 48b1de8314 Update pt_BR.yaml
Translations of items that had not yet been translated. Adjustments to translations already made.
2025-12-10 11:58:27 +08:00
kinjelom 8e395d421e Polish translation 2025-12-10 11:52:42 +08:00
liruohrh 740ac61bb2 fix: get right lang 2025-12-08 20:06:18 +08:00
Krypt0n123 6660cdf6e2 fix: add missing revision data for default content (fixes #1436) 2025-12-08 20:04:53 +08:00
ferhat elmas 670aa32325 refactor(lint): add new linters and fix their issues
* gocritic
* misspell
* modernize (aside, bumping go would be nice)
* testifylint
* unconvert
* unparam
* whitespace

related to #1432

Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2025-12-05 10:45:55 +08:00
LinkinStars 5e705a124b refactor(lint): improve error handling and code consistency across multiple files 2025-12-01 12:27:25 +08:00
LinkinStars 9540ef6005 refactor(goimports): add goimports to golangci-lint configuration #1432 2025-12-01 11:32:12 +08:00
ferhat elmas f723d120d9 feat: add golangci-lint into lint target
* replace empty interface with any
* run fmt via golangci-lint

related to #1432

Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2025-12-01 11:14:38 +08:00
LinkinStars fc2a1d8afe fix(answer): update QuestionID handling in answer update process 2025-11-28 17:01:12 +08:00
ferhat elmas bc629db132 chore(deps): bump mockgen to 0.6.0 for go1.25 support
Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2025-11-28 17:00:25 +08:00
ferhat elmas 0777291e80 fix(ui): null pointer access if get branding fails
Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2025-11-26 15:51:01 +08:00
ferhat elmas ce053ccfa6 fix: multi byte run boundary for cut long title
Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2025-11-25 17:58:11 +08:00
ferhat elmas a15dd41550 refactor(internal): compile regex once while clearing text
Regex and Replacer can be reused.
No need to recreate for each invocation.

Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
2025-11-24 10:32:47 +08:00
LinkinStars 09b6b34b05 fix(comment): decode CommentID using DeShortID for consistency 2025-11-20 17:50:57 +08:00
LinkinStars 9a7eb0f450 fix(service): set default language to "en_US" if invalid language is provided 2025-11-20 17:42:35 +08:00
Dinesht04 54e602c5e6 fix(ui): refactor number input props (min,max) 2025-11-20 10:51:46 +08:00
Dinesht04 157dbfd08a feat(ui): add types, logic and defaults for min, max value of input component of form 2025-11-20 10:51:46 +08:00
Dinesht04 666ab706a6 feat(ui): add min values for inputs and context-based keyboards for inputs 2025-11-20 10:51:46 +08:00
LinkinStars 20cd4d7c44 fix(deps): update protoc-gen-validate dependency to a new version
Build Latest Docker Image For Release / build (push) Has been cancelled
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2025-10-30 10:47:10 +08:00
LinkinStars 4cbdd43738 i18n (#1416)
Co-authored-by: Sunny <1147886+sunshineg@users.noreply.github.com>
2025-10-28 16:48:41 +08:00
LinkinStars 833ea4fcb2 fix(i18n): update hints for question body input in en_US.yaml 2025-10-28 16:31:42 +08:00
LinkinStars eb1b20ab96 chore(ci): Add ASF header 2025-10-28 15:27:11 +08:00
LinkinStars 439e786294 Merge remote-tracking branch 'origin/release/1.7.0' 2025-10-28 15:25:07 +08:00
LinkinStars b79fb38300 docs(Makefile): upgrade version to 1.7.0 2025-10-28 15:23:17 +08:00
Sonui 93e183be62 feat: Add resetPassword cli tool 2025-10-28 14:52:53 +08:00
Sonui b33e9fc93e fix: Add time parameter when updating user status 2025-10-28 14:52:53 +08:00
Dinesht04 63e2fb9005 fix(internal):add gte,lte bounds for min_content and min_tags 2025-10-28 14:52:53 +08:00
LinkinStars 4fca0c4271 feat(plugins): add quick-links plugin and ensure captcha-basic is included 2025-10-27 10:56:44 +08:00
shuai e1ff07318e fix: conflict 2025-10-23 18:13:31 +08:00
shuai e3151c1da9 fix: conflict 2025-10-23 18:12:50 +08:00
Dinesht04 2d2451f78d fix(ui,internal): correct i18n implementation for variables and add min=0 to minimumContent in siteInfo schema 2025-10-22 18:43:54 +08:00
Dinesht04 9154b9ba5b feat(ui,internal): add optional question body 2025-10-22 18:43:54 +08:00
Dinesht04 f238aa5051 feat(ui,internal): add min_content property in site info 2025-10-22 18:43:54 +08:00
shuai 52e1b8bd86 fix: merge dev 2025-10-21 18:13:37 +08:00
shuai 433b8d5d1b fix: i18n parameter passing optimization 2025-10-21 10:09:37 +08:00
shuai 4fa1d0f494 fix: Fix the layout confusion caused by too long code #1404 2025-10-20 17:20:17 +08:00
Dinesht04 403dec5e39 feat(internal,ui): add minimum tags error and label while editing 2025-10-16 09:46:08 +08:00
Dinesht04 9b65fed9f0 refactor(tags): remove redundant param from GetMinimumTags and apply minimum tag check in ObjectChangeTag 2025-10-16 09:46:08 +08:00
Dinesht04 a678946032 fix(ui): Adjust tag input label for quantity 2025-10-16 09:46:08 +08:00
Dinesht04 c78cadb159 add migration for min_tags 2025-10-16 09:46:08 +08:00
Dinesht04 3ae38a14f0 feat(UI): Add error for minimum_tag count and translation for Min tag form input 2025-10-16 09:46:08 +08:00
Dinesht04 a63fe5b26c feat(internal,ui): add minimum tags property 2025-10-16 09:46:08 +08:00
Dinesht04 dc47e1a511 fix(ui): change background color for code block to (--an-pre) 2025-10-11 09:54:11 +08:00
Dinesht04 aa75f4455d feat(ui):hide related questions card when there is no content 2025-10-10 10:22:48 +08:00
Luffy f93ab41140 fix(i18n): sync username character 2025-10-10 10:01:12 +08:00
shuai 78df776449 fix: Details page editing time value adjustment 2025-09-30 15:34:37 +08:00
shuai bca8273fb5 fix: edit_time display condition optimization 2025-09-30 14:10:25 +08:00
shuai 4c2564e276 update: update html templates 2025-09-30 10:47:43 +08:00
Luffy bec3e355a9 feat: Add user comment moderation 2025-09-23 14:57:07 +08:00
shuai 5ad97801b0 fix: Optimize the export method of internal components 2025-09-23 10:50:40 +08:00
shuai aeb7b08371 update: timeline page need logged 2025-09-22 11:32:04 +08:00
shuai e071f3e7b6 fix: Filter out parameters of linked list unanswered 2025-09-10 15:57:04 +08:00
shuai 6a0f9f15e5 fix: rename linked page route 2025-09-10 15:01:13 +08:00
shuai 44beb6d15c fix: Optimize list type judgment logic 2025-09-10 14:17:26 +08:00
shuai d738ec2121 feat: add /tags/:tagName/questions route 2025-09-09 10:22:50 +08:00
shuai f709968463 fix: fixed the incorrect link of the user who was replied in the comment 2025-09-09 10:11:41 +08:00
shuai 7f9af84093 fix: Fix username verification prompt 2025-09-08 11:38:52 +08:00
Fen fc4959c3bb Refactor section headers in bug_report.md
Updated section headers in bug report template for consistency.
2025-09-02 18:13:41 +08:00
shuai 235c69e9b9 fix: update search type 2025-09-02 17:00:12 +08:00
Neko 7a8afbb353 add new question notification trigger user 2025-09-01 11:43:43 +08:00
shuai 413c39184d fix: delete comments 2025-08-28 17:02:34 +08:00
shuai f73641eff9 fix: optimization askRedirect function 2025-08-28 16:56:58 +08:00
Neko 81837c9fe0 update new question message tag
fix new question message tag to get all question tags
2025-08-28 16:53:53 +08:00
shuai df3b1a1a39 fix: the route of the question page is adjusted to /questions/add, and redirect /questions/ask to /questions/add 2025-08-28 14:45:05 +08:00
shuai 1b97952601 fix: update add_user modal's class 2025-08-21 15:15:57 +08:00
shuai e9ea91d260 fix: add data-bs-theme attribute for dropdown component 2025-08-20 17:10:53 +08:00
shuai 6d2dd57df8 fix: delete page-main-wrap class 2025-08-19 16:23:13 +08:00
shuai 7ffd86e14a fix: add page-main-wrap class 2025-08-19 14:38:03 +08:00
shuai 0376a00d73 fix: responsive layout adjustment 2025-08-19 11:20:55 +08:00
shuai 6389c3b34e Merge branch 'feat/1.7.0/quicklinks' into test 2025-08-15 14:23:59 +08:00
shuai 1aeea01c6f style: ui optimization 2025-08-15 14:22:54 +08:00
shuai c2c7ea84d5 feat: support quick-links plugin 2025-08-14 10:24:31 +08:00
kumfo a6d95ae8f9 feat: add sidebar plugin 2025-08-13 14:44:25 +08:00
shuai dc582eec54 style: question details page UI optimization 2025-08-12 10:10:56 +08:00
shuai bfa48a8ca9 fix: footer remove background color 2025-08-08 10:24:24 +08:00
shuai 19aed9f9c8 feat: schemeForm support tagSelector component 2025-08-08 10:24:24 +08:00
hgaol af80380f23 fix: failed to build plugins in windows 2025-08-08 10:24:24 +08:00
hgaol fbd5a55c5d fix: failed to build plugins in windows 2025-08-06 10:29:30 +08:00
shuai 7e4edb18d4 fix: remove question detail page pinned icon 2025-08-04 11:23:53 +08:00
LinkinStars 2e646af56a Translation (#1367)
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Latest Docker Image For Release / build (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
Co-authored-by: Sunny <1147886+sunshineg@users.noreply.github.com>
2025-07-17 16:30:17 +08:00
LinkinStars 23d2a915dc Merge remote-tracking branch 'origin/release/1.6.0' 2025-07-17 16:06:16 +08:00
LinkinStars fa7ff6a9c6 docs(Makefile): upgrade version to 1.6.0 2025-07-17 15:54:28 +08:00
LinkinStars fda869f1dc docs: remove description for suspended_until field 2025-07-17 15:52:25 +08:00
shuai 1871e2e580 fix: optimize the copy 2025-07-03 11:13:59 +08:00
shuai 9897d92e53 fix: adjustment of the position of plug-in inserting the editor toolbar 2025-07-02 17:01:33 +08:00
shuai 1ef67972df Merge branch 'feat/1.6.1/md' into test 2025-07-02 11:35:23 +08:00
shuai e90be519a7 fix: list time to remove verb modification 2025-07-02 11:30:24 +08:00
shuai d04d18dff2 fix: Navigation dropdown menu theme color should follow the theme color of the application #1355 2025-06-26 17:02:58 +08:00
shuai 05fab1c999 feat: Blocked users can choose the duration of the block #1361 2025-06-26 17:02:58 +08:00
shuai 8560c89e06 fix: move the settings -> users section in admin to Interface #1360 2025-06-26 17:02:58 +08:00
shuai d2768b1f11 fix: hr tag's margin use 1.5rem 2025-06-26 17:02:58 +08:00
shuai 60f87fd294 fix: optimization hr's style 2025-06-26 17:02:58 +08:00
shuai 736d07a30b fix: optimization hr's style 2025-06-26 17:02:58 +08:00
shuai 2bc3167dbd fix: Navigation dropdown menu theme color should follow the theme color of the application #1355 2025-06-26 17:01:14 +08:00
shuai 17e1b30175 feat: Blocked users can choose the duration of the block #1361 2025-06-26 16:44:42 +08:00
LinkinStars b78be61ee8 refactor(user): simplify suspended until logic 2025-06-26 16:42:24 +08:00
LinkinStars 3b8b5871a6 feat(user): add user status messages and support localization 2025-06-26 16:10:09 +08:00
shuai 19eca49d2a fix: move the settings -> users section in admin to Interface #1360 2025-06-26 14:55:35 +08:00
LinkinStars 6d02706d4d feat(user): add user suspension functionality 2025-06-26 14:42:08 +08:00
LinkinStars 550a92684e feat(migrations): move user config to interface 2025-06-26 11:20:23 +08:00
Xing Ji e6f94c924d chore: Keep the api_url in configs/config.yaml 2025-06-24 14:19:20 +08:00
Xing Ji b863ad6b78 chore(configs/config.yaml): Change api_url to api_base_url 2025-06-24 14:19:20 +08:00
fen 157291c2d5 fix: screenshot 2025-06-24 14:19:20 +08:00
shuai 246f307980 feat: update .asf.yaml content 2025-06-24 14:19:20 +08:00
LinkinStars 67b9c0b462 refactor(api): update API documentation for Accept Answer endpoint 2025-06-24 11:19:53 +08:00
LinkinStars d82c75d7cc refactor(api): rename methods and update documentation for clarity 2025-06-24 11:19:33 +08:00
LinkinStars 03ec0ddfbb chore(deps): update Go version to 1.23 in configuration files 2025-06-24 11:16:29 +08:00
LinkinStars d02d09bb9a refactor(api): improve API documentation for Answer endpoints 2025-06-24 11:06:14 +08:00
LinkinStars dc98f61d69 refactor(api): update API documentation and method names for clarity 2025-06-24 11:05:11 +08:00
LinkinStars a62c975c7e chore(deps): update Go version and dependencies to v1.23.0 and latest compatible versions 2025-06-24 10:42:32 +08:00
LinkinStars ee6e67243d test(internal): add mock for IsBrandingFileUsed method 2025-06-13 16:02:11 +08:00
LinkinStars ef8c1ebb88 fix(notification): handle potential nil pointer dereference #1356 2025-06-13 16:01:05 +08:00
Luffy b6a23d69d6 feat: add loading state for counts display in search results 2025-06-09 10:49:07 +08:00
fen 530812f810 Merge branch 'main' of github.com:apache/answer
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2025-06-06 18:34:37 +08:00
fen fd361d47ed fix: screenshot 2025-06-06 18:34:08 +08:00
shuai 401c8a7637 feat: update .asf.yaml content 2025-06-04 10:39:49 +08:00
shuai a963f5a881 fix: hr tag's margin use 1.5rem 2025-05-30 11:22:00 +08:00
shuai 07217e25ab fix: optimization hr's style 2025-05-30 11:08:58 +08:00
shuai 3ce9dfb10f fix: optimization hr's style 2025-05-30 10:57:15 +08:00
shuai eddedfdf1b fix: optimization login btn style
Build Latest Docker Image For Release / build (push) Has been cancelled
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2025-05-28 12:46:12 +08:00
shuai 1f07d8eb15 fix: Compatibility default value is colored or light before v1.5.1 2025-05-28 11:35:00 +08:00
LinkinStars f4368f54c5 New translations (#1348) 2025-05-28 10:50:14 +08:00
LinkinStars bd032dff36 upgrade(docs): upgrade to 1.5.1 2025-05-28 10:16:27 +08:00
LinkinStars e859e47d1b Merge remote-tracking branch 'origin/dev' into test 2025-05-28 10:14:15 +08:00
Sonui 4175b06039 perf(tests): replace panic with os.Exit in TestMain for graceful test termination 2025-05-28 10:13:32 +08:00
Sonui 6df436c718 feat(tests): add comprehensive tests for KV storage plugin 2025-05-28 10:13:32 +08:00
shuai b20f3a8762 fix: dropdown header use h6 2025-05-27 18:27:44 +08:00
shuai 503e1cf7d4 fix: dropdown header use h6 2025-05-27 18:26:46 +08:00
LinkinStars 5fc25ab8f6 Merge remote-tracking branch 'origin/dev' into test 2025-05-26 10:54:07 +08:00
Giorgio Bonvicini 6381a2192e fix: update the visit cookie if it does not match the visit token
Previous behavior was to keep any existing visit cookies, which caused problems like #1334
2025-05-26 10:42:54 +08:00
LinkinStars b691e143a2 Merge remote-tracking branch 'origin/dev' into test
# Conflicts:
#	internal/migrations/init_data.go
2025-05-23 15:11:03 +08:00
Luffy afdf6ce778 fix: Unified display name and username length checks 2025-05-23 15:09:34 +08:00
DanielAuerX def0559a55 Fix file record and delete files (branding and avatar) (#1335)
- [x] create file_record table
- [x] avatar and branding files are added to file_record
- [x] branding files are being deleted
- [x] avatar files are being deleted
- [x] reload latest avatar (frontend) after backend state is being
updated

problems addressed in the pr:
- clean up job fails, because it cannot access file_record table
- avatar and branding files are not added to the file_record table
- avatar and branding files are never deleted
- after an avatar is being updated/deleted, the old file is still being
requested due to browser caching. This is causing error logs ("no such
file or directory") in the backend.

cf. conversation in [pr
1326](https://github.com/apache/answer/pull/1326)

---------

Co-authored-by: broccoli <lekker.broccoli@gmail.com>
Co-authored-by: LinkinStars <linkinstar@foxmail.com>
2025-05-23 15:07:14 +08:00
shuai 84cc97dc78 fix: pre tag background color adjustment, remove the background color of the quoted content 2025-05-23 15:05:15 +08:00
shuai 89df65c884 fix: Copy content avoids multiple consecutive newlines 2025-05-20 15:33:46 +08:00
shuai 9331690b0d fix: When copying text and images, can the images only appear at the end of the article 2025-05-20 15:10:40 +08:00
Shaobiao Lin c6189e5020 docs(command): unify style of usage statements
close #1330
2025-05-20 15:10:40 +08:00
Shaobiao Lin 54f7682e1a docs(command): remove redundant comments
The codes are self-documenting enough.
2025-05-20 15:10:40 +08:00
Sonui 1baa3f0fb6 chore(migrations): update migration version 2025-05-20 15:10:40 +08:00
Sonui ed543e8825 fix(plugin): set params.Value in Get method to ensure correct value retrieval 2025-05-20 15:10:40 +08:00
Sonui aa0493e4f0 feat(migrations): Add v26 migration file to support plugin KV storage 2025-05-20 15:10:40 +08:00
Sonui c7646bd600 docs(plugin): Add comments to KVOperator methods to improve code readability 2025-05-20 15:10:40 +08:00
Sonui 9ea153b402 refactor(plugin): improve KV storage with better caching and param handling 2025-05-20 15:10:40 +08:00
Sonui d90810afd7 fix(plugin): rename 'close' to avoid builtin collision 2025-05-20 15:10:40 +08:00
Sonui d12ac86d66 perf(plugin): remove unnecessary KV storage checks 2025-05-20 15:10:40 +08:00
Sonui 8579bde607 refactor(plugin): improved initialization of the KV storage plugin 2025-05-20 15:10:40 +08:00
Sonui c7ab8534f1 feat(plugin): add key-value storage support for plugins 2025-05-20 15:10:40 +08:00
shuai cde3ef9689 fix: admin gravatar base URL is empty should use placehoder for default value 2025-05-20 14:33:33 +08:00
shuai 17b88b6a4f fix: reanme css/html page title and fix some zh_cn translations 2025-05-20 11:58:08 +08:00
shuai 95f5de544d fix: customize renamed to apperance and move branding below apprance 2025-05-20 09:40:22 +08:00
shuai 4ae8d8ac8c fix: reset navbar_style default color 2025-05-19 16:46:30 +08:00
shuai 50bed824f6 feat: Supports separate setting of navigation background color 2025-05-19 16:46:30 +08:00
shuai 9368da2c04 fix: code snippet caused the layout to break #1329 2025-05-19 16:46:30 +08:00
Shaobiao Lin 4182d9f506 docs(command): unify style of usage statements
close #1330
2025-05-10 10:59:00 +08:00
Shaobiao Lin 757e89467a docs(command): remove redundant comments
The codes are self-documenting enough.
2025-05-10 10:59:00 +08:00
Sonui aac1532b7e chore(migrations): update migration version 2025-05-09 11:50:27 +08:00
Sonui d866ca71e1 fix(plugin): set params.Value in Get method to ensure correct value retrieval 2025-05-09 11:50:27 +08:00
Sonui 15ef81533f feat(migrations): Add v26 migration file to support plugin KV storage 2025-05-09 11:50:27 +08:00
Sonui beac023875 docs(plugin): Add comments to KVOperator methods to improve code readability 2025-05-09 11:50:27 +08:00
Sonui 56f36ec5e6 refactor(plugin): improve KV storage with better caching and param handling 2025-05-09 11:50:27 +08:00
Sonui 42d6ad6111 fix(plugin): rename 'close' to avoid builtin collision 2025-05-09 11:50:27 +08:00
Sonui 9f8cab5626 perf(plugin): remove unnecessary KV storage checks 2025-05-09 11:50:27 +08:00
Sonui 42cc06886a refactor(plugin): improved initialization of the KV storage plugin 2025-05-09 11:50:27 +08:00
Sonui 20d7e4bc10 feat(plugin): add key-value storage support for plugins 2025-05-09 11:50:27 +08:00
Sunny 3f1ed50f67 New translations en_us.yaml (Chinese Simplified)
Build Latest Docker Image For Release / build (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
Build Binary For Release / build-goreleaser (push) Has been cancelled
2025-04-29 15:41:58 +08:00
Sunny 68bedd1c60 New translations en_us.yaml (Chinese Simplified) 2025-04-29 15:41:58 +08:00
Sunny 335defc9bf New translations en_us.yaml (Malayalam) 2025-04-29 15:41:58 +08:00
Sunny a0c9edd43c New translations en_us.yaml (Welsh) 2025-04-29 15:41:58 +08:00
Sunny 214189883e New translations en_us.yaml (Telugu) 2025-04-29 15:41:58 +08:00
Sunny 34d8af3e2c New translations en_us.yaml (Hindi) 2025-04-29 15:41:58 +08:00
Sunny f415855612 New translations en_us.yaml (Persian) 2025-04-29 15:41:58 +08:00
Sunny b68dedc1b8 New translations en_us.yaml (Indonesian) 2025-04-29 15:41:58 +08:00
Sunny c14cec048b New translations en_us.yaml (Vietnamese) 2025-04-29 15:41:58 +08:00
Sunny ecb0933c17 New translations en_us.yaml (Chinese Traditional) 2025-04-29 15:41:58 +08:00
Sunny 138afb26c4 New translations en_us.yaml (Chinese Simplified) 2025-04-29 15:41:58 +08:00
Sunny 3d56224bb6 New translations en_us.yaml (Ukrainian) 2025-04-29 15:41:58 +08:00
Sunny 025a7de060 New translations en_us.yaml (Turkish) 2025-04-29 15:41:58 +08:00
Sunny f0da7146eb New translations en_us.yaml (Swedish) 2025-04-29 15:41:58 +08:00
Sunny 2a4e486a6e New translations en_us.yaml (Slovak) 2025-04-29 15:41:58 +08:00
Sunny 5b2f950d40 New translations en_us.yaml (Russian) 2025-04-29 15:41:58 +08:00
Sunny 71c30a952c New translations en_us.yaml (Portuguese) 2025-04-29 15:41:58 +08:00
Sunny e0bc0bc714 New translations en_us.yaml (Polish) 2025-04-29 15:41:58 +08:00
Sunny 4682ba010f New translations en_us.yaml (Korean) 2025-04-29 15:41:58 +08:00
Sunny 96f6c86d74 New translations en_us.yaml (Japanese) 2025-04-29 15:41:58 +08:00
Sunny f79409e534 New translations en_us.yaml (Italian) 2025-04-29 15:41:58 +08:00
Sunny 70034113b4 New translations en_us.yaml (German) 2025-04-29 15:41:58 +08:00
Sunny eff54adcc1 New translations en_us.yaml (Danish) 2025-04-29 15:41:58 +08:00
Sunny 0671f8b758 New translations en_us.yaml (Czech) 2025-04-29 15:41:58 +08:00
Sunny 5c57c5d3e4 New translations en_us.yaml (Spanish) 2025-04-29 15:41:58 +08:00
Sunny 9e28763bef New translations en_us.yaml (French) 2025-04-29 15:41:58 +08:00
Sunny 3653a5d803 New translations en_us.yaml (Romanian) 2025-04-29 15:41:58 +08:00
LinkinStars 02c1304b99 feat(docs): Add Apache License header 2025-04-29 15:00:40 +08:00
LinkinStars e9c403c8ea docs(Makefile): upgrade version to 1.5.0 2025-04-29 14:56:01 +08:00
LinkinStars fc3f6384f2 build: pin mockgen version to v0.5.0 2025-04-29 14:33:58 +08:00
LinkinStars e4322d620a Merge remote-tracking branch 'origin/dev' into test 2025-04-29 14:25:56 +08:00
hgaol f9362749b1 update reaction button styles for dark mode and enhance hover effects 2025-04-29 12:22:48 +08:00
hgaol d2efdade19 feat: implement dark mode support for reaction buttons and update styles accordingly 2025-04-29 12:22:48 +08:00
shuai 9f420e67d2 Merge branch 'dev' into test 2025-04-27 11:59:34 +08:00
shuai 8314548711 fix: Optimize the internal logic of merge tags and ui #1110 2025-04-27 11:58:29 +08:00
hgaol 537b721044 feat: refactor tag migration logic to streamline object relations and remove unused code 2025-04-25 18:34:14 +08:00
hgaol 9b0a86f421 feat: enhance MergeTagModal with debounced tag search and replace with searchTag 2025-04-25 18:34:14 +08:00
hgaol 7b4592830b optimize for no result 2025-04-25 18:34:14 +08:00
hgaol ab04d85d7e feat: implement migration of followers and tag objects during tag merge 2025-04-25 18:34:14 +08:00
hgaol 9c0844f0ed feat: implement MergeTag functionality with UI and backend support 2025-04-25 18:34:14 +08:00
hgaol 6abf8222d7 feat: add MergeTag functionality to merge tags and update followers 2025-04-25 18:34:14 +08:00
Luffy 30bac18a85 fix: add signal exit on build failure 2025-04-25 17:09:44 +08:00
shuai 36d2904bc4 fix: dashboard unified download link 2025-04-25 14:14:52 +08:00
LinkinStars 32be6c8be1 Merge remote-tracking branch 'origin/feat/1.5.0/user' into test 2025-04-25 10:44:00 +08:00
LinkinStars b2d5e9ba92 refactor(controller): optimize embed controller and update related components 2025-04-25 10:43:40 +08:00
shuai d2831a8a46 fix: change dashbord download url 2025-04-25 10:29:51 +08:00
shuai 42fb04283f fix: sidenav style optimization 2025-04-24 09:56:34 +08:00
LinkinStars 4bfcabdeb5 Merge remote-tracking branch 'origin/feat/1.5.0/user' into test 2025-04-18 14:38:37 +08:00
LinkinStars e8a6c3f1de fix(notification): check user status before sending notification 2025-04-18 14:38:01 +08:00
sy-records 59f0c3fb63 fix: Username minimum length still set to 4 2025-04-18 11:52:55 +08:00
LinkinStars 5b9c00c4a7 Merge remote-tracking branch 'origin/feat/1.5.0/user' into test 2025-04-17 11:37:23 +08:00
LinkinStars 5b7cdce88d Merge branch 'suspended' into feat/1.5.0/user 2025-04-17 11:36:37 +08:00
shuai 64e2ffe48f fix: clear suspended user information 2025-04-17 10:49:34 +08:00
LinkinStars ef30ef228d feat(user): user can't login when suspended 2025-04-17 10:33:53 +08:00
shuai 6495414dc9 fix: Remove suspended user-related route blocking 2025-04-17 10:23:57 +08:00
hgaol d8ab25d565 fix: dedup questions in GetQuestionPage 2025-04-16 17:38:17 +08:00
shuai 3f87e16329 Merge branch 'ui-optimization' into test 2025-04-14 10:53:18 +08:00
shuai 688d2523c3 style: delete logs 2025-04-14 10:42:21 +08:00
shuai 7b95e5b1e3 style: mobile side nav style optimization 2025-04-14 10:40:22 +08:00
hgaol 840f6bfd2b feat: add support for multiple timezones and set local timezone in site info 2025-04-11 10:46:23 +08:00
shuai 061f0403e2 style: Mobile navigation style optimization 2025-04-10 15:58:58 +08:00
shuai 1131b50d0e fix: Navigation style optimization 2025-04-10 15:47:16 +08:00
hgaol 934f7cea9c fix: correct hover background color for dark theme in reaction button 2025-04-10 10:49:19 +08:00
shuai fae5f9140f Merge branch 'ui-optimization' into test 2025-04-07 15:57:22 +08:00
shuai 91f831a02a fix: Optimize template code 2025-04-07 15:56:49 +08:00
shuai ff3066d2e5 style: resole conflict 2025-04-07 15:33:55 +08:00
shuai bebf5931a1 style: admin ui style changed 2025-04-07 15:31:31 +08:00
shuai d3fea58709 fix: restore code 2025-04-07 14:57:49 +08:00
LinkinStars 28df302283 fix(i18n): correct typo in link description 2025-04-07 14:49:24 +08:00
shuai 4f0fa4d100 Merge branch 'ui-optimization' into test 2025-04-07 14:49:11 +08:00
shuai 105cd37dfe fix: update seo template for footer template 2025-04-07 11:44:34 +08:00
shuai 568f1e9f48 fix: update seo template for questions page 2025-04-07 10:51:19 +08:00
shuai 308f3cf32e fix: uypdate seo template codes 2025-04-03 17:37:47 +08:00
shuai 8bc6837b45 fix: Optimize sidebar navigation style 2025-04-03 15:59:15 +08:00
hgaol a46b3e060a fix: resolve output path to absolute path in newAnswerBuilder 2025-04-03 11:11:19 +08:00
hgaol 4040450c79 fix: add ExternalContentDisplay field to Env 2025-04-03 10:15:58 +08:00
Seiya f92860e8ec chore: remove duplicated security requirements (#1302)
close #1300
2025-04-02 09:12:39 +08:00
shuai 1fcf0363e2 fix: development warning 2025-04-01 18:17:23 +08:00
Young Xu d48b633baa fix: get tag with page nil pointer error
Signed-off-by: Young Xu <xuthus5@gmail.com>
2025-04-01 10:28:36 +08:00
hgaol 3b07b39d89 remove unused service in question service 2025-03-26 18:44:14 +08:00
hgaol 989b2b3650 feat: support using search plugin to search similar question in ask question page 2025-03-26 18:44:14 +08:00
shuai 276a22f1c1 Merge branch 'ui-optimization' into test 2025-03-26 11:44:15 +08:00
shuai 5d1b9dcf38 fix: run prettier to format codes 2025-03-25 17:11:44 +08:00
shuai 7511778b32 fix: update codemirror/language-data to 6.4.0 and run prettier 2025-03-25 17:10:51 +08:00
LinkinStars 2372699f7c Merge branch 'dev' into test 2025-03-24 11:22:41 +08:00
LinkinStars 282e47c912 docs(README): update Docker command to use version 1.4.5 2025-03-24 11:22:04 +08:00
shuai ab35a9d47f fix: List avatar size optimization, Views color rule optimization 2025-03-21 11:14:08 +08:00
shuai 13240beac8 fix: global handling of anchor jumps
Build Latest Docker Image For Release / build (push) Has been cancelled
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2025-03-18 15:15:15 +08:00
shuai 1611f85a96 fix: delete unused code 2025-03-18 14:39:12 +08:00
shuai b3c36107d7 fix: fix the number of lines displayed in the list information, and click on the list to jump to an exception; footnote link to jump to an exception 2025-03-18 14:36:24 +08:00
Luffy 1db30228d5 chore: sync swagger 2025-03-18 14:03:17 +08:00
LinkinStars 66e88a2eed I18n (#1293)
Co-authored-by: pull[bot] <39814207+pull[bot]@users.noreply.github.com>
Co-authored-by: sy-records <52o@qq52o.cn>
Co-authored-by: shuai <lishuailing@sifou.com>
Co-authored-by: Sonui <me@sonui.cn>
Co-authored-by: robin <robin@rnode.me>
Co-authored-by: wxt <3264117476@qq.com>
Co-authored-by: Sunny <1147886+sunshineg@users.noreply.github.com>
2025-03-18 11:30:29 +08:00
LinkinStars 89f0ca5a3f Merge branch 'release/1.4.5' 2025-03-18 10:26:27 +08:00
LinkinStars 0985e4f525 docs(Makefile): upgrade version to 1.4.5 2025-03-18 10:25:08 +08:00
LinkinStars fbc4a079be Merge remote-tracking branch 'origin/dev' into test 2025-03-17 16:08:14 +08:00
Michelle Marin 230e42ecab fix: change "Twitter" to "X" in share dropdown (#1286)
Closes #1281

---------

Co-authored-by: LinkinStars <linkinstar@foxmail.com>
Co-authored-by: Fen <f3nb0x@gmail.com>
Co-authored-by: dashuai <lishuailing@sifou.com>
2025-03-17 16:07:10 +08:00
LinkinStars 9d6b42da80 docs(ui): add Apache license header to setup-eslint.js script 2025-03-17 15:59:10 +08:00
LinkinStars b56c1d2650 Merge remote-tracking branch 'origin/dev' into test 2025-03-17 15:51:56 +08:00
Dāvis 4679589655 Use DeShortID on questionID for UpdateQuestionLink() (#1288)
When using shortIds we need to `DeShort` them.

Fixes #1277
2025-03-17 15:28:43 +08:00
shuai e61e7f1664 fix: adjustmet toast sotres style 2025-03-17 14:44:41 +08:00
shuai 0168309535 fix: resolve conflict 2025-03-17 10:53:33 +08:00
shuai b1034ce084 fix: update i18n files msg 2025-03-17 10:44:07 +08:00
Luffy cd24c91fb1 fix: update admin name validation and username regex 2025-03-17 10:37:00 +08:00
Luffy 18aef3aaad fix: update admin name validation 2025-03-17 10:37:00 +08:00
shuai fe12e11b62 fix: Adjustment of the toast component's position from the top 2025-03-17 10:21:56 +08:00
LinkinStars ef982ee350 Merge remote-tracking branch 'origin/dev' into test 2025-03-14 16:41:00 +08:00
LinkinStars c757639805 refactor(install): simplify SSL configuration for PostgreSQL 2025-03-14 16:40:36 +08:00
shuai 3972d48835 Merge branch 'test' of github.com:apache/answer into test 2025-03-14 15:39:11 +08:00
shuai 82b1211f6f fix: delete log 2025-03-14 15:38:27 +08:00
LinkinStars 849ad8dfc5 Merge remote-tracking branch 'origin/dev' into test 2025-03-14 14:17:00 +08:00
unical1988 d24027f359 Support PostgreSQL connection with SSL #1243 (#1244)
Support PostgreSQL connection with SSL

---------

Co-authored-by: LinkinStars <linkinstar@foxmail.com>
2025-03-14 14:14:06 +08:00
shuai 354c8e5361 fix: Optimize external resource image blocking 2025-03-14 11:54:28 +08:00
shuai c40fe02b51 Merge branch 'setup-eslint' into test 2025-03-14 11:51:40 +08:00
shuai 82a230e072 Merge branch 'external-img' into test 2025-03-14 11:51:00 +08:00
shuai 597f617c79 fix: Optimize external resource image blocking 2025-03-14 11:50:32 +08:00
Luffy ed2a5ba8f6 feat: add footnote extension to markdown converter 2025-03-14 11:10:52 +08:00
shuai 6982a88ee9 Merge branch 'external-img' into test 2025-03-13 17:41:45 +08:00
shuai 85903cf28c feat: Ask whether to show external resources before loading them 2025-03-13 17:40:40 +08:00
Fen bd13ef3f48 Update config.yml 2025-03-13 11:49:52 +08:00
LinkinStars 5586940832 Merge remote-tracking branch 'origin/feat/1.4.5/file' into test 2025-03-11 12:06:32 +08:00
LinkinStars 54269334b6 feat(siteinfo): add external content display configuration 2025-03-11 12:05:31 +08:00
shuai de27cad435 fix: gitignore add husky files 2025-03-07 12:10:43 +08:00
shuai 3a1a39c9d8 fix: delete pre-commit comamnds for ui 2025-03-07 11:38:18 +08:00
shuai 9869c0b32e fix: delete unused commands for ui 2025-03-07 11:04:57 +08:00
Luffy 4b9fd397db refactor: simplify operation type assignment logic in question handling 2025-03-07 10:37:59 +08:00
shuai 9578aba58c fix: add setup-lint command for ui contents #1219 2025-03-07 10:34:06 +08:00
Luffy ba9f2336ec fix: Adjust question status filtering based on order condition 2025-03-05 10:19:47 +08:00
sy-records 0f7deb6c79 fix: Limit unanswered question query to available questions 2025-03-05 10:19:47 +08:00
LinkinStars 3acc19c8eb Merge remote-tracking branch 'origin/feat/1.4.5/file' into test 2025-03-04 14:26:19 +08:00
LinkinStars de58e527e4 fix(siteinfo): fix Manifest: property 'icons' ignored, type array expected. 2025-03-04 14:23:23 +08:00
sy-records 12275b622f fix: Fix missing QuestionOrderCondFrequent 2025-03-04 10:47:24 +08:00
LinkinStars d1eac6eefe Merge remote-tracking branch 'origin/feat/1.4.5/file' into test 2025-02-28 18:37:43 +08:00
LinkinStars e470b63f42 feat(server): add API base URL configuration and update routes 2025-02-28 17:07:46 +08:00
shuai 4da158cf36 fix: quesiotn list add pointer class 2025-02-27 10:03:26 +08:00
shuai d1141471ab fix: pinned qeustions style optimization 2025-02-26 11:25:37 +08:00
shuai 4be3a68477 fix: click area for pinned questions 2025-02-26 10:57:21 +08:00
Lukin 01238d5506 feat(build): add plugin vendor directory management function
Implement movePluginToVendor to handle plugin directory organization during build process
2025-02-25 15:53:31 +08:00
gaoxiao6331 d8582ec582 fix(install): use loggedUserInfoStore directly 2025-02-25 11:44:24 +08:00
gaoxiao6331 c239d87390 fix: fail to switch language 2025-02-25 11:44:24 +08:00
Bzz 39e0f2e115 fix initSiteInfo 2025-02-24 18:00:55 +08:00
CodexX 0d4d99e324 feat: Add confirm password field in the install form 2025-02-24 18:00:36 +08:00
gaoxiao6331 0f47283e52 fix: i18n key of ready_desc 2025-02-24 18:00:36 +08:00
Fen aed17ac521 chore: update issue template (#1248) 2025-02-24 18:00:36 +08:00
LinkinStars 5e5f2b38cd build(ci): update action upload-artifact to v4 2025-02-24 18:00:36 +08:00
Bzz aabce8735e fix initSiteInfo 2025-02-24 17:57:24 +08:00
shuai 36105fb728 fix: adjust the label nested structure of the problem list 2025-02-24 15:06:16 +08:00
shuai d088d37ca2 fix: pinned styles adjusted, hover effect added to list, footer spacing optimized 2025-02-24 11:39:38 +08:00
LinkinStars 2d13211269 Merge branch 'feat/1.4.5/file' into test 2025-02-19 16:56:57 +08:00
LinkinStars b2eb76893f feat(migrations): update site info initialization 2025-02-19 16:56:36 +08:00
LinkinStars 607f1d762b feat(question): add avatar field to question operator 2025-02-19 16:35:50 +08:00
LinkinStars 15a9be6e2f feat(question): add avatar field to question operator 2025-02-19 16:34:58 +08:00
CodexX 85fae04df3 feat: Add confirm password field in the install form 2025-02-19 10:16:09 +08:00
shuai ef5cd6efca fix: TagSelector component event handling optimization 2025-02-18 18:31:25 +08:00
gaoxiao6331 ae13d68764 fix: i18n key of ready_desc 2025-02-17 10:40:55 +08:00
Fen 48d3770f26 chore: update issue template (#1248) 2025-02-17 10:40:55 +08:00
LinkinStars 204ee1ed90 build(ci): update action upload-artifact to v4 2025-02-17 10:40:55 +08:00
shuai adab096319 fix: avatar use rounded-circle class 2025-02-14 15:46:31 +08:00
shuai 2a62dd214f fix: preview mode icon toggle 2025-02-14 15:17:53 +08:00
Fen febcdce8c2 chore: update issue template (#1248) 2025-02-14 12:37:40 +08:00
LinkinStars f6fdc5f5ee Merge branch 'dev' into test 2025-02-14 12:21:43 +08:00
shuai fb152cb36e fix: optimize copy button style 2025-02-13 17:27:34 +08:00
shuai 1dfa03bafe fix: the list page introduction adopts the way of rendering rich text to support the display of some special symbols 2025-02-13 14:56:57 +08:00
dashuai 4232c4640d Revert "feat: add password hide show logic for init server"
This reverts commit 013df362ca.
2025-02-13 14:40:38 +08:00
dashuai f1c65815da Revert "refactor: refactor show password logic in init answer app"
This reverts commit f8bef82acc.
2025-02-13 14:40:38 +08:00
Sonui e0957c0a0d Revert "perf: optimize tag has new tag check"
This reverts commit 5af69352b5.
2025-02-12 10:34:43 +08:00
sahinakyol e9412a448e Answer-1237: Remove dependent command 'install-ui-packages' to 'make ui' command 2025-02-11 10:19:42 +08:00
sahinakyol b10a649865 Answer-1237: Add missing old_pass object message to i18n 2025-02-11 10:19:42 +08:00
sahinakyol ea4ce728b0 Answer-1237: Add dependent command 'install-ui-packages' to 'make ui' command 2025-02-11 10:19:42 +08:00
LinkinStars 0fd7e81acd build(ci): update action upload-artifact to v4
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Latest Docker Image For Release / build (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2025-02-06 16:28:54 +08:00
Bzz 4af744e735 Remove fixed width Share Popup 2025-02-05 11:46:44 +08:00
lihui f8bef82acc refactor: refactor show password logic in init answer app 2025-01-22 10:47:12 +08:00
lihui 013df362ca feat: add password hide show logic for init server 2025-01-22 10:47:12 +08:00
LinkinStars 3811b43fa3 Merge branch 'dev' into test 2025-01-16 15:56:05 +08:00
Young Xu 581f73c857 chore: instance rand.Seed to rand.Source (#1233)
The `rand.Seed` method is currently deprecated, use rand Replace with
the `NewSource` method.

```
// Deprecated: As of Go 1.20 there is no reason to call Seed with
// a random value. Programs that call Seed with a known value to get
// a specific sequence of results should use New(NewSource(seed)) to
// obtain a local random generator.
```

---------

Signed-off-by: Young Xu <xuthus5@gmail.com>
Co-authored-by: LinkinStars <linkinstar@foxmail.com>
2025-01-16 11:16:57 +08:00
Young Xu 774f4b39b7 chore: remove excess judgment code
Signed-off-by: Young Xu <xuthus5@gmail.com>
2025-01-14 10:13:53 +08:00
LinkinStars 36faad1880 build(release): remove DISCLAIMER file from release assets 2025-01-14 10:13:53 +08:00
LinkinStars 3c878dee49 docs(disclaimer): remove disclaimer 2025-01-14 10:13:53 +08:00
LinkinStars 8a33548396 Merge branch 'dev' into test 2025-01-13 16:39:11 +08:00
LinkinStars dae16c6767 Merge remote-tracking branch 'origin/feat/1.4.5/file' into test 2025-01-13 16:38:56 +08:00
LinkinStars a5d826c6d4 feat(file): add ENV for skip the file access verification 2025-01-13 16:38:19 +08:00
Nikita Sivukhin 6d84720404 pass pointer instead of slice to Find(...) method 2025-01-13 16:29:55 +08:00
LinkinStars 5886c1ec53 build(release): remove DISCLAIMER file from release assets
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2025-01-13 11:45:26 +08:00
LinkinStars bbb2e66233 docs(disclaimer): remove disclaimer 2025-01-13 11:20:05 +08:00
LinkinStars dd4b3e8632 Merge branch 'feat/1.4.5/file' into test 2025-01-10 10:49:51 +08:00
LinkinStars 5cffab8649 feat(service): implement file cleanup and deletion functionality 2025-01-10 10:43:35 +08:00
Luffy 211f16e129 fix: Searching for tags after paging brings up 404 2025-01-09 17:30:02 +08:00
Luffy 0285a47ae3 fix: missing ApiKeyAuth configuration in Swagger 2025-01-09 17:00:28 +08:00
LinkinStars 16da18d307 refactor(user_admin): reorganize import statements for better readability 2025-01-07 12:56:23 +08:00
LinkinStars c450e7cd54 Merge branch 'dev' into test
# Conflicts:
#	internal/service/user_admin/user_backyard.go
2025-01-07 12:51:13 +08:00
LinkinStars 47c666200e Merge remote-tracking branch 'origin/main' into dev
# Conflicts:
#	internal/base/middleware/accept_language.go
#	internal/schema/answer_schema.go
#	internal/schema/comment_schema.go
#	internal/service/user_admin/user_backyard.go
2025-01-07 12:48:13 +08:00
Luffy 208a1f8509 fix: typo 2025-01-07 12:45:25 +08:00
Luffy f22ab85814 fix: Add Disallow /swagger/* in robots.txt by default 2025-01-07 12:45:25 +08:00
LinkinStars 0618947350 refactor(name): rename incubator-answer 2025-01-07 10:39:23 +08:00
shuai 9f9527d200 fix: fixed some chinese translations 2025-01-06 17:05:41 +08:00
shuai 8a2a87911c fix: complete missing tags in translation files 2025-01-06 16:41:46 +08:00
lihui 61fef3b82b fix: add log var as format and adjust sum to sum int 2025-01-06 14:51:25 +08:00
Luffy ac8d0278ad fix: rename DeleteUserBadge to DeleteUserBadgeAward 2025-01-03 11:52:44 +08:00
Luffy d9bd3a2626 feat: remove user config 2025-01-03 11:52:44 +08:00
Mani Sankar Chintagunti 7ced6400cc feat: Add "Privacy Policy" and "Terms of Service" link in footer (#1217)
Co-authored-by: LinkinStars <linkinstar@foxmail.com>
2025-01-03 11:52:44 +08:00
Luffy db7e0808eb fix: typo 2025-01-03 11:52:44 +08:00
Luffy d328ea4175 fix: rename DeleteUserBadge to DeleteUserBadgeAward 2025-01-02 16:49:07 +08:00
Luffy 0f69467340 feat: remove user config 2025-01-02 16:49:07 +08:00
Mani Sankar Chintagunti 96efad2c5a feat: Add "Privacy Policy" and "Terms of Service" link in footer (#1217)
Co-authored-by: LinkinStars <linkinstar@foxmail.com>
2024-12-31 17:20:45 +08:00
Luffy 79454f3480 fix: typo 2024-12-30 16:10:28 +08:00
shuai 31f7cfc31f fix: i18n files 2024-12-30 12:17:09 +08:00
shuai 9d829ff64d fix: conflict 2024-12-27 12:13:48 +08:00
shuai 7a15e24f7b feat: add a copy button to the code block #1211 2024-12-27 12:12:12 +08:00
LinkinStars be8098a4ad Merge branch 'dev' into test 2024-12-25 16:06:50 +08:00
Luffy 0df7bec0c8 fix: parse user Accept-Language 2024-12-25 16:03:38 +08:00
LinkinStars 57b153c9a9 feat(user): add FilterEmptyString function and apply to user ID filtering 2024-12-25 16:00:08 +08:00
Luffy 8183291381 fix: Apply code from review 2024-12-25 15:53:04 +08:00
Luffy d91e3c20d2 fix: get user info error 2024-12-25 15:53:04 +08:00
Luffy 15cbfa870f fix: Optimize user delete 2024-12-25 15:53:04 +08:00
Luffy 4a74eed4a7 feat: Add permanently delete 2024-12-25 15:53:04 +08:00
shuai 1dd7a8d739 Merge branch 'dev' into feat/1.4.3/ui 2024-12-25 09:58:08 +08:00
shuai 86cf384b66 Merge branch 'feat/1.4.3/ui' into test 2024-12-23 15:17:05 +08:00
shuai c32f99b310 fix: translate list view model 2024-12-23 15:16:45 +08:00
shuai acecda7f6a Merge branch 'feat/1.4.3/ui' into test 2024-12-23 14:51:13 +08:00
shuai cc3d0712cb fix: add apache licence header 2024-12-23 14:50:48 +08:00
shuai 1baa52c677 Merge branch 'feat/1.4.3/ui' into test 2024-12-23 14:47:41 +08:00
shuai f4de98424f fix: add preivew model to question list page 2024-12-23 11:50:40 +08:00
shuai 0d4b178072 fix: upgeade dependences 2024-12-20 10:48:09 +08:00
shuai 58f2191d51 fix: Top list UI optimization 2024-12-16 11:00:34 +08:00
shuai e2c8d36567 style: question list style optimization 2024-12-12 12:23:51 +08:00
Luffy 30534ad0d6 feat: Check HTML comments in question, answer or comments 2024-12-12 10:59:50 +08:00
shuai afff5cb0eb fix: view icon replacement 2024-12-12 10:52:10 +08:00
Luffy 6203b5b441 fix: use TrimSpace 2024-12-11 17:11:38 +08:00
Luffy b31d644b92 fix: Fix render comments with line breaks 2024-12-11 17:11:38 +08:00
shuai 6f87e4aa6b fix: the list title of link issues, host issues and related issues shows three lines on the left 2024-12-11 16:19:35 +08:00
shuai 6cf124b6c9 chore: Upgrade pnpm to 9.7 2024-12-11 16:10:37 +08:00
shuai 7c86a45848 chore: Upgrade pnpm to 9.7, update pnpm-lock file #1198 2024-12-11 16:10:19 +08:00
LinkinStars f7731bc675 Release/1.4.2 (#1200)
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2024-12-09 17:31:10 +08:00
LinkinStars dcb7266dfb Merge branch 'dev' into test 2024-12-09 14:45:22 +08:00
LinkinStars 0e9d36f6bc Merge branch 'main' into dev
# Conflicts:
#	i18n/zh_CN.yaml
#	ui/template/homepage.html
#	ui/template/sort-btns.html
2024-12-09 14:44:41 +08:00
LinkinStars 6ae189010b Update translation (#1199) 2024-12-09 14:40:43 +08:00
LinkinStars 4eb731fc0c Merge branch 'main' into main 2024-12-09 11:59:12 +08:00
LinkinStars f6d517b930 docs(Makefile): upgrade version to 1.4.2 2024-12-09 11:52:18 +08:00
Luffy a475295784 feat: Add delete external user login info by user ID 2024-12-09 11:52:18 +08:00
LinkinStars 9c266c5f33 feat(upload): add support for attachment uploads and improve image handling 2024-12-09 11:52:18 +08:00
LinkinStars 7a8cc6a571 refactor(uploader): improve file upload and download functionality subpath constants
- Adjust file download
2024-12-09 11:52:18 +08:00
LinkinStars 0ad4defb6b feat(file): implement file download functionality 2024-12-09 11:52:18 +08:00
robin 7f77647048 refactor(i18n): update formatting instructions to mention post IDs 2024-12-09 11:52:18 +08:00
robin 9fcf183653 refactor: remove unused heading options and clean up icon styles 2024-12-09 11:52:18 +08:00
shuai 565ee3cc1b fix: Attachment accept type adjustment, editor plug-in insertion position added conditional restrictions 2024-12-09 11:52:18 +08:00
Luffy e41a8522fc fix: administrator add user failure 2024-12-09 11:52:18 +08:00
LinkinStars b558de8a23 feat(user): add top questions and answers to user homepage 2024-12-09 11:52:18 +08:00
LinkinStars 43a474b417 feat(storage): add upload file condition to plugin upload 2024-12-09 11:52:18 +08:00
wxt 73eb2a1133 test: fix TestGetAvatarURL 2024-12-09 11:52:18 +08:00
shuai 1ea056609b fix: The pre tag sets the maximum height #1168 2024-12-09 11:52:18 +08:00
shuai 4f01ccd5de fix: Optimize the mobile style of QueryGroup component dropdown btns 2024-12-09 11:52:18 +08:00
shuai 7b4044c15d fix: Optimize the mobile style of QueryGroup component 2024-12-09 11:52:18 +08:00
shuai 4e792ea460 fix: length error 2024-12-09 11:52:18 +08:00
LinkinStars aac2370fe8 feat(upload): add support for file attachments and enhance image upload 2024-12-09 11:52:18 +08:00
shuai 4831f6ef13 fix: Add file upload error handling 2024-12-09 11:52:18 +08:00
shuai bc20a71a52 feat: The editor has added support for uploading attachments, and the management background has added file upload configuration information. 2024-12-09 11:52:18 +08:00
LinkinStars a955ba0658 feat(upload): add support for file attachments and enhance image upload 2024-12-09 11:52:18 +08:00
LinkinStars b9fb758910 feat(question): sort questions by update time for frequent tab 2024-12-09 11:52:18 +08:00
LinkinStars 655a7e48e0 feat(question): add linked count feature to question 2024-12-09 11:52:18 +08:00
LinkinStars 5060e08771 fix(search): fix the wrong offset when searching 2024-12-09 11:52:18 +08:00
sy-records 98eceff549 feat: Add key metrics to the dashboard 2024-12-09 11:52:18 +08:00
Sonui 9df9f7a12d perf: add note to email body 2024-12-09 11:52:18 +08:00
shuai 241d6f4c37 feat: actions add toast tips 2024-12-09 11:52:18 +08:00
sy-records ad956d686e fix: Markdown parsing without incrementing ordered list numbers 2024-12-09 11:52:18 +08:00
LinkinStars e7ee4ea91d fix(review): reject the review when delete question 2024-12-09 11:52:18 +08:00
LinkinStars f29b43b956 feat(file): update the max image size 2024-12-09 11:52:18 +08:00
LinkinStars 1fe3b7d8fc refactor(gomock): update gomock dependence and docs 2024-12-09 11:52:18 +08:00
sy-records fdd3b4dbf5 fix: Tag summary display is not as expected on tag detail page 2024-12-09 11:52:18 +08:00
robin fcecc07f5e fix: update useRenderHtmlPlugin to target specific HTML element
Related issue: https://github.com/apache/incubator-answer-plugins/issues/245
2024-12-09 11:52:18 +08:00
sy-records 6fc8a6e9c7 fix: display timezone on Dashboard when set to UTC 2024-12-09 11:52:18 +08:00
shuai bb73941451 feat: update template files 2024-12-09 11:52:18 +08:00
sy-records 68570d7271 fix: resolve 404 error on Tags static page 2024-12-09 11:52:18 +08:00
Sonui 5546bb55ea fix: wrong status when enable tag rel 2024-12-09 11:52:18 +08:00
Sonui ad6387126a fix: add status filter when update tag rel 2024-12-09 11:52:18 +08:00
Sonui 5f468c6f05 perf: optimize tag has new tag check 2024-12-09 11:52:18 +08:00
LinkinStars 1aed48a0ce Merge branch 'dev' into test 2024-12-09 10:48:03 +08:00
Luffy 2cc7b33380 feat: Add delete external user login info by user ID 2024-12-09 10:31:07 +08:00
LinkinStars 21655f6818 feat(upload): add support for attachment uploads and improve image handling 2024-12-04 14:58:27 +08:00
LinkinStars 0d41ee90f6 refactor(uploader): improve file upload and download functionality subpath constants
- Adjust file download
2024-12-04 14:56:32 +08:00
LinkinStars c5321149a1 feat(file): implement file download functionality 2024-12-03 17:36:38 +08:00
robin 3e929454ff refactor(i18n): update formatting instructions to mention post IDs 2024-12-03 15:43:14 +08:00
robin 7147b4a316 refactor: remove unused heading options and clean up icon styles 2024-12-03 15:41:19 +08:00
shuai 2770ffa9a5 fix: Attachment accept type adjustment, editor plug-in insertion position added conditional restrictions 2024-12-03 10:18:18 +08:00
Luffy e7672c109d fix: administrator add user failure 2024-11-29 19:12:42 +08:00
LinkinStars a63078e8f9 Merge branch 'feat/1.4.2/seo' into test 2024-11-29 15:36:14 +08:00
LinkinStars ce0ec4b806 feat(user): add top questions and answers to user homepage 2024-11-29 15:15:23 +08:00
LinkinStars e97796e4f2 feat(storage): add upload file condition to plugin upload 2024-11-26 18:05:56 +08:00
wxt 57b0d0e84d test: fix TestGetAvatarURL 2024-11-25 14:27:34 +08:00
shuai 86a3da69de fix: The pre tag sets the maximum height #1168 2024-11-25 11:45:54 +08:00
shuai 3fd3e6ba85 fix: Optimize the mobile style of QueryGroup component dropdown btns 2024-11-25 11:22:54 +08:00
shuai a26aae6348 fix: Optimize the mobile style of QueryGroup component 2024-11-25 10:31:38 +08:00
shuai 7fefc6747e Merge branch 'feat/1.4.2/ui' into test 2024-11-22 12:42:28 +08:00
shuai 0569ea9ea3 fix: length error 2024-11-22 12:42:05 +08:00
LinkinStars d99bfcc3ba Merge branch 'feat/1.4.2/file' into test 2024-11-22 12:02:56 +08:00
LinkinStars 8616862f66 feat(upload): add support for file attachments and enhance image upload 2024-11-22 12:02:21 +08:00
shuai 85f792ffd7 Merge branch 'feat/1.4.2/ui' into test 2024-11-22 11:32:14 +08:00
shuai ab30cdfb8e fix: Add file upload error handling 2024-11-22 11:31:53 +08:00
shuai 3a795b247b Merge branch 'feat/1.4.2/ui' into test 2024-11-22 10:33:40 +08:00
shuai ab36105cc9 feat: The editor has added support for uploading attachments, and the management background has added file upload configuration information. 2024-11-22 10:30:39 +08:00
LinkinStars 932a33666d feat(upload): add support for file attachments and enhance image upload 2024-11-21 15:53:58 +08:00
LinkinStars 5866197c5c feat(question): sort questions by update time for frequent tab 2024-11-19 18:33:57 +08:00
LinkinStars 5cbd1906ae feat(question): add linked count feature to question 2024-11-19 18:01:38 +08:00
LinkinStars c39fd89675 fix(search): fix the wrong offset when searching 2024-11-18 16:05:01 +08:00
LinkinStars c6b45f7968 Merge branch 'dev' into feat/1.4.2/tag 2024-11-15 16:21:57 +08:00
sy-records 6049b5e883 feat: Add key metrics to the dashboard 2024-11-15 15:54:38 +08:00
Sonui f165d3dd4f perf: add note to email body 2024-11-15 10:13:23 +08:00
shuai dfa22f949b feat: actions add toast tips 2024-11-14 16:19:27 +08:00
sy-records d23ac6e923 fix: Markdown parsing without incrementing ordered list numbers 2024-11-14 16:11:38 +08:00
LinkinStars 8005ec88ee fix(review): reject the review when delete question 2024-11-14 15:22:55 +08:00
LinkinStars c8336de72e feat(file): update the max image size 2024-11-14 14:42:31 +08:00
LinkinStars d40820fd5a refactor(gomock): update gomock dependence and docs 2024-11-14 14:39:29 +08:00
sy-records 5a2b2a5288 fix: Tag summary display is not as expected on tag detail page 2024-11-13 16:19:44 +08:00
robin 8283c01cc7 fix: update useRenderHtmlPlugin to target specific HTML element
Related issue: https://github.com/apache/incubator-answer-plugins/issues/245
2024-11-13 11:49:10 +08:00
shuai 795f56f545 Merge branch 'main' into dev 2024-11-06 11:41:07 +08:00
shuai c2ad8c641c fix: delete unused log
Build Latest Docker Image For Release / build (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
Build Binary For Release / build-goreleaser (push) Has been cancelled
2024-11-06 11:40:31 +08:00
shuai 350db91dd2 fix: fixed project initialization not allowing access to the plug-in interface, causing the page to continue loading #1162 2024-11-06 11:38:18 +08:00
sy-records 2bff049d90 fix: display timezone on Dashboard when set to UTC 2024-11-01 10:25:56 +08:00
shuai bf4de722a7 feat: update template files 2024-10-29 15:39:37 +08:00
sy-records 84e08c567f fix: resolve 404 error on Tags static page 2024-10-28 17:40:09 +08:00
Sonui 7c677f3193 fix: wrong status when enable tag rel 2024-10-28 10:34:45 +08:00
Sonui 2e6eafbb2e fix: add status filter when update tag rel 2024-10-28 10:34:45 +08:00
Sonui 5af69352b5 perf: optimize tag has new tag check 2024-10-28 10:34:45 +08:00
shuai 8e3ce7d32e docs: rename codemirror license file name
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2024-10-24 10:15:41 +08:00
shuai 3a688a095f Merge branch 'lufei-fix/licenses' 2024-10-24 10:13:33 +08:00
shuai 6d933c2dbe docs: add front-matter license files 2024-10-24 10:13:09 +08:00
shuai 8cff85b7ad docs: update license files 2024-10-24 10:01:37 +08:00
sy-records eeb79b3ab5 fix: missing js-sha256 license 2024-10-24 09:59:18 +08:00
LinkinStars e39319da1f Merge branch 'release/1.4.1'
# Conflicts:
#	script/plugin_list
2024-10-23 10:41:22 +08:00
LinkinStars 8affa9fabe ci(plugin): make default plugin list 2024-10-23 10:40:29 +08:00
LinkinStars 962221be3b ci(gorelease): Upgrade Goreleaser version to 2 and update snapshot version template 2024-10-22 18:47:25 +08:00
LinkinStars b9402e6283 ci(gorelease): Upgrade Goreleaser version to 2 and update snapshot version template 2024-10-22 18:46:58 +08:00
LinkinStars f35561ff59 docs(i18n): update translation 2024-10-22 15:45:01 +08:00
LinkinStars cea87404e3 docs(i18n): update translation progress 2024-10-22 15:45:01 +08:00
LinkinStars e6cafaaa5c docs(i18n): update translation 2024-10-22 15:44:07 +08:00
LinkinStars 1a21cd0756 docs(i18n): update translation progress 2024-10-22 15:39:32 +08:00
LinkinStars 18e3becb53 Merge branch 'main' into release/1.4.1 2024-10-22 15:39:09 +08:00
LinkinStars 76fe2187fc # Conflicts:
#	i18n/da_DK.yaml
#	i18n/de_DE.yaml
#	i18n/es_ES.yaml
#	i18n/fa_IR.yaml
#	i18n/fr_FR.yaml
#	i18n/it_IT.yaml
#	i18n/ko_KR.yaml
#	i18n/pl_PL.yaml
#	i18n/pt_PT.yaml
#	i18n/ro_RO.yaml
#	i18n/ru_RU.yaml
#	i18n/sv_SE.yaml
#	i18n/uk_UA.yaml
#	i18n/vi_VN.yaml
#	i18n/zh_CN.yaml
2024-10-22 15:38:16 +08:00
LinkinStars 803da78526 # Conflicts:
#	i18n/da_DK.yaml
#	i18n/de_DE.yaml
#	i18n/es_ES.yaml
#	i18n/fa_IR.yaml
#	i18n/fr_FR.yaml
#	i18n/it_IT.yaml
#	i18n/ko_KR.yaml
#	i18n/pl_PL.yaml
#	i18n/pt_PT.yaml
#	i18n/ro_RO.yaml
#	i18n/ru_RU.yaml
#	i18n/sv_SE.yaml
#	i18n/uk_UA.yaml
#	i18n/vi_VN.yaml
#	i18n/zh_CN.yaml
2024-10-22 15:36:53 +08:00
LinkinStars f581e8b738 docs(ui): add Apache license header to InitialLoadingPlaceholder components 2024-10-22 15:08:21 +08:00
LinkinStars 08c2fc78ec docs(ui): add Apache license header to InitialLoadingPlaceholder components 2024-10-22 15:06:58 +08:00
LinkinStars dd16be0a61 docs(Makefile): upgrade version to 1.4.1 2024-10-22 14:52:52 +08:00
LinkinStars 0c5eb64ffa Merge branch 'dev' into test 2024-10-22 14:48:27 +08:00
Prithvijit Dasgupta 895c1c41df fix: add 400 second tag search debounce 2024-10-22 14:47:37 +08:00
Ourai Lin 9fa6ef6851 chore(ui): copy style from public/index.html to keep consistency 2024-10-22 14:22:18 +08:00
robin 8753716ceb refactor(ui): optimize initial loading and extract event logic of plugin kit out 2024-10-22 14:22:18 +08:00
Ourai Lin 6e51cc756d refactor(ui): optimize initial loading 2024-10-22 14:22:18 +08:00
Ourai Lin 4903382056 refactor(ui): extract event logic of plugin kit out 2024-10-22 14:22:18 +08:00
Ourai Lin c0a1f4e5cd fix(ui): route plugins register failed 2024-10-22 14:22:18 +08:00
LinkinStars 5fd09d8783 refactor(router): comment out UI index file check for dynamic routing 2024-10-21 10:58:07 +08:00
LinkinStars 5f28f1068f refactor(router): comment out UI index file check for dynamic routing 2024-10-21 10:57:36 +08:00
shuai 7e4aa98ce2 fix: navbar header dropdown cannot auto close 2024-10-21 10:18:49 +08:00
LinkinStars 07e80aba8f Merge branch 'dev' into test 2024-10-18 19:01:34 +08:00
LinkinStars bc8c6993b7 feat(question): add closed question linking 2024-10-18 19:01:23 +08:00
sy-records f93fd5181b fix: display error message and HTML for invalid order 2024-10-18 16:50:33 +08:00
LinkinStars fe1576ba65 Merge branch 'dev' into test 2024-10-18 15:58:29 +08:00
LinkinStars 23cc755aa8 feat(question): add question linking feature for closing question 2024-10-18 15:55:31 +08:00
shuai 1997af872f fix: eslint 2024-10-18 15:49:29 +08:00
shuai a3a7a36669 fix: personal page empty state 2024-10-18 15:47:52 +08:00
shuai e0ffb9670d fix: linked question component not use empty content 2024-10-18 15:25:22 +08:00
shuai 13c17f1d3a fix: Only the active issue list shows update time 2024-10-18 15:08:15 +08:00
shuai 81fbea171b fix: linked page list add order params 2024-10-18 14:59:04 +08:00
shuai 24b53d5355 fix: personal badges list style 2024-10-18 14:24:47 +08:00
shuai e893a65658 fix: badge modal zindex 2024-10-18 12:33:46 +08:00
shuai 43c09e8b8c fix: badge modal zindex 2024-10-18 12:33:06 +08:00
Luffy 916dba3f06 feat(pager): Show 404 when page is out of range (#1135)
close #1133
2024-10-18 10:12:59 +08:00
sy-records a8e008de07 feat: Support related and hot questions template 2024-10-17 11:08:06 +08:00
LinkinStars 2114aa939b Merge branch 'dev' into test 2024-10-16 17:03:39 +08:00
LinkinStars 8602065490 refactor(provider): add importer provider 2024-10-16 17:03:29 +08:00
LinkinStars 6da9d718cc Merge branch 'dev' into test
# Conflicts:
#	ui/src/pages/Users/Personal/components/Overview/index.tsx
2024-10-16 16:56:57 +08:00
robin 2372950563 refactor(ui): LinkedQuestions component to handle empty data 2024-10-16 16:06:06 +08:00
Anan 1e82b04382 Fix line87 2024-10-16 11:28:26 +08:00
Anan 2fd6ac37d0 Fix err 2024-10-16 11:28:26 +08:00
Anan 73c7a22900 Fix importer 2024-10-16 11:28:26 +08:00
Anan 5aad9e95b5 Add importer service 2024-10-16 11:28:26 +08:00
Anan 4c9e37fa6e Add importer plugin type 2024-10-16 11:28:26 +08:00
robin 9f912b3824 refactor(utils): Refactor plugin registration in Plugins class 2024-10-12 15:15:34 +08:00
robin dc41218cee refactor(ui): Update linked question UI text 2024-10-12 10:43:18 +08:00
Sonui fe60e5e5db perf: optimize question linked display processing 2024-10-12 10:17:18 +08:00
Sonui 74368ec9d4 perf: optimize question link processing 2024-10-12 10:17:18 +08:00
Sonui 62b9104a68 fix: support short id 2024-10-12 10:17:18 +08:00
Sonui b328a2b496 style: use ReplaceAll instead of Replace 2024-10-12 10:17:18 +08:00
Sonui ab920ac0e1 perf: skip link addition for same question id 2024-10-12 10:17:18 +08:00
Sonui 6f576c29ea feat: add title to question linked page 2024-10-12 10:17:18 +08:00
Sonui d0d275a6c4 style: move questionLink function to common service 2024-10-12 10:17:18 +08:00
Sonui f575aa9b5f docs: add Apache License headers to source files 2024-10-12 10:17:18 +08:00
Sonui 3eb9822c09 feat(question): support linking question 2024-10-12 10:17:18 +08:00
sy-records bd0d9fda22 docs: regenerate docs 2024-10-12 09:59:17 +08:00
zahash 18c802ae09 change i18n strings 2024-10-12 09:59:17 +08:00
zahash 3e91f03b40 change minimum username length to 2 instead of 4 2024-10-12 09:59:17 +08:00
sy-records 057f66cf31 style: Improve the display of personal page when there is no information 2024-10-11 14:53:40 +08:00
robin ad47713641 refactor(ui): update pluginKit refresh method 2024-10-11 11:53:19 +08:00
robin df507a9de5 refactor(pluginKit): remove unused loadPlugins function 2024-10-11 11:53:19 +08:00
robin 59080727cf refactor(ui): update pre-install script in package.json 2024-10-11 11:53:19 +08:00
robin 95b9af557f refactor(pluginKit): update addPluginToIndexTs function to include pluginFolder parameter 2024-10-11 11:53:19 +08:00
robin 84a49321f1 chore(ui): update pre-install script in package.json 2024-10-11 11:53:19 +08:00
robin dc61ab7e83 refactor(pluginKit): update plugin registration process 2024-10-11 11:53:19 +08:00
robin 9479f1f801 chore(ui): Dynamically import plugins 2024-10-11 11:53:19 +08:00
robin 62d2d2a8b3 refactor(pluginKit): improve plugin registration process 2024-10-11 11:53:19 +08:00
shuai 500c774f31 fix: Some contents of en_us.yaml have newline errors 2024-10-09 17:48:10 +08:00
shuai 88b52d86ab fix: Optimize badge animation effect 2024-10-09 16:33:08 +08:00
robin a0f24b3cbf refactor(pluginKit): update useRender hooks to include request parameter 2024-10-08 10:56:02 +08:00
sy-records 0db889af38 fix: fix typo in plugin 2024-10-08 10:15:32 +08:00
LinkinStars 0cff10b177 Merge branch 'dev' into test
# Conflicts:
#	go.sum
2024-09-27 14:03:08 +08:00
LinkinStars d6fa819fa1 refactor(gomod): downgrade dependency 2024-09-27 14:02:38 +08:00
LinkinStars 6817fafcca refactor(gomod): replace pinyin dependency 2024-09-26 16:25:40 +08:00
LinkinStars e062cbcb0e refactor(gomod): replace pinyin dependency 2024-09-26 16:25:00 +08:00
shuai f8fd872bde update: tag styles change 2024-09-26 11:17:12 +08:00
shuai 5ffa558327 Merge branch 'test' of github.com:answerdev/answer into test 2024-09-25 17:34:47 +08:00
shuai b9064e3eee fix: set default theme color constance 2024-09-25 17:34:38 +08:00
robin 106aeab194 refactor(pluginKit): update useRender hooks to include request parameter 2024-09-25 17:04:22 +08:00
shuai 36983898f1 fix: Personal homepage interface request error 2024-09-25 15:57:09 +08:00
shuai 3cf4cd62f8 fix: badge detail params change 2024-09-25 12:15:16 +08:00
shuai 88dabcc4e1 fix: badges allow 404 2024-09-25 11:12:20 +08:00
shuai db80f6300f Merge branch 'feat/1.4.1/badge-style' into test 2024-09-24 10:32:58 +08:00
shuai 7ff8038907 fix: badge modal set zindex attribute 2024-09-24 10:30:13 +08:00
shuai cfbe458e9a fix: update axios to latest version,fix github security CVE-2024-28849 2024-09-23 16:59:14 +08:00
LinkinStars 66eb2d1c38 Merge branch 'dev' into test 2024-09-23 15:01:02 +08:00
LinkinStars 0d6ea89ad3 refactor(gomod): upgrade golang and dependence version 2024-09-23 15:00:34 +08:00
LinkinStars 2597a6260f Merge branch 'main' into dev 2024-09-23 14:53:21 +08:00
LinkinStars 8e6fa13c72 CI: only formal tag will push the latest image (#1116) 2024-09-23 14:48:46 +08:00
LinkinStars bbf634aab7 ci(github): rename github action name 2024-09-23 14:43:06 +08:00
LinkinStars 4c0e669d51 ci(github): remove tags-ignore 2024-09-23 14:43:06 +08:00
LinkinStars 65cb30498e ci(github): only formal tag will push the latest image 2024-09-23 14:43:06 +08:00
sy-records 94828f71d1 fix: 404 page return 200 status code 2024-09-23 11:35:28 +08:00
sy-records 211659a5bf fix: missing url title for PermalinkQuestionIDAndTitleByShortID 2024-09-20 12:00:14 +08:00
sy-records 659a3383c9 fix: GetUserIsAdminModerator failed 2024-09-19 14:48:35 +08:00
sy-records be00ce4fc5 fix: install plugin dependencies 2024-09-19 14:37:04 +08:00
sy-records 48c2387853 chore: sync swagger 2024-09-19 14:37:04 +08:00
robin eb595aadcc fix: fix rendering issue in badge list 2024-09-19 12:02:37 +08:00
shuai b927953ff3 fix: change badges detail item key 2024-09-19 11:17:06 +08:00
sy-records 6c9203a7be fix: setup install language error 2024-09-14 10:48:00 +08:00
LinkinStars 462e1d0400 Merge branch 'dev' into test 2024-09-11 16:43:15 +08:00
LinkinStars 2e67b9ca6f fix(swagger): fix title and description on swagger docs 2024-09-11 16:41:45 +08:00
shuai e24a7181f2 fix: badge detail delete loader 2024-09-06 10:45:50 +08:00
shuai e7eecc05cd fix: badge list style 2024-09-06 10:45:14 +08:00
sy-records 1d33c8827c fix: change fail 2024-09-05 11:07:15 +08:00
kumfo 26afc0979c feat(install): add get language mapping api 2024-09-05 11:07:15 +08:00
sy-records fb9bece01c fix: format code 2024-09-05 11:07:15 +08:00
sy-records c751364974 fix: add getInstallLanguageConfig 2024-09-05 11:07:15 +08:00
sy-records 3ec9cc33c0 feat: install page support i18n 2024-09-05 11:07:15 +08:00
LinkinStars 465f4bff60 fix(badge): resolve id when set badge object id
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2024-09-05 10:43:46 +08:00
LinkinStars 6fb7131ee9 Merge branch 'dev' into test 2024-09-04 18:36:35 +08:00
Sunny df3164a119 New translations en_us.yaml (Chinese Simplified) 2024-09-04 18:33:44 +08:00
Sunny da546a8fc9 New translations en_us.yaml (Welsh) 2024-09-04 18:33:44 +08:00
Sunny d05b649625 New translations en_us.yaml (Telugu) 2024-09-04 18:33:44 +08:00
Sunny efdc06d702 New translations en_us.yaml (Hindi) 2024-09-04 18:33:44 +08:00
Sunny e0241e8a6a New translations en_us.yaml (Persian) 2024-09-04 18:33:44 +08:00
Sunny f0f5d9a2aa New translations en_us.yaml (Indonesian) 2024-09-04 18:33:44 +08:00
Sunny 7dbffca97c New translations en_us.yaml (Chinese Traditional) 2024-09-04 18:33:44 +08:00
Sunny 4d3544ff77 New translations en_us.yaml (Chinese Simplified) 2024-09-04 18:33:44 +08:00
Sunny f235ecc75c New translations en_us.yaml (Ukrainian) 2024-09-04 18:33:44 +08:00
Sunny c4c4146636 New translations en_us.yaml (Turkish) 2024-09-04 18:33:44 +08:00
Sunny 3f2fa6ca66 New translations en_us.yaml (Slovak) 2024-09-04 18:33:44 +08:00
Sunny 5687bb3b49 New translations en_us.yaml (Russian) 2024-09-04 18:33:44 +08:00
Sunny 9cfbcc000a New translations en_us.yaml (Polish) 2024-09-04 18:33:44 +08:00
Sunny 2c31c00998 New translations en_us.yaml (Korean) 2024-09-04 18:33:44 +08:00
Sunny b06d67a134 New translations en_us.yaml (Japanese) 2024-09-04 18:33:44 +08:00
Sunny 297abec7fe New translations en_us.yaml (Italian) 2024-09-04 18:33:44 +08:00
Sunny 30d4415aa0 New translations en_us.yaml (German) 2024-09-04 18:33:44 +08:00
Sunny 934d2722a2 New translations en_us.yaml (Danish) 2024-09-04 18:33:44 +08:00
Sunny 6b77130251 New translations en_us.yaml (Czech) 2024-09-04 18:33:44 +08:00
Sunny d672527bee New translations en_us.yaml (Spanish) 2024-09-04 18:33:44 +08:00
Sunny 5210ef87a3 New translations en_us.yaml (French) 2024-09-04 18:33:44 +08:00
Sunny fe7620c37a New translations en_us.yaml (Romanian) 2024-09-04 18:33:44 +08:00
Sunny 32d1463f53 New translations en_us.yaml (Portuguese) 2024-09-04 18:33:44 +08:00
Sunny 56f03bc0c0 New translations en_us.yaml (Swedish) 2024-09-04 18:33:44 +08:00
Sunny e70050d213 New translations en_us.yaml (Vietnamese) 2024-09-04 18:33:44 +08:00
Sunny 23d2bdb5b4 New translations en_us.yaml (Welsh) 2024-09-04 18:33:44 +08:00
Sunny 7f8605afd7 New translations en_us.yaml (Telugu) 2024-09-04 18:33:44 +08:00
Sunny ddcecaccb9 New translations en_us.yaml (Hindi) 2024-09-04 18:33:44 +08:00
Sunny a9c7490d94 New translations en_us.yaml (Persian) 2024-09-04 18:33:44 +08:00
Sunny f96b66779d New translations en_us.yaml (Indonesian) 2024-09-04 18:33:44 +08:00
Sunny 3285b56a62 New translations en_us.yaml (Chinese Traditional) 2024-09-04 18:33:44 +08:00
Sunny 6129362257 New translations en_us.yaml (Chinese Simplified) 2024-09-04 18:33:44 +08:00
Sunny e55c78b852 New translations en_us.yaml (Ukrainian) 2024-09-04 18:33:44 +08:00
Sunny 40ca81ed32 New translations en_us.yaml (Turkish) 2024-09-04 18:33:44 +08:00
Sunny 748dc66c99 New translations en_us.yaml (Slovak) 2024-09-04 18:33:44 +08:00
Sunny e7f4821703 New translations en_us.yaml (Russian) 2024-09-04 18:33:44 +08:00
Sunny 6e8511d20d New translations en_us.yaml (Polish) 2024-09-04 18:33:44 +08:00
Sunny 24f8b61cea New translations en_us.yaml (Korean) 2024-09-04 18:33:44 +08:00
Sunny 5f94c05c75 New translations en_us.yaml (Japanese) 2024-09-04 18:33:44 +08:00
Sunny f8c1387159 New translations en_us.yaml (Italian) 2024-09-04 18:33:44 +08:00
Sunny 11bc7226ab New translations en_us.yaml (German) 2024-09-04 18:33:44 +08:00
Sunny 6ca0aec7db New translations en_us.yaml (Danish) 2024-09-04 18:33:44 +08:00
Sunny dc7a288bc4 New translations en_us.yaml (Czech) 2024-09-04 18:33:44 +08:00
Sunny 427ed2a856 New translations en_us.yaml (Spanish) 2024-09-04 18:33:44 +08:00
Sunny 53485964bd New translations en_us.yaml (French) 2024-09-04 18:33:44 +08:00
Sunny 57bef7da37 New translations en_us.yaml (Romanian) 2024-09-04 18:33:44 +08:00
Sunny 6017cab509 New translations en_us.yaml (Portuguese) 2024-09-04 18:33:44 +08:00
Sunny 2664c15910 New translations en_us.yaml (Swedish) 2024-09-04 18:33:44 +08:00
Sunny c3b61df0a9 New translations en_us.yaml (Vietnamese) 2024-09-04 18:33:44 +08:00
kumfo dd8bdc230d fix(badge): fixed badge description translation 2024-09-04 18:26:31 +08:00
kumfo bd7a8c0368 fix(badge): fixed badge description translation 2024-09-04 18:26:31 +08:00
robin a1e427c8ab refactor(ui): Update i18n fields 2024-09-04 17:50:30 +08:00
kumfo fa5095261a fix(badge): fixed badge description translation 2024-09-04 17:36:55 +08:00
kumfo 3c8aa03fd9 fix(badge): fixed badge description translation 2024-09-04 17:06:36 +08:00
Sunny 2dd4cc4f92 New translations en_us.yaml (Chinese Simplified) 2024-09-04 16:52:47 +08:00
LinkinStars 1a8e2fa0bd # Conflicts:
#	i18n/da_DK.yaml
#	i18n/de_DE.yaml
#	i18n/es_ES.yaml
#	i18n/ko_KR.yaml
#	i18n/pl_PL.yaml
#	i18n/uk_UA.yaml
#	i18n/vi_VN.yaml
#	i18n/zh_CN.yaml
2024-09-04 16:52:47 +08:00
LinkinStars 323ee0e36d docs(makefile): upgrade version 2024-09-04 15:53:29 +08:00
LinkinStars d5d9f38cb1 feat(badge): add trigger object id for all badge award event 2024-09-04 12:00:36 +08:00
shuai b5401915fd fix: badge detial not show empty 2024-09-04 11:06:44 +08:00
LinkinStars 2ca5e8bb4a Merge branch 'dev' into test
# Conflicts:
#	cmd/wire_gen.go
#	internal/service/content/question_service.go
2024-09-04 10:29:05 +08:00
LinkinStars cb5a0b7045 chore(lint): lint code and regenerate docs 2024-09-04 10:26:57 +08:00
ferrischi201 8142d78e10 fix(recommend): redirect unauth users from recommend page 2024-09-04 10:24:53 +08:00
ferrischi201 cf7b2f0c1a fix(recommend): fix for all database backend 2024-09-04 10:24:53 +08:00
ferrischi201 eacb79e512 feat(recommend): add tag-based recommendations in question page
Filter out deleted or hidden questions and support multi databases and filter out deleted or hidden questions.

For issue:1003.
2024-09-04 10:24:53 +08:00
LinkinStars 5c5300a6c2 Merge branch 'feat/1.4.0/badge' into test 2024-09-04 10:08:34 +08:00
LinkinStars 052b78be28 fix(badge): remove red dot only when the badge notification has been read 2024-09-04 10:08:07 +08:00
robin daab3eebee feat: Add animation to badgeModal 2024-09-03 15:03:35 +08:00
robin a2c725abbb refactor: Update BadgeOperation component to conditionally render dropdown items based on badge status 2024-09-03 15:03:35 +08:00
shuai 1ebff25492 Merge branch 'dev' of github.com:answerdev/answer into dev 2024-09-03 14:45:23 +08:00
kumfo a36d2e810d feat(badge): delete useless field 2024-09-03 14:45:18 +08:00
shuai 86cde0e983 fix: style 2024-09-03 14:45:13 +08:00
shuai c592231fd9 Merge branch 'main' into dev 2024-09-03 14:44:39 +08:00
kumfo fec34ae974 feat(badge): delete useless field 2024-09-03 14:43:35 +08:00
kumfo d316764f63 Merge branch 'test' into feat/1.4.0/badge 2024-09-03 14:39:21 +08:00
SantiagoLiendro 832fa68839 change in the display of emoticons 2024-09-03 14:38:36 +08:00
shuai 70acbe38e0 fix: styles 2024-09-03 14:34:58 +08:00
lhpqaq 8a31d29ce7 Fix ListNewestEarned in high version MySQL 2024-09-03 14:30:13 +08:00
LinkinStars 0606d87b14 Merge branch 'feat/1.4.0/badge' into test 2024-09-03 14:17:04 +08:00
LinkinStars 2eaa7dba36 Merge remote-tracking branch 'origin/dev' into feat/1.4.0/badge 2024-09-03 14:16:24 +08:00
LinkinStars 41d63bd245 feat(badge): delete red dot when no unread notification 2024-09-03 14:16:17 +08:00
robin 2aa16ff8aa refactor: Update badge description rendering in Admin Badges page 2024-09-03 12:28:01 +08:00
robin d72cf56b8c refactor: Add text truncation to TopList component link 2024-09-03 11:58:57 +08:00
robin ca8c4b40c6 refactor: Update badge labels to use multiplication symbol instead of 'x' 2024-09-03 11:05:03 +08:00
alvin 63e1da69a1 refactor: add err handling for activeUser 2024-09-03 10:45:09 +08:00
robin afaf11ffb6 refactor: Update badge labels to use multiplication symbol instead of 'x' 2024-09-03 10:30:40 +08:00
robin 8b9f5d4448 refactor: Add links to badge names and award counts in Admin Badges page 2024-09-03 10:30:40 +08:00
kumfo 1666b94135 feat(badge): badge list earned return earned total 2024-09-02 18:26:24 +08:00
kumfo 4f80f9e97b feat(badge): badge list earned return earned total 2024-09-02 18:12:04 +08:00
kumfo 6aa64092b6 feat(badge): feat badge description url 2024-09-02 15:32:46 +08:00
LinkinStars 90faa87e52 refactor(badge): remove unused code 2024-09-02 15:32:46 +08:00
kumfo 292dfe6da7 feat(badge): feat badge description url 2024-09-02 15:32:03 +08:00
shuai 9594acb6e6 fix: badges index page show award count 2024-09-02 11:04:43 +08:00
shuai 11de15c1d0 Merge branch 'fix/link' into test 2024-08-30 15:56:54 +08:00
shuai 23323d9346 fix: When using base_url, some links are missing the base path 2024-08-30 15:55:56 +08:00
robin 341b0ab8da refactor: Remove unnecessary CSS property in Editor utils 2024-08-30 15:28:53 +08:00
LinkinStars f6b93f2b35 refactor(badge): remove unused code 2024-08-28 15:34:40 +08:00
shuai 17c69c3cc5 fix: badges link url 2024-08-27 16:15:10 +08:00
LinkinStars 49db6e78d0 Merge branch 'feat/1.4.0/badge' into test 2024-08-27 15:54:42 +08:00
LinkinStars 9082623c49 fix(badge): remove duplicate default badges 2024-08-27 15:54:20 +08:00
Jan Ernsting 16605eafd0 Fix error on multiple make generate runs (#1087)
As discussed in #1074

---------

Co-authored-by: Fen <f3nb0x@gmail.com>
2024-08-23 15:20:20 +08:00
Jan Ernsting 701343e82f Fix error on multiple make generate runs (#1087)
As discussed in #1074

---------

Co-authored-by: Fen <f3nb0x@gmail.com>
2024-08-23 15:18:56 +08:00
robin 6214fed8ae docs: Add render api 2024-08-23 11:39:16 +08:00
robin 1af1f77a60 feat: Add RenderController to handle rendering configuration 2024-08-23 11:39:16 +08:00
LinkinStars 2cc478357a Merge branch 'feat/1.4.0/config' into test 2024-08-23 10:22:26 +08:00
kumfo 82d7445e62 fix: embed controller add error return 2024-08-22 16:14:24 +08:00
robin 065bf980d3 chore: Add License 2024-08-22 15:50:40 +08:00
robin 1e8072ba21 refactor: Update translation for achievements 2024-08-22 14:37:49 +08:00
robin 76d455e6de refactor: Restore zh_CN.yaml 2024-08-22 14:21:47 +08:00
LinkinStars b20e656c30 feat(config): add deactivate plugin config cli 2024-08-22 14:21:18 +08:00
Jan Ernsting 493d5c0768 requested changes 2024-08-22 10:58:06 +08:00
Jan Ernsting 15531f4223 build swagger documentation on go generate 2024-08-22 10:58:06 +08:00
Fen 7d8e679d9c docs: enable wiki 2024-08-22 10:58:06 +08:00
robin 34684cdf70 refactor: Update BadgeModal component to handle badge cancellation and confirmation 2024-08-22 10:47:44 +08:00
robin e6aa178062 refactor: Update key prop in BadgeDetail component 2024-08-22 10:45:24 +08:00
robin e4d0322a16 refactor: Remove unused dropdown item in BadgeOperation component 2024-08-22 10:04:52 +08:00
robin e48a13fed5 refactor: Update Chinese translation for badge activation 2024-08-22 10:04:47 +08:00
robin 7c59d3f3cb feat: Add useRenderPlugin to Editor component 2024-08-21 16:54:08 +08:00
robin 85516530ca feat:Support Render type plugins 2024-08-21 16:54:08 +08:00
robin 90cf954d8f refactor: Update badge description styling in Admin Badges page 2024-08-21 16:48:29 +08:00
robin ac28c88712 refactor: Update badge description styling in Admin Badges page 2024-08-21 16:48:29 +08:00
robin 45f410ca4c chore: Update tsconfig.json to exclude src/plugins directory 2024-08-21 16:48:29 +08:00
robin db1a527f95 refactor: Update page_size parameter in badge list API call 2024-08-21 16:48:29 +08:00
robin 3cb1be88f6 refactor: Update badge description styling in Admin Badges page 2024-08-21 16:48:29 +08:00
shuai 342c31f38c fix: add link url path 2024-08-21 16:48:29 +08:00
robin 4afa76ba2a refactor: update zh_CN.yaml 2024-08-21 16:48:29 +08:00
robin 04065a8dcb refactor: Update query parameter name in badge list API call 2024-08-21 16:48:29 +08:00
robin ec31d18c26 feat(admin): Improve the badge list 2024-08-21 16:48:29 +08:00
shuai 29f2ce3a56 fix: add link url path 2024-08-21 16:48:29 +08:00
shuai 957c299fc5 fix: delete log 2024-08-21 16:48:29 +08:00
shuai 3d71bc17c8 fix: badge detail list styles format 2024-08-21 16:48:29 +08:00
shuai fce712e6c7 fix: bages detail add userCard conponent 2024-08-21 16:48:29 +08:00
shuai 3f1f31581f fix: badge list and badge detail docking api 2024-08-21 16:48:29 +08:00
shuai 8534079687 fix: replace share params shareUserId to share 2024-08-21 16:48:29 +08:00
shuai 6973a0045e fix: personal add recent bages ui 2024-08-21 16:48:29 +08:00
shuai 3d8cf0ef41 feat: bages ui 2024-08-21 16:48:29 +08:00
kumfo 59b089a4eb Merge branch 'feat/1.4.0/embed' into test 2024-08-21 14:50:33 +08:00
kumfo a590bdf347 Merge branch 'feat/1.4.0/badge' into test 2024-08-21 14:48:42 +08:00
kumfo 1d9f88f803 fix(embed): embed plugin type definition 2024-08-19 16:15:21 +08:00
kumfo f660b6368d fix(dev): delete test file 2024-08-19 15:24:15 +08:00
kumfo e9c925082b Revert "fix(dev): delete test file"
This reverts commit c50e63dd34.
2024-08-19 15:24:15 +08:00
kumfo b41bafad30 fix(dev): delete test file 2024-08-19 15:24:15 +08:00
Sonui 969169243b perf: remove extra characters in header.html 2024-08-19 15:24:15 +08:00
Sonui 4b3e0eaa4e perf: update check-asf-header.sh script to support Podman 2024-08-19 15:24:15 +08:00
Sonui eda3938075 perf: remove invalid nil pointer check in Translate function 2024-08-19 15:24:15 +08:00
James Roller, Jr. 016abd1a98 add pvc dataSource
- allow for restoring a volumeSnapshot
2024-08-19 15:24:15 +08:00
sy-records 1b043d3a64 fix: branding favicon might be empty 2024-08-19 15:24:15 +08:00
sy-records 38834e6294 feat: Add Open Search support 2024-08-19 15:24:15 +08:00
kumfo 83155783e7 Revert "fix(dev): delete test file"
This reverts commit c50e63dd34.
2024-08-19 15:20:38 +08:00
kumfo c50e63dd34 fix(dev): delete test file 2024-08-19 15:15:07 +08:00
kumfo ebc858579b chore(badge): delete not used func 2024-08-19 14:10:13 +08:00
Sonui d63ce3673b perf: remove extra characters in header.html 2024-08-16 11:16:59 +08:00
Sonui 7d5bfaa3fb perf: update check-asf-header.sh script to support Podman 2024-08-16 11:16:59 +08:00
Sonui 5e5551a16f perf: remove invalid nil pointer check in Translate function 2024-08-16 11:16:59 +08:00
LinkinStars 7d040f07dd feat(badge): add badge notification 2024-08-15 18:34:13 +08:00
LinkinStars f0c433cc02 fix(badge): fix badge init data 2024-08-14 12:31:03 +08:00
LinkinStars 46ab8a20fe chore(badge): remove unused comment 2024-08-14 10:58:39 +08:00
LinkinStars bede0adbf7 feat(badge): award badge for user 2024-08-14 10:38:17 +08:00
kumfo b0c76757cc feat(badge): badge search with page 2024-08-14 10:05:10 +08:00
kumfo cf327f59dc feat(badge): badge manage add badge search 2024-08-13 17:50:10 +08:00
kumfo bb40366f00 feat(badge): badge manage and user center's badge list 2024-08-13 16:12:34 +08:00
LinkinStars 290f63f2a1 feat(badge): add comment for event schema 2024-08-13 10:40:55 +08:00
Fen 811d6de69d docs: enable wiki 2024-08-13 10:29:55 +08:00
LinkinStars 98d93b1f98 feat(badge): add badge checking rule 2024-08-12 16:34:16 +08:00
kumfo 5c04bceca7 feat(badge): fixed badge detail 2024-08-12 16:01:20 +08:00
kumfo 61db21e0d3 feat(badge): fixed user's badge award list and add recent user badges 2024-08-12 15:33:04 +08:00
kumfo 5293f4f3ea feat(badge): user's badge award list 2024-08-09 15:00:46 +08:00
kumfo c2531f9b07 chore(badge): change project code struct 2024-08-09 11:33:24 +08:00
kumfo 203062dd98 feat(badge): badge award 2024-08-09 10:33:03 +08:00
kumfo 122ac657f1 feat(badge): change badge_award check 2024-08-08 18:17:41 +08:00
kumfo 8a40e959ea Merge remote-tracking branch 'origin/feat/1.4.0/badge' into feat/1.4.0/badge 2024-08-08 18:16:24 +08:00
kumfo 49ba98c6fc feat(badge): change badge_award entity 2024-08-08 18:16:08 +08:00
LinkinStars 9b0de85ed4 feat(badge): add badge event handler 2024-08-08 18:09:27 +08:00
LinkinStars b2d36e0a73 Merge branch 'feat/1.4.0/badges' into feat/1.4.0/badge
# Conflicts:
#	internal/service/provider.go
2024-08-08 16:43:31 +08:00
kumfo 797ea9b918 feat(badge): badge info && badge award list 2024-08-08 16:41:17 +08:00
LinkinStars 07e4f549b1 feat(badge): add event for the badge 2024-08-08 16:19:47 +08:00
James Roller, Jr. 2e626660e6 add pvc dataSource
- allow for restoring a volumeSnapshot
2024-08-08 09:55:46 +08:00
kumfo 23b6b11f9e feat(badge): badge init add icon 2024-08-07 17:13:32 +08:00
kumfo ea43edc864 feat(badge): define func and add badge's list 2024-08-07 16:35:22 +08:00
sy-records 264f927433 fix: branding favicon might be empty 2024-08-07 10:11:23 +08:00
sy-records f0b5859747 feat: Add Open Search support 2024-08-07 10:11:23 +08:00
shuai c3a17046c6 fix: gavatar use sha256 for hash 2024-08-06 16:46:22 +08:00
EkkoKo 11fb3aafd8 Makefile: Wraped with quotes the go location in go variable 2024-08-06 16:46:22 +08:00
Sonui 5afa01ba89 perf: optimize search for unanswered questions using answer_count 2024-08-06 16:46:22 +08:00
Sonui 8762f5b751 typo: GetCss swagger annotation content 2024-08-06 16:46:22 +08:00
Sonui 2167a8243c fix: set last answer ID to zero if no answers 2024-08-06 16:46:22 +08:00
Sonui 98a2de61f1 fix: Update Test_emailRepo_VerifyCode to handle additional parameters
This commit updates the `Test_emailRepo_VerifyCode` function in the `email_repo_test.go` file. It adds support for additional parameters in the `SetCode` function call, specifically the `user_id` and `skip_validation_latest_code` parameters. This change ensures that the `VerifyCode` function can properly handle the updated code format.
2024-08-06 16:46:22 +08:00
LinkinStars d39c12f8f1 docs(docs): remove the images about installation 2024-08-06 16:46:22 +08:00
EkkoKo 027caa650e Makefile: Wraped with quotes the go location in go variable 2024-08-06 14:55:40 +08:00
robin d055507c80 feat: Add badges to admin 2024-08-05 14:29:22 +08:00
Sonui 5383b90581 perf: optimize search for unanswered questions using answer_count 2024-08-02 11:28:12 +08:00
Sonui 80f139ef9e typo: GetCss swagger annotation content 2024-08-02 11:28:12 +08:00
Sonui 4a07fdb4a8 fix: set last answer ID to zero if no answers 2024-08-02 11:28:12 +08:00
kumfo ecbfd61bac feat(badge): init badge update data 2024-08-01 16:14:07 +08:00
kumfo 37981c139b feat(badge): init badge update data 2024-08-01 15:44:11 +08:00
kumfo dc56fce18a feat(badge): init version update 2024-08-01 11:19:21 +08:00
kumfo 95f20c9827 feat(badge): update entity 2024-07-31 14:28:44 +08:00
Sonui a4830a4119 fix: Update Test_emailRepo_VerifyCode to handle additional parameters
This commit updates the `Test_emailRepo_VerifyCode` function in the `email_repo_test.go` file. It adds support for additional parameters in the `SetCode` function call, specifically the `user_id` and `skip_validation_latest_code` parameters. This change ensures that the `VerifyCode` function can properly handle the updated code format.
2024-07-31 14:14:12 +08:00
kumfo b702294920 feat(badge): update entity 2024-07-31 14:00:18 +08:00
kumfo 969592589c feat(badge): init entity 2024-07-31 10:32:10 +08:00
LinkinStars fe35d6c529 Merge remote-tracking branch 'origin/main' into dev 2024-07-30 10:47:27 +08:00
LinkinStars 46fba3e2bd docs(docs): remove the images about installation 2024-07-30 10:47:12 +08:00
kumfo 4692420e5f fix(update): fix update to v1.3.6
Build Docker Image For Release / build (push) Has been cancelled
Build Binary For Release / build-goreleaser (push) Has been cancelled
2024-07-25 16:44:10 +08:00
kumfo fa19fe63c9 fix(update): fix update to v1.3.6 2024-07-25 16:40:38 +08:00
LinkinStars 629f981819 Add Translation (#1052)
Co-authored-by: Sunny <1147886+sunshineg@users.noreply.github.com>
2024-07-25 15:25:22 +08:00
LinkinStars 0b09d524cc chore(asf): add asf header 2024-07-25 15:15:39 +08:00
LinkinStars d2401cca68 Merge branch 'release/1.3.6' 2024-07-25 15:12:56 +08:00
LinkinStars d841396c19 docs(makefile): upgrade version 2024-07-25 15:07:19 +08:00
shuai 86dd5af6ba fix: restoring route interception 2024-07-25 12:07:23 +08:00
dashuai c907a9861a Fix/links invalid (#1049) 2024-07-25 11:59:24 +08:00
shuai 78a201590c style: link-invalid page ui changed 2024-07-25 11:44:03 +08:00
shuai 0668b4f255 fix: remove spaces in file.attributes.tags 2024-07-25 10:27:24 +08:00
LinkinStars cc8cc43907 Merge branch 'feat/1.3.6/user' into test
# Conflicts:
#	cmd/wire_gen.go
2024-07-25 10:15:24 +08:00
LinkinStars f915e9925a Merge branch 'dev' into feat/1.3.6/user 2024-07-25 10:13:42 +08:00
LinkinStars 2a2ab45c4b refactor(conf): go fmt conf.go 2024-07-25 10:13:30 +08:00
EkkoKo e0068a70f6 conf.go: changed struct to camelcase 2024-07-25 10:11:46 +08:00
EkkoKo 0183875742 conf.go: Added an option for environment variables ovveride 2024-07-25 10:11:46 +08:00
LinkinStars 8cb5dd993f Merge branch 'dev' into feat/1.3.6/user 2024-07-25 10:10:34 +08:00
LinkinStars 8f30a1530c fix(question): update answer count after reviewing 2024-07-25 10:09:51 +08:00
shuai ebc13e134b fix: resolve conflict 2024-07-24 14:16:37 +08:00
shuai 8d94497439 fix: search icon styles 2024-07-24 14:15:00 +08:00
shuai eeef73b3c3 fix: the images in the image upload component are forced to enlarge #1039 2024-07-24 12:00:29 +08:00
shuai 3ff3d3e452 feat: add serch icon #1010 2024-07-24 12:00:29 +08:00
shuai a32375243f fix: add front-matter licesnse 2024-07-24 12:00:29 +08:00
shuai 2ef53f32e0 fix: aks page init formdata 2024-07-24 12:00:29 +08:00
LinkinStars 4c43e85d89 feat(email): add mask for email configˆ 2024-07-24 10:57:11 +08:00
shuai 75bd7214e7 fix: the images in the image upload component are forced to enlarge #1039 2024-07-24 10:57:04 +08:00
shuai 3a1e268a17 feat: add serch icon #1010 2024-07-24 10:53:57 +08:00
robin 0f95078ae9 fix: Fix typo in delete tag confirmation message 2024-07-24 10:42:41 +08:00
sy-records bbefbbcb64 fix: Fix old user information still showing when editing repeatedly 2024-07-23 15:44:51 +08:00
sy-records c97134dd8d feat: Support admin edit display name
feat: Support admin edit display name
2024-07-23 15:44:51 +08:00
LinkinStars 2820efc454 feat(user): ensure that only one link is active at a time 2024-07-22 17:34:51 +08:00
kumfo 190d160dce fix(cdn): allow only 2024-07-22 15:56:24 +08:00
shuai 61413663b0 fix: comment img style set display block, so that img can fit max-content 2024-07-22 15:35:47 +08:00
shuai 71aa297cc8 fix: delete db files 2024-07-22 14:48:09 +08:00
kumfo 70ddccc27e fix(cdn): fix cdn replace 2024-07-22 14:05:54 +08:00
LinkinStars f014602ec7 feat(user): change the hash way of gravatar 2024-07-22 11:40:04 +08:00
shuai 4a92adfcc2 fix: remove node-async chunks 2024-07-19 18:12:08 +08:00
kumfo 17703c2ed7 fix(cdn): fix cdn path render 2024-07-19 17:57:56 +08:00
shuai b20bf6a748 fix: select tag automatically scroll to visible position 2024-07-19 15:45:22 +08:00
LinkinStars c87b7171ea Merge branch 'feat/1.3.6/template' into test 2024-07-19 10:45:21 +08:00
LinkinStars 1ba1ad9fa2 fix(tag): remove check when recommend tags is empty 2024-07-19 10:44:43 +08:00
shuai 6c0915107e Merge branch 'test' of github.com:answerdev/answer into test 2024-07-18 17:37:39 +08:00
shuai eba1d4d8d6 fix: use ScrollRestoration component control page position 2024-07-18 17:37:19 +08:00
LinkinStars 0c98e0c365 Merge branch 'feat/1.3.6/cmd' into test 2024-07-18 16:16:18 +08:00
shuai 83a8e9eb09 fix: tagSelector show all recommended tags 2024-07-18 16:10:19 +08:00
shuai 07188847de fix: add front-matter licesnse 2024-07-18 15:41:31 +08:00
shuai bfe04cfa24 fix: template adds logo to distinguish html source #895 2024-07-18 10:39:46 +08:00
shuai d580cab48c fix: test add 2024-07-17 15:49:18 +08:00
shuai bf85f766ca Merge branch 'test' of github.com:answerdev/answer into test 2024-07-17 15:47:00 +08:00
shuai f2120ff582 fix: test custome content 2024-07-17 15:46:51 +08:00
robin 24b6eee8e5 refactor(editor): Update editor theme padding and cursor color 2024-07-17 14:35:01 +08:00
LinkinStars a9ee6ca75d Merge branch 'feat/1.3.6/template' into test 2024-07-17 11:16:55 +08:00
LinkinStars bf4f8a70dc fix(template): add template HTML 2024-07-17 11:15:36 +08:00
LinkinStars 82e656821d feat(cmd): add i18n command 2024-07-17 11:04:20 +08:00
shuai 85bdec0009 fix: aks page init formdata 2024-07-16 17:40:18 +08:00
LinkinStars f945ad20a3 Merge remote-tracking branch 'origin/fix/1.3.6/build' into feat/1.3.6/cmd 2024-07-16 11:19:09 +08:00
LinkinStars e771e45f8e Merge remote-tracking branch 'origin/dev' into test 2024-07-16 11:17:51 +08:00
LinkinStars 1b5c5ba1f6 Merge remote-tracking branch 'origin/fix/1.3.6/build' into test 2024-07-16 11:17:40 +08:00
shuai abf34123a3 fix: ts error 2024-07-16 11:09:04 +08:00
Wuzi 9d70bf93d9 Determine if default values need to be changed by db_type 2024-07-16 11:09:04 +08:00
Wuzi 2f3d991bf2 support switching databases to display the relevant database configurations during the initial installation
When switching to Mysql, use:
Username: root
Password: root
Database host: db:3306

When switching to Postgres, use
Username: postgres
Password: postgres
Database host: db:5432
2024-07-16 11:09:04 +08:00
tison 7af90d0115 chore: drop unnecessary properties in licenserc.toml (#1002) 2024-07-16 11:09:04 +08:00
shuai d180322f88 fix: formdata assignment order adjustment 2024-07-16 11:09:04 +08:00
hgaol d0c1267b53 replace with front-matter 2024-07-16 11:09:04 +08:00
hgaol 0893e460e5 support prefill with markdown format 2024-07-16 11:09:04 +08:00
hgaol 8bdc43a435 feat: support pre-fill forms on the ask page 2024-07-16 11:09:04 +08:00
shuai c42266c2f8 fix: ts error 2024-07-15 17:41:26 +08:00
Wuzi c7b6229a0e Determine if default values need to be changed by db_type 2024-07-15 17:23:20 +08:00
Wuzi c4a89db638 support switching databases to display the relevant database configurations during the initial installation
When switching to Mysql, use:
Username: root
Password: root
Database host: db:3306

When switching to Postgres, use
Username: postgres
Password: postgres
Database host: db:5432
2024-07-15 17:23:20 +08:00
tison 5e0fe16fd0 chore: drop unnecessary properties in licenserc.toml (#1002) 2024-07-15 17:23:20 +08:00
shuai 8c429992a1 fix: resolve conflict 2024-07-15 15:53:05 +08:00
shuai 9ed0ab480f fix: delete log 2024-07-15 15:49:48 +08:00
shuai d33a657275 fix: remove content classname 2024-07-15 15:47:57 +08:00
robin ec16ac9ad2 chore(scripts): Remove humps dependency 2024-07-15 11:37:55 +08:00
kumfo 16b8d0195d feat(hot): merge from test 2024-07-15 10:25:29 +08:00
kumfo e527d55b38 Merge branch 'test' into feat/1.3.6/hottest 2024-07-15 10:21:59 +08:00
LinkinStars 8df8f8ca50 Merge remote-tracking branch 'origin/feat/1.3.6/template' into test 2024-07-15 10:17:05 +08:00
shuai 04e172d752 fix: formdata assignment order adjustment 2024-07-12 17:48:14 +08:00
hgaol 0378b81b6b replace with front-matter 2024-07-12 17:45:56 +08:00
hgaol 0308d2b5cf support prefill with markdown format 2024-07-12 17:45:56 +08:00
hgaol a5d88da1e6 feat: support pre-fill forms on the ask page 2024-07-12 17:45:56 +08:00
LinkinStars c4318f1d18 feat(tag): recommend tags can't contain reserved tag 2024-07-12 16:40:02 +08:00
dashuai 885406ddb3 Feat/1.3.6/UI (#1015)
Co-authored-by: Kevin Gil <kevin_gil@live.com>
Co-authored-by: sy-records <52o@qq52o.cn>
Co-authored-by: robin <robin@rnode.me>
2024-07-12 14:13:34 +08:00
shuai cdde7648af fix: optimize diff style 2024-07-12 14:07:26 +08:00
shuai a4960f09be fix: optimize admin/write page content #815 2024-07-12 11:13:12 +08:00
LinkinStars b7ebe3083b feat(tag): update tags search API 2024-07-12 10:59:28 +08:00
LinkinStars 6c553f52f8 feat(admin): update recommend_tags and reserved_tags filed in site write req 2024-07-11 17:53:59 +08:00
shuai 2be1807b0f fix: replace quetion list sort requent -> hot 2024-07-11 17:36:17 +08:00
shuai 64aebf35ab fix: dark mode for editor style #1012 2024-07-11 17:29:33 +08:00
kumfo 4e4c149dda fix(hot): fixed translate 2024-07-11 17:28:09 +08:00
kumfo 795febe0ee feat(hot): change frequent to hot 2024-07-11 17:27:03 +08:00
kumfo db540ac62b feat(cdn-plugin): add cdn plugin 2024-07-10 15:14:40 +08:00
Kevin Gil fd7686984c fix typo 2024-07-10 15:14:40 +08:00
Kevin Gil b144fc678f website information in the template file now supports multiple languages 2024-07-10 15:14:40 +08:00
shuai cdd054c0af fix: delete QUESTIONS_ORDER_STORAGE_KEY key 2024-07-09 15:33:12 +08:00
shuai 780c13c56a fix: adjust the sort order on the question page and tag detail page 2024-07-09 15:31:16 +08:00
shuai 7b6ba458dd fix: adjust the sort order on the search page 2024-07-09 15:15:39 +08:00
LinkinStars 912bc7a8f5 feat(template): add custom html in template #895 2024-07-09 10:24:51 +08:00
shuai 2a7d3a07e4 fix: ask question page use switch component replace checkbox component 2024-07-08 11:28:37 +08:00
shuai 36b1560b45 fix: Automatically jump when the href of a Link component within a matching project is not a front-end route 2024-07-05 14:56:05 +08:00
robin 2ff6e7eab4 feat: Update plugin.js to use humps for pascalizing package names 2024-07-04 16:57:43 +08:00
shuai 350cfe5d22 docs: update ./docs/release/NOTICE files year 2024-07-02 14:57:18 +08:00
tison 3ce69256bf chore: drop unnecessary properties in licenserc.toml (#1002) 2024-06-29 09:45:33 +08:00
sy-records 41691eed2f fix: When @ someone, markdown render error 2024-06-27 14:53:04 +08:00
LinkinStars 7ad8a83f8c fix(build): get specific version of plugins 2024-06-24 17:38:54 +08:00
Kevin Gil 5f481fd3f9 fix typo 2024-06-24 12:18:42 +08:00
Kevin Gil e89ec15e34 website information in the template file now supports multiple languages 2024-06-24 12:18:42 +08:00
LinkinStars 7e8ec52260 ci(release): update goreleaser ci args
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2024-06-18 17:47:27 +08:00
robin 7fe0d60d8f fix(editor): Fixed the issue of editor focus being lost 2024-06-18 16:20:30 +08:00
LinkinStars 07316dad5a Merge pull request #2 from sunshineg/i18n
New Crowdin updates
2024-06-18 12:04:10 +08:00
Sunny a66abff17d New translations en_us.yaml (Chinese Simplified) 2024-06-18 11:59:20 +08:00
Sunny da834eb718 New translations en_us.yaml (Welsh) 2024-06-18 11:51:26 +08:00
Sunny 3191e2b174 New translations en_us.yaml (Telugu) 2024-06-18 11:51:25 +08:00
Sunny e308df2e65 New translations en_us.yaml (Hindi) 2024-06-18 11:51:23 +08:00
Sunny 452c91807d New translations en_us.yaml (Persian) 2024-06-18 11:51:22 +08:00
Sunny c3fb62f22c New translations en_us.yaml (Indonesian) 2024-06-18 11:51:21 +08:00
Sunny e1f99cce63 New translations en_us.yaml (Vietnamese) 2024-06-18 11:51:20 +08:00
Sunny ac2c1131ac New translations en_us.yaml (Chinese Traditional) 2024-06-18 11:51:20 +08:00
Sunny f86259b50c New translations en_us.yaml (Chinese Simplified) 2024-06-18 11:51:19 +08:00
Sunny 6a44fc3397 New translations en_us.yaml (Ukrainian) 2024-06-18 11:51:18 +08:00
Sunny e0be77602a New translations en_us.yaml (Turkish) 2024-06-18 11:51:16 +08:00
Sunny f82f582183 New translations en_us.yaml (Swedish) 2024-06-18 11:51:15 +08:00
Sunny 9904fc0912 New translations en_us.yaml (Slovak) 2024-06-18 11:51:14 +08:00
Sunny 95bdcc6418 New translations en_us.yaml (Russian) 2024-06-18 11:51:13 +08:00
Sunny 1ef5d0cca9 New translations en_us.yaml (Portuguese) 2024-06-18 11:51:11 +08:00
Sunny 1494c8e085 New translations en_us.yaml (Polish) 2024-06-18 11:51:10 +08:00
Sunny 5655216792 New translations en_us.yaml (Korean) 2024-06-18 11:51:09 +08:00
Sunny 0232a4f2fd New translations en_us.yaml (Japanese) 2024-06-18 11:51:08 +08:00
Sunny f2415eb08a New translations en_us.yaml (Italian) 2024-06-18 11:51:07 +08:00
Sunny 56e9438f8e New translations en_us.yaml (German) 2024-06-18 11:51:05 +08:00
Sunny d63b948d58 New translations en_us.yaml (Danish) 2024-06-18 11:51:04 +08:00
Sunny 60f552b953 New translations en_us.yaml (Czech) 2024-06-18 11:51:03 +08:00
Sunny 36b612ff1b New translations en_us.yaml (Spanish) 2024-06-18 11:51:02 +08:00
Sunny d608c9cc8e New translations en_us.yaml (French) 2024-06-18 11:51:01 +08:00
Sunny 40a1bec7d3 New translations en_us.yaml (Romanian) 2024-06-18 11:51:00 +08:00
LinkinStars 9804362b6c Merge remote-tracking branch 'origin/i18n'
# Conflicts:
#	i18n/cs_CZ.yaml
#	i18n/cy_GB.yaml
#	i18n/da_DK.yaml
#	i18n/de_DE.yaml
#	i18n/es_ES.yaml
#	i18n/fa_IR.yaml
#	i18n/fr_FR.yaml
#	i18n/hi_IN.yaml
#	i18n/id_ID.yaml
#	i18n/it_IT.yaml
#	i18n/ja_JP.yaml
#	i18n/ko_KR.yaml
#	i18n/pl_PL.yaml
#	i18n/pt_PT.yaml
#	i18n/ro_RO.yaml
#	i18n/ru_RU.yaml
#	i18n/sk_SK.yaml
#	i18n/sv_SE.yaml
#	i18n/te_IN.yaml
#	i18n/tr_TR.yaml
#	i18n/uk_UA.yaml
#	i18n/vi_VN.yaml
#	i18n/zh_CN.yaml
#	i18n/zh_TW.yaml
2024-06-18 11:49:41 +08:00
Sunny 8a5956fbb3 New translations en_us.yaml (Vietnamese) 2024-06-18 11:23:44 +08:00
Sunny 0eb2f908f1 New translations en_us.yaml (Chinese Simplified) 2024-06-18 11:23:42 +08:00
Sunny 00608cacd4 New translations en_us.yaml (Korean) 2024-06-18 11:23:36 +08:00
LinkinStars 245b532954 fix(template): fix wrong user link in template #969 2024-06-18 11:16:34 +08:00
Sunny 6530408307 New translations en_us.yaml (Welsh) 2024-06-18 10:47:11 +08:00
Sunny 08e7c8e5bc New translations en_us.yaml (Telugu) 2024-06-18 10:47:10 +08:00
Sunny 5162d422f5 New translations en_us.yaml (Hindi) 2024-06-18 10:47:09 +08:00
Sunny 594f69e825 New translations en_us.yaml (Persian) 2024-06-18 10:47:07 +08:00
Sunny 868579f978 New translations en_us.yaml (Indonesian) 2024-06-18 10:47:06 +08:00
Sunny cd573f5bd7 New translations en_us.yaml (Vietnamese) 2024-06-18 10:47:05 +08:00
Sunny 16615eb407 New translations en_us.yaml (Chinese Traditional) 2024-06-18 10:47:03 +08:00
Sunny 51158630b1 New translations en_us.yaml (Chinese Simplified) 2024-06-18 10:47:02 +08:00
Sunny 7cbbad2473 New translations en_us.yaml (Ukrainian) 2024-06-18 10:47:00 +08:00
Sunny 64a012ff95 New translations en_us.yaml (Turkish) 2024-06-18 10:46:58 +08:00
Sunny c1f391823b New translations en_us.yaml (Swedish) 2024-06-18 10:46:56 +08:00
Sunny 55400bd45e New translations en_us.yaml (Slovak) 2024-06-18 10:46:54 +08:00
Sunny 5f7007451f New translations en_us.yaml (Russian) 2024-06-18 10:46:53 +08:00
Sunny cf12d1f2b9 New translations en_us.yaml (Portuguese) 2024-06-18 10:46:51 +08:00
Sunny 53d8879aaf New translations en_us.yaml (Polish) 2024-06-18 10:46:50 +08:00
Sunny 83b6108074 New translations en_us.yaml (Korean) 2024-06-18 10:46:48 +08:00
Sunny 38f0ea0e45 New translations en_us.yaml (Japanese) 2024-06-18 10:46:47 +08:00
Sunny 06b6125862 New translations en_us.yaml (Italian) 2024-06-18 10:46:45 +08:00
Sunny 9fe48cd2f8 New translations en_us.yaml (German) 2024-06-18 10:46:44 +08:00
Sunny 2b3c5d6836 New translations en_us.yaml (Danish) 2024-06-18 10:46:42 +08:00
Sunny 660bc0b989 New translations en_us.yaml (Czech) 2024-06-18 10:46:41 +08:00
Sunny f33c1a69f4 New translations en_us.yaml (Spanish) 2024-06-18 10:46:39 +08:00
Sunny b348a2bae2 New translations en_us.yaml (French) 2024-06-18 10:46:37 +08:00
Sunny bc58b6ec82 New translations en_us.yaml (Romanian) 2024-06-18 10:46:36 +08:00
LinkinStars 5dc79e665c chore(asf): add asf header 2024-06-17 18:57:26 +08:00
LinkinStars 9acbeb4d46 Merge remote-tracking branch 'origin/release/1.3.5' 2024-06-17 18:52:25 +08:00
LinkinStars 8174aeb846 docs(upgrade): upgrade 1.3.5 2024-06-17 18:50:42 +08:00
LinkinStars 9fa637768c Merge remote-tracking branch 'origin/feat/1.3.5/i18n' into test 2024-06-17 18:48:12 +08:00
LinkinStars 0974c6063a feat(install): if SKIP_REPLACE_I18N is set, skip replace i18n bundles 2024-06-17 18:47:49 +08:00
LinkinStars 47b3ce7f7e Merge remote-tracking branch 'origin/dev' into test 2024-06-17 18:30:05 +08:00
robin 84aee63b09 fix(editor): Fix codemirror readOnly configuration 2024-06-17 17:40:57 +08:00
Sunny ec1278bc90 New translations en_us.yaml (Italian) 2024-06-16 02:48:02 +08:00
Sunny 4cddf24d50 New translations en_us.yaml (Italian) 2024-06-16 01:10:25 +08:00
LinkinStars 1cdf658bee Merge branch 'dev' into test 2024-06-15 16:40:54 +08:00
sy-records 94b19bffb4 fix: review count in the Admin is not correct 2024-06-15 16:39:34 +08:00
LinkinStars ee34e9b598 Merge branch 'fix/1.3.5/init' into test 2024-06-14 16:51:06 +08:00
LinkinStars ac25160791 feat(init): set permalink init config is only question id 2024-06-14 16:50:46 +08:00
LinkinStars 1940e04f4f Merge branch 'fix/1.3.5/init' into test 2024-06-14 16:01:10 +08:00
LinkinStars d45676f682 fix(init): fix init question data last answer id 2024-06-14 16:00:34 +08:00
shuai 82a267cfff Merge branch 'dev' into test 2024-06-14 14:59:29 +08:00
LinkinStars c71c1ae9f7 Merge branch 'fix/1.3.5/init' into test 2024-06-14 14:35:36 +08:00
LinkinStars 6d1b02768d fix(init): fix init question and answer data, set pin default status 2024-06-14 14:34:42 +08:00
shuai 8b598b8817 fix: register form invalid value 2024-06-14 14:11:35 +08:00
hgaol 323c926a92 update translations 2024-06-13 15:53:25 +08:00
hgaol 156ef00f8d fix: incomplete display of error message alerts on registration page 2024-06-13 15:53:25 +08:00
hgaol c0f6f8c75d update translations 2024-06-13 15:52:26 +08:00
hgaol d886b1b7ca fix: incomplete display of error message alerts on registration page 2024-06-13 15:52:26 +08:00
shuai f87844850f fix: add basepath logic to route jump 2024-06-13 15:46:12 +08:00
shuai f7bf234da9 fix: whene clise edit users profile modal sholud clear form state 2024-06-12 18:06:37 +08:00
LinkinStars ebed5a5619 Merge remote-tracking branch 'origin/dev' into test 2024-06-12 11:54:47 +08:00
sy-records 9a885d0bf6 fix: Apply fixes from code review 2024-06-12 11:44:34 +08:00
sy-records 2133e0fb4f feat: Support admin edit profie 2024-06-12 11:44:34 +08:00
shuai c3cd5e7cfb fix: form invalid styles for tagSelector 2024-06-11 12:21:34 +08:00
sy-records 1e80addaec fix: Old questions may continue to be showed in the front 2024-06-07 19:09:45 +08:00
LinkinStars a56c5e3ffc Merge branch 'fix/1.3.5/question' into test 2024-06-07 17:31:39 +08:00
robin 5ab7d9b3a0 chore: When there is no plugin, there is no need to reset the index.ts file 2024-06-07 17:21:31 +08:00
Sunny 4452bd0234 New translations en_us.yaml (Italian) 2024-06-07 17:10:43 +08:00
LinkinStars e3b483519e fix(question): update latest reactions when removing 2024-06-07 16:49:51 +08:00
LinkinStars ac31c663ee Merge branch 'fix/1.3.5/template' into test 2024-06-07 16:39:36 +08:00
LinkinStars c1cbe20c3a fix(template): add og meta tag in template 2024-06-07 16:39:07 +08:00
LinkinStars 24e004a69b Merge branch 'fix/1.3.5/question' into test 2024-06-07 15:54:27 +08:00
shuai ec49d1f097 Merge branch 'fix/1.3.5/bug' into test 2024-06-07 15:53:23 +08:00
shuai e6e5748195 fix: form invalid styles 2024-06-07 15:50:46 +08:00
shuai 32714e76da Merge branch 'fix/1.3.5/bug' into test 2024-06-07 15:37:23 +08:00
shuai 91a3c0c3f2 fix: reactions sort by create-time 2024-06-07 15:36:53 +08:00
LinkinStars a7b23982c9 refactor(meta): Adjust the meta structure of the operation from map to array to ensure correct sorting. 2024-06-07 14:39:36 +08:00
shuai 542a06865a fix: resolve conflict 2024-06-07 11:18:16 +08:00
shuai fc5e2ac70b fix: reactions add aria-label attribute 2024-06-07 11:05:22 +08:00
robin 54ca1a2cf2 Merge branch 'feat/1.3.5/embed' of https://github.com/answerdev/answer into feat/1.3.5/embed 2024-06-06 15:37:39 +08:00
robin ee71023223 chore: update plugin.js 2024-06-06 15:36:29 +08:00
robin 5459507b09 chore: update plugin.js 2024-06-06 15:22:36 +08:00
LinkinStars 32ad6bdf2d Merge branch 'feat/1.3.5/embed' into test 2024-06-06 11:29:05 +08:00
LinkinStars 0ae74e4d6b fix(build): remove over index.ts 2024-06-06 11:28:45 +08:00
robin 938598aa72 Merge branch 'feat/1.3.5/embed' into test 2024-06-06 09:42:07 +08:00
kumfo 15dc4371f8 fix(import): fixed 2024-06-05 18:40:55 +08:00
robin d14608e81f refactor: Remove console.log statements 2024-06-05 17:41:43 +08:00
shuai 1c8ceea40a fix: fix issues on reactions ui 2024-06-05 17:14:04 +08:00
robin 7243145d4f refactor(plugins): Remove mergeFormData method 2024-06-05 17:12:52 +08:00
shuai c83fc35f96 fix: fix issues on reactions ui 2024-06-05 16:28:44 +08:00
robin bdbff79b61 fix(plugins): Fix the problem that the dom obtained by hooks in the plugin is null
Related issue: https://github.com/apache/incubator-answer-plugins/issues/121
2024-06-05 16:19:10 +08:00
sy-records ece404ef2e fix: loginToContinueModal z-index error
fix: loginToContinueModal z-index error
2024-06-04 11:37:00 +08:00
Navid Lee 3ba2782667 fix: Chinese character tag bug 2024-06-04 11:37:00 +08:00
robin d9d5a787fd refactor: According to the status of the plug-in, determine whether the routing plug-in is enabled 2024-06-04 11:34:18 +08:00
robin 7d3df970e5 refactor: Remove 'name' property from ActivatedPlugin interface and add 'enabled' property 2024-06-04 11:34:18 +08:00
Abhijeet Singh d1080fe738 Update es_ES.yaml 2024-06-04 10:59:29 +08:00
robin cde7a0fc4c fix(plugins): Fixed the issue that the form data was not updated when switching routes. #968 2024-06-03 17:42:08 +08:00
robin 69b7e4b46d refactor(SchemaForm): update key in Form.Group to include title and key 2024-06-03 15:16:27 +08:00
robin fc0c2804a4 refactor(schemaForm): remove title 2024-05-31 16:07:03 +08:00
robin 6f71805c3d chore(plugins): Add plugin to index.ts 2024-05-30 18:03:45 +08:00
shuai 931da8e54d fix: update install page title 2024-05-30 17:04:09 +08:00
shuai e66914ee9d fix: update translations 2024-05-30 11:38:51 +08:00
Alex 9c3218a808 24-05-29 ko_KR quoted update 2024-05-30 11:36:16 +08:00
Alex 13f5cea370 24-05-28 ko_KR update 2024-05-30 11:36:16 +08:00
Alex 6c65274fda 24-05-27 ko_KR update
resolve conflict
2024-05-30 11:34:14 +08:00
shuai ed9c9be336 fix: fix translation for plugin_link 2024-05-30 11:32:40 +08:00
shuai 9b2277d9ad fix: fix translation error 2024-05-30 11:32:40 +08:00
shuai 3aa1de3b98 fix: dashsboard delet sitename value 2024-05-30 11:32:40 +08:00
shuai 50ca94ca7b fix: update i18n files 2024-05-30 11:32:40 +08:00
shuai bcff195be2 fix: taSelector component placeholder style optimization 2024-05-30 11:32:40 +08:00
Nayan Thulkar 8d2954035b Added isInvalid styles for forms (#935)
## This PR includes, fixing css style for some of the forms when clicked
is invalid.
Issue:- #927 

### Question/ask page
![Screenshot 2024-05-01
163450](https://github.com/apache/incubator-answer/assets/43349097/90b5337b-85ea-459d-9d59-967968217ada)


### Question/details page
![Screenshot 2024-05-01
163532](https://github.com/apache/incubator-answer/assets/43349097/8012a67e-9508-4cb9-ab48-e4eb639dacd1)

---------

Co-authored-by: Nayan <nayanthulkar15@gmail.com>
2024-05-30 11:32:40 +08:00
shuai eb50384db6 fix: resolve conflict 2024-05-29 16:53:00 +08:00
shuai 981df89f30 fix: fix translation for plugin_link 2024-05-29 15:52:46 +08:00
robin f94ee616f7 chore: update pnpm-lock.yaml 2024-05-29 15:41:52 +08:00
robin 4108d2fa98 refactor(editor): update toolbar icons for consistency 2024-05-29 15:35:18 +08:00
shuai 7773a5bc46 fix: fix translation error 2024-05-29 15:24:05 +08:00
shuai 8477b42a10 fix: dashsboard delet sitename value 2024-05-29 14:59:17 +08:00
shuai 36027bc31d fix: update i18n files 2024-05-29 14:37:53 +08:00
Alex 4731049693 24-05-29 ko_KR quoted update 2024-05-29 10:46:03 +08:00
Alex 3f4fcaa2d9 24-05-28 ko_KR update 2024-05-29 10:46:03 +08:00
Alex 4cc20ee1e6 24-05-27 ko_KR update 2024-05-29 10:46:03 +08:00
shuai 7442d0f7b1 fix: taSelector component placeholder style optimization 2024-05-29 10:36:52 +08:00
Nayan Thulkar 9249dd0679 Added isInvalid styles for forms (#935)
## This PR includes, fixing css style for some of the forms when clicked
is invalid.
Issue:- #927 

### Question/ask page
![Screenshot 2024-05-01
163450](https://github.com/apache/incubator-answer/assets/43349097/90b5337b-85ea-459d-9d59-967968217ada)


### Question/details page
![Screenshot 2024-05-01
163532](https://github.com/apache/incubator-answer/assets/43349097/8012a67e-9508-4cb9-ab48-e4eb639dacd1)

---------

Co-authored-by: Nayan <nayanthulkar15@gmail.com>
2024-05-28 11:29:08 +08:00
LinkinStars b9c1f6e3fd Merge remote-tracking branch 'origin/dev' into test 2024-05-27 18:44:04 +08:00
LinkinStars d7a26952ac fix(conf): set default config in ui 2024-05-27 18:43:42 +08:00
LinkinStars b53df317eb fix(meta): decode object id 2024-05-27 18:43:11 +08:00
robin ba00431e94 chore: add src/plugins/builtin to eslintignore 2024-05-27 18:28:14 +08:00
shuai ef61261b46 fix: path exception when adding basepath 2024-05-27 17:39:58 +08:00
shuai 8604c4281c fix: update translations 2024-05-27 17:39:58 +08:00
robin ddb66db055 fix(plugins): fix typo in SearchInfo import 2024-05-27 16:48:07 +08:00
shuai 55beed4676 Merge branch 'dev' of github.com:answerdev/answer into dev 2024-05-27 16:42:03 +08:00
LinkinStars 389d8551f2 fix(user): remove user center log 2024-05-27 16:35:02 +08:00
LinkinStars b0882f66dd Merge branch 'feat/basepath' into dev
# Conflicts:
#	cmd/wire_gen.go
#	ui/pnpm-lock.yaml
#	ui/src/pages/Admin/General/index.tsx
2024-05-27 16:29:28 +08:00
LinkinStars 727a3f00a4 Merge remote-tracking branch 'origin/fix/1.3.5/comment' into dev
# Conflicts:
#	i18n/en_US.yaml
2024-05-27 16:27:06 +08:00
shuai 5f53985e68 Merge branch 'dev' of github.com:answerdev/answer into dev 2024-05-27 16:06:48 +08:00
a.i.kuleshov aa70f41f4d feat: add basepath 2024-05-27 16:05:52 +08:00
a.i.kuleshov 3a6ac93f0e feat: add build path 2024-05-27 16:05:52 +08:00
sy-records 2913640a86 setting ssl to false 2024-05-27 16:03:40 +08:00
sy-records c1eb74bfb0 feat: Support SMTP Encryption using TLS 2024-05-27 16:03:40 +08:00
LinkinStars 642da9cfad Merge remote-tracking branch 'origin/main' into dev 2024-05-27 16:01:42 +08:00
hgaol a7c44de05b update header for wire_gen.go 2024-05-27 16:01:12 +08:00
hgaol d5092998f5 update 2024-05-27 16:01:12 +08:00
hgaol ae2d4a33ae count real users and bug fix 2024-05-27 16:01:12 +08:00
hgaol 8950df859b update styles based on comments 2024-05-27 16:01:12 +08:00
hgaol caadd99b68 update 2024-05-27 16:01:12 +08:00
hgaol 31a6fc9c36 convert tooltip in backend and refactored the ReactionResp structure 2024-05-27 16:01:12 +08:00
hgaol d9cca1bad1 refactor meta_service and meta_common_service and fix other issues 2024-05-27 16:01:12 +08:00
hgaol 9e76872d05 add Apache header for wire_gen.go 2024-05-27 16:01:12 +08:00
hgaol a6838eb4dc update frontend to support only activate and deactivate 2024-05-27 16:01:12 +08:00
hgaol 7d2fd40097 add transaction when add or update reactions and fix other issues 2024-05-27 16:01:12 +08:00
hgaol 255f985cd4 add i18n 2024-05-27 16:01:12 +08:00
hgaol 80bd8cd001 finish backend api and frontend 2024-05-27 16:01:12 +08:00
hgaol 283aa092fe update 2024-05-27 16:01:12 +08:00
shuai 6fb86871bc fix: update translations 2024-05-27 11:45:13 +08:00
shuai ad951c8c49 fix: table responsive 2024-05-24 14:36:10 +08:00
kumfo 0abfb29ff8 merge(dev): merge from dev 2024-05-23 16:09:10 +08:00
kumfo ac653a331f fix(doc): fixed 2024-05-23 16:01:13 +08:00
kumfo f972a23dd8 feat(plugin/embed): merge from dev and add embed plugin 2024-05-23 15:57:10 +08:00
kumfo e8cca96e1f Merge remote-tracking branch 'origin/dev' into dev 2024-05-21 10:55:39 +08:00
kumfo 61f2e672bc feat(embed): init embed 2024-05-21 10:55:16 +08:00
shuai 3a375881b8 fix: add apache license header
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2024-05-09 11:14:02 +08:00
LinkinStars fc7482dc69 fix(i18n): remove duplicate key in i18n 2024-05-09 11:14:02 +08:00
Fen 1d8035861f New Crowdin updates (#31)
* New translations en_us.yaml (German)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Swedish)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Hindi)

* New translations en_us.yaml (Telugu)

* New translations en_us.yaml (Welsh)
2024-05-09 11:14:02 +08:00
LinkinStars 91661be354 fix(i18n): remove duplicate key in i18n 2024-05-09 11:14:02 +08:00
Fen 205a98723d New Crowdin updates (#31)
* New translations en_us.yaml (German)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Swedish)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Hindi)

* New translations en_us.yaml (Telugu)

* New translations en_us.yaml (Welsh)
2024-05-09 11:14:02 +08:00
shuai 58970d0abb fix: when using the basic_captacha plug-in, usePromptWithUnload hook causes logic exceptions when asking or editing questions 2024-05-09 10:57:09 +08:00
LinkinStars 219dc7ff36 fix(i18n): remove duplicate key in i18n 2024-05-09 10:57:09 +08:00
Fen 8794fe8646 New Crowdin updates (#31)
* New translations en_us.yaml (German)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Swedish)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Hindi)

* New translations en_us.yaml (Telugu)

* New translations en_us.yaml (Welsh)
2024-05-09 10:57:09 +08:00
LinkinStars d76fb5ee3a fix(i18n): remove duplicate key in i18n 2024-05-09 10:57:09 +08:00
Fen e22301c565 New Crowdin updates (#31)
* New translations en_us.yaml (German)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Swedish)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Hindi)

* New translations en_us.yaml (Telugu)

* New translations en_us.yaml (Welsh)
2024-05-09 10:57:09 +08:00
shuai 046015f182 fix: optimize split-chunks
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2024-05-07 12:17:58 +08:00
LinkinStars 4a762f93a6 fix(i18n): remove duplicate key in i18n 2024-05-06 18:57:09 +08:00
Fen cb9c2f0ec6 New Crowdin updates (#31)
* New translations en_us.yaml (German)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Swedish)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Hindi)

* New translations en_us.yaml (Telugu)

* New translations en_us.yaml (Welsh)
2024-05-06 17:50:59 +08:00
LinkinStars 1a9c3126b8 ci(plugin): add captcha-basic plugin default 2024-05-06 17:44:12 +08:00
shuai 9681c026ad fix: check files license headers 2024-05-06 16:49:33 +08:00
LinkinStars 6f98b17405 docs(upgrade): update version 1.3.1 2024-05-06 16:34:03 +08:00
LinkinStars 404027389a Merge remote-tracking branch 'origin/dev' into test 2024-05-06 16:28:00 +08:00
prithvidasgupta cd9ca3da7a feat: adding social media meta tags 2024-05-06 15:31:03 +08:00
shuai 889411db18 feat: tables add responsive attributes #917 2024-05-06 15:31:03 +08:00
hgaol ae3b43cdac update: add style for admin/Answers and Timeline pages 2024-05-06 15:31:03 +08:00
hgaol 237315532c feat: allow tables to be scrolled horizontally with ease in Admin 2024-05-06 15:31:03 +08:00
shuai 0245c4cbb9 fix: resolve conflict 2024-05-06 15:26:47 +08:00
shuai 7e81bf9ad6 fix: mentions style add apacje license 2024-05-06 15:23:36 +08:00
shuai 40a6cbdab7 fix: mentions style format 2024-05-06 15:22:58 +08:00
prithvidasgupta e9f07baff1 feat: adding social media meta tags 2024-04-30 10:15:19 +08:00
shuai d26e373e2e feat: tables add responsive attributes #917 2024-04-28 17:45:15 +08:00
hgaol 9792e1f601 update: add style for admin/Answers and Timeline pages 2024-04-28 14:25:18 +08:00
hgaol d1022d5986 feat: allow tables to be scrolled horizontally with ease in Admin 2024-04-28 14:25:18 +08:00
LinkinStars f31bb837a8 Merge remote-tracking branch 'origin/dev' into test 2024-04-26 10:27:57 +08:00
LinkinStars 7d75f2fa97 feat(user): add the API for get staff 2024-04-26 10:26:40 +08:00
zahash d6b53cdac3 enhancement: 909; use camelCase, modify init data 2024-04-26 10:26:40 +08:00
zahash 6ff4a8b1b0 enhancement: 909; fix broken tests 2024-04-26 10:26:40 +08:00
zahash 5a99943367 enhancement: 909; update initial data 2024-04-26 10:26:40 +08:00
zahash ecf75669c1 [wip] start issue 909 2024-04-26 10:26:40 +08:00
prithvidasgupta 056c5ce1cd fix: move slugcheck to correct line 2024-04-26 10:26:40 +08:00
prithvidasgupta 359131ab93 fix: align tag update slug 2024-04-26 10:26:40 +08:00
sy-records fe44c8f3e0 fix: missing btns.more in i18n 2024-04-26 10:26:40 +08:00
findmyhappy cdfe6fead4 chore: fix some typos
Signed-off-by: findmyhappy <findhappy@sohu.com>
2024-04-26 10:26:40 +08:00
sy-records 0dce384839 fix: Unescape when displaying site name 2024-04-26 10:26:40 +08:00
Prithvijit Dasgupta 1819bc42e5 fix: align self answer update notification 2024-04-26 10:21:56 +08:00
shuai 4fdc3c92fb chore: ui add split codemirrow bundle 2024-04-26 10:08:45 +08:00
shuai 7bc726c425 fix: delete console.log 2024-04-26 10:08:45 +08:00
shuai 988662c7a0 fix: support search admin uses #795 2024-04-26 10:08:45 +08:00
shuai 4285968397 fix: privilege translate 2024-04-26 10:08:45 +08:00
shuai 200815d143 fix: auto-scroll to the first invalid form field #873 2024-04-26 10:08:45 +08:00
shuai 4c2083d32d fix: ui config-overrides update 2024-04-26 10:08:45 +08:00
shuai b9f9bbcbc4 fix: ui bundle size resplit 2024-04-26 10:08:45 +08:00
shuai 6ffa5470cb fix: disable react-devtools 2024-04-26 10:08:45 +08:00
shuai d4cf2e0a46 fix: sidenav nav-link remove box-shadow 2024-04-26 10:08:45 +08:00
shuai a1bd2b40d8 chore: ui add split codemirrow bundle 2024-04-26 10:07:28 +08:00
shuai e49deb1aab fix: delete console.log 2024-04-25 18:14:45 +08:00
shuai dfeca6e549 fix: support search admin uses #795 2024-04-25 18:12:58 +08:00
shuai ea62075622 fix: privilege translate 2024-04-25 17:06:44 +08:00
shuai 76c55fcd8e fix: auto-scroll to the first invalid form field #873 2024-04-25 17:05:57 +08:00
zahash ba90433012 enhancement: 909; use camelCase, modify init data 2024-04-25 12:19:14 +08:00
zahash 4bed411dba enhancement: 909; fix broken tests 2024-04-25 12:19:14 +08:00
zahash 2b053f1a95 enhancement: 909; update initial data 2024-04-25 12:19:14 +08:00
zahash b2cc3cc26e [wip] start issue 909 2024-04-25 12:19:14 +08:00
shuai e0ae318152 fix: pnpm-lock file error 2024-04-25 11:58:16 +08:00
prithvidasgupta 4269a11c73 fix: move slugcheck to correct line 2024-04-25 11:49:57 +08:00
prithvidasgupta 95f03bc151 fix: align tag update slug 2024-04-25 11:49:57 +08:00
sy-records 167b77a674 fix: missing btns.more in i18n 2024-04-25 11:32:31 +08:00
findmyhappy 8670e33234 chore: fix some typos
Signed-off-by: findmyhappy <findhappy@sohu.com>
2024-04-24 16:13:55 +08:00
LinkinStars c6d43e92c1 feat(base): add base path for ui page 2024-04-24 15:31:03 +08:00
shuai 84c8b3f416 feat: site_url valiadtor add base_path 2024-04-23 15:05:19 +08:00
shuai 2862d096a9 feat: ui env variables remove react_app prefix 2024-04-23 10:40:25 +08:00
shuai 5a1a9f0b4b feat: ui env variables remove react_app prefix 2024-04-23 10:40:02 +08:00
shuai 90a8f9a7aa feat: config.yaml add ui env variables 2024-04-23 10:23:24 +08:00
shuai 53ba7fb035 feat: support for parametrizing the base path #335 #836 #800 2024-04-23 10:22:23 +08:00
sy-records 8e6e929063 fix: Unescape when displaying site name 2024-04-23 09:55:36 +08:00
shuai eeb668e48a fix: ui config-overrides update 2024-04-19 17:41:27 +08:00
shuai 588b27190e fix: ui bundle size resplit 2024-04-19 17:29:28 +08:00
shuai 8f2587118b fix: disable react-devtools 2024-04-19 11:15:22 +08:00
shuai 39ba30f636 fix: sidenav nav-link remove box-shadow 2024-04-18 17:13:11 +08:00
LinkinStars 65ca05adaf Merge remote-tracking branch 'origin/dev' into test 2024-04-18 11:20:33 +08:00
LinkinStars 530065d2db Merge remote-tracking branch 'origin/main' into dev 2024-04-18 11:19:52 +08:00
shuai 8667b2c6e8 fix: pnpm version use 8.9.2 2024-04-18 10:49:59 +08:00
shuai e75b1eddf5 fix: report duplicate links in review a new window opens 2024-04-18 10:49:59 +08:00
shuai b04fcb6538 fix: pnpm version use 8.9.2 2024-04-18 10:49:10 +08:00
shuai d1a98b942d fix: report duplicate links in review a new window opens 2024-04-18 10:25:54 +08:00
shuai 42615fa199 fix: resolve conflict 2024-04-18 10:19:01 +08:00
shuai 3e5622f04f fix: usePrompt page jumps abnormally when filling in questions 2024-04-18 10:04:36 +08:00
LinkinStars 7a6e5061e5 ci(dockerfile): set fix pnpm version 2024-04-17 19:10:21 +08:00
LinkinStars 410263e676 fix(comment): prohibit comment on the delete content 2024-04-17 18:31:57 +08:00
robin f104bab671 Merge branch 'refactor/editor' into test 2024-04-16 15:48:52 +08:00
robin 8497f6b65e refactor(ui): Refactor editor theme and add line wrapping functionality 2024-04-16 15:48:30 +08:00
robin dc717170f6 Merge branch 'refactor/editor' into test 2024-04-16 12:05:39 +08:00
robin 38f05ce2d7 refactor(ui): Remove redundant comments 2024-04-16 11:57:48 +08:00
robin e28a54a428 refactor(ui):Refactor wrapText method 2024-04-16 11:57:13 +08:00
robin f60d25618b refactor(ui): Migrate extension methods to extension.ts 2024-04-15 17:54:01 +08:00
robin 6cf118ba84 Refactor/editor (#908) 2024-04-15 16:40:22 +08:00
robin 122a5827b9 refactor(ui): Refactor CodeMirror toolbar components and update dependencies 2024-04-15 16:39:00 +08:00
robin a5364d9f4b chore(ui): Update CodeMirror dependency to version 6 2024-04-15 16:37:52 +08:00
shuai c6c384f834 fix: bumps follow-redirects from 1.15.2 to 1.15.6 2024-04-15 15:40:43 +08:00
LinkinStars d90269c4f4 Merge branch 'fix/1.3.1/template' into test 2024-04-12 17:38:17 +08:00
LinkinStars b43cc3bfa5 Merge branch 'feat/1.3.1/review' into test 2024-04-12 17:37:46 +08:00
LinkinStars 4c64890971 Merge branch 'feat/1.3.1/code' into test 2024-04-10 15:36:29 +08:00
LinkinStars a111a0c391 feat(plugin): add captcha plugin status coordinate 2024-04-10 15:35:37 +08:00
LinkinStars 552af5fa50 feat(code): update captcha code plugin 2024-04-10 12:10:07 +08:00
hgaol d476f1ce9f fix: sometimes the comment link in the notification cannot be highlighted after clicking 2024-04-10 10:49:36 +08:00
verytrap 299734c908 chore: fix function names in comment
Signed-off-by: verytrap <wangqiuyue@outlook.com>
2024-04-09 19:07:55 +08:00
dashuai 7a5fabaeae fix: captcha plugin params changed (#904) 2024-04-09 18:37:02 +08:00
shuai 650262bd17 fix: captcha plugin params changed 2024-04-09 18:35:55 +08:00
shuai 38edc4eb54 fix: resolve conflict 2024-04-09 16:57:38 +08:00
shuai a7bd5e3485 fix: captcha plugin should be enabled 2024-04-09 16:56:23 +08:00
dashuai 4261c461c7 Feat/1.3.1/UI (#901)
Co-authored-by: sy-records <52o@qq52o.cn>
Co-authored-by: zahash <zahash.z@gmail.com>
Co-authored-by: robin <robin@rnode.me>
2024-04-09 12:31:03 +08:00
LinkinStars bbb516c213 chore(gomod): remove go mod 2024-04-09 12:22:08 +08:00
LinkinStars 0894cd94a9 feat(captcha): add captcha config API 2024-04-09 12:19:44 +08:00
robin 04b0313f94 Add placeholder functionality to the editor 2024-04-09 11:29:29 +08:00
shuai cc8dbb9b1c feat: resolve confict 2024-04-09 11:02:09 +08:00
shuai aade1d9baf feat: use captcha plugin replace captcha modal component 2024-04-09 10:55:18 +08:00
robin 1ce7863376 feat(ui): Support route types in plugin system 2024-04-09 10:33:03 +08:00
shuai 877cfe8127 feat: use captcha plugin replace captcha modal component 2024-04-09 10:15:22 +08:00
shuai d91cb2e60f fix:fix answer draft dispaly error 2024-04-08 11:33:48 +08:00
robin 9853a60c6a refactor(ui): Refactor flex layout 2024-04-07 18:38:52 +08:00
LinkinStars 58dd97ac2a fix(template): incorrectly parsing the question title to the answer id, resulting in the infinite redirect #885 2024-04-07 12:05:37 +08:00
LinkinStars c55d318e64 feat(captcha): add captcha plugin 2024-04-07 11:47:39 +08:00
zahash 3bec091d7c fix bug where no error message is showing when comment length exceeds max length when updating comment 2024-04-07 11:22:38 +08:00
sy-records dc757d561a fix: Account setting label issue 2024-04-07 11:22:13 +08:00
robin d421681ddb refactor(ui): Migrate CodeMirror 5 to 6 2024-04-03 18:02:58 +08:00
robin fc93dad347 refactor(ui): Refactor image toolbar component 2024-04-03 18:01:21 +08:00
robin d62e11e7f9 reface(ui): Update keyMap for toolbar items 2024-04-03 18:00:27 +08:00
robin 2545d1df6e chore: Add dependencies for CodeMirror library 2024-04-03 17:56:19 +08:00
LinkinStars 84ec57d2d6 feat(review): set default review status 2024-03-28 17:00:40 +08:00
kumfo 248327047a feat(review): add ip and user-agent check 2024-03-27 17:57:08 +08:00
kumfo 7ed395badd feat(review): base review 2024-03-27 17:46:26 +08:00
LinkinStars c7f9d08ec7 feat(plugin): add review status 2024-03-27 17:12:46 +08:00
kumfo 04541ccb8c Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
#	cmd/wire_gen.go
#	internal/controller/collection_controller.go
#	internal/service/collection_service.go
2024-03-26 17:24:15 +08:00
shuai 92eec140d7 fix: navigate function add path conditions 2024-03-26 11:28:56 +08:00
shuai 571c2b1a19 fix: naviage add base path 2024-03-26 10:47:46 +08:00
shuai 7946cea31d fix: base url 2024-03-25 15:40:43 +08:00
LinkinStars 9ebf95cace New translations (#880)
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
Co-authored-by: Fen <f3nb0x@gmail.com>
2024-03-25 10:03:05 +08:00
shuai 299c571904 fix: a tag check basename 2024-03-22 18:34:46 +08:00
LinkinStars e53c7b3c8a docs(asf): add ASF header 2024-03-22 17:30:48 +08:00
LinkinStars abe0680641 Release/1.3.0 (#876)
Co-authored-by: shuai <lishuailing@sifou.com>
Co-authored-by: Han Gao <dhangao@hotmail.com>
Co-authored-by: wzy <770954908@qq.com>
Co-authored-by: zahash <zahash.z@gmail.com>
Co-authored-by: Hosein Beigi <hbsciw@gmail.com>
Co-authored-by: kumfo <kumfo@sifou.com>
Co-authored-by: sy-records <52o@qq52o.cn>
Co-authored-by: 而立 <cuihengqing@cai-inc.com>
Co-authored-by: foxzero-007 <chq2549603631@gmail.com>
Co-authored-by: easy <58644520+foxzero-007@users.noreply.github.com>
Co-authored-by: robin <robin@rnode.me>
Co-authored-by: Akhil <surapuramakhil@gmail.com>
Co-authored-by: Shaobiao Lin <whalevocal@gmail.com>
2024-03-22 17:25:46 +08:00
shuai 2c8bcbfd7b feat: test add basename 2024-03-22 15:31:25 +08:00
shuai eb6dc3e3dc fix: add REACT_APP_BASE_URL 2024-03-21 15:52:21 +08:00
shuai 2d32c9251e fix: conflcit 2024-03-21 11:33:34 +08:00
shuai d0fac4e7c1 fix: xss link 2024-03-21 11:31:34 +08:00
LinkinStars 78baf633c4 Merge branch 'feat/1.3.0/review' into test 2024-03-21 10:14:24 +08:00
LinkinStars 63a2334010 feat(review): add rank for reviewed user 2024-03-21 10:13:39 +08:00
shuai e7fb619291 fix: add verification for reporting operations 2024-03-20 14:57:21 +08:00
shuai 906cb7d1ff Merge branch 'test' of github.com:answerdev/answer into test 2024-03-20 14:56:05 +08:00
shuai 520f089f7d fix: add verification for reporting operations 2024-03-20 14:55:41 +08:00
LinkinStars 0b3a6deb69 Merge branch 'feat/1.3.0/review' into test 2024-03-20 11:53:54 +08:00
LinkinStars f89e946d1d feat(migration): update clarity description config 2024-03-20 11:53:22 +08:00
LinkinStars c440b1201b feat(review): add reason key and content for review page 2024-03-19 18:39:45 +08:00
shuai b2b3ec4747 Merge branch 'feat/1.3.0/ui' into test 2024-03-19 10:39:14 +08:00
shuai e274fd27d6 fix: search highlighting ignores case 2024-03-19 10:37:39 +08:00
shuai 834ca303b7 Merge branch 'dev' into feat/1.3.0/ui 2024-03-19 09:57:34 +08:00
dashuai a871fe1ea3 fix: review content url format (#859) 2024-03-18 16:26:08 +08:00
shuai 68c5173f1b fix: review content url format 2024-03-18 16:25:31 +08:00
LinkinStars 18885e425a Merge branch 'feat/1.3.0/review' into test 2024-03-18 15:50:00 +08:00
LinkinStars 3bce8e3418 feat(review): add url title for review page 2024-03-18 15:49:29 +08:00
LinkinStars e63a208aa3 Merge remote-tracking branch 'origin/dev' into test
# Conflicts:
#	pkg/htmltext/htmltext.go
2024-03-18 15:01:27 +08:00
Octobug d8ab71fd0f refactor(htmltext): FetchExcerpt delegates to FetchRangedExcerpt 2024-03-18 14:52:51 +08:00
Octobug 45b1c39780 refactor(head): use search regex in common pattern 2024-03-18 14:52:51 +08:00
Octobug 5e47748298 feat(search): highlight search results 2024-03-18 14:52:51 +08:00
shuai 626990efb4 fix: resolve conflict 2024-03-18 14:25:03 +08:00
shuai 3691e61d56 fix: review add skip btn 2024-03-18 14:22:14 +08:00
shuai a65417b0ba fix: add renderhtml format 2024-03-18 11:29:30 +08:00
dashuai 212a59a112 Feat/1.3.0/UI (#856) 2024-03-18 11:03:32 +08:00
shuai be1d5fb445 fix: editor fixes the issue where some line breaks are missing when the pasted content contains images 2024-03-18 11:02:51 +08:00
dashuai 5ff9a14d41 Feat/1.3.0/UI (#852) 2024-03-15 17:39:14 +08:00
shuai c15736d2d6 fix: article style format 2024-03-15 17:36:14 +08:00
LinkinStars ba71c22bc8 Merge branch 'feat/1.3.0/review' into test 2024-03-15 17:31:58 +08:00
LinkinStars c25dad69b0 feat(plugin): add language for review plugin 2024-03-15 17:23:13 +08:00
shuai bd053d9b27 fix: pending review and flag review show parsed_text 2024-03-15 17:23:13 +08:00
LinkinStars 273df16f4c Merge branch 'feat/1.3.0/review' into test 2024-03-15 16:50:33 +08:00
LinkinStars 3f2a617bbc feat(review): add parsed text for review page 2024-03-15 16:50:19 +08:00
LinkinStars f4a6b8f6f3 Merge branch 'feat/1.3.0/review' into test 2024-03-15 16:27:21 +08:00
LinkinStars 34660ee161 feat(review): add url title for review page 2024-03-15 16:26:51 +08:00
LinkinStars 758f79b7dd fix(review): change revision to short id if needed 2024-03-15 16:22:08 +08:00
dashuai 11006c684b Feat/1.3.0/UI (#851) 2024-03-15 15:49:42 +08:00
shuai 0030fda2cf fix: review ui update 2024-03-15 15:45:00 +08:00
dashuai 33ffb594e5 fix: change support link (#850) 2024-03-15 14:22:18 +08:00
shuai b8ea6f1f0b fix: change support link 2024-03-15 13:58:40 +08:00
LinkinStars 75c6146f40 Merge branch 'feat/1.3.0/review' into test 2024-03-15 12:02:37 +08:00
LinkinStars b74f7813ac feat(question): count question with show status 2024-03-15 12:02:13 +08:00
shuai 153f7a6d0c Merge branch 'feat/1.3.0/ui' into test 2024-03-15 10:59:24 +08:00
shuai 14b9cb70d3 fix: rename click file 2024-03-15 10:57:04 +08:00
shuai 38270329d1 Merge branch 'dev' into feat/1.3.0/ui 2024-03-15 10:53:01 +08:00
Shaobiao Lin 7e1d03e2cf fix(toast): align to the center with actual element width (#847)
close #843

---------

Co-authored-by: LinkinStars <linkinstar@foxmail.com>
2024-03-15 10:51:58 +08:00
LinkinStars 7d2deddc66 Merge branch 'feat/1.3.0/review' into test 2024-03-15 10:50:57 +08:00
LinkinStars 168a998ac4 fix(question): when recovering the question, retrieve the tag relationship 2024-03-15 10:50:27 +08:00
dashuai a309f9f897 Feat/1.3.0/UI (#848) 2024-03-15 10:40:19 +08:00
shuai 6df4d79260 fix: ui adjustment 2024-03-15 10:19:57 +08:00
Akhil 64381f1682 refactor Changes - moved legal clicks outside of signup (#835)
To enhance reusability - moved this behavior outside so that other
components can reuse this.

Testing Everything is running smooth after changes.

---------

Co-authored-by: LinkinStars <linkinstar@foxmail.com>
2024-03-14 18:42:02 +08:00
LinkinStars 4a038b95ef Merge branch 'feat/1.3.0/review' into test 2024-03-14 17:32:40 +08:00
LinkinStars 03b3555ddf fix(review): add translation for review 2024-03-14 17:32:28 +08:00
shuai 8a29dca1cd fix: i18n update 2024-03-14 17:07:13 +08:00
LinkinStars 7e147874ac fix(review): get review flag comment without status 2024-03-14 16:51:38 +08:00
LinkinStars 8e1672da41 Merge branch 'feat/1.3.0/review' into test 2024-03-14 16:17:41 +08:00
LinkinStars eacbade3f2 Merge remote-tracking branch 'origin/dev' into feat/1.3.0/review 2024-03-14 16:17:00 +08:00
LinkinStars ce9a34b8d5 feat(question): show pending question for user 2024-03-14 16:16:57 +08:00
dashuai 24651285bd Feat/1.3.0/UI (#841) 2024-03-14 14:34:47 +08:00
shuai 87d8d2a008 fix: diff error 2024-03-14 14:34:02 +08:00
shuai 6201a5a740 fix: answer add pending state 2024-03-14 12:18:57 +08:00
shuai ff109cf115 Merge branch 'test' of github.com:answerdev/answer into test 2024-03-14 12:14:00 +08:00
shuai aad6e33b48 fix: answer add pending state 2024-03-14 12:13:06 +08:00
LinkinStars fd3f7ea3fd Merge branch 'feat/1.3.0/review' into test 2024-03-14 12:12:57 +08:00
LinkinStars 087f0a0d21 feat(question): add question pending status tip 2024-03-14 12:12:47 +08:00
LinkinStars b334b8f05d Merge branch 'feat/1.3.0/review' into test 2024-03-14 11:30:35 +08:00
LinkinStars aea7755eab fix(review): add user repo 2024-03-14 11:28:48 +08:00
LinkinStars a301ca8df7 Merge branch 'feat/1.3.0/review' into test 2024-03-14 10:48:18 +08:00
LinkinStars 7e84689595 feat(plugin): add reviewer-basic plugin 2024-03-14 10:47:56 +08:00
shuai 8ec52fc1a7 fix: conflict 2024-03-14 10:43:22 +08:00
shuai 741591de45 fix: hide split componnets 2024-03-14 10:41:09 +08:00
LinkinStars 4467174f80 feat(review): add review permission 2024-03-14 10:31:46 +08:00
dashuai 7606940a90 Feat/1.3.0/UI (#840) 2024-03-14 10:06:41 +08:00
LinkinStars ebf55458e3 Merge branch 'feat/1.3.0/review' into test 2024-03-14 10:03:50 +08:00
LinkinStars e780f3edbc Merge branch 'feat/1.3.0/notifiaction' into test 2024-03-14 10:03:27 +08:00
shuai cd091097e8 Merge branch 'feat/ui/split-chunks' into feat/1.3.0/ui 2024-03-14 10:03:16 +08:00
LinkinStars 1b7618f25b fix(notification): update question and answer count amount after reviewing 2024-03-14 10:01:05 +08:00
hgaol f9a93e2efe fix: not changing rank for newly registered user when changing mail 2024-03-13 17:12:01 +08:00
LinkinStars faf0b7e9cc fix(notification): If receiver not set language, use site default language. #833 2024-03-13 17:08:02 +08:00
LinkinStars 3c802cc900 feat(review): add review amount to revision count 2024-03-13 16:30:21 +08:00
shuai a8345ca307 fix: after the review is completed, it will automatically switch to other types to be reviewed 2024-03-13 15:02:51 +08:00
shuai df60809ab1 fix: review_id should be number 2024-03-13 14:45:16 +08:00
shuai d2c53e8613 fix: review close action 2024-03-13 12:27:08 +08:00
LinkinStars cbfd7512f8 feat(review): postpone the notification after review 2024-03-13 11:23:40 +08:00
shuai 724dc022b7 feat: admin qeustions and answers add pending list 2024-03-13 11:22:44 +08:00
shuai 4e11ce5ee7 feat: delete admin/flag page 2024-03-12 18:20:09 +08:00
shuai 7d0b4121c6 feat: add queued review content 2024-03-12 17:51:30 +08:00
easy e529d33dbf fix(ui): fixed the ui issue of skeleton screen flickering (#830)
The changes made in this pull request are quite extensive, and the
proposed solution is briefly described in the following text. I hope you
can take some time to review it when you have a moment.

**What did I modify in this branch?**

Perhaps you have noticed that we have been using the skeleton screen
technology on the frontend pages. However, the control over it seems a
bit simplistic. We currently only initiate the skeleton screen when
entering the page and directly replace it with new nodes upon interface
returns. As a result, there is a "skeleton screen flickering" issue
during usage. In favorable network conditions, we often observe a quick
flash of the skeleton screen. From a user experience perspective, I
prefer the page not to change so rapidly. Therefore, I have submitted
this pull request to address the issue.

**How did I make the modification?**

Through code comparison, it can be observed that I actually encapsulated
a new hook named `useSkeletonControl`. The parameters it returns are as
follows:

```ts
{
     isSkeletonShow, // Should the skeleton screen be displayed?
     openSkeleton, // Activate the skeleton screen.
     closeSkeleton // Deactivate the skeleton screen.
}
```

In the code logic, you can see that I have implemented a delay-like
operation for both activation and deactivation. The reason behind this
is that I believe the opening logic of the skeleton screen should be
like this:

- When the interface returns within 1 second, there is no need to
activate the skeleton screen.
  
- When the interface takes more than 1 second to return, the skeleton
screen is activated, and the activation time should not be less than 3
seconds.
  

(The above-mentioned times are all defined as constants and can be
adjusted according to the actual situation.)

Based on this design approach, I utilized `setTimeout` and
`clearTimeout` to control the timing of activation and deactivation.

Why provide a `needShowFirst` parameter?

Clearly, this parameter is used to control whether the skeleton screen
is rendered right from the start. It allows the skeleton screen to
bypass the first timing condition mentioned earlier, meaning it can be
activated even if the interface returns in less than 1 second. The
reason behind this is that I noticed in some pages, the skeleton screen
needs to occupy its position right from the start to prevent the
'flickering' issue on the page. So, I introduced this parameter.
However, in my design, I don't intend to show the skeleton screen when
the interface response time is too short, as it might negatively impact
the user experience.

The above is the reason behind my pull request. I have made
modifications for the pages I identified, and I hope they will be
accepted. Additionally, if there are better solutions, I am eager to see
them. Thanks again for considering my changes.

---------

Co-authored-by: LinkinStars <linkinstar@foxmail.com>
Co-authored-by: robin <robin@rnode.me>
2024-03-12 17:12:35 +08:00
shuai b2e8ce765b feat: add flag review content 2024-03-12 14:43:31 +08:00
LinkinStars 6736a711cb feat(review): update review report request flag id 2024-03-11 19:27:30 +08:00
LinkinStars ea22497d9d feat(question): query revision tags for deleted question 2024-03-11 15:09:05 +08:00
hgaol c364e9684d add default to true in frontend 2024-03-11 10:00:17 +08:00
hgaol ea8ed68296 remove console log 2024-03-11 10:00:17 +08:00
hgaol 2a828c93c1 feat: support setting config for check latest answer version 2024-03-11 10:00:17 +08:00
LinkinStars 371eaf118e feat(review): update flag api add answer count 2024-03-08 20:13:40 +08:00
shuai 390712965b Merge branch 'dev' into feat/1.3.0/ui 2024-03-08 16:31:34 +08:00
LinkinStars 557172d0d5 feat(review): update flag api response 2024-03-08 15:10:56 +08:00
LinkinStars c72237844f feat(review): add object id query condition for review 2024-03-07 18:40:09 +08:00
kumfo 7546aabca9 feat(admin/contents): feat pending list 2024-03-07 17:03:09 +08:00
LinkinStars 6dd862496c fix(review): fix review 2024-03-07 15:31:25 +08:00
LinkinStars d4aea5f34f feat(answer): add answer review 2024-03-07 14:10:30 +08:00
LinkinStars c26d83c27a feat(question): add question review 2024-03-07 12:24:02 +08:00
LinkinStars 51067793e3 feat(migration): add migrations 2024-03-07 11:15:54 +08:00
LinkinStars beeb898b9e docs(swagger): update swagger 2024-03-07 11:01:54 +08:00
LinkinStars 6af56c63a0 feat(review): Add review API 2024-03-07 11:01:18 +08:00
shuai aa0cddb1bc fix: add analyze script 2024-03-07 10:15:48 +08:00
shuai af310a0f44 fix: components split chunks 2024-03-07 10:07:22 +08:00
shuai 6c9868dcb3 fix: template supports multiple script tags 2024-03-06 18:43:43 +08:00
shuai fd9d432d10 fix: optimize the configuration of setWebpackOptimizationSplitChunks #809 #787 2024-03-06 18:42:03 +08:00
foxzero-007 5d777896e3 feat: use uid.DeshortID on v.ID 2024-03-06 15:55:38 +08:00
而立 51b96ec06f feat: format code 2024-03-06 15:55:38 +08:00
而立 c6042d96ed feat: filter the same question in similar questions 2024-03-06 15:55:38 +08:00
kumfo 2ae98a6949 feat(queued): add status:pending(quesiton/answer/comment),and change question status query 2024-03-06 15:17:57 +08:00
LinkinStars 009497ba65 feat(review): Add review report API 2024-03-06 11:07:50 +08:00
sy-records c014be823b chore: sync swagger 2024-03-06 09:58:18 +08:00
sy-records 3e1b20e9fb feat: Add a order filter called "Oldest" in answer 2024-03-06 09:58:18 +08:00
shuai 652f5de7c7 fix: split main.js #809 #784 2024-03-05 16:03:31 +08:00
kumfo fa4782a4dc feat(flag): move flag(admin) -> flag(foreground) 2024-03-05 11:35:36 +08:00
hgaol 16cafbaf95 update 2024-03-05 11:28:45 +08:00
hgaol 1934ddbe27 update 2024-03-05 11:28:45 +08:00
hgaol d26079a188 fix: can't search username with '-' charactor 2024-03-05 11:28:45 +08:00
LinkinStars b4f61190b0 feat(url): Add default url title 2024-03-04 18:30:33 +08:00
LinkinStars fd6c2b1cd5 feat(notification): Add a notification when replying to a comment. 2024-03-04 18:00:24 +08:00
hgaol bee1f5624e fix: remove delete action for deleted question even for admin 2024-03-01 23:00:24 +08:00
shuai cd8dd140c6 fix: review ui split 2024-03-01 18:08:08 +08:00
LinkinStars 34e56f3e81 feat(review): add API about reviewing type 2024-02-29 17:53:26 +08:00
Hosein Beigi 0339b36330 feat/add-persian 2024-02-28 17:37:00 +08:00
Han Gao d4af6f5e86 feat: support list and unlist in admin contents page for questions (#780)
fix #721 .
2024-02-27 16:19:45 +08:00
shuai cf3cc8a827 fix: review ui change 2024-02-27 11:34:43 +08:00
Han Gao fea7394558 fix: only display vote number and acceptance if necessary (#806)
fix #803 .


![image](https://github.com/apache/incubator-answer/assets/11908658/1d71e6cc-966f-47ca-9a42-c0e2f870d54f)
2024-02-27 11:31:12 +08:00
zahash d1a0e6cfaf fixes issue with deleted comments (#796) 2024-02-27 11:13:35 +08:00
wzy 7a4cc161c9 fix: update answer count when update status 2024-02-27 11:08:52 +08:00
Han Gao 3376b0157b fix: incomplete text display when pasting text into the tags field (#776)
fix #773 .

---------

Co-authored-by: LinkinStars <linkinstar@foxmail.com>
2024-02-27 10:35:06 +08:00
shuai bda7c40a1a fix: edit comment 2024-02-26 11:17:59 +08:00
shuai dabce296b8 fix: replace timezone text _ to space 2024-02-19 15:21:44 +08:00
shuai 8c7bf40508 fix: timezone text format 2024-02-19 15:13:59 +08:00
LinkinStars 5132cb3912 ci(goreleaser): add wrap in directory
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
2024-01-30 16:36:39 +08:00
LinkinStars 0849e8f540 refactor(file): refactor file format check function 2024-01-30 16:36:39 +08:00
LinkinStars 968f23db7f Release/1.2.5 (#761)
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
Signed-off-by: Adam Vollrath <adam.d.vollrath@gmail.com>
Co-authored-by: shuai <lishuailing@sifou.com>
Co-authored-by: kelvinkuo <kelvinkuo224@gmail.com>
Co-authored-by: hgaol <dhangao@hotmail.com>
Co-authored-by: sy-records <52o@qq52o.cn>
Co-authored-by: Adam Vollrath <adam.d.vollrath@gmail.com>
Co-authored-by: kumfo <kumfo@sifou.com>
Co-authored-by: Yang Wong <yang wang>
Co-authored-by: hbsciw <hbsciw@gmail.com>
2024-01-29 19:14:13 +08:00
Fen abecc1c9b6 New Crowdin updates (#19) (#760)
* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (German)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Welsh)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (German)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Welsh)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Swedish)

* New translations en_us.yaml (Swedish)

* New translations en_us.yaml (French)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Swedish)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Swedish)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Swedish)

* New translations en_us.yaml (Romanian)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Swedish)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Welsh)
2024-01-29 17:53:07 +08:00
LinkinStars 937de43978 Release/1.2.5 (#759)
Signed-off-by: Adam Vollrath <adam.d.vollrath@gmail.com>
Co-authored-by: shuai <lishuailing@sifou.com>
Co-authored-by: kelvinkuo <kelvinkuo224@gmail.com>
Co-authored-by: hgaol <dhangao@hotmail.com>
Co-authored-by: sy-records <52o@qq52o.cn>
Co-authored-by: Adam Vollrath <adam.d.vollrath@gmail.com>
Co-authored-by: kumfo <kumfo@sifou.com>
Co-authored-by: Yang Wong <yang wang>
Co-authored-by: hbsciw <hbsciw@gmail.com>
2024-01-29 17:19:41 +08:00
Akhil 52e0a4c59b removed unused config 2024-01-26 11:37:46 +08:00
Haoran Yu 720936b74a Update NOTICE 2024-01-23 12:34:05 +08:00
zhoushilin 261b143679 fix: cache reload once 2024-01-19 14:25:00 +08:00
zhoushilin 6d93b7d2f3 fix: plugin cache reload 2024-01-19 14:25:00 +08:00
Fen d8c55779f8 update: github issue template (#714)
* update: github issue template
2024-01-09 13:51:25 +08:00
LinkinStars bdc498ce39 fix(dashboard): set default smtp status 2024-01-08 16:21:25 +08:00
tison 1c5297abf1 Update Makefile 2024-01-03 17:17:42 +08:00
tison c8c3d7c1a2 build: tolerate build without git repo
Signed-off-by: tison <wander4096@gmail.com>
2024-01-03 17:17:42 +08:00
Fen da490d4006 fix: unit typo 2023-12-28 12:38:05 +08:00
LinkinStars 615e439fd3 ci(goreleaser): rename release src package name 2023-12-27 23:40:22 +08:00
Lu Fei 41a73cf9df fix: i18n text (#693)
close #692 

There are several languages that require specialized translators. 😅
2023-12-25 10:10:04 +08:00
Adam Vollrath 3b00da932b Sanitize input from contributor fork workflows.
Signed-off-by: Adam Vollrath <adam.d.vollrath@gmail.com>
2023-12-21 17:29:05 +08:00
sy-records 152934c740 ci: build image only if repository_owner is apache 2023-12-18 11:00:59 +08:00
YL1028K 68f5af01d9 fix: log prints incorrect method(#684) 2023-12-15 17:07:35 +08:00
Fen 2df8d5657e New Crowdin updates (#14)
* New translations en_us.yaml (German)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Welsh)
2023-12-14 18:13:33 +08:00
Fen 7e4fe9a0f8 New Crowdin updates (#3)
* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Welsh)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Welsh)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Welsh)

* New translations en_us.yaml (German)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Welsh)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Welsh)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (German)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Welsh)

* New translations en_us.yaml (German)

* New translations en_us.yaml (German)

* New translations en_us.yaml (French)

* New translations en_us.yaml (Spanish)

* New translations en_us.yaml (Czech)

* New translations en_us.yaml (Danish)

* New translations en_us.yaml (Italian)

* New translations en_us.yaml (Japanese)

* New translations en_us.yaml (Korean)

* New translations en_us.yaml (Polish)

* New translations en_us.yaml (Portuguese)

* New translations en_us.yaml (Russian)

* New translations en_us.yaml (Slovak)

* New translations en_us.yaml (Turkish)

* New translations en_us.yaml (Ukrainian)

* New translations en_us.yaml (Chinese Simplified)

* New translations en_us.yaml (Chinese Traditional)

* New translations en_us.yaml (Vietnamese)

* New translations en_us.yaml (Indonesian)

* New translations en_us.yaml (Persian)

* New translations en_us.yaml (Welsh)
2023-12-14 17:43:36 +08:00
LinkinStars 3f696b63d6 docs(README): upgrade 1.2.1 2023-12-14 15:10:19 +08:00
LinkinStars 82fdfc7763 Release/1.2.1 (#678)
Build Binary For Release / build-goreleaser (push) Has been cancelled
Build Docker Image For Release / build (push) Has been cancelled
Co-authored-by: shuai <lishuailing@sifou.com>
Co-authored-by: kelvinkuo <kelvinkuo224@gmail.com>
Co-authored-by: hgaol <dhangao@hotmail.com>
Co-authored-by: sy-records <52o@qq52o.cn>
2023-12-14 15:07:58 +08:00
Han Gao a00f660411 fix: can't show tag description in tag edit page (#664)
fix #637 .
2023-11-30 14:42:09 +08:00
LinkinStars 03b5950d71 docs(image): rename all docker image name to apache/answer 2023-11-29 17:21:19 +08:00
LinkinStars 1a7cbb780b docs(swagger): update swagger docs 2023-11-29 16:46:49 +08:00
LinkinStars 42b4d74d98 Merge branch 'refactor/collection' into dev 2023-11-29 16:46:04 +08:00
LinkinStars b2de62d0b9 Merge remote-tracking branch 'origin/main' into dev 2023-11-29 16:45:51 +08:00
lufei 7aa16f245b optimize code 2023-11-29 16:44:08 +08:00
sy-records 9dc0d566cc fix by code review 2023-11-29 16:44:08 +08:00
sy-records 3e76a0368f fix: permalink error on some pages 2023-11-29 16:44:08 +08:00
hgaol f1e6af0fab sort imports 2023-11-29 16:43:19 +08:00
hgaol 72ff929fab add default notification config for users registered by third party connector 2023-11-29 16:43:19 +08:00
kelvinkuo 138934692c simply the GetTagPage logic 2023-11-29 16:42:25 +08:00
kelvinkuo 7b709ece22 support tag search for synonyms 2023-11-29 16:42:25 +08:00
LinkinStars 1a76d0aa67 ci(github): add docker image github action 2023-11-29 15:14:18 +08:00
shuai ac18f302a6 fix: bookmark params changed 2023-11-28 18:00:01 +08:00
LinkinStars 0e430827c0 refactor(collection): refactor collection 2023-11-28 17:00:06 +08:00
Fen b01717c49e docs: update link 2023-11-28 15:42:04 +08:00
shuai 3eeb289aa0 fix: google snapshots error #649 2023-11-27 15:24:05 +08:00
sy-records 0267f4bd69 fix: canonical link error 2023-11-22 16:26:44 +08:00
Lu Fei 2cf77adbb5 fix: license header breaks helm chart (#591)
This fixes #590.
2023-11-22 15:44:23 +08:00
Lu Fei 13b6fa2157 fix(sitemap): move asf header after xmlheader (#633)
This fixes #631.
2023-11-22 15:14:20 +08:00
LinkinStars c1cd2bbadd ci(github): remove GOPROXY for github action 2023-11-17 20:02:11 +08:00
LinkinStars e11aa93c14 ci(github): rename the secret name 2023-11-17 18:53:55 +08:00
LinkinStars 58dadefc99 ci(github): update docker login action version and config username 2023-11-17 16:42:59 +08:00
LinkinStars 84ef7d0e55 ci(asf): change the check-asf-header script to docker command via hawkeye-native 2023-11-17 15:54:27 +08:00
LinkinStars 274eaf29cf ci(github): update docker user and token secrets 2023-11-17 15:54:27 +08:00
LinkinStars fd6808b7ea ci(lic): add excludes for some files 2023-11-17 15:54:27 +08:00
LinkinStars 47b1366b13 docs(README): add build from source description 2023-11-17 10:58:44 +08:00
LinkinStars ff82298416 docs(README): update the call of this project Apache Answer instead of Answer #630 2023-11-17 10:58:44 +08:00
905 changed files with 109808 additions and 33112 deletions
+5 -5
View File
@@ -17,7 +17,7 @@
# NOTE: All configurations could be found here: https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features
github:
description: "A Q&A platform software for teams at any scales. Whether it's a community forum, help center, or knowledge management platform, you can always count on Answer."
description: "A Q&A platform software for teams at any scales. Whether it's a community forum, help center, or knowledge management platform, you can always count on Apache Answer."
homepage: https://answer.apache.org
labels:
- react
@@ -30,7 +30,7 @@ github:
- q-and-a
- hacktoberfest
features:
wiki: false
wiki: true
issues: true
projects: true
discussions: false
@@ -43,6 +43,6 @@ github:
notifications:
commits: commits@answer.apache.org
issues: commits@answer.apache.org
pullrequests: commits@answer.apache.org
discussions: commits@answer.apache.org
issues: issues@answer.apache.org
pullrequests: issues@answer.apache.org
discussions: issues@answer.apache.org
+36
View File
@@ -0,0 +1,36 @@
# Installation
INSTALL_PORT=80
AUTO_INSTALL=false
# Database
DB_TYPE=
DB_USERNAME=
DB_PASSWORD=
DB_HOST=
DB_NAME=
DB_FILE=
# Site
LANGUAGE=en-US
SITE_NAME=Apache Answer
SITE_URL=
CONTACT_EMAIL=
# Admin
ADMIN_NAME=
ADMIN_PASSWORD=
ADMIN_EMAIL=
# Content
EXTERNAL_CONTENT_DISPLAY=ask_before_display
# Swagger
SWAGGER_HOST=
SWAGGER_ADDRESS_PORT=
# Server
SITE_ADDR=0.0.0.0:3000
# Logging
LOG_LEVEL=INFO
LOG_PATH=
+18 -11
View File
@@ -1,30 +1,37 @@
---
name: Bug report
about: Create a report to help us improve
about: Report an issue to help the project improve.
title: ''
labels: bug
type: 'Bug'
assignees: ''
---
**Describe the bug**
## Describe the bug
A clear and concise description of what the bug is.
**To Reproduce**
## To Reproduce
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
## Expected behavior
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
## Screenshots
**Platform (please complete the following information):**
- Device: [e.g. Desktop, Mobile]
- OS: [e.g. macOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
If applicable, add screenshots or video to help explain your problem.
## Platform
- Device: [e.g. Desktop, Mobile]
- OS: [e.g. macOS]
- Browser and version: [e.g. Chrome, Safari]
- Version: [e.g. v1.2.0]
+22
View File
@@ -0,0 +1,22 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
blank_issues_enabled: true
contact_links:
- name: Questions & Discussions
url: https://meta.answer.dev
about: If you have any questions while using.
@@ -0,0 +1,21 @@
---
name: Enhancement request
about: Suggest an enhancement for this project. Improve an existing feature.
title: ''
labels: enhancement
type: 'Feature'
assignees: ''
---
## Is your enhancement request related to a problem? Please describe
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
## Describe the solution you'd like
A clear and concise description of what you want to happen.
## Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
+9 -5
View File
@@ -1,17 +1,21 @@
---
name: Feature request
about: Suggest an idea for this project
about: Suggest an idea or possible new feature for this project.
title: ''
labels: enhancement
labels: new-feature
type: 'Feature'
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
## Is your feature request related to a problem? Please describe
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
## Describe the solution you'd like
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
## Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
+12 -10
View File
@@ -26,6 +26,7 @@ permissions:
jobs:
build-goreleaser:
if: ${{ github.repository_owner == 'apache' }}
runs-on: ubuntu-latest
steps:
@@ -33,26 +34,27 @@ jobs:
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 18
node-version: 20.18.1
- name: Node Build
run: make install-ui-packages ui
- name: Setup Go
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: 1.19
go-version: 1.23
- name: Install GoReleaser
run: go install github.com/goreleaser/goreleaser/v2@latest
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v4
with:
distribution: goreleaser
version: latest
args: release --clean --skip-validate
run: |
"$(go env GOPATH)/bin/goreleaser" release --clean --skip=validate
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: answer
path: ./dist/*
@@ -0,0 +1,63 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: Build Latest Docker Image For Release
on:
push:
tags:
- v2.*
- v1.*
- v0.*
- "!v*-RC*"
# pull_request:
# branches: [ "main" ]
jobs:
build:
if: ${{ github.repository_owner == 'apache' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
run: |
sudo apt-get update
sudo apt-get install -y qemu-user-static
- name: Set up Docker Buildx
run: |
docker buildx create --name answer-builder --driver docker-container --use
docker buildx inspect --bootstrap
- name: Login to DockerHub
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login --username "${{ secrets.DOCKERHUB_USER }}" --password-stdin
- name: Build and push
run: |
BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
docker buildx build \
--file ./Dockerfile \
--platform linux/amd64,linux/arm64 \
--push \
--tag apache/answer:latest \
--label org.opencontainers.image.created="${BUILD_DATE}" \
--label org.opencontainers.image.revision="${GITHUB_SHA}" \
--label org.opencontainers.image.source="https://github.com/${GITHUB_REPOSITORY}" \
--label org.opencontainers.image.version="${GITHUB_REF_NAME#v}" \
.
@@ -0,0 +1,61 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: Manual Build Docker Image For Release
on:
workflow_dispatch:
inputs:
tag_name:
type: string
required: true
description: 'DockerHub img tag name'
jobs:
build:
if: ${{ github.repository_owner == 'apache' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
run: |
sudo apt-get update
sudo apt-get install -y qemu-user-static
- name: Set up Docker Buildx
run: |
docker buildx create --name answer-builder --driver docker-container --use
docker buildx inspect --bootstrap
- name: Login to DockerHub
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login --username "${{ secrets.DOCKERHUB_USER }}" --password-stdin
- name: Build and push
run: |
BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
docker buildx build \
--file ./Dockerfile \
--platform linux/amd64,linux/arm64 \
--push \
--tag "apache/answer:${{ inputs.tag_name }}" \
--label org.opencontainers.image.created="${BUILD_DATE}" \
--label org.opencontainers.image.revision="${GITHUB_SHA}" \
--label org.opencontainers.image.source="https://github.com/${GITHUB_REPOSITORY}" \
--label org.opencontainers.image.version="${{ inputs.tag_name }}" \
.
+22 -27
View File
@@ -19,7 +19,6 @@ name: Build Docker Image For Release
on:
push:
branches: [ "main"]
tags:
- v2.*
- v1.*
@@ -29,41 +28,37 @@ on:
jobs:
build:
if: ${{ github.repository_owner == 'apache' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: apache/answer
tags: |
type=raw,value=latest
type=ref,enable=true,priority=600,prefix=,suffix=,event=branch
type=semver,pattern={{version}}
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
run: |
sudo apt-get update
sudo apt-get install -y qemu-user-static
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
run: |
docker buildx create --name answer-builder --driver docker-container --use
docker buildx inspect --bootstrap
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login --username "${{ secrets.DOCKERHUB_USER }}" --password-stdin
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
file: ./Dockerfile
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
env:
IMAGE_TAG: ${{ github.ref_name }}
run: |
BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
docker buildx build \
--file ./Dockerfile \
--platform linux/amd64,linux/arm64 \
--push \
--tag "apache/answer:${IMAGE_TAG#v}" \
--label org.opencontainers.image.created="${BUILD_DATE}" \
--label org.opencontainers.image.revision="${GITHUB_SHA}" \
--label org.opencontainers.image.source="https://github.com/${GITHUB_REPOSITORY}" \
--label org.opencontainers.image.version="${IMAGE_TAG#v}" \
.
+17 -25
View File
@@ -23,38 +23,30 @@ on:
jobs:
build:
if: ${{ github.repository_owner == 'apache' }}
name: Build and Push
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: apache/answer
tags: |
type=raw,value=test
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Login to DockerHub
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login --username "${{ secrets.DOCKERHUB_USER }}" --password-stdin
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
run: |
docker buildx create --name answer-builder --driver docker-container --use
docker buildx inspect --bootstrap
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
run: |
BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
docker buildx build \
--file ./Dockerfile \
--platform linux/amd64 \
--push \
--tag apache/answer:test \
--label org.opencontainers.image.created="${BUILD_DATE}" \
--label org.opencontainers.image.revision="${GITHUB_SHA}" \
--label org.opencontainers.image.source="https://github.com/${GITHUB_REPOSITORY}" \
.
+62
View File
@@ -0,0 +1,62 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: Lint
on:
push:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.number || github.run_id }}
cancel-in-progress: true
jobs:
lint:
name: Lint (${{ matrix.os }})
runs-on: ${{ matrix.os }}
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.23"
cache: true
- name: Run go mod tidy
run: go mod tidy
- name: Run golangci-lint
run: make lint
- name: Check for uncommitted changes
shell: bash
run: |
if [ -n "$(git status --porcelain)" ]; then
echo "::error::Uncommitted changes detected"
git status
git diff
exit 1
fi
-115
View File
@@ -1,115 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: Build PR Image
on:
pull_request:
types: [opened, synchronize, reopened, closed]
jobs:
build-answer:
name: Build and push `Answer`
runs-on: ubuntu-latest
outputs:
tags: ${{ steps.meta.outputs.tags }}
if: ${{ github.event.action != 'closed' }}
steps:
- name: Checkout git repo
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Generate UUID image name
id: uuid
run: echo "UUID_WORKER=$(uuidgen)" >> $GITHUB_ENV
- name: Docker metadata
id: meta
uses: docker/metadata-action@v4
with:
images: registry.uffizzi.com/${{ env.UUID_WORKER }}
tags: |
type=raw,value=60d
- name: Build and Push Image to registry.uffizzi.com - Uffizzi's ephemeral Registry
uses: docker/build-push-action@v3
with:
context: .
file: ./Dockerfile
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
push: true
cache-from: type=gha
cache-to: type=gha, mode=max
render-compose-file:
name: Render Docker Compose File
# Pass output of this workflow to another triggered by `workflow_run` event.
runs-on: ubuntu-latest
needs:
- build-answer
outputs:
compose-file-cache-key: ${{ steps.hash.outputs.hash }}
steps:
- name: Checkout git repo
uses: actions/checkout@v4
- name: Render Compose File
run: |
ANSWER_IMAGE=${{ needs.build-answer.outputs.tags }}
export ANSWER_IMAGE
export UFFIZZI_URL=\$UFFIZZI_URL
# Render simple template from environment variables.
envsubst < docker-compose.uffizzi.yml > docker-compose.rendered.yml
cat docker-compose.rendered.yml
- name: Upload Rendered Compose File as Artifact
uses: actions/upload-artifact@v3
with:
name: preview-spec
path: docker-compose.rendered.yml
retention-days: 2
- name: Serialize PR Event to File
run: |
cat << EOF > event.json
${{ toJSON(github.event) }}
EOF
- name: Upload PR Event as Artifact
uses: actions/upload-artifact@v3
with:
name: preview-spec
path: event.json
retention-days: 2
delete-preview:
name: Call for Preview Deletion
runs-on: ubuntu-latest
if: ${{ github.event.action == 'closed' }}
steps:
# If this PR is closing, we will not render a compose file nor pass it to the next workflow.
- name: Serialize PR Event to File
run: |
cat << EOF > event.json
${{ toJSON(github.event) }}
EOF
- name: Upload PR Event as Artifact
uses: actions/upload-artifact@v3
with:
name: preview-spec
path: event.json
retention-days: 2
-105
View File
@@ -1,105 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: Deploy Uffizzi Preview
on:
workflow_run:
workflows:
- "Build PR Image"
types:
- completed
jobs:
cache-compose-file:
name: Cache Compose File
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
outputs:
compose-file-cache-key: ${{ env.HASH }}
pr-number: ${{ env.PR_NUMBER }}
steps:
- name: 'Download artifacts'
# Fetch output (zip archive) from the workflow run that triggered this workflow.
uses: actions/github-script@v6
with:
script: |
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.payload.workflow_run.id,
});
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
return artifact.name == "preview-spec"
})[0];
let download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
let fs = require('fs');
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/preview-spec.zip`, Buffer.from(download.data));
- name: 'Unzip artifact'
run: unzip preview-spec.zip
- name: Read Event into ENV
run: |
echo 'EVENT_JSON<<EOF' >> $GITHUB_ENV
cat event.json >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
- name: Hash Rendered Compose File
id: hash
# If the previous workflow was triggered by a PR close event, we will not have a compose file artifact.
if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }}
run: echo "HASH=$(md5sum docker-compose.rendered.yml | awk '{ print $1 }')" >> $GITHUB_ENV
- name: Cache Rendered Compose File
if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }}
uses: actions/cache@v3
with:
path: docker-compose.rendered.yml
key: ${{ env.HASH }}
- name: Read PR Number From Event Object
id: pr
run: echo "PR_NUMBER=${{ fromJSON(env.EVENT_JSON).number }}" >> $GITHUB_ENV
- name: DEBUG - Print Job Outputs
if: ${{ runner.debug }}
run: |
echo "PR number: ${{ env.PR_NUMBER }}"
echo "Compose file hash: ${{ env.HASH }}"
cat event.json
deploy-uffizzi-preview:
name: Use Remote Workflow to Preview on Uffizzi
needs:
- cache-compose-file
if: ${{ github.event.workflow_run.conclusion == 'success' }}
uses: UffizziCloud/preview-action/.github/workflows/reusable.yaml@v2
with:
# If this workflow was triggered by a PR close event, cache-key will be an empty string
# and this reusable workflow will delete the preview deployment.
compose-file-cache-key: ${{ needs.cache-compose-file.outputs.compose-file-cache-key }}
compose-file-cache-path: docker-compose.rendered.yml
server: https://app.uffizzi.com
pr-number: ${{ needs.cache-compose-file.outputs.pr-number }}
permissions:
contents: read
pull-requests: write
id-token: write
+8 -1
View File
@@ -3,6 +3,7 @@
*.rej
*.so
*~
*.db
.DS_Store
._*
/.idea
@@ -27,5 +28,11 @@ vendor/
/answer-data/
/answer
/new_answer
build/tools/
dist/
# Lint setup generated file
.husky/
# Environment variables
.env
+49
View File
@@ -0,0 +1,49 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
version: "2"
linters:
exclusions:
paths:
- answer-data
- ui
- i18n
enable:
- asasalint # checks for pass []any as any in variadic func(...any)
- asciicheck # checks that your code does not contain non-ASCII identifiers
- bidichk # checks for dangerous unicode character sequences
- bodyclose # checks whether HTTP response body is closed successfully
- canonicalheader # checks whether net/http.Header uses canonical header
- copyloopvar # detects places where loop variables are copied (Go 1.22+)
- gocritic # provides diagnostics that check for bugs, performance and style issues
- misspell # finds commonly misspelled English words in comments and strings
- modernize # detects code that can be modernized to use newer Go features
- testifylint # checks usage of github.com/stretchr/testify
- unconvert # removes unnecessary type conversions
- unparam # reports unused function parameters
- whitespace # detects leading and trailing whitespace
formatters:
enable:
- gofmt
- goimports
settings:
gofmt:
simplify: true
rewrite-rules:
- pattern: 'interface{}'
replacement: 'any'
+13 -7
View File
@@ -15,6 +15,8 @@
# specific language governing permissions and limitations
# under the License.
version: 2
env:
- GO11MODULE=on
- GO111MODULE=on
@@ -32,7 +34,7 @@ builds:
- id: build
main: ./cmd/answer/.
binary: answer
ldflags: -s -w -X github.com/apache/incubator-answer/cmd.Version={{.Version}} -X github.com/apache/incubator-answer/cmd.Revision={{.ShortCommit}} -X github.com/apache/incubator-answer/cmd.Time={{.Date}} -X github.com/apache/incubator-answer/cmd.BuildUser=goreleaser
ldflags: -s -w -X github.com/apache/answer/cmd.Version={{.RawVersion}} -X github.com/apache/answer/cmd.Revision={{.ShortCommit}} -X github.com/apache/answer/cmd.Time={{.Date}} -X github.com/apache/answer/cmd.BuildUser=goreleaser
flags: -v
goos:
- linux
@@ -43,7 +45,7 @@ builds:
- id: build-windows
main: ./cmd/answer/.
binary: answer
ldflags: -s -w -X github.com/apache/incubator-answer/cmd.Version={{.Version}} -X github.com/apache/incubator-answer/cmd.Revision={{.ShortCommit}} -X github.com/apache/incubator-answer/cmd.Time={{.Date}} -X github.com/apache/incubator-answer/cmd.BuildUser=goreleaser
ldflags: -s -w -X github.com/apache/answer/cmd.Version={{.RawVersion}} -X github.com/apache/answer/cmd.Revision={{.ShortCommit}} -X github.com/apache/answer/cmd.Time={{.Date}} -X github.com/apache/answer/cmd.BuildUser=goreleaser
flags: -v
goos:
- windows
@@ -55,7 +57,7 @@ builds:
archives:
- name_template: >-
apache-answer-{{ .Version }}-incubating-{{ .Os }}-{{ .Arch }}
apache-answer-{{ .RawVersion }}-bin-{{ .Os }}-{{ .Arch }}
files:
- src: "docs/release/LICENSE"
dst: LICENSE
@@ -63,12 +65,11 @@ archives:
dst: NOTICE
- src: "docs/release/licenses/*"
dst: licenses/
- src: "DISCLAIMER"
dst: DISCLAIMER
wrap_in_directory: true
checksum:
name_template: 'checksums.txt'
snapshot:
name_template: "{{ incpatch .Version }}"
version_template: "{{ incpatch .Version }}"
changelog:
sort: asc
filters:
@@ -76,5 +77,10 @@ changelog:
- '^docs:'
- '^test:'
# goreleaser release --snapshot --rm-dist
source:
enabled: true
name_template: apache-answer-{{ .RawVersion }}-src
prefix_template: "apache-answer-{{ .RawVersion }}-src/"
# goreleaser release --skip-validate --skip-publish --clean
+2 -2
View File
@@ -19,7 +19,7 @@ version: 0.0.1
achievements:
- achievement:
name: Visionary Architect
icon: https://raw.githubusercontent.com/apache/incubator-answer/main/.vaunt/enhancement.png
icon: https://raw.githubusercontent.com/apache/answer/main/.vaunt/enhancement.png
description: Awarded for bringing up enhancement, dream big!
triggers:
- trigger:
@@ -28,7 +28,7 @@ achievements:
condition: labels in ['enhancement'] & labels in ['LGTM']
- achievement:
name: Bug Hunter
icon: https://raw.githubusercontent.com/apache/incubator-answer/main/.vaunt/bug.png
icon: https://raw.githubusercontent.com/apache/answer/main/.vaunt/bug.png
description: Awarded for identifying real bugs, well spotted!
triggers:
- trigger:
+4 -1
View File
@@ -2,5 +2,8 @@
"eslint.workingDirectories": [
"ui"
],
"explorer.autoReveal": "focusNoScroll"
"explorer.autoReveal": "focusNoScroll",
"cSpell.words": [
"grecaptcha"
]
}
-10
View File
@@ -1,10 +0,0 @@
Apache Answer (incubating) is an effort undergoing incubation at the Apache
Software Foundation (ASF), sponsored by the Apache Incubator PMC.
Incubation is required of all newly accepted projects until a further review
indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects.
While incubation status is not necessarily a reflection of the completeness
or stability of the code, it does indicate that the project has yet to be
fully endorsed by the ASF.
+11 -7
View File
@@ -15,16 +15,16 @@
# specific language governing permissions and limitations
# under the License.
FROM golang:1.19-alpine AS golang-builder
LABEL maintainer="aichy@sf.com"
FROM golang:1.25-alpine AS golang-builder
LABEL maintainer="linkinstar@apache.org"
ARG GOPROXY
# ENV GOPROXY ${GOPROXY:-direct}
ENV GOPROXY=https://proxy.golang.com.cn,direct
# ENV GOPROXY=https://proxy.golang.com.cn,direct
ENV GOPATH /go
ENV GOROOT /usr/local/go
ENV PACKAGE github.com/apache/incubator-answer
ENV PACKAGE github.com/apache/answer
ENV BUILD_DIR ${GOPATH}/src/${PACKAGE}
ENV ANSWER_MODULE ${BUILD_DIR}
@@ -34,7 +34,7 @@ ARG CGO_EXTRA_CFLAGS
COPY . ${BUILD_DIR}
WORKDIR ${BUILD_DIR}
RUN apk --no-cache add build-base git bash nodejs npm && npm install -g pnpm@latest \
RUN apk --no-cache add build-base git bash nodejs npm && npm install -g pnpm@9.7.0 \
&& make clean build
RUN chmod 755 answer
@@ -47,7 +47,9 @@ RUN mkdir -p /data/uploads && chmod 777 /data/uploads \
FROM alpine
LABEL maintainer="linkinstar@apache.org"
ENV TZ "Asia/Shanghai"
ARG TIMEZONE
ENV TIMEZONE=${TIMEZONE:-"Asia/Shanghai"}
RUN apk update \
&& apk --no-cache add \
bash \
@@ -58,7 +60,9 @@ RUN apk update \
openssh \
sqlite \
gnupg \
&& echo "Asia/Shanghai" > /etc/timezone
tzdata \
&& ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
&& echo "${TIMEZONE}" > /etc/timezone
COPY --from=golang-builder /usr/bin/answer /usr/bin/answer
COPY --from=golang-builder /data /data
+31 -7
View File
@@ -1,14 +1,23 @@
.PHONY: build clean ui
VERSION=1.2.0
VERSION=2.0.2
BIN=answer
DIR_SRC=./cmd/answer
DOCKER_CMD=docker
GO_ENV=CGO_ENABLED=0 GO111MODULE=on
Revision=$(shell git rev-parse --short HEAD)
GO_FLAGS=-ldflags="-X github.com/apache/incubator-answer/cmd.Version=$(VERSION) -X 'github.com/apache/incubator-answer/cmd.Revision=$(Revision)' -X 'github.com/apache/incubator-answer/cmd.Time=`date +%s`' -extldflags -static"
GO=$(GO_ENV) $(shell which go)
Revision=$(shell git rev-parse --short HEAD 2>/dev/null || echo "")
GO_FLAGS=-ldflags="-X github.com/apache/answer/cmd.Version=$(VERSION) -X 'github.com/apache/answer/cmd.Revision=$(Revision)' -X 'github.com/apache/answer/cmd.Time=`date +%s`' -extldflags -static"
GO=$(GO_ENV) "$(shell which go)"
GOLANGCI_VERSION ?= v2.6.2
TOOLS_BIN := $(shell mkdir -p build/tools && realpath build/tools)
GOLANGCI = $(TOOLS_BIN)/golangci-lint-$(GOLANGCI_VERSION)
$(GOLANGCI):
rm -f $(TOOLS_BIN)/golangci-lint*
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/$(GOLANGCI_VERSION)/install.sh | sh -s -- -b $(TOOLS_BIN) $(GOLANGCI_VERSION)
mv $(TOOLS_BIN)/golangci-lint $(TOOLS_BIN)/golangci-lint-$(GOLANGCI_VERSION)
build: generate
@$(GO) build $(GO_FLAGS) -o $(BIN) $(DIR_SRC)
@@ -21,13 +30,20 @@ universal: generate
@rm -f ${BIN}_amd64 ${BIN}_arm64
generate:
@$(GO) get github.com/swaggo/swag/cmd/swag@v1.16.3
@$(GO) get github.com/google/wire/cmd/wire@v0.5.0
@$(GO) get github.com/golang/mock/mockgen@v1.6.0
@$(GO) get go.uber.org/mock/mockgen@v0.6.0
@$(GO) install github.com/swaggo/swag/cmd/swag@v1.16.3
@$(GO) install github.com/google/wire/cmd/wire@v0.5.0
@$(GO) install github.com/golang/mock/mockgen@v1.6.0
@$(GO) install go.uber.org/mock/mockgen@v0.6.0
@$(GO) generate ./...
@$(GO) mod tidy
check:
@mockgen -version
@swag -v
@wire flags
test:
@$(GO) test ./internal/repo/repo_test
@@ -38,9 +54,17 @@ clean:
install-ui-packages:
@corepack enable
@corepack prepare pnpm@latest --activate
@corepack prepare pnpm@9.7.0 --activate
ui:
@cd ui && pnpm pre-install && pnpm build && cd -
lint: generate $(GOLANGCI)
@bash ./script/check-asf-header.sh
$(GOLANGCI) run
lint-fix: generate $(GOLANGCI)
@bash ./script/check-asf-header.sh
$(GOLANGCI) run --fix
all: clean build
+2 -2
View File
@@ -1,5 +1,5 @@
Apache Answer (incubating)
Copyright 2023 The Apache Software Foundation
Apache Answer
Copyright 2023-2026 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (https://www.apache.org/).
+30 -9
View File
@@ -2,16 +2,16 @@
<img alt="logo" src="docs/img/logo.svg" height="99px">
</a>
# Answer - Build Q&A platform
# Apache Answer - Build Q&A platform
A Q&A platform software for teams at any scales. Whether its a community forum, help center, or knowledge management platform, you can always count on Answer.
To learn more about the project, visit [answer.apache.org](https://answer.apache.org).
[![LICENSE](https://img.shields.io/github/license/apache/incubator-answer)](https://github.com/apache/incubator-answer/blob/main/LICENSE)
[![LICENSE](https://img.shields.io/github/license/apache/answer)](https://github.com/apache/answer/blob/main/LICENSE)
[![Language](https://img.shields.io/badge/language-go-blue.svg)](https://golang.org/)
[![Language](https://img.shields.io/badge/language-react-blue.svg)](https://reactjs.org/)
[![Go Report Card](https://goreportcard.com/badge/github.com/apache/incubator-answer)](https://goreportcard.com/report/github.com/apache/incubator-answer)
[![Go Report Card](https://goreportcard.com/badge/github.com/apache/answer)](https://goreportcard.com/report/github.com/apache/answer)
[![Discord](https://img.shields.io/badge/discord-chat-5865f2?logo=discord&logoColor=f5f5f5)](https://discord.gg/Jm7Y4cbUej)
## Screenshots
@@ -23,25 +23,46 @@ To learn more about the project, visit [answer.apache.org](https://answer.apache
### Running with docker
```bash
docker run -d -p 9080:80 -v answer-data:/data --name answer answerdev/answer:latest
docker run -d -p 9080:80 -v answer-data:/data --name answer apache/answer:2.0.2
```
For more information, see [Installation](https://answer.apache.org/docs/installation)
For more information, see [Installation](https://answer.apache.org/docs/installation).
### Plugins
Answer provides a plugin system for developers to create custom plugins and expand Answers features. You can find the [plugin documentation here](https://answer.apache.org/docs/development/extending/).
Answer provides a plugin system for developers to create custom plugins and expand Answers features. You can find the [plugin documentation here](https://answer.apache.org/community/plugins).
We value your feedback and suggestions to improve our documentation. If you have any comments or questions, please feel free to contact us. Were excited to see what you can create using our plugin system!
You can also check out the [plugins here](https://github.com/apache/incubator-answer-plugins).
You can also check out the [plugins here](https://answer.apache.org/plugins).
## Building from Source
### Prerequisites
- Golang >= 1.23
- Node.js >= 20
- pnpm >= 9
- [mockgen](https://github.com/uber-go/mock?tab=readme-ov-file#installation) >= 0.6.0
- [wire](https://github.com/google/wire/) >= 0.5.0
### Build
```bash
# Install wire and mockgen for building. You can run `make check` to check if they are installed.
$ make generate
# Install frontend dependencies and build
$ make ui
# Install backend dependencies and build
$ make build
```
## Contributing
Contributions are always welcome!
See [CONTRIBUTING](https://answer.apache.org/docs/development/contributing/) for ways to get started.
See [CONTRIBUTING](https://answer.apache.org/community/contributing) for ways to get started.
## License
[Apache License 2.0](https://github.com/apache/incubator-answer/blob/main/LICENSE)
[Apache License 2.0](https://github.com/apache/answer/blob/main/LICENSE)
-39
View File
@@ -1,39 +0,0 @@
<a href="https://answer.apache.org">
<img alt="logo" src="docs/img/logo.svg" height="99px">
</a>
# Answer - 构建问答社区
一款问答形式的知识社区开源软件,你可以使用它快速建立你的问答社区,用于产品技术支持、客户支持、用户交流等。
了解更多关于该项目的内容,请访问 [answer.apache.org](https://answer.apache.org).
[![LICENSE](https://img.shields.io/github/license/apache/incubator-answer)](https://github.com/apache/incubator-answer/blob/main/LICENSE)
[![Language](https://img.shields.io/badge/language-go-blue.svg)](https://golang.org/)
[![Language](https://img.shields.io/badge/language-react-blue.svg)](https://reactjs.org/)
[![Go Report Card](https://goreportcard.com/badge/github.com/apache/incubator-answer)](https://goreportcard.com/report/github.com/apache/incubator-answer)
[![Discord](https://img.shields.io/badge/discord-chat-5865f2?logo=discord&logoColor=f5f5f5)](https://discord.gg/Jm7Y4cbUej)
## 截图
![screenshot](docs/img/screenshot.png)
## 快速开始
### 使用 docker 快速搭建
```bash
docker run -d -p 9080:80 -v answer-data:/data --name answer answerdev/answer:latest
```
其他安装配置细节请参考 [Installation](https://answer.apache.org/docs/installation)
## 贡献
我们随时欢迎你的贡献!
参考 [CONTRIBUTING](https://answer.apache.org/docs/development/contributing/) 开始贡献。
## License
[Apache License 2.0](https://github.com/apache/incubator-answer/blob/main/LICENSE)
+3 -3
View File
@@ -11,7 +11,7 @@ The following table lists the configurable parameters of the answer chart and th
| Parameter | Description | Default |
| --------- | ----------- | ------- |
| `replicaCount` | Number of answer replicas | `1` |
| `image.repository` | Image repository | `answerdev/answer` |
| `image.repository` | Image repository | `apache/answer` |
| `image.pullPolicy` | Image pull policy | `Always` |
| `image.tag` | Image tag | `latest` |
| `env` | Optional environment variables for answer | `LOG_LEVEL: INFO` |
@@ -69,7 +69,7 @@ Publish the chart to Artifacthub and add proper installation instructions. E.G.
> **NOTE**: This is not currently a valid installation option.
```console
$ helm repo add answerdev https://charts.answer.apache.org/
$ helm repo add apache https://charts.answer.apache.org/
$ helm repo update
$ helm install answerdev/answer -n mynamespace
$ helm install apache/answer -n mynamespace
```
+17 -3
View File
@@ -64,8 +64,23 @@ spec:
port: http
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- if .Values.env }}
{{- $envNames := list }}
{{- range .Values.env }}
{{- $envNames = append $envNames .name }}
{{- end }}
env:
{{- if not (has "INSTALL_PORT" $envNames) }}
- name: INSTALL_PORT
value: {{ .Values.service.port | quote }}
{{- end }}
{{- if not (has "SITE_ADDR" $envNames) }}
- name: SITE_ADDR
value: {{ printf "0.0.0.0:%v" .Values.service.port | quote }}
{{- end }}
{{- if not (has "SWAGGER_ADDRESS_PORT" $envNames) }}
- name: SWAGGER_ADDRESS_PORT
value: {{ printf ":%v" .Values.service.port | quote }}
{{- end }}
{{- range .Values.env }}
- name: {{ .name }}
{{- if .value | quote }}
@@ -76,7 +91,6 @@ spec:
{{- toYaml .valueFrom | nindent 16 }}
{{- end }}
{{- end }}
{{- end }}
volumeMounts:
- name: data
mountPath: "/data"
@@ -102,4 +116,4 @@ spec:
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
+1 -1
View File
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
{{- if .Values.autoscaling.enabled }}
{{ if .Values.autoscaling.enabled -}}
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
+1 -1
View File
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
{{- if .Values.ingress.enabled -}}
{{ if .Values.ingress.enabled -}}
{{- $fullName := include "answer.fullname" . -}}
{{- $svcPort := .Values.service.port -}}
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
+8 -2
View File
@@ -15,12 +15,12 @@
# specific language governing permissions and limitations
# under the License.
{{- if .Values.persistence.enabled }}
{{ if .Values.persistence.enabled -}}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ include "answer.fullname" . }}-claim
{{- with .Values.persistence.annotations }}
{{- with .Values.persistence.annotations }}
annotations:
{{ toYaml . | indent 4 }}
{{- end }}
@@ -39,4 +39,10 @@ spec:
resources:
requests:
storage: {{ .Values.persistence.size | quote }}
{{- with .Values.persistence.dataSource }}
dataSource:
name: {{ .name }}
kind: {{ .kind | default "VolumeSnapshot" }}
apiGroup: {{ .apiGroup | default "snapshot.storage.k8s.io" }}
{{- end }}
{{- end }}
+1 -1
View File
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
{{- if .Values.serviceAccount.create -}}
{{ if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
+9 -3
View File
@@ -22,7 +22,7 @@
replicaCount: 1
image:
repository: answerdev/answer
repository: apache/answer
pullPolicy: Always
# Overrides the image tag whose default is the chart appVersion.
tag: "latest"
@@ -35,7 +35,7 @@ env:
# [DEBUG INFO WARN ERROR]
value: "INFO"
# uncomment the below values to use AUTO_INSTALL and not have to go through the setup process.
# Once used to do the initial setup, these variables wont be used moving forward.
# Once used to do the initial setup, these variables won't be used moving forward.
# You must at a minimum comment AUTO_INSTALL after initial setup to prevent an error about the database already being initiated.
# - name: AUTO_INSTALL
# value: "true"
@@ -68,7 +68,7 @@ env:
# Configure extra containers
extraContainers: []
# - name: cloudsql-proxy
# - name: cloudsql-proxy
# image: gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.1.2
# command:
# - /cloud-sql-proxy
@@ -91,6 +91,12 @@ persistence:
accessMode: ReadWriteOnce
size: 5Gi
annotations: {}
# To restore a PVC from a VolumeSnapshot, set the dataSource;
# the kind and apiGroup are optional and default to the shown values
dataSource: {}
# name: my-volume-snapshot
# kind: VolumeSnapshot
# apiGroup: snapshot.storage.k8s.io
imagePullSecrets: []
nameOverride: ""
+7 -1
View File
@@ -17,12 +17,18 @@
* under the License.
*/
//go:generate go run github.com/swaggo/swag/cmd/swag init -g ./cmd/answer/main.go -d ../../ -o ../../docs
package main
import (
answercmd "github.com/apache/incubator-answer/cmd"
answercmd "github.com/apache/answer/cmd"
)
// main godoc
// @title Apache Answer
// @description Apache Answer API
// @BasePath /
// @securityDefinitions.apikey ApiKeyAuth
// @in header
// @name Authorization
+143 -42
View File
@@ -20,15 +20,17 @@
package answercmd
import (
"context"
"fmt"
"os"
"strings"
"github.com/apache/incubator-answer/internal/base/conf"
"github.com/apache/incubator-answer/internal/cli"
"github.com/apache/incubator-answer/internal/install"
"github.com/apache/incubator-answer/internal/migrations"
"github.com/apache/incubator-answer/plugin"
"github.com/apache/answer/internal/base/conf"
"github.com/apache/answer/internal/base/path"
"github.com/apache/answer/internal/cli"
"github.com/apache/answer/internal/install"
"github.com/apache/answer/internal/migrations"
"github.com/apache/answer/plugin"
"github.com/segmentfault/pacman/log"
"github.com/spf13/cobra"
)
@@ -38,6 +40,8 @@ var (
dataDirPath string
// dumpDataPath dump data path
dumpDataPath string
// place to build new answer
buildDir string
// plugins needed to build in answer application
buildWithPlugins []string
// build output path
@@ -45,6 +49,16 @@ var (
// This config is used to upgrade the database from a specific version manually.
// If you want to upgrade the database to version 1.1.0, you can use `answer upgrade -f v1.1.0`.
upgradeVersion string
// The fields that need to be set to the default value
configFields []string
// i18nSourcePath i18n from path
i18nSourcePath string
// i18nTargetPath i18n to path
i18nTargetPath string
// resetPasswordEmail user email for password reset
resetPasswordEmail string
// resetPasswordPassword new password for password reset
resetPasswordPassword string
)
func init() {
@@ -58,15 +72,25 @@ func init() {
buildCmd.Flags().StringVarP(&buildOutput, "output", "o", "", "build output path")
buildCmd.Flags().StringVarP(&buildDir, "build-dir", "b", "", "dir for build process")
upgradeCmd.Flags().StringVarP(&upgradeVersion, "from", "f", "", "upgrade from specific version, eg: -f v1.1.0")
for _, cmd := range []*cobra.Command{initCmd, checkCmd, runCmd, dumpCmd, upgradeCmd, buildCmd, pluginCmd} {
configCmd.Flags().StringSliceVarP(&configFields, "with", "w", []string{}, "the fields that need to be set to the default value, eg: -w allow_password_login")
i18nCmd.Flags().StringVarP(&i18nSourcePath, "source", "s", "", "i18n source path, eg: -s ./i18n/source")
i18nCmd.Flags().StringVarP(&i18nTargetPath, "target", "t", "", "i18n target path, eg: -t ./i18n/target")
resetPasswordCmd.Flags().StringVarP(&resetPasswordEmail, "email", "e", "", "user email address")
resetPasswordCmd.Flags().StringVarP(&resetPasswordPassword, "password", "p", "", "new password (not recommended, will be recorded in shell history)")
for _, cmd := range []*cobra.Command{initCmd, checkCmd, runCmd, dumpCmd, upgradeCmd, buildCmd, pluginCmd, configCmd, i18nCmd, resetPasswordCmd} {
rootCmd.AddCommand(cmd)
}
}
var (
// rootCmd represents the base command when called without any subcommands
rootCmd = &cobra.Command{
Use: "answer",
Short: "Answer is a minimalist open source Q&A community.",
@@ -76,32 +100,30 @@ To run answer, use:
- 'answer run' to launch application.`,
}
// runCmd represents the run command
runCmd = &cobra.Command{
Use: "run",
Short: "Run the application",
Long: `Run the application`,
Short: "Run Answer",
Long: `Start running Answer`,
Run: func(_ *cobra.Command, _ []string) {
cli.FormatAllPath(dataDirPath)
fmt.Println("config file path: ", cli.GetConfigFilePath())
path.FormatAllPath(dataDirPath)
fmt.Println("config file path: ", path.GetConfigFilePath())
fmt.Println("Answer is starting..........................")
runApp()
},
}
// initCmd represents the init command
initCmd = &cobra.Command{
Use: "init",
Short: "init answer application",
Long: `init answer application`,
Short: "Initialize Answer",
Long: `Initialize Answer with specified configuration`,
Run: func(_ *cobra.Command, _ []string) {
// check config file and database. if config file exists and database is already created, init done
cli.InstallAllInitialEnvironment(dataDirPath)
configFileExist := cli.CheckConfigFile(cli.GetConfigFilePath())
configFileExist := cli.CheckConfigFile(path.GetConfigFilePath())
if configFileExist {
fmt.Println("config file exists, try to read the config...")
c, err := conf.ReadConfig(cli.GetConfigFilePath())
c, err := conf.ReadConfig(path.GetConfigFilePath())
if err != nil {
fmt.Println("read config failed: ", err.Error())
return
@@ -115,20 +137,19 @@ To run answer, use:
}
// start installation server to install
install.Run(cli.GetConfigFilePath())
install.Run(path.GetConfigFilePath())
},
}
// upgradeCmd represents the upgrade command
upgradeCmd = &cobra.Command{
Use: "upgrade",
Short: "upgrade Answer version",
Long: `upgrade Answer version`,
Short: "Upgrade Answer",
Long: `Upgrade Answer to the latest version`,
Run: func(_ *cobra.Command, _ []string) {
log.SetLogger(log.NewStdLogger(os.Stdout))
cli.FormatAllPath(dataDirPath)
path.FormatAllPath(dataDirPath)
cli.InstallI18nBundle(true)
c, err := conf.ReadConfig(cli.GetConfigFilePath())
c, err := conf.ReadConfig(path.GetConfigFilePath())
if err != nil {
fmt.Println("read config failed: ", err.Error())
return
@@ -141,15 +162,14 @@ To run answer, use:
},
}
// dumpCmd represents the dump command
dumpCmd = &cobra.Command{
Use: "dump",
Short: "back up data",
Long: `back up data`,
Short: "Back up data",
Long: `Back up database into an SQL file`,
Run: func(_ *cobra.Command, _ []string) {
fmt.Println("Answer is backing up data")
cli.FormatAllPath(dataDirPath)
c, err := conf.ReadConfig(cli.GetConfigFilePath())
path.FormatAllPath(dataDirPath)
c, err := conf.ReadConfig(path.GetConfigFilePath())
if err != nil {
fmt.Println("read config failed: ", err.Error())
return
@@ -163,15 +183,14 @@ To run answer, use:
},
}
// checkCmd represents the check command
checkCmd = &cobra.Command{
Use: "check",
Short: "checking the required environment",
Short: "Check the required environment",
Long: `Check if the current environment meets the startup requirements`,
Run: func(_ *cobra.Command, _ []string) {
cli.FormatAllPath(dataDirPath)
path.FormatAllPath(dataDirPath)
fmt.Println("Start checking the required environment...")
if cli.CheckConfigFile(cli.GetConfigFilePath()) {
if cli.CheckConfigFile(path.GetConfigFilePath()) {
fmt.Println("config file exists [✔]")
} else {
fmt.Println("config file not exists [x]")
@@ -183,7 +202,7 @@ To run answer, use:
fmt.Println("upload directory not exists [x]")
}
c, err := conf.ReadConfig(cli.GetConfigFilePath())
c, err := conf.ReadConfig(path.GetConfigFilePath())
if err != nil {
fmt.Println("read config failed: ", err.Error())
return
@@ -198,31 +217,30 @@ To run answer, use:
},
}
// buildCmd used to build another answer with plugins
buildCmd = &cobra.Command{
Use: "build",
Short: "used to build answer with plugins",
Short: "Build Answer with plugins",
Long: `Build a new Answer with plugins that you need`,
Run: func(_ *cobra.Command, _ []string) {
fmt.Printf("try to build a new answer with plugins:\n%s\n", strings.Join(buildWithPlugins, "\n"))
err := cli.BuildNewAnswer(buildOutput, buildWithPlugins, cli.OriginalAnswerInfo{
err := cli.BuildNewAnswer(buildDir, buildOutput, buildWithPlugins, cli.OriginalAnswerInfo{
Version: Version,
Revision: Revision,
Time: Time,
})
if err != nil {
fmt.Printf("build failed %v", err)
} else {
fmt.Printf("build new answer successfully %s\n", buildOutput)
fmt.Printf("build failed %v\n", err)
os.Exit(1)
}
fmt.Printf("build new answer successfully %s\n", buildOutput)
},
}
// pluginCmd prints all plugins packed in the binary
pluginCmd = &cobra.Command{
Use: "plugin",
Short: "prints all plugins packed in the binary",
Long: `prints all plugins packed in the binary`,
Short: "Print all plugins packed in the binary",
Long: `Print all plugins packed in the binary`,
Run: func(_ *cobra.Command, _ []string) {
_ = plugin.CallBase(func(base plugin.Base) error {
info := base.Info()
@@ -231,6 +249,89 @@ To run answer, use:
})
},
}
configCmd = &cobra.Command{
Use: "config",
Short: "Set some config to default value",
Long: `Set some config to default value`,
Run: func(_ *cobra.Command, _ []string) {
path.FormatAllPath(dataDirPath)
c, err := conf.ReadConfig(path.GetConfigFilePath())
if err != nil {
fmt.Println("read config failed: ", err.Error())
return
}
field := &cli.ConfigField{}
fmt.Println(configFields)
if len(configFields) > 0 {
switch configFields[0] {
case "allow_password_login":
field.AllowPasswordLogin = true
case "deactivate_plugin":
if len(configFields) > 1 {
field.DeactivatePluginSlugName = configFields[1]
}
default:
fmt.Printf("field %s not support\n", configFields[0])
}
}
err = cli.SetDefaultConfig(c.Data.Database, c.Data.Cache, field)
if err != nil {
fmt.Println("set default config failed: ", err.Error())
} else {
fmt.Println("set default config successfully")
}
},
}
i18nCmd = &cobra.Command{
Use: "i18n",
Short: "Overwrite i18n files",
Long: `Merge i18n files from plugins to original i18n files. It will overwrite the original i18n files`,
Run: func(_ *cobra.Command, _ []string) {
if err := cli.ReplaceI18nFilesLocal(i18nTargetPath); err != nil {
fmt.Printf("replace i18n files failed %v\n", err)
} else {
fmt.Printf("replace i18n files successfully\n")
}
fmt.Printf("try to merge i18n files from %q to %q\n", i18nSourcePath, i18nTargetPath)
if err := cli.MergeI18nFilesLocal(i18nTargetPath, i18nSourcePath); err != nil {
fmt.Printf("merge i18n files failed %v\n", err)
} else {
fmt.Printf("merge i18n files successfully\n")
}
},
}
resetPasswordCmd = &cobra.Command{
Use: "passwd",
Aliases: []string{"password", "reset-password"},
Short: "Reset user password",
Long: "Reset user password by email address.",
Example: ` # Interactive mode (recommended, safest)
answer passwd -C ./answer-data
# Specify email only (will prompt for password securely)
answer passwd -C ./answer-data --email user@example.com
answer passwd -C ./answer-data -e user@example.com
# Specify email and password (NOT recommended, will be recorded in shell history)
answer passwd -C ./answer-data -e user@example.com -p newpassword123`,
Run: func(cmd *cobra.Command, args []string) {
opts := &cli.ResetPasswordOptions{
Email: resetPasswordEmail,
Password: resetPasswordPassword,
}
if err := cli.ResetPassword(context.Background(), dataDirPath, opts); err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
},
}
)
// Execute adds all child commands to the root command and sets flags appropriately.
+20 -10
View File
@@ -25,28 +25,37 @@ import (
"os"
"time"
"github.com/apache/incubator-answer/internal/base/conf"
"github.com/apache/incubator-answer/internal/base/constant"
"github.com/apache/incubator-answer/internal/base/cron"
"github.com/apache/incubator-answer/internal/cli"
"github.com/apache/incubator-answer/internal/schema"
"github.com/apache/answer/internal/base/conf"
"github.com/apache/answer/internal/base/constant"
"github.com/apache/answer/internal/base/cron"
"github.com/apache/answer/internal/base/path"
"github.com/apache/answer/internal/schema"
"github.com/gin-gonic/gin"
"github.com/joho/godotenv"
"github.com/segmentfault/pacman"
"github.com/segmentfault/pacman/contrib/log/zap"
"github.com/segmentfault/pacman/contrib/server/http"
"github.com/segmentfault/pacman/log"
)
// go build -ldflags "-X github.com/apache/incubator-answer/cmd.Version=x.y.z"
func init() {
// Load .env if present, ignore error to keep backward compatibility
_ = godotenv.Load()
}
// go build -ldflags "-X github.com/apache/answer/cmd.Version=x.y.z"
var (
// Name is the name of the project
Name = "answer"
// Version is the version of the project
Version = "0.0.0"
// Revision is the git short commit revision number
Revision = "-"
// If built without a Git repository, this field will be empty.
Revision = ""
// Time is the build time of the project
Time = "-"
Time = ""
// GoVersion is the go version of the project
GoVersion = "1.23"
// log level
logLevel = os.Getenv("LOG_LEVEL")
// log path
@@ -64,17 +73,18 @@ func Main() {
}
func runApp() {
c, err := conf.ReadConfig(cli.GetConfigFilePath())
c, err := conf.ReadConfig(path.GetConfigFilePath())
if err != nil {
panic(err)
}
app, cleanup, err := initApplication(
c.Debug, c.Server, c.Data.Database, c.Data.Cache, c.I18n, c.Swaggerui, c.ServiceConfig, log.GetLogger())
c.Debug, c.Server, c.Data.Database, c.Data.Cache, c.I18n, c.Swaggerui, c.ServiceConfig, c.UI, log.GetLogger())
if err != nil {
panic(err)
}
constant.Version = Version
constant.Revision = Revision
constant.GoVersion = GoVersion
schema.AppStartTime = time.Now()
fmt.Println("answer Version:", constant.Version, " Revision:", constant.Revision)
+14 -14
View File
@@ -1,5 +1,4 @@
//go:build wireinject
// +build wireinject
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -25,19 +24,19 @@
package answercmd
import (
"github.com/apache/incubator-answer/internal/base/conf"
"github.com/apache/incubator-answer/internal/base/cron"
"github.com/apache/incubator-answer/internal/base/data"
"github.com/apache/incubator-answer/internal/base/middleware"
"github.com/apache/incubator-answer/internal/base/server"
"github.com/apache/incubator-answer/internal/base/translator"
"github.com/apache/incubator-answer/internal/controller"
"github.com/apache/incubator-answer/internal/controller/template_render"
"github.com/apache/incubator-answer/internal/controller_admin"
"github.com/apache/incubator-answer/internal/repo"
"github.com/apache/incubator-answer/internal/router"
"github.com/apache/incubator-answer/internal/service"
"github.com/apache/incubator-answer/internal/service/service_config"
"github.com/apache/answer/internal/base/conf"
"github.com/apache/answer/internal/base/cron"
"github.com/apache/answer/internal/base/data"
"github.com/apache/answer/internal/base/middleware"
"github.com/apache/answer/internal/base/server"
"github.com/apache/answer/internal/base/translator"
"github.com/apache/answer/internal/controller"
templaterender "github.com/apache/answer/internal/controller/template_render"
"github.com/apache/answer/internal/controller_admin"
"github.com/apache/answer/internal/repo"
"github.com/apache/answer/internal/router"
"github.com/apache/answer/internal/service"
"github.com/apache/answer/internal/service/service_config"
"github.com/google/wire"
"github.com/segmentfault/pacman"
"github.com/segmentfault/pacman/log"
@@ -52,6 +51,7 @@ func initApplication(
i18nConf *translator.I18n,
swaggerConf *router.SwaggerConfig,
serviceConf *service_config.ServiceConfig,
uiConf *server.UI,
logConf log.Logger) (*pacman.Application, func(), error) {
panic(wire.Build(
server.ProviderSetServer,
+184 -131
View File
@@ -27,82 +27,100 @@
package answercmd
import (
"github.com/apache/incubator-answer/internal/base/conf"
"github.com/apache/incubator-answer/internal/base/cron"
"github.com/apache/incubator-answer/internal/base/data"
"github.com/apache/incubator-answer/internal/base/middleware"
"github.com/apache/incubator-answer/internal/base/server"
"github.com/apache/incubator-answer/internal/base/translator"
"github.com/apache/incubator-answer/internal/controller"
"github.com/apache/incubator-answer/internal/controller/template_render"
"github.com/apache/incubator-answer/internal/controller_admin"
"github.com/apache/incubator-answer/internal/repo/activity"
"github.com/apache/incubator-answer/internal/repo/activity_common"
"github.com/apache/incubator-answer/internal/repo/answer"
"github.com/apache/incubator-answer/internal/repo/auth"
"github.com/apache/incubator-answer/internal/repo/captcha"
"github.com/apache/incubator-answer/internal/repo/collection"
"github.com/apache/incubator-answer/internal/repo/comment"
"github.com/apache/incubator-answer/internal/repo/config"
"github.com/apache/incubator-answer/internal/repo/export"
"github.com/apache/incubator-answer/internal/repo/limit"
"github.com/apache/incubator-answer/internal/repo/meta"
notification2 "github.com/apache/incubator-answer/internal/repo/notification"
"github.com/apache/incubator-answer/internal/repo/plugin_config"
"github.com/apache/incubator-answer/internal/repo/question"
"github.com/apache/incubator-answer/internal/repo/rank"
"github.com/apache/incubator-answer/internal/repo/reason"
"github.com/apache/incubator-answer/internal/repo/report"
"github.com/apache/incubator-answer/internal/repo/revision"
"github.com/apache/incubator-answer/internal/repo/role"
"github.com/apache/incubator-answer/internal/repo/search_common"
"github.com/apache/incubator-answer/internal/repo/site_info"
"github.com/apache/incubator-answer/internal/repo/tag"
"github.com/apache/incubator-answer/internal/repo/tag_common"
"github.com/apache/incubator-answer/internal/repo/unique"
"github.com/apache/incubator-answer/internal/repo/user"
"github.com/apache/incubator-answer/internal/repo/user_external_login"
"github.com/apache/incubator-answer/internal/repo/user_notification_config"
"github.com/apache/incubator-answer/internal/router"
"github.com/apache/incubator-answer/internal/service"
"github.com/apache/incubator-answer/internal/service/action"
activity2 "github.com/apache/incubator-answer/internal/service/activity"
activity_common2 "github.com/apache/incubator-answer/internal/service/activity_common"
"github.com/apache/incubator-answer/internal/service/activity_queue"
"github.com/apache/incubator-answer/internal/service/answer_common"
auth2 "github.com/apache/incubator-answer/internal/service/auth"
"github.com/apache/incubator-answer/internal/service/collection_common"
comment2 "github.com/apache/incubator-answer/internal/service/comment"
"github.com/apache/incubator-answer/internal/service/comment_common"
config2 "github.com/apache/incubator-answer/internal/service/config"
"github.com/apache/incubator-answer/internal/service/dashboard"
export2 "github.com/apache/incubator-answer/internal/service/export"
"github.com/apache/incubator-answer/internal/service/follow"
meta2 "github.com/apache/incubator-answer/internal/service/meta"
"github.com/apache/incubator-answer/internal/service/notice_queue"
"github.com/apache/incubator-answer/internal/service/notification"
"github.com/apache/incubator-answer/internal/service/notification_common"
"github.com/apache/incubator-answer/internal/service/object_info"
"github.com/apache/incubator-answer/internal/service/plugin_common"
"github.com/apache/incubator-answer/internal/service/question_common"
rank2 "github.com/apache/incubator-answer/internal/service/rank"
reason2 "github.com/apache/incubator-answer/internal/service/reason"
report2 "github.com/apache/incubator-answer/internal/service/report"
"github.com/apache/incubator-answer/internal/service/report_admin"
"github.com/apache/incubator-answer/internal/service/report_handle_admin"
"github.com/apache/incubator-answer/internal/service/revision_common"
role2 "github.com/apache/incubator-answer/internal/service/role"
"github.com/apache/incubator-answer/internal/service/search_parser"
"github.com/apache/incubator-answer/internal/service/service_config"
"github.com/apache/incubator-answer/internal/service/siteinfo"
"github.com/apache/incubator-answer/internal/service/siteinfo_common"
tag2 "github.com/apache/incubator-answer/internal/service/tag"
tag_common2 "github.com/apache/incubator-answer/internal/service/tag_common"
"github.com/apache/incubator-answer/internal/service/uploader"
"github.com/apache/incubator-answer/internal/service/user_admin"
"github.com/apache/incubator-answer/internal/service/user_common"
user_external_login2 "github.com/apache/incubator-answer/internal/service/user_external_login"
user_notification_config2 "github.com/apache/incubator-answer/internal/service/user_notification_config"
"github.com/apache/answer/internal/base/conf"
"github.com/apache/answer/internal/base/cron"
"github.com/apache/answer/internal/base/data"
"github.com/apache/answer/internal/base/middleware"
"github.com/apache/answer/internal/base/server"
"github.com/apache/answer/internal/base/translator"
"github.com/apache/answer/internal/controller"
"github.com/apache/answer/internal/controller/template_render"
"github.com/apache/answer/internal/controller_admin"
"github.com/apache/answer/internal/repo/activity"
"github.com/apache/answer/internal/repo/activity_common"
"github.com/apache/answer/internal/repo/ai_conversation"
"github.com/apache/answer/internal/repo/answer"
"github.com/apache/answer/internal/repo/api_key"
"github.com/apache/answer/internal/repo/auth"
"github.com/apache/answer/internal/repo/badge"
"github.com/apache/answer/internal/repo/badge_award"
"github.com/apache/answer/internal/repo/badge_group"
"github.com/apache/answer/internal/repo/captcha"
"github.com/apache/answer/internal/repo/collection"
"github.com/apache/answer/internal/repo/comment"
"github.com/apache/answer/internal/repo/config"
"github.com/apache/answer/internal/repo/export"
"github.com/apache/answer/internal/repo/file_record"
"github.com/apache/answer/internal/repo/limit"
"github.com/apache/answer/internal/repo/meta"
notification2 "github.com/apache/answer/internal/repo/notification"
"github.com/apache/answer/internal/repo/plugin_config"
"github.com/apache/answer/internal/repo/question"
"github.com/apache/answer/internal/repo/rank"
"github.com/apache/answer/internal/repo/reason"
"github.com/apache/answer/internal/repo/report"
"github.com/apache/answer/internal/repo/review"
"github.com/apache/answer/internal/repo/revision"
"github.com/apache/answer/internal/repo/role"
"github.com/apache/answer/internal/repo/search_common"
"github.com/apache/answer/internal/repo/site_info"
"github.com/apache/answer/internal/repo/tag"
"github.com/apache/answer/internal/repo/tag_common"
"github.com/apache/answer/internal/repo/unique"
"github.com/apache/answer/internal/repo/user"
"github.com/apache/answer/internal/repo/user_external_login"
"github.com/apache/answer/internal/repo/user_notification_config"
"github.com/apache/answer/internal/router"
"github.com/apache/answer/internal/service/action"
activity2 "github.com/apache/answer/internal/service/activity"
activity_common2 "github.com/apache/answer/internal/service/activity_common"
"github.com/apache/answer/internal/service/activityqueue"
ai_conversation2 "github.com/apache/answer/internal/service/ai_conversation"
"github.com/apache/answer/internal/service/answer_common"
"github.com/apache/answer/internal/service/apikey"
auth2 "github.com/apache/answer/internal/service/auth"
badge2 "github.com/apache/answer/internal/service/badge"
collection2 "github.com/apache/answer/internal/service/collection"
"github.com/apache/answer/internal/service/collection_common"
comment2 "github.com/apache/answer/internal/service/comment"
"github.com/apache/answer/internal/service/comment_common"
config2 "github.com/apache/answer/internal/service/config"
"github.com/apache/answer/internal/service/content"
"github.com/apache/answer/internal/service/dashboard"
"github.com/apache/answer/internal/service/embedding"
"github.com/apache/answer/internal/service/eventqueue"
export2 "github.com/apache/answer/internal/service/export"
"github.com/apache/answer/internal/service/feature_toggle"
file_record2 "github.com/apache/answer/internal/service/file_record"
"github.com/apache/answer/internal/service/follow"
"github.com/apache/answer/internal/service/importer"
meta2 "github.com/apache/answer/internal/service/meta"
"github.com/apache/answer/internal/service/meta_common"
"github.com/apache/answer/internal/service/noticequeue"
"github.com/apache/answer/internal/service/notification"
"github.com/apache/answer/internal/service/notification_common"
"github.com/apache/answer/internal/service/object_info"
"github.com/apache/answer/internal/service/plugin_common"
"github.com/apache/answer/internal/service/question_common"
rank2 "github.com/apache/answer/internal/service/rank"
reason2 "github.com/apache/answer/internal/service/reason"
report2 "github.com/apache/answer/internal/service/report"
"github.com/apache/answer/internal/service/report_handle"
review2 "github.com/apache/answer/internal/service/review"
"github.com/apache/answer/internal/service/revision_common"
role2 "github.com/apache/answer/internal/service/role"
"github.com/apache/answer/internal/service/search_parser"
"github.com/apache/answer/internal/service/service_config"
"github.com/apache/answer/internal/service/siteinfo"
"github.com/apache/answer/internal/service/siteinfo_common"
tag2 "github.com/apache/answer/internal/service/tag"
tag_common2 "github.com/apache/answer/internal/service/tag_common"
"github.com/apache/answer/internal/service/uploader"
"github.com/apache/answer/internal/service/user_admin"
"github.com/apache/answer/internal/service/user_common"
user_external_login2 "github.com/apache/answer/internal/service/user_external_login"
user_notification_config2 "github.com/apache/answer/internal/service/user_notification_config"
"github.com/apache/answer/internal/service/vector_sync"
"github.com/segmentfault/pacman"
"github.com/segmentfault/pacman/log"
)
@@ -110,7 +128,7 @@ import (
// Injectors from wire.go:
// initApplication init application.
func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database, cacheConf *data.CacheConf, i18nConf *translator.I18n, swaggerConf *router.SwaggerConfig, serviceConf *service_config.ServiceConfig, logConf log.Logger) (*pacman.Application, func(), error) {
func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database, cacheConf *data.CacheConf, i18nConf *translator.I18n, swaggerConf *router.SwaggerConfig, serviceConf *service_config.ServiceConfig, uiConf *server.UI, logConf log.Logger) (*pacman.Application, func(), error) {
staticRouter := router.NewStaticRouter(serviceConf)
i18nTranslator, err := translator.NewTranslator(i18nConf)
if err != nil {
@@ -133,7 +151,8 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
siteInfoCommonService := siteinfo_common.NewSiteInfoCommonService(siteInfoRepo)
langController := controller.NewLangController(i18nTranslator, siteInfoCommonService)
authRepo := auth.NewAuthRepo(dataData)
authService := auth2.NewAuthService(authRepo)
apiKeyRepo := api_key.NewAPIKeyRepo(dataData)
authService := auth2.NewAuthService(authRepo, apiKeyRepo)
userRepo := user.NewUserRepo(dataData)
uniqueIDRepo := unique.NewUniqueIDRepo(dataData)
configRepo := config.NewConfigRepo(dataData)
@@ -149,29 +168,42 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
userRoleRelService := role2.NewUserRoleRelService(userRoleRelRepo, roleService)
userCommon := usercommon.NewUserCommon(userRepo, userRoleRelService, authService, siteInfoCommonService)
userExternalLoginRepo := user_external_login.NewUserExternalLoginRepo(dataData)
userExternalLoginService := user_external_login2.NewUserExternalLoginService(userRepo, userCommon, userExternalLoginRepo, emailService, siteInfoCommonService, userActiveActivityRepo)
userNotificationConfigRepo := user_notification_config.NewUserNotificationConfigRepo(dataData)
userNotificationConfigService := user_notification_config2.NewUserNotificationConfigService(userRepo, userNotificationConfigRepo)
userService := service.NewUserService(userRepo, userActiveActivityRepo, activityRepo, emailService, authService, siteInfoCommonService, userRoleRelService, userCommon, userExternalLoginService, userNotificationConfigRepo, userNotificationConfigService)
captchaRepo := captcha.NewCaptchaRepo(dataData)
captchaService := action.NewCaptchaService(captchaRepo)
userController := controller.NewUserController(authService, userService, captchaService, emailService, siteInfoCommonService, userNotificationConfigService)
commentRepo := comment.NewCommentRepo(dataData, uniqueIDRepo)
commentCommonRepo := comment.NewCommentCommonRepo(dataData, uniqueIDRepo)
answerRepo := answer.NewAnswerRepo(dataData, uniqueIDRepo, userRankRepo, activityRepo)
userExternalLoginService := user_external_login2.NewUserExternalLoginService(userRepo, userCommon, userExternalLoginRepo, emailService, siteInfoCommonService, userActiveActivityRepo, userNotificationConfigService)
questionRepo := question.NewQuestionRepo(dataData, uniqueIDRepo)
answerRepo := answer.NewAnswerRepo(dataData, uniqueIDRepo, userRankRepo, activityRepo)
voteRepo := activity_common.NewVoteRepo(dataData, activityRepo)
followRepo := activity_common.NewFollowRepo(dataData, uniqueIDRepo, activityRepo)
tagCommonRepo := tag_common.NewTagCommonRepo(dataData, uniqueIDRepo)
tagRelRepo := tag.NewTagRelRepo(dataData, uniqueIDRepo)
tagRepo := tag.NewTagRepo(dataData, uniqueIDRepo)
revisionRepo := revision.NewRevisionRepo(dataData, uniqueIDRepo)
revisionService := revision_common.NewRevisionService(revisionRepo, userRepo)
activityQueueService := activity_queue.NewActivityQueueService()
tagCommonService := tag_common2.NewTagCommonService(tagCommonRepo, tagRelRepo, tagRepo, revisionService, siteInfoCommonService, activityQueueService)
service := activityqueue.NewService()
tagCommonService := tag_common2.NewTagCommonService(tagCommonRepo, tagRelRepo, tagRepo, revisionService, siteInfoCommonService, service)
collectionRepo := collection.NewCollectionRepo(dataData, uniqueIDRepo)
collectionCommon := collectioncommon.NewCollectionCommon(collectionRepo)
answerCommon := answercommon.NewAnswerCommon(answerRepo)
metaRepo := meta.NewMetaRepo(dataData)
metaCommonService := metacommon.NewMetaCommonService(metaRepo)
questionCommon := questioncommon.NewQuestionCommon(questionRepo, answerRepo, voteRepo, followRepo, tagCommonService, userCommon, collectionCommon, answerCommon, metaCommonService, configService, service, revisionRepo, siteInfoCommonService, dataData)
eventqueueService := eventqueue.NewService()
fileRecordRepo := file_record.NewFileRecordRepo(dataData)
fileRecordService := file_record2.NewFileRecordService(fileRecordRepo, revisionRepo, serviceConf, siteInfoCommonService, userCommon)
userService := content.NewUserService(userRepo, userActiveActivityRepo, activityRepo, emailService, authService, siteInfoCommonService, userRoleRelService, userCommon, userExternalLoginService, userNotificationConfigRepo, userNotificationConfigService, questionCommon, eventqueueService, fileRecordService)
captchaRepo := captcha.NewCaptchaRepo(dataData)
captchaService := action.NewCaptchaService(captchaRepo)
userController := controller.NewUserController(authService, userService, captchaService, emailService, siteInfoCommonService, userNotificationConfigService)
commentRepo := comment.NewCommentRepo(dataData, uniqueIDRepo)
commentCommonRepo := comment.NewCommentCommonRepo(dataData, uniqueIDRepo)
objService := object_info.NewObjService(answerRepo, questionRepo, commentCommonRepo, tagCommonRepo, tagCommonService)
voteRepo := activity_common.NewVoteRepo(dataData, activityRepo)
notificationQueueService := notice_queue.NewNotificationQueueService()
externalNotificationQueueService := notice_queue.NewNewQuestionNotificationQueueService()
commentService := comment2.NewCommentService(commentRepo, commentCommonRepo, userCommon, objService, voteRepo, emailService, userRepo, notificationQueueService, externalNotificationQueueService, activityQueueService)
noticequeueService := noticequeue.NewService()
externalService := noticequeue.NewExternalService()
reviewRepo := review.NewReviewRepo(dataData)
vector_syncService := vector_sync.NewService(dataData)
reviewService := review2.NewReviewService(reviewRepo, objService, userCommon, userRepo, questionRepo, answerRepo, userRoleRelService, externalService, tagCommonService, questionCommon, noticequeueService, siteInfoCommonService, commentCommonRepo, vector_syncService)
commentService := comment2.NewCommentService(commentRepo, commentCommonRepo, userCommon, objService, voteRepo, emailService, userRepo, noticequeueService, externalService, service, eventqueueService, reviewService, vector_syncService)
rolePowerRelRepo := role.NewRolePowerRelRepo(dataData)
rolePowerRelService := role2.NewRolePowerRelService(rolePowerRelRepo, userRoleRelService)
rankService := rank2.NewRankService(userCommon, userRankRepo, objService, userRoleRelService, rolePowerRelService, configService)
@@ -179,86 +211,107 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
rateLimitMiddleware := middleware.NewRateLimitMiddleware(limitRepo)
commentController := controller.NewCommentController(commentService, rankService, captchaService, rateLimitMiddleware)
reportRepo := report.NewReportRepo(dataData, uniqueIDRepo)
reportService := report2.NewReportService(reportRepo, objService)
tagService := tag2.NewTagService(tagRepo, tagCommonService, revisionService, followRepo, siteInfoCommonService, service)
answerActivityRepo := activity.NewAnswerActivityRepo(dataData, activityRepo, userRankRepo, noticequeueService)
answerActivityService := activity2.NewAnswerActivityService(answerActivityRepo, configService)
externalNotificationService := notification.NewExternalNotificationService(dataData, userNotificationConfigRepo, followRepo, emailService, userRepo, externalService, userExternalLoginRepo, siteInfoCommonService)
questionService := content.NewQuestionService(activityRepo, questionRepo, answerRepo, tagCommonService, tagService, questionCommon, userCommon, userRepo, userRoleRelService, revisionService, metaCommonService, collectionCommon, answerActivityService, emailService, noticequeueService, externalService, service, siteInfoCommonService, externalNotificationService, reviewService, configService, eventqueueService, reviewRepo, vector_syncService)
answerService := content.NewAnswerService(answerRepo, questionRepo, questionCommon, userCommon, collectionCommon, userRepo, revisionService, answerActivityService, answerCommon, voteRepo, emailService, userRoleRelService, noticequeueService, externalService, service, reviewService, eventqueueService, vector_syncService)
reportHandle := report_handle.NewReportHandle(questionService, answerService, commentService)
reportService := report2.NewReportService(reportRepo, objService, userCommon, answerRepo, questionRepo, commentCommonRepo, reportHandle, configService, eventqueueService)
reportController := controller.NewReportController(reportService, rankService, captchaService)
serviceVoteRepo := activity.NewVoteRepo(dataData, activityRepo, userRankRepo, notificationQueueService)
voteService := service.NewVoteService(serviceVoteRepo, configService, questionRepo, answerRepo, commentCommonRepo, objService)
contentVoteRepo := activity.NewVoteRepo(dataData, activityRepo, userRankRepo, noticequeueService)
voteService := content.NewVoteService(contentVoteRepo, configService, questionRepo, answerRepo, commentCommonRepo, objService, eventqueueService)
voteController := controller.NewVoteController(voteService, rankService, captchaService)
followRepo := activity_common.NewFollowRepo(dataData, uniqueIDRepo, activityRepo)
tagService := tag2.NewTagService(tagRepo, tagCommonService, revisionService, followRepo, siteInfoCommonService, activityQueueService)
tagController := controller.NewTagController(tagService, tagCommonService, rankService)
followFollowRepo := activity.NewFollowRepo(dataData, uniqueIDRepo, activityRepo)
followService := follow.NewFollowService(followFollowRepo, followRepo, tagCommonRepo)
followController := controller.NewFollowController(followService)
collectionRepo := collection.NewCollectionRepo(dataData, uniqueIDRepo)
collectionGroupRepo := collection.NewCollectionGroupRepo(dataData)
collectionCommon := collectioncommon.NewCollectionCommon(collectionRepo)
answerCommon := answercommon.NewAnswerCommon(answerRepo)
metaRepo := meta.NewMetaRepo(dataData)
metaService := meta2.NewMetaService(metaRepo)
questionCommon := questioncommon.NewQuestionCommon(questionRepo, answerRepo, voteRepo, followRepo, tagCommonService, userCommon, collectionCommon, answerCommon, metaService, configService, activityQueueService, dataData)
collectionService := service.NewCollectionService(collectionRepo, collectionGroupRepo, questionCommon)
collectionService := collection2.NewCollectionService(collectionRepo, collectionGroupRepo, questionCommon)
collectionController := controller.NewCollectionController(collectionService)
answerActivityRepo := activity.NewAnswerActivityRepo(dataData, activityRepo, userRankRepo, notificationQueueService)
answerActivityService := activity2.NewAnswerActivityService(answerActivityRepo, configService)
externalNotificationService := notification.NewExternalNotificationService(dataData, userNotificationConfigRepo, followRepo, emailService, userRepo, externalNotificationQueueService)
questionService := service.NewQuestionService(questionRepo, tagCommonService, questionCommon, userCommon, userRepo, revisionService, metaService, collectionCommon, answerActivityService, emailService, notificationQueueService, externalNotificationQueueService, activityQueueService, siteInfoCommonService, externalNotificationService)
answerService := service.NewAnswerService(answerRepo, questionRepo, questionCommon, userCommon, collectionCommon, userRepo, revisionService, answerActivityService, answerCommon, voteRepo, emailService, userRoleRelService, notificationQueueService, externalNotificationQueueService, activityQueueService)
questionController := controller.NewQuestionController(questionService, answerService, rankService, siteInfoCommonService, captchaService, rateLimitMiddleware)
answerController := controller.NewAnswerController(answerService, rankService, captchaService, rateLimitMiddleware)
answerController := controller.NewAnswerController(answerService, rankService, captchaService, siteInfoCommonService, rateLimitMiddleware)
searchParser := search_parser.NewSearchParser(tagCommonService, userCommon)
searchRepo := search_common.NewSearchRepo(dataData, uniqueIDRepo, userCommon, tagCommonService)
searchService := service.NewSearchService(searchParser, searchRepo)
searchService := content.NewSearchService(searchParser, searchRepo)
searchController := controller.NewSearchController(searchService, captchaService)
serviceRevisionService := service.NewRevisionService(revisionRepo, userCommon, questionCommon, answerService, objService, questionRepo, answerRepo, tagRepo, tagCommonService, notificationQueueService, activityQueueService)
revisionController := controller.NewRevisionController(serviceRevisionService, rankService)
reviewActivityRepo := activity.NewReviewActivityRepo(dataData, activityRepo, userRankRepo, configService)
contentRevisionService := content.NewRevisionService(revisionRepo, userCommon, questionCommon, answerService, objService, questionRepo, answerRepo, tagRepo, tagCommonService, noticequeueService, service, reportRepo, reviewService, reviewActivityRepo)
revisionController := controller.NewRevisionController(contentRevisionService, rankService)
rankController := controller.NewRankController(rankService)
reportHandle := report_handle_admin.NewReportHandle(questionCommon, commentRepo, configService, notificationQueueService)
reportAdminService := report_admin.NewReportAdminService(reportRepo, userCommon, answerRepo, questionRepo, commentCommonRepo, reportHandle, configService, objService)
controller_adminReportController := controller_admin.NewReportController(reportAdminService)
userAdminRepo := user.NewUserAdminRepo(dataData, authRepo)
userAdminService := user_admin.NewUserAdminService(userAdminRepo, userRoleRelService, authService, userCommon, userActiveActivityRepo, siteInfoCommonService, emailService, questionRepo, answerRepo, commentCommonRepo)
notificationRepo := notification2.NewNotificationRepo(dataData)
pluginUserConfigRepo := plugin_config.NewPluginUserConfigRepo(dataData)
badgeAwardRepo := badge_award.NewBadgeAwardRepo(dataData, uniqueIDRepo)
userAdminService := user_admin.NewUserAdminService(userAdminRepo, userRoleRelService, authService, userCommon, userActiveActivityRepo, siteInfoCommonService, emailService, questionRepo, answerRepo, commentCommonRepo, userExternalLoginRepo, notificationRepo, pluginUserConfigRepo, badgeAwardRepo, apiKeyRepo)
userAdminController := controller_admin.NewUserAdminController(userAdminService)
reasonRepo := reason.NewReasonRepo(configService)
reasonService := reason2.NewReasonService(reasonRepo)
reasonController := controller.NewReasonController(reasonService)
themeController := controller_admin.NewThemeController()
siteInfoService := siteinfo.NewSiteInfoService(siteInfoRepo, siteInfoCommonService, emailService, tagCommonService, configService, questionCommon)
siteInfoService := siteinfo.NewSiteInfoService(siteInfoRepo, siteInfoCommonService, emailService, tagCommonService, configService, questionCommon, fileRecordService)
siteInfoController := controller_admin.NewSiteInfoController(siteInfoService)
controllerSiteInfoController := controller.NewSiteInfoController(siteInfoCommonService)
notificationRepo := notification2.NewNotificationRepo(dataData)
notificationCommon := notificationcommon.NewNotificationCommon(dataData, notificationRepo, userCommon, activityRepo, followRepo, objService, notificationQueueService)
notificationService := notification.NewNotificationService(dataData, notificationRepo, notificationCommon, revisionService, userRepo)
notificationCommon := notificationcommon.NewNotificationCommon(dataData, notificationRepo, userCommon, activityRepo, followRepo, objService, noticequeueService, userExternalLoginRepo, siteInfoCommonService)
badgeRepo := badge.NewBadgeRepo(dataData, uniqueIDRepo)
notificationService := notification.NewNotificationService(dataData, notificationRepo, notificationCommon, revisionService, userRepo, reportRepo, reviewService, badgeRepo)
notificationController := controller.NewNotificationController(notificationService, rankService)
dashboardService := dashboard.NewDashboardService(questionRepo, answerRepo, commentCommonRepo, voteRepo, userRepo, reportRepo, configService, siteInfoCommonService, serviceConf, dataData)
dashboardService := dashboard.NewDashboardService(questionRepo, answerRepo, commentCommonRepo, voteRepo, userRepo, reportRepo, configService, siteInfoCommonService, serviceConf, reviewService, revisionRepo, dataData)
dashboardController := controller.NewDashboardController(dashboardService)
uploaderService := uploader.NewUploaderService(serviceConf, siteInfoCommonService)
uploaderService := uploader.NewUploaderService(serviceConf, siteInfoCommonService, fileRecordService)
uploadController := controller.NewUploadController(uploaderService)
activityActivityRepo := activity.NewActivityRepo(dataData, configService)
activityCommon := activity_common2.NewActivityCommon(activityRepo, activityQueueService)
activityCommon := activity_common2.NewActivityCommon(activityRepo, service)
commentCommonService := comment_common.NewCommentCommonService(commentCommonRepo)
activityService := activity2.NewActivityService(activityActivityRepo, userCommon, activityCommon, tagCommonService, objService, commentCommonService, revisionService, metaService, configService)
activityService := activity2.NewActivityService(activityActivityRepo, userCommon, activityCommon, tagCommonService, objService, commentCommonService, revisionService, metaCommonService, configService)
activityController := controller.NewActivityController(activityService)
roleController := controller_admin.NewRoleController(roleService)
pluginConfigRepo := plugin_config.NewPluginConfigRepo(dataData)
pluginCommonService := plugin_common.NewPluginCommonService(pluginConfigRepo, configService, dataData)
importerService := importer.NewImporterService(questionService, rankService, userCommon)
pluginCommonService := plugin_common.NewPluginCommonService(pluginConfigRepo, pluginUserConfigRepo, configService, dataData, importerService)
pluginController := controller_admin.NewPluginController(pluginCommonService)
permissionController := controller.NewPermissionController(rankService)
answerAPIRouter := router.NewAnswerAPIRouter(langController, userController, commentController, reportController, voteController, tagController, followController, collectionController, questionController, answerController, searchController, revisionController, rankController, controller_adminReportController, userAdminController, reasonController, themeController, siteInfoController, controllerSiteInfoController, notificationController, dashboardController, uploadController, activityController, roleController, pluginController, permissionController)
userPluginController := controller.NewUserPluginController(pluginCommonService)
reviewController := controller.NewReviewController(reviewService, rankService, captchaService)
metaService := meta2.NewMetaService(metaCommonService, userCommon, answerRepo, questionRepo, eventqueueService)
metaController := controller.NewMetaController(metaService)
badgeGroupRepo := badge_group.NewBadgeGroupRepo(dataData, uniqueIDRepo)
eventRuleRepo := badge.NewEventRuleRepo(dataData)
badgeAwardService := badge2.NewBadgeAwardService(badgeAwardRepo, badgeRepo, userCommon, objService, noticequeueService)
badgeEventService := badge2.NewBadgeEventService(dataData, eventqueueService, badgeRepo, eventRuleRepo, badgeAwardService)
badgeService := badge2.NewBadgeService(badgeRepo, badgeGroupRepo, badgeAwardRepo, badgeEventService, siteInfoCommonService)
badgeController := controller.NewBadgeController(badgeService, badgeAwardService)
controller_adminBadgeController := controller_admin.NewBadgeController(badgeService)
apiKeyService := apikey.NewAPIKeyService(apiKeyRepo)
adminAPIKeyController := controller_admin.NewAdminAPIKeyController(apiKeyService)
featureToggleService := feature_toggle.NewFeatureToggleService(siteInfoRepo)
embeddingService := embedding.NewEmbeddingService()
mcpController := controller.NewMCPController(searchService, siteInfoCommonService, tagCommonService, questionCommon, commentRepo, userCommon, answerRepo, featureToggleService, embeddingService)
aiConversationRepo := ai_conversation.NewAIConversationRepo(dataData)
aiConversationService := ai_conversation2.NewAIConversationService(aiConversationRepo, userCommon)
aiController := controller.NewAIController(searchService, siteInfoCommonService, tagCommonService, questionCommon, commentRepo, userCommon, answerRepo, mcpController, aiConversationService, featureToggleService)
aiConversationController := controller.NewAIConversationController(aiConversationService, featureToggleService)
aiConversationAdminController := controller_admin.NewAIConversationAdminController(aiConversationService, featureToggleService)
answerAPIRouter := router.NewAnswerAPIRouter(langController, userController, commentController, reportController, voteController, tagController, followController, collectionController, questionController, answerController, searchController, revisionController, rankController, userAdminController, reasonController, themeController, siteInfoController, controllerSiteInfoController, notificationController, dashboardController, uploadController, activityController, roleController, pluginController, permissionController, userPluginController, reviewController, metaController, badgeController, controller_adminBadgeController, adminAPIKeyController, aiController, aiConversationController, aiConversationAdminController, mcpController)
swaggerRouter := router.NewSwaggerRouter(swaggerConf)
uiRouter := router.NewUIRouter(controllerSiteInfoController, siteInfoCommonService)
authUserMiddleware := middleware.NewAuthUserMiddleware(authService, siteInfoCommonService)
avatarMiddleware := middleware.NewAvatarMiddleware(serviceConf, uploaderService)
shortIDMiddleware := middleware.NewShortIDMiddleware(siteInfoCommonService)
templateRenderController := templaterender.NewTemplateRenderController(questionService, userService, tagService, answerService, commentService, siteInfoCommonService, questionRepo)
templateController := controller.NewTemplateController(templateRenderController, siteInfoCommonService)
templateController := controller.NewTemplateController(templateRenderController, siteInfoCommonService, eventqueueService, userService, questionService)
templateRouter := router.NewTemplateRouter(templateController, templateRenderController, siteInfoController, authUserMiddleware)
connectorController := controller.NewConnectorController(siteInfoCommonService, emailService, userExternalLoginService)
userCenterLoginService := user_external_login2.NewUserCenterLoginService(userRepo, userCommon, userExternalLoginRepo, userActiveActivityRepo, siteInfoCommonService)
userCenterController := controller.NewUserCenterController(userCenterLoginService, siteInfoCommonService)
pluginAPIRouter := router.NewPluginAPIRouter(connectorController, userCenterController)
ginEngine := server.NewHTTPServer(debug, staticRouter, answerAPIRouter, swaggerRouter, uiRouter, authUserMiddleware, avatarMiddleware, shortIDMiddleware, templateRouter, pluginAPIRouter)
scheduledTaskManager := cron.NewScheduledTaskManager(siteInfoCommonService, questionService)
captchaController := controller.NewCaptchaController()
embedController := controller.NewEmbedController()
renderController := controller.NewRenderController()
sidebarController := controller.NewSidebarController()
pluginAPIRouter := router.NewPluginAPIRouter(connectorController, userCenterController, captchaController, embedController, renderController, sidebarController)
ginEngine := server.NewHTTPServer(debug, staticRouter, answerAPIRouter, swaggerRouter, uiRouter, authUserMiddleware, avatarMiddleware, shortIDMiddleware, templateRouter, pluginAPIRouter, uiConf)
scheduledTaskManager := cron.NewScheduledTaskManager(siteInfoCommonService, questionService, fileRecordService, userAdminService, serviceConf)
application := newApplication(serverConf, ginEngine, scheduledTaskManager)
return application, func() {
cleanup2()
+9 -2
View File
@@ -32,6 +32,13 @@ swaggerui:
host: 127.0.0.1
address: ':80'
service_config:
secret_key: "answer"
web_host: "http://127.0.0.1:9080"
upload_path: "/data/uploads"
clean_up_uploads: true
clean_orphan_uploads_period_hours: 48
purge_deleted_files_period_days: 30
ui:
public_url: '/'
api_url: '/'
base_url: ''
api_base_url: ''
-77
View File
@@ -1,77 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
version: "3.9"
# uffizzi integration
x-uffizzi:
ingress:
service: answer
port: 80
services:
answer:
image: "${ANSWER_IMAGE}"
environment:
- AUTO_INSTALL=true
- DB_TYPE=mysql
- DB_USERNAME=root
- DB_PASSWORD=password
- DB_HOST=127.0.0.1:3306
- DB_NAME=answer
- LANGUAGE=en_US
- SITE_NAME=answer-test
- SITE_URL=http://localhost
- CONTACT_EMAIL=test@answer.com
- ADMIN_NAME=admin123
- ADMIN_PASSWORD=admin123
- ADMIN_EMAIL=admin123@admin.com
volumes:
- answer-data:/data
depends_on:
mysql:
condition: service_healthy
links:
- db
deploy:
resources:
limits:
memory: 4000M
mysql:
image: mysql:latest
environment:
- MYSQL_DATABASE=answer
- MYSQL_ROOT_PASSWORD=password
- MYSQL_USER=mysql
- MYSQL_PASSWORD=mysql
healthcheck:
test: [ "CMD", "mysqladmin" ,"ping", "-uroot", "-ppassword" ]
timeout: 20s
retries: 10
command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci', '--skip-character-set-client-handshake']
volumes:
- sql_data:/var/lib/mysql
deploy:
resources:
limits:
memory: 500M
volumes:
answer-data:
sql_data:
+1 -1
View File
@@ -18,7 +18,7 @@
version: "3"
services:
answer:
image: answerdev/answer
image: apache/answer
ports:
- '9080:80'
restart: on-failure
+4081 -445
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

+18
View File
@@ -1,3 +1,21 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<svg width="126" height="44" viewBox="0 0 126 44" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="125.49" height="44" rx="6" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 14.4C8 12.1598 8 11.0397 8.43597 10.184C8.81947 9.43139 9.43139 8.81947 10.184 8.43597C11.0397 8 12.1598 8 14.4 8H29.6C31.8402 8 32.9603 8 33.816 8.43597C34.5686 8.81947 35.1805 9.43139 35.564 10.184C36 11.0397 36 12.1598 36 14.4V24.0892C36 26.9608 36 28.3967 35.5628 29.6643C35.1761 30.7853 34.5451 31.8063 33.7153 32.6535C32.7771 33.6115 31.4928 34.2536 28.9244 35.5378L28 36V32H14.4C12.1598 32 11.0397 32 10.184 31.564C9.43139 31.1805 8.81947 30.5686 8.43597 29.816C8 28.9603 8 27.8402 8 25.6V14.4ZM28 20C28 23.3137 25.3137 26 22 26C18.6954 26 16.0148 23.3285 16.0001 20.0274V20H28Z" fill="#0033FF"/>

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 96 KiB

+39 -28
View File
@@ -214,11 +214,12 @@ Apache 2.0 licenses
The following components are provided under the Apache 2.0 License.
(Apache License, Version 2.0) react-helmet-async (https://github.com/staylor/react-helmet-async) [link](./licenses/LICENSE-staylor-react-helmet-async.txt)
(Apache License, Version 2.0) golang-mock (https://github.com/golang/mock) [link](./licenses/LICENSE-golang-mock.txt)
(Apache License, Version 2.0) gomock (https://github.com/uber-go/mock) [link](./licenses/LICENSE-uber-go-mock.txt)
(Apache License, Version 2.0) google-wire (https://github.com/google/wire) [link](./licenses/LICENSE-google-wire.txt)
(Apache License, Version 2.0) mojocn-base64Captcha (https://github.com/mojocn/base64Captcha) [link](./licenses/LICENSE-mojocn-base64Captcha.txt)
(Apache License, Version 2.0) ory-dockertest (https://github.com/ory/dockertest) [link](./licenses/LICENSE-ory-dockertest.txt)
(Apache License, Version 2.0) react-helmet-async (https://github.com/staylor/react-helmet-async) [link](./licenses/LICENSE-staylor-react-helmet-async.txt)
(Apache License, Version 2.0) sashabaranov-go-openai (https://github.com/sashabaranov/go-openai) [link](./licenses/LICENSE-sashabaranov-go-openai.txt)
(Apache License, Version 2.0) spf13-cobra (https://github.com/spf13/cobra) [link](./licenses/LICENSE-spf13-cobra.txt)
========================================================================
@@ -227,51 +228,62 @@ MIT licenses
The following components are provided under the MIT License. See project link for details.
(MIT License) @codemirror/lang-markdown (https://github.com/codemirror/lang-markdown) [link](./licenses/LICENSE-codemirror-lang-markdown.txt)
(MIT License) @codemirror/language-data (https://github.com/codemirror/language-data) [link](./licenses/LICENSE-codemirror-language-data.txt)
(MIT License) @codemirror/state (https://github.com/codemirror/state) [link](./licenses/LICENSE-codemirror-state.txt)
(MIT License) @codemirror/view (https://github.com/codemirror/view) [link](./licenses/LICENSE-codemirror-view.txt)
(MIT License) anargu-gin-brotli (https://github.com/anargu/gin-brotli) [link](./licenses/LICENSE-anargu-gin-brotli.txt)
(MIT License) asaskevich-govalidator (https://github.com/asaskevich/govalidator) [link](./licenses/LICENSE-asaskevich-govalidator.txt)
(MIT License) axios (https://github.com/axios/axios) [link](./licenses/LICENSE-axios-axios.txt)
(MIT License) bootstrap (https://github.com/twbs/bootstrap) [link](./licenses/LICENSE-twbs-bootstrap.txt)
(MIT License) icons (https://github.com/twbs/icons) [link](./licenses/LICENSE-twbs-icons.txt)
(MIT License) classnames (https://github.com/JedWatson/classnames) [link](./LICENSE-JedWatson-classnames.txt)
(MIT License) codemirror5 (https://github.com/codemirror/codemirror5) [link](./licenses/LICENSE-codemirror-codemirror5.txt)
(MIT License) codemirror (https://github.com/codemirror/basic-setup) [link](./licenses/LICENSE-codemirror-basic-setup.txt)
(MIT License) color (https://github.com/Qix-/color) [link](./licenses/LICENSE-Qix--color.txt)
(MIT License) copy-to-clipboard (https://github.com/sudodoki/copy-to-clipboard) [link](./licenses/LICENSE-sudodoki-copy-to-clipboard.txt)
(MIT License) dayjs (https://github.com/iamkun/dayjs) [link](./licenses/LICENSE-iamkun-dayjs.txt)
(MIT License) disintegration-imaging (https://github.com/disintegration/imaging) [link](./licenses/LICENSE-disintegration-imaging.txt)
(MIT License) front-matter (https://github.com/jxson/front-matter) [link](./licenses/LICENSE-jxson-front-matter.txt)
(MIT License) gin-gonic-gin (https://github.com/gin-gonic/gin) [link](./licenses/LICENSE-gin-gonic-gin.txt)
(MIT License) go-gomail-gomail (https://gopkg.in/gomail.v2) [link](./licenses/LICENSE-go-gomail-gomail.txt)
(MIT License) go-playground-locales (https://github.com/go-playground/locales) [link](./licenses/LICENSE-go-playground-locales.txt)
(MIT License) go-playground-universal-translator (https://github.com/go-playground/universal-translator) [link](./licenses/LICENSE-go-playground-universal-translator.txt)
(MIT License) go-playground-validator (https://github.com/go-playground/validator) [link](./licenses/LICENSE-go-playground-validator.txt)
(MIT License) go-resty-resty (https://github.com/go-resty/resty) [link](./licenses/LICENSE-go-resty-resty.txt)
(MIT License) goccy-go-json (https://github.com/goccy/go-json) [link](./licenses/LICENSE-goccy-go-json.txt)
(MIT License) i18next (https://github.com/i18next/i18next) [link](./licenses/LICENSE-i18next-i18next.txt)
(MIT License) icons (https://github.com/twbs/icons) [link](./licenses/LICENSE-twbs-icons.txt)
(MIT License) jinzhu-copier (https://github.com/jinzhu/copier) [link](./licenses/LICENSE-jinzhu-copier.txt)
(MIT License) jinzhu-now (https://github.com/jinzhu/now) [link](./licenses/LICENSE-jinzhu-now.txt)
(MIT License) joho-godotenv (https://github.com/joho/godotenv) [link](./licenses/LICENSE-joho-godotenv.txt)
(MIT License) jordan-wright-email (https://github.com/jordan-wright/email) [link](./licenses/LICENSE-jordan-wright-email.txt)
(MIT License) js-sha256 (https://github.com/emn178/js-sha256) [link](./licenses/LICENSE-emn178-js-sha256.txt)
(MIT License) lib-pq (https://github.com/lib/pq) [link](./licenses/LICENSE-lib-pq.txt)
(MIT License) lodash (https://github.com/lodash/lodash) [link](./licenses/LICENSE-lodash-lodash.txt)
(MIT License) Machiel-slugify (https://github.com/Machiel/slugify) [link](./licenses/LICENSE-Machiel-slugify.txt)
(MIT License) mark3labs-mcp-go (https://github.com/mark3labs/mcp-go) [link](./licenses/LICENSE-mark3labs-mcp-go.txt)
(MIT License) marked (https://github.com/markedjs/marked) [link](./licenses/LICENSE-markedjs-marked.txt)
(MIT License) Masterminds-semver (https://github.com/Masterminds/semver) [link](./licenses/LICENSE-Masterminds-semver.txt)
(MIT License) mattn-go-sqlite3 (https://github.com/mattn/go-sqlite3) [link](./licenses/LICENSE-mattn-go-sqlite3.txt)
(MIT License) mozillazg-go-pinyin (https://github.com/mozillazg/go-pinyin) [link](./licenses/LICENSE-mozillazg-go-pinyin.txt)
(MIT License) mozillazg-go-unidecode (https://github.com/mozillazg/go-unidecode) [link](./licenses/LICENSE-mozillazg-go-unidecode.txt)
(MIT License) next-share (https://github.com/Bunlong/next-share) [link](./licenses/LIcENSE-Bunlong-next-share.txt)
(MIT License) node-qrcode (https://github.com/soldair/node-qrcode) [link](./licenses/LICENSE-soldair-qrcode.txt)
(MIT License) react (https://github.com/facebook/react) [link](./licenses/LICENSE-facebook-react.txt)
(MIT License) react-bootstrap (https://github.com/react-bootstrap/react-bootstrap) [link](./licenses/LICENSE-react-bootstrap-react-bootstrap.txt)
(MIT License) react-i18next (https://github.com/i18next/react-i18next) [link](./licenses/LICENSE-i18next-react-i18next.txt)
(MIT License) react-router (https://github.com/remix-run/react-router) [link](./licenses/LICENSE-remix-run-react-router.txt)
(MIT License) swr (https://github.com/vercel/swr) [link](./licenses/LICENSE-vercel-swr.txt)
(MIT License) zustand (https://github.com/pmndrs/zustand) [link](./licenses/LICENSE-pmndrs-zustand.txt)
(MIT License) Chain-Zhang-pinyin (https://github.com/Chain-Zhang/pinyin) [link](./licenses/LICENSE-Chain-Zhang-pinyin.txt)
(MIT License) Machiel-slugify (https://github.com/Machiel/slugify) [link](./licenses/LICENSE-Machiel-slugify.txt)
(MIT License) Masterminds-semver (https://github.com/Masterminds/semver) [link](./licenses/LICENSE-Masterminds-semver.txt)
(MIT License) anargu-gin-brotli (https://github.com/anargu/gin-brotli) [link](./licenses/LICENSE-anargu-gin-brotli.txt)
(MIT License) asaskevich-govalidator (https://github.com/asaskevich/govalidator) [link](./licenses/LICENSE-asaskevich-govalidator.txt)
(MIT License) disintegration-imaging (https://github.com/disintegration/imaging) [link](./licenses/LICENSE-disintegration-imaging.txt)
(MIT License) gin-gonic-gin (https://github.com/gin-gonic/gin) [link](./licenses/LICENSE-gin-gonic-gin.txt)
(MIT License) go-playground-locales (https://github.com/go-playground/locales) [link](./licenses/LICENSE-go-playground-locales.txt)
(MIT License) go-playground-universal-translator (https://github.com/go-playground/universal-translator) [link](./licenses/LICENSE-go-playground-universal-translator.txt)
(MIT License) go-playground-validator (https://github.com/go-playground/validator) [link](./licenses/LICENSE-go-playground-validator.txt)
(MIT License) goccy-go-json (https://github.com/goccy/go-json) [link](./licenses/LICENSE-goccy-go-json.txt)
(MIT License) jinzhu-copier (https://github.com/jinzhu/copier) [link](./licenses/LICENSE-jinzhu-copier.txt)
(MIT License) jinzhu-now (https://github.com/jinzhu/now) [link](./licenses/LICENSE-jinzhu-now.txt)
(MIT License) jordan-wright-email (https://github.com/jordan-wright/email) [link](./licenses/LICENSE-jordan-wright-email.txt)
(MIT License) lib-pq (https://github.com/lib/pq) [link](./licenses/LICENSE-lib-pq.txt)
(MIT License) mattn-go-sqlite3 (https://github.com/mattn/go-sqlite3) [link](./licenses/LICENSE-mattn-go-sqlite3.txt)
(MIT License) segmentfault-pacman (https://github.com/segmentfault/pacman) [link](./licenses/LICENSE-segmentfault-pacman.txt)
(MIT License) robfig-cron (https://github.com/robfig/cron) [link](./licenses/LICENSE-robfig-cron.txt)
(MIT License) scottleedavis-go-exif-remove (https://github.com/scottleedavis/go-exif-remove) [link](./licenses/LICENSE-scottleedavis-go-exif-remove.txt)
(MIT License) segmentfault-pacman (https://github.com/segmentfault/pacman) [link](./licenses/LICENSE-segmentfault-pacman.txt)
(MIT License) stretchr-testify (https://github.com/stretchr/testify) [link](./licenses/LICENSE-stretchr-testify.txt)
(MIT License) swaggo-files (https://github.com/swaggo/files) [link](./licenses/LICENSE-swaggo-files.txt)
(MIT License) swaggo-gin-swagger (https://github.com/swaggo/gin-swagger) [link](./licenses/LICENSE-swaggo-gin-swagger.txt)
(MIT License) swaggo-swag (https://github.com/swaggo/swag) [link](./licenses/LICENSE-swaggo-swag.txt)
(MIT License) swr (https://github.com/vercel/swr) [link](./licenses/LICENSE-vercel-swr.txt)
(MIT License) tidwall-gjson (https://github.com/tidwall/gjson) [link](./licenses/LICENSE-tidwall-gjson.txt)
(MIT License) uuidjs-uuid (https://github.com/uuidjs/uuid) [link](./licenses/LICENSE-uuidjs-uuid.txt)
(MIT License) yuin-goldmark (https://github.com/yuin/goldmark) [link](./licenses/LICENSE-yuin-goldmark.txt)
(MIT License) go-gomail-gomail (https://gopkg.in/gomail.v2) [link](./licenses/LICENSE-go-gomail-gomail.txt)
(MIT License) zustand (https://github.com/pmndrs/zustand) [link](./licenses/LICENSE-pmndrs-zustand.txt)
========================================================================
BSD licenses
@@ -280,14 +292,13 @@ BSD licenses
The following components are provided under a BSD license. See project link for details.
(BSD 2-Clause) bwmarrin-snowflake (https://github.com/bwmarrin/snowflake) [link](./licenses/LICENSE-bwmarrin-snowflake.txt)
(BSD 2-Clause) xorm (https://xorm.io/xorm) [link](./licenses/LICENSE-xorm.txt)
(BSD 3-Clause) cznic-sqlite (https://modernc.org/sqlite) [link](./licenses/LICENSE-cznic-sqlite.txt)
(BSD 3-Clause) google-uuid (https://github.com/google/uuid) [link](./licenses/LICENSE-google-uuid.txt)
(BSD 3-Clause) grokify-html-strip-tags-go (https://github.com/grokify/html-strip-tags-go) [link](./licenses/LICENSE-grokify-html-strip-tags-go.txt)
(BSD 3-Clause) microcosm-cc-bluemonday (https://github.com/microcosm-cc/bluemonday) [link](./licenses/LICENSE-microcosm-cc-bluemonday.txt)
(BSD 3-Clause) cznic-sqlite (https://modernc.org/sqlite) [link](./licenses/LICENSE-cznic-sqlite.txt)
(BSD 3-Clause) jsdiff (https://github.com/kpdecker/jsdiff) [link](./licenses/LICENSE-kpdecker-jsdiff.txt)
(BSD 3-Clause) node-md5 (https://github.com/pvorb/node-md5) [link](./licenses/LICENSE-pvorb-node-md5.txt)
(BSD 3-Clause) microcosm-cc-bluemonday (https://github.com/microcosm-cc/bluemonday) [link](./licenses/LICENSE-microcosm-cc-bluemonday.txt)
(BSD 3-Clause) qs (https://github.com/ljharb/qs) [link](./licenses/LICENSE-ljharb-qs.txt)
(BSD 2-Clause) xorm (https://xorm.io/xorm) [link](./licenses/LICENSE-xorm.txt)
========================================================================
ISC licenses
+2 -2
View File
@@ -1,5 +1,5 @@
Apache Answer (incubating)
Copyright 2023 The Apache Software Foundation
Apache Answer
Copyright 2023-2026 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (https://www.apache.org/).
@@ -1,6 +1,6 @@
MIT License
Copyright (C) 2017 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
Copyright (C) 2018-2021 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,21 @@
MIT License
Copyright (C) 2018-2021 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
@@ -0,0 +1,21 @@
MIT License
Copyright (C) 2018-2021 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
@@ -0,0 +1,21 @@
MIT License
Copyright (C) 2018-2021 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
@@ -0,0 +1,21 @@
MIT License
Copyright (C) 2018-2021 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
@@ -0,0 +1,22 @@
Copyright (c) 2014-2024 Chen, Yi-Cyuan
MIT License
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2015-present Jeevanandam M., https://myjeeva.com <jeeva@myjeeva.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
@@ -0,0 +1,22 @@
Copyright (c) 2013 John Barton
MIT License
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,9 @@
# The MIT License (MIT)
Copyright (c) Jason Campbell ("Author")
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2019 Chain Zhang
Copyright (c) 2024 Anthropic, PBC
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2016 mozillazg
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2016 mozillazg
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
@@ -1,27 +0,0 @@
Copyright © 2011-2012, Paul Vorbach.
Copyright © 2009, Jeff Mott.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
* Neither the name Crypto-JS nor the names of its contributors may be used to
endorse or promote products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
@@ -0,0 +1,9 @@
The MIT License (MIT)
Copyright (c) 2010-2020 Robert Kieffer and other contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+4080 -440
View File
File diff suppressed because it is too large Load Diff
+2558 -300
View File
File diff suppressed because it is too large Load Diff
+131 -97
View File
@@ -1,158 +1,192 @@
module github.com/apache/incubator-answer
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
go 1.18
module github.com/apache/answer
go 1.25.0
require (
github.com/Chain-Zhang/pinyin v0.1.3
github.com/Machiel/slugify v1.0.1
github.com/Masterminds/semver/v3 v3.1.1
github.com/Masterminds/semver/v3 v3.3.0
github.com/anargu/gin-brotli v0.0.0-20220116052358-12bf532d5267
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
github.com/bwmarrin/snowflake v0.3.0
github.com/disintegration/imaging v1.6.2
github.com/gin-gonic/gin v1.9.1
github.com/gin-gonic/gin v1.10.0
github.com/go-playground/locales v0.14.1
github.com/go-playground/universal-translator v0.18.1
github.com/go-playground/validator/v10 v10.14.0
github.com/go-sql-driver/mysql v1.6.0
github.com/goccy/go-json v0.10.2
github.com/golang/mock v1.6.0
github.com/google/uuid v1.3.0
github.com/go-playground/validator/v10 v10.22.1
github.com/go-resty/resty/v2 v2.17.1
github.com/go-sql-driver/mysql v1.8.1
github.com/goccy/go-json v0.10.3
github.com/google/uuid v1.6.0
github.com/google/wire v0.5.0
github.com/grokify/html-strip-tags-go v0.0.1
github.com/jinzhu/copier v0.3.5
github.com/grokify/html-strip-tags-go v0.1.0
github.com/jinzhu/copier v0.4.0
github.com/jinzhu/now v1.1.5
github.com/lib/pq v1.10.7
github.com/microcosm-cc/bluemonday v1.0.21
github.com/mojocn/base64Captcha v1.3.5
github.com/ory/dockertest/v3 v3.10.0
github.com/joho/godotenv v1.5.1
github.com/lib/pq v1.10.9
github.com/mark3labs/mcp-go v0.43.2
github.com/microcosm-cc/bluemonday v1.0.27
github.com/mozillazg/go-pinyin v0.20.0
github.com/mozillazg/go-unidecode v0.2.0
github.com/ory/dockertest/v3 v3.11.0
github.com/robfig/cron/v3 v3.0.1
github.com/sashabaranov/go-openai v1.41.2
github.com/scottleedavis/go-exif-remove v0.0.0-20230314195146-7e059d593405
github.com/segmentfault/pacman v1.0.5-0.20230822083413-c0075a2d401f
github.com/segmentfault/pacman/contrib/cache/memory v0.0.0-20230822083413-c0075a2d401f
github.com/segmentfault/pacman/contrib/conf/viper v0.0.0-20221018072427-a15dd1434e05
github.com/segmentfault/pacman/contrib/i18n v0.0.0-20230516093754-b76aef1c1150
github.com/segmentfault/pacman/contrib/log/zap v0.0.0-20221018072427-a15dd1434e05
github.com/segmentfault/pacman/contrib/server/http v0.0.0-20221018072427-a15dd1434e05
github.com/spf13/cobra v1.6.1
github.com/stretchr/testify v1.8.4
github.com/swaggo/files v1.0.0
github.com/swaggo/gin-swagger v1.5.3
github.com/swaggo/swag v1.16.1
github.com/tidwall/gjson v1.14.4
github.com/yuin/goldmark v1.4.13
golang.org/x/crypto v0.13.0
golang.org/x/image v0.1.0
golang.org/x/net v0.15.0
github.com/segmentfault/pacman/contrib/conf/viper v0.0.0-20230822083413-c0075a2d401f
github.com/segmentfault/pacman/contrib/i18n v0.0.0-20230822083413-c0075a2d401f
github.com/segmentfault/pacman/contrib/log/zap v0.0.0-20230822083413-c0075a2d401f
github.com/segmentfault/pacman/contrib/server/http v0.0.0-20230822083413-c0075a2d401f
github.com/spf13/cobra v1.8.1
github.com/stretchr/testify v1.9.0
github.com/swaggo/files v1.0.1
github.com/swaggo/gin-swagger v1.6.0
github.com/swaggo/swag v1.16.3
github.com/tidwall/gjson v1.17.3
github.com/yuin/goldmark v1.7.4
go.uber.org/mock v0.6.0
golang.org/x/crypto v0.53.0
golang.org/x/image v0.20.0
golang.org/x/term v0.44.0
golang.org/x/text v0.39.0
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
gopkg.in/yaml.v3 v3.0.1
modernc.org/sqlite v1.24.0
xorm.io/builder v0.3.12
modernc.org/sqlite v1.33.0
xorm.io/builder v0.3.13
xorm.io/xorm v1.3.2
)
require (
dario.cat/mergo v1.0.1 // indirect
filippo.io/edwards25519 v1.1.0 // indirect
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
github.com/KyleBanks/depth v1.2.1 // indirect
github.com/LinkinStars/go-i18n/v2 v2.2.2 // indirect
github.com/Microsoft/go-winio v0.6.1 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect
github.com/andybalholm/brotli v1.0.4 // indirect
github.com/andybalholm/brotli v1.1.0 // indirect
github.com/aymerick/douceur v0.2.0 // indirect
github.com/bytedance/sonic v1.9.1 // indirect
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
github.com/containerd/continuity v0.4.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/docker/cli v24.0.6+incompatible // indirect
github.com/docker/docker v24.0.6+incompatible // indirect
github.com/docker/go-connections v0.4.0 // indirect
github.com/bahlo/generic-list-go v0.2.0 // indirect
github.com/buger/jsonparser v1.1.1 // indirect
github.com/bytedance/sonic v1.12.2 // indirect
github.com/bytedance/sonic/loader v0.2.0 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/cloudwego/base64x v0.1.4 // indirect
github.com/cloudwego/iasm v0.2.0 // indirect
github.com/containerd/continuity v0.4.3 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/docker/cli v27.2.1+incompatible // indirect
github.com/docker/docker v27.2.1+incompatible // indirect
github.com/docker/go-connections v0.5.0 // indirect
github.com/docker/go-units v0.5.0 // indirect
github.com/dsoprea/go-exif v0.0.0-20190901173045-3ce78807c90f // indirect
github.com/dsoprea/go-jpeg-image-structure v0.0.0-20190422055009-d6f9ba25cf48 // indirect
github.com/dsoprea/go-logging v0.0.0-20190624164917-c4f10aab7696 // indirect
github.com/dsoprea/go-png-image-structure v0.0.0-20190624104353-c9b28dcdc5c8 // indirect
github.com/dsoprea/go-exif v0.0.0-20230826092837-6579e82b732d // indirect
github.com/dsoprea/go-exif/v2 v2.0.0-20230826092837-6579e82b732d // indirect
github.com/dsoprea/go-iptc v0.0.0-20200610044640-bc9ca208b413 // indirect
github.com/dsoprea/go-jpeg-image-structure v0.0.0-20221012074422-4f3f7e934102 // indirect
github.com/dsoprea/go-logging v0.0.0-20200710184922-b02d349568dd // indirect
github.com/dsoprea/go-photoshop-info-format v0.0.0-20200610045659-121dd752914d // indirect
github.com/dsoprea/go-png-image-structure v0.0.0-20210512210324-29b889a6093d // indirect
github.com/dsoprea/go-utility v0.0.0-20221003172846-a3e1774ef349 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.5 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/go-errors/errors v1.0.1 // indirect
github.com/go-openapi/jsonpointer v0.20.0 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/spec v0.20.9 // indirect
github.com/go-openapi/swag v0.22.4 // indirect
github.com/go-errors/errors v1.5.1 // indirect
github.com/go-openapi/jsonpointer v0.21.0 // indirect
github.com/go-openapi/jsonreference v0.21.0 // indirect
github.com/go-openapi/spec v0.21.0 // indirect
github.com/go-openapi/swag v0.23.0 // indirect
github.com/go-viper/mapstructure/v2 v2.1.0 // indirect
github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
github.com/golang/geo v0.0.0-20190812012225-f41920e961ce // indirect
github.com/golang/geo v0.0.0-20230421003525-6adc56603217 // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/subcommands v1.0.1 // indirect
github.com/gorilla/css v1.0.0 // indirect
github.com/gorilla/css v1.0.1 // indirect
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/imdario/mergo v0.3.16 // indirect
github.com/inconshreveable/mousetrap v1.0.1 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/invopop/jsonschema v0.13.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
github.com/leodido/go-urn v1.2.4 // indirect
github.com/klauspost/cpuid/v2 v2.2.8 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible // indirect
github.com/lestrrat-go/strftime v1.0.6 // indirect
github.com/magiconair/properties v1.8.6 // indirect
github.com/lestrrat-go/strftime v1.1.0 // indirect
github.com/magiconair/properties v1.8.7 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/moby/docker-image-spec v1.3.1 // indirect
github.com/moby/term v0.5.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/ncruces/go-strftime v0.1.9 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.0.2 // indirect
github.com/opencontainers/runc v1.1.9 // indirect
github.com/opencontainers/image-spec v1.1.0 // indirect
github.com/opencontainers/runc v1.1.14 // indirect
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pelletier/go-toml/v2 v2.0.8 // indirect
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/sagikazarmark/locafero v0.6.0 // indirect
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/spf13/afero v1.9.2 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/sourcegraph/conc v0.3.0 // indirect
github.com/spf13/afero v1.11.0 // indirect
github.com/spf13/cast v1.7.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.13.0 // indirect
github.com/subosito/gotenv v1.4.1 // indirect
github.com/spf13/viper v1.19.0 // indirect
github.com/subosito/gotenv v1.6.0 // indirect
github.com/syndtr/goleveldb v1.0.0 // indirect
github.com/tidwall/match v1.1.1 // indirect
github.com/tidwall/pretty v1.2.0 // indirect
github.com/tidwall/pretty v1.2.1 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.11 // indirect
github.com/ugorji/go/codec v1.2.12 // indirect
github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/multierr v1.8.0 // indirect
go.uber.org/zap v1.23.0 // indirect
golang.org/x/arch v0.3.0 // indirect
golang.org/x/mod v0.12.0 // indirect
golang.org/x/sys v0.12.0 // indirect
golang.org/x/text v0.13.0 // indirect
golang.org/x/tools v0.13.0 // indirect
google.golang.org/protobuf v1.30.0 // indirect
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
golang.org/x/arch v0.10.0 // indirect
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
golang.org/x/net v0.56.0 // indirect
golang.org/x/sys v0.46.0 // indirect
golang.org/x/tools v0.47.0 // indirect
google.golang.org/protobuf v1.34.2 // indirect
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
lukechampine.com/uint128 v1.2.0 // indirect
modernc.org/cc/v3 v3.40.0 // indirect
modernc.org/ccgo/v3 v3.16.13 // indirect
modernc.org/libc v1.22.5 // indirect
modernc.org/mathutil v1.5.0 // indirect
modernc.org/memory v1.5.0 // indirect
modernc.org/opt v0.1.3 // indirect
modernc.org/strutil v1.1.3 // indirect
modernc.org/token v1.0.1 // indirect
sigs.k8s.io/yaml v1.3.0 // indirect
modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a // indirect
modernc.org/mathutil v1.6.0 // indirect
modernc.org/memory v1.8.0 // indirect
modernc.org/strutil v1.2.0 // indirect
modernc.org/token v1.1.0 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
)
replace lukechampine.com/uint128 v1.1.1 => github.com/aichy126/uint128 v1.1.1
replace modernc.org/cc/v3 v3.40.0 => gitlab.com/cznic/cc/v3 v3.40.0
replace github.com/lyft/protoc-gen-validate v0.0.13 => github.com/LinkinStars/protoc-gen-validate v0.0.0-20251030022322-3fddbbe5a0e6
+268 -579
View File
File diff suppressed because it is too large Load Diff
+18 -17
View File
@@ -360,7 +360,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -433,7 +433,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -471,7 +471,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -619,7 +619,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -677,13 +678,13 @@ ui:
display_name:
label: Display Name
msg: Display name cannot be empty.
msg_range: Display name up to 30 characters.
msg_range: Display name must be 2-30 characters in length.
username:
label: Username
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters.
character: 'Must use the character set "a-z", "0-9", " - . _"'
msg_range: Username must be 2-30 characters in length.
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -715,7 +716,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -811,7 +814,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -824,7 +827,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -855,7 +858,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -899,7 +902,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -964,7 +967,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1017,7 +1020,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1133,7 +1136,7 @@ ui:
fields:
display_name:
label: Display Name
msg: Display Name must be at 4-30 characters in length.
msg: Display name must be 2-30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1379,5 +1382,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+18 -17
View File
@@ -360,7 +360,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -433,7 +433,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -471,7 +471,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -619,7 +619,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -677,13 +678,13 @@ ui:
display_name:
label: Display Name
msg: Display name cannot be empty.
msg_range: Display name up to 30 characters.
msg_range: Display name must be 2-30 characters in length.
username:
label: Username
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters.
character: 'Must use the character set "a-z", "0-9", " - . _"'
msg_range: Username must be 2-30 characters in length.
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -715,7 +716,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -811,7 +814,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -824,7 +827,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -855,7 +858,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -899,7 +902,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -964,7 +967,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1017,7 +1020,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1133,7 +1136,7 @@ ui:
fields:
display_name:
label: Display Name
msg: Display Name must be at 4-30 characters in length.
msg: Display name must be 2-30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1379,5 +1382,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+16 -15
View File
@@ -355,7 +355,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -428,7 +428,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -466,7 +466,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -612,7 +612,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -676,7 +677,7 @@ ui:
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters
character: 'Must use the character set "a-z", "0-9", " - . _"'
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -708,7 +709,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -803,7 +806,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -816,7 +819,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -847,7 +850,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -891,7 +894,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -956,7 +959,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1004,7 +1007,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1120,7 +1123,7 @@ ui:
fields:
display_name:
label: Display Name
msg: display_name must be at 4 - 30 characters in length.
msg: display_name must be at 2 - 30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1366,5 +1369,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+16 -15
View File
@@ -355,7 +355,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -428,7 +428,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -466,7 +466,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -612,7 +612,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -676,7 +677,7 @@ ui:
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters
character: 'Must use the character set "a-z", "0-9", " - . _"'
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -708,7 +709,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -803,7 +806,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -816,7 +819,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -847,7 +850,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -891,7 +894,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -956,7 +959,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1004,7 +1007,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1120,7 +1123,7 @@ ui:
fields:
display_name:
label: Display Name
msg: display_name must be at 4 - 30 characters in length.
msg: display_name must be at 2 - 30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1366,5 +1369,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+16 -15
View File
@@ -355,7 +355,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -428,7 +428,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -466,7 +466,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -612,7 +612,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -676,7 +677,7 @@ ui:
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters
character: 'Must use the character set "a-z", "0-9", " - . _"'
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -708,7 +709,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -803,7 +806,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -816,7 +819,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -847,7 +850,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -891,7 +894,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -956,7 +959,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1004,7 +1007,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1120,7 +1123,7 @@ ui:
fields:
display_name:
label: Display Name
msg: display_name must be at 4 - 30 characters in length.
msg: display_name must be at 2 - 30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1366,5 +1369,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+16 -15
View File
@@ -355,7 +355,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -428,7 +428,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -466,7 +466,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -612,7 +612,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -676,7 +677,7 @@ ui:
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters
character: 'Must use the character set "a-z", "0-9", " - . _"'
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -708,7 +709,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -803,7 +806,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -816,7 +819,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -847,7 +850,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -891,7 +894,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -956,7 +959,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1004,7 +1007,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1120,7 +1123,7 @@ ui:
fields:
display_name:
label: Display Name
msg: display_name must be at 4 - 30 characters in length.
msg: display_name must be at 2 - 30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1366,5 +1369,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+16 -15
View File
@@ -355,7 +355,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -428,7 +428,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -466,7 +466,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -612,7 +612,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -676,7 +677,7 @@ ui:
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters
character: 'Must use the character set "a-z", "0-9", " - . _"'
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -708,7 +709,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -803,7 +806,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -816,7 +819,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -847,7 +850,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -891,7 +894,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -956,7 +959,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1004,7 +1007,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1120,7 +1123,7 @@ ui:
fields:
display_name:
label: Display Name
msg: display_name must be at 4 - 30 characters in length.
msg: display_name must be at 2 - 30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1366,5 +1369,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+18 -17
View File
@@ -360,7 +360,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -433,7 +433,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -471,7 +471,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -619,7 +619,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -677,13 +678,13 @@ ui:
display_name:
label: Display Name
msg: Display name cannot be empty.
msg_range: Display name up to 30 characters.
msg_range: Display name must be 2-30 characters in length.
username:
label: Username
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters.
character: 'Must use the character set "a-z", "0-9", " - . _"'
msg_range: Username must be 2-30 characters in length.
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -715,7 +716,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -811,7 +814,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -824,7 +827,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -855,7 +858,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -899,7 +902,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -964,7 +967,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1017,7 +1020,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1133,7 +1136,7 @@ ui:
fields:
display_name:
label: Display Name
msg: Display Name must be at 4-30 characters in length.
msg: Display name must be 2-30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1379,5 +1382,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+924 -249
View File
File diff suppressed because it is too large Load Diff
+757 -82
View File
File diff suppressed because it is too large Load Diff
+1810 -1135
View File
File diff suppressed because it is too large Load Diff
+896 -221
View File
File diff suppressed because it is too large Load Diff
+18 -17
View File
@@ -360,7 +360,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -433,7 +433,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -471,7 +471,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -619,7 +619,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -677,13 +678,13 @@ ui:
display_name:
label: Display Name
msg: Display name cannot be empty.
msg_range: Display name up to 30 characters.
msg_range: Display name must be 2-30 characters in length.
username:
label: Username
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters.
character: 'Must use the character set "a-z", "0-9", " - . _"'
msg_range: Username must be 2-30 characters in length.
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -715,7 +716,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -811,7 +814,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -824,7 +827,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -855,7 +858,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -899,7 +902,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -964,7 +967,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1017,7 +1020,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1133,7 +1136,7 @@ ui:
fields:
display_name:
label: Display Name
msg: Display Name must be at 4-30 characters in length.
msg: Display name must be 2-30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1379,5 +1382,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+762 -93
View File
File diff suppressed because it is too large Load Diff
+1102 -452
View File
File diff suppressed because it is too large Load Diff
+825 -150
View File
File diff suppressed because it is too large Load Diff
+18 -17
View File
@@ -360,7 +360,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -433,7 +433,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -471,7 +471,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -619,7 +619,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -677,13 +678,13 @@ ui:
display_name:
label: Display Name
msg: Display name cannot be empty.
msg_range: Display name up to 30 characters.
msg_range: Display name must be 2-30 characters in length.
username:
label: Username
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters.
character: 'Must use the character set "a-z", "0-9", " - . _"'
msg_range: Username must be 2-30 characters in length.
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -715,7 +716,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -811,7 +814,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -824,7 +827,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -855,7 +858,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -899,7 +902,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -964,7 +967,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1017,7 +1020,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1133,7 +1136,7 @@ ui:
fields:
display_name:
label: Display Name
msg: Display Name must be at 4-30 characters in length.
msg: Display name must be 2-30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1379,5 +1382,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+1017 -342
View File
File diff suppressed because it is too large Load Diff
+18 -17
View File
@@ -360,7 +360,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -433,7 +433,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -471,7 +471,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -619,7 +619,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -677,13 +678,13 @@ ui:
display_name:
label: Display Name
msg: Display name cannot be empty.
msg_range: Display name up to 30 characters.
msg_range: Display name must be 2-30 characters in length.
username:
label: Username
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters.
character: 'Must use the character set "a-z", "0-9", " - . _"'
msg_range: Username must be 2-30 characters in length.
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -715,7 +716,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -811,7 +814,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -824,7 +827,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -855,7 +858,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -899,7 +902,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -964,7 +967,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1017,7 +1020,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1133,7 +1136,7 @@ ui:
fields:
display_name:
label: Display Name
msg: Display Name must be at 4-30 characters in length.
msg: Display name must be 2-30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1379,5 +1382,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+2450
View File
File diff suppressed because it is too large Load Diff
+18 -17
View File
@@ -360,7 +360,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -433,7 +433,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -471,7 +471,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -619,7 +619,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -677,13 +678,13 @@ ui:
display_name:
label: Display Name
msg: Display name cannot be empty.
msg_range: Display name up to 30 characters.
msg_range: Display name must be 2-30 characters in length.
username:
label: Username
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters.
character: 'Must use the character set "a-z", "0-9", " - . _"'
msg_range: Username must be 2-30 characters in length.
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -715,7 +716,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -811,7 +814,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -824,7 +827,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -855,7 +858,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -899,7 +902,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -964,7 +967,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1017,7 +1020,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1133,7 +1136,7 @@ ui:
fields:
display_name:
label: Display Name
msg: Display Name must be at 4-30 characters in length.
msg: Display name must be 2-30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1379,5 +1382,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+16 -15
View File
@@ -355,7 +355,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -428,7 +428,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -466,7 +466,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -612,7 +612,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -676,7 +677,7 @@ ui:
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters
character: 'Must use the character set "a-z", "0-9", " - . _"'
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -708,7 +709,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -803,7 +806,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -816,7 +819,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -847,7 +850,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -891,7 +894,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -956,7 +959,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1004,7 +1007,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1120,7 +1123,7 @@ ui:
fields:
display_name:
label: Display Name
msg: display_name must be at 4 - 30 characters in length.
msg: display_name must be at 2 - 30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1366,5 +1369,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+15 -12
View File
@@ -22,40 +22,43 @@ language_options:
progress: 100
- label: "Español"
value: "es_ES"
progress: 64
progress: 96
- label: "Português(BR)"
value: "pt_BR"
progress: 12
progress: 96
- label: "Português"
value: "pt_PT"
progress: 12
progress: 96
- label: "Deutsch"
value: "de_DE"
progress: 69
progress: 96
- label: "Français"
value: "fr_FR"
progress: 70
progress: 96
- label: "日本語"
value: "ja_JP"
progress: 12
progress: 96
- label: "Italiano"
value: "it_IT"
progress: 9
progress: 96
- label: "Русский"
value: "ru_RU"
progress: 20
progress: 80
- label: "简体中文"
value: "zh_CN"
progress: 100
- label: "繁體中文"
value: "zh_TW"
progress: 64
progress: 47
- label: "한국어"
value: "ko_KR"
progress: 0
progress: 73
- label: "Tiếng Việt"
value: "vi_VN"
progress: 0
progress: 96
- label: "Slovak"
value: "sk_SK"
progress: 62
progress: 45
- label: "فارسی"
value: "fa_IR"
progress: 69
+784 -109
View File
File diff suppressed because it is too large Load Diff
+1751 -1076
View File
File diff suppressed because it is too large Load Diff
+1585 -909
View File
File diff suppressed because it is too large Load Diff
+1842 -1167
View File
File diff suppressed because it is too large Load Diff
+2450
View File
File diff suppressed because it is too large Load Diff
+18 -17
View File
@@ -360,7 +360,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -433,7 +433,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -471,7 +471,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -619,7 +619,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -677,13 +678,13 @@ ui:
display_name:
label: Display Name
msg: Display name cannot be empty.
msg_range: Display name up to 30 characters.
msg_range: Display name must be 2-30 characters in length.
username:
label: Username
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters.
character: 'Must use the character set "a-z", "0-9", " - . _"'
msg_range: Username must be 2-30 characters in length.
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -715,7 +716,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -811,7 +814,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -824,7 +827,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -855,7 +858,7 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
score: Score
unanswered: Unanswered
modified: modified
@@ -899,7 +902,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -964,7 +967,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1017,7 +1020,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1133,7 +1136,7 @@ ui:
fields:
display_name:
label: Display Name
msg: Display Name must be at 4-30 characters in length.
msg: Display name must be 2-30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1379,5 +1382,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+19 -17
View File
@@ -360,7 +360,7 @@ ui:
msg:
empty: File cannot be empty.
only_image: Only image files are allowed.
max_size: File size cannot exceed 4MB.
max_size: File size cannot exceed 4 MB.
desc:
label: Description (optional)
tab_url: Image URL
@@ -433,7 +433,7 @@ ui:
range: Display name up to 35 characters.
slug_name:
label: URL Slug
desc: 'Must use the character set "a-z", "0-9", "+ # - ."'
desc: URL slug up to 35 characters.
msg:
empty: URL slug cannot be empty.
range: URL slug up to 35 characters.
@@ -471,7 +471,7 @@ ui:
label: Display Name
slug_name:
label: URL Slug
info: 'Must use the character set "a-z", "0-9", "+ # - ."'
info: URL slug up to 35 characters.
desc:
label: Description
edit_summary:
@@ -619,7 +619,8 @@ ui:
label: Name
msg:
empty: Name cannot be empty.
range: Name up to 30 characters.
range: Name must be between 2 to 30 characters in length.
character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"'
email:
label: Email
msg:
@@ -677,13 +678,13 @@ ui:
display_name:
label: Display Name
msg: Display name cannot be empty.
msg_range: Display name up to 30 characters.
msg_range: Display name must be 2-30 characters in length.
username:
label: Username
caption: People can mention you as "@username".
msg: Username cannot be empty.
msg_range: Username up to 30 characters.
character: 'Must use the character set "a-z", "0-9", " - . _"'
msg_range: Username must be 2-30 characters in length.
character: 'Must use the character set "a-z", "0-9", "- . _"'
avatar:
label: Profile Image
gravatar: Gravatar
@@ -715,7 +716,9 @@ ui:
We've sent an email to that address. Please follow the confirmation instructions.
email:
label: Email
msg: Email cannot be empty.
new_email:
label: New email
msg: New email cannot be empty.
password_title: Password
current_pass:
label: Current Password
@@ -811,7 +814,7 @@ ui:
more: More
tips:
title: Advanced Search Tips
tag: "<1>[tag]</1> search withing a tag"
tag: "<1>[tag]</1> search with a tag"
user: "<1>user:username</1> search by author"
answer: "<1>answers:0</1> unanswered questions"
score: "<1>score:3</1> posts with a 3+ score"
@@ -824,7 +827,7 @@ ui:
via: Share post via...
copied: Copied
facebook: Share to Facebook
twitter: Share to Twitter
twitter: Share to X
cannot_vote_for_self: You can't vote for your own post
modal_confirm:
title: Error...
@@ -855,7 +858,8 @@ ui:
answers: Answers
newest: Newest
active: Active
frequent: Frequent
hot: Hot
recommend: Recommend
score: Score
unanswered: Unanswered
modified: modified
@@ -899,7 +903,7 @@ ui:
x_answers: answers
x_questions: questions
install:
title: Answer
title: Installation
next: Next
done: Done
config_yaml_error: Can't create the config.yaml file.
@@ -964,7 +968,7 @@ ui:
msg:
empty: Email cannot be empty.
incorrect: Email incorrect format.
ready_title: Your Answer is Ready!
ready_title: Your site is ready
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
@@ -1017,7 +1021,7 @@ ui:
title: Admin
dashboard:
title: Dashboard
welcome: Welcome to Answer Admin!
welcome: Welcome to Admin!
site_statistics: Site Statistics
questions: "Questions:"
answers: "Answers:"
@@ -1133,7 +1137,7 @@ ui:
fields:
display_name:
label: Display Name
msg: Display Name must be at 4-30 characters in length.
msg: Display name must be 2-30 characters in length.
email:
label: Email
msg: Email is not valid.
@@ -1379,5 +1383,3 @@ ui:
staffs: Our community staff
reputation: reputation
votes: votes
+936 -261
View File
File diff suppressed because it is too large Load Diff
+131 -133
View File
@@ -288,7 +288,7 @@ ui:
change_email: Modificar e-mail
install: Instalação do Resposta
upgrade: Atualização do Resposta
maintenance: Manutençã do Website
maintenance: Manutenção do Website
users: Usuários
notifications:
title: Notificações
@@ -327,7 +327,7 @@ ui:
empty: Código não pode ser vazio.
language:
label: Idioma (opcional)
placeholder: Tetecção automática
placeholder: Detecção automática
btn_cancel: Cancelar
btn_confirm: Adicionar
formula:
@@ -351,7 +351,7 @@ ui:
image:
text: Imagem
add_image: Adicionar imagem
tab_image: Enviar image,
tab_image: Enviar imagem
form_image:
fields:
file:
@@ -360,7 +360,7 @@ ui:
msg:
empty: Arquivo não pode ser vazio.
only_image: Somente um arquivo de imagem é permitido.
max_size: O tamanho do arquivo não pode exceder 4MB.
max_size: O tamanho do arquivo não pode exceder 4 MB.
desc:
label: Descrição (opcional)
tab_url: URL da imagem
@@ -380,7 +380,7 @@ ui:
outdent:
text: Não identado
italic:
text: Emphase
text: Ênfase
link:
text: Superlink (Hyperlink)
add_link: Adicionar superlink (hyperlink)
@@ -537,7 +537,7 @@ ui:
title: Adicionar Pergunta
edit_title: Editar Pergunta
default_reason: Editar pergunta
similar_questions: Similar perguntas
similar_questions: Perguntas similares
form:
fields:
revision:
@@ -564,10 +564,10 @@ ui:
label: Resumo da edição
placeholder: >-
Explique resumidamente suas alterações (ortografia corrigida, gramática corrigida, formatação aprimorada)
btn_post_question: Publicação a sua pergunta
btn_post_question: Publicar a sua pergunta
btn_save_edits: Salvar edições
answer_question: Responda a sua própria pergunta
post_question&answer: Publicação a sua pergunta e resposta
post_question&answer: Publicar a sua pergunta e resposta
tag_selector:
add_btn: Adicionar marcador
create_btn: Criar novo marcador
@@ -589,7 +589,7 @@ ui:
placeholder: Procurar
footer:
build_on: >-
Built on <1> Answer </1>- the open-source software that powers Q&A communities.<br />Made with love © {{cc}}.
Desenvolvido com base no <1> Answer </1> — o software de código aberto que alimenta comunidades de perguntas e respostas.<br />Feito com amor © {{cc}}.
upload_img:
name: Mudar
loading: carregando...
@@ -604,13 +604,13 @@ ui:
info: "Se não chegar, verifique sua pasta de spam."
another: >-
Enviamos outro e-mail de ativação para você em <bold>{{mail}}</bold>. Pode levar alguns minutos para chegar; certifique-se de verificar sua pasta de spam.
btn_name: Resend activation email
btn_name: Reenviar e-mail de ativação
change_btn_name: Mudar email
msg:
empty: Não pode ser vazio.
login:
page_title: Bem vindo ao {{site_name}}
login_to_continue: Entre para continue
login_to_continue: Entre para continuar
info_sign: Não possui uma conta? <1>Cadastrar-se</1>
info_login: Já possui uma conta? <1>Entre</1>
agreements: Ao se registrar, você concorda com as <1>políticas de privacidades</1> e os <3>termos de serviços</3>.
@@ -683,7 +683,7 @@ ui:
caption: As pessoas poderão mensionar você com "@usuário".
msg: Nome de usuário não pode ser vazio.
msg_range: Nome de usuário até 30 caracteres.
character: 'Deve usar o conjunto de caracteres "a-z", "0-9", " - . _"'
character: 'Deve usar o conjunto de caracteres "a-z", "0-9", "- . _"'
avatar:
label: Perfil Imagem
gravatar: Gravatar
@@ -776,9 +776,9 @@ ui:
delete:
title: Excluir esta postagem
question: >-
Nós não recomendamos <strong>excluindo perguntas com respostas</strong> porque isso priva os futuros leitores desse conhecimento.</p><p>Repeated deletion of answered questions can result in a sua account being blocked from asking. Você tem certeza que deseja deletar?
Nós não recomendamos <strong> excluir perguntas com respostas</strong> porque isso priva os futuros leitores desse conhecimento.</p><p>A exclusão repetida de perguntas respondidas pode resultar no bloqueio de perguntas de sua conta. Você tem certeza que deseja excluir?
answer_accepted: >-
<p>Nós não recomendamos <strong>deleting accepted answer</strong> porque isso priva os futuros leitores desse conhecimento. </p> Repeated deletion of accepted answers can result in a sua account being blocked from answering. Você tem certeza que deseja deletar?
<p>Não recomendamos <strong>excluir resposta aceita</strong> porque isso priva os futuros leitores desse conhecimento. </p> A exclusão repetida de respostas aceitas pode resultar no bloqueio de respostas de uma conta sua. Você tem certeza que deseja excluir?
other: Você tem certeza que deseja deletar?
tip_question_deleted: Esta postagem foi deletada
tip_answer_deleted: Esta resposta foi deletada
@@ -824,7 +824,7 @@ ui:
via: Compartilhar postagem via...
copied: Copiado
facebook: Compartilhar no Facebook
twitter: Compartilhar no Twitter
twitter: Compartilhar no X
cannot_vote_for_self: Você não pode votar na sua própria postagem
modal_confirm:
title: Erro...
@@ -834,7 +834,7 @@ ui:
link: Continuar para a página inicial.
invalid: >-
Desculpe, este link de confirmação não é mais válido. Talvez a sua já está ativa.
confirm_new_email: Your email has been updated.
confirm_new_email: Seu e-mail foi atualizado.
confirm_new_email_invalid: >-
Desculpe, este link de confirmação não é mais válido. Talvez o seu e-mail já tenha sido alterado.
unsubscribe:
@@ -846,7 +846,7 @@ ui:
following_tags: Seguindo Marcadores
edit: Editar
save: Salvar
follow_tag_tip: Seguir tags to curate a sua lista de perguntas.
follow_tag_tip: Siga as tags para selecionar sua lista de perguntas.
hot_questions: Perguntas quentes
all_questions: Todas Perguntas
x_questions: "{{ count }} perguntas"
@@ -855,7 +855,7 @@ ui:
answers: Respostas
newest: Mais recente
active: Ativo
frequent: Frequente
hot: Hot
score: Pontuação
unanswered: Não Respondido
modified: modificado
@@ -878,7 +878,7 @@ ui:
score: Pontuação
edit_profile: Editar Perfil
visited_x_days: "Visitado {{ count }} dias"
viewed: Viewed
viewed: Visualizado
joined: Ingressou
last_login: Visto
about_me: Sobre mim
@@ -899,14 +899,14 @@ ui:
x_answers: respostas
x_questions: perguntas
install:
title: Resposta
next: Proximo
title: Instalação
next: Próximo
done: Completo
config_yaml_error: Não é possível criar o arquivo config.yaml.
lang:
label: Por favor Escolha um Idioma
db_type:
label: Database Engine
label: Mecanismo de banco de dados
db_username:
label: Nome de usuário
placeholder: root
@@ -916,68 +916,68 @@ ui:
placeholder: root
msg: Senha não pode ser vazio.
db_host:
label: Database Host
label: Host do banco de dados
placeholder: "db:3306"
msg: Database Host não pode ser vazio.
msg: Host de banco de dados não pode ficar vazio.
db_name:
label: Database Nome
label: Nome do banco de dados
placeholder: answer
msg: Database Nome não pode ser vazio.
msg: O nome do banco de dados não pode ficar vazio.
db_file:
label: Database File
label: Arquivo de banco de dados
placeholder: /data/answer.db
msg: Database File não pode ser vazio.
msg: O arquivo de banco de dados não pode ficar vazio.
config_yaml:
title: Create config.yaml
label: The config.yaml file created.
title: Criar config.yaml
label: O arquivo config.yaml foi criado.
desc: >-
You can create the <1>config.yaml</1> file manually in the <1>/var/wwww/xxx/</1> directory and paste the following text into it.
info: After you've done that, click "Next" button.
site_information: Site Information
Você pode criar o arquivo <1>config.yaml</1> manualmente no diretório <1>/var/www/xxx/</1> e colar o seguinte texto nele.
info: Depois de fazer isso, clique no botão "Avançar".
site_information: Informações do site
admin_account: Administrador Conta
site_name:
label: Site Nome
msg: Site Nome não pode ser vazio.
site_url:
label: Site URL
text: The address of a sua site.
text: O endereço do seu site.
msg:
empty: Site URL não pode ser vazio.
incorrect: Site URL incorrect format.
incorrect: Formato incorreto da URL do site.
contact_email:
label: E-mail par contato
text: Email address of key contact responsible for this site.
label: E-mail para contato
text: Endereço de e-mail do contato principal responsável por este site.
msg:
empty: E-mail par contato não pode ser vazio.
incorrect: E-mail par contato incorrect format.
empty: E-mail para contato não pode ser vazio.
incorrect: E-mail para contato em formato incorreto.
admin_name:
label: Nome
msg: Nome não pode ser vazio.
admin_password:
label: Senha
text: >-
You will need this password to log in. Por favor store it in a secure location.
msg: Senha não pode ser vazio.
Você precisará dessa senha para efetuar login. Por favor, guarde-a em um local seguro.
msg: Senha não pode ser vazia.
admin_email:
label: Email
text: You will need this email to log in.
text: Você precisará deste e-mail para fazer login.
msg:
empty: Email não pode ser vazio.
incorrect: Email incorrect format.
ready_title: Your Resposta is Ready!
incorrect: Formato de e-mail incorreto.
ready_title: Sua resposta está pronta!
ready_desc: >-
If you ever feel like changing more settings, visit <1>admin section</1>; find it in the site menu.
good_luck: "Have fun, and good luck!"
warn_title: Warning
Se você quiser alterar mais configurações, visite a <1>seção de administração</1>; encontre-a no menu do site.
good_luck: "Divirta-se e boa sorte!"
warn_title: Aviso
warn_desc: >-
The file <1>config.yaml</1> already exists. If you need to reset any of the configuration items in this file, please delete it first.
install_now: You may try <1>installing now</1>.
installed: Already installed
O arquivo <1>config.yaml</1> existe. Se precisar redefinir algum item de configuração neste arquivo, exclua-o primeiro.
install_now: Você pode tentar <1>instalar agora</1>.
installed: instalado
installed_desc: >-
You appear to have already installed. To reinstall please clear a sua old database tables first.
db_failed: Database connection failed
Parece que você já instalou. Para reinstalar, limpe primeiro as tabelas antigas do seu banco de dados.
db_failed: Falha na conexão do banco de dados
db_failed_desc: >-
This either means that the database information in a sua <1>config.yaml</1> file is incorrect or that contact with the database server could not be established. This could mean a sua host's database server is down.
Isso significa que as informações do banco de dados em um arquivo <1>config.yaml</1> do SUA estão incorretas ou que o contato com o servidor do banco de dados não pôde ser estabelecido. Isso pode significar que o servidor de banco de dados de um host SUA está inativo.
counts:
views: visualizações
Votos: votos
@@ -987,7 +987,7 @@ ui:
desc: "Infelizmente, esta postagem não existe mais."
back_home: Voltar para a página inicial
page_50X:
desc: O servidor encontrou um erro e não pôde concluir uma solicitação sua.
desc: O servidor encontrou um erro e não pôde concluir sua solicitação.
back_home: Voltar para a página inicial
page_maintenance:
desc: "Estamos em manutenção, voltaremos em breve."
@@ -1017,7 +1017,7 @@ ui:
title: Administrador
dashboard:
title: Painel
welcome: Bem vindo ao Answer Administrador!
welcome: Bem vindo ao Administrador!
site_statistics: Estatísticas do Site
questions: "Perguntas:"
answers: "Respostas:"
@@ -1037,7 +1037,7 @@ ui:
answer_links: Links das Respostas
documents: Documentos
feedback: Opinião
support: Supporte
support: Suporte
review: Revisar
config: Configurações
update_to: Atualizar ao
@@ -1133,7 +1133,7 @@ ui:
fields:
display_name:
label: Nome de exibição
msg: Nome de exibição deve ser 4-30 caracteres em comprimento.
msg: Nome de exibição deve ser 2-30 caracteres em comprimento.
email:
label: Email
msg: Email não é válido.
@@ -1233,7 +1233,7 @@ ui:
smtp_port:
label: SMTP Port
msg: SMTP port must be number 1 ~ 65535.
text: The port to a sua mail server.
text: A porta para seu servidor de e-mail.
smtp_username:
label: SMTP Nome de usuário
msg: SMTP username não pode ser vazio.
@@ -1241,9 +1241,9 @@ ui:
label: SMTP Senha
msg: SMTP password não pode ser vazio.
test_email_recipient:
label: Test Email Recipients
text: Provide email address that will receive test sends.
msg: Test email recipients is invalid
label: Destinatários de e-mail de teste
text: Forneça o endereço de e-mail que receberá os envios de testes.
msg: Os destinatários do e-mail de teste são inválidos
smtp_authentication:
label: Enable authentication
title: SMTP Authentication
@@ -1255,129 +1255,127 @@ ui:
logo:
label: Logo (opcional)
msg: Logo não pode ser vazio.
text: The logo image at the top left of a sua site. Use a wide rectangular image with a height of 56 and an aspect ratio greater than 3:1. If left blank, the site title text will be shown.
text: A imagem do logotipo no canto superior esquerdo do seu site. Use uma imagem retangular larga com altura de 56 e proporção maior que 3:1. Se deixada em branco, o texto do título do site será exibido.
mobile_logo:
label: Mobile Logo (opcional)
text: The logo used on mobile version of a sua site. Use a wide rectangular image with a height of 56. If left blank, the image from the "logo" setting will be used.
text: O logotipo usado na versão mobile do seu site. Use uma imagem retangular larga com altura de 56. Se deixado em branco, a imagem da configuração "logotipo" será usada.
square_icon:
label: Square Icon (opcional)
msg: Square icon não pode ser vazio.
text: Imagem used as the base for metadata icons. Should ideally be larger than 512x512.
text: Imagem usada como base para ícones de metadados. Idealmente, deve ser maior que 512x512.
favicon:
label: Favicon (opcional)
text: A favicon for a sua site. To work correctly over a CDN it must be a png. Will be resized to 32x32. If left blank, "square icon" will be used.
text: Um favicon para o seu site. Para funcionar corretamente em uma CDN, ele deve ser um png. Será redimensionado para 32x32. Se deixado em branco, o "ícone quadrado" será usado.
legal:
page_title: Legal
terms_of_service:
label: Terms of Service
text: "You can add terms of service content here. If you already have a document hosted elsewhere, provide the full URL here."
label: Termos de Serviço
text: "Você pode adicionar conteúdo dos termos de serviço aqui. Se você já possui um documento hospedado em outro lugar, informe o URL completo aqui."
privacy_policy:
label: Privacy Policy
text: "You can add privacy policy content here. If you already have a document hosted elsewhere, provide the full URL here."
label: Política de Privacidade
text: "Você pode adicionar o conteúdo da política de privacidade aqui. Se você já possui um documento hospedado em outro lugar, informe o URL completo aqui."
write:
page_title: Write
page_title: Escrever
recommend_tags:
label: Recommend Marcadores
text: "Por favor input tag slug above, one tag per line."
label: Recomendar Marcadores
text: "Por favor, insira o slug da tag acima, uma tag por linha."
required_tag:
title: Required Tag
label: Set recommend tag as requirido
text: "Every new question must have ao menos one recommend tag."
title: Tag necessária
label: Definir tag recomendada como necessária
text: "Cada nova pergunta deve ter pelo menos uma tag de recomendação."
reserved_tags:
label: Reserved Marcadores
text: "Reserved tags can only be added to a post by moderator."
label: Marcadores Reservados
text: "Tags reservadas só podem ser adicionadas a uma postagem pelo moderador."
seo:
page_title: SEO
permalink:
label: Permalink
text: Custom URL structures can improve the usability, and forward-compatibility of a sua links.
text: Estruturas de URL personalizadas podem melhorar a usabilidade e a compatibilidade futura de seus links.
robots:
label: robots.txt
text: This will permanently override any related site settings.
text: Isso substituirá permanentemente todas as configurações relacionadas do site.
Temas:
page_title: Temas
Temas:
label: Temas
text: Select an existing Tema.
text: Selecione um tema existente.
navbar_style:
label: Navbar Style
text: Select an existing Tema.
label: Estilo da barra de navegação
text: Selecione um tema existente.
primary_color:
label: Primary Color
text: Modify the colors used by a sua Temas
label: Cor primária
text: Modifique as cores usadas por seus Temas
css_and_html:
page_title: CSS and HTML
page_title: CSS e HTML
custom_css:
label: Custom CSS
text: This will insert as <link>
text: Isto será inserido como <link>
head:
label: Head
text: This will insert before </head>
text: Isto será inserido antes de </head>
header:
label: Header
text: This will insert after <body>
text: Isto será inserido após <body>
footer:
label: Footer
text: This will insert before </html>.
text: Isso será inserido antes de </html>.
login:
page_title: Login
membership:
title: Membership
label: Allow new registrations
text: Turn off to prevent anyone from creating a new account.
title: Associação
label: Permitir novos registros
text: Desative para impedir que alguém crie uma nova conta.
private:
title: Private
title: Privado
label: Login requirido
text: Only logged in users can access this community.
text: Somente usuários logados podem acessar esta comunidade.
form:
empty: não pode ser vazio
invalid: is invalid
invalid: é inválido
btn_submit: Salvar
not_found_props: "Required property {{ key }} not found."
not_found_props: "Propriedade necessária {{ key }} não encontrada."
page_review:
review: Revisar
proposed: proposed
question_edit: Pergunta edit
answer_edit: Resposta edit
tag_edit: Tag edit
edit_summary: Editar summary
edit_question: Editar question
edit_answer: Editar answer
proposed: proposta
question_edit: Editar Pergunta
answer_edit: Editar Resposta
tag_edit: Editar Tag
edit_summary: Editar resumo
edit_question: Editar pergunta
edit_answer: Editar resposta
edit_tag: Editar tag
empty: No review tasks left.
empty: Não há mais tarefas de revisão.
timeline:
undeleted: undeleted
deleted: deleted
downvote: downvote
upvote: upvote
accept: accept
cancelled: cancelled
commented: commented
undeleted: não excluído
deleted: apagado
downvote: voto negativo
upvote: voto positivo
accept: aceitar
cancelled: cancelado
commented: comentado
rollback: rollback
edited: edited
answered: answered
asked: asked
closed: closed
reopened: reopened
created: created
title: "Histórico for"
tag_title: "Timeline for"
show_Votos: "Show Votos"
edited: editado
answered: respondido
asked: perguntado
closed: fechado
reopened: reaberto
created: criado
title: "Histórico para"
tag_title: "Linha do tempo para"
show_Votos: "Mostrar votos"
n_or_a: N/A
title_for_question: "Timeline for"
title_for_answer: "Timeline for answer to {{ title }} by {{ author }}"
title_for_tag: "Timeline for tag"
title_for_question: "Linha do tempo para"
title_for_answer: "Linha do tempo para resposta a {{ title }} por {{ author }}"
title_for_tag: "Linha do tempo para tag"
datetime: Datetime
type: Type
by: By
comment: Comment
no_data: "We couldn't find anything."
type: Tipo
by: Por
comment: Comentário
no_data: "Não conseguimos encontrar nada."
users:
title: Usuários
users_with_the_most_reputation: Usuários with the highest reputation scores
users_with_the_most_vote: Usuários who voted the most
staffs: Our community staff
reputation: reputation
users_with_the_most_reputation: Usuários com as maiores pontuações de reputação
users_with_the_most_vote: Usuários que mais votaram
staffs: Nossa equipe comunitária
reputation: reputação
Votos: Votos
+794 -119
View File
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More