Skip to content

thinking-grp/thinkCMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

thinkCMS

thinkCMS - Webサイトのための、CMS機能を備えたWebサーバライブラリ

概要 - Outline

thinkCMSは、thinking-groupのホームページや、そのほか様々なサイトで利用することを目的とした、Webサーバライブラリである。amaniaによるPython実装の簡易CMS的Webサーバにインスパイアされている。

著名なWeb言語の一つであるDartで実装され、Cloudflare Workers環境及びDartSDK導入済サーバ環境(或いは実行可能ファイルの導入・実行可能サーバ環境)の両者をターゲットとしている。前者のターゲットにおいては、Wasmにコンパイルされ、JavaScriptによるブートコードから呼び出される。後者のターゲットにおいては、DartSDKによって直接に(或いはAOTコンパイル等を介して)実行される。

言語等選定理由 - Reasons for language and other selection

実装言語としてDartを採用した理由は次の通りである。

  1. 静的型付けであり、簡潔性(可読性)とエラー検出、実行効率を期待でき、堅牢なシステムを簡単に構築できる
  2. 高階関数など関数型のパラダイムを基本的な要素として採用しており、プログラムの読みやすさに寄与する
  3. 強力な代数的データ型(ADT)を採用しており、不正な状態を表現できないようにしやすく、またバグ混入のリスクを減らすことができる
  4. JavaScriptやWasmにコンパイルしてサーバサイド(Node.js)(やブラウザ)で実行できる

基本設計 - Basic Design

記事マークアップにはMarkdown、スタイルシートはTailwind又はSassを用いる。通常のMarkdownによる記事のほか、Marp仕様によるスライドもレンダリングすることが出来る。またMarkdownによる記事以外にも、生HTMLによる固定ページを置くことが出来る。

リスンIPアドレス、ホストドメイン、サイト名、OGP関係など諸設定項目はドキュメントルートに配置されるYAMLファイルに記述される。

そのほか、ドキュメントルートにはarticlesディレクトリ、slidesディレクトリ、templatesディレクトリ、assetsディレクトリが置かれ、それぞれ記事(Markdown)群、スライド(Markdown)群、テンプレートHTML群が収められる。Sassを用いる場合は追加でstylesディレクトリが置かれ、スタイルシート群が収められる。

About

thinkCMS - Webサイトのための、CMS機能を備えたWebサーバライブラリ

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published