Boost C++ 函式庫

...世界上最受推崇且設計精良的 C++ 函式庫專案之一。 Herb SutterAndrei AlexandrescuC++ 編碼標準

更新與編輯網站內容

取得內容

網站內容位於 git 儲存庫中。

正在進行中的工作位於 beta 分支上,而正式上線的網站則位於 master 分支上。網站會自動從 git 儲存庫更新。如果您想要更新網站,請建立一個 Pull Request。

現有頁面

網站的大部分內容都是自動產生的,包括發行說明、新聞頁面以及 generated 目錄中的任何檔案。如果您想要編輯這些內容,請參閱下文。

網頁內容的結構設計盡可能簡單,以便可以進行通用編輯。至少只需要一個文字編輯器和 HTML Tidy 即可編輯內容。內容使用 XHTML 1.0 Strict 是基於多種原因,最重要的是提高可存取性並強制將樣式與內容分離。在如上所述取得您想要編輯的內容後,進行您想要的變更,並使用以下選項透過 HTML Tidy 執行結果

tidy --tidy-mark no -i -wrap 78 -m -asxhtml --merge-divs no --merge-spans no --doctype strict fname

使用一致的選項集執行 HTML Tidy 也有助於在儲存庫中保持準確的變更歷史記錄。在 範例中可以找到直接或透過使用 [class="value"] 屬性支援的各種 XHTML 標籤樣式。請注意 HTML Tidy 提及的任何錯誤和警告,並努力將它們全部移除。

注意:tidy的選項是針對最新版本的。特別是--merge-*選項可能在許多 Unix/Linux 發行版本和 Windows 公用程式中不適用。移除不可用的選項是可行的,並且可以運作。但我們建議安裝最新的版本tidy如果可能的話。您可以從 HTML Tidy 函式庫專案取得最新的 Windows 二進位檔和原始碼。

頁面應該可以在大多數瀏覽器中檢視。如果可能,請在盡可能多的瀏覽器中測試您的變更。如果您使用的是 Windows,最好至少在兩個現代瀏覽器中進行測試。但如果您使用其他平台,最好使用「預設」瀏覽器進行測試。通常在網頁伺服器環境之外檢視頁面只會顯示內容和頁尾的一部分。這是因為網站使用伺服器端包含 (SSI),而大多數瀏覽器不會處理這些包含。若要檢視完整內容,您需要執行自己的 Apache 伺服器,或者提交變更並在網路上檢視變更,網址如下

網站 網址 分支
Beta http://beta.boost.org/ beta
這是網站的實驗性版本。開發工作應該先在這裡進行,然後合併到正式上線的網站。
正式上線 https://boost.dev.org.tw/ master
一般大眾將看到的網站。

新頁面

為了讓新增頁面更容易,有一個 範本可以開始。在各個網站區段中也有 _template_.html 檔案,其中已包含正確的側邊欄選單。首先,將範本複製到您想要新增的網站區段,並為新檔案命名一個相當清楚的名稱。區段由您決定,但每個區段的預期內容類型如下:

簡介
協助新使用者了解 Boost 的用途和內容。這是新訪客會造訪的地方。目錄/users
社群
對於有興趣參與或已經參與的使用者,本區段說明 Boost 使用者和開發人員社群的運作方式。目錄/community
開發
潛在或現有的 Boost 開發人員可以利用本區段快速取得最常用的內容。本區段旨在保存資源的參考,或直接包含經常變更的內容。或者只與函式庫開發人員相關的內容,儘管當使用者更深入參與 Boost 社群時,它可能會引起更廣泛的興趣。目錄/development
文件
本區段整理特定於 Boost 函式庫的文件。至少包括每個 Boost 版本發布的函式庫文件。還包括對社群維護的 Wiki 的存取。目錄/doc

為了提供區段的使用者介面外觀和風格,需要對範本進行一些變更

  • 每個區段都有不同的 CSS 樣式參考包含在head區段中。此參考需要變更為以下其中一個:

    • 簡介/style-v2/section-boost.css
    • 社群/style-v2/section-community.css
    • 開發/style-v2/section-development.css
    • 支援/style-v2/section-support.css
    • 文件/style-v2/section-doc.css
  • 每個區段透過使用 SSI 顯示不同的關聯式側邊欄選單。要顯示的側邊欄參考需要在sidebar區段中變更為以下其中一個:

    • 簡介/common/sidebar-boost.html
    • 社群/common/sidebar-community.html
    • 開發/common/sidebar-development.html
    • 支援/common/sidebar-support.html
    • 文件/common/sidebar-doc.html

    sidebar區段中,包含兩個選單,第一個是所有頁面通用的,包含下載連結和搜尋方塊。請勿取代該側邊欄 (/common/sidebar-common.html)。應該變更的是第二個#include以反映目前的區段。

  • 由於這是新頁面,您也需要在頁尾中插入您自己的相應著作權。

  • 若要插入新內容,您需要將其插入到section-body區段中。將{stuff}佔位符取代為您想要的內容。此外,您可能還想變更標題,在head中,以及在section-title區段中。

除了新頁面的直接內容之外,還需要將一個條目新增到頁面,以便可以從側邊欄和索引存取。請參閱下文...

選單、側邊欄和索引

各種導覽元素的結構設計旨在讓新增條目變得容易,並讓所有顯示這些條目的地方保持一致。為此,網站使用 SSI 來減少擁有這些條目的位置到一個。這表示在單一共同位置變更它時,您不必擔心變更所有頁面,它們都會立即反映新內容。若要將項目新增到各個區段選單,請編輯website/common目錄中對應的選單檔案

  • 簡介/common/menu-boost.html
  • 社群/common/menu-community.html
  • 開發/common/menu-development.html
  • 文件/generated/menu-doc.html

產生的頁面

網站的各個區段由 php 指令碼從 Quickbook 來源檔案產生:首頁、新聞、下載、版本歷史記錄和摘要。內容並非直接可編輯,而是從來源 Quickbook 文件產生。例如,若要新增新聞項目,您會

  1. /feed/news目錄中建立一個新檔案,例如/feed/news/gui_review_ends.qbk.
  2. 在 Shell 中,執行/site-tools/update.py指令碼。這將為新新聞項目產生頁面、重新產生/feed/news.rss檔案以包含它、更新連結到新項目的頁面並更新檔案/site-tools/state/feed-pages.txt,其中追蹤產生的檔案的目前狀態。
  3. 將新檔案新增到 SVN 儲存庫並提交。

相同的程序適用於其他摘要,但請記住,某些摘要可能會合併來自多個摘要子目錄的項目。目前這需要在您的路徑中包含 Quickbook 和 Python。

本機伺服器

即使網站的設計讓您只需要一些基本工具和網頁瀏覽器即可進行變更,但有些方面是動態的,因此在沒有隨附的網頁伺服器的情況下無法運作。若要設定本機網頁伺服器以對動態內容進行變更,您需要:

  1. 安裝並讓 Apache 2.xPHP 5.3 或更高版本運作 (將 PHP 安裝為 Apache 模組,而不是 CGI)。

  2. 在您的hosts檔案中設定符號主機查找,方法是新增 "127.0.0.1 boost.localhost".

  3. 在 Apache 中新增一個虛擬主機以符合新的本機主機。一個可能可以運作的設定是:

    <VirtualHost 127.0.0.1:80>
      ServerName boost.localhost
      DocumentRoot "/path/to/boost/website"
      <Directory "/path/to/boost/website">
        Options +MultiViews +Includes +ExecCGI +FollowSymLinks +Includes
        AllowOverride All
        Order allow,deny
        Allow from all
        # For apache 2.4:
        # Require all granted
      </Directory>
    </VirtualHost>
    
  4. 建立一個本機 PHP 設定檔案,用於 Boost 特定的設定,例如 "/path/to/boost/website/common/code/boost_config_local.php",其中包含類似以下的內容:

    <?php
    define('BOOST_WEBSITE_SHARED_DIR', '/path/to/boost/shared');
    define('STATIC_DIR', '/path/to/boost/shared/archives/live');
    ?>
    

    在設定官方網頁伺服器時,檔案應該改名為 config.php,並放置在路徑 "/home/www/shared/config.php".

    如需設定的簡要說明,請參閱common/code/boost_config.php檔案。

  5. 為了檢視文件,您需要設定適當的目錄。STATIC_DIR需要是已解壓縮的 boost 發行版本副本所在位置,以便提供文件。預設情況下,boost_config.php 會將 STATIC_DIR 設定為 $BOOST_WEBSITE_SHARED_DIR/archives/live。請依照類似的步驟操作,並根據需要變更變數。

    BOOST_WEBSITE_SHARED_DIR=/home/www/shared
    mkdir -p $BOOST_WEBSITE_SHARED_DIR/archives/live
    cd $BOOST_WEBSITE_SHARED_DIR/archives/live
    wget https://archives.boost.io/release/1.74.0/source/boost_1_74_0.tar.gz
    tar -xvf boost_1_74_0.tar.gz

Ubuntu 設定

為了在 Ubuntu 上設定網站,我需要執行以下操作

sudo apt-get install apache2 libapache2-mod-php5
sudo a2enmod headers
sudo a2enmod rewrite
sudo a2enmod include
sudo a2dismod deflate
sudo service apache2 restart

我必須停用 deflate,因為它與 php 的 virtual 函式互動不良。