[Google Blogger ]如何在網頁中顯示程式碼區塊? | highlight

使用highlight實現程式碼區塊


有天,想要把自己學的程式語法,在網站上製作學習筆記,看過很多教學網站,都能在網頁上顯示程式語法區塊,並且能像在編譯器中一樣,做到高亮顯示,但在Blogger中該如何實現呢?

雖然Blogger可以使用<pre> <code> 的方式呈現,但顏色單一而且排版也不好看! 後來,終於找到可以支援多種程式語言的highlight.js,使用方法和設定也不難,還有多種樣式可以選擇~~

highlight.js官方簡介

使用highlight.js顯示的Python語法/ Theme:vs2015


      #讀取網路json檔位置 
      import requests 
      import pandas as pd 
      response =requests.get('https://cloud.culture.tw/frontsite/trans/emapOpenDataAction.do?method=exportEmapJson&typeId=M')
      data = response.json() 
      df = pd.json_normalize(data)
      df.head()
    

如何進行設定呢?


前往blogger後台/主題/自訂/編輯html,找到</head>後,將以下代碼貼於</head>之前,就已完成基本設定!

但目前的樣式設定是預設設定,可以到這邊去瀏覽喜歡的主題樣式,例如:背景是黑底或白底,關鍵字的顏色配置等,預設為default.min.css(白底),但本站使用的是vs2015.css(黑底)的樣式!可以自行更換為喜歡的主題!


  <!-- 請將以下代碼貼到</head>之前--> 
  <!-- 主題樣式1:default.min.css(擇一即可)--> 
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/default.min.css">
  <!-- 主題樣式2:vs2015.css(擇一即可)--> 
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/vs2015.css">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js"></script>
  <script>hljs.highlightAll();></script>
     

進階設定:字型大小/複製按鈕


如果還想要再做更客製化的設定,可以在將以下代碼貼上,並修改參數設定


  <!-- 請將以下代碼貼到</head>之前--> 
  <!-- 主題樣式1:default.min.css(擇一即可)--> 
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/default.min.css">
  <!-- 主題樣式2:vs2015.css(擇一即可)--> 
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/vs2015.css">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js"></script>
  
  <!-- 設定按鈕--> 
  <script>hljs.highlightAll();
  
     document.addEventListener('DOMContentLoaded', (event) => {
       document.querySelectorAll('pre').forEach((block) => {
         const button = document.createElement('button');
         button.innerText = '複製';
         button.className = 'copy-button';
         button.addEventListener('click', () => {
           const code = block.querySelector('code');
           navigator.clipboard.writeText(code.innerText).then(() => {
             button.innerText = '已複製!';
             setTimeout(() => {
               button.innerText = '複製';
          		}, 2000);
        });
      });
      block.appendChild(button);
    });
  });
    
    ></script>
     

 
<style> 
  /* 自定義代碼塊樣式---------程式代碼格式 */
  /* 設置代碼文本的樣式 */
  code { font-size: 14px;          /* 設置字體大小 */
    line-height: 1.5;         /* 設置行高為字體大小的1.5倍 */
  }
  
  /* 複製按鈕的樣式 */
  .copy-button {
    position: absolute;       /* 絕對定位,相對於pre元素 */
    top: 5px;                 /* 距離頂部5像素 */
    right: 5px;               /* 距離右側5像素 */
    padding: 3px 8px;         /* 設置內邊距,上下3像素,左右8像素 */
    font-size: 16px;          /* 設置字體大小 */
    color: #fff;              /* 設置文字顏色為白色 */
    background-color: #2677a5;/* 設置背景顏色為淺藍 */
    border: none;             /* 移除邊框 */
    border-radius: 4px;       /* 添加圓角 */
    cursor: pointer;          /* 滑鼠懸停時顯示手型光標 */
  }
  
  /* 複製按鈕懸停效果 */
  .copy-button:hover {
    background-color: #2992bf;/* 滑鼠懸停時變為淺藍色 */
  } 
  </style>   
     

最後.文章中使用


完成設定後,未來只要在文章中使用<pre> <code> 將程式碼包覆,即可在文章中,呈現程式碼區塊拉!!

在文章貼中貼入以下html代碼,以Python樣式進行展示


  <pre> <code  class="language-Python" > 
  #顯示程式碼區塊/Python
  import requests 
  import pandas as pd 
  response =requests.get('https://cloud.culture.tw/frontsite/trans/emapOpenDataAction.do?method=exportEmapJson&typeId=M')
  data = response.json() 
  df = pd.json_normalize(data)
  df.head()
  
  </pre> </code> 

上面程式碼在網頁中顯示的程式碼區塊


      #讀取網路json檔位置 
      import requests 
      import pandas as pd 
      response =requests.get('https://cloud.culture.tw/frontsite/trans/emapOpenDataAction.do?method=exportEmapJson&typeId=M')
      data = response.json() 
      df = pd.json_normalize(data)
      df.head()