dustpan

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2019 License: MIT Imports: 3 Imported by: 0

README

Dustpan

Dustpanは、テキストベースの軽量な課題管理システムです。

  • 課題一つにつき、一つのテキストファイル(dptxt形式)で管理します。
  • Dustpanのシェル(dpsh)を使って課題を一覧表にすることができます。
  • 課題の形式は任意の項目を持たさせることができます。
  • 項目には数値、文字列、日付及び締め切り、ログの4つの型を設定することもできます。
  • dpshと設定ファイル(JSON)があればどこにでも配置することができます。
  • WebサーバやDBMSは必要ありません。その他の依存するコンポーネントもありません。

仕組み

  1. 設定ファイル(config.json)とdptxt形式(issue-1.txt-issue-5.txt)のファイルを同じディレクトリに配置します。
config.json
issue-1.txt
issue-2.txt
issue-3.txt
issue-4.txt
issue-5.txt
  1. config.jsonの中身は以下のようにします。
// 実際にはコメントは入れられません。
{
	"src":[ "*.txt" ],               // 入力するdptxt形式のファイルへのパス(ワイルドカード可、config.jsonからの相対パス指定、または絶対パス指定)
	"html": {
		"dst":"issue-list.html", // 課題一覧をHTMLとして出力する際のファイル名
		"title":"課題リスト",     // 出力されるHTMLファイルのtitle要素の内容
		"display": [             // HTMLに出力するクションの一覧(実際にdptxtには記述があっても、全て出力する必要はない。
			"title",
			"date occured",
			"author",
			"description",
			"log"
		]
	},
	"order": [                   // 課題をソートする際に比較に使うセクション名の一覧
		{ "name": "date occured" },
		{ "name": "author" }
	],
	"columns": [                 // セクションの定義(セクションの値をチェックするために指定する。また、ソートする際の比較方法を決定する。
		{ "name":"title", "type":"text" },
		{ "name":"date occured", "type":"date" },
		{ "name":"author", "type":"text" },
		{ "name":"description", "type":"test" },
		{ "name":"log", "type":"log" }
		// columnsに記述がないセクションがdptxtに含まれていてもエラーにならない。orderに指定する場合は必須。
   	]
}
  1. issue-1.txtの中身は以下のようなdptxt形式の文書です。issue-2.txt以降のファイルも似たような感じで課題一つにつき一ファイル作成します。
@title: マウスをクリックすると、お尻が痒くなる。
@date occured: 2017-7-9
@author: taro
@description: 

マウスをクリックする度に、お尻がだんだん痒くなる。右クリックすると右のお尻が痒くなり、左クリックすると左のお尻が痒くなる。

試しに左右のボタンを同時に押してみたけど、何も起きなかった。マウスのホイールをクリックしてみたけど、やっぱり何も起きなかった。

@log: 
右クリックしてみたら、お尻が痒くなることに気づいた。(2017-7-9)

左クリックしてみたら、左のお尻が痒くなることに気づいた。(2017-7-10)

繰り返しクリックし続けると、ものすごく痒くなることに気づいた。(2017-7-14)

@memo: これは夢なのかもしれない。。
  1. config.jsonと同じディレクトリでdpshを実行します。
$ dpsh
  1. config.jsonの記述に従ってissue-list.htmlが出力されます。出力時にCSSを指定していないので、config.jsonで指定したセクションがdiv要素で羅列されて出力されます。これだけです。

dptxt形式

キーと値の組みを表現するための簡易的なマークアップ言語です。

  • dptxt形式の文書は、一つ以上のセクションから成ります。
  • 一つのセクションは、一つのセクション名と値から成ります。
  • セクション名は、行頭の@から:までがキーを表わします。(前後の空白は除く)
  • セクション名の後ろ(:の後ろ)から次のキー、また文章の末尾までが値になります。
  • 値は0個以上のパラグラフから成ります。
  • パラグラフは、空白行を含まない連続した行の集りです。

config.json

  • src

    stringの配列。入力するdptxt形式のファイルへのパスのリスト。ワイルドカード可、config.jsonからの相対パス指定、または絶対パス指定

  • html

    HTML出力用の設定

    • dst

      string。課題一覧をHTMLとして出力する際のファイル名

    • title

      string。出力されるHTMLファイルのtitle要素の内容

    • display

      stringの配列。HTMLに出力するクションの一覧(実際にdptxtには記述があっても、全て出力する必要はない。)

    • css

      string。出力されるHTMLに埋め込むCSSファイルを指定する。(config.jsonからの相対パス指定、または絶対パス指定)

    • js

      string。出力されるHTMLに埋め込むJavaScriptファイルを指定する。(config.jsonからの相対パス指定、または絶対パス指定)

  • order

    配列。課題をソートする際に比較に使うセクション名の一覧。最初に指定したセクションから順に比較してソートする。各要素は以下の通り。

    • name

      string。セクション名

    • descending

      bool。省略可。デフォルトは昇順だが、trueを指定すると降順になる。

  • columns

    配列。セクションの定義。セクションの値をチェックするためにセクションの型を指定する。ソートする際の比較方法は型によって決まる。

    • name

      string。セクション名

    • type

      string。セクションの型。text,number,date,deadline,logのいずれか。

      • text:プレーンテキスト。比較は辞書式
      • number:数値
      • date:日付。日付の形式と有効な日付であるか否かをチェックする。
      • deadline:締め切り。日付の形式と有効な日付であるか否か、dpshが起動した時刻に対して有効期限切れか田舎をチェックする。
      • log:セクションのすべてのパラグラフの最後の行が丸括弧で囲まれた日付の形式になっていることをチェックする。

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL