Skip to content

Commit

Permalink
Properly render KaTeX formulas
Browse files Browse the repository at this point in the history
Add block and inline parameter to katex shortcode to encapsulate
katex notation
  • Loading branch information
Azkellas committed Oct 1, 2023
1 parent f31082d commit 90c9c2b
Show file tree
Hide file tree
Showing 7 changed files with 80 additions and 51 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Spanish translation of example site samples ([#606](https://github.com/jpanther/congo/pull/606))
- Japanese translation of docs and example site ([#618](https://github.com/jpanther/congo/pull/618))
- German translation of example site ([#631](https://github.com/jpanther/congo/pull/631))
- Properly render KaTeX formulas by adding `block` or `inline` parameter to `katex` shortcode [#634](https://github.com/jpanther/congo/pull/634)

### Changed

Expand Down
23 changes: 15 additions & 8 deletions exampleSite/content/docs/shortcodes/index.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,21 +175,28 @@ Congoは、標準的なMarkdown構文を使用した場合の画像について

## Katex

`katex` を使うと、KaTeXパッケージを使って記事の内容に数式を追加することができます。利用可能な構文については[supported TeX functions](https://katex.org/docs/supported.html)のオンラインリファレンスを参照してください
数式は `katex` ショートコードを使用し、パラメータに `block` (ブロック式の場合) または `inline` を指定してレンダリングすることができます。詳細は[数学的表記]({{< ref "mathematical-notation" >}})を参照してください

記事中に数式を含めるには、コンテンツ内の任意の場所にショートコードを配置するだけです。記事ごとに一度記述するだけで、KaTeXが自動的にそのページのマークアップをレンダリングします。インライン表記とブロック表記の両方がサポートされています。

インライン記法は、式を区切り記号 `\\(``\\)` で囲むことで生成できます。ブロック記法の場合は `$$` です。
利用可能な構文については[サポートされているTeX関数](https://katex.org/docs/supported.html)のオンラインリファレンスを参照してください。

**例:**

```
インライン記法: {{</* katex inline */>}}f(a,b,c) = (a^2+b^2+c^2)^3{{</* /katex */>}}
```
インライン記法: {{< katex inline >}}f(a,b,c) = (a^2+b^2+c^2)^3{{< /katex >}}

ブロック表記

```md
{{</* katex */>}}
\\(f(a,b,c) = (a^2+b^2+c^2)^3\\)
{{</* katex block */>}}
f(a,b,c) = (a^2+b^2+c^2)^3
{{</* /katex */>}}
```

{{< katex >}}
\\(f(a,b,c) = (a^2+b^2+c^2)^3\\)
{{< katex block>}}
f(a,b,c) = (a^2+b^2+c^2)^3
{{< /katex>}}

[数学的表記のサンプル]({{< ref "mathematical-notation" >}})でより多くの例をチェックしてください。

Expand Down
25 changes: 16 additions & 9 deletions exampleSite/content/docs/shortcodes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,21 +175,28 @@ Icons can also be used in partials by calling the [icon partial]({{< ref "partia

## Katex

The `katex` shortcode can be used to add mathematical expressions to article content using the KaTeX package. Refer to the online reference of [supported TeX functions](https://katex.org/docs/supported.html) for the available syntax.
Mathematical expressions can be rendered using either the `katex` shortcode, with either `block` (for block expression) or `inline` as parameter. See [mathematical notation]({{< ref "mathematical-notation" >}}) for more details.
It uses the KaTeX library to render mathematical notation within articles.

To include mathematical expressions in an article, simply place the shortcode anywhere with the content. It only needs to be included once per article and KaTeX will automatically render any markup on that page. Both inline and block notation are supported.

Inline notation can be generated by wrapping the expression in `\\(` and `\\)` delimiters. Alternatively, block notation can be generated using `$$` delimiters.
Refer to the online reference of [supported TeX functions](https://katex.org/docs/supported.html) for the available syntax.

**Example:**

```md
{{</* katex */>}}
\\(f(a,b,c) = (a^2+b^2+c^2)^3\\)
```
Inline notation: {{</* katex inline */>}}f(a,b,c) = (a^2+b^2+c^2)^3{{</* /katex */>}}
```
Inline notation: {{< katex inline >}}f(a,b,c) = (a^2+b^2+c^2)^3{{< /katex >}}

Block notation:
```
{{</* katex block */>}}
f(a,b,c) = (a^2+b^2+c^2)^3
{{</* /katex */>}}
```

{{< katex >}}
\\(f(a,b,c) = (a^2+b^2+c^2)^3\\)
{{< katex block >}}
f(a,b,c) = (a^2+b^2+c^2)^3
{{< /katex >}}

Check out the [mathematical notation samples]({{< ref "mathematical-notation" >}}) page for more examples.

Expand Down
25 changes: 14 additions & 11 deletions exampleSite/content/samples/mathematical-notation/index.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,41 @@ Una breve muestra de notación matemática en Congo.

<!--more-->

{{< katex >}}

Congo solo incluirá los assets de KaTeX en su proyecto si utiliza notación matemática. Para que esto funcione, simplemente incluya el [`katex` shortcode]({{< ref path="docs/shortcodes#katex" lang="en" >}}) dentro del artículo. Cualquier sintaxis de KaTeX en esa página se renderizará automáticamente.
Congo sólo incluirá los recursos de KaTeX en su proyecto si hace uso de la notación matemática. Para que esto funcione, congo proporciona un shortcode [`katex`]({{< ref path="docs/shortcodes#katex" lang="en" >}}) que puede usarse con `katex block` o `katex inline`.
Cualquier sintaxis KaTeX dentro del shortcode se renderizará automáticamente.

Utilice la documentación en línea de [funciones TeX admitidas](https://katex.org/docs/supported.html) para conocer la sintaxis disponible.

## Notación en línea

La notación en línea se puede generar envolviendo la expresión en los delimitadores `\\(` y `\\)`.
La notación inline puede generarse envolviendo la expresión en el shortcode `katex inline` o `katex`.

**Ejemplo:**

```tex
% KaTeX notación en línea
Notación en línea: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
Notación en línea: {{</* katex inline */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
Versión abreviada: {{</* katex */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
```

Notación en línea: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
Notación en línea: {{< katex inline >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}

Versión abreviada: {{< katex >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}


## Notación en bloque

Alternativamente, la notación en bloque se puede generar usando delimitadores `$$`. Esto generará la expresión en su propio bloque HTML.
Alternativamente, puede generarse una notación en bloque utilizando el parámetro `block`. Esto mostrará la expresión en su propio bloque HTML.

**Ejemplo:**

```tex
% KaTeX notación en bloque
$$
{{</* katex block */>}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{</* /katex */>}}
```

$$
{{< katex block >}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{< /katex >}}
24 changes: 13 additions & 11 deletions exampleSite/content/samples/mathematical-notation/index.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,40 @@ tags: ["sample", "katex", "maths", "shortcodes"]

<!--more-->

{{< katex >}}
Congoは、数学的記法を使用する場合にのみ、KaTeXアセットをプロジェクトにバンドルします。これを動作させるために、congoは `katex block` または `katex inline` で使用できるショートコード [`katex`]({{< ref path="docs/shortcodes#katex" lang="en" >}}) を提供しています。
ショートコード内のKaTeX構文は自動的にレンダリングされます。

Congoは、数学的表記を使用する場合にのみ、KaTeXアセットをプロジェクトにバンドルします。これを動作させるには、単に記事内に[`katex` ショートコード]({{< ref "docs/shortcodes#katex" >}})をインクルードしてください。そのページ上のKaTeX構文は自動的にレンダリングされます
利用可能な構文については[サポートされているTeX関数](https://katex.org/docs/supported.html)のオンラインリファレンスを参照してください

使用可能な構文については、[supported TeX functions](https://katex.org/docs/supported.html)のオンラインリファレンスを参照してください。

## インライン記法

インライン記法は、式を `\\(``\\)` で囲むことで生成できます
インライン記法は `katex inline` または `katex` ショートコードで式をラップすることで生成できる

**例:**

```tex
% KaTeX inline notation
インライン記法: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
インライン記法: {{</* katex inline */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
速記版: {{</* katex */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
```
インライン記法: {{< katex inline >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}

インライン記法: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
速記版: {{< katex >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}

## ブロック記法

あるいは、 `$$` を使ってブロック記法で生成することもできます。これは式を独自のHTMLブロックとして出力します
また、`block` パラメータを使ってブロック表記を生成することもできます。これは式を独自のHTMLブロックで出力します

**例:**

```tex
% KaTeX block notation
$$
{{</* katex block */>}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{</* /katex */>}}
```

$$
{{< katex block >}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{< /katex >}}
24 changes: 13 additions & 11 deletions exampleSite/content/samples/mathematical-notation/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,40 @@ KaTeX can be used to render mathematical notation within articles.

<!--more-->

{{< katex >}}

Congo will only bundle the KaTeX assets into your project if you make use of mathematical notation. In order for this to work, simply include the [`katex` shortcode]({{< ref "docs/shortcodes#katex" >}}) within the article. Any KaTeX syntax on that page will then be automatically rendered.
Congo will only bundle the KaTeX assets into your project if you make use of mathematical notation. In order for this to work, congo provides a shortcode [`katex`]({{< ref "docs/shortcodes#katex" >}}) than can be used with either `katex block` or `katex inline`.
Any KaTeX syntax inside the shortcode will be automatically rendered.

Use the online reference of [supported TeX functions](https://katex.org/docs/supported.html) for the available syntax.

## Inline notation

Inline notation can be generated by wrapping the expression in `\\(` and `\\)` delimiters.
Inline notation can be generated by wrapping the expression in the `katex inline` or `katex` shortcode.

**Example:**

```tex
% KaTeX inline notation
Inline notation: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
Inline notation: {{</* katex inline */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
Shorthand version: {{</* katex */>}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{</* /katex */>}}
```

Inline notation: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
Inline notation: {{< katex inline >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}

Shorthand version: {{< katex >}}\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…{{< /katex >}}

## Block notation

Alternatively, block notation can be generated using `$$` delimiters. This will output the expression in its own HTML block.
Alternatively, block notation can be generated using the `block` parameter. This will output the expression in its own HTML block.

**Example:**

```tex
% KaTeX block notation
$$
{{</* katex block */>}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{</* /katex */>}}
```

$$
{{< katex block >}}
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$
{{< /katex >}}
9 changes: 8 additions & 1 deletion layouts/shortcodes/katex.html
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
{{/* Nothing to see here */}}
{{ $mode := .Get 0 }}
{{ if eq $mode "block" }}
$${{.Inner}}$$
{{ else if or (eq $mode "inline") (eq $mode nil) }}
\({{.Inner}}\)
{{ else }}
{{ errorf "Invalid katex mode: expected block or inline" }}
{{ end }}

0 comments on commit 90c9c2b

Please sign in to comment.