當前位置: 華文問答 > 數碼

樹莓派有哪些適合新手的教程,網誌?

2016-05-17數碼

前言

Hexo 是一個快速、簡潔且高效的網誌框架。Hexo 使用 Markdown (或其他渲染引擎)解析文章,在幾秒內,即可利用靚麗的主題生成靜態網頁。即把使用者的markdown檔,按照指定的主題解析成靜態網頁。

前期環境準備

硬件部份:

  • 樹莓派4B
  • 16(GB)SD卡
  • 軟件部份:

  • RASPBERRY PI OS LITE(64-BIT)
  • 電信公網IP+DDNS
  • node.js+Git
  • 安裝hexo

  • 安裝 hexo 之前需要在你的樹莓派上先安裝 npm node.js (一般情況npm是伴隨nodejs一起安裝的)
  • 輸入如下指令檢視hexo和npm是否安裝:

    ~ node -v && npm -v v18.12.1 8.19.2

    使用nodejs的npm安裝包管理工具安裝hexo,指令如下

    ~ npm install -g hexo-cli

    檢視是否安裝成功

    ~ hexo -v hexo-cli: 4.3.0 os: linux 5.15.61-v8+ Debian GNU/Linux 11 (bullseye) 11 (bullseye) node: 18.12.1 v8: 10.2.154.15-node.12 uv: 1.43.0 zlib: 1.2.11 brotli: 1.0.9 ares: 1.18.1 modules: 108 nghttp2: 1.47.0 napi: 8 llhttp: 6.0.10 openssl: 3.0.7+quic cldr: 41.0 icu: 71.1 tz: 2022b unicode: 14.0 ngtcp2: 0.8.1 ngh

    出現版本資訊說明安裝成功

    Hexo生成網頁

    兩個工具就緒後我們開始生成靜態網頁:

    我們首先建立一個資料夾,用來存放網頁數據

    ~ mkdir /home/hexo ~ cd /home/hexo ~ hexo init ~ npm install ~ ls _config.butterfly.yml _config.landscape.yml db.json node_modules package.json scaffolds themes _config.butterfly.yml.save _config.yml hexo_run.js package-lock.json public source

    然後資料夾就有了Hexo的源碼了

    這個就是網站的跟目錄

    使用hexo生成程式碼指令

    hexo g

    然後開啟本地埠存取

    hexo server

    在瀏覽器輸入如下內容,就可以本地存取Hexo生成的網頁程式碼了:

    localhost:4000

    hexo結構詳解

    _config.yml

    網站的配置資訊,您可以在此配置大部份的參數。 配置參數講解

    package.json

    應用程式的資訊,以及需要安裝的模組資訊。

    scaffolds

    模版資料夾。新建文章時,Hexo 會根據 scaffold 中的樣版檔來建立新的檔。 Hexo的樣版是指在新建的markdown檔中預設填充的內容 。例如,如果修改scaffold/post.md中的Front-matter內容,那麽每次新建一篇文章時都會包含這個修改。也就是說,透過hexo命令每新建一個文章,都會包含指定樣版檔中的內容。

    官網樣版詳述

    source

    資源資料夾是存放使用者資源的地方,如markdown文章。 Markdown 和 HTML 檔會被解析並放到 public 資料夾 ,而其他檔會被拷貝過去。

    註意:除 _posts 資料夾之外,開頭命名為 _ (底線)的檔 / 資料夾和隱藏的檔將會被忽略。

    themes

    主題資料夾。Hexo 會根據主題來解析source目錄中的markdown檔生成靜態頁面。 官網主題詳述

    寫作

    可以執行下列命令來建立一篇新文章。

    $ hexo new [ layout] <title>

    可以在命令中指定文章的布局(layout),不指定預設為 post ,也可以透過修改 _config.yml 中的 default_layout 參數來指定預設布局。 建立的新文章會自動加上指定布局對應的樣版檔中的內容。

    布局(Layout)

    Hexo 有三種預設布局: post page draft ,它們分別對應不同的路徑,而自訂的其他布局和 post 相同,都將儲存到 source/_posts 資料夾。

    布局路徑 postsource/_postspagesourcedraftsource/_drafts

    如果你不想你的文章被處理,你可以將 Front-Matter 中的 layout: 設為 false

    模版(Scaffold)

    在新建文章時,Hexo 會根據 scaffolds 資料夾內相對應的檔來建立檔,例如:

    $ hexo new photo "My Gallery"

    在執行這行指令時,Hexo 會嘗試在 scaffolds 資料夾中尋找 photo.md ,並根據其內容建立文章 ,以下是您可以在模版中使用的變量:

    變量描述 layout 布局 title 標題 date 檔建立日期

    Front-matter

    Front-matter是檔最上方以 --- 分隔的區域,用於指定個別檔的變量,舉例來說:

    --- title: Hello World date: 2013/7/13 20:46:25 ---

    註意:一般Front-matter使用的yaml語法,yaml語法需要註意空格,如 title: Hello World 冒號需要有一個空格,當然除YAML 外,你也可以使用 JSON 來編寫 Front-matter。

    以下是預先定義的參數,您可在樣版中使用這些參數值並加以利用。

    參數描述預設值layout布局title標題date建立日期檔建立日updatedTime更新日期檔更新日期comments開啟文章的評論功能truetags標簽(不適用於分頁)categories分類(不適用於分頁)permalink覆蓋文章網址

    分類和標簽

    只有文章支持分類和標簽,您可以在 Front-matter 中設定。在其他系統中,分類和標簽聽起來很接近,但是在 Hexo 中兩者有著明顯的差別: 分類具有順序性和層次性而標簽沒有順序和層次

    categories: - Diary tags: - PS3 - Games

    WordPress支持對一篇文章設定多個分類,而且這些分類可以是同級的,也可以是父子分類。但是Hexo不支持指定多個同級分類。下面的指定方法: categories:
  • Diary
  • Life
  • 會使分類 Life 成為 Diary 的子分類,而不是並列分類。因此,有必要為您的文章選擇盡可能準確的分類.

    文章摘要

    設定文章摘要,我們只需在想顯示為摘要的內容之後添 <!-- more --> 即可。像下面這樣:

    --- title: hello hexo markdown date: 2016-11-16 18:11:25 tags: - hello - hexo - markdown --- 我是短小精悍的文章摘要(๑•̀ㅂ•́) ✧ <!-- more --> 緊接著文章摘要的正文內容

    這樣, <!-- more --> 之前、文件配置參數之後中的內容便會被渲染為站點中的文章摘要。

    註意!文章摘要在文章詳情頁是正文中最前面的內容。

    資源參照

    寫個網誌,有時候會想添加個圖片或者其他形式的資源等等。有以下兩種方式進行解決:

    1. 使用絕對路徑參照資源,在 Web 世界中就是資源的 URL
    2. 使用相對路徑參照資源

    對於使用相對路徑參照資源的,我們可以使用 Hexo 提供的 資源資料夾 功能。

    使用文字編輯器開啟站點根目錄下的 _ config.yml 檔,將 post_asset_folder 值設定為 true

    post_asset_folder: true

    修改之後會開啟 Hexo 的文章資原始檔管理功能。Hexo 將會在我們每一次透過 hexo new <title> 命令建立新文章時自動建立一個同名資料夾,於是我們便可以將文章所參照的相關資源放到這個同名資料夾下,然後透過相對路徑參照。例如,你把一個 example.jpg 圖片放在了這個同名資料夾中,使用相對路徑的常規 markdown 語法 ![](./example.jpg) 即可存取 。

    網站釋出

    首先執行下列命令生成相應的靜態網頁,生成的靜態網頁以及相關資源都會在 public 目錄下

    $ hexo generate

    用hexo-server

    hexo-server模組的主要命令如下,輸入以下命令以啟動伺服器,您的網站會在 http://localhost:4000 下啟動。在伺服器啟動期間,Hexo 會監視檔變動並自動更新,您無須重新開機伺服器。

    $ hexo server

    如果您想要更改埠,或是在執行時遇到了 EADDRINUSE 錯誤,可以在執行時使用 -p 選項指定其他埠,如下:

    $ hexo server -p 5000

    但是個人認為此方式比較適合用於偵錯網站,並不適合長時間的網站伺服器,同時為了讓這個命令在後台長時間執行,需要編寫相應的指令碼。

    編輯自己的網誌

    如何添加自己的網誌

    例如新建一篇名為:【my_blog】的網誌,輸入新建命令: hexo new 'myblog'

    執行完成後檢視source/_post資料夾會發現已經生成了myblog.md檔

    最後重新開機hexo就可以看到啦!

    ~ hexo g ~ hexo s

    網誌的部署

    安裝 Nginx

    sudo apt-get install nginx

    啟動Nginx

    sudo nginx start

    啟動,停止和重新載入Nginx配置

    要啟動nginx,請執行可執行檔。 當nginx啟動後,可以透過使用 -s 參數呼叫可執行檔來控制它。 使用以下語法:

    nginx -s signal

    訊號( signal )的值可能是以下之一:

  • stop - 快速關閉服務
  • quit - 正常關閉服務
  • reload - 重新載入配置檔
  • reopen - 重新開啟日誌檔
  • 例如,要透過等待工作行程完成服務當前請求來停止 nginx 行程,可以執行以下命令:

    nginx -s quit

    註:該命令應該在啟動nginx的同一使用者下執行。

    在將重新配置命令的命令發送到nginx或重新啟動之前,配置檔中的更改將不會被套用。 要重新載入配置檔,請執行:

    nginx -s reload

    當主行程收到要重新載入配置的訊號,它將檢查新配置檔的語法有效性,並嘗試套用其中提供的配置。 如果這是成功的,主行程將啟動新的工作行程,並向舊的工作行程發送訊息,請求它們關閉。 否則,主行程回滾更改,並繼續使用舊配置。 老工作行程,接收關閉命令,停止接受新連線,並繼續維護當前請求,直到所有這些請求得到維護。 之後,舊的工作行程結束。

    部署靜態頁面

    安裝完成之後了解下nginx的安裝位置(每個版本都可能存在差異)

    whereis nginx

    其中/usr/sbin/nginx 為執行指令所在位置; /etc/nginx 為nginx配置檔所在位置; (1)如何部署頁面 進入/etc/nginx 資料夾,我們重點關註sites-available和sites-enabled 轉譯過來就是【可以啟用的站點】和【已經啟用的站點】

    使用FTP工具登入到伺服器之後可以看到 sites-enabled 下面預設有一個default,但是上面有一個類似捷徑的圖示,實際上這是一個軟連結,連結的檔在 sites-available中

    tips:當我們更改sites-available中的default檔後,會發現sites-enabled中的default檔也同步改變了

    我們可以直接修改【sites-available】的default 來設定第一個站點,如下就是default 的設定使用vim指令開啟的情況(如果不熟悉vim指令可以透過FTP工具把這個檔下載下來修改之後再上傳)

    其中:

    1.listen 9999:表示監聽9999埠

    2.root /var/www/html/bigDataweb :表示站點的目錄放在/var/www/html/bigDataweb資料夾下面

    所以我們只需要把我們搭建網誌中的public資料夾的位置替換掉上面的就行了