網頁內嵌 Python Snippet

code-prettify

當我們想要在網頁下嵌入程式碼範例時, 我們期待它呈現的是跟程式開發工具, 或者簡稱 IDE, 是很接近的. 例如要有顏色區隔變數或是指令; 要有縮排.

預期理想的效果大約如下:

可以參考 code-prettify, 方法極為簡單, 我們只要在 網頁HTML碼 加上幾行即可. 例如: 我現在用的 Google Site, 於 [插入] 中選擇 <>內嵌 元素, 出現

<script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js?skin=sunburst"></script>

<style>li.L0, li.L1, li.L2, li.L3, li.L5, li.L6, li.L7, li.L8 {list-style-type: decimal !important;}</style>

<?prettify?>

<pre class="prettyprint lang-py linenums">

[你的程式碼 Copy-Paste 到此]

</pre>

然後將程式碼貼上即可, 記得要將[你的程式碼 Copy-Paste 到此] 替換成程式碼.

<script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js?skin=sunburst"></script>

<style>li.L0, li.L1, li.L2, li.L3, li.L5, li.L6, li.L7, li.L8 {list-style-type: decimal !important;}</style>

<?prettify?>

<pre class="prettyprint lang-py linenums">

class WorkFolder(Path):

_flavour = _windows_flavour if os.name == 'nt' else _posix_flavour


def __new__(cls, *args):

tmp=super(WorkFolder, cls).__new__(cls, *args)

return tmp if tmp.is_dir() else None

def __init__(self, *args):

self.classIds = list(classes.keys())

self.remains = [child for child in self.iterdir() if \

(child.is_file() and child.suffix.lower() in ['.png','.jpeg','.jpg'])]

if len(self.remains) > 0:

for c in self.classIds:

os.makedirs(self.joinpath(c), exist_ok=True)

</pre>

例如, 我們用上面的碼, 結果將得到如下的樣式. 與預期有點距離, 還可接受.