forgejo/modules
zeripath bb0ff77e46
Share HTML template renderers and create a watcher framework (#20218)
The recovery, API, Web and package frameworks all create their own HTML
Renderers. This increases the memory requirements of Gitea
unnecessarily with duplicate templates being kept in memory.

Further the reloading framework in dev mode for these involves locking
and recompiling all of the templates on each load. This will potentially
hide concurrency issues and it is inefficient.

This PR stores the templates renderer in the context and stores this
context in the NormalRoutes, it then creates a fsnotify.Watcher
framework to watch files.

The watching framework is then extended to the mailer templates which
were previously not being reloaded in dev.

Then the locales are simplified to a similar structure.

Fix #20210 
Fix #20211
Fix #20217

Signed-off-by: Andrew Thornton <art27@cantab.net>
2022-08-28 10:43:25 +01:00
..
activitypub Refactor AssertExistsAndLoadBean to use generics (#20797) 2022-08-16 10:22:25 +08:00
analyze Simplify IsVendor (#19626) 2022-05-06 10:12:30 +01:00
appstate Use a struct as test options (#19393) 2022-04-14 21:58:21 +08:00
auth Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
avatar Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
base Add more linters to improve code readability (#19989) 2022-06-20 12:02:49 +02:00
cache Update go-chi/cache to utilize Ping() (#19719) 2022-05-15 20:43:27 +02:00
charset Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
container Move reaction to models/issues/ (#19264) 2022-03-31 17:20:39 +08:00
context Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
convert Move some files into models' sub packages (#20262) 2022-08-25 10:31:57 +08:00
csv Allow render HTML with css/js external links (#19017) 2022-06-16 11:33:23 +08:00
doctor Move some files into models' sub packages (#20262) 2022-08-25 10:31:57 +08:00
emoji format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
eventsource Move some files into models' sub packages (#20262) 2022-08-25 10:31:57 +08:00
generate Use base32 for 2FA scratch token (#18384) 2022-01-26 12:10:10 +08:00
git Set no-tags in git fetch on compare (#20893) 2022-08-23 14:12:43 -04:00
gitgraph Add more linters to improve code readability (#19989) 2022-06-20 12:02:49 +02:00
graceful Support Proxy protocol (#12527) 2022-08-21 19:20:43 +01:00
hcaptcha hCaptcha Support (#12594) 2020-10-02 23:37:53 -04:00
highlight Rework file highlight rendering and fix yaml copy-paste (#19967) 2022-07-30 21:17:43 +02:00
hostmatcher Add proxy host into allow list (#20798) 2022-08-16 20:15:54 -04:00
httpcache Add Cache-Control header to html and api responses, add no-transform (#20432) 2022-07-23 14:38:03 +08:00
httplib refactor httplib (#18338) 2022-01-19 19:31:39 -05:00
indexer Fix dump-repo git init, fix wrong error type for NullDownloader (#20182) 2022-07-01 07:48:25 +08:00
json Refactor legacy unknwon/com package, improve golangci lint (#19284) 2022-04-01 16:47:50 +08:00
lfs Removed some vestigial code related to Range bounds checks (#20312) 2022-07-28 11:04:36 +08:00
log Disable doctor logging on panic (#20847) 2022-08-18 21:27:27 -04:00
markup Should also support upper-case README files (#20581) 2022-08-01 20:15:40 +08:00
mcaptcha Add support mCaptcha as captcha provider (#20458) 2022-08-10 15:20:10 +02:00
metrics Move some files into models' sub packages (#20262) 2022-08-25 10:31:57 +08:00
migration Fix dump-repo git init, fix wrong error type for NullDownloader (#20182) 2022-07-01 07:48:25 +08:00
mirror Implement sync push mirror on commit (#19411) 2022-07-08 20:45:12 +01:00
nosql Fix various typos (#20338) 2022-07-12 23:32:37 +02:00
notification Move some files into models' sub packages (#20262) 2022-08-25 10:31:57 +08:00
options Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
packages Add migrate repo archiver and packages storage support on command line (#20757) 2022-08-16 12:05:15 +08:00
paginator Remove legacy unmaintained packages, refactor to support change default locale (#19308) 2022-04-03 17:46:48 +08:00
password Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
pprof refactor: move from io/ioutil to io and os package (#17109) 2021-09-22 13:38:34 +08:00
private Support Proxy protocol (#12527) 2022-08-21 19:20:43 +01:00
process Add more linters to improve code readability (#19989) 2022-06-20 12:02:49 +02:00
proxy Return nil proxy function if proxy not enabled (#16742) 2021-08-19 16:41:20 -04:00
proxyprotocol Support Proxy protocol (#12527) 2022-08-21 19:20:43 +01:00
public Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
queue Add more linters to improve code readability (#19989) 2022-06-20 12:02:49 +02:00
recaptcha refactor: move from io/ioutil to io and os package (#17109) 2021-09-22 13:38:34 +08:00
references Add more linters to improve code readability (#19989) 2022-06-20 12:02:49 +02:00
regexplru Custom regexp external issues (#17624) 2022-06-10 13:39:53 +08:00
repository Move some files into models' sub packages (#20262) 2022-08-25 10:31:57 +08:00
secret Use CryptoRandomBytes instead of CryptoRandomString (#18439) 2022-02-04 18:03:15 +01:00
session format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
setting Only show relevant repositories on explore page (#19361) 2022-08-25 20:38:41 +02:00
sitemap Add sitemap support (#18407) 2022-06-25 19:06:01 +02:00
ssh Support Proxy protocol (#12527) 2022-08-21 19:20:43 +01:00
storage Add more linters to improve code readability (#19989) 2022-06-20 12:02:49 +02:00
structs Add new API endpoints for push mirrors management (#19841) 2022-07-30 18:45:59 +02:00
svg Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
sync Use queue instead of memory queue in webhook send service (#19390) 2022-04-25 20:03:01 +02:00
templates Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
test Refactor AssertExistsAndLoadBean to use generics (#20797) 2022-08-16 10:22:25 +08:00
timeutil Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
translation Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
typesniffer Rework raw file http header logic (#20484) 2022-07-29 17:26:55 +02:00
updatechecker format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
upload Simplify parameter types (#18006) 2021-12-20 04:41:31 +00:00
uri Prevent NPE if gitea uploader fails to open url (#18080) 2021-12-23 16:27:33 +00:00
user Add gitea-vet (#10948) 2020-04-05 07:20:50 +01:00
util Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
validation use IsLoopback (#19477) 2022-04-25 13:55:12 +08:00
watcher Share HTML template renderers and create a watcher framework (#20218) 2022-08-28 10:43:25 +01:00
web refactor webhook *NewPost (#20729) 2022-08-11 17:48:23 +02:00