2018年1月31日水曜日

Webページを完全に単一のHTMLファイルで保存(cssや画像もhtml内に埋め込み)

Chromeの話です。

Ctrl+Sで保存しようとすると、以下2通りの選択があります。

  • ウェブページ、HTMLのみ
  • ウェブページ、完全

しかし何れも一長一短で、
「HTMLのみ」は、単純にhtmlファイルダウンロードするだけなので、cssやなどはリンクのままになり、
逆に「完全」は、リンクされているcssやイメージ画像などを全てダウンロードしてしまいます。


そこでこちら。

  • ウェブページ、1つのファイル

こいつを使うと、cssはファイル内に埋め込まれ、
画像ファイルはbase64変換され、
ひとつのHTMLファイルとしてWebページを保存できます。

Web魚拓などにも使われている技術らしいですね。
絶対にロストしたくないページについてはこれで
ローカルにでもアーカイブするのがよさそうです。


以下、機能の有効化の手順です。

まずは以下URLをChromeで開きます。

chrome://flags/#save-page-as-mhtml

すると以下画面が表示されるため、 Sage Page as MHTML
有効にするをクリックします。

☑ Sage Page as MHTML チェックが入ったことを確認し、
今すぐ再起動をクリックします。

以後、 ウェブページ、1つのファイル が利用できるようになります。


MHTMLってのがあるんですね。

2018年1月30日火曜日

ntpdateコマンドの代わりにchronyで強制同期

chronyでntpdateコマンドの代わりに強制同期

時刻を強制同期するときにはCentOS6まではntpdateコマンドを使用していましたが、
CentOS7からntpdがプリインストールされなくなり、代わりに
chronyがインストールされるようになりました。

今までは以下で強制的に時刻同期していましたが、
ntpdateコマンドもntpdと同様デフォルトでは入っていないため、
とりあえず以下打って強制同期、ってことができなくなりました。

ntpdate ntp.nict.jp

同等のことをchronyで行うには、以下を実行します。

chronyc makestep

以下のように応答があれば問題なく同期できています。

$ sudo chronyc makestep
200 OK

以下のように出力される場合、多分chronydが起動していません。

$ sudo chronyc makestep
506 Cannot talk to daemon
$ sudo systemctl status chronyd
● chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Wed 2018-01-30 09:00:00 JST; 30s ago
     Docs: man:chronyd(8)
           man:chrony.conf(5)
  Process: ***** ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  Process: ***** ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: ***** (code=exited, status=0/SUCCESS)
     :
     :

-dオプションでデバッグ出力。

$ sudo chronyc -d makestep
Resolved 127.0.0.1 to 127.0.0.1
Resolved ::1 to ::1
Opening connection to /var/run/chrony/chronyd.sock
Could not connect socket : No such file or directory
Opening connection to 127.0.0.1:323
Sent 28 bytes
Timeout 0.999909 seconds
Could not receive : Connection refused
Sent 28 bytes
Timeout 1.999987 seconds
Could not receive : Connection refused
Sent 28 bytes
Timeout 3.999990 seconds
Could not receive : Connection refused
Opening connection to ::1:323
Sent 28 bytes
Timeout 0.999927 seconds
Could not receive : Connection refused
Sent 28 bytes
Timeout 1.999986 seconds
Could not receive : Connection refused
Sent 28 bytes
Timeout 3.999988 seconds
Could not receive : Connection refused
506 Cannot talk to daemon

デーモンを起動してリトライ。

$ sudo systemctl start chronyd
$ sudo chronyc makestep
200 OK

どこと同期しているか、は以下で確認できます。

chronyc sources

以下、出力例。

$ sudo chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ nipper.paina.net              2   6   377    26   +779us[ +793us] +/-   27ms
^+ y.ns.gin.ntt.net              2   6   377    25   -434us[ -434us] +/-  101ms
^+ 122x215x240x52.ap122.ftt>     2   6   377   157   -397us[ -373us] +/-   49ms
^* timpany.srv.jre655.com        2   6   377    26   -820us[ -806us] +/-   47ms

2018年1月29日月曜日

jqコマンドが入っていない環境でJSONを整形

jqコマンドなんてバイナリ一個なんだから何も考えず放り込んじゃっていいじゃん…
って思うんですけど、運用ポリシー的にNGな環境も有るんですよね…。

そんなイケてないポリシーの方をなんとかしろっていう議論は置いておき、
標記、jqコマンドが入っていない環境でJSONを整形する方法です。

めっちゃ簡単です。

19.2. json — 19.2.5. コマンドラインインターフェイス — Python 3.6.3 ドキュメント

JSONをパイプで以下コマンドに渡すだけ。

python -m json.tool

以下、例。

$ echo '{"date":"2018-01-29T10:00:00+0900","place":"workplace","status":["sleepy","hungry","wanna go home"]}' | python -m json.tool
{
    "date": "2018-01-29T10:00:00+0900",
    "place": "workplace",
    "status": [
        "sleepy",
        "hungry",
        "wanna go home"
    ]
}

いい感じにパースしてくれます。

「filterが無い」とか「色が付かない」とか言うわがままは我慢します。
あるだけマシです。

2018年1月28日日曜日

CIDR表記のネットワークアドレスを計算する/指定したネットワークに属するIPアドレス一覧を出力する/そのIPアドレス群のPing応答を確認するスクリプト

CIDR表記のネットワークのネットワークアドレスを出力したり、
ブロードキャストアドレス以外のIPアドレスを一覧出力したり、
またそのIPアドレス群のPing応答を確認したりするbashスクリプトを、
個人的に欲しかったので、作りました。

https://gist.github.com/djeeno/fcd09b666a8e7bd6fc356b5f410f0ff5

CentOS7、Ubuntu16.04、Ubuntu16.04(WSL)、Debian9、macOS High Sierraで動作を確認しています。

使い方を以下に例示。

# IPアドレスを一覧出力: netaddr
$ ip.sh netaddr 192.168.100.50/29
192.168.100.48

# IPアドレスを一覧出力: list
$ ip.sh list 192.168.100.0/29
192.168.100.49
192.168.100.50
192.168.100.51
192.168.100.52
192.168.100.53
192.168.100.54

# IPアドレスに対してPingを飛ばし応答のあったアドレスを出力: inuse
$ ip.sh ping 192.168.100.1/29
192.168.100.49  ttl=64 Linu   time=7.43ms
192.168.100.50  ttl=128 Windows time=8.88ms
192.168.100.54  ttl=64   Linux    time=5.69ms

Ping応答のttlからOSを(ある程度)判別できるので、
「これが何のOSなのか」も横に出力するようにしました。

(と言っても、Linux or UNIX or Windowsの3択ですが…)


適当に立てたマシンがDHCPからどのIPアドレスを振られているか調べる時とか、非常に便利です。

2018年1月27日土曜日

Windowsでhostsをすごく簡単に編集するためのバッチファイル(.bat)

Windowsでhostsをすごく簡単に編集するためのバッチファイル(.bat)

Windowsのhostsファイルってすごく深いところにある上に、
管理者権限で起動しているエディタでないと編集できないっていう、
かなりしんどい仕上がりになっています。


それを解決するのがこちら。

@echo off
start powershell.exe -Command "Start-Process -Verb RUNAS notepad C:\Windows\System32\drivers\etc\hosts"

たった二行だけのバッチファイルですが、非常に有用です。
僕自身、これを使わない日はありません。


これを起動すると、管理者権限でメモ帳を起動し、hostsファイルを開いてくれます。
つまり、このバッチを実行するだけで、hostsファイルが編集できるということ。

例えば、下記パスに設置しておけば、

%USERPROFILE%\edit-hosts.bat

Windows + R を押下し、

ファイル名を指定して実行から、edit-hostsと入力、実行すると、

この通り!


Windowsエンジニアにとっては結構革命的なことだと思うんです、これ…。

2018年1月26日金曜日

エクスプローラーの何もないところを右クリック→そのパスをカレントディレクトリにコマンドプロンプト(cmd.exe)やPowerShellを起動

長いタイトルですが…。
本当はbashについても書きたかったのを泣く泣く削ってこの長さです。

何かというと、つまりこういうことをします。

デスクトップで右クリックすると、見慣れない

Open with Bash(B)
Open with cmd.exe(C)
Open with PowerShell(P)

というメニューが増えます。

以下画像参照。

こいつらをクリックすると、先程右クリックしたパス、
デスクトップをカレントディレクトリに、
bash、コマンドプロンプト、PowerShellが起動できます。

なんて楽なんでしょう。

エクスプローラー触っているときに「このパスで起動したいな」ってこと、
結構「あるある」じゃないでしょうか。


ということで、どうすれば追加できるか。

管理者権限でコマンドプロンプトを立ち上げて、以下を実行します。

reg add HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCmdexe /t REG_SZ /d "Open with cmd.exe(&C)"
reg add HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCmdexe\command /t REG_SZ /d "cmd.exe"
reg add HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithPowershell /t REG_SZ /d "Open with Powershell(&S)"
reg add HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithPowershell\command /t REG_SZ /d "powershell.exe"
reg add HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithBash /t REG_SZ /d "Open with Bash(&B)"
reg add HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithBash\command /t REG_SZ /d "bash.exe"

以上。


WindowsのTipsを載せていきたいリポジトリ。

https://github.com/djeeno/windows/

2017/01/26 現在 空っぽに近い。

2018年1月24日水曜日

世界一簡単な git コマンドのソースからのインストール for Linux

yum や apt などのパッケージ管理ツールでインストールできる git のバージョンは大抵かなり古いので、僕はいつもソースから最新版をインストールするようにしています。

sudo権限を持つユーザで以下を実行するだけ。

UbuntuなどDebian系の場合

install_git_from_source() { sudo bash -cx 'apt-get update && apt-get -y install lib{curl4-gnutls,expat1,ssl,z}-dev gcc gettext make wget && cd /usr/local/src && BASE_URL="https://www.kernel.org/pub/software/scm/git/" && wget -cSv "${BASE_URL}$(wget -qO- ${BASE_URL} | grep -o -E "git-[0-9\\.]+.tar.gz" | sort -uV | tail -n 1)" && tar vxzf $(basename $_) && cd $(basename -s .tar.gz $_) && make prefix=/usr/local all && make prefix=/usr/local install && git --version'; } && install_git_from_source

CentOSなどRHEL系の場合

install_git_from_source() { sudo bash -cx 'yum makecache fast && yum -y install {curl,expat,gettext,openssl,zlib}-devel gcc make perl-ExtUtils-MakeMaker wget && cd /usr/local/src && BASE_URL="https://www.kernel.org/pub/software/scm/git/" && wget -cSv "${BASE_URL}$(wget -qO- ${BASE_URL} | grep -o -E "git-[0-9\\.]+.tar.gz" | sort -uV | tail -n 1)" && tar vxzf $(basename $_) && cd $(basename -s .tar.gz $_) && make prefix=/usr/local all && make prefix=/usr/local install && git --version'; } && install_git_from_source

世界一簡単。

[user@localhost ~]$ git --version
git version 2.16.1

2018年1月22日月曜日

gogsをソースからインストールするとデータベースにSQLiteを選択できない?

gogsをソースからインストールするとデータベースにSQLiteを選択できない?

golang製のgithubクローンのgitサーバ【gogs】を、
ソースからインストールしたのですが、
タイトルでハマりました。

以下実際にやったインストール手順。

go get -u github.com/gogits/gogs
cd $GOPATH/go/src/github.com/gogits/gogs
go build

http://gogs.local:3000/

何故かSQLite3がドロップダウンリストに表示されません。

調べてみたところすぐに原因は判明しました。

From source - Gogs

めっちゃ普通に公式に書いてありました。

以下、抜粋。

A couple of things do not come with Gogs automatically, you need to compile Gogs with corresponding build tags.
Available build tags are:

  • sqlite3: SQLite3 database support
  • pam: PAM authentication support
  • cert: Generate self-signed certificates support
  • miniwinsvc: Builtin windows service support (or you can use NSSM to create a service)

For example, you want to support all of them, first delete directory
$GOPATH/pkg/${GOOS}_${GOARCH}/github.com/gogits/gogs and then do:

$ go get -u -tags "sqlite pam cert" github.com/gogits/gogs
$ cd $GOPATH/src/github.com/gogits/gogs
$ go build -tags "sqlite pam cert"

If you get error: fatal error: security/pam_appl.h: No such file or directory, then install missing package via sudo apt-get install libpam0g-dev.

要は上の通り「-tagsオプションをつけてビルドしてくださいね」ということでした。

実際にやってみると、

無事データベースにSQLite3を選択できるようになりました。

2018年1月21日日曜日

Markdown(.md)でキーボードのキーを表記する

Markdown(.md)でキーボードのキーを表記する。

こんな感じ: Ctrl+C, Ctrl+P

どこで見つけたかすっかり忘れましたが、以来重宝しています。


書き方はとっても簡単。

これが、

<kbd>Ctrl</kbd>

こうなる。

Ctrl


意外と知らない方が多いみたい。

2018年1月20日土曜日

LinuxのコマンドでGithubに登録したSSH公開鍵を確認/ダウンロードする方法

LinuxのコマンドでGithubに登録したSSH公開鍵を確認/ダウンロードする方法。

Githubに登録したSSH公開鍵は以下のURLとして公開されています。

https://github.com/$USERNAME.keys

よってcurlなりwgetなりでその内容を取得することができます。

curlの場合。

curl https://github.com/djeeno.keys

wgetの場合。

wget -qO- https://github.com/djeeno.keys

ただ、人によっては複数の公開鍵が登録されているなど、
そのままauthorized_keys等に投げ込むには若干厄介かと。
(少なくとも僕はそうです。)

なので、僕はいつもGithub Pagesでkeysってファイルを公開してます。

curl https://djeeno.github.io/keys

2018年1月19日金曜日

Linuxのコマンドで自分のグローバルIPアドレスを調べる方法(+おまけ【cli.fyi】)

Linuxのコマンドで自分のグローバルIPアドレスを調べる方法(+おまけ【cli.fyi】)。

curl checkip.amazonaws.com
curl cli.fyi/me
curl ifconfig.io
curl ifconfig.me
curl ipinfo.io

bashスクリプトに組み込む時などは、
一番可用性が高そうなcheckip.amazonaws.comを使っています。
ちょっと長いですが。


cli.fyi(cli for your information)は他にも色々できるみたいです。
公式 https://cli.fyi/ を見ると色々載っています。
以下、参考。

  • Crypto Currency Prices(暗号通貨の現在価格)
    • curl cli.fyi/BTC
  • Email Address Information
    • curl cli.fyi/john.doe@10minutemail.com
  • IP Address Information
    • curl cli.fyi/8.8.8.8
  • Media/URL Information
    • curl cli.fyi/https://vimeo.com/231191863
  • Client Information
    • curl cli.fyi/me
  • Domain Whois / DNS information
    • curl cli.fyi/github.com
  • Date/Time Information
    • curl cli.fyi/time
  • Programming Language Links
    • curl cli.fyi/PHP
  • Country Information
    • curl cli.fyi/united-states
  • Popular Emojis(絵文字)
    • curl cli.fyi/emojis
  • Help
    • curl cli.fyi/help

詳細はこちらから。

2018年1月18日木曜日

PowerShellスクリプト(.ps1)をバッチファイル(.bat)として実行したい

PowerShellスクリプト(.ps1)をバッチファイル(.bat)として実行したい。

そのような場合には、以下を1行目に追記する。

@setlocal enableextensions enabledelayedexpansion & set "PATH0=%~f0" & PowerShell.exe -Command "& (Invoke-Expression -Command ('{#' + ((Get-Content '!PATH0:'=''!') -join \"`n\") + '}'))" %* & exit /b !errorlevel!

以下、具体例。

@setlocal enableextensions enabledelayedexpansion & set "PATH0=%~f0" & PowerShell.exe -Command "& (Invoke-Expression -Command ('{#' + ((Get-Content '!PATH0:'=''!') -join \"`n\") + '}'))" %* & exit /b !errorlevel!

# 以下、PowerShellスクリプト
while (1) {
  Get-Date
  Start-Sleep 1
}

以上の内容をtest.bat等適当な名前で保存、実行すれば、
PowerShellをバッチファイルとして実行できます。


参考
https://www.pg-fl.jp/program/tips/ps1bat2.htm

2018年1月17日水曜日

【ワンライナー】カレントディレクトリ配下のディレクトリ群をzip

【ワンライナー】カレントディレクトリ配下のディレクトリ群をzip


find ./* -maxdepth 1 -type d | xargs -P254 -I@ zip -qr "@.zip" "@"
  • findコマンド
    • -maxdepthオプションで階層を指定。
      • 今回の-maxdepth 1の場合、探しに行くのは1階層まで。
    • -typeオプションで対象を指定。
      • dでディレクトリ、fでファイルを示す。
  • xargsコマンド
    • 今回はパイプ|から渡された標準入力を処理している。
    • -Iオプションで、標準入力から受け取った内容を展開する。
      • 今回の-I@の場合、zip -qr "@.zip" "@"は以下のように展開される。
        • zip -qr ディレクトリ名.zip ディレクトリ名
    • -Pオプションで、複数プロセスを立ち上げ並列処理を実施する。
      • 今回の-P254の場合、254個まで並列化する。

昔はこんな感じでやってました。拙い感じが懐かしいです。

ls | while read LINE; do zip -qr "$LINE".zip "$LINE"; done

2018年1月16日火曜日

htaccess等による30xリダイレクトが使えない際のページリダイレクト

htaccess等による30xリダイレクトが使えない際のページリダイレクト


サーバ側で301、302リダイレクトができない状況下で、
特定のURLへのアクセスを、特定ページへリダイレクトさせたい、というお話。

window.location.hrefに、http-equiv="refresh"もおまけして、
以下な感じのリダイレクト用index.htmlを設置しました。

<!DOCTYPE html>
<html>
<head>
<title>Redirect page</title>
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=//djeeeno.blogspot.com/">
<script>window.location.href = "//djeeeno.blogspot.com/";</script>
</head>
<body>
Please click <a href="//djeeeno.blogspot.com/">here</a> if you are not redirected automatically.
</body>
</html>

コピペする際には//djeeeno.blogspot.com/を置換してください。


余談ですが、Googlebotさん的には、以下な感じらしいです。

可能なら、htaccessなり、サーバ側で30xリダイレクトの方が良いみたいですね。


参考
Google がサポートしているメタタグ - Search Console ヘルプ


2018/02/05 追記 そのHTMLの書き方、本当に合ってますか? - HTMLの検証を行う「Nu Html Checker」を以て修正したものを追記しました。

<!DOCTYPE html>
<html>
<head>
<title>Redirect page</title>
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=//djeeeno.blogspot.com/">
<script>window.location.href = "//djeeeno.blogspot.com/";</script>
</head>
<body>
Please click <a href="//djeeeno.blogspot.com/">here</a> if you are not redirected automatically.
</body>
</html>

2018年1月15日月曜日

【ワンライナー】世界一簡単なSELinuxの無効化

【ワンライナー】世界一簡単なSELinuxの無効化

早速書くことがないので、SELinuxの無効化のワンライナーでも書いてお茶を濁します。

test -r /etc/selinux/config && sudo su -c '(grep -q ^SELINUX=enforcing /etc/selinux/config && { sed "s/^\(SELINUX=\)\(enforcing\)/$(date +\#\ \%Y\%m\%d\ \#)\1\2\n\1disabled/g" $_ -i_$(date +\%Y\%m\%d_\%H\%M\%S).backup ; setenforce 0 ; })'

動作としては以下。

  • 何かしらのスクリプトに組み込む際、複数ディストリビューションに対応するため、最初に/etc/selinux/configの存在確認を行う。
  • /etc/selinux/configファイルにSELINUX=enforcingもしくはSELINUX=permissiveの記載があれば、
    • /etc/selinux/config_YYYYmmdd_HHMMSS.backupとして、/etc/selinux/configファイルのバックアップを取得する。
    • SELINUX=enforcingもしくはSELINUX=permissiveをコメントアウトし、SELINUX=disabledを追記する。
  • SELinuxが起動している場合、Permissiveモードに変更する。

2018年1月14日日曜日

MarkdownとStackEditでBlogger(改)

前々回、こんな記事を書いたばかりですが、下書きの再編集を行うと改行が消滅したり、
Bloggerから投稿を編集すると、StackEditのMarkdown(.md)ファイルとの
整合性が取れなくなったりと、若干面倒な点があったため、運用方法を変更しました。


以下、記事投稿の手順。

Export to disk

Export as HTMLから

Plain HTMLを選択し、COPY TO CLIPBOARD

あとは、Bloggerに貼り付けて投稿するだけです。


以前の方法よりシンプルで気に入っています。

2018年1月13日土曜日

BloggerでMarkdownのシンタックスハイライト

前回、Bloggerの記事をMarkdown(.md)で書けるようにしたので、
次はコードブロックのシンタックスハイライトに手を加えます。

Bloggerのテーマにjsとcssを追記するだけです。
超簡単。


Bloggerの左ペインテーマ

HTMLの編集

headの終了タグ</head>の行の直前に、以下を追記します。

以下は当ブログ(2018/01/13時点)の例です。
コピペ、もしくは適宜変更してご利用ください。

  <!-- START USER DEFINED AREA -->
  <link href='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css' rel='stylesheet'/>
  <style>code{font-family:Menlo,"Osaka-等幅",Consolas,"Courier New",Courier,monospace;color:#333;background:#f8f8f8};</style>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/awk.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/erlang.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/erlang-repl.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/go.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/ldif.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/scheme.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/yaml.min.js'></script>
  <script>hljs.initHighlightingOnLoad();</script>
  <!-- END USER DEFINED AREA -->

たったこれだけ。簡単ですね。


2018/01/24 時点追記。

Markdownのキーボードのキー表記のCSSを追加。

  <!-- START USER DEFINED AREA -->
  <link href='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css' rel='stylesheet'/>
  <style>code{font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;color:#333;background:#f8f8f8};</style>
  <style>kbd{padding:.1em .6em;border:1px solid rgba(63,63,63,0.25);-webkit-box-shadow:0 1px 0 rgba(63,63,63,0.25);box-shadow:0 1px 0 rgba(63,63,63,0.25);font-size:.7em;font-family:sans-serif;background-color:#fff;color:#333;border-radius:3px;display:inline-block;margin:0 .1em;white-space:nowrap}</style>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/awk.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/dos.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/erlang.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/erlang-repl.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/go.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/ldif.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/scheme.min.js'></script>
  <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/yaml.min.js'></script>
  <script>hljs.initHighlightingOnLoad();</script>
  <!-- END USER DEFINED AREA -->

2018年1月12日金曜日

MarkdownとStackEditでBlogger

当ブログは以下要件を満たすため、記事作成にStackEditを使用しています。

  • blogサービスはbloggerを利用すること。
  • Markdown(.md)を用いて記事を記載できること。

(bloggerが公式でMarkdownサポートしてくれればいいのに…。)


StackEditで編集した記事をbloggerに投稿する際、
投稿事前にレイアウトを確認したかったり、
パーマリンクを編集したかったりしたため、
下書きとしてPublishしています。

以下、手順です。

↓右ペインPublish

Publish to Blogger

file properties

Current file propertiesstatus: draftを追記してOK


しかし、Publish毎度こんなことをしていては、
あまりに面倒くさすぎるので、デフォルト設定を
下書き投稿にできないか、と設定を探したところ、
いい感じのやつがありました。

↓右ペインMore...

Settingsから

↓次の2行を追記します。

newFileProperties: |
  status: draft

これで、新規に作成するファイルのプロパティには、
status: draftが自動で付与されるようになりました。