溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JSPWiki搭建企業(yè)wiki平臺的方法步驟

發(fā)布時(shí)間:2020-05-26 17:49:45 來源:億速云 閱讀:839 作者:鴿子 欄目:軟件技術(shù)

開源的Wiki引擎Apache JSPWiki,基于標(biāo)準(zhǔn) JEE 組件(Java、servlet、JSP)構(gòu)建,支持模板、CSS樣式、插件、細(xì)粒度安全控制、autocomplete等功能,簡單易用、功能豐富,非常適合用來搭建簡易的企業(yè)wiki平臺。

安裝

推薦部署在Tomcat服務(wù)器,要求Tomcat 8.x或更高、JDK 1.8或更高版本。安裝步驟如下:

  1. 下載JSPWiki

選擇Apache mirror地址,進(jìn)入binaries/webapp/目錄,下載JSPWiki.war。

  1. 可選,重命名war,比如修改為wiki.war
  2. 將war放到$TOMCAT_HOME/webapps目錄,啟動tomcat
  3. 訪問 http://myhost/appname/Install.jsp, 進(jìn)行初始配置

安裝程序?qū)言O(shè)置寫到 $TOMCAT_HOME/temp/jspwiki-custom.properties,還會創(chuàng)建一個(gè)admin帳戶(密碼隨機(jī)生成)和一個(gè) Admin 組,注意保存頁面提示的密碼。

  1. 停止tomcat,將jspwiki-custom.properties移動到$TOMCAT_HOME/lib目錄

您可以在系統(tǒng)屬性或web.xml的context-param內(nèi)定義jspwiki.custom.config來指定jspwiki-custom.properties的位置。

也可以將jspwiki-custom.properties移動到$TOMCAT_HOME/webapp/appname/WEB-INF目錄,但這不利于升級。

默認(rèn),創(chuàng)建的用戶、組保存在WEB-INF目錄下的userdatabase.xml、groupdatabase.xml文件內(nèi)。

jspwiki-custom.properties內(nèi)容如下:

#Wed Feb 26 23:19:26 CST 2020
jspwiki.basicAttachmentProvider.storageDir=C\:\\\\Work\\\\wikipages
jspwiki.fileSystemProvider.pageDir=C\:\\\\Work\\\\wikipages
jspwiki.pageProvider=VersioningFileProvider
jspwiki.applicationName=iTRunnerWiki
jspwiki.workDir=C\:\\\\\\\\Work\\\\\\\\apache-tomcat-9.0.14\\\\\\\\temp

為了便于升級,最好在jspwiki-custom.properties內(nèi)指定用戶、組的保存位置:

jspwiki.xmlUserDatabaseFile
jspwiki.xmlGroupDatabaseFile

也可以使用數(shù)據(jù)庫:

jspwiki.userdatabase = org.apache.wiki.auth.user.JDBCUserDatabase
jspwiki.groupdatabase = org.apache.wiki.auth.authorize.JDBCGroupDatabase
  1. 安裝core pages

下載您選擇語言的wikipages,然后解壓將內(nèi)容拷貝到前面指定的jspwiki.fileSystemProvider.pageDir目錄。啟動tomcat。

  1. 訪問wiki

您將進(jìn)入Main頁面,可以學(xué)習(xí)JSPWiki知識,可以編輯這些頁面。
JSPWiki搭建企業(yè)wiki平臺的方法步驟

JSPWiki Configuration

要查看jspwiki.properties支持的配置項(xiàng),可以訪問官網(wǎng),也可以解壓WEB-INF/lib/jspwiki-main.jar,ini目錄內(nèi)含有此文件,其中包含所有屬性。

下面列出一些常用的屬性:

jspwiki.baseURL=http://www.itrunner.org/wiki

#  If this property is set to "true", then page titles are rendered
#  using an extra space between every capital letter.
jspwiki.breakTitleWithSpaces=true

# Set the default page
jspwiki.frontPage=Main

# Set the default template used by the Wiki engine
jspwiki.templateDir=default

# Set position of the favorites menu (aka left menu, sidebar)
# The value determines the css-class used to change the position of the #favorites block
# Possible values: fav-left or fav-right
# Default value is fav-left
jspwiki.defaultprefs.template.orientation=fav-right

#
#  By default JSPWiki accepts all types of attachments.  However, you
#  can allow some types only, or forbid some other types.  
# These allow/forbid statements are not enforced for users with AdminPermissions.
#
#  These both are space-separated lists of file suffixes
#
#  Example: Allow only PNG, JPG, ZIP and JAR file attachments
jspwiki.attachment.allowed=.png .jpg .zip .jar

#  Example: Forbid HTML, PHP, ASP and EXE
jspwiki.attachment.forbidden=.html .htm .php .asp .exe

# Example: Attachment links to HTML, HTM and MP3 files would force a download rather then opening the attachment
jspwiki.attachment.forceDownload= .html .htm

# Inline all JPG files, PNG files, GIF files
jspwiki.translatorReader.inlinePattern.1 = *.jpg
jspwiki.translatorReader.inlinePattern.2 = *.png
jspwiki.translatorReader.inlinePattern.3 = *.gif

Security

JSPWiki 包含一套豐富、靈活的安全功能。

JSPWiki Policy

默認(rèn)策略文件jspwiki.policy位于WEB-INF目錄下,可以使用配置屬性指定自定義策略文件位置:

jspwiki.policy.file=jspwiki-custom.policy

JSPWiki Security支持Role、Group,其中Role包含以下五種:

  • All 任何人
  • Anonymous 匿名用戶
  • Asserted 無需登錄,只要編輯過User Preferences即可
  • Authenticated 已登錄用戶
  • Admin 管理員

最初創(chuàng)建的admin用戶屬于Admin角色、Admin組,擁有全部權(quán)限。

初始策略很寬松,匿名用戶可以注冊、登錄,可以查看、修改、創(chuàng)建頁面。默認(rèn)策略如下表:

PermissionAnonymous usersAsserted users (with cookie)Authenticated usersAdmin group
View all pagesxxxx
Edit all pagesxxxx
Upload attachments to all pagesxx
Modify all pages (edit + upload)xx
Comment on all existing pagesxxxx
Create new pagesxxxx
Rename all pagesxx
Delete all pagesx
View all groupsxxx
Edit all groupsxx
Rename all groupsxx
Delete all groupsx
Create new groupsxx
Create profilexxxx
Edit user preferencesxx
Edit user profilexx

策略分為四種主要權(quán)限類型:

  • PagePermission: view, edit, modify, comment, rename, upload, delete
  • GroupPermission:  view, edit, delete
  • WikiPermission:  createGroups, createPages, login, editPreferences, editProfile
  • AllPermission 授予全部權(quán)限

某些權(quán)限意味著其他權(quán)限:

  • The "rename" PagePermission implies "modify"
  • The "modify" PagePermission implies "edit" and "upload"
  • The "edit" PagePermission implies "view" and "comment"
  • The "upload" PagePermission implies "view"
  • The "delete" PagePermission implies "edit"
  • The "createGroups" WikiPermission implies "createPages"
  • The "edit" GroupPermission implies "view"
  • The "delete" GroupPermission" implies "edit" and "view"

ACL

除在policy文件統(tǒng)一配置權(quán)限外,還可以在每個(gè)頁面內(nèi)單獨(dú)設(shè)置權(quán)限,如:

[{ALLOW edit Admin}]
[{ALLOW view All}]

可將權(quán)限授予角色、組或用戶。

AdminPages

安全原因,AdminPages默認(rèn)是未啟用的。要啟用添加以下配置:

jspwiki-x.adminui.enable=true
jspwiki-x.securityconfig.enable=true

有兩個(gè)管理頁面,路徑分別為:

  • /admin/Admin.jsp
  • /admin/SecurityConfig.jsp

Admin.jsp可以創(chuàng)建、編輯用戶和組:
JSPWiki搭建企業(yè)wiki平臺的方法步驟
SecurityConfig.jsp檢查 JSPWiki 的安全配置,允許查看當(dāng)前 Wiki 中的用戶、組和 ACL 配置:
JSPWiki搭建企業(yè)wiki平臺的方法步驟

編輯Wiki

JSPWiki提供了友好的編輯界面:
JSPWiki搭建企業(yè)wiki平臺的方法步驟
支持兩種模式:plain和wysiwyg,默認(rèn)為plain。點(diǎn)擊水滴按鈕彈出工具欄:
JSPWiki搭建企業(yè)wiki平臺的方法步驟
選中某一工具會輸出相應(yīng)的wiki語句,plugin、style、font、special character、ACL等工具還會顯示支持的選項(xiàng),在您熟悉wiki語法后,可以脫離工具欄,直接輸入時(shí)同樣如此,非常方便。

Wiki Syntax

編輯wiki時(shí)點(diǎn)擊Help會顯示如下信息:

----             水平分隔線
\\               強(qiáng)制斷行
[link]           創(chuàng)建 "link" 的超鏈接,其中 "link" 可以是內(nèi)部 Wiki 名稱(Wiki 頁面名稱)或者外部鏈接(http://)
[text|link]      創(chuàng)建一個(gè)顯示文本和實(shí)際超鏈接不同的超鏈接,其中“text”為要 顯示的文本;“l(fā)ink”為實(shí)際的超鏈接。
[text|wiki:link] 創(chuàng)建一個(gè)顯示文本和實(shí)際超鏈接不同的超鏈接,并且超鏈接指向指定的 Wiki(比如 JSPWiki、MediaWiki 等等)。
                 這種鏈接支持 Wiki 之間的鏈接。

*                創(chuàng)建一個(gè)項(xiàng)目列表('*' 必需為所在行第一個(gè)字符)。用連續(xù)多個(gè)星號(**)表示次級項(xiàng)目符號。
#                創(chuàng)建一個(gè)編號列表('#' 必需為所在行第一個(gè)字符)。用連續(xù)多個(gè)#號(##,###)表示縮進(jìn)/次級編號。

!, !!, !!!       在行首加上感嘆號(?。┥蓸?biāo)題。感嘆號越多表示標(biāo)題越大。
__text__         文本加粗。
''text''         給文本斜體效果(注意是單引號 ')
{{text}}         使文本變?yōu)榈瓤钭煮w。
;term:def        用 'def' 定義 'term'。用空的 'term' 可以表示簡短注釋(如,;:Created on 2008/02/28)。

|text|more text 生成表格。兩條豎線“||”表示表格標(biāo)題。

更多的Wiki Syntax請查看官網(wǎng)。

Wiki Style

CSS styles
Following styles are supported by the standard jspwiki.css file:

  • %%small -- Smaller then normal font
  • %%sub -- Subscript
  • %%sup -- Superscript
  • %%strike -- Strike through text
  • %%ltr -- left-to-right text formatting
  • %%rtl -- right-to-left text formatting
  • %%commentbox -- comment box floating at the right margin

Dynamic styles

  • %%collapse -- Turn ordinary lists into collapsible trees.
  • %%collapsebox -- Creates a collapsible box which slides in/out vertically.
  • %%category -- Generates pop up with pages referenced by the category page.
  • %%tip -- Generates a transparent fly-over tip with additional info.
  • %%graphbar -- Add horizontal or vertical graph bars to your wikipages.
  • %%sortable -- Turn ordinary wiki tables into sortable tables.
  • %%table-filter -- Turn ordinary wiki tables into Excel-like filtered tables.
  • %%zebra-table -- Add alternate row colors to your tables.
  • %%columns -- Format text in multi-column news-paper format.
  • %%tabbedSection, %%tab -- Create pages with tabular sections.
  • %%tabbedAccordion -- Generates a tabbed section, with smooth transition effects based on accordion.
  • %%accordion -- Generates vertical accordion.
  • %%prettify -- Add code-coloring to a preformatted block of text.
  • %%slimbox -- Generates a fancy picture viewer for all enclosed links, similar to the attachment viewer.
  • %%reflection -- Generates a reflection at the bottom of the image.

例如:

JSPWiki官方頁面的LeftMenu,組合使用了%%list-unstyled-hover,%%accordion:

%%list-unstyled-hover

%%accordion
!General
* [News]
* [Getting Started]
* [Wiki Syntax]
* [Downloads]
* [ReleaseNotes|NewIn]
* [FAQ]
* [License|http://www.apache.org/licenses/]

!Community
* [Getting Started]
* [Getting Involved]
* [Documentation]
* [Legacy site|http://www.ecyrd.com/JSPWiki/]
* [Mailing lists|Mailing Lists]
* [Social media|Social Media]
* [People]
!Development
* [Browse sources|https://github.com/apache/jspwiki]
* [JavaDoc|http://jspwiki.apache.org/apidocs/index.html]
* [Binary compatibility reports|http://jspwiki.apache.org/japicmp/index.html]
* [Get and build source|Building from source code]
* [Issue tracker|https://issues.apache.org/jira/browse/JSPWIKI]
* [Jenkins build|https://builds.apache.org/job/JSPWiki/]
* [Sonar Analysis|https://sonarcloud.io/dashboard?id=jspwiki-builder]
* [ChangeLog|https://jspwiki.apache.org/development/changelog.html]
* [Other stuff]

!PMC
* [How to release]
* [Board Reports]

!Special Pages
* [Recent Changes]
* [Search]
* [Page Index|PageIndex]
* [SystemInfo]

!Referenced by
[{ReferringPagesPlugin max=20, maxwidth=50}]
/%
/%

無邊框表格:

%%table-noborder
|| Column 1 || Column 2 || Column 3 
| Text     | Text     | Text 
/%

JSPWiki支持自定義樣式,比如:
%%add-css
table {
margin: 20px;
width: 100%;
text-align: center;
}

table td  {
text-align: center;
}
/%

還可以添加屬性, 如:

[{Image src='Main/tool.JPG' style='text-align: center; width: 800px;'}]

Wiki Plugin

JSPWiki提供很多的插件,在此不一一列舉,比如常用的目錄插件 [{TableOfContents}]、ACL插件 [{ALLOW plugin principal }]、Image插件 [{Image src='image.jpg'}]。

Reserved Pages

預(yù)留頁面是一些特殊用途的固定名稱頁面,比如CopyrightNotice、LeftMenu、LeftMenuFooter,在Wiki Template中會用到。

WikiTemplate

當(dāng)前JSPWiki提供了default、210、raw、reader四套模板,位于war的templates目錄下,用戶可自定義模板。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI