GiblogはサイトをPerlで自由にカスタマイズできる

Giblogは、Perlというテキスト処理が得意なプログラミング言語で作成されており、サイトをPerlで自由にカスタマイズできます。

Perlを使った、サイトのカスタマイズ方法

Giblogでサイトを構築するには、以下のコマンドを実行します。

giblog build

この処理を、Perlを使ってカスタマイズすることができます。

処理をカスタマイズするには、以下のPerlモジュールファイルを編集することで行います。

構築のためのモジュールファイル

lib/Giblog/Command/build.pm

このファイルの中にはGiblogのサイトの構築の処理が記述されています。

package Giblog::Command::build;

use base 'Giblog::Command';

use strict;
use warnings;

use File::Basename 'basename';

sub run {
  my ($self, @args) = @_;
  
  # API
  my $api = $self->api;
  
  # Read config
  my $config = $api->read_config;
  
  # Copy static files to public
  $api->copy_static_files_to_public;

  # Get files in templates directory
  my $files = $api->get_templates_files;
  
  for my $file (@$files) {
    
    my $data = {file => $file};
    
    # Get content from file in templates directory
    $api->get_content($data);

    # Parse Giblog syntax
    $api->parse_giblog_syntax($data);

    # Parse title
    $api->parse_title_from_first_h_tag($data);

    # Edit title
    my $site_title = $config->{site_title};
    if ($data->{file} eq 'index.html') {
      $data->{title} = $site_title;
    }
    else {
      $data->{title} = "$data->{title} - $site_title";
    }

    # Add page link
    $api->add_page_link_to_first_h_tag($data, {root => 'index.html'});

    # Parse description
    $api->parse_description_from_first_p_tag($data);

    # Read common templates
    $api->read_common_templates($data);
    
    # Add meta title
    $api->add_meta_title($data);

    # Add meta description
    $api->add_meta_description($data);

    # Build entry html
    $api->build_entry($data);
    
    # Build whole html
    $api->build_html($data);
    
    # Write to public file
    $api->write_to_public_file($data);
  }

  # Create list page
  $self->create_list;
}
1;

ユーザーがプログラミングを直接書いて機能を追加・編集

注目してほしいのは、サイトの構築処理がすべて書かれている、Perlのプログラムであるということです。つまり、機能を追加したり、機能を改造したりすることを、すべての構築プロセスに、差し込むことができます。

ブログの記事のフォーマットをマークダウンやPOD記法に差し替えることや、タイトルとサブタイトルの区切り文字を変えることや、Twitterカードを追加することなど、あなたが必要とするすべてのことを、記述することができます。

WordPressが機能追加のためにプラグイン機能を用意しているのとは対照に、Giblogは、ユーザーがプログラミングを直接書いて、機能の追加・編集ができることを重視しています。

Giblogで利用されているAPIについては、Giblog::APIですべて解説しています。Giblogの構築処理は、シンプルなプログラムなので、APIを理解できれば、処理の内容を理解できます。

サイトを自由にカスタマイズできる理由

なぜGiblogでは、サイトを自由にカスタマイズできるのでしょうか。

Perlは、動的に実行されるタイプのプログラミング言語です。動的に実行されるということは、一部の処理を実行時に差し替えることができるのです。

Giblogでは、再構築を行うときにbuildコマンドを実行します。

giblog build

普通はプログラムの動きは固定されていて、インストールしたときの機能で動きます。

Perlは、プログラム言語の動的な特徴から、一部の処理を、差し替えることができるので、buildコマンドをカスタマイズすることができるのです。