原因是因为我没有意识到它只支持少数语言,所以它才不能正常工作。
我的解决方案是编辑/分叉prism + prism-element组件。(注意:如果您在不更改名称或目录的情况下编辑bower_components中的文件,则可能会在下次更新时丢失更改。)
我编辑了prism-element/prism-highlighter.html
文件以包括其他语言:
if (lang === 'js' || lang.substr(0, 2) === 'es') {
return Prism.languages.javascript;
} else if (lang === 'css') {
return Prism.languages.css;
} else if (lang === 'c') {
return Prism.languages.clike;
} else if (lang === 'bash') {
return Prism.languages.bash;
} else if (lang === 'python') {
return Prism.languages.python;
} else {
...
在 prism/gulpfile.js
中导入更多的语言组件:
paths = {
componentsFile: 'components.js',
components: ['components/**/*.js', '!components/**/*.min.js'],
main: [
'components/prism-core.js',
'components/prism-markup.js',
'components/prism-css.js',
'components/prism-clike.js',
'components/prism-javascript.js',
'components/prism-bash.js',
'components/prism-python.js',
'plugins/file-highlight/prism-file-highlight.js'
],
...
如果您更改了
prism
的名称/路径,请确保在
prism-element/prism-import.html
中更改相对路径。
然后在
prism
文件夹中运行
npm install
以安装依赖项,再运行
gulp
以运行
gulpfile.js
并编译为
prism/prism.js
。
由于我将我的分支命名为prism-highlighter-plus,所以我的最终代码看起来像这样:
<link rel="import" href="../../bower_components/marked-element/marked-element.html">
<link rel="import" href="../../bower_components/prism-element-plus/prism-highlighter-plus.html">
<dom-module id="backup-script">
<template>
<style>
:host {
display: block;
}
.markdown-html {
overflow-x: auto;
}
</style>
<prism-highlighter-plus></prism-highlighter-plus>
<marked-element>
<div class="markdown-html"></div>
<script type="text/markdown">
```bash
#!/bin/bash
...
excluded_databases="Database|information_schema|performance_schema|mysql"
databases=`mysql -u $mysql_user -p$mysql_password -Bse "SHOW DATABASES;" | egrep -v $excluded_databases`
for db in $databases; do
mysqldump -u $mysql_user -p$mysql_password --databases $db > $mysql_output/$today/$db.sql
done
...
</script>
</marked-element>
</template>
<script>
Polymer({
is: 'backup-script'
});
</script>
</dom-module>