Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F5974953
domdiff.test.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
domdiff.test.js
View Options
#!/usr/bin/env node
'use strict'
;
require
(
'../core-upgrade.js'
);
var
DOMDiff
=
require
(
'../lib/html2wt/DOMDiff.js'
).
DOMDiff
;
var
ScriptUtils
=
require
(
'../tools/ScriptUtils.js'
).
ScriptUtils
;
var
ContentUtils
=
require
(
'../lib/utils/ContentUtils.js'
).
ContentUtils
;
var
ParsoidLogger
=
require
(
'../lib/logger/ParsoidLogger.js'
).
ParsoidLogger
;
var
MockEnv
=
require
(
'../tests/MockEnv.js'
).
MockEnv
;
var
Promise
=
require
(
'../lib/utils/promise.js'
);
var
yargs
=
require
(
'yargs'
);
var
fs
=
require
(
'pn/fs'
);
var
opts
=
yargs
.
usage
(
"Usage: $0 [options] [old-html-file new-html-file]\n\nProvide either inline html OR 2 files"
)
.
options
({
help
:
{
description
:
'Show this message'
,
'boolean'
:
true
,
'default'
:
false
,
},
oldhtml
:
{
description
:
'Old html'
,
'boolean'
:
false
,
'default'
:
null
,
},
newhtml
:
{
description
:
'New html'
,
'boolean'
:
false
,
'default'
:
null
,
},
quiet
:
{
description
:
'Emit only the marked-up HTML'
,
'boolean'
:
true
,
'default'
:
false
,
},
debug
:
{
description
:
'Debug mode'
,
'boolean'
:
true
,
'default'
:
false
,
},
});
Promise
.
async
(
function
*
()
{
var
argv
=
opts
.
argv
;
var
oldhtml
=
argv
.
oldhtml
;
var
newhtml
=
argv
.
newhtml
;
if
(
!
oldhtml
&&
argv
.
_
[
0
])
{
oldhtml
=
yield
fs
.
readFile
(
argv
.
_
[
0
],
'utf8'
);
newhtml
=
yield
fs
.
readFile
(
argv
.
_
[
1
],
'utf8'
);
}
if
(
ScriptUtils
.
booleanOption
(
argv
.
help
)
||
!
oldhtml
||
!
newhtml
)
{
opts
.
showHelp
();
return
;
}
const
dummyEnv
=
new
MockEnv
({
debug
:
ScriptUtils
.
booleanOption
(
argv
.
debug
),
},
null
);
// FIXME: Move to `MockEnv`
if
(
argv
.
debug
)
{
var
logger
=
new
ParsoidLogger
(
dummyEnv
);
logger
.
registerBackend
(
/^(trace|debug)(\/|$)/
,
logger
.
getDefaultTracerBackend
());
dummyEnv
.
log
=
(...
args
)
=>
logger
.
log
(...
args
);
}
else
{
dummyEnv
.
log
=
function
()
{};
}
var
oldDOM
=
ContentUtils
.
ppToDOM
(
dummyEnv
,
oldhtml
,
{
markNew
:
true
});
var
newDOM
=
ContentUtils
.
ppToDOM
(
dummyEnv
,
newhtml
,
{
markNew
:
true
});
ContentUtils
.
stripSectionTagsAndFallbackIds
(
oldDOM
);
ContentUtils
.
stripSectionTagsAndFallbackIds
(
newDOM
);
(
new
DOMDiff
(
dummyEnv
)).
diff
(
oldDOM
,
newDOM
);
ContentUtils
.
dumpDOM
(
newDOM
,
'DIFF-marked DOM'
,
{
quiet
:
!!
ScriptUtils
.
booleanOption
(
argv
.
quiet
),
storeDiffMark
:
true
,
env
:
dummyEnv
,
});
process
.
exit
(
0
);
})().
done
();
File Metadata
Details
Attached
Mime Type
application/javascript
Expires
Sat, Oct 3, 17:51 (1 d, 59 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
16/fd/c80a749475fad2614898d0a09549
Default Alt Text
domdiff.test.js (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment