Skip to main content

No project description provided

Project description

ALMO

ALMOは、C++製の拡張Markdownパーサ・静的サイトジェネレータです。

WebAssemblyを使って実行・ジャッジ環境同梱のHTMLファイルを作ることができます。

機能

ALMOは、Markdown記法によって執筆された記事をHTMLファイルに変換することができます。

加えて、ALMOの拡張構文は、

  • 競技プログラミング
  • データ分析
  • 科学技術計算

をはじめとしたプログラミングに関する様々な記事を作成するために設計されています。

実行可能コードブロック

一つ目の拡張構文は実行可能なコードブロックです。

:::code
# このコードは自分自身を出力します! 

# 実行して確かめよう

_='_=%r;print(_%%_)';print(_%_)
:::

という記法は、以下のようなコードブロックを生成します。

さらにコードは実行することができ、その実行はCPythonのWebAssemblyへの移植であるPyodideによっておこなわれます。

そのため、記事の執筆者は自分でサーバを用意することなく、簡単に実行可能なサンプルコードを提供することができます。

Pythonのライブラリの使用 / matplotlib によるグラフ描画

実行可能コードブロックでは、Pythonの主要なライブラリを利用できます。

:::loadlib
numpy
matplotlib
:::

などとすることで、 numpy, matplotlib を利用できるようになります。

さらに、matploblib によるグラフ描画も可能です。

ソースコード内で、 

import matplotlib
matplotlib.use("module://matplotlib_pyodide.html5_canvas_backend")

とすると、通常のように plt.show() するだけで出力欄にインタラクティブなプロットを表示できます。

ジャッジシステム

競技プログラミングなどで用いられるジャッジシステムも提供します。

:::judge
title=Hello ALMO!                           
sample_in=example/helloalmo/in/sample.txt     
sample_out=example/helloalmo/out/sample.txt  
in=example/helloalmo/in/*.txt                 
out=example/helloalmo/out/*.txt               
:::

という記法によって、

  • サンプル入力は example/helloalmo/in/sample.txt
  • サンプル出力は example/helloalmo/out/sample.txt
  • 入力ファイルは example/helloalmo/in/*.txt にマッチする全てのファイル
  • 出力ファイルは example/helloalmo/out/*.txt にマッチする全てのファイル

と対応したジャッジシステムを自動で構築します。

これらは全てデモページで試すことができます。

インターフェース

almo <入力> [オプション]

オプション:

  • -o <出力> 出力ファイル名を指定します。 指定しない場合、HTMLファイルが標準出力に出力されます。
  • -t <テーマ> テーマを指定します。デフォルトは light です。
  • -c <CSSファイルへのパス> CSSファイルを指定します。デフォルトは テーマに付属するものが使用されます。
  • -e <テーマ> エディタのテーマを指定します。デフォルトは light の場合、 ace/theme/chrome, dark の場合 ace/theme/monokai が使用されます。 使用可能なテーマ
  • -d デバッグモードで実行します。
  • -g 構文木をdot言語として出力します。
  • -h ヘルプを表示します。

インストール方法

Homebrew

macOS (Apple Silicon) では、 Homebrew を使ってビルド済みのバイナリをインストールできます。

brew tap abap34/homebrew-almo
brew install almo

Docker

abap/almo にビルド済みのイメージがあります。

docker pull abap/almo:latest
docker run abap/almo:latest example.md

ビルド

build.sh を実行すると、ビルド済みのバイナリが build/almo に生成されます。

chmod +x build.sh
./build.sh

エコシステム

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

almo-0.8.13a0.tar.gz (30.6 kB view details)

Uploaded Source

File details

Details for the file almo-0.8.13a0.tar.gz.

File metadata

  • Download URL: almo-0.8.13a0.tar.gz
  • Upload date:
  • Size: 30.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for almo-0.8.13a0.tar.gz
Algorithm Hash digest
SHA256 282d43c03905943fdd03b1cc84f305d462ad538c3b3de3adece6d8dc80f291bf
MD5 0a937761665db1019adeca8c334c25b4
BLAKE2b-256 d136733782be1c823dcd1be6e8c8d26a2a8136b6b01d4daf3016d5950351ef15

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page