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.10a0.tar.gz (17.8 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: almo-0.8.10a0.tar.gz
  • Upload date:
  • Size: 17.8 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.10a0.tar.gz
Algorithm Hash digest
SHA256 0edf9b5e3d2ad820df3eb3711ac6034ddf8fa535f3fb43ae755fb698dfbfe53f
MD5 888d277c654a3b4d97c2cc26754cfc38
BLAKE2b-256 beaf5a0a2d4d95814d6878d7da97cb19bd339d434e19c4edbccf00bb983f0130

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