顯示具有 wiki 標籤的文章。 顯示所有文章
顯示具有 wiki 標籤的文章。 顯示所有文章

自己動手架設wiki(11) - Gitit在Linux的"man git"

沒有留言:

前言

此文件是由Gitit使用者手冊中的語法得到
~/wiki/$ man gitit > manual_gitit.txt

內容

Gitit 的 Linux指令操作手冊

NAME

gitit - 一種以分散式版本控制(git或darcs)為檔案管理系統的 wiki 引擎

指令結構

gitit [{-h | --help}] [{-v | --version}] [{-p port | --port=port}]
      [{-l interface | --listen=interface}]
      [{-f configfile | --config-file=configfile}] [--debug]
      [--print-default-config]

指令說明

gitit是一種以git(也可以用darcs)為檔案管理系統的 wiki 引擎。在第一次執行時,Gitit會建立wiki的基本架構所需要的檔案和目錄,然後等待http訊息傳入。When run in a directory that already contains a gitit wiki, it uses the information already present.
wikidata這個目錄包含hosts的repository(受git版本控制的目錄範圍),用來存放所有的wiki頁面。你可以透過Web界面也可以直接下git指令控制 (像是commit/record或者push/pull)。

參數使用 (原文用options在此翻譯成參數)

這個程式遵循一般的GNU指令格式,完整參數用兩個dashes(`-’)開頭。
-h, --help
純粹顯示參數的相關說明,就醬。
-v, --version
純粹顯示已安裝的Gitit版本,就醬。
-p port, --port=port
指定gitit等待的port
-l interface, --listen=interface
指定gitit等待的界面
-f configfile, --config-file=configfile
使用自訂的設定檔,查看這個檔案可以設定的範圍和設定格式(使用預設的設定值和設定說明)使用--print-default-config
--debug
啟動debug模式:gitit將會顯示關於網路訊息的請求和處理紀錄。
--print-default-config
印出預設設定值,along with some documentation.

作者

Giovanni Mascellani gio@debian.org Wrote this manpage for the Debian system.

版權所有

Copyright © 2011 Giovanni Mascellani
This manual page was written for the Debian system (and may be used by others).
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 3 or (at your option) any later version published by the Free Software Foundation.
On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.
08/04/2013

自己動手架設wiki(10) - 系統初始化生成的「使用者手冊」

沒有留言:

前言

此文件為Gitit初始化生成的文件。恰巧和Gitit在Github上的說明一模一樣。

Gitit

Gitit是一個用Haskell語言撰寫而成的Wiki引擎。使用Happstack當Web serivce並且使用pandoc處理標記語言的轉換。wiki頁面和上傳的檔案可以選擇儲存在任何分散式版本控制工具中(例如git, darcsmercurial),而且可以使用VCS(Version Control Systems)的指令或透過wiki提供的Web界面來操作。預設情況下, 預設的標記語言是用markdown的擴充版配合pandoc的轉檔軟體,但也包含 reStructuredText、LaTeX、HTML、DocBook或Emacs Org-mode的標記方式。wiki頁面可以轉成許多不同的格式,包含LaTeX, RTF, OpenOffice ODT以及MediaWiki(一般wiki百科的那種)標記方式。設定Gitit的config可以顯示TeX math (用texmath)和標示程式碼(source code)(用highlighting-kate)。
其他功能還包括
  • 外掛程式(plugins): dynamically loaded page transformations written in Haskell (see “Network.Gitit.Interface”)
  • 分類(categories)
  • TeX math
  • 程式碼語法標示和程式碼片段 (using highlighting-kate)
  • 快取(caching)
  • 支援Atom訂閱 (包含網站和每個頁面)
  • a library, “Network.Gitit”, that makes it simple to include a gitit wiki in any happstack application
你可以看這些功能的Demo在。

Getting 起步走(Getting started)

編譯和安裝gitit(Compiling and installing gitit)

你需要GHC編譯器和cabal-install安裝工具。GHC的載點。要注意,下載的版本必須是release 0.5、GHC 6.10或更高版本。cabal-install安裝工具必須在like unix作業系統上運作。以下是快速安裝說明。
一旦你取得了cabal-install安裝工具,安裝gitit就是最平凡小事(trivial)了:
cabal update
cabal install gitit
要安裝最新版的gitit,只要輸入這些命令。要安裝某一個版本的gitit,要從資源庫(repository)簽出(checked out)來,修改gitit的資料夾,然後再輸入:
cabal install
cabal安裝工具會自動安裝所有需要的Haskell的程式庫(libraries)。順利的話,這個過程最後會自己結束,gitit的最新版本將被安裝在你的電腦裡。cabal的資料夾。你可以用這個指令檢查:
gitit --version
如果不順利,檢查gitit是否在你local cabal-install的可執行目錄(通常是~/.cabal/bin)。並確保~/.cabal/bin設定成系統路徑。

設定支援語法標示(Optional syntax highlighting support)

If pandoc was compiled with optional syntax highlighting support, this will be available in gitit too. This feature is recommended if you plan to display source code on your wiki.
如果pandoc使用語法標示選項來編譯, 同樣也可以在gitit上使用。 如果你計畫在wiki上顯示原始碼,推薦使用此功能。
Highlighting support requires the pcre library, so make sure that is installed before continuing.
語法標示支援需要pcre函數庫,請在繼續之前確認已經安裝。
To install gitit with highlighting support, first ensure that pandoc is compiled with highlighting support, then install gitit as above:
在gitit安裝語法標示前,先確認pandoc是被編譯成語法標示,再依據下列指令安裝:
cabal install pandoc -fhighlighting --reinstall
cabal install gitit

執行Gitit(Running gitit)

To run gitit, you’ll need git in your system path. (Or darcs or hg, if you’re using darcs or mercurial to store the wiki data.)
在執行gitit之前,你需要確認git在作業系統路徑下。 (如果你使用 darcsmercurial來儲存wiki的資料,確認darcshg在作業系統路徑下。)
Gitit assumes that the page files (stored in the git repository) are encoded as UTF-8. Even page names may be UTF-8 if the file system supports this. So you should make sure that you are using a UTF-8 locale when running gitit. (To check this, type locale.)
Gitit預設頁面檔案(儲存在git repository)是以UTF-8儲存,如果檔案系統支援以UTF-8儲存, 甚至頁面名稱也是以此格式儲存。所以確認你的gitit是使用UTF-8的語言環境。(請檢查, type locale.)
Switch to the directory where you want to run gitit. This should be a directory where you have write access, since three directories, static, templates, and wikidata, and two files, gitit-users and gitit.log, will be created here. To start gitit, just type:
可以更改gitit執行目錄到你想要的位置,但必須確認你擁有寫入的權限。 開始使用gitit只要輸入以下命令, 就會建立包含static,templates,wikidata三個目錄,和兩個檔案gitit-users,gitit.log
gitit
If all goes well, gitit will do the following:
如果一切順利,這個指令會執行下列動作:
  1. Create a git repository, wikidata, and add a default front page.
  2. Create a static directory containing files to be treated as static files by gitit.
  3. Create a templates directory containing HStringTemplate templates for wiki pages.
  4. Start a web server on port 5001.
  5. 建立一個git的儲存庫wikidata, 和增加一個預設的頁面.
  6. 建立一個static目錄,包含一些初始化檔案.
  7. 建立一個templates目錄,包含 HStringTemplate templates給各個頁面.
  8. 在連接埠5001啟動一個 Web Server.
Check that it worked: open a web browser and go to http://localhost:5001.
開啟瀏覽器輸入確認是否正常運作.
You can control the port that gitit runs on using the -p option: gitit -p 4000 will start gitit on port 4000. Additional runtime options are described by gitit -h.
你可以使用 -p 選項,例如:gitit -p 4000 將更改連接埠至 4000。 最後你可以在執行時使用gitit -h取得說明。

使用Gitit(Using gitit)

For instructions on editing pages and creating links, see the “Help” page.
有關編輯頁面和創建連結的說明,請參閱“幫助”頁面。
Gitit interprets links with empty URLs as wikilinks. Thus, in markdown pages, [Front Page]() creates an internal wikilink to the page Front Page. In reStructuredText pages, `Front Page <>`_ has the same effect.
Gitit 會將空的連結當作是 wikilinks, 進而建立一個新頁面。 [Front Page]() 會建立一個內部的 wikilink 到 Front Page. 在 reStructuredText 頁面使用 `Front Page <>`_ 有相同效果。
If you want to link to a directory listing for a subdirectory, use a trailing slash: [foo/bar/]() creates a link to the directory for foo/bar.
如果你想要一個連結清單到根目錄, 可以使用下列語法,來建一個連結到foo/bar目錄: [foo/bar/]()

頁面後設資料(Page metadata)

在頁面開頭可以加入後設資料非必要。範例如下:
---
format: latex+lhs
categories: haskell math
toc: no
title: Haskell and
  Category Theory
...

\section{Why Category Theory?}
後設資料由key-value列表組成,每一行為單獨的key-value。 如果需要key可以用空白隔開連接多個key'。(這裡有一個插圖標頭的範例)後設資料第一行必須以為開頭,並且最後必須以一個以上的空白行為結束。(後設資料是有效的非標記式語言[(YAML)](http://zh.wikipedia.org/wiki/YAML)文件, 雖然不是所有非標記式語言`文件在後設資料都是有效的)
後設資料目前支援的key如下:
format
指定顯示此頁以何種語法解讀
允許的值是 markdownrstlatexhtmlmarkdown+lhs
rst+lhslatex+lhs。(忽略大小寫,所以你也可以寫成LaTeXHTML…等)
設定+lhs意思是,如果另一個語法出問題,該文章就當作Haskell來顯示。
categories
頁面標籤,可以在左列的分類索引(categories)中新增徢徑。
toc
變更configuration檔設定的table-of-contents
簡單的說,就是設定每一頁的大綱是否顯示
值可以設定成yesnotruefalse (忽略大小寫)。
title
替代原本的文件名稱當文章標題。(預設的文章標題,就是檔案名稱)

標記程式碼(Highlighted source code)

如果編譯gitit針對一個已經有支援標示程式碼的Pandoc版本 (see above),你可以界定程式碼區塊(delimited code blocks)來標示程式碼語法:
~~~ {.haskell .numberLines}
qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++
               qsort (filter (>= x) xs) 
~~~
用下面的指令可以看到你編譯的Pandoc支持了什麼的語言的標示
pandoc -v

設定和個人化Gitit(Configuring and customizing gitit)

設定選項(Configuration options)

使用這個參數 -f [filename] 指定config設定檔:
gitit -f my.conf
如果不使用這個選項,gitit會使用預設的config設定。為了取得 你可以輸入下面的指令取得目前gitit的預設config的副本:
gitit --print-default-config > my.conf
預設的config檔是有經過註解的文件

static資料夾(The static directory)

若收到一個request訊息,gitit總是會先找static資料夾裡的資料(或任何在static-dir的檔案(configuration file))如果找到檔案對應到即將要顯示的資料,就會馬上送出。如果在static找不到的檔案, gitit接下來會依據static子目錄($CABALDIR/share/gitit-x.y.z/data)裡的gitit資料檔。這是儲存預設css、javascripts和圖檔的地方。如果文件沒有找到,gitit會將它視為wiki頁面或wiki的執行指令。
So, you can throw anything you want to be served statically (for example, a robots.txt file or favicon.ico) in the static directory. You can override any of gitit’s default css, javascript, or image files by putting a file with the same relative path in static. Note that gitit has a default robots.txt file that excludes all URLs beginning with /_.
Note: if you set static-dir to be a subdirectory of repository-path, and then add the files in the static directory to your repository, you can ensure that others who clone your wiki repository get these files as well. It will not be possible to modify these files using the web interface, but they will be modifiable via git.

使用git以外的版本控制系統(Using a VCS other than git)

By default, gitit will store wiki pages in a git repository in the wikidata directory. If you’d prefer to use darcs instead of git, you need to add the following field to the configuration file:
repository-type: Darcs
If you’d prefer to use mercurial, add:
repository-type: Mercurial
This program may be called “darcsit” instead of “gitit” when a darcs backend is used.
Note: we recommend that you use gitit/darcsit with darcs version 2.3.0 or greater. If you must use an older version of darcs, then you need to compile the filestore library without the (default) maxcount flag, before (re)installing gitit:
cabal install --reinstall filestore -f-maxcount
cabal install --reinstall gitit
Otherwise you will get an error when you attempt to access your repository.

變更佈景主題(Changing the theme)

改變wiki頁面的排版,只要修改在static/csscustom.css
改變列印頁面的排版,取得一份gitit的預設print.css到static/css,並且修改它。
想要換掉logo圖的話,可以找一張.png檔,替換掉static/img/logo.png即可。 預設大小為138×155 pixels。
想要修改註腳(footer)的話,修改 templates/footer.st
如果想要修改更多的話,可以重寫預設模版(template),在$CABALDIR/share/gitit-x.y.z/data/templates可以找到,再放到templates資料夾中,就會以此模版為顯示模版。其中page.st是主幹模版(master template);由它來引用其它的模版。 模版內使用的變數,用$
Interpolated variables are surrounded by $s, so literal $ must be backslash-escaped.

增加數學支援(Adding support for math)

To write math on a markdown-formatted wiki page, just enclose it in dollar signs, as in LaTeX:
Here is a formula:  $\frac{1}{\sqrt{c^2}}$
You can write display math by enclosing it in double dollar signs:
$$\frac{1}{\sqrt{c^2}}$$
Gitit can display TeX math in three different ways, depending on the setting of math in the configuration file:
  1. mathml (default): Math will be converted to MathML using texmath. This method works with IE+mathplayer, Firefox, and Opera, but not Safari.
  2. jsMath: Math will be rendered using the jsMath javascript. If you want to use this method, download jsMath and jsMath Image Fonts from the jsMath download page. You’ll have two .zip archives. Unzip them both in the static/js directory (a new subdirectory, jsMath, will be created). This works with all browsers, but is slower and not as nice looking as MathML.
  3. raw: Math will be rendered as raw LaTeX codes.

限制存取(Restricting access)

If you want to limit account creation on your wiki, the easiest way to do this is to provide an access-question in your configuration file. (See the commented default configuration file.) Nobody will be able to create an account without knowing the answer to the access question.
如果你想要限制建立帳號的權限,最簡單的方式是提供access-question在你的設定檔案。 (請參閱預設的設定檔案解說)
在不知道access-question的答案下,就無法建立帳號。
Another approach is to use HTTP authentication. (See the config file comments on authentication-method.)
另一種方法是使用HTTP認證。 (請參閱配置文件中的註釋上authentication-method

外掛程式(Plugins)

Plugins are small Haskell programs that transform a wiki page after it has been converted from Markdown or RST. See the example plugins in the plugins directory. To enable a plugin, include the path to the plugin (or its module name) in the plugins field of the configuration file. (If the plugin name starts with Network.Gitit.Plugin., gitit will assume that the plugin is an installed module and will not look for a source file.)
Plugin support is enabled by default. However, plugin support makes the gitit executable considerably larger and more memory-hungry. If you don’t need plugins, you may want to compile gitit without plugin support. To do this, unset the plugins Cabal flag:
cabal install --reinstall gitit -f-plugins
Note also that if you compile gitit for executable profiling, attempts to load plugins will result in “internal error: PAP object entered!”

透過Git存取wiki (Accessing the wiki through git)

All the pages and uploaded files are stored in a git repository. By default, this lives in the wikidata directory (though this can be changed through configuration options). So you can interact with the wiki using git command line tools:
所有頁面和上傳的檔案被儲存在 git repository. 預設放在wikidata目錄底下 (當然這可以透過設定檔案更改). 所以你可以使用 git 命令工具操作 wiki:
git clone ssh://my.server.edu/path/of/wiki/wikidata
cd wikidata
vim Front\ Page.page  # edit the page
git commit -m "Added message about wiki etiquette" Front\ Page.page
git push
If you now look at the Front Page on the wiki, you should see your changes reflected there. Note that the pages all have the extension .page.
現在回到Front Page, 可以看到剛剛所做的更改. 每個頁面都有對應的.page頁面。
If you are using the darcs or mercurial backend, the commands will be slightly different. See the documentation for your VCS for details.
如果你使用 darcsmercurial 為後端, 命令會有些不同。 請參考相關的 VCS 詳細說明.

性能(Performance)

Caching

By default, gitit does not cache content. If your wiki receives a lot of traffic or contains pages that are slow to render, you may want to activate caching. To do this, set the configuration option use-cache to yes. By default, rendered pages, highlighted source files, and exported PDFs will be cached in the cache directory. (Another directory can be specified by setting the cache-dir configuration option.)
Cached pages are updated when pages are modified using the web interface. They are not updated when pages are modified directly through git or darcs. However, the cache can be refreshed manually by pressing Ctrl-R when viewing a page, or by sending an HTTP GET or POST request to /_expire/path/to/page, where path/to/page is the name of the page to be expired.
Users who frequently update pages using git or darcs may wish to add a hook to the repository that makes the appropriate HTTP request to expire pages when they are updated. To facilitate such hooks, the gitit cabal package includes an executable expireGititCache. Assuming you are running gitit at port 5001 on localhost, and the environment variable CHANGED_FILES contains a list of the files that have changed, you can expire their cached versions using
expireGititCache http://localhost:5001 $CHANGED_FILES
Or you can specify the files directly:
expireGititCache http://localhost:5001 "Front Page.page" foo/bar/baz.c
This program will return a success status (0) if the page has been successfully expired (or if it was never cached in the first place), and a failure status (> 0) otherwise.
The cache is persistent through restarts of gitit. To expire all cached pages, simply remove the cache directory.

Idle

By default, GHC’s runtime will repeatedly attempt to collect garbage when an executable like Gitit is idle. This means that gitit will, after the first page request, never use 0% CPU time and sleep, but will use ~1%. This can be bad for battery life, among other things.
To fix this, one can disable the idle-time GC with the runtime flag -I0:
gitit -f my.conf +RTS -I0 -RTS

在Gitit使用Apache(Using gitit with apache)

Most users who run a public-facing gitit will want gitit to appear at a nice URL like http://wiki.mysite.com or http://mysite.com/wiki rather than http://mysite.com:5001. This can be achieved using apache’s mod_proxy.

Proxying to http://wiki.mysite.com

Set up your DNS so that http://wiki.mysite.com maps to your server’s IP address. Make sure that the mod_proxy module is loaded, and set up a virtual host with the following configuration:
<VirtualHost *>
    ServerName wiki.mysite.com
    DocumentRoot /var/www/
    RewriteEngine On
    ProxyPreserveHost On
    ProxyRequests Off

    <Proxy *>
       Order deny,allow
       Allow from all
    </Proxy>

    ProxyPassReverse /    http://127.0.0.1:5001
    RewriteRule ^(.*) http://127.0.0.1:5001$1 [P]

    ErrorLog /var/log/apache2/error.log
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On

</VirtualHost>
Reload your apache configuration and you should be all set.

Using nginx to achieve the same

Drop a file called wiki.example.com.conf into /etc/nginx/conf.d (or where ever your distribution puts it).
server {
    listen 80;
    server_name wiki.example.com
    location / {
        proxy_pass        http://127.0.0.1:5001/;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_redirect off;
    }
    access_log /var/log/nginx/wiki.example.com.log main;
}
Reload your nginx config and you should be all set.

Proxying to http://mysite.com/wiki

Make sure the mod_proxy, mod_headers, mod_proxy_http, and mod_proxy_html modules are loaded. mod_proxy_html is an external module, which can be obtained here (http://apache.webthing.com/mod_proxy_html/). It rewrites URLs that occur in web pages. Here we will use it to rewrite gitit’s links so that they all begin with /wiki/.
First, tell gitit not to compress pages, since mod_proxy_html needs uncompressed pages to parse. You can do this by setting the gitit configuration option
compress-responses: no
Second, modify the link in the reset-password-message in the configuration file: instead of
http://$hostname$:$port$$resetlink$
set it to
http://$hostname$/wiki$resetlink$
Restart gitit.
Now add the following lines to the apache configuration file for the mysite.com server:
# These commands will proxy /wiki/ to port 5001

ProxyRequests Off

<Proxy *>
  Order deny,allow
  Allow from all
</Proxy>

ProxyPass /wiki/ http://127.0.0.1:5001/

<Location /wiki/>
  SetOutputFilter  proxy-html
  ProxyPassReverse /
  ProxyHTMLURLMap  /   /wiki/
  RequestHeader unset Accept-Encoding
</Location>
Reload your apache configuration and you should be set.
For further information on the use of mod_proxy_http to rewrite URLs, see the mod_proxy_html guide.

Using gitit as a library

By importing the module Network.Gitit, you can include a gitit wiki (or several of them) in another happstack application. There are some simple examples in the haddock documentation for Network.Gitit.

回報bug(Reporting bugs)

Bugs may be reported (and feature requests filed) at http://code.google.com/p/gitit/issues/list.
There is a mailing list for users and developers at http://groups.google.com/group/gitit-discuss.

致謝(Acknowledgements)

A number of people have contributed patches:
  • Gwern Branwen helped to optimize gitit and wrote the InterwikiPlugin. He also helped with the Feed module.
  • Simon Michael contributed the patch adding RST support.
  • Henry Laxen added support for password resets and helped with the apache proxy instructions.
  • Anton van Straaten made the process of page generation more modular by adding Gitit.ContentTransformer.
  • Robin Green helped improve the plugin API and interface, and fixed a security problem with the reset password code.
  • Thomas Hartman helped improve the index page, making directory browsing persistent, and fixed a bug in template recompilation.
  • Justin Bogner improved the appearance of the preview button.
  • Kohei Ozaki contributed the ImgTexPlugin.
  • Michael Terepeta improved validation of change descriptions.
  • mightybyte suggested making gitit available as a library, and contributed a patch to ifLoggedIn that was needed to make gitit usable with a custom authentication scheme.
I am especially grateful to the darcs team for using darcsit for their public-facing wiki. This has helped immensely in identifying issues and improving performance.
Gitit’s default visual layout is shamelessly borrowed from Wikipedia. The stylesheets are influenced by Wikipedia’s stylesheets and by the bluetrip CSS framework (see BLUETRIP-LICENSE). Some of the icons in img/icons come from bluetrip as well.

自己動手架設wiki(9) - config檔

沒有留言:

前言

此文件是由Gitit使用者手冊中的語法得到
~/wiki/$ gitit --print-default-config > wiki.conf

內容

Gitit wiki configuration file

設定web server觸發的IP
address: 0.0.0.0
設定web server執行的port
port: 5001
wiki系統的title(顯示在瀏覽器的標題列)
wiki-title: Wiki
指定用來儲存wiki內容的分散式版本控制系統,可設定成Git, Darcs, Mercurial。
repository-type: Git
指定repo(版本控制範圍根目錄)的路徑,如果它不存在gitit會在啟動時建立一個。
repository-path: wikidata
何時要求身份驗證的權限
設定none,允許使用者匿名編輯
設定modify,需登錄才可以修改wiki的頁面
設定read,需登入才可以讀取wiki頁面
require-authentication: modify
要求身份驗證的方式
form 意思是,使用者會透過gitit的web界面的表單(form)進行登錄。
http meansthat gitit will assume that HTTP authentication is inplace and take the logged in username from the “Authorization”field of the HTTP request header (in addition,the login/logout and registration links will besuppressed).
http 意思是,gitit會認為HTTP基本認證(HTTP authentication)是內建的並且從http request訊息開頭的“Authorization”取得使用者名稱來登錄(此外,登錄/登出和註冊連結將被隱藏)。
generic 意思是gitit會認為認證對應表內建的,會直接設定在REMOTE\_USER認證使用者的名稱。(e.g. mod_auth_cas on apache)。
rpx 意思是gitit 可以透過https://rpxnow.com.整合其它系統的帳密來登入。
This requires that ‘rpx-domain’, ‘rpx-key’, and ‘base-url’be set below, and that ’curl’ be in the system path.
若要用這個,使用下面的rpx-domain, rpx-key, and base-url要設定。curl要設定成系統路徑。
authentication-method: form
設定記錄使用者帳密資訊的檔案名稱。如果它不存在,gitit會建立一個(新的空白檔案)。如果authentication-method設定成http,這個檔案將不被使用。
user-file: gitit-users
number of minutes of inactivity before a session expires.
幾分鐘之後算愈時連線。
session-timeout: 60
指定static目錄(放置 javascript、css和圖片)。如果它不存在,gitit會建立一個,並且內建所需要的javascript、css和圖片。
static-dir: static
指定wiki頁面的預設標記方式。可以設定的值: Markdown, RST, LaTeX, HTML, Markdown+LHS, RST+LHS 和 LaTeX+LHS。(+LHS 可以處理Haskell語法輸入的變數。欲知詳情,請看pandoc的文件)。如果用Markdown,pandoc的語法擴充(footnotes、delimited code blocks等) ,會啟用。Note that pandoc’sreStructuredText parser is not complete, so some pages may not berendered correctly if RST is selected. The same goes for LaTeX andHTML.
default-page-type: Markdown
specifies how LaTeX math is to be displayed. Possible valuesare MathML, raw, mathjax, jsMath, and google. If mathml is selected,gitit will convert LaTeX math to MathML and link in a script,MathMLinHTML.js, that allows the MathML to be seen in Gecko browsers, IE +mathplayer, and Opera. In other browsers you may get a jumble of characters.If raw is selected, the LaTeX math will be displayed as raw LaTeX math.If mathjax is selected, gitit will link to the remote mathjax script.If jsMath is selected, gitit will link to the script /js/jsMath/easy/load.js,and will assume that jsMath has been installed into the js/jsMath directory.This is the most portable solution. If google is selected, the google chartAPI is called to render the formula as an image. This requires a connectionto google, and might raise a technical or a privacy problem.
math: MathML
specifies the path to MathJax rendering script.You might want to use your own MathJax script to render formulas withoutInternet connection or if you want to use some special LaTeX packages.Note: path specified there cannot be an absolute path to a script on your hdd, instead you should run your (local if you wish) HTTP server which will serve the MathJax.js script. You can easily (in four lines of code) serveMathJax.js using http://happstack.com/docs/crashcourse/FileServing.htmlDo not forget the “http://” prefix (e.g. http://localhost:1234/MathJax.js)
mathjax-script: https://d3eoax9i5htok0.cloudfront. net/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML
specifies whether to show Haskell code blocks in “bird style”,with “>” at the beginning of each line.
show-lhs-bird-tracks: no
指定放置模板的目錄路徑。如果它不存在gitit會建立一個有預設模板的資料夾。使用者可能希望透過自定模板來修改wiki外觀。模板檔案HStringTemplate模板。變數要用兩個Literal’s must be backslash-escaped.
templates-dir: templates
specifies the path of gitit’s log file. If it does not exist,gitit will create it. The log is in Apache combined log format.
log-file: gitit.log
determines how much information is logged.Possible values (from most to least verbose) are DEBUG, INFO,NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY.
log-level: WARNING
指定wiki首頁的頁面名稱。如果不存在Gitit在初始化時,會建立一個叫front page的頁面。
front-page: Front Page
指定無法用Web界面刪除的頁面。(它們仍然可以直接使用git或darcs刪除)指定多頁時用逗號分開,保持空白則可以刪除每一頁。
no-delete: Front Page, Help
指定無法透過Web界面編輯的頁面。保持空白則可以編輯每一頁。
no-edit: Help
specifies text to be used in the change description if the authorleaves the “description” field blank. If default-summary is blank(the default), the author will be required to fill in the descriptionfield.
default-summary:
specifies whether to print a tables of contents (with links tosections) on each wiki page.
table-of-contents: yes
specifies a list of plugins to load. Plugins may be specifiedeither by their path or by their module name. If the plugin namestarts with Gitit.Plugin., gitit will assume that the plugin isan installed module and will not try to find a source file.Examples:plugins: plugins/DotPlugin.hs, CapitalizeEmphasisPlugin.hsplugins: plugins/DotPluginplugins: Gitit.Plugin.InterwikiLinks
plugins:
specifies whether to cache rendered pages. Note that if use-feedis selected, feeds will be cached regardless of the value of use-cache.
use-cache: no
directory where rendered pages will be cached
cache-dir: cache
specifies an upper limit on the size (in bytes) of files uploadedthrough the wiki’s web interface.To disable uploads, set this to 0K.This will result in the uploads link disappearing and the _upload url becoming inactive.
max-upload-size: 100K
specifies an upper limit on the size (in bytes) of pages
max-page-size: 100K
if “yes”, causes debug information to be logged while gitit is running.
debug-mode: no
specifies whether HTTP responses should be compressed.
compress-responses: yes



mime-types-file: /etc/mime.types
specifies the path of a file containing mime type mappings.Each line of the file should contain two fields, separated bywhitespace. The first field is the mime type, the second is afile extension.
For example:video/x-ms-wmx wmxIf the file is not found, some simple defaults will be used. if “yes”, causes gitit to use the reCAPTCHA service(http://recaptcha.net) to prevent bots from creating accounts.
use-recaptcha: no
recaptcha-private-key: specifies the public and private keys for the reCAPTCHA service.To get these, you need to create an account at http://recaptcha.net.
recaptcha-public-key:
註冊必答的問題
設定問題給想要建立帳號的使用者,此問題必答,問題和答案列表用逗號隔開。這可以用來當作是建立帳號的許可密碼,或者是代替驗證碼。
例如:
access-question: What is the code given to you by Ms. X?
access-question-answers: RED DOG, red dog
access-question-answers:
rpx-domain: Specifies the domain and key of your RPX account. The domain isjust the prefix of the complete RPX domain, so if your full domainis ‘https://foo.rpxnow.com/’, use ‘foo’ as the value of rpx-domain.
rpx-key:
specifies the command to use to send notification emails.‘%s’ will be replaced by the destination email address.The body of the message will be read from stdin.If this field is left blank, password reset will not be offered.
mail-command: sendmail %s
gives the text of the message that will be sent to the user should shewant to reset her password, or change other registration info.The lines must be indented, and must begin with ‘>’. The initialspaces and ‘>’ will be stripped off. username will be replacedby the user’s username, useremail by her email address,hostname by the hostname on which the wiki is running (asreturned by the hostname system call), port by the port onwhich the wiki is running, and resetlink by therelative path of a reset link derived from the user’s existinghashed password. If your gitit wiki is being proxied to a locationother than the root path of port, you should change the link toreflect this: for example, tohttp://hostname/path/to/wikiresetlink orhttp://gitit.hostnameresetlink
reset-password-message: > From: nobody@hostname > To: useremail > Subject: Wiki password reset > > Dear username: > > To reset your password, please follow the link below: > http://hostname:portresetlink > > Yours sincerely, > The Wiki Master
specifies whether an ATOM feed should be enabled (for the site and forindividual pages)
use-feed: no
the base URL of the wiki, to be used in constructing feed IDsand RPX token_urls. Set this if use-feed is ‘yes’ orauthentication-method is ‘rpx’.
base-url:
make wikilinks absolute with respect to the base-url.So, for example, in a wiki served at the base URL ‘/wiki’, on a pageSub/Page, the wikilink ‘Cactus’ will produce a link to’/wiki/Cactus’ if absolute-urls is ‘yes’, and a relative link to ‘Cactus’(referring to ‘/wiki/Sub/Cactus’) if absolute-urls is ‘no’.
absolute-urls: no
number of days to be included in feeds.
feed-days: 14
number of minutes to cache feeds before refreshing
feed-refresh-time: 60
if yes, PDF will appear in export options. PDF will be created usingpdflatex, which must be installed and in the path. Note that PDFexports create significant additional server load.
pdf-export: no
if a directory is specified, this will be searched for pandoccustomizations. These can include a templates/ directory for customtemplates for various export formats, an S5 directory for customS5 styles, and a reference.odt for ODT exports. If no directory isspecified, $HOME/.pandoc will be searched. See pandoc’s README formore information.
pandoc-user-data:
if yes, all HTML (including that produced by pandoc) is filteredthrough xss-sanitize. Set to no only if you trust all of your users.

自己動手架設wiki(8) - Gitit的標記語言說明

沒有留言:
以Gitit為wikiEng的好處,就是wiki的標記語言也都簡化了,而且用這樣簡化的寫法,可以再轉成wikimedia唷!(雖然轉過去還是要小修改一下)

在此,就來介紹一下每一個gitit的標記語法吧!
功能說明語法範例
段落標題
(空1行)  
# 這是段落標題
# 這是段落標題
子段落
(空1行)  
## 這是子段落
## 這是子段落
小標題
(空1行)  
### 這是小標題
### 這是小標題
斜體
*斜體*
斜體
粗體
**粗體**
粗體
上標
super^script^ 
superscript
下標
中間不可以隔空白
sub~script~
subscript
刪除線
~~strikeout~~
strikeout
斷行
用兩個空格來強迫斷行
~用兩個Enter
(基本上Enter就可以)。
這(空白)(空白)樣(空白)(空白)(到此結束這一行)
這  
樣  
(到此結束這一行)
    
縮排
> 縮排
縮排
連結外部顯示文字
[連到http://google.com](http://google.com)
連到http://google.com
在wiki裡的連結
這種做法用在新增文章
[在wiki裡的連結]()
在wiki裡的連結
放上一張圖
要先用上傳檔案把圖片上傳
wiki會給你一個連結
再將連結貼到下面的小括號中
![放上一張圖](/img/logo.png)
放上一張圖
到指定頁面段落
[到指定頁面段落-放上一張圖](撰寫文章語法#放上一張圖)
到指定頁面段落-放上一張圖
wiki頁面原始碼呈現
(每一行的開頭要空四個半行空白)
(這篇文章都用這個語法呈現所有原始碼的唷)
意思就是
「不加上HTML語法,
直接依編輯內容呈現」
(空1行)  
(4個空白)#include
#include <stdbool.h> 
標示程式碼呈現方式
更多說明,來看這裡
像程式語言…之類的
(空1行)  
~~~ { .(程式語言名稱)}
let a = 1:a in head a
~~~
    
let a = 1:a in head a
程式碼呈現之加行號
(空1行)  
~~~ { .cpp .numberLines }
#include
using namespace std;
int main()
{
    cout << "hello!!" << endl;
    return 0;
}
~~~
    
#include<iostream>
using namespace std;
int main()
{
    cout << "hello!!" << endl;
    return 0;
}
水平線
(空1行)  
* * * * *
    

項目符號-方塊
(空1行)  
- 項目符號
- 列表
    
  • 項目符號
  • 列表
項目符號-順序
(空1行)  
1.(2個空白)標示順序
2.(2個空白)的清單
(4個空白)a. 子清單
(4個空白)b. 子清單的項目
3.(2個空白)第三個項目
    
  1. 標示順序
  2. 的清單
    1. 子清單 (縮排4個空格)
    2. 子清單的項目
  3. 第三個項目
項目符號-無項目符號
(空1行)  
縮排不標項目符號
:(3個空白)縮排的縮排
第一行照平常這樣
:(3個空白)要縮排的在前面加上記號
    
縮排不標項目符號
縮排的縮排
第一行照平常這樣
要縮排的在前面加上記號
加上註解
撰寫語法^[撰寫文章語法]
撰寫語法1
加上參考資料
文章中的文字^[[顯示在參考資料的文字](網址連結)]
地球上最需用電的神2
文章加標籤
在此加上兩個標籤wiki系統 使用說明
更多說明參考使用者手冊
---
categories: wiki系統 使用說明
...
看本文最下面有標籤
簡單表格
左邊         右邊
--------  ------
項目1         值1
項目2         值2
項目3         值3
左邊 右邊
項目1 值1
項目2 值2
項目3 值3

自己動手架設wiki(7) - 撰寫利器MakedownPad

沒有留言:
先前教了大家熟悉Gitit的系統設定層面。
這次要教大家如何寫文章。

咦?這種事,要教嗎?

嗯....身為工程師的我們,當然覺得,不過是在文字上加上語法,標示該段文字是哪一種排版方式,這種問題不是問題,也不困難。

因為,對工程師來說面對困難,找到解決方案,實施、解決它,這個過程是本能。是專業訓練的結果。

但是,如果是非工程師的人。像....公司的會計?人事部的漂亮姐姐?業務部新來的妹妹。(怎麼都是女生!XDDD)需要使用wiki卻苦惱語法好多變化唷!又要多學一項,在他們心中就默默的(因為知道講了也不會被解決??)許下願望「如果可以有一個像word的編輯工具,點一點就可以決定排版,多好哇」(怎麼是工程師的口吻?XDD)

今天,就是要跟這些姐姐妹妹們說,救星來了!

Gitit這個wiki系統,主要撰寫的語法是一種稱為Makedown的標記語言。剛好有人佛心來的寫了一個Makedown的 WYSIWYG工具

它叫做「MakedownPad」,有官網介紹。也有 繁體中文版唷。
我們就一步一步的介紹,如何取得繁體中文版吧!

先看看它長什麼樣子。

它還有出專業版,好奇差在哪的朋友,可以去看看
但是如果只是要撰寫Gitit上的文章。免費版就很夠用了!
(表格不支援,需要的話,手工刻....)

有了這個工具,之後寫作Gitit只要三個步驟就好。
  1. 寫完
  2. 貼上去!
  3. 完事!

好了!跟著文章一步一步來,包準你離開記語法的地獄....
又可以得到Gitit的格式轉換的優點唷。

第一步,下載

官網下載吧!最安全!
下載完就安裝吧!安裝最原始的英文版就好。

第二步,Help > Update

這動作,會幫你更新軟體唷!當然包含官網下載沒有的繁體中文語系。

更新時視窗右下角會很忙碌的告訴使用者進行到哪了。
一直到成功,就出現這個訊息,整個過程應該會在十秒鐘之內解決。

第三步,Tools > Options > Editor > Languages > 中文(中華民國)

先重新打開程式。(建議)
到指定的地方就可以看見新的選項了,如下圖:

最後,取得免費的繁體中文版

先重新打開程式。(建議)

這時就可以新增、修改別人的文章,不求人了。

快去試試吧~~

自己動手架設wiki(6) - 用git備份Gitit

沒有留言:
這一次,我們來看看Gitit這個wiki系統,如何備份吧!

它的目錄如下
wiki       :這是當初始化gitit的目錄
+-static   :這是放置關於css, js, image的地方
+-template :這是放置所有wiki模板頁面的地方。
+-wikidata :這是放置所有網頁相關檔案的地方。
| +.git    :這是git repo的目錄,用來備份wikidata。(Gitit預設)
+.git      :這是git repo的目錄,用來備份wiki。(要自己來)

Gitit內建的Git

備份所有wiki頁面
而Gitit自己本身自帶的Git,是在wikidata裡面建立git init,所以在wiki目錄內的檔案並不是每一個都得到git的版本控制唷!這一點要注意。

那怎辦?使用者帳密的檔案在wiki目錄裡,沒有放在wikidata耶!

沒關係,我們就在wiki裡面,自己打giti init,建立另一個 git 的版本控制吧!
除此之外,再新增一個.gitignore檔,裡面只要輸入wikidata/*就可以讓我們自己建立的git repo備份gitit自帶的git以外的檔案了。


自己建立的Git

備份wiki頁面以外的所有檔案
接下來,我們要建立的是git的bare,也是伺服器端。


沒錯!git的愛用者都知道,只要是看得到檔案的repo就是clinet,而不是server。
看得見檔案的repo只可以pull別人,push自己給別人,不可以被push。唯有bare才可以被push。

在此,可以將檔案的bare建立在github(或其它git 伺服器)
當然也可以自己架一個git bare


中間的建立過程,可以參考其它的git教學文件。


建立好了之後,就會是兩個repo唷!
一個wiki,一個wikidata,每次備份只要push, push就好!^^
多方便!




自己動手架設wiki(5) - Gitit修改模板(template)

沒有留言:
在說明文件中,我們可以找到一段對模板[1]修改的線索。
最後一段提到,如果要激烈修改的話,可以從模板從下手。
找找下面的路徑,就可以從這裡找到預設的版型,改一改再丟到template資料夾中。

$CABALDIR/share/gitit-x.y.z/data

問題是....這是什麼鬼路徑?
CABALDIR/ : cabal 的安裝目錄
share/
gitit-x.y.z/  : gitit-版本號碼
data
看不太懂!
我找了  $ where cabal
找到 /usr/bin/cabal 不過cabal是一個執行檔。XDDD
再找 $whereis gitit
找到了 /usr/bin/cabal 不過gitit還是一個執行檔。
不過,這次卻有別的發現 /usr/share/gitit
就去探訪一下這個路徑,想不到就讓我發現了,傳說中的檔案。
而且還可以去撈更多的預設css檔案


至少....拿來改成中文的吧!

參考資料:
[1] 使用說明:模板 - 維基百科,自由的百科全書

自己動手架設wiki(4) - Gitit修改CSS

沒有留言:
第2篇

剛安裝好的樣子像這樣


如果覺得它極度美觀不想換掉的朋友們,請按上一頁離開這一篇吧!再看一下去會浪費你們人生的30秒。


如果你想修改它的css排版,那就繼續聽我唱下去吧!
(奏樂~)

首先,看這裡
它有說可以修改custom.css,那,我們來看看它的custom.css
內容如下
@import url("screen.css"); /* default gitit screen styles */
@import url("hk-pyg.css"); /* for syntax highlighting */

沒錯!兩行,而且裡面的檔案,在static資料夾還找不到呢!
那怎辦?又要卡關了嗎?

這時就逛呀逛到了.....Sublime Text 的外掛[1]

利用chrome的功能,直接把預設的css撈出來。


再貼在static資料來裡面,就可以用LiveStyle直接修改(一定要看它的Demo影片)
我自己修改最後的樣子是這樣(仿照wiki的做法)


以上的做法是自己摸索出來的,給大家參考看看^^
當然也有正規的方式找到預設的css檔案。

參考資料:
[1] Sublime Text 3 新手上路:必要的安裝、設定與基本使用教學

自己動手架設wiki(3) - man gitit

沒有留言:
這一集,我們來看看gitit在Ubuntu的指令有什麼參數可以使用呢?

正所謂,不知道的時候就問男人,所以我們在在Ubuntu裡輸入

$man gitit

就可以看見一篇符合Debian標準說明格式的文件(是吧?)
在此,我翻譯了一部份常用的部份,翻譯得不好的話就請忍著點看,並且請留言給我指教。(^^)

不過,我還是有排版一下啦。

Gitit 的 Linux指令操作手冊

## NAME

gitit - 一種以分散式版本控制(git或darcs)為檔案管理系統的 wiki 引擎

##  指令結構

gitit [{-h | --help}] [{-v | --version}] [{-p port | --port=port}]
      [{-l interface | --listen=interface}]                       
      [{-f configfile | --config-file=configfile}] [--debug]      
      [--print-default-config]                                    


## 指令說明

gitit是一種以git(也可以用darcs)為檔案管理系統的 wiki 引擎。在第一次執行時,Gitit會建立wiki的基本架構所需要的檔案和目錄,然後等待http訊息傳入。When run in a directory that already contains a gitit wiki, it uses the information already present. 

wikidata這個目錄包含hosts的repository(受git版本控制的目錄範圍),用來存放所有的wiki頁面。你可以透過Web界面也可以直接下git指令控制 (像是commit/record或者push/pull)。

## 參數使用 (原文用options在此翻譯成參數)

這個程式遵循一般的GNU指令格式,完整參數用兩個dashes(`-')開頭。

-h, --help
純粹顯示參數的相關說明,就醬。

-v, --version
純粹顯示已安裝的Gitit版本,就醬。

-p port, --port=port
指定gitit等待的port

-l interface, --listen=interface
指定gitit等待的界面

-f configfile, --config-file=configfile
使用自訂的設定檔,使用--print-default-config指令,可以取得預設的config檔,內含可以設定的範圍和設定格式(使用預設的設定值和設定說明)

--debug
啟動debug模式:gitit將會顯示關於網路訊息的請求和處理紀錄。

--print-default-config
印出預設設定值,並輸出成檔案。
ex: 
gitit --print-default-config > my.conf [1]

## 作者

Giovanni Mascellani <gio@debian.org> 
Wrote this manpage for the Debian system.

## 版權所有

Copyright © 2011 Giovanni Mascellani 

This manual page was written for the Debian system (and may be used by others). 

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 3 or (at your option) any later version published by the Free Software 
Foundation. 

On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.

08/04/2013

自己動手架設wiki(2) - Gitit 安裝在Ubuntu 13.04

沒有留言:
接續前一集

Gitit的安裝,其實在Gitit架好之後,裡面有附Gitit User’s Guide,就有教學了。

看到這裡有沒有像是倚天劍和屠龍刀的感覺?

為了預防大家再度的為了刀譜和劍譜讓倚天屠龍對砍。
在此把安裝方法貼出來。

以Ubuntu為安裝環境。
 $ cabal update
 $ cabal install gitit
我也不知道cabal是什麼,先灌吧!
 $ mkdir wiki
 $ cd wiki
 $ gitit
(在port:5001可以找到它)
在wiki資料夾中執行gitit就會生成一些說明檔案。
到時你就知道它是什麼意思了。^^

真的覺得linux底下灌軟體愈來愈方便了呢?!

其實,在官方網站的頁面,就可以找到倚天屠龍的劍譜和刀譜了。


突然想到一件事!灌Gitit,記得要灌Git唷!
因為它的文件備份系統是使用Git的嘛!
也許要另外灌,我之前就有在Ubuntu先灌git了(沒辦法,沒有Git沒辦法做事呀!)

參考資料:
gitit demo - Gitit User's Guide

自己動手架設wiki(1) - 推薦Gitit

沒有留言:
理由:簡單易用好上手。

這次架設的平台:
OS: Windows 8.1
裡面灌VM
VM OS: Ubuntu13.04
wiki架設在VMOS在裡面。

依照小畢的文章[1],四個步驟。
(包含把wiki放在wiki資料夾中)
非常容易成功。

剩下其它的功能,目前是打算硬看Gitit的官方文件解釋啦。
不知有沒有什麼好方法。

另外,Help內容是找不到這個網頁,也不知道為什麼。
是網域??@@a


參考資料:
[1] CrBoy's Blog: Gitit 簡介
[2] Gitit - git based wiki