Plerd - 超軽量のDropboxフレンドリーなMarkdownベースのブログ

Plerd

Plerdは、Dropboxで上手に機能する(ただし必須ではない)Markdownファンのための超軽量ブログプラットフォームであることを意図しています。

単一のフォルダーでMarkdownファイルを追加および変更するのと同じくらい簡単に、ブログ投稿を作成および維持できます。Plerdはこの1つのフォルダーのコンテンツに基づいて完全に静的なWebサイトを作成し、このコンテンツが変更されるたびにサイトを自動的に更新します。

オプションの実験的なPlerd機能により、Webmentionの送受信などのIndieWebテクノロジーのサポートが追加されます。

この記事は

https://github.com/jmacdotorg/plerd

の翻訳です。

 

目的

Plerdを使用すると、ブロガーは指定されたブログソースディレクトリにMarkdownファイルを追加するだけで、ブログに新しい投稿を公開できます。Dropboxで混合することにより、このディレクトリはローカルマシンに置くことができます。また、上記のファイルを更新して投稿を更新したり、同じフォルダからファイルを削除または移動して投稿を非公開にしたりすることもできます。

生成されたWebサイトは、静的ファイルのみを含む単一のディレクトリで構成されます。これらには、すべての投稿に対して1つの「パーマリンク」HTMLページ、最近の投稿のフロントページ、(Daring Fireballの方法で)単一のアーカイブページ、およびAtomおよびJSONフィード形式のシンジケーションドキュメントが含まれます。これらはすべて、シンプルでカスタマイズ可能なテンプレートから構築されています。

それでおしまい!それはプラードがするすべてです。

時間と傾向がある場合は、私のPlerdを作成した理由についての20分のプレゼンテーションを見ることができます。

プロジェクトの状況

Plerdがリリースされ、安定しています。まだ改善の余地はたくさんあります。コミュニティからのフィードバックとパッチの提案を歓迎しますが、近い将来、現在とほぼ同じ方法で現在と同じように機能します。

私はそれに新しい機能を追加する権利を留保しますが、そうするとき既存の機能を壊さないように最善を尽くします。Plerdの変更に関する最新情報を入手したい場合は、プレアナウンスメーリングリストに参加することを検討してください

セットアップ

取り付け

Plerdをインストールする最良の方法は、CPANを使用することです。任意のCPANコマンドラインツールを使用してをインストールしPlerdます。または、前の文が意味をなさない場合は、次のようにします。

curl -fsSL https://cpanmin.us | perl - Plerd

Plerdのソースのコピーが手元にある場合は、次の方法でインストールできます(現在の作業ディレクトリを、このREADMEファイルを含む同じディレクトリに設定した後)。

curl -fsSL https://cpanmin.us | perl - --installdeps .
perl Makefile.PL
make
make install

すべてが正しくインストールされている場合は、コマンドパスにplerdallおよびplerdwatcherプログラムが含まれている必要があります。

構成

  1. 実行plerdall --initして、plerd/現在の作業ディレクトリで呼び出される新しいディレクトリを作成し、Plerdが必要とするすべての特殊ファイルとディレクトリを入力します。これには、のサンプル構成ファイルが含まれますplerd/plerd.conf

    別の名前のディレクトリまたは別の場所にあるディレクトリが必要な場合は、それを引数として指定できます(例:)plerdall --init=/some/other/location。詳細については、plerdallmanページを参照してください。

    plerdall --init作成するサブディレクトリの目的は次のとおりです。

    • source:これは、ブログのMarkdownベースのソースファイルを保持します。
    • templates:ブログのテンプレートを保持します。plerdall --initこのディレクトリにサンプルテンプレートの完全な補完が配置されます。
    • docroot:ブログの実際のdocrootを保持し、選択したWebサーバーソフトウェアで提供できるようにします。
    • conf:ブログの構成ファイルを保持します。このディレクトリにplerdall --initサンプルplerd.confファイルが配置されます。
    • db:ブログの投稿に関するメタデータが含まれます。
    • run:PIDファイルなどを保持します。
    • logplerdwatcherプログラムはここにログを書き込みます。

    必要に応じて、このディレクトリに他のファイルやディレクトリを自由に追加できます(draftsフォルダですか?)。Plerdは喜んでそれらを無視します。

  2. plerd.conf前のステップで作成したディレクトリー内のファイルを、ニーズに最適になるように編集します。ファイル自体は広くコメントされ、自己文書化されています。

    オプションで、ファイルを.plerdホームディレクトリに移動またはコピーできます。その場合、そのファイルの新しいコピーが、Plerdのコマンドラインプログラムが参照するデフォルトの構成ファイルになります。

  3. 上記のように、templatesこのプロセスの最初のステップで作成したディレクトリには、必要に応じてカスタマイズできるサンプルテンプレートが含まれています。テンプレートツールキットを使用してレンダリングされます。これらのテンプレートファイルの名前を変更することはできませんが、メインテンプレートが[%INCLUDE%]ディレクティブなどを介し呼び出す新しいサブテンプレートファイルを追加できます。

  4. docroot(最初のステップの一部として作成した)サブディレクトリーを新しいブログの独自のdocrootとして扱うように、選択したWebサーバーを構成します。

    基本モードで実行する場合、PlerdはWebサーバーを提供しません。それは単に静的なHTMLとXMLファイルを生成し、他のいくつかのプロセスが機能する準備ができています。(Plerd 、着信Webmentionを処理するためのWebサーバーを提供ますが、これは実験的で完全にオプションの機能です。以下の「Webmention」を参照してください。)

使用法

Plerdの実行

Plerdには2つのコマンドラインプログラムが含まれています。

  • plerdallは、ソースディレクトリとテンプレートディレクトリの内容に基づいて、Plerdのdocrootディレクトリに新しいWebサイトを作成します。(また--init、上記の機能を含む、他のいくつかの「1回限りの」ユーティリティ機能も提供します。)

    このプログラムを(引数なしで)実行して、最初にブログのdocrootにデータを入力します。それ以外の場合は、ブログで提供されるファイルを手動で再生成します。

  • plerdwatcherは、Dropboxと同期したソースディレクトリの変更を監視するデーモンを実行し、必要に応じてファイルを再発行します。

    ここで魔法が起こります。plerdwatcherDropbox独自のデーモンプロセスの両方がウェブサーバーのマシンで実行されますが、ブログのソースディレクトリに変更を加えると、ブログの公開済み静的ファイルが適切に即座に更新されます。

    次のコマンドでplerdwatcherを起動します。

      plerdwatcher start
    

    また、動詞を受け入れstoprestartstatusだけでなく、すべてのApp ::デーモンのマニュアルに記載されているコマンドラインオプション

投稿を作成しています

新しいブログ投稿の作成を開始するには、ブログのソースディレクトリ以外の場所に新しいMarkdownファイルを作成するだけです。(ソースディレクトリへの変更が即座にブログ、あなたが上に半書かれたエントリとやりたくないだろう何かを再パブリッシュすることを思い出してください。)あなたは何が好き、このファイルに名前を付けることができますので、長い間のいずれかで、ファイル名の終了など.markdownまたは.md

また、投稿する前に、投稿にタイトルを付ける必要があります。タイトルを定義するには、エントリの最初の行をsay title: [whatever]、次に2つの改行、次に投稿の本文を続けます。

たとえば、有効な、すぐに公開できるソースファイルをと呼びtoday.markdown、これに完全に含めることができます。

title: My day today

I had a pretty good day today. 

I hung out at [the coffee shop](http://empireteaandcoffee.com). Then I went home.

Well, that's all for now. Bye bye.

投稿の公開

投稿を公開するには、単に投稿をPlerdのソースディレクトリに移動します。(同じ名前の古い投稿のソースファイルを上書きしないように注意してください。)

Plerdは、新しいファイルに気づくと、そのファイルの公開日時を記録するタイムスタンプをファイルに付与します。このタイムスタンプは、タイトル行の後の独自の行に表示されます。

通常、Plerdは発行時刻を、ファイルをソースディレクトリに追加した瞬間に設定します。Plerdは、このルールの2つの例外を認識しています。

  • 投稿にtime:タイムスタンプを手動で付け、それがW3C日時形式である場合、Plerdはそのタイムスタンプをそのままにします。
  • あなたはタイムスタンプを残し、場合(例えば、あなたのポストのファイル名で、昨日の日付またはそれ以前を含める1994-06-10-i-like-ace-of-base.md)、そしてPlerdはその日の(ローカルタイムゾーンで)深夜に投稿のタイムスタンプを設定します。これにより、一度に多くの投稿をバッチバックデートすることができます。おそらく、既存の書き込みで新しいブログを作成するのに便利です。

(Plerdは、ソースファイルが移動し、外部プロセスから追加の行が追加されていることを確認し、これに適切に対応するために十分に賢いテキストエディターを使用していることを前提としています。)

ソースファイルを準備すると、Plerdはブログを更新します。新しいエントリの新しいHTMLファイルを作成し、archive.htmlページからファイルへのリンクを追加します。また、他のすべてのエントリの最近の投稿のサイドバーや、AtomおよびJSONフィードドキュメントにも表示されます(ファイル内で独自の日付属性を指定してエントリを手動でバックデートすることを決定した場合を除く)。

投稿の更新または削除

ブログ投稿を更新するには、ソースディレクトリ内のソースMarkdownファイルを編集するだけです。変更を加えると、公開されたブログがすぐに適切に更新されます

ブログ投稿を非公開にするには、同期したソースディレクトリから移動するか、削除するだけです。

DropboxでのPlerdの使用

PlerdはDropboxが大好きです!(確かに、デザインの最初からDropboxとの親和性を念頭に置いていました。)

PlerdをDropboxで動作させるには、その作業ディレクトリ(ソース、docroot、およびテンプレートサブディレクトリを含むディレクトリ)を同期されたDropboxフォルダーのどこかに配置し、このフォルダーへのローカルパスを(Webサーバーの観点から)指定します。 Plerd構成ファイル。

これで、Dropboxフォルダにアクセスできる限り、使用しているコンピュータに関係なく、ファイルを移動および編集するだけで、ブログの投稿を作成、更新、削除できます。

このようにして、たとえば、お気に入りのコーヒーショップの後ろにラップトップを置いて暖炉のそばに座っているときに、お気に入りのテキストエディタMarkdownを介してブログ投稿を作成および編集し、[ファイル]→[保存]をクリックして、ブログの更新を公開できます。テキストエディター。Webサーバー(または、実際にはPlerdソフトウェア自体)と直接対話することはありません。

高度な使用

テンプレートのカスタマイズ

テンプレートファイルの簡単なガイドと、ブログ用にテンプレートファイルをカスタマイズする方法については、GitHubのPlerd wiki参照してください。

タグ

という投稿属性の下にコンマ区切りのタグのリストを定義するとtags、Plerdはtags/[tag].htmlブログのdocrootを基準にして、という名前のファイルからリンクされている投稿に投稿を追加します。また、そのページフォームにリンクしますtags/index.html

たとえば、この属性はその投稿に3つのタグを割り当てます。

tags: Media, Books I like, 📚

デフォルトのPlerdテンプレートは、必要に応じてタグページへのリンクを表示します。タグページは、という名前のテンプレートから形状を取得しtags.ttます。

タグで大文字を気にしてください!単一のタグ内で一貫性のない大文字表記に直面した場合、たとえば、1つの投稿がタグに対して「ボストン」を主張し、他の1つが「ボストン」を主張する場合、プラードは大文字を含む最初のタグを大文字を含まないものよりも優先し、遡及的に適用されます。関連するすべての投稿。

ユーザー定義属性

必要な属性を投稿に追加し、attributesすべての投稿オブジェクトに添付された名前のハッシュを介してテンプレートから参照できます。たとえば、投稿のメタデータが次のようになっているとします。

title: Example of user-defined attributes
byline: Sam Handwich

次に、「byline」がPlerdが別の方法で認識する属性ではない場合でもpost.attributes.bylinepost.ttテンプレートファイル内からその値をフェッチするために参照できます。(テンプレートが投稿のソースファイルで定義されていない属性キーを参照している場合、テンプレートは単に空白の値を返します。)

ソーシャルメディアメタタグ

ブログの設定ファイルの両方でいくつかの追加属性を定義することにより、オープングラフTwitterカードを有効にするメタデータタグを各投稿に追加するようにPlerdに指示できます。これにより、FacebookTwitter、Slackなどのサービスが、それらへのリンクを表示するときに、ブログ投稿の魅力的な小さな要約を表示できるようになります。

これらのブログ構成オプション(すべてオプション)は次のとおりです。

  • twitter_id:存在する場合、Plerdは指定されたTwitterユーザー名に関連付けられた各投稿にTwitter Cardメタデータを添付しようとします。(先頭に「@」を付けないでください。はい、わかります。YAMLパーサーを混乱させます。申し訳ありません...)

  • image:存在する場合、PlerdはこのURLをデフォルトの画像の場所として使用し、独自の画像属性を定義していない投稿のメタデータで使用します。

    存在しない場合、Plerdは画像属性のない投稿のソーシャルメディアメタデータを生成しませ

  • image_altimage属性によって参照される画像のテキストによる説明。(使用法はHTML <img>タグの「alt」属性と同じです。)自分で定義しない場合、Plerdはこれを空白のままにします。

上記のすべての例を確認するには、ファイルを参照してくださいconf/plerd_example.conf

上記のようにブログを設定したら、これらの属性を投稿に追加できます。

  • description:この投稿の非常に短い要約。

    定義されていない場合、Plerdは(マークアップを取り除いた後)投稿のテキストの最初の段落を投稿の説明として使用しようとします。

  • imageソーシャルメディアリンク内でこの投稿に関連付ける画像のURL。(これは、HTML <img>タグを使用して投稿にも表示される画像を参照できますが、そうである必要はありません。)

    定義されていない場合、Plerdは代わりにブログの画像構成ディレクティブを使用します。場合はそれがも定義されていない、そしてPlerdは、このポストのための任意のソーシャル・メディアのメタデータを生成しません。

  • image_altimage属性によって参照される画像のテキストによる説明。(使用法はHTML <img>タグの「alt」属性と同じです。)自分で定義しない場合、Plerdはこれを空白のままにします。

MultiMarkdown

PlerdはそのままでMultiMarkdown構文をサポートします!先に進んで、MultiMarkdownテーブルなどを投稿に追加してください。うまくいきます。

Webmention

PlerdにはWebmentionの実験的なサポートが含まれています。Webmentionは、ウェブサイトがシンプルに送信できるようにするオープンテクノロジーです。「私のページには、あなたのページへのリンクが含まれています!」他のウェブサイトへのメッセージ。リンクページがMicroformats2メタデータを採用している場合、ターゲットページは、作成者やコンテンツの概要など、言及に関する重要な情報を表示するように選択できます。この表示の形式は、メンションの見かけのタイプ(「いいね」、再投稿、コメントスタイルの応答など)に応じて調整できます。

したがって、特定のオプションを有効にすると、Plerdは、ブログの投稿がリンクしているWebサイトにWebmentionを送信できます。また、インターネット上の他のページがあなたの特定の投稿にリンクしているときに、Webmentionを受信して​​表示することもできます。

これらの機能は2018年8月の時点でまばらに文書化またはテストされていますが、現在は改善されると思います。Webmentionサポートの追加は、3月以来の私のPlerd開発の焦点であり、年末までに、より完全なドキュメントとテストカバレッジを受け取ることを期待しています。

当面は、plerdwatcherplerdallプログラムのドキュメントでWebmention関連のオプションのリストを参照しpost.tt、スターターテンプレート(を介して作成されたものplerdall --init)の中でWebmentionの表示手法の例を確認してください。のコメント化されたrel="webmention"行にも注意してくださいwrapper.tt。Webmentionの受信を機能させるには、コメントを外す必要があります。

この投稿では、実際のさまざまなWebmentionを見ることができます。これは、私のPlerdを利用したブログの一部です。(これには、同じブログ内の他の後続の投稿からの言及が含まれることに注意してください。これにより、有機的な「関連投稿」機能が実現します。)

この実験段階にある間、自分のPlerdセットアップでWebmentionサポートをテストするのに興味がある場合は、メールでお気軽にご連絡ください。

エンコードに関する注意

Plerdは、すべてのソースファイルとテンプレートファイルがUTF-8としてエンコードされていると想定しています。

サポート

バグまたはプルリクエストを報告するには、PlerdのGitHubリポジトリにアクセスしてください

Plerdニュースの最新情報を入手したり、他のユーザーや開発者とソフトウェアについて話し合ったりするには、プロジェクトのメーリングリストに参加してください。

Jason McIntoshに直接メールを送信することもできます。Plerdを利用している他の人々の話を聞くのはいつでも興味があり、それを手伝うためにできる限りのことをします。そのようなフィードバックはすべて、結局のところ、ソフトウェアをより良くする傾向があります!

Plerdの作成者のWebサイトにはホームページがあります。

仕事中のプラードを見る

このソフトウェアは、Jason McIntoshのブログであるFogknifeの原動力となっています。

クレジット

PlerdはJason McIntosh(jmac@jmac.org)によるものです。私はあなたが共有したいと思うプラードについての考えを聞き、それについての質問や提案を歓迎します。

貢献者は次のとおりです。

このリポジトリには、Jon Testaがデザインしたイメージ「Envelope」と、useiconic.comがデザインしたイメージ「RSS」が含まれています。どちらもCreative Commons Attribution 3.0 United Statesライセンスを通じて共有され、Noun Projectを通じてこのプロジェクトに参加します。