Skip to main content.
Google custom search

htdocsを編集する

htdocsに関する一般事項

web サイト全体の構造はどうなっているか?

特定のエリアへ追加する


htdocsに関する一般事項

だれがhtdocsを編集できるのか (トップ)

NetBSD CVSツリーに書き込み権限を持つ人であれば、 だれでもチェックアウトや変更ができます。 事実、そうして欲しいのです。 特に開発者が機能やドライバーを追加する時には、 該当するハードウェアやポートのホームページを更新すべきです。 cvs.NetBSD.orgにはNetBSD.orgのログイン名を利用してログインし、 htdocsをチェックアウトしてください。

CVS commit 権限がないユーザーは、 anoncvs で htdocs をチェックアウトして、パッチを www@NetBSD.org までメールで送ってください。 後述の説明も参照してください。

htdocsを編集するには何が必要か (トップ)

  • CVS の導入を読んでください。
  • meta-pkgs/netbsd-www をインストールします。これにより、 web サイトの構築に必要な道具がインストールされます。最低限、 textproc/docbook-xsl >= 1.68.1 および textproc/docbook-website >= 2.6.0nb1 が必要です (meta-pkgs/netbsd-www 1.4 が依存していますが、これより前のバージョンではもっと古いバージョンの ツールも許容しており、問題がある場合があります)。 なお、 LOCALBASE および PKG_SYSCONFBASE の値は htdocs の makefile でも使われているため、これらの変数値を /etc/mk.conf で変更する場合は、 BSD_PKG_MK で保護されない形で定義してください。
  • The NetBSD guide や、このガイドに依存するページを再生成するためには、 meta-pkgs/netbsd-doc-print もインストールしてください。
  • CVSROOTを指定通りに設定し、
    cvs checkout htdocs
    を実行してください。
  • 目的のファイルを編集して、 (必要があれば) make とタイプして、出力されるファイルを再構築してください。
  • 編集結果を cvs diff を使って確認したうえ、 問題がなければ cvs commit してください。

HTMLを有効にする (トップ)

変更した後には、 www/weblint や、それよりも良いのは http://validator.w3.org/ のようなHTMLチェッカーで一通りチェックすべきです。 index.htmlへのリンクをはるURLは、最後のindex.htmlを 省くべきです。 weblintをお使いでしたら、~/.weblintrcに以下の記述を 追加するとよいでしょう。

extension Netscape

NetBSD.org の表記法 (トップ)

リンク、 mailto その他の参照においては必ず NetBSD.org と書くようにし、 これ以外の書き方 (Netbsd.org, netbsd.org, ……など) はしないようにしてください。

.listファイルとは何者か? (トップ)

.list ファイルは過去の遺物です!
既存の .list ファイルはすべて XML に変換してください。 詳細はこの節をご覧ください。

XML に変換する (トップ)

全体的な変更が簡単にできるようにするため、現在、 NetBSD の web サイトは XML (docbook-website) に変換中です。 2004-11-15 以降、 XML 以外のファイルを編集する必要があるときは、編集と同時に XML に変換することになっています。 htdocs/scripts/list2xml スクリプトは、通常の .html ファイルの変換のほか、旧来の .list の変換にも役立つでしょう。 ただし、このスクリプトはタグの単純な置換をいくつかするだけであり、 実行後に多くの手作業が必要ですので、どうぞご注意ください。 特に、すべてのタグを適切な順序で閉じることが必要です。

.xml ファイルを生成あるいは変換した際には、各 <table> タグや <sect[1-4]> タグに id 属性をつけたことを確認してください。これは、 xsltproc が独自に ID 属性を生成して、 .html ファイルを再生成する度に ID 属性が更新されることがないようにするためです。 また、 &&amp; に、 /sys/usr/src/sys に、 適宜置きかえてください。

ある HTML タグを、等価な XML に変換する方法がわからない場合は、 システムにインストールされている textproc/docbook-website のなかに便利な例があるかもしれません。そしてもちろん、 www@ メーリングリストに遠慮なく助けを求めていただいて結構です。

目次を自動生成する場合は、以下のコードを含めておきます。

<sect1 role="toc">

これを含めておくと、すべての <sect2> に、 その配下の <sect3> がぶら下がった形の目次が生成されます。

ファイルを XML に変換した後は、そのファイルを htdocs/layout.xml ファイルに書き加えて web サイトを再生成することを忘れないでください。 詳細はこの後の項目をご覧ください。

.xml (docbook-website) ファイルの取扱手順 (トップ)

.xml ファイルから .html ファイルを構築するためには、少なくとも textproc/libxslttextproc/docbook-website をインストールしておく必要があります。これらは meta-pkgs/netbsd-www に含まれています。 meta-pkgs/netbsd-www のバージョンが 1.4 であることを確認してください。

.html ファイルを生成するには、対象のディレクトリーで make を実行するだけです。 .html ファイルに正しい "Generated from" が含まれるようにするため、 必ず、 .xml ファイルを commit した後に .html ファイルを生成してください。

layout.xml にファイルを追加した場合は、 htdocs の最上層で make を実行する必要があります。

ファイル名を変更またはファイルを移動する (トップ)

htdocs 以下でファイルの移動や名称変更をする場合は、以下の手順をとることを 推奨します:

  • ファイルを元の場所から移動後の場所にコピーします
  • 新しいファイルを cvs add して、古いファイルを cvs rm します
  • ファイルの移動について htdocs/errors/index.xml に記載し、 新しい場所へリンクさせておきます
  • 移動の時期や理由を cvs で参照できるようにするために、 新しいファイルと古いファイルを、同時に cvs commit します

旗リンクの後に empty.gif がくっついているのは、何か理由があるのか? (トップ)

各ページの最後にあるNetBSDの'旗' リンクには以下のものがあります:

  • altタグがないnetbsd-bannerを含むhref
  • "NetBSD" と書いたaltタグと"ホームページ" という単語を付けたempty.gifを 含むhref

このような効果があります:

  • lynxでは、たとえばNetBSDリンクとホームページリンクと二つに 分けるのではなく、"NetBSD ホームページ" リンクという具合に 一つのリンクにします。
  • netscapeでは、追加のテキストをセンタリングし、"見栄えよく" 配置します。 これがないと、少なくともnetscapeでは、縦方向にはセンタリングされず、 下に表示され、画像が隣り合せになります (あるいは、スペースをいれれば、 私にはおかしく見える醜い下線つきの空白が入ります) 。

ひどいやり方ではありますが、きちんと表示してくれます。

XML テンプレートファイル (トップ)

XML を書き始める人のために、htutils/templates 以下にテンプレートファイルをいくつか用意してあります。 内容を書き加える場合は、既存のページと見比べてみてください。

ページが web サーバーに反映される方法や時間はどうなっているか? (トップ)

NetBSD の web ページは CVS の "htdocs" リポジトリーに蓄積されます。 セキュリティー上の理由から、この htdocs リポジトリーは、毎時間ごとに www.NetBSD.org に (rsync を使って) コピーされ、 そのコピーからローカルにチェックアウトされています。 これをおこなうスクリプトは htutils/scripts/update.http にあり、毎時 40 分ごろに実行されます。 htdocs をコミットすると、 それが公開されるまでに最大一時間かかることになります。

ただし、 Gnats データベース (http://www.NetBSD.org/Gnats/) 、 changes/changes*.html や changes/pkg-changes*.html にある pkgsrc とソースの変更点、 changes/rss-*.xml にある RSS ファイルなど、 一部のファイルについては htdocs には含まれず、 web サーバー上の cron ジョブディレクトリーで各種スクリプトを使って生成されています。 これらのスクリプトへアクセスするには、 "htutils/changes/*" をチェックアウトします。


web サイト全体の構造はどうなっているか?

概観 (トップ)

各ディレクトリーの役割は? (トップ)

share/mk

ソースファイルからの web ページの構築を自動化するための make(1) の基盤があります。

share/xml

[TODO]

share/xsl

[TODO]

各ファイルの役割は? (トップ)

Makefile

そのディレクトリーの内容の説明が書かれています。 通常は、SUBDIR および XMLDOCS の各変数を定義してから、適切な相対パスを使って htdocs/share/mk/web.site.mk ファイルを .include しています。share/mk 以下のファイルは、冒頭に長めのコメントがあり、 Makefile で何ができるかを説明しています。

*.xml

一つの HTML ページに対応するソースコードが、 DocBook Website 形式で書かれている XML ファイルです。

layout.xml

[TODO]

autolayout.xml

[TODO]


特定のエリアへ追加する

NetBSDを稼働させているサイト のギャラリーを追加する (トップ)

htdocs/gallery/addsite.htmlページから送信された NETBSD GALLERY ADDITION 電子メールを受け取った場合は、こうします:

  1. 当該サイトに www.NetBSD.org へ戻るリンクがあることを確認します。 ない場合は、戻るリンクを追加するよう当該サイトに依頼し、 戻るリンクが用意されてからそのサイトの情報を追加します。
  2. perlがインストールされているか確認します
  3. コピー/ペースト用のバッファーにメッセージを保存します
  4. cd htdocs/galleryします
  5. ./addsite.pl を実行して、バッファーの内容をペーストしてから ^D でペーストを終え、 それが正しく扱われていれば 'y'と答えます
  6. cvs commitします

手でhtdocs/gallery/sites.dataを編集し、 makeを実行する方法もあります。

NetBSD in action のギャラリーに追加する (トップ)

できれば、スクリーンショットにはそれが NetBSD システムのものであることが簡単にわかるような内容を含めてください。 簡単な方法は、 X 端末で uname -a コマンドの出力を表示しておくことです。

ニュースの項目を追加する (トップ)

ほとんどのニュース項目はhtdocs/changes/index.xmlにあります (.xml ファイルに関する記述をごらんください) 。 特定のポートに影響する変更はhtdocs/ports/*/にあるニュースの章からも リンクをはってください。

重要なコードのニュース項目は src/doc/CHANGES ファイルにも記述すべきです。

せっかちな人向けのお手軽 ``howto'' (ただし、詳細な説明も読んでください):

  • cd htdocs/changes
  • make update
  • ${EDITOR} index.xml
  • make
  • make MSG="I added important NEWS!" commit

htdocsに変更を加える前に:
  1. meta-pkgs/netbsd-www がインストールされていることを確認します。 前の項目もご覧ください。
  2. CVSリポジトリーからhtdocsをチェックアウトします。
  3. htdocs ツリーのコピーがすでにある場合は、定期的に更新するように してください。特に、ニュース項目を追加する際には、 gallery/events.* も最新の状態になっていなければなりません。このファイルから今後のイベントを 抜き出して利用しているからです。以下のようにすれば一番よいでしょう。
      $ cd htdocs
      $ make update
変更項目を付け加えるには:
  1. htdocs/changes/index.xml を編集します
  2. 適切な節に、以下のような形式で項目の本体を追加します
      <sect3 id="link-name>
      <title>XX Mon XXX - 自由形式のタイトル</title>
      <para>
        項目の本文をここに書きます。マニュアルページは &man.command.X; として、
        email アドレスは <email>full@address</email> として参照できます。
      <para>
      </sect3>
  3. 'make' を実行します。
メインページからのリンクを追加するには:

htdocs/changes で make を実行すると、 htdocs/index.html が自動的に更新されます。それ以上なにかする必要はありません。

こうするかわりに、 htdocs 最上層のディレクトリーで make index.html を実行するという方法も使えます。

特定のポートのページからリンクをはるには:
  1. htdocs/ports/arch/index.html を編集して、 '<!-- news -->' ブロックを探します。
  2. 新しい項目を以下の形式でリストの後ろに追加します:

    <dt><b>日付:</b> タイトル
        <dd>記事の本文
        <p>

    それぞれの項目は以下のように書きます
    • 日付 - 通常通り YEAR.MONTH.DATE
    • タイトル - 自由形式の (短い) テキストタイトル
    • 記事の本文 - 項目用の自由形式のテキスト。 複数行あけたり、HTMLタグやリンクを使ったりすることもできます。
最後に:
  1. 変更したファイルのHTML をチェックします。
  2. ファイルをチェックインします。 htdocs 最上層のディレクトリーで 'make commit' コマンドを実行すると、メインの index ページが、 デフォルトメッセージ "NEWS; regen" でコミットされます。 何かメッセージを追加したければ 'MSG="Added News regarding FooBar" make commit' のようにします。
  3. 特に重要なニュースの場合、以下のようなニュースサイトに投稿するというのは、 よい考えです: Daily Daemonnews, OSNews, Slashdot, Newsforge, BSDForums.

イベントを追加する (トップ)

メインの index ページには "Upcoming Events" (これからのイベント) というリンクもあります。 このリンクは News entries 同様に自動的に更新されます:

cd .../htdocs/gallery
$EDITOR events.xml
make events.html

cd .../htdocs
make index.html
MSG="Added Event Foo" make commit

メーリングリストのページへの追加や編集をする (トップ)

メーリングリスト ページに載っていないメーリングリストがある場合の手順:

  1. htdocs/mailinglists/index.xml と htdocs/mailinglists/list2group.xsl ファイルを編集します。
  2. htdocs/mailinglists にある makefile を実行します。これで index.html が作られます。
  3. html ファイルがうまく作られているか確認します。
  4. index.xml と list2group.xsl ファイルをコミットします。
  5. index.html に適切な "Generated from" を含めるために、このファイルを作り直します。
  6. 作り直した index.html ファイルをコミットします。

雇用コンサルタント (トップ)

「雇用コンサルタント」ページ (gallery/consultants.html) に項目を追加する場合は、 あらかじめ、相手方の web サイトに私たちのホームページに戻るためのリンクを用意することや、 そのサイトで NetBSD に触れることを、関係者に頼んでおいてください。 もちろん、相手方の URL が生きていてアクセス可能であることも確認する必要があります。