Files
remark42/backend/_example/memory_store
Dmitry VerkhoturovandGitHub ba7c3aed94 refactor: modernise Go code with go fix and manual improvements (#2027)
Apply go fix ./... analysers (Go 1.26) across backend and examples:
- interface{} → any (type alias, no behaviour change)
- for i := 0; i < N; i++ → for range N / for i := range N
- slices.Contains / slices.ContainsFunc replacing manual loops
- strings.SplitSeq replacing strings.Split in range (avoids allocation)
- strings.CutPrefix replacing HasPrefix+TrimPrefix
- min() replacing manual if/else
- fmt.Appendf replacing []byte(fmt.Sprintf(...))
- strings.Builder replacing string += concatenation
- wg.Go(func(){}) replacing wg.Add(1)/go/wg.Done() pattern
- removed redundant ii := i loop variable copies (unnecessary since Go 1.22)

omitempty on struct-typed JSON fields: go fix removed omitempty from
struct-typed fields (time.Time, PostInfo, UserDetailEntry) because
encoding/json's omitempty never applied to struct types — it was always
a no-op. Kept as bare tags (no omitzero replacement) to preserve the
existing serialisation behaviour.
2026-03-25 16:42:37 -05:00
..
2022-07-19 17:13:02 -05:00

sample store implementation

memory_store illustrates how to make a custom storage plugin for remark42.

In order to run remark42 with memory_store copy provided compose-dev-memstore.yml to the root directory and run:

  1. docker compose -f compose-dev-memstore.yml build
  2. docker compose -f compose-dev-memstore.yml up

As usual, demo site will run on http://127.0.0.1:8080/web/

note: in order to work with the latest (current) version of master go.mod uses replacement directive for the backend package. In real-life usage replace github.com/umputun/remark42/backend => ../../ should not be used.