2019年01月01日


Seesaa のスマホページで表示される広告が左に寄りすぎでみっともないので CSS( 属性セレクター ) で調整する

この左に寄っている部分です。



id の 先頭が gn_delivery となってるので、これが変わらない限りは有効ですね。

属性セレクター( mozilla )
div[id^="gn_delivery"] {
	text-align:center;
}




posted by at 2019-01-01 21:11 | Seesaa | このブログの読者になる | 更新情報をチェックする

2018年02月18日


テンプレートでその記事の編集画面に直接リンクする


posted by ニックネームの ニックネーム部分にリンクを作成します。これは、「記事」コンテンツの HTML テンプレートを編集します。( こうしておくと、記事のリライトはとっても楽です )

posted by <a href="https://blog.seesaa.jp/pages/my/blog/article/edit/input?id=<% article.id %>" target="_blank"><% article.nickname %></a> at <% article.createstamp | date_format("%Y-%m-%d %H:%M") -%>


posted by at 2018-02-18 01:47 | Seesaa | このブログの読者になる | 更新情報をチェックする

Seesaaブログのテンプレート内で使用できる page_name 変数を JavaScript で使用する


page_name 変数は、テンプレート内で使用する変数なので、直接は使用できませんが、ヘッド部分に以下のコードを入れておけば後続のスクリプトで使用する事ができます
<script>
var $page_name = '<% page_name %>';
</script>


具体的な使用方法としては、トップページは 'index' になりますので、日付タイトルを以下のようにして非表示にする事ができます。
<script>
if ( $page_name == 'index' ) {
	str="";
	str+="<style> \n";
	str+=".date { display:none; } \n";
	str+="</style> ";
	document.write( str );
}
</script>


あるいは、jQuery が使えるのであれば以下のように動的に追加も可能です。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>

$(function(){

	var style = $("<style>");
	style.text(".date { display:none; }");

	var target = $("head").eq(0);
	style.appendTo(target);

});

</script>


さらに、トップページの記事数を1つにして、未来の当分来ない日付の記事を書き込めは、常に表示される「エントランス」を作成できます

注) 'tag' というページもあります



posted by at 2018-02-18 01:40 | Seesaa | このブログの読者になる | 更新情報をチェックする

2015年12月18日


Seesaa ブログのエクスポートを呼び出して全てをバックアップするスクリプト



2015/12/18 : Google Chrome でダウンロード可能にしました
拡張子がスクリプトのままだと、Google Chrome がダウンロードさせてくれないので、 .lightbox としています。その為、【最初に set_script.bat を実行して、拡張子を .wsf に変更するようにしています】
2015/02/04 : 再び、正常に動作するように修正しました 2013/01/19 : 正常に動作するように修正しました bk.wsf
<JOB>
<COMMENT>
************************************************************
 EXPORT ( バッチ処理用 )
 Seesaa からブログのバックアップデータを取得する

************************************************************
</COMMENT>

<OBJECT id="objHTTP" progid="Msxml2.ServerXMLHTTP" />
<OBJECT id="Stream" progid="ADODB.Stream" />

<SCRIPT language=VBScript>
' ***********************************************************
' 正規表現用
' ***********************************************************
Set regEx = New RegExp

' ***********************************************************
' タイムアウト用
' ***********************************************************
lResolve = 60 * 1000
lConnect = 60 * 1000
lSend = 60 * 1000
lReceive = 60 * 1000

' ***********************************************************
' 処理開始
' ***********************************************************
bDebug = False
target_year1 = WScript.Arguments(0)
target_month1 = WScript.Arguments(1)
target_year2 = WScript.Arguments(2)
target_month2 = WScript.Arguments(3)

emailData = "メールアドレス"
passData = "パスワード"
' バックアップしたいブログの ID を指定します
blogData = "9999999"

' ログインページの取得
Call objHTTP.Open("GET","https://ssl.seesaa.jp/auth",False)
Call objHTTP.setTimeouts(lResolve, lConnect, lSend, lReceive)
Call objHTTP.Send()

' ページ全体
strPage = objHTTP.responseText

' 投稿用のキーを取得
regEx.IgnoreCase = True
regEx.Global = True
regEx.Pattern = "authpost""><input value=""([^""]+)"""
Set Matches = regEx.Execute( strPage )
For Each Match in Matches
	strPostKey = Match.SubMatches(0)
	Exit For
Next


' ***********************************************************
' (1) : POST
' ***********************************************************
' ログイン URL
Call objHTTP.Open("POST","https://ssl.seesaa.jp/auth",False)
' POST 用ヘッダ
Call objHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
strData = ""
strData = strData & "aXt=" & strPostKey
strData = strData & "&email=" & emailData
strData = strData & "&password=" & passData
strData = strData & "&return_to=http%3A%2F%2Fblog.seesaa.jp%2F"
Call objHTTP.SetRequestHeader("Content-Length",Len(strData))
Call objHTTP.Send(strData)

strHeaders = objHTTP.getAllResponseHeaders()
if bDebug then
	Wscript.Echo strHeaders
end if

' ***********************************************************
' (2) : GET
' ***********************************************************
' 対象ブログ URL
Call objHTTP.Open("GET","https://blog.seesaa.jp/cms/home/switch?blog_id="&blogData&"&goto=/cms/article/regist/input" , False)
Call objHTTP.setTimeouts(lResolve, lConnect, lSend, lReceive)
Call objHTTP.Send()

'Set OutObj = Fs.OpenTextFile( "log.txt", 2, True )
'OutObj.Write objHTTP.responseText
'OutObj.Close

if bDebug then
	Wscript.Echo "開始"
end if

' ***********************************************************
' (3) : GET
' ***********************************************************
' 投稿ページ
Call objHTTP.Open("GET","https://blog.seesaa.jp/cms/tools/mt/export/input" , False)
Call objHTTP.setTimeouts(lResolve, lConnect, lSend, lReceive)
Call objHTTP.Send()

' 投稿用のキーを取得
strPage = objHTTP.responseText
regEx.Pattern = "enctype=""multipart/form-data""><input value=""([^""]+)"""
Set Matches = regEx.Execute( strPage )
For Each Match in Matches
	strPostKey = Match.SubMatches(0)
	Exit For
Next

' ***********************************************************
' カテゴリ ID リストの取得 ( 2015/02/04 追加 )
' ***********************************************************
regEx.Pattern = "name=""category_id"" value=""([^""]+)"""
regEx.Global = True
Set Matches = regEx.Execute( strPage )

Wscript.Sleep(2000) ' 2秒間の間を置く

' ***********************************************************
' (3) : Export 用データ準備
' ***********************************************************
boundary = DateDiff("s", "1970/1/1 0:00:00",DateAdd("h",-9,now))
h_boundary = "---------------------------" & boundary


target_year1 = WScript.Arguments(0)
target_month1 = WScript.Arguments(1)
target_year2 = WScript.Arguments(2)
target_month2 = WScript.Arguments(3)

' ソース内テキストデータの表示
str = RegTrim(GetResource("myTextData"))
str = Replace( str, "$B", boundary )
str = Replace( str, "$YEAR1", target_year1 )
str = Replace( str, "$MONTH1", target_month1 )
str = Replace( str, "$YEAR2", target_year2 )
str = Replace( str, "$MONTH2", target_month2 )
str = Replace( str, "$AXT", strPostKey )
if bDebug then
	Wscript.Echo str
end if

' ***********************************************************
' カテゴリ ID リストの設定 ( 2015/02/04 追加 )
' ***********************************************************
bFlg = False

For Each Match in Matches
	if bFlg <> False then
		bFlg = True
	else
		str = str & vbCrLf
	end if
	str = str & "Content-Disposition: form-data; name=""category_id""" & vbCrLf & vbCrLf
	str = str & Match.SubMatches(0) & vbCrLf
	str = str & "-----------------------------" & boundary
Next

str = str & "--" & vCrLf

' ***********************************************************
' (4) : Export 用データ送信
' ***********************************************************
Call objHTTP.Open( "POST","https://blog.seesaa.jp/cms/tools/mt/export/do_export", False )
' POST 用 HTTP ヘッダ
Call objHTTP.setRequestHeader("Content-Type", "multipart/form-data; boundary=" & h_boundary)
' 念のため
Call objHTTP.setRequestHeader("Referer", "https://blog.seesaa.jp/cms/tools/mt/export/input" )
Call objHTTP.SetRequestHeader("Content-Length",Len(str))
Call objHTTP.setTimeouts(lResolve, lConnect, lSend, lReceive)
Call objHTTP.Send(str)

Stream.Open
Stream.Type = 1 ' バイナリ
Stream.Write objHTTP.responseBody
Stream.SaveToFile "seesaa_" & blogData & "_" & target_year1 & target_month1 & "_" & target_year2 & target_month2 & ".log", 2
Stream.Close   

Wscript.Echo "処理が終了しました:" & target_year1 & target_month1 & "〜" & target_year2 & target_month2

' ***********************************************************
' 文字列前後の漢字スペースを含むホワイトスペースの削除
' ***********************************************************
Function RegTrim( strValue )

	Dim regEx, str

	Set regEx = New RegExp
	regEx.IgnoreCase = True
	regEx.Pattern = "^[ \s]+"
	str = regEx.Replace( strValue, "" )
	regEx.Pattern = "[ \s]+$"
	RegTrim = regEx.Replace( str, "" )

End Function
</SCRIPT>

<COMMENT>
************************************************************
 ソース内テキストデータ
************************************************************
</COMMENT>
<RESOURCE id="myTextData">
<![CDATA[
-----------------------------$B
Content-Disposition: form-data; name="aXt"

$AXT
-----------------------------$B
Content-Disposition: form-data; name="encode"

utf8
-----------------------------$B
Content-Disposition: form-data; name="from_year_month"

$YEAR1-$MONTH1
-----------------------------$B
Content-Disposition: form-data; name="to_year_month"

$YEAR2-$MONTH2
-----------------------------$B
]]>
</RESOURCE>

</JOB>

オリジナルのシステムで範囲指定が指定可能なのでエクスポートが便利になっています。

▼ バッチファイル例は以下のようになりました
cscript.exe bk.wsf 2009 04 2010 03

sleep.vbs
cscript.exe bk.wsf 2010 04 2011 03

sleep.vbs
cscript.exe bk.wsf 2011 04 2012 03

sleep.vbs
cscript.exe bk.wsf 2012 04 2013 03
バックアップには、ブログの id 番号が必要です
=====================================================================
拡張子がスクリプトのままだと、Google Chrome がダウンロードさせてくれないので、
 .lightbox としています。その為、

【最初に set_script.bat を実行して下さい】
=====================================================================

■ 1) seesaa_backup.bat の中の範囲指定部分を適宜変更して利用して下さい。

例) 2012/4月 〜 2013/3月
cscript.exe bk.wsf 2012 04 2013 03

   範囲を広くしすぎると、エラーになるおそれがあるので年単位が妥当だと思います


■ 2) bk.wsf の以下の部分を変更して、seesaa.bat を実行して下さい

(行は36〜39)
emailData = "メールアドレス"
passData = "パスワード"
' バックアップしたいブログの ID を指定します
blogData = "9999999"


ブログの ID は、https://blog.seesaa.jp/cms/home/index で、該当
するブログの名前のリンク内の URL から取り出します。

例) blog_id の番号
https://blog.seesaa.jp/cms/home/switch?blog_id=9999999&goto=/cms/article/regist/input


■ 著作権その他

このプログラムはフリーです。どうぞ自由に御使用ください。
著作権は作者である私(lightbox)が保有しています。
また、本ソフトを運用した結果については、作者は一切責任を
負えせんのでご了承ください。
posted by at 2015-12-18 12:14 | Seesaa | このブログの読者になる | 更新情報をチェックする

2015年02月26日


Seesaa のテンプレートのタイトル部分 ( 2015年2月現在 ) ☀

このままですと、改行が入ってしまうので使える事は使えますが、展開された HTML ソースはあまり見栄えは良くありません。
<title>
<% if:page_name eq 'search' %>
  <% keyword %>: 
<% /if %>

<% if:page_name eq 'archive' %>
  <% extra_title_datetime | date_format("%Y年%m月") %> : 
<% else %>
  <% if:extra_title %>
    <% extra_title | remove_emoji %> :
  <% /if %>
<% /if %>

<% if:current_page > 1 %>(
  <% current_page %>) 
<% /if %>

<% blog.title %>
</title>

しかし、タイトルだけでかなりのテンプレート情報が含まれています。少なくとも if 文による HTML の出力についてとても参考になると思います。

まず、通常の記事ページとカテゴリページの場合のタイトルは、extra_title であり、それがある時に extra_title より絵文字を省いて出力しています。

remove_emoji は、記事のテキストエリアで使える絵文字です。結局 img 要素ですが、この記事でもタイトルとして使えています。ですが、title 要素内で使うのはまずいので remove_emoji で削除できるという事です。

この際の |(縦棒)は、いわゆるパイプの役目をして、他の文字列変換に繋げる事ができます。

current_page は、複数ページがある場合、現在が何ページかという数値が入っているので、この例では 2 ページ目以降ではタイトルに ( ページ数 ) が出力されます

※ 昔は、<%- または -%> で前後の改行コードを取り除いていた記憶があるのですが、動作しませんでした。


posted by at 2015-02-26 19:22 | Seesaa | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します