diff --git a/html_template/pkg.go b/html_template/pkg.go index 9abfc12..a478789 100644 --- a/html_template/pkg.go +++ b/html_template/pkg.go @@ -11,6 +11,7 @@ import ( "net/http" "os" "regexp" + "sync" ) type Engine struct { @@ -22,6 +23,10 @@ type Engine struct { DevMode bool } +var ( + templateLock sync.Mutex +) + func NewEngine(viewFS, staticFS fs.FS, devmode bool) (e Engine, err error) { // {{{ e.parsedTemplates = make(map[string]*template.Template) e.viewFS = viewFS @@ -62,7 +67,9 @@ func (e *Engine) getComponentFilenames() (files []string, err error) { // {{{ } // }}} func (e *Engine) ReloadTemplates() { // {{{ + templateLock.Lock() e.parsedTemplates = make(map[string]*template.Template) + templateLock.Unlock() } // }}} func (e *Engine) StaticResource(w http.ResponseWriter, r *http.Request) { // {{{ @@ -119,7 +126,9 @@ func (e *Engine) getPage(layout, page string) (tmpl *template.Template, err erro return } + templateLock.Lock() e.parsedTemplates[page] = tmpl + templateLock.Unlock() return } // }}} func (e *Engine) Render(p Page, w http.ResponseWriter, r *http.Request) (err error) { // {{{ diff --git a/static/images/icon_table.svg b/static/images/icon_table.svg new file mode 100644 index 0000000..9379dfc --- /dev/null +++ b/static/images/icon_table.svg @@ -0,0 +1,49 @@ + + + + + + + + table + + + diff --git a/static/js/page_node.mjs b/static/js/page_node.mjs index 86c29c0..753aa46 100644 --- a/static/js/page_node.mjs +++ b/static/js/page_node.mjs @@ -1,4 +1,4 @@ -import { ROOT_NODE, uuidv7, StoreFile } from 'node_store' +import { ROOT_NODE, uuidv7 } from 'node_store' import { CustomHTMLElement } from './lib/custom_html_element.mjs' import { MarkedPosition } from './marked_position.mjs' @@ -9,7 +9,7 @@ export class N2PageNodeUI extends CustomHTMLElement {