inwardly_srv
独り言ツール
ローカルホストでサーバー起動してhttp://127.8.9.72:8972/
にブラウザから利用する
details
ヘッダー
prev: 表示してる日の前日の独り言の一覧ページへ移動
next: 表示してる日の後日の独り言の一覧ページへ移動
home: 今日の独り言の一覧ページへ移動
setting: ブログ投稿のための設定ページへ移動
link: ローカルドキュメント閲覧のためのページへ移動
search: 独り言を検索する
say
独り言入力フォーム
say脇のチェックボックス: フォームの表示位置をView内で固定する
submitボタン: 独り言を確定する
img1~img4ボタン: 独り言に画像を添付する
secretチェックボックス: 独り言を非公開に設定する(ブログ投稿に使用しない)
独り言テキスト入力欄でctrl+enterの入力でsubmitボタンと同様に作用する
クリップボードにpng形式の画像バイナリがある場合、
独り言テキスト入力欄での貼り付けでクリップボードからの画像を添付できる
独り言ツリー (Thread)
独り言の日時末尾の#
のリンクをクリックするとツリーを表示できる
日々の独り言一覧とは表示の順番が逆になる(日付の若い独り言が上位に来る)
settingページでブログ投稿をonに設定していると
ツリー単位での投稿が可能になる
記事タイトルとカテゴリの設定も可能
linkページ
パソコン内のローカルドキュメント(html)などをinwardly_srvを通してブラウザで閲覧できるようにする機能
C:\foo\bar\baz\index.html
などのファイルパスを指定して利用する
これのエントリーネームをhoge
とした場合、http://127.8.9.72:8972/docs/hoge/index.html
からアクセスできるようになる
C:\foo\bar\baz\
をルートとしたファイルアクセス(閲覧)を可能にする
※ドキュメント内のリソースへのリンクが絶対パスで指定されていたり、遡る相対リンクがあると正常に表示はされない
digボタン: ドキュメントルート以下のファイル等を列挙したりする
search
検索キーワードは半角スペース区切りで入力する
列挙したキーワード全てを含む独り言を検索する
大文字小文字は区別されない
特殊なキーワードを含めると検索条件などを設定できる
:case: ... 大文字小文字を区別する
:since:2020-10-01 ... 指定日からを検索対象とする(指定日を含む)
:until:2021-06-29 ... 指定日までを検索対象とする(指定日を含む)
:limit:15 ... 検索結果の表示最大件数を指定する (default 200)
:space:+ ... 検索キーワードに半角スペースを含めたい場合に半角スペースに置き換える文字列を指定する
(example: [:space:@@ "abcd@@efg"] -> ["abcd efg"])
:not:keyword ... 検索結果から除外したいキーワードを指定する
(example: [foo :not:bar baz] -> fooとbazを含みかつbarを含まない独り言を検索する)
:image: ... 画像投稿を含む独り言だけを検索対象とする (画像を含まないものだけを対象とする場合は :image:not と指定する)
:edited: ... 編集履歴がある独り言だけを検索対象とする (編集履歴のないものだけを対象とする場合は :edited:not と指定する)
:order:old ... 検索の順序を古い日時のものから行う (default :order:new)
:update: ... :since: と :until: において独り言の最終更新日時を対象にしたものに変更する
:root: ... 独り言ツリーのルートのみを検索対象とする (ルート以外を対象にする場合 :root:not)
:leaf: ... 独り言ツリーのリーフ(末端)のみを検索対象とする (リーフ以外を対象にする場合 :leaf:not)
:reply: ... 独り言ツリーの非ルートのみを検索対象とする (非ルート以外を対象にする場合 :reply:not)
(※注意 :root:not,:leaf:not,:reply:not のこれらのnot指定は独り言ツリーになってない単独独り言も検索対象になる)
:quoted: ... 引用されている独り言のみを検索対象とする (非引用のみを対象とする場合 :quoted:not)
:unquote: ... 各キーワードのダブルクオーテーションをトリミングする
(example: [:unquote: "abcd" ""efg""] -> [abcd "efg"])
:week:134 ... 列挙した指定曜日の独り言を検索対象とする (日曜日は0,土曜日は6)
:hour:6-8,11,13,19-21 ... 列挙した指定時間帯の独り言を検索対象とする
:secret: ... 非公開設定の独り言のみを検索対象とする (非公開設定以外を対象とする場合 :secret:not)
:deleted: ... 削除設定された独り言のみを検索対象とする
:history: ... 編集履歴をキーワードの検索対象とする
settingページ
hatenaブログに独り言の一覧を投稿するための設定をするページ
私(neetsdkasu)以外の人が使うことは想定されてない
それゆえ投稿は私(neetsdkasu)のブログ設定を前提としたものとなっている
※注意 APIキーやアクセストークンは平文で管理するのでセキュリティ的な漏洩リスクがある
Hatena API Setting: hatena開発者登録のキーを設定する
Hatena Authorization: 開発者キーによるhatenaユーザアカウントへのアクセス許可を設定する
Hatena Blog: 投稿先のブログのIDを設定する
Debug Mode: デバッグモードのブログ投稿の制御を設定する
Timeline Upload: 日々の独り言の一覧をブログ投稿するかを設定する
Thread Upload: 指定の独り言ツリーをブログ投稿するかを設定する
※Timeline Uploadをon
にした場合は約1時間ごとに独り言一覧の最新状態がブログ投稿される
※Debug Modeの設定
Timeline Upload Target: ブログ投稿に使う独り言一覧を指定する
Uploaded Non-Targets: 上記指定外の投稿済みのブログ記事の取り扱い
※いずれもデバッグモードのデータ投稿のみを対象とする
status
inwardly_srvの挙動に関する情報の表示やinwardly_srv.exeのシャットダウンを行える
Log Link: エラーログなどを確認できるページへのリンク
Routine Start Time: バックグラウンド処理の前回の始動日時
Routine End Time: バックグラウンド処理の前回の終了日時
Generator Mode: 静的リソースが埋め込みモードか読み込みモードかを表す
Generator Build: 自動生成ソースコードの生成時点のgit commit情報
Shutdown Token: シャットダウン実行時に必要となるトークン(スワップケースで表示)
Shutdown Form: シャットダウンのトークを入力する欄
Updateボタン: 上記の表示情報を最新にする
Shutdownボタン: inwardly_srv.exeを終了させる
development
開発環境
OS: Windows7 SP1 Starter
ブラウザ: Vivaldi 3.6.2165.40 (Chrome/88.0.4324.186相当?)
Goコンパイラ: go version go1.16 windows/386
TypeScript: 3.8.3 (node.js v8.11.2, npm 6.14.4)
デバッグモード
debugSwitch.go
にある定数DebugMode
の値をtrue
にしてコンパイルすることでデバッグモードになる
デバッグモードでは
- データの保存場所が変わる(カレントディレクトリが保存先になる)
- アドレスが
http://127.8.8.64:8864/
に変わる
- UIにdevマークが付く
- settingページにブログ投稿の制御設定が追加される
- ブログ投稿時にカテゴリにtestingが追加される
- ブログの表示時刻が変わる
などの通常モードとの違いがある
自動生成ソースコードについて
自動生成により生成されるGoのソースコード(サフィックス _gen.go)は
基本的にはhtml,css,jsの静的リソースを埋め込んだソースコード
develop
ブランチには自動生成されたソースコードは含まれていない
jsファイルはTypeScriptによるコンパイルでtsファイルから生成される
go generate
にTypeScriptによるコンパイルとGoソースコードの生成のコマンドが登録されている
自動生成プログラム本体のソースコードは inwardly/inwardly_srv/gen/main.go
カレントディレクトリが inwardly/inwardly_srv/
であることを前提になった作りなっている
ので inwardly/inwardly_srv/
で go generate
を実行する必要がある \
go generate
で実行されるコマンドは inwardly/inwardly_srv/main.go
に指定されている
//go:generate tsc --build tsconfig.json
//go:generate go run ./gen
自動生成プログラムに引数 -fs
与えると
静的リソースを埋め込まずにリクエストのたびにファイルシステムから読み込み返す動作に変わる
その場合、inwardly_srv.exe
の実行時のカレントディレクトリもinwardly/inwardly_srv/
である必要がある
go run ./gen -fs
静的リソースを編集する場合にはこの動作にすると反映の確認が容易になる
go get
でのバイナリにまとめてインストールをするには静的リソースが埋め込まれているようにする必要がある