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}

注意点

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

タグ: