.wpress の解凍で学ぶ npm と npx の違い

JavaScript 系でよく使われる npm と npx の違いがピンときていなかった。

よく以下のように説明されている。

npxとはエヌピーエックスと読み、Node Package eXecutor の略語であり、Node.jsパッケージの実行を一時的に行うためのコマンドラインツールです。
簡単に言えば、使いたいパッケージをインストール + 実行 + アンインストールをまとめて行います。
つまり、一時的にパッケージを利用でき、使用後はプログラムが残りません。npmとは違い作業環境を汚さずに利用できる便利なコマンドとなっています。

これを初見で理解できる人はそうはいないような?

私の場合、.wpress (WordPress プラグイン All-in-one-Wp-Migration がワードプレスサイトをインポート/エクスポートするために生成するファイル形式)を解凍する際に npx コマンドを使うケースがあったので、ようやく得心した。

npx wpress-extract filename.wpress

とすると、npx wpress-extract があたかもコマンドラインツールのように .wpress を解凍してくれます。

元々は JavaScript なはずなのに小癪な (^^;)

ところで All-in-one-Wp-Migration の評判が微妙なのは
「WordPress サイトの引越しにはAll-in-one-Wp-Migration プラグインを使え」
ばかりで、この手の情報が流通していないからではないかと思ったりする。

実用的な All-in-one-Wp-Migration の使い方

評判がいいようなので追記。

ある程度のサイトの場合、All-in-one-Wp-Migration を使ったとしてもファイルサイズは数百メガになり、大抵のレンタルサーバーでは、アップロードサイズ上限のためこれを一気にアップロードすることはできない。

で、有償版を購入・・・となる流れなんだが、待ってほしい。

上で書いたように .wpress は npx をうまく使うことでローカル環境で解凍可能だ。だから、

解凍後、必要なファイルのみ FTP などでアップロードした方が現実的

ではないかと思う。

なお、記事内容は database.sql というファイルに入っています。

 

 

Vue で書かれた editor

へえ、こんなのあるんだ。

Vue で書かれているなら、Nuxt.js でも使えるってことだよなあ。

Tiptap』というのが公式サイトのようです。

新型コロナ対策サイトとフロントエンド開発

新型コロナ対策サイトが大賑わいだが、うまく使いこなせていないグループもあるような・・・。

なにしろ開発に使っているのが Nuxt.js だからなー。

初学者には敷居高いと思う。

Nuxt.js は、拡張子?の js からわかるように JavaScript をベースにしている。

JavaScript というと「ブラウザに動きを与えるためのスクリプト系の言語」という認識で止まっている人は多い。

もちろんブラウザ環境でしか動かないならば、ウェブアプリなぞ作れるわけがない。

少々齧ったことある人なら、「知ってる知ってる、サーバーサイド JavaScript 使っているんだよね」といった反応が返ってきたりもするんだろうが、それだけで例えばコロナ対策サイトを改変できるかというとできないと思う。

現在のフロントエンド開発は、一昔前とは景色が違う

原理的な理解・習得の難しさという観点から見れば、Java や C++ あたりを習得する方がよほど難しいと思うが、違う、違うんだよ、フロントの難しさは。

歴史的に見れば、実行環境、言語自体の洗練化、ライブラリ、フレームワーク・・といったパーツが、割と統一感なく進化してしまったが故に、全体の把握をしにくくなっているのだ。

私としては、やる気のある人はこれを機会に node あたりから入ってほしいなと思うのだった。

 

(追記)

この当時書き溜めていたメモなどをまとめて AXIA というサイトで記事化しました。

イマドキのフロントエンド開発』初学者向けとは思いませんが、手を動かして覚えるならば、それなりに役にたつと思います。

JavaScript の module や class の話』上の記事よりこっちを先に読んだ方がいいかも。まず、ローカルマシンで JavaScript が動くことを実感してほしい。
話はそれから(笑)。

 

GUI な人のためのサーバー管理

秋葉
ねぇねぇ、axia タン。

以前にサーバ選びで『普段使いは管理が楽な mixhost で、凝ったことは AWS (Amazon Web Service)で、と用途に応じて使い分けるのも一つの手かもしれません』と言ってたじゃない?

凝ったことっていったい何?


axia
あー、その話かあ

というわけで、サーバ管理の話。

凝ったことというのは、具体的には、

OS として windows server を使いたいとき

Java を走らせたいとき(たいていのレンタルサーバで Java は禁止)

などでしょうか。

一般の人がレンタルサーバを借りるのは、お店のホームページを立ち上げたたいとか個人でブログサイトを持ってみたいとかという場合が多い。で、そういう場合は、Linux 系 OS に WordPress でも設置すればことがすんでしまうわけです。

実際、ほとんどのレンタルサーバの OS は Linux 系です。

ですが、場合によっては windows 系 OS で開発したソフトや Java の Web アプリをサーバ上で走らせたいときがあります。あるいは、

秋葉
俺氏、正直言ってコマンドライン操作が苦手。

Unix 系コマンド覚える気さらさらない。

なじみのあるウィンドウズでサイトつくって何が悪いの?

 

という人もいるでしょう。

axia
うーん。

じゃあ、実際にやってみる?

ちょうど Azure の無料枠(無料サブスクリプション)も残っているし。

秋葉
Azure ってマイクロソフトのクラウド環境のことだよね。

やる!

アジュールって語感も〇〇坂46 のメンバーの愛称っぽくていいし。

あじゅ、可愛いよ。あじゅ。

 

申し込みなどは、私がやりましょう。ここらへんは指示にしたがっていけば、そんなに迷うことはない。管理画面↓も可愛い。

で、適当にマシンを選択する。もちろん OS は windows server 。デスクトップからリモートの仮想マシンに接続すると…

なんと、自分のデスクトップ環境にリモートの画面がグラフィカルに出現!

リモートデスクトップというやつですね。

秋葉
これ!

俺氏が求めていたのはこれ!!

なんで、これが業界標準じゃないの?

axia
そういうなら、しばらくこれで遊んでみたら?

 

 

……

(数時間経過)

秋葉

(ドンヨリ)

何、この疲れる感じ…。

 

はは、秋葉ちゃんが嘆息するのも無理がない。自分の環境に GUI 的な環境をさらに作るわけだから、処理が重くなって当然。グラフィカルな環境というのはそれだけ負荷がかかるのだ。

なんとか使いやすくしようと頑張っている人たちもいて、それなりに裏技的なノウハウもあるけど、限度がある。おそらく Azure の windows server をそれなりにマトモに動かそうと思ったら、最低ランクの構成ではダメ。メモリ 1.75 G 、サーバ設置場所を日本にしてぎりぎり使えるようになる感じでしょうか。それでも動作はかなりもっさりしている。

以前、Java の Web アプリを windows server で無理やり動かしたときは、あまりの反応の悪さに air さん(air-h-128k-il 氏のこと)はキレて AWS の Ubuntu で Java 環境作ってたわね。

でも、使い慣れた windows 環境がサーバでも使えるってことに魅力を感じる人もいることは確か。

秋葉
メリットとデメリット、身に染みてわかったよ。

でも、GUI はやっぱりイイ!

これ、無料枠すぎても使えるの?

axia

Azure や AWS を普段使いするのはすすめないわ。

今の環境つくるだけでも¥3000 くらいかかっている。Azure や AWS は基本的に時間当たりいくらで使用料が設定されている。これを 24 時間フル稼働させるといくらかかるかわからない。Azure を停止し忘れて高額請求されたって悲劇はそこかしこでおこっている。基本的には、これらのクラウドサービスは実験的な用途企業の期間限定の特設サイト向きね。

普段使いするならさくらの VPS や、それから最近リニューアルされたGMOの

ConoHa For Windows

を使うのがよいと思う。特に ConoHa の料金設定には感心させられる。ベースは定額制なんだけど、稼働時間によっても料金計算されていて、それが定額に達していない場合はそちらの料金の方が適用になるの。本当に開発者の心を鷲掴みにする料金設定ね。バナー広告もはっておきましょう。この料金計算に納得する人には、アフィリエイトという枠を超えてオススメしたい。

 



秋葉
なるほど、よくわかったよ。

それでもウィンドウズで自前のサイトは持ちたいから、よく調べてみるよ。

印象としては、ConoHa のメモリ2Gプランがあっているような気がする。

今日は、すごい勉強になった。

ありがとう。

 

(追記)最近では windows server が使える VPS も増えてきた。あの「さくら」も windows server が選べるようになった。今だったら、↓ がオススメ。


にほんブログ村 ネットブログ ネット生活へ

 

 

おそるべし、アマゾン

秋葉
ねぇねぇ、ちょっといいかな

axia
ナニ、ソノ嫌ナ予感シカシナイ問イハ?

秋葉
axia 、ちょっと前に WordPress プラグイン紹介にかこつけた
屈折感情丸出し

指環に関する記事書いてたじゃない?


axia
………

秋葉
間違えて指環リンク踏んじゃったんだ

axia
1回くらいいいんじゃない。

そしたら?

秋葉
アマゾンからこんなメール届いた。

 

axia
さすが、アマゾン。アフターフォローも完璧。

 

秋葉
続きがある。これ。

 

axia
関連商品までくるか…。

またそのチョイスのセンスがツボ心得ている。

秋葉
最後のピンクダイヤのワンポイントは男の俺でも可愛いいと思う。

アマゾンAI、優秀だね。

 

 

axia
ナニ、コノ負ケタ感…

 

 

 

にほんブログ村 ネットブログへ
にほんブログ村 恋愛ブログ 30代の恋愛へ

 

妻僕。さんに聞いてみました

当サイトを作るうえでかなりの部分を『妻と僕。』さんのサイトを参考にさせてもらった。

なかでも感心したのは

レスポンシブ対応!幅が比率指定のサイドバーを下端で追従させる方法-WordPress(Twenty Seventeen)

であった。

当サイトの記事ページをスクロールするとサイドバーがいっしょについてくると思うが、その機能を実現させる方法が簡潔にまとまっている。

いたく感心した私は、

これ、他のページにも使えない?

とよからぬことを思い、ちょっと試してみた。(よせばいいのに…)

どうやって、この機能を実現しているか細かいところまでは読み取れない私は、それでも無い知恵をしぼってコードを眺めていた。


下記コードをコピーして、header.phpのheadタグ内にある<?php wp_head(); ?>の下へ貼り付けます。

ふむ。

<?php if ( is_single() ) : ?>
<script>
jQuery(window).on( "load scroll resize" , function(){
	//画面幅の取得とサイドバー有無の境界幅を入力
	var w = window.innerWidth /*スクロールバー込みの画面幅*/ 
	var x = 768; /*サイドバー有無の境界幅*/
	//サイドバーがある場合に適用
	if (w >= x) {
		//各要素の高さを取得 
		var windowH = jQuery(window).height(); /*表示画面の高さ*/ 
		var pageH = jQuery('#page').height(); /*表示ページの高さ*/ 
		var headerH = jQuery('#masthead').outerHeight( true ); /*ヘッダーの高さ*/ 
		var mainH = jQuery('#primary').outerHeight( true ); /*記事の高さ*/ 
		var sideH = jQuery('#secondary-child').outerHeight( true ); /*サイドバーの高さ*/ 
		var footerH = jQuery('#colophon').outerHeight( true ); /*フッターの高さ*/ 
		var paddingH = jQuery('#content').outerHeight( true ) - jQuery('#content').height(); /*余白の高さ*/ 
		//サイドバーの固定と解除条件を計算 
		var viewSide = headerH + paddingH + sideH ; /*ページトップからサイドバー下端までの高さ*/ 
		var fixedSide = viewSide - windowH ; /*サイドバーを固定するスクロール高さ*/ 
		var scrollBottom = pageH - windowH - footerH ; /*フッターが画面に表示されるスクロール高さ*/ 
		//スクロール値を取得 
		var scrollTop = jQuery(this).scrollTop();
		//記事がサイドバーより長い場合に適用
		if( mainH > sideH ) {
			//サイドバー下端までスクロールしたらサイドバー下端で追従
			if( scrollTop > fixedSide ) {
				jQuery('#secondary-child').addClass('fixed-side'); /*サイドバー固定のクラス付与*/ 
				//サイドバー固定時のサイドバー幅を計算
				var secondaryW = jQuery( "#wrap" ).width() - jQuery( "#primary" ).outerWidth( true );
				jQuery( "#secondary-child" ).css('width', ''); /*サイドバー幅リセット*/
				jQuery( "#secondary-child" ).css( "width" , secondaryW ); /*計算したサイドバー幅を付与*/
			}else{
				//条件から外れたら固定クラスを削除し幅をリセット
				jQuery('#secondary-child').removeClass('fixed-side'); /*サイドバー固定のクラス削除*/
				jQuery( "#secondary-child" ).css('width', ''); /*サイドバー幅リセット*/
			}
			//フッターまでスクロールしたらサイドバー下端をフッター上端に連結
			if( scrollTop > scrollBottom){
				jQuery('#secondary-child').removeClass('fixed-side');
				jQuery('#secondary-child').addClass('bottom-side');
			}else{
				//条件から外れたらクラスを削除
				jQuery('#secondary-child').removeClass('bottom-side');
			}
		}
	} else {
		//サイドバーがない場合に適用
		jQuery( "#secondary-child" ).css('width', ''); /*サイドバー幅リセット*/
	}
});
</script>
<?php endif; ?>

もちろん、このロジックは追えない。
だが、先頭の php if ( is_single() ) から察するに、これは「これから表示するコンテンツが single なら、script 以下のコードを実行せよ」ということをやっているのだろうと推論した。いや、そうに違いない。女の感だ。

ならば、例えば、アーカイブページでこの機能を実現したいならば、

php if ( is_single() || is_archive() )

というズルをすればなんとかなるのではと考えた。

果たして…

この状態から

スクロールすると…

 

ごくり…

 

動いたっーーー!!

 

が、なぜか文字が縦………。

 

秋葉ちゃん

axia
コノヤロ

 




どこを直していいかわからないので妻僕。さんに聞きにいく(詳細はそちらのコメント欄参照)。

「今のままでは、サイドバーの幅 = 0 になっているので、 archive.php にも手を入れ、id を付与しなさい」

というようなことを言われる。

すると…

 

おおー、できました。

さすが、本家。

ついでに is_search() も効かせるようにしました。

AXIA

 

にほんブログ村 ネットブログ ネット生活へ

コメントアウトのしきたりってゴッチャになりません?

HTML

<!-- コメントアウト -->

CSS

/* コメントアウト */

なお、CSS の場合、全角文字の直後に直接 */ で閉じてはいけない。必ず半角スペースなりを入れること。私、これ、やっちゃうんだよなー。

PHP

/* コメントアウト */

または

// コメントアウト

または

# コメントアウト

 

AXIA

ほぼ自分のためのメモ。
なぜ、最後のphp だけ、色がつく???

 

SEO 的な引用

みなさん、「引用」ってどうされてました?

私は今まで文章をコピペで持ってきて、インデント入れて、斜字体にしてました。

例えば

これは引用文です。

という具合に。

これは、引用してますよっていう意図を伝えるという意味では、十分な表現形式だと思います。

なのですが、SEO 的にはこれではダメだそうです。

なぜなら、サーチエンジンには、これが伝わらず、単なるパクリ(って嫌な言葉ですね)にみえるから。

なので、引用文にはいわゆる blockquote タグを入れるのが正しいのだそうです。SEO 的には。さらに css で加工しておくと見た目もよくなる。

これは引用文です。

どうでしょうか?

確かに、これはネット上でもよく見かける表現形式ですね。あれは SEO 的なことも考えていたのか、あはは。

ただ、感想を言わせてもらうなら、そこまでして SEO を意識しなくてもとは思います。なんかせこいっていうか…。

 

highlight.js を使う

前々からワードプレス上でソースコードを貼り付けるのをどうしようか悩んでいたのだが、重いプラグインに見切りをつけ JavaScript である highlight.js を導入した。こんな感じなる。

cd ..

html や css でちょっと使う程度なので、こんなもので十分。問題は、余白が微妙にグレイになっていること記事背景を濃くすれば、この部分は透過して目立たないが、背景ピュアホワイト #fff だと、ちょっとやぼったいグレイが出現する完全に透過してくれてないわけですね
ちょっとしたことだが、気になる~ (;´Д`)

→この問題は、pre 要素に色の属性を与えることで解決。例えば style.css に以下のコードを加える。

pre {
  background-color: #fff;
}

lang = “css” と指定しているのに、なんで、こういう配色になるかは不明だが…。

 

WordPress + yoast SEO で簡単にパンくずリストを設置

 

当ブログは、WordPress に テーマ twentyseventeen 改、プラグインに yoast SEO などを乗っけて運用しますが、yoast SEO だと簡単にパンくずリストが設置できるんですね。知りませんでした。最近まで All in One SEO の方を使っていたもので。確か All in One の方にはなかったはず。

まず、yoast SEO の設定画面を出して…

パンくずリストを「有効」に変更(デフォでは無効)。他項目は適宜変更。

まず、これを設定。

 

次に、以下のコードをパンくずリストを出したいファイル上に設置。

今回は、次のように挿入しました(19 行目以下に注目)。

これだけです。

 

すると……

おおっ! ちゃんと表示されてますね。

 

それにしても、秋葉ちゃん、なんて記事書いてんだよ…orz