Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9343756
dump-highlightjs-languages-data-plugin.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
dump-highlightjs-languages-data-plugin.js
View Options
/**
* Copyright (C) 2020-2022 The Software Heritage developers
* See the AUTHORS file at the top-level directory of this distribution
* License: GNU Affero General Public License version 3, or any later version
* See top-level LICENSE file for more information
*/
'use strict'
;
const
fs
=
require
(
'fs'
);
const
path
=
require
(
'path'
);
global
.
hljs
=
require
(
'highlight.js'
);
require
(
'highlightjs-4d/dist/4d.min'
);
require
(
'highlightjs-sap-abap/dist/abap.min'
);
require
(
'highlightjs-alan/dist/alan.min'
);
require
(
'highlightjs-blade/dist/blade.min'
);
require
(
'highlightjs-chaos/dist/chaos.min'
);
require
(
'highlightjs-chapel/dist/chapel.min'
);
require
(
'highlightjs-cshtml-razor/dist/cshtml-razor.min'
);
require
(
'highlightjs-cpcdos/dist/cpc-highlight.min'
);
require
(
'highlightjs-cypher/dist/cypher.min'
);
require
(
'highlightjs-dafny/dist/dafny.min'
);
require
(
'highlightjs-dylan/dist/dylan.min'
);
require
(
'highlightjs-eta/dist/eta.min'
);
require
(
'highlightjs-extempore/dist/extempore.min'
);
require
(
'highlightjs-gdscript/dist/gdscript.min'
);
require
(
'highlightjs-gf/dist/gf.min'
);
require
(
'highlightjs-gsql/dist/gsql.min'
);
require
(
'highlightjs-hlsl/dist/hlsl.min'
);
require
(
'highlightjs-jolie/dist/jolie.min'
);
hljs
.
registerLanguage
(
'lean'
,
require
(
'highlightjs-lean'
));
hljs
.
registerLanguage
(
'lox'
,
require
(
'highlightjs-lox'
));
require
(
'highlightjs-mirc/mirc'
)(
hljs
);
hljs
.
registerLanguage
(
'modelica'
,
require
(
'highlightjs-modelica'
));
require
(
'highlightjs-never/dist/never.min'
);
hljs
.
registerLanguage
(
'octave'
,
require
(
'highlightjs-octave'
).
default
);
require
(
'highlightjs-oz/dist/oz.min'
);
require
(
'hightlightjs-papyrus/dist/papyrus.min'
);
require
(
'highlightjs-qsharp/dist/qsharp.min'
);
require
(
'highlightjs-redbol/dist/redbol.min'
);
require
(
'highlightjs-robot'
)(
hljs
);
require
(
'highlightjs-robots-txt/dist/robots-txt.min'
);
require
(
'highlightjs-rpm-specfile'
)(
hljs
);
require
(
'highlightjs-solidity/dist/solidity.min'
);
require
(
'highlightjs-svelte/dist/svelte.min'
);
require
(
'highlightjs-terraform'
)(
hljs
);
require
(
'highlightjs-xsharp/dist/xsharp.min'
);
require
(
'highlightjs-zenscript/dist/zenscript.min'
);
require
(
'highlightjs-zig/dist/zig.min'
);
const
stringify
=
require
(
'json-stable-stringify'
);
// Simple webpack plugin to dump JSON data related to the set of
// programming languages supported by the highlightjs library.
// The JSON file is saved into swh-web static folder and will
// be consumed by the backend django application.
class
DumpHighlightjsLanguagesDataPlugin
{
apply
(
compiler
)
{
compiler
.
hooks
.
done
.
tap
(
'DumpHighlightjsLanguagesDataPlugin'
,
statsObj
=>
{
const
outputPath
=
statsObj
.
compilation
.
compiler
.
outputPath
;
const
hljsDataFile
=
path
.
join
(
outputPath
,
'json/highlightjs-languages.json'
);
const
languages
=
hljs
.
listLanguages
();
const
hljsLanguagesData
=
{
'languages'
:
languages
};
const
languageAliases
=
{};
for
(
const
language
of
languages
)
{
const
languageData
=
hljs
.
getLanguage
(
language
);
if
(
!
languageData
.
hasOwnProperty
(
'aliases'
))
{
continue
;
}
for
(
const
alias
of
languageData
.
aliases
)
{
languageAliases
[
alias
]
=
language
;
languageAliases
[
alias
.
toLowerCase
()]
=
language
;
}
}
hljsLanguagesData
[
'languages_aliases'
]
=
languageAliases
;
fs
.
writeFileSync
(
hljsDataFile
,
stringify
(
hljsLanguagesData
,
{
space
:
4
}));
});
}
};
module
.
exports
=
DumpHighlightjsLanguagesDataPlugin
;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jul 4, 1:49 PM (5 d, 11 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3239034
Attached To
R65 Staging repository
Event Timeline
Log In to Comment