link to the correct facet if specified in mmm-embed
s-ol
1 year, 4 months ago
4 | 4 | for k,v in pairs extra |
5 | 5 | attr[k] = v |
6 | 6 | |
7 | tourl = (path, _view) -> | |
7 | tourl = (path, facet) -> | |
8 | 8 | path ..= '/' |
9 | 9 | if STATIC and STATIC.root |
10 | 10 | path = STATIC.root .. path |
11 | if _view | |
12 | path ..= _view | |
11 | if facet | |
12 | path ..= facet | |
13 | 13 | path |
14 | 14 | |
15 | 15 | (elements) -> |
42 | 42 | BROWSER\navigate path |
43 | 43 | a name, opts |
44 | 44 | |
45 | link_to = (fileder, name, origin, attr, _view) -> | |
45 | link_to = (fileder, name, origin, attr, facet) -> | |
46 | 46 | fileder = find_fileder fileder, origin |
47 | 47 | |
48 | 48 | name or= fileder\get 'title: mmm/dom' |
52 | 52 | a name, merge attr, :href, target: '_blank' |
53 | 53 | else |
54 | 54 | a name, merge attr, { |
55 | href: tourl fileder.path, _view | |
55 | href: tourl fileder.path, facet | |
56 | 56 | onclick: if MODE == 'CLIENT' then (e) => |
57 | 57 | e\preventDefault! |
58 | 58 | BROWSER\navigate fileder.path |
64 | 64 | path = table.concat path, '/' if 'table' == type BROWSER.path |
65 | 65 | a text, href: tourl path, view |
66 | 66 | |
67 | embed = (fileder, name='', origin, opts={}) -> | |
67 | embed = (fileder, facet='', origin, opts={}) -> | |
68 | 68 | if opts.raw |
69 | 69 | warn "deprecated option 'raw' set on embed" |
70 | 70 | assert not opts.wrap, "raw and wrap cannot both be set on embed" |
73 | 73 | |
74 | 74 | fileder = find_fileder fileder, origin |
75 | 75 | |
76 | -- node = fileder\gett name, 'mmm/dom' | |
77 | ok, node = pcall fileder.gett, fileder, name, 'mmm/dom' | |
76 | -- node = fileder\gett facet, 'mmm/dom' | |
77 | ok, node = pcall fileder.gett, fileder, facet, 'mmm/dom' | |
78 | 78 | |
79 | 79 | if not ok |
80 | warn "couldn't embed #{fileder} #{name}: #{node}" | |
80 | warn "couldn't embed #{fileder} #{facet}: #{node}" | |
81 | 81 | return span { |
82 | 82 | class: 'embed' |
83 | 83 | style: |
84 | 84 | background: 'var(--gray-fail)' |
85 | 85 | padding: '1em' |
86 | 86 | |
87 | "couldn't embed #{fileder} #{name}" | |
87 | "couldn't embed #{fileder} #{facet}" | |
88 | 88 | (pre node) |
89 | 89 | } |
90 | 90 | |
108 | 108 | if opts.nolink |
109 | 109 | node |
110 | 110 | else |
111 | link_to fileder, node, nil, opts.attr | |
111 | link_to fileder, node, nil, opts.attr, facet | |
112 | 112 | |
113 | 113 | when 'sidenote' |
114 | 114 | key = tostring refs\get! |