NightScream User's Guide

何をするものか

テキストファイルからHTMLを吐きます。再発明もいいとこ。なかなかにValidなHTMLを吐きます。
タイムスタンプを見てリビルドとかできます。
ローカルで書いてミラーリングアップロードするのが正しい使い方です。
いろいろ未実装です。誰も知らないOgreWiki/CYBERREPORTの後継。

書式

タイトル

ソーステキストの先頭行はページのタイトルになります。

ブロック

一般形

-- FUNCTION
CONTENTS
--
-- FUNCTION : ARGUMENT...
CONTENTS
--

ブロックは、2個以上のハイフンではじめます。
同数のハイフンのみの行で閉じます。

= FUNCTION
= FUNCTION : ARGUMENT...
= FUNCTION ; CONTENTS
= FUNCTION : ARGUMENT... ; CONTENTS

中身が不要、または1行の場合は=も使用できます。

codeの短縮形

-- ! LANG
CODE
--

code:と書く代わりに!を使うことができます。

paragraphの短縮形

空行で区切られた地の文はそれぞれ段落になります。

listの短縮形

- A
-- B
- C
-- D

-で行を始めることでlistを明記せずに表を作ることができます。

sectionの短縮形

* TITLE
* LABEL : TITLE

次の*までが節になります。

* TITLE
-------
CONTENTS
-------
* LABEL : TITLE
---------------
CONTENTS
---------------

節を入れ子にしたいときはハイフンで範囲を明示します。

tableの短縮形

|A|B|C|
|D|E|F|

|で行を始めることでtableを明記せずに表を作ることができます。

インライン

一般形

[ FUNCTION ]
[ FUNCTION : ARGUMENT... ]
[ FUNCTION ; CONTENTS ]
[ FUNCTION : ARGUMENT... ; CONTENTS ]

インラインマークアップは、1個以上の[]で囲います。
最初は[で始める必要がありますが、(){}<>も使用できます。

[(plain;a[0])]

anchorの短縮形

[ ./PATH ; CONTENTS ]

相対パスの場合はa:を省略できます。

codeの短縮形

[ ! LANG ; CODE ]

code:と書く代わりに!を使うことができます。

エスケープ

\に続く記号はマークアップとして解釈しません。
文中の[]や、行頭に-、=、*、|を置きたいときはエスケープが必要です。
\自体は\\と表せます。
また、行末の\は次の改行コードを無視します。
plain等プレーンテキストの中ではエスケープは機能しません。

機能リスト

abbr

インライン。中身はインライン。
略語。
引数には正式名称を取ります。
<abbr>タグを生成。正式名称はtitle属性になります。

anchor

インライン。中身はインライン。
リンク。
URIまたはNightScreamのページやラベルを引数に取ります。NightScreamのページにリンクするときは拡張子.scream.txtを指定しないでください。
<a>タグを生成します。本文省略時アドレスまたはリンク先ページのタイトルが使われます。

author

ブロック。中身はインライン。
作者情報や連絡先など。
引数にはURIを取ります。
<address>タグを生成。引数がある場合は<a>タグも生成します。

big

ブロック/インライン。中身はインライン。
大きい文字。
<big>タグを生成します。

bold

ブロック/インライン。中身はインライン。
太文字。
<b>タグを生成します。

cite

ブロック/インライン。中身はインライン。
引用元のタイトル。
<cite>タグを生成します。

code

ブロック/インライン。中身はプレーンテキスト。
ソースコードを表します。
引数には言語名を指定。
<code class="code lang-言語名">タグを生成します。ブロックの時は<pre class="code lang-言語名">タグで囲います。

date

インライン。中身は無視されます。
引数にファイル名を取りそのタイムスタンプとなります。
<time>タグを生成します。

definition

ブロック/インライン。中身はインライン。
定義。
<dfn>タグを生成します。

delete

ブロック/インライン。中身はブロック/インライン。
取消線。
<del>タグを生成します。

emphasis

ブロック/インライン。中身はインライン。
強調。
<em>タグを生成します。

history

更新履歴。
フッター部分に<aside><p class="history">タグを生成します。

http

インライン。中身はインライン。
HTTPリンク。
URIを引数に取ります。機能名httpと合わせて、[http://abc.def/ghi/;jkl...]のように記述します。
<a>タグを生成します。本文省略時URIが使われます。

https

httpに同じ。

include

ブロック/インライン。中身はプレーンテキスト。
他のページや画像へのパスを引数に取ります。
ページの場合はブロックのみ。NightScreamのページを埋め込むときは拡張子.scream.txtを指定しないでください。<section>タグを生成します。include自体の中身は無視されます。
画像の場合はブロック・インライン共に使用可能。<img>タグを生成し中身はalt要素になります。ブロックの時は<p>タグで囲います。

input

ブロック/インライン。中身はプレーンテキスト。
入力。
<kbd class="input">タグを生成。ブロックの時は<pre class="input">タグで囲います。

italic

ブロック/インライン。中身はインライン。
斜体。
<i>タグを生成します。

list

ブロック。中身はインライン。
リスト。行頭の"-"の数で深さを示します。空白で始まる行は前の行の継続と見なします。
引数にはnone, unordered, orderedの何れかを指定。省略時unordered。
<ul class="none">/<ul>/<ol>タグを生成します。

mailto

インライン。中身はインライン。
メールアドレスを引数に取りリンクを生成します。
<a>タグを生成します。href属性はonloadで設定します。

mark

ブロック/インライン。中身はインライン。
目印。
<mark>タグを生成します。

output

ブロック/インライン。中身はプレーンテキスト。
出力。
<samp class="output">タグを生成します。ブロックの時は<pre class="output">タグで囲います。

paragraph

ブロック。中身はインライン。
通常の段落。
<p>タグを生成します。改行は<br>になります。

plain

ブロック/インライン。中身はプレーンテキスト。
整形を行いません。
引数にはproportional, fixedの何れかを指定。デフォルトはproportional。
proportionalの時は<p class="plain">/<span class="plain">タグを生成します。
fixedの時は<pre class="plain fixed">/<span class="plain fixed">タグを生成します。

quote

ブロック/インライン。中身はブロック/インライン。
引用文。
<blockquote>/<q>タグを生成します。引数、またはブロックの中にauthorがある場合はauthorに指定されたURIをcite属性とします。

remark

インライン。中身はインライン。
脚注。
説明文を引数に取ります。説明文はページ末尾に一括で追加されます。
<a class="remark">タグを生成します。
またフッター部分に<aside><p class="remark">タグを生成します。

section

ブロック。中身はブロック。
節。
引数として見出し文字列を取ります。
<section>タグを生成します。見出しは<h1>..<h6>タグになります。

small

ブロック/インライン。中身はインライン。
小さい文字。
<small>タグを生成します。

strong

ブロック/インライン。中身はインライン。
強い強調。
<strong>タグを生成します。

sub

ブロック/インライン。中身はインライン。
下付き文字。
<sub>タグを生成します。

subject

インライン。中身はインライン。
主題。
引数としてleft, rightを取る。デフォルトはleft。
<span class="subject left">/<span class="subject right">タグを生成。

sup

ブロック/インライン。中身はインライン。
上付き文字。
<sup>タグを生成します。

table

ブロック。中身はインライン。
表。
区切り文字は"|"。
<table>タグを生成します。

variable

ブロック/インライン。中身はインライン。
変数。
<var>タグを生成します。

生成HTMLについて

HTML5のXML構文を出力します。

実行方法

拡張子.scream.txtを持つUTF-8のテキストファイルを作成して、そのディレクトリでnightscreamコマンドを実行すると.htmlができます。
サブディレクトリも再帰的に処理します。

index

同じディレクトリや親ディレクトリにindex.scream.txtがあればヘッダー部分にリンクを生成します。

スタイルシート

style.cssがあれば参照するようにlinkタグを出力します。
親ディレクトリにindex.scream.txtがあれば、遡ってstyle.cssを探します。

スタイルシートのクラス

code

codeが生成したタグに付きます。

fixed

plain:fixedが生成したタグに付きます。

history

historyが生成したタグに付きます。

h7, h8, h9...

sectionを深く入れ子にして、<h6>以上の見出しレベルが必要になった時に使用されます。

input

inputが生成したタグに付きます。

lang-言語名

codeに指定した言語名がpre/codeタグに付きます。

left

subject:leftが生成したタグに付きます。

none

list:noneが生成したタグに付きます。

output

outputが生成したタグに付きます。

plain

plainが生成したタグに付きます。

remark

remarkが生成したタグに付きます。

right

subject:rightが生成したタグに付きます。

subject

subjectが生成したタグに付きます。

.screamディレクトリ

NightScreamは隠しディレクトリ.screamを作成してバックアップや依存関係を格納します。

NightScream by YT