File tree 1 file changed +20
-1
lines changed
1 file changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -3,6 +3,8 @@ import { renderToString } from '@magic/hyperapp'
3
3
import deep from '@magic/deep'
4
4
import log from '@magic/log'
5
5
6
+ import { replaceSlashSlash } from '../../lib/replaceSlashSlash.mjs'
7
+
6
8
export default ( { app, root } ) => {
7
9
app . state . root = root
8
10
@@ -13,7 +15,24 @@ export default ({ app, root }) => {
13
15
14
16
const view = app . View ( page , app . hashes )
15
17
16
- const rendered = renderToString ( view ( state ) )
18
+ let rendered = renderToString ( view ( state ) )
19
+
20
+ // dirty url cleanup. makes all local urls in html files point to WEB_ROOT
21
+ const tags = [ 'href' , 'src' ]
22
+ tags . map ( tag => {
23
+ const urlsTangle = rendered . split ( `${ tag } ="` )
24
+
25
+ const urls = urlsTangle . map ( url => {
26
+ url = url . split ( '"' ) [ 0 ]
27
+ if ( url . startsWith ( '/' ) && ! url . startsWith ( root ) ) {
28
+ return [ url , replaceSlashSlash ( `${ root } /${ url } ` ) ]
29
+ }
30
+ } ) . filter ( a => a )
31
+
32
+ urls . forEach ( ( [ oldUrl , newUrl ] ) => {
33
+ rendered = rendered . replace ( new RegExp ( `${ tag } ="${ oldUrl } "` , 'gim' ) , `${ tag } ="${ newUrl } "` )
34
+ } )
35
+ } )
17
36
18
37
return {
19
38
...page ,
You can’t perform that action at this time.
0 commit comments