2020-01-01から1年間の記事一覧

Hugo のレイアウトの仕組み

テーマの無いテスト用サイトを作る 普通はthemesDIRに任意のテーマをインストールすることで、サイトの基礎になる最低限の見た目が表示されるのだが、Hugo のレイアウトの仕組みを理解するためにわざと既存のテーマをインストールせずに進めてみる。 新しい …

Hugoの設定ファイル

設定ファイルのデータ config.tomlにはデフォルトでbaseURL(サイトのURL)、languageCode(使用する言語)、title(サイトのタイトル)の3つが定義されている. 他に使用するテーマをthemeで指定する.他の項目はテーマによっても違うのでテーマのドキュメントを読…

Hugoが作るサイトの構成

Hugoが書き出すサイトのディレクトリやファイル hugo new site サイト名コマンドで書き出されるサイトのディレクトリやファイルの構成

Hugo で記事を作成する

記事の作成 hugo new 記事へのパスでcontentDIR配下に新しい記事が作成される.「記事へのパス」は直接ファイル名のみならcontent直下に、フォルダ名/ファイル名などとするとcontent/フォルダ名/ファイル名の形で作成される.content内にフォルダ名のDIRが無い…

いまさらの Hugo

Hugoを試してみた感想 Jekyll はもう古くなってきていると一部では言われている。ただ静的サイトジェネレータとして老舗なのでユーザもまだ多く、使いやすい仕組みが沢山盛り込まれている。問題は記事レンダリングのスピードが遅くなってきていること。Ruby …

数学系ファイルの表示テスト(Markdown版)

テスト結果 図がSVGファイルの場合は表示されない。画像としてアップロードされた図は表示できる(PNG,JPEG) 数式ブロックで行揃えのための & を使っているとエラーになる。おそらく他にもエラーになる構文はあるだろう。 除算アルゴリズム ◎ 任意の整数 $a…

数学系ファイルの表示テスト

テスト結果 こちらはVSCodeでMarkdownで書き、マークダウン拡張(Markdown Preview Enhanced)でプレビュー確認したものを、CDNでMathJaxを読み込むように設定したHTMLで書き出し(プレビュー画面から右クリックメニューでできる)、そのBODYタグの内部のみ…

npm アプリインストール時の通信エラー

最近 npmで何らかのアプリをインストールする時に通信エラーというか、ダウンロード先のアドレスが認識できないエラーが発生する. 例えば、Nuxtプロジェクトのインストール時 $ npx create-nuxt-app プロジェクト名 のコマンドで以下のエラー エラー:getadd…

基礎からメモ: Vue.js CH9-p302 ネストされた複雑なページ

ネストされたルート定義をすると、より複雑な画面遷移をすることができる。 これまでの「Product」のコンポーネントは、商品詳細と商品レヴューを表示させるためのベースとし、その中に3つのコンポーネントを定義する。 フォルダ構成としては、viewsの中にH…

はてぶで数式を書くためのテスト(2) MathJaxを使う

フッターにMathJaxを読み込む設定をして使う フッターに次のコードを埋め込んでMathJaxを使えるようにしてみた。 <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3.0.1/es5/tex-mml-chtml.js"></script> <script> MathJax = { tex: { inlineMath: [['$', '$…

はてブで数式を書くためのテスト(1) はてブ標準の数式記法

記事に数式が使えるかテストしてみる。まず、はてなに搭載された数式の記法でやってみた。 はてなブログ標準の数式記法で ただし、はてブ標準の数式記法では[tex: 数式 ] と書いて、さらに<div>で囲んでやる必要があるので、やや面倒。 レンダリングの際に、数式</div>…

基礎からメモ: Vue.js CH9-p295 URLパラメータ付きの動的ページ

簡単な商品一覧ページのサンプルを作る。 src/views/Home.vueとsrc/main.js、src/App.vueは前回と同じ。 まず商品一覧ページと商品詳細ページのコンポーネントを作る。

基礎からメモ: Vue.js CH9-p284 Vue Router の導入と単純なSPA

Vue Router を導入してごく単純なSPAを構築するまで。

基礎からメモ: Vue.js CH8-p278 その他の機能やオプション

ストアの状態監視 Vuexで定義されたアプリケーションレベルのウォッチャは、コンポーネントより先に呼び出される。

基礎からメモ: Vue.js CH8-p270 モジュールでストアを分割する

モジュールの機能を使って、ストアを名前空間で分割し管理することができる。

基礎からメモ: Vue.js CH8-p268 ヘルパーでコンポーネントとストアをバインドする

ゲッターやミューテーションを使うロジックを、コンポーネントの算出プロパティやメソッドに全て記述するのは冗長になる。そういう場合にヘルパーが用意されている。 あらかじめ必要なヘルパーを読み込む。

基礎からメモ: Vue.js CH8-p264 コンポーネントでストアを使う

コンポーネントでストアを使う 親子間コンポーネントで状態管理する例 まずsrc/store.jsを定義

基礎からメモ: Vue.js CH7-p252 Vuexの導入

Vuex は Vueアプリケーションで使うデータとその状態を一元管理する「状態管理」のための拡張ライブラリ。 深くネストされたコンポーネント構造では、コンポーネント間でpropsと$emitを使って各コンポーネントどうしのやり取りをする必要があるが、Vuex を使…

基礎からメモ: Vue.js CH7-p231 Vue CLIの導入

Vue CLI のインストール Node.js と npm はインスト済みとする。 次のコマンドで Vue CLI をグローバルインストール $ npm install -g vue-cli

基礎からメモ: Vue.js CH6-p210 SVGのトランジションとトランジションフック

SVGのトランジション SVGでマークアップされた要素にトランジション。 図形が入れ替わる。

基礎からメモ: Vue.js CH6-p205 リストトランジション

リストの要素をグループ化して、追加、削除、移動のアニメーションを行う。 <transition-group>タグを使いtag属性でタグ名を指定する。tag属性を省略するとspan要素でラップされる。リストトランジションではキーの設定が必須。</transition-group>

基礎からメモ: Vue.js CH6-p198 単一要素トランジション

<transition>タグの中に1つだけ存在する要素に対し使用するものを「単一要素トランジション」と呼ぶ。</transition>

基礎からメモ: Vue.js CH6-p195 基本的なトランジションの使い方

トランジション用クラスの適用 トランジション効果を適用したい要素を<transition>タグで囲むことで、トランジション用のクラスが適用される。</transition>

基礎からメモ: Vue.js CH5-p184 その他の機能やオプション

関数型コンポーネント functionalオプションを付けることで、関数型コンポーネント(状態とインスタンスを持たない)を定義できる。

基礎からメモ: Vue.js CH5-p179 テンプレートの定義方法

テンプレートの種類 templateオプション 今まで出てきた書き方。ES2015が使えるなら、テンプレートリテラルが便利 Vue.component('my-calendar', { template: `<div> <p>..........</p> </div>` }); 単一ファイルコンポーネントを使わない場合は、このtemplateオプションが推奨…

基礎からメモ: Vue.js CH5-p175 コンポーネントの双方向データバインディング

親子間でデータを受け渡ししたい場合、親から子へはpropsを介して渡す、子から親へはイベントを$emitするという決まりになっていた。 $emitを介さずに子からpropsで渡された値を更新しようとするとエラーになった。これは親のデータを子から簡単に変更できて…

基礎からメモ: Vue.js CH5-p169 スロットを使ったコンポーネントのカスタマイズ

スロットという機能を使って、親コンポーネントから子コンポーネントにテンプレートの一部を差し込むことができる。 これによって子コンポーネントの一部分をカスタマイズしたりできる。

基礎からメモ: Vue.js CH5-p166 親から子のイベントやメソッドを使う

$refsを使って、親から子のメソッドを使ったり、イベントを発火させたりできる。

基礎からメモ: Vue.js CH5-p161 子から親へのコンポーネント間通信

カスタムイベントと$emit 子コンポーネントの状態に対応して親コンポーネントに何らかのアクションを起こさせるとか、子コンポーネントが持つデータを親に渡すなどの場合、カスタムイベントとインスタンスメソッドの$emitを使う。

基礎からメモ: Vue.js CH5-p159 親子間で受け取るデータのデータ型を指定する

propsで受け取るデータのデータ型を指定する propsで受け取るデータのデータ型を指定しておくことができる。受け取るデータ名にStringなどのデータ型を指定しておく。