From c896442fcf46fe12fc1c8b811ddc71f8127e8509 Mon Sep 17 00:00:00 2001 From: jeffreytse Date: Fri, 8 Jan 2021 11:59:28 +0800 Subject: refactor: migrate code highlight to an extension --- _includes/extensions/code-highlight.html | 82 ++++++++++++++++++++++++++++++++ _includes/head.html | 7 +-- _sass/yat/_base.scss | 20 -------- assets/js/main.js | 29 ----------- 4 files changed, 83 insertions(+), 55 deletions(-) create mode 100644 _includes/extensions/code-highlight.html diff --git a/_includes/extensions/code-highlight.html b/_includes/extensions/code-highlight.html new file mode 100644 index 0000000..c843459 --- /dev/null +++ b/_includes/extensions/code-highlight.html @@ -0,0 +1,82 @@ + + + + + +{%- assign name = 'code_badge.enabled' -%} +{%- include functions.html func='get_value' default='false' -%} +{%- assign badge_enabled = return -%} + +{%- assign name = 'code_badge.color' -%} +{%- include functions.html func='get_value' default='#fff' -%} +{%- assign badge_color = return -%} + +{%- assign name = 'code_badge.background_color' -%} +{%- include functions.html func='get_value' default='#ff4e00' -%} +{%- assign badge_background_color = return -%} + +{%- assign name = 'code_badge.text_transform' -%} +{%- include functions.html func='get_value' default='uppercase' -%} +{%- assign badge_text_transform = return -%} + + + + diff --git a/_includes/head.html b/_includes/head.html index 1ac5112..66cca12 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -7,16 +7,11 @@ - - - - {%- feed_meta -%} {%- if jekyll.environment == 'production' and site.google_analytics -%} {%- include extensions/google-analytics.html -%} {%- endif -%} + {%- include extensions/code-highlight.html -%} diff --git a/_sass/yat/_base.scss b/_sass/yat/_base.scss index 879442a..224c287 100644 --- a/_sass/yat/_base.scss +++ b/_sass/yat/_base.scss @@ -159,26 +159,6 @@ pre { position: relative; background-color: #f0f0f0; - // code language badge - &::before { - content: attr(data-lang); - color: #fff; - background-color: #ff4e00; - padding: 0 .5em; - border-radius: 0 2px; - text-transform: uppercase; - text-align: center; - min-width: 32px; - display: inline-block; - position: absolute; - right: 0; - } - - // fix wrong badge display for firefox browser - code > table pre::before { - display: none; - } - > code { display: inline-block; padding: 20px!important; diff --git a/assets/js/main.js b/assets/js/main.js index ff3f2a3..0e5982a 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -56,32 +56,3 @@ function smoothScrollTo(y, time) { } } -// Init highlight js -document.addEventListener('DOMContentLoaded', function(event) { - var els = document.querySelectorAll('pre code') - function handle(block) { - var outer = block.parentElement.parentElement.parentElement; - var lang = block.getAttribute('data-lang'); - for (var i = 0; i < outer.classList.length; i++) { - var cls = outer.classList[i]; - if (cls.startsWith('language-')) { - lang = cls; - break; - } - } - if (!lang) { - cls = block.getAttribute('class'); - lang = cls ? cls.replace('hljs ', '') : ''; - } - if (lang.startsWith('language-')) { - lang = lang.substr(9); - } - block.setAttribute('class', 'hljs ' + lang); - block.parentNode.setAttribute('data-lang', lang); - hljs.highlightBlock(block); - } - for (var i = 0; i < els.length; i++) { - var el = els[i]; - handle(el); - } -}); -- cgit v1.2.3