diff --git a/.babelrc b/.babelrc index e77bf0b..d9c500f 100644 --- a/.babelrc +++ b/.babelrc @@ -3,5 +3,6 @@ ["es2015", {"modules": false}], "es2016", "es2017" - ] + ], + "ignore": "node_modules" } diff --git a/lib/mebe_engine/parser.ex b/lib/mebe_engine/parser.ex index 240ebbe..c697f18 100644 --- a/lib/mebe_engine/parser.ex +++ b/lib/mebe_engine/parser.ex @@ -10,6 +10,10 @@ defmodule MebeEngine.Parser do @time_re ~R/(?\d\d):(?\d\d)(?: (?.*))?/ + @earmark_opts %Earmark.Options{ + code_class_prefix: "language-" + } + def parse(pagedata, filename) do split_lines(pagedata) |> parse_raw(%PageData{filename: filename}) @@ -45,7 +49,7 @@ defmodule MebeEngine.Parser do def render_content(pagedata) do - %{pagedata | content: Earmark.as_html!(pagedata.content)} + %{pagedata | content: Earmark.as_html!(pagedata.content, @earmark_opts)} end diff --git a/package.json b/package.json index 3b9193c..970cb65 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,10 @@ "rollup": "~0.41.6", "rollup-plugin-sourcemaps": "~0.4.1", "rollup-watch": "~3.2.2", - "uglify-js": "~2.8.15", + "uglify-js": "~2.8.15" + }, + "dependencies": { + "prismjs": "~1.6.0", "purecss": "~0.6.2" } } diff --git a/web/static/css/app.scss b/web/static/css/app.scss index e4d89f8..76ee251 100644 --- a/web/static/css/app.scss +++ b/web/static/css/app.scss @@ -4,6 +4,9 @@ @import '../../../node_modules/purecss/build/buttons'; @import '../../../node_modules/purecss/build/menus'; +// Prism syntax highlighting +@import '../../../node_modules/prismjs/themes/prism'; + $linkcolor: rgb(61, 146, 201); * { @@ -225,10 +228,6 @@ pre { line-height: 120%; } -pre, code { - background-color: #eee; -} - pre>code { white-space: pre-wrap; } diff --git a/web/static/js/app.js b/web/static/js/app.js index 37d1035..5c3a705 100644 --- a/web/static/js/app.js +++ b/web/static/js/app.js @@ -1,4 +1,5 @@ import checkForLaineHash from './old_hash_redirector'; +import './syntaxhighlight'; // Check hash even before site is loaded since it doesn't need to // wait for loading diff --git a/web/static/js/syntaxhighlight.js b/web/static/js/syntaxhighlight.js new file mode 100644 index 0000000..15700e5 --- /dev/null +++ b/web/static/js/syntaxhighlight.js @@ -0,0 +1,3 @@ +// Import Prism's files for syntax highlighting Elixir +import '../../../node_modules/prismjs/prism.js'; +import '../../../node_modules/prismjs/components/prism-elixir.js';