@6>
<@local(export_dir)>
<@>
<@> HTML形式
<@>
<$logs = argv#0>
<$opt = argv#1>
<$export_dir = v.blogpub_dir . 'static/'>
<@ifexec(! logs, begin.logs)>
<@ifexec(v.static_export, begin, begin)>
静的出力
記事を <@export_dir> にHTML化して出力します。非公開記事は出力しません。
※トップページ用に「index」というkeyを持つ記事(コンテンツ)を用意してください。
<$else>
<@ifexec(Auth.isadmin, begin.isadmin)>
静的出力
記事をHTML化して出力する機能です。
.conf.cgi に <v.static_export = 1> を設定すると使用できます。
<$end.isadmin>
<$end>
<$break()>
<$end.logs>
<@>#############################################################################
<@> 静的HTML出力 exporter
<@>#############################################################################
<$exporter = loadapp('adiary::Export_static_html')>
<$ifbreak(!exporter)>
<$opt.export_dir = export_dir>
<@>////////////////////////////////////////////////////////////////////////////
<@> 初期化処理(必要なファイルをコピー)
<@>////////////////////////////////////////////////////////////////////////////
<$opt.init = begin>
<@local(dir, s, t, files, dirs, session, option, theme_dir, files_dir)>
<$s = v.blog>
<$session = argv#0>
<$option = argv#1>
<$theme_dir = v.static_theme_dir || 'theme/'>
<$files_dir = v.static_files_dir || 'files/'>
<@>////////////////////////////////////////////////////////////////////////////
<@> JavaScript to theme/
<@>////////////////////////////////////////////////////////////////////////////
<$dir = export_dir . theme_dir>
<$session.msg("Javascript files copy to '<@dir>'")>
<$mkdir(dir)>
<$files = begin_array>
adiary.js
lightbox.min.js
highlight.pack.js
<$end>
<$forexec(t, search_files(v.script_dir), begin)>
<$ifnext( substr(t,-3) ne '.js' )>
<$ifnext( substr(t,0,7) ne 'jquery-' )>
<$push(files, t)>
<$end>
<$forexec(t, files, begin)>
<$session.msg("\tcopy to '<@dir><@t>'")>
<$file_copy("<@v.script_dir><@t>", "<@dir><@t>")>
<$end>
<@>////////////////////////////////////////////////////////////////////////////
<@> テーマ to Themeのコピー
<@>////////////////////////////////////////////////////////////////////////////
<$dir = export_dir . theme_dir>
<$session.msg("Theme files copy to '<@dir>'")>
<$session.msg("\tmkdir <@dir><@v.template>")>
<$mkdir("<@dir><@v.template>")>
<@> base.cssのコピー
<$file_copy("<@v.theme_dir>base.css", "<@dir>base.css")>
<@> テンプレート内ファイルのコピー
<$files = search_files("<@v.theme_dir><@v.template>/")>
<$forexec(t, files, begin)>
<$session.msg("\tcopy to '<@dir><@v.template>/<@t>'")>
<$file_copy("<@v.theme_dir><@v.template>/<@t>", "<@dir><@v.template>/<@t>")>
<$end>
<@> テーマディレクトリのコピー
<$session.msg("\tcopy to '<@dir><@v.template>/<@v.theme>/*'")>
<$dir_copy("<@v.theme_dir><@v.theme>", "<@dir><@v.theme>")>
<$dir_copy("<@v.theme_dir>_img", "<@dir>_img")>
<@> テーマカスタムCSS
<@ifexec(option.custom_css && s.theme_custom, begin)>
<$session.msg("\tcopy to 'custom.css'")>
<$file_copy( s.theme_custom, "<@dir>custom.css")>
<$end>
<@> dynamic.css
<@ifexec(file_readable("<@v.blogpub_dir>dynamic.css"), begin)>
<$session.msg("\tcopy to '<@dir>dynamic.css'")>
<$file_copy("<@v.blogpub_dir>dynamic.css", "<@dir>dynamic.css")>
<$end>
<@>////////////////////////////////////////////////////////////////////////////
<@> pub-dist/ to pub-dist/
<@>////////////////////////////////////////////////////////////////////////////
<$dir = export_dir . v.pubdist_dir>
<$session.msg("public files copy to '<@dir>'")>
<$mkdir(dir)>
<$files = begin_array>
rss-icon.png
<$end>
<$forexec(t, files, begin)>
<$session.msg("\tcopy to '<@dir><@t>'")>
<$file_copy("<@v.pubdist_dir><@t>", "<@dir><@t>")>
<$end>
<$dirs = begin_array>
highlight-js/
jquery-ui/
lightbox/
ui-icon/
<$end>
<$forexec(t, dirs, begin)>
<$session.msg("\tcopy to '<@dir><@t>'")>
<$dir_copy("<@v.pubdist_dir><@t>", "<@dir><@t>")>
<$end>
<@>////////////////////////////////////////////////////////////////////////////
<@> jsプラグインのコピー
<@>////////////////////////////////////////////////////////////////////////////
<$dir = export_dir . theme_dir>
<$session.msg("Plugin's js files copy to '<@dir>'")>
<$dir_copy(v.blogpub_dir() . 'js/', dir)>
<@>////////////////////////////////////////////////////////////////////////////
<@> アルバムデータのコピー
<@>////////////////////////////////////////////////////////////////////////////
<$dir = export_dir . files_dir>
<$session.msg("Album files copy to '<@dir>'")>
<$dir_copy(v.blogimg_dir(), dir)>
<$dir_delete("<@dir>.trashbox/")>
<$end>
<@>////////////////////////////////////////////////////////////////////////////
<@> index.htmlを生成する場合の雛形
<@>////////////////////////////////////////////////////////////////////////////
<$opt.index_skel = begin>
<@local(t, logs)>
<$logs = argv#0>
static export logs
static export logs
<@forexec(t, logs, begin)>
<@t.year>-<@t.mon>-<@t.day> |
<@t.file> |
<@t.title> |
<$end>
export date: <@Timestamp>
<$end>
<@>////////////////////////////////////////////////////////////////////////////
<$ajax_return = exporter.export( logs, opt )>