PublishのためのSwiftPygmentsプラグイン
ChenZhijin
.com

PublishのためのSwiftPygmentsプラグイン

PublishのためのSwiftPygmentsプラグイン

Splashとそのオフィシャルプラグイン はPublishでSwiftコードのHighlightに使われている。

しかし、Swift以外のコードを書く人は沢山いるため、多様な言語に対応するSwiftPygmentsPublishPluginを作成した。

SwiftPygmentsPublishPlugin

PublishのためのコードにHighlight(色)をつけるプラグインである。

Pygmentsは多様なコードのHighlightができるPythonのLibraryである。

要件

  • Python
  • Pygments: https://pygments.org
  • Swift 5
  • cssファイルにPygmentsのためのカラースキーム

SwiftPygmentsはPythonKitを経由してPygmentsを使っている。

インストール

  1. OSにPythonがない場合は、Pythonをインストールする。
  2. Pygmentsがない場合は,Pygmentsをインストールする:
1
$ pip3 install pygments

  1. サイトのPackageにSwiftPygmentsPublishPluginを追加する:
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
let package = Package(
...
dependencies: [
.package(url: "https://github.com/Ze0nC/SwiftPygmentsPublishPlugin", .branch("master"))
],
targets: [
.target(
...
dependencies: [
...
"SwiftPygmentsPublishPlugin"
]
)
]
...
)

使い方

  1. サイトのpublishパイプラインに.pygments()を追加する。

SwiftPygmentsPublishPluginaddMarkdownFiles()の前にインストールしないといけない。

1
2
3
4
5
6
7
8
import SwiftPygmentsPublishPlugin
...
try MyWebsite().publish(using: [
.installPlugin(.pygments()),
...
.addMarkdownFiles(),
...
])

  1. cssファイルにPygmentsのカラースキームを追加する。ネットで沢山あります。
  2. コードを書く。

Markdownファイルで、コードの言語をバックチックの後に指定する。

Swift

1
2
3
4
```swift
let str = "This is Swift code."
print(str)
```

出力:

1
2
let str = "This is Swift code."
print(str)

Python

1
2
3
4
```python
str = "This is also Swift code."
print(str)
```

出力:

1
2
str = "This is also Swift code."
print(str)

指定しない

言語が指定されてない場合は、swiftとして処理する。

1
2
let str = "This is also Swift code."
print(str)

LaTeXまでもできる。

1
2
3
4
5
6
```latex
\documentclass[12pt]{article}
\begin{document}
This is \LaTeX
\end{document}
```

出力:

1
2
3
4
\documentclass[12pt]{article}
\begin{document}
This is \LaTeX
\end{document}

注意点

このプラグインはコードブロックのみを処理する。

タグ: