├── .github
├── FUNDING.yml
└── workflows
│ └── ci.yml
├── .gitignore
├── .gitmodules
├── .hgignore
├── .travis.yml
├── BLUETRIP-LICENSE
├── CHANGES
├── HCAR-gitit.tex
├── LICENSE
├── Makefile
├── README.markdown
├── RELANN-0.6.1
├── Setup.lhs
├── TANGOICONS
├── YUI-LICENSE
├── cabal.project
├── data
├── FrontPage.page
├── Help.page
├── Paths_gitit.hs
├── default.conf
├── markup.DocBook
├── markup.HTML
├── markup.LaTeX
├── markup.Markdown
├── markup.Org
├── markup.RST
├── markup.Textile
├── markupHelp
│ ├── HTML
│ ├── LaTeX
│ ├── LaTeX+LHS
│ ├── Markdown
│ ├── Markdown+LHS
│ ├── Org
│ ├── RST
│ └── RST+LHS
├── post-update
├── s5
│ └── default
│ │ ├── blank.gif
│ │ ├── bodybg.gif
│ │ ├── framing.css
│ │ ├── iepngfix.htc
│ │ ├── opera.css
│ │ ├── outline.css
│ │ ├── pretty.css
│ │ ├── print.css
│ │ ├── s5-core.css
│ │ ├── slides.css
│ │ ├── slides.js
│ │ └── slides.min.js
├── static
│ ├── css
│ │ ├── custom.css
│ │ ├── highlighting.css
│ │ ├── ie.css
│ │ ├── print.css
│ │ ├── reset-fonts-grids.css
│ │ └── screen.css
│ ├── img
│ │ ├── icons
│ │ │ ├── feed.png
│ │ │ ├── folder.png
│ │ │ └── page.png
│ │ ├── lambda-bann.png
│ │ └── logo.png
│ ├── js
│ │ ├── MathMLinHTML.js
│ │ ├── dragdiff.js
│ │ ├── footnotes.js
│ │ ├── jquery-1.2.6.js
│ │ ├── jquery-1.2.6.min.js
│ │ ├── jquery-ui-combined-1.6rc2.min.js
│ │ ├── jquery-ui.core-1.6rc2.js
│ │ ├── jquery-ui.draggable-1.6rc2.js
│ │ ├── jquery-ui.droppable-1.6rc2.js
│ │ ├── jquery-ui.tabs-1.6rc2.js
│ │ ├── jquery.hotkeys-0.7.9.js
│ │ ├── jquery.hotkeys-0.7.9.min.js
│ │ ├── preview.js
│ │ ├── search.js
│ │ └── uploadForm.js
│ └── robots.txt
└── templates
│ ├── content.st
│ ├── expire.st
│ ├── footer.st
│ ├── getuser.st
│ ├── listitem.st
│ ├── logo.st
│ ├── markuphelp.st
│ ├── messages.st
│ ├── page.st
│ ├── pagetools.st
│ ├── sitenav.st
│ └── userbox.st
├── expireGititCache.hs
├── gitit.cabal
├── gitit.hs
├── plugins
├── CapitalizeEmphasis.hs
├── Deprofanizer.hs
├── Dot.hs
├── ImgTex.hs
├── Interwiki.hs
├── MTable.hs
├── PigLatin.hs
├── ShowUser.hs
├── Signature.hs
├── Subst.hs
├── WebArchiver.hs
└── WebArchiverBot.hs
├── src
└── Network
│ ├── Gitit.hs
│ └── Gitit
│ ├── Authentication.hs
│ ├── Authentication
│ └── Github.hs
│ ├── Cache.hs
│ ├── Compat
│ └── Except.hs
│ ├── Config.hs
│ ├── ContentTransformer.hs
│ ├── Feed.hs
│ ├── Framework.hs
│ ├── Handlers.hs
│ ├── Initialize.hs
│ ├── Interface.hs
│ ├── Layout.hs
│ ├── Page.hs
│ ├── Plugins.hs
│ ├── Server.hs
│ ├── State.hs
│ ├── Types.hs
│ └── Util.hs
└── stack.yaml
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: [jgm]
2 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: CI tests
2 |
3 | on: [push, pull_request]
4 |
5 | jobs:
6 | linux:
7 |
8 | runs-on: ubuntu-latest
9 | strategy:
10 | fail-fast: false
11 | matrix:
12 | versions:
13 | - ghc: '9.0'
14 | cabal: '3.8'
15 | - ghc: '9.2'
16 | cabal: '3.10'
17 | - ghc: '9.4'
18 | cabal: '3.10'
19 | - ghc: '9.6'
20 | cabal: 'latest'
21 | - ghc: '9.8'
22 | cabal: 'latest'
23 | steps:
24 | - uses: actions/checkout@v1
25 | - name: Install cabal/ghc
26 | run: |
27 | ghcup install ghc --set ${{ matrix.versions.ghc }}
28 | ghcup install cabal --set ${{ matrix.versions.cabal }}
29 |
30 | - name: Cache cabal global package db
31 | id: cabal-global
32 | uses: actions/cache@v3
33 | with:
34 | path: |
35 | ~/.cabal
36 | key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ secrets.CACHE_VERSION }}
37 |
38 | - name: Cache cabal work
39 | id: cabal-local
40 | uses: actions/cache@v3
41 | with:
42 | path: |
43 | dist-newstyle
44 | key: ${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-local-${{ secrets.CACHE_VERSION }}
45 |
46 | - name: Install dependencies
47 | run: |
48 | cabal v2-update
49 | cabal v2-build --dependencies-only --enable-tests --disable-optimization -fexecutable all
50 | - name: Build and test
51 | run: |
52 | cabal v2-build --enable-tests --disable-optimization -fexecutable all
53 |
54 | windows:
55 |
56 | runs-on: windows-latest
57 |
58 | steps:
59 | - uses: actions/checkout@v1
60 | - name: Install stack
61 | shell: cmd
62 | run: |
63 | choco install haskell-stack
64 | - name: Install dependencies
65 | run: |
66 | stack update
67 | stack test --dependencies-only --fast
68 | - name: Build and test
69 | shell: cmd
70 | run: |
71 | chcp 65001
72 | stack install --test --fast
73 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | cabal.sandbox.config
2 | TAGS
3 | dist
4 | wikidata
5 | templates
6 | ./static/
7 | gitit.log
8 | my.conf
9 | gitit-users
10 | .cabal-sandbox
11 | github.conf
12 | /.stack-work/
13 | /static/
14 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "website"]
2 | path = website
3 | url = git@github.com:jgm/gitit.git
4 |
--------------------------------------------------------------------------------
/.hgignore:
--------------------------------------------------------------------------------
1 | ^dist$
2 | \.(?:aux|eventlog|h[ip]|log|[oa]|orig|prof|ps|rej|swp)$
3 | ~$
4 | syntax: glob
5 | .\#*
6 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | # This .travis.yml is modified from the sample at
2 | # https://docs.haskellstack.org/en/stable/GUIDE/#travis-with-caching
3 |
4 | # Use new container infrastructure to enable caching
5 | sudo: false
6 |
7 | # Do not choose a language; we provide our own build tools.
8 | language: generic
9 |
10 | # Caching so the next build will be fast too.
11 | cache:
12 | directories:
13 | - $HOME/.ghc
14 | - $HOME/.cabal
15 | - $HOME/.stack
16 |
17 | # The different configurations we want to test. We have BUILD=cabal which uses
18 | # cabal-install, and BUILD=stack which uses Stack. More documentation on each
19 | # of those below.
20 | #
21 | # We set the compiler values here to tell Travis to use a different
22 | # cache file per set of arguments.
23 | #
24 | # If you need to have different apt packages for each combination in the
25 | # matrix, you can use a line such as:
26 | # addons: {apt: {packages: [libfcgi-dev,libgmp-dev]}}
27 | matrix:
28 | include:
29 | # We grab the appropriate GHC and cabal-install versions from hvr's PPA. See:
30 | # https://github.com/hvr/multi-ghc-travis
31 | - env: BUILD=cabal GHCVER=8.0.2 CABALVER=1.24
32 | compiler: ": #GHC 8.0.2"
33 | addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.2], sources: [hvr-ghc]}}
34 | - env: BUILD=cabal GHCVER=8.4.3 CABALVER=2.2
35 | compiler: ": #GHC 8.4.3"
36 | addons: {apt: {packages: [cabal-install-2.2,ghc-8.4.3], sources: [hvr-ghc]}}
37 |
38 | # The Stack builds. We can pass in arbitrary Stack arguments via the ARGS
39 | # variable, such as using --stack-yaml to point to a different file.
40 | - env: BUILD=stack
41 | compiler: ": #stack 8.4.3"
42 | addons: {apt: {packages: [ghc-8.4.3], sources: [hvr-ghc]}}
43 |
44 | # Nightly builds are allowed to fail
45 | # - env: BUILD=stack ARGS="--resolver nightly"
46 | # compiler: ": #stack nightly"
47 | # addons: {apt: {packages: [libgmp-dev]}}
48 |
49 | # - env: BUILD=stack ARGS="--resolver lts-8"
50 | # compiler: ": #stack 8.0.1 osx"
51 | # os: osx
52 |
53 | # - env: BUILD=stack ARGS="--resolver nightly"
54 | # compiler: ": #stack nightly osx"
55 | # os: osx
56 |
57 | allow_failures:
58 | - env: BUILD=cabal GHCVER=head CABALVER=head
59 |
60 | fast_finish: true
61 |
62 | before_install:
63 | # Using compiler above sets CC to an invalid value, so unset it
64 | - unset CC
65 |
66 | # We want to always allow newer versions of packages when building on GHC HEAD
67 | - CABALARGS=""
68 | - if [ "x$GHCVER" = "xhead" ]; then CABALARGS=--allow-newer; fi
69 |
70 | # Download and unpack the stack executable
71 | - export PATH=$PATH:/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.local/bin
72 | - mkdir -p ~/.local/bin
73 | - |
74 | if [ `uname` = "Darwin" ]
75 | then
76 | curl --insecure -L https://www.stackage.org/stack/osx-x86_64 | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin
77 | else
78 | curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
79 | fi
80 |
81 | install:
82 | - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
83 | - if [ -f configure.ac ]; then autoreconf -i; fi
84 | - |
85 | case "$BUILD" in
86 | stack)
87 | ulimit -n 4096
88 | stack --no-terminal --install-ghc install --only-dependencies
89 | ;;
90 | cabal)
91 | cabal --version
92 | travis_retry cabal update
93 | cabal install -j alex happy
94 | cabal install -j --only-dependencies -ffast --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS
95 | ;;
96 | esac
97 |
98 | script:
99 | - |
100 | case "$BUILD" in
101 | stack)
102 | ulimit -n 4096
103 | stack --no-terminal install
104 | ;;
105 | cabal)
106 | cabal configure -fplugins -v2 -ffast --ghc-options="-O0 -Wall -fno-warn-unused-do-bind -Werror"
107 | cabal build -j
108 | cabal check
109 | cabal copy
110 | cabal sdist
111 | SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz && \
112 | (cd dist && cabal install -j --force-reinstalls "$SRC_TGZ")
113 | ;;
114 | esac
115 |
--------------------------------------------------------------------------------
/HCAR-gitit.tex:
--------------------------------------------------------------------------------
1 | % gitit-Jg.tex
2 | \begin{hcarentry}[updated]{gitit}
3 | \label{gitit}
4 | \report{John MacFarlane}%11/10
5 | \participants{Gwern Branwen, Simon Michael, Henry Laxen, Anton
6 | van Straaten, Robin Green, Thomas Hartman, Justin Bogner, Kohei Ozaki,
7 | Dmitry Golubovsky, Anton Tayanovskyy, Dan Cook, Jinjing Wang}
8 | \status{active development}
9 | \makeheader
10 |
11 | Gitit is a wiki built on Happstack~\cref{happstack} and backed by a git, darcs, or mercurial
12 | filestore. Pages and uploaded files can be modified either directly
13 | via the VCS's command-line tools or through the wiki's web interface.
14 | Pandoc~\cref{pandoc} is used for markup processing, so pages may be written in
15 | (extended) markdown, reStructuredText, LaTeX, HTML, or literate Haskell,
16 | and exported in thirteen different formats, including LaTeX, ConTeXt,
17 | DocBook, RTF, OpenOffice ODT, MediaWiki markup, EPUB, and PDF.
18 |
19 | Notable features of gitit include:
20 | \begin{compactitem}
21 | \item
22 | Plugins: users can write their own dynamically loaded page transformations,
23 | which operate directly on the abstract syntax tree.
24 | \item
25 | Math support: LaTeX inline and display math is automatically converted
26 | to MathML, using the \texttt{texmath} library.
27 | \item
28 | Highlighting: Any git, darcs, or mercurial repository can be made a gitit wiki.
29 | Directories can be browsed, and source code files are
30 | automatically syntax-highlighted. Code snippets in wiki pages
31 | can also be highlighted.
32 | \item
33 | Library: Gitit now exports a library, \texttt{Network.Gitit}, that makes it
34 | easy to include a gitit wiki (or wikis) in any Happstack application.
35 | \item
36 | Literate Haskell: Pages can be written directly in literate Haskell.
37 | \end{compactitem}
38 |
39 | \FurtherReading
40 | \url{http://gitit.net} (itself
41 | a running demo of gitit)
42 | \end{hcarentry}
43 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | all:
2 | cabal v2-configure -fplugins --prefix=/usr/local
3 | cabal v2-build
4 |
5 | install:
6 | cabal v2-copy
7 |
8 | .PHONY: all clean install
9 |
--------------------------------------------------------------------------------
/RELANN-0.6.1:
--------------------------------------------------------------------------------
1 | I'm pleased to announce the release of gitit 0.6.1.
2 |
3 | Gitit is a wiki program that runs on happstack, the Haskell web
4 | application server stack, and stores pages and other content in a
5 | git or darcs filestore. The wiki can be updated either directly
6 | through the VCS or through gitit's web interface. Pages can be written
7 | in (extended) markdown, reStructuredText, HTML, or LaTeX, and exported
8 | in ten different formats. TeX math is rendered using MathML by default,
9 | and syntax highlighting is provided for over fifty languages.
10 |
11 | demo: http://gitit.johnmacfarlane.net
12 | manual: http://gitit.johnmacfarlane.net/README
13 | api: http://hackage.haskell.org/package/gitit-0.6.1
14 | code: http://github.com/jgm/gitit
15 | bugs: http://code.google.com/p/gitit/issues/list
16 | group: http://groups.google.com/group/gitit-discuss
17 |
18 | Here is how you can install and run gitit. You'll need GHC and
19 | cabal-install. If you don't have these, install the Haskell Platform
20 | . Then:
21 |
22 | cabal update
23 | cabal install gitit
24 | mkdir mywiki
25 | cd mywiki
26 | gitit # now browse to http://localhost:5001
27 |
28 | Or, if you want to change the defaults (say, reStructuredText
29 | instead of markdown, or darcs instead of git):
30 |
31 | gitit --print-default-config > gitit.conf
32 | # edit gitit.conf, which is self-documenting
33 | gitit -f gitit.conf
34 |
35 | The whole code base has been overhauled since the last release.
36 | Gitit is now faster, more memory efficient, more modular, and more
37 | secure. It also has many new features, including
38 |
39 | - page metadata and categories
40 | - atom feeds (sitewide and per-page)
41 | - support for literate Haskell
42 | - a better configuration system
43 | - an improved caching system
44 | - a Haskell library exporting happstack wiki handlers
45 | - a plugin system
46 |
47 | The last two items are the most exciting and deserve special comment.
48 |
49 | First, in addition to providing an executable, gitit now provides a
50 | library, Network.Gitit, which makes it easy to include a gitit
51 | wiki (or many of them) in any happstack application. It is
52 | even possible to use the containing application's authentication
53 | system for the wiki.
54 |
55 | Second, gitit can now be extended through plugins, short Haskell
56 | programs that are loaded dynamically when the server starts. For
57 | examples of the things that can be done with plugins, see the
58 | plugins directory, which contains (among other things) a plugin
59 | for adding graphviz diagrams to pages and a plugin for adding
60 | interwiki links. For a full description of the plugin system,
61 | see the haddock documentation for Network.Gitit.Interface.
62 |
63 | Full changes from version 0.5.3, as well as upgrade instructions,
64 | are available in the file CHANGES.
65 |
66 | Thanks are due to
67 |
68 | - the happstack team, for big improvements in happstack-server
69 | that make it much easier to work with,
70 |
71 | - the darcs team, for using gitit/darcsit for ,
72 | giving gitit a real-world test,
73 |
74 | - Gwern Branwen, who helped to optimize gitit, wrote the
75 | InterwikiPlugin, and wrote the guts of the Feed module,
76 |
77 | - Simon Michael, who contributed several patches,
78 |
79 | - Henry Laxen, who added support for password resets and helped with
80 | the apache proxy instructions,
81 |
82 | - Anton van Straaten, who made the process of page generation
83 | more modular by adding Gitit.ContentTransformer,
84 |
85 | - Robin Green, who helped improve the plugin API and interface,
86 | fixed a security problem with the reset password code, and made
87 | saving of the user's file more robust,
88 |
89 | - Thomas Hartman, who helped improve the index page, making directory
90 | browsing persistent,
91 |
92 | - Kohei Ozaki, who contributed the ImgTexPlugin,
93 |
94 | - mightybyte, who suggested making gitit available as a library,
95 | and contributed a patch to the authentication system,
96 |
97 | - and everyone else who contributed suggestions and bug reports.
98 |
99 |
--------------------------------------------------------------------------------
/Setup.lhs:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env runhaskell
2 | > import Distribution.Simple
3 | > main = defaultMain
4 |
--------------------------------------------------------------------------------
/YUI-LICENSE:
--------------------------------------------------------------------------------
1 | Software License Agreement (BSD License)
2 | Copyright (c) 2009, Yahoo! Inc.
3 | All rights reserved.
4 |
5 | Redistribution and use of this software in source and binary forms,
6 | with or without modification, are permitted provided that the following
7 | conditions are met:
8 |
9 | * Redistributions of source code must retain the above copyright
10 | notice, this list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above copyright
13 | notice, this list of conditions and the following disclaimer in the
14 | documentation and/or other materials provided with the distribution.
15 |
16 | * Neither the name of Yahoo! Inc. nor the names of its contributors
17 | may be used to endorse or promote products derived from this software
18 | without specific prior written permission of Yahoo! Inc.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
26 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 |
--------------------------------------------------------------------------------
/cabal.project:
--------------------------------------------------------------------------------
1 | packages: gitit.cabal
2 | tests: True
3 | flags: +plugins
4 |
5 | package pandoc
6 | flags: +embed_data_files
7 |
--------------------------------------------------------------------------------
/data/FrontPage.page:
--------------------------------------------------------------------------------
1 | # Welcome to Gitit!
2 |
3 | This is the front page of your new gitit wiki. You can edit this
4 | page by clicking on the "edit" tab at the top of the screen.
5 | For instructions on how to make a link to another wiki page, see [the
6 | Help page](Help#wiki-links). To create a new wiki page, just create a
7 | link to it and follow the link.
8 |
9 | Help is always available through the "Help" link in the sidebar.
10 | More details on installing and configurating gitit are available
11 | in the [Gitit User’s Guide]().
12 |
13 |
--------------------------------------------------------------------------------
/data/Help.page:
--------------------------------------------------------------------------------
1 | # Navigating
2 |
3 | The most natural way of navigating is by clicking wiki links that
4 | connect one page with another. The "Front page" link in the navigation
5 | bar will always take you to the Front Page of the wiki. The "All pages"
6 | link will take you to a list of all pages on the wiki (organized into
7 | folders if directories are used). Alternatively, you can search using
8 | the search box. Note that the search is set to look for whole words, so
9 | if you are looking for "gremlins", type that and not "gremlin".
10 | The "go" box will take you directly to the page you type.
11 |
12 | # Creating and modifying pages
13 |
14 | ## Registering for an account
15 |
16 | In order to modify pages, you'll need to be logged in. To register
17 | for an account, just click the "register" button in the bar on top
18 | of the screen. You'll be asked to choose a username and a password,
19 | which you can use to log in in the future by clicking the "login"
20 | button. While you are logged in, these buttons are replaced by
21 | a "logout so-and-so" button, which you should click to log out
22 | when you are finished.
23 |
24 | Note that logins are persistent through session cookies, so if you
25 | don't log out, you'll still be logged in when you return to the
26 | wiki from the same browser in the future.
27 |
28 | ## Editing a page
29 |
30 | To edit a page, just click the "edit" button at the bottom right corner
31 | of the page.
32 |
33 | You can click "Preview" at any time to see how your changes will look.
34 | Nothing is saved until you press "Save."
35 |
36 | Note that you must provide a description of your changes. This is to
37 | make it easier for others to see how a wiki page has been changed.
38 |
39 | ## Page metadata
40 |
41 | Pages may optionally begin with a metadata block. Here is an example:
42 |
43 | ---
44 | format: latex+lhs
45 | categories: haskell math
46 | toc: no
47 | title: Haskell and
48 | Category Theory
49 | ...
50 |
51 | \section{Why Category Theory?}
52 |
53 | The metadata block consists of a list of key-value pairs, each on a
54 | separate line. If needed, the value can be continued on one or more
55 | additional line, which must begin with a space. (This is illustrated by
56 | the "title" example above.) The metadata block must begin with a line
57 | `---` and end with a line `...` optionally followed by one or more blank
58 | lines.
59 |
60 | Currently the following keys are supported:
61 |
62 | format
63 | : Overrides the default page type as specified in the configuration file.
64 | Possible values are `markdown`, `rst`, `latex`, `html`, `markdown+lhs`,
65 | `rst+lhs`, `latex+lhs`. (Capitalization is ignored, so you can also
66 | use `LaTeX`, `HTML`, etc.) The `+lhs` variants indicate that the page
67 | is to be interpreted as literate Haskell. If this field is missing,
68 | the default page type will be used.
69 |
70 | categories
71 | : A space or comma separated list of categories to which the page belongs.
72 |
73 | toc
74 | : Overrides default setting for table-of-contents in the configuration file.
75 | Values can be `yes`, `no`, `true`, or `false` (capitalization is ignored).
76 |
77 | title
78 | : By default the displayed page title is the page name. This metadata element
79 | overrides that default.
80 |
81 | ## Creating a new page
82 |
83 | To create a new page, just create a wiki link that links to it, and
84 | click the link. If the page does not exist, you will be editing it
85 | immediately.
86 |
87 | ## Reverting to an earlier version
88 |
89 | If you click the "history" button at the bottom of the page, you will
90 | get a record of previous versions of the page. You can see the differences
91 | between two versions by dragging one onto the other; additions will be
92 | highlighted in yellow, and deletions will be crossed out with a horizontal
93 | line. Clicking on the description of changes will take you to the page
94 | as it existed after those changes. To revert the page to the revision
95 | you're currently looking at, just click the "revert" button at the bottom
96 | of the page, then "Save".
97 |
98 | ## Deleting a page
99 |
100 | The "delete" button at the bottom of the page will delete a page. Note
101 | that deleted pages can be recovered, since a record of them will still be
102 | accessible via the "activity" button on the top of the page.
103 |
104 | # Uploading files
105 |
106 | To upload a file--a picture, a PDF, or some other resource--click the
107 | "upload" button in the navigation bar. You will be prompted to select
108 | the file to upload. As with edits, you will be asked to provide a
109 | description of the resource (or of the change, if you are overwriting
110 | an existing file).
111 |
112 | Often you may leave "Name on wiki" blank, since the existing name of the
113 | file will be used by default. If that isn't desired, supply a name.
114 | Note that uploaded files *must* include a file extension (e.g. `.pdf`).
115 |
116 | If you are providing a new version of a file that already exists on the
117 | wiki, check the box "Overwrite existing file." Otherwise, leave it
118 | unchecked.
119 |
120 | To link to an uploaded file, just use its name in a regular wiki link.
121 | For example, if you uploaded a picture `fido.jpg`, you can insert the
122 | picture into a (markdown-formatted) page as follows: ``.
123 | If you uploaded a PDF `projection.pdf`, you can insert a link to it
124 | using: `[projection](projection.pdf)`.
125 |
126 |
--------------------------------------------------------------------------------
/data/Paths_gitit.hs:
--------------------------------------------------------------------------------
1 | module Paths_gitit where
2 |
3 | getDataFileName :: FilePath -> IO FilePath
4 | getDataFileName = return
5 |
--------------------------------------------------------------------------------
/data/markup.DocBook:
--------------------------------------------------------------------------------
1 |
2 | Markdown
3 |
4 | This wiki's pages are written in
5 | pandoc's
6 | extended form of
7 | markdown.
8 | If you're not familiar with markdown, you should start by looking at
9 | the
10 | markdown
11 | "basics" page and the
12 | markdown
13 | syntax description. Consult the
14 | pandoc
15 | User's Guide for information about pandoc's syntax for
16 | footnotes, tables, description lists, and other elements not present
17 | in standard markdown.
18 |
19 |
20 | Markdown is pretty intuitive, since it is based on email
21 | conventions. Here are some examples to get you started:
22 |
23 |
113 | $x = \frac{{ - b \pm \sqrt {b^2 - 4ac} }}{{2a}}$
114 |
115 | If this looks like code, it's because MathJax is not installed on
116 | your system. Contact your administrator to request it.
117 |
118 |
119 |
120 |
121 |
122 |
123 | A simple footnote.^[Or is it so simple?]
124 |
125 |
126 | A simple footnote.
127 |
128 | Or is it so simple?
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 | > an indented paragraph,
137 | > usually used for quotations
138 |
139 |
140 |
141 |
142 |
143 | an indented paragraph, usually used for quotations
144 |
145 |
166 | * a bulleted list
167 | * second item
168 | - sublist
169 | - and more
170 | * back to main list
171 | 1. this item has an ordered
172 | 2. sublist
173 | a) you can also use letters
174 | b) another item
175 |
176 |
177 |
178 |
179 |
180 |
181 | a bulleted list
182 |
183 |
184 |
185 |
186 | second item
187 |
188 |
189 |
190 |
191 | sublist
192 |
193 |
194 |
195 |
196 | and more
197 |
198 |
199 |
200 |
201 |
202 |
203 | back to main list
204 |
205 |
206 |
207 |
208 | this item has an ordered
209 |
210 |
211 |
212 |
213 | sublist
214 |
215 |
216 |
217 |
218 | you can also use letters
219 |
220 |
221 |
222 |
223 | another item
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 | Fruit Quantity
237 | -------- -----------
238 | apples 30,200
239 | oranges 1,998
240 | pears 42
241 |
242 | Table: Our fruit inventory
243 |
294 |
295 | For headings, prefix a line with one or more #
296 | signs: one for a major heading, two for a subheading, three for a
297 | subsubheading. Be sure to leave space before and after the heading.
298 |
299 |
300 | # Markdown
301 |
302 | Text...
303 |
304 | ## Some examples...
305 |
306 | Text...
307 |
308 |
309 | Wiki links
310 |
311 | Links to other wiki pages are formed this way:
312 | [Page Name](). (Gitit converts markdown links
313 | with empty targets into wikilinks.)
314 |
315 |
316 | To link to a wiki page using something else as the link text:
317 | [something else](Page Name).
318 |
319 |
320 | Note that page names may contain spaces and some special
321 | characters. They need not be CamelCase. CamelCase words are
322 | not automatically converted to wiki links.
323 |
324 |
325 | Wiki pages may be organized into directories. So, if you have
326 | several pages on wine, you may wish to organize them like so:
327 |
328 |
329 | Wine/Pinot Noir
330 | Wine/Burgundy
331 | Wine/Cabernet Sauvignon
332 |
333 |
334 | Note that a wiki link [Burgundy]() that occurs
335 | inside the Wine directory will link to
336 | Wine/Burgundy, and not to
337 | Burgundy. To link to a top-level page called
338 | Burgundy, you'd have to use
339 | [Burgundy](/Burgundy).
340 |
341 |
342 | To link to a directory listing for a subdirectory, use a trailing
343 | slash: [Wine/]() will link to a listing of the
344 | Wine subdirectory.
345 |
346 |
347 |
348 |
--------------------------------------------------------------------------------
/data/markup.HTML:
--------------------------------------------------------------------------------
1 | # Markup
2 |
3 | The syntax for wiki pages is standard HTML 5. All tags must be
4 | properly closed.
5 |
6 | ## Wiki links
7 |
8 | Links to other wiki pages are formed this way:
9 | `Page Name`. (Gitit converts links with empty
10 | targets into wikilinks.)
11 |
12 | To link to a wiki page using something else as the link text:
13 | `something else`.
14 |
15 | Note that page names may contain spaces and some special
16 | characters. They need not be CamelCase. CamelCase words are *not*
17 | automatically converted to wiki links.
18 |
19 | Wiki pages may be organized into directories. So, if you have
20 | several pages on wine, you may wish to organize them like so:
21 |
22 | Wine/Pinot Noir
23 | Wine/Burgundy
24 | Wine/Cabernet Sauvignon
25 |
26 | Note that a wiki link `Burgundy` that occurs inside
27 | the `Wine` directory will link to `Wine/Burgundy`, and not to
28 | `Burgundy`. To link to a top-level page called `Burgundy`, you'd
29 | have to use `Burgundy`.
30 |
31 | To link to a directory listing for a subdirectory, use a trailing
32 | slash: `Wine/` will link to a listing of the `Wine` subdirectory.
33 |
--------------------------------------------------------------------------------
/data/markup.LaTeX:
--------------------------------------------------------------------------------
1 | # Markup
2 |
3 | This wiki's pages are written in (a subset of) [LaTeX].
4 |
5 | [LaTeX]: http://www.latex-project.org/
6 |
7 | The following commands and environments are recognized:
8 |
9 | - `\emph{emphasis}`
10 |
11 | - `\textbf{bold}`
12 |
13 | - `verb!verbatim@@\#!`
14 |
15 | - `\textsubscr{2}`
16 |
17 | - `\sout{strikeout}`
18 |
19 | - `\textsuperscript{2}`
20 |
21 | - `$e = mc^2$`
22 |
23 | - `$$e = mc^2$$`
24 |
25 | - `\footnote{a footnote}`
26 |
27 | - `\section{section}`, `\subsection{subsection}`, etc.
28 |
29 | - `\begin{quote} . . . \end{quote}`
30 |
31 | - `\begin{verbatim} . . . \end{verbatim}`
32 |
33 | - `\begin{itemize} . . . \end{itemize}`
34 |
35 | - `\begin{enumerate} . . . \end{enumerate}`
36 |
37 | ## Wiki links
38 |
39 | Links to other wiki pages are formed this way: `\href{}{Page Name}`.
40 | (Gitit converts markdown links with empty targets into wikilinks.)
41 |
42 | To link to a wiki page using something else as the link text:
43 | `\href{Page Name}{Something else}`.
44 |
45 | Note that page names may contain spaces and some special
46 | characters. They need not be CamelCase. CamelCase words are *not*
47 | automatically converted to wiki links.
48 |
49 | Wiki pages may be organized into directories. So, if you have
50 | several pages on wine, you may wish to organize them like so:
51 |
52 | Wine/Pinot Noir
53 | Wine/Burgundy
54 | Wine/Cabernet Sauvignon
55 |
56 | Note that a wiki link `\href{}{Burgundy}` that occurs inside the `Wine`
57 | directory will link to `Wine/Burgundy`, and not to `Burgundy`. To
58 | link to a top-level page called `Burgundy`, you'd have to use
59 | `\href{/Burgundy}{Burgundy}`.
60 |
61 | To link to a directory listing for a subdirectory, use a trailing
62 | slash: `\href{}{Wine/}` will link to a listing of the `Wine` subdirectory.
63 |
64 |
--------------------------------------------------------------------------------
/data/markup.Markdown:
--------------------------------------------------------------------------------
1 | # Markdown
2 |
3 | This wiki's pages are written in [pandoc]'s extended form of [markdown].
4 | If you're not familiar with markdown, you should start by looking
5 | at the [markdown "basics" page] and the [markdown syntax description].
6 | Consult the [pandoc User's Guide] for information about pandoc's syntax
7 | for footnotes, tables, description lists, and other elements not present
8 | in standard markdown.
9 |
10 | [pandoc]: http://pandoc.org
11 | [pandoc User's Guide]: http://pandoc.org/README.html
12 | [markdown]: http://daringfireball.net/projects/markdown
13 | [markdown "basics" page]: http://daringfireball.net/projects/markdown/basics
14 | [markdown syntax description]: http://daringfireball.net/projects/markdown/syntax
15 |
16 | Markdown is pretty intuitive, since it is based on email conventions.
17 | Here are some examples to get you started:
18 |
19 |
65 | $x = \frac{{ - b \pm \sqrt {b^2 - 4ac} }}{{2a}}$^[If this looks like
66 | code, it's because MathJax is
67 | not installed on your system. Contact your administrator to request it.]
68 |
69 |
70 |
71 |
72 | `A simple footnote.^[Or is it so simple?]`
73 |
74 |
75 | A simple footnote.^[Or is it so simple?]
76 |
77 |
78 |
79 |
80 |
81 | > an indented paragraph,
82 | > usually used for quotations
83 |
84 |
85 |
86 |
87 | > an indented paragraph,
88 | > usually used for quotations
89 |
90 |
110 | * a bulleted list
111 | * second item
112 | - sublist
113 | - and more
114 | * back to main list
115 | 1. this item has an ordered
116 | 2. sublist
117 | a) you can also use letters
118 | b) another item
119 |
120 |
121 |
122 |
123 | * a bulleted list
124 | * second item
125 | - sublist
126 | - and more
127 | * back to main list
128 | 1. this item has an ordered
129 | 2. sublist
130 | a) you can also use letters
131 | b) another item
132 |
133 |
134 |
135 |
136 |
137 |
138 | Fruit Quantity
139 | -------- -----------
140 | apples 30,200
141 | oranges 1,998
142 | pears 42
143 |
144 | Table: Our fruit inventory
145 |
160 |
161 | For headings, prefix a line with one or more `#` signs: one for a major heading,
162 | two for a subheading, three for a subsubheading. Be sure to leave space before
163 | and after the heading.
164 |
165 | # Markdown
166 |
167 | Text...
168 |
169 | ## Some examples...
170 |
171 | Text...
172 |
173 | ## Wiki links
174 |
175 | Links to other wiki pages are formed this way: `[Page Name]()`.
176 | (Gitit converts markdown links with empty targets into wikilinks.)
177 |
178 | To link to a wiki page using something else as the link text:
179 | `[something else](Page Name)`.
180 |
181 | Note that page names may contain spaces and some special characters.
182 | They need not be CamelCase. CamelCase words are *not* automatically
183 | converted to wiki links.
184 |
185 | Wiki pages may be organized into directories. So, if you have
186 | several pages on wine, you may wish to organize them like so:
187 |
188 | Wine/Pinot Noir
189 | Wine/Burgundy
190 | Wine/Cabernet Sauvignon
191 |
192 | Note that a wiki link `[Burgundy]()` that occurs inside the `Wine`
193 | directory will link to `Wine/Burgundy`, and not to `Burgundy`.
194 | To link to a top-level page called `Burgundy`, you'd have to use
195 | `[Burgundy](/Burgundy)`.
196 |
197 | To link to a directory listing for a subdirectory, use a trailing
198 | slash: `[Wine/]()` will link to a listing of the `Wine` subdirectory.
199 |
--------------------------------------------------------------------------------
/data/markup.Org:
--------------------------------------------------------------------------------
1 | * Markdown
2 |
3 | This wiki's pages are written in
4 | [[http://pandoc.org][pandoc]]'s extended form of
5 | [[http://daringfireball.net/projects/markdown][markdown]]. If you're not
6 | familiar with markdown, you should start by looking at the
7 | [[http://daringfireball.net/projects/markdown/basics][markdown "basics"
8 | page]] and the
9 | [[http://daringfireball.net/projects/markdown/syntax][markdown syntax
10 | description]]. Consult the
11 | [[http://pandoc.org/README.html][pandoc User's Guide]]
12 | for information about pandoc's syntax for footnotes, tables, description
13 | lists, and other elements not present in standard markdown.
14 |
15 | Markdown is pretty intuitive, since it is based on email conventions.
16 | Here are some examples to get you started:
17 |
18 | #+BEGIN_HTML
19 |
251 | * a bulleted list
252 | * second item
253 | - sublist
254 | - and more
255 | * back to main list
256 | 1. this item has an ordered
257 | 2. sublist
258 | a) you can also use letters
259 | b) another item
260 |
261 |
262 |
263 | #+END_HTML
264 |
265 | - a bulleted list
266 | - second item
267 |
268 | - sublist
269 | - and more
270 |
271 | - back to main list
272 |
273 | 1. this item has an ordered
274 | 2. sublist
275 |
276 | 1) you can also use letters
277 | 2) another item
278 |
279 | #+BEGIN_HTML
280 |
281 |
282 |
283 |
284 |
285 | Fruit Quantity
286 | -------- -----------
287 | apples 30,200
288 | oranges 1,998
289 | pears 42
290 |
291 | Table: Our fruit inventory
292 |
308 | #+END_HTML
309 |
310 | For headings, prefix a line with one or more =#= signs: one for a major
311 | heading, two for a subheading, three for a subsubheading. Be sure to
312 | leave space before and after the heading.
313 |
314 | #+BEGIN_EXAMPLE
315 | # Markdown
316 |
317 | Text...
318 |
319 | ## Some examples...
320 |
321 | Text...
322 | #+END_EXAMPLE
323 |
324 | ** Wiki links
325 |
326 | Links to other wiki pages are formed this way: =[Page Name]()=. (Gitit
327 | converts markdown links with empty targets into wikilinks.)
328 |
329 | To link to a wiki page using something else as the link text:
330 | =[something else](Page Name)=.
331 |
332 | Note that page names may contain spaces and some special characters.
333 | They need not be CamelCase. CamelCase words are /not/ automatically
334 | converted to wiki links.
335 |
336 | Wiki pages may be organized into directories. So, if you have several
337 | pages on wine, you may wish to organize them like so:
338 |
339 | #+BEGIN_EXAMPLE
340 | Wine/Pinot Noir
341 | Wine/Burgundy
342 | Wine/Cabernet Sauvignon
343 | #+END_EXAMPLE
344 |
345 | Note that a wiki link =[Burgundy]()= that occurs inside the =Wine=
346 | directory will link to =Wine/Burgundy=, and not to =Burgundy=. To link
347 | to a top-level page called =Burgundy=, you'd have to use
348 | =[Burgundy](/Burgundy)=.
349 |
350 | To link to a directory listing for a subdirectory, use a trailing slash:
351 | =[Wine/]()= will link to a listing of the =Wine= subdirectory.
352 |
353 | [1] If this looks like code, it's because MathJax is not installed on
354 | your system. Contact your administrator to request it.
355 |
356 | [2] Or is it so simple?
357 |
--------------------------------------------------------------------------------
/data/markup.RST:
--------------------------------------------------------------------------------
1 | # Markup
2 |
3 | This wiki's pages are written in [reStructuredText]. If you're
4 | not familiar with reStructuredText, you should start by looking at
5 | the [primer] and the [quick reference guide]. Note that not all
6 | reStructuredText constructs are currently supported. Use the
7 | preview button if you're in doubt.
8 |
9 | [reStructuredText]: http://docutils.sourceforge.net/rst.html
10 | [primer]: http://docutils.sourceforge.net/docs/user/rst/quickstart.html
11 | [quick reference guide]: http://docutils.sourceforge.net/docs/user/rst/quickref.html
12 |
13 | ## Wiki links
14 |
15 | Links to other wiki pages are formed this way: `` `Page Name <>`_ ``.
16 | (Gitit converts markdown links with empty targets into wikilinks.)
17 |
18 | To link to a wiki page using something else as the link text:
19 | either `` `something else `_ `` or
20 |
21 | `something else`_
22 |
23 | .. _`something else`: Page Name
24 |
25 | Note that page names may contain spaces and some special
26 | characters. They need not be CamelCase. CamelCase words are *not*
27 | automatically converted to wiki links.
28 |
29 | Wiki pages may be organized into directories. So, if you have
30 | several pages on wine, you may wish to organize them like so:
31 |
32 | Wine/Pinot Noir
33 | Wine/Burgundy
34 | Wine/Cabernet Sauvignon
35 |
36 | Note that a wiki link `` `Burgundy <>`_ `` that occurs inside the `Wine`
37 | directory will link to `Wine/Burgundy`, and not to `Burgundy`. To
38 | link to a top-level page called `Burgundy`, you'd have to use
39 | `` `Burgundy `_ ``.
40 |
41 | To link to a directory listing for a subdirectory, use a trailing
42 | slash: `` `Wine/ <>`_ `` will link to a listing of the `Wine` subdirectory.
43 |
--------------------------------------------------------------------------------
/data/markup.Textile:
--------------------------------------------------------------------------------
1 | h1(#markdown). Markdown
2 |
3 | This wiki's pages are written in "pandoc":http://pandoc.org's extended form of "markdown":http://daringfireball.net/projects/markdown. If you're not familiar with markdown, you should start by looking at the "markdown "basics" page":http://daringfireball.net/projects/markdown/basics and the "markdown syntax description":http://daringfireball.net/projects/markdown/syntax. Consult the "pandoc User's Guide":http://pandoc.org/README.html for information about pandoc's syntax for footnotes, tables, description lists, and other elements not present in standard markdown.
4 |
5 | Markdown is pretty intuitive, since it is based on email conventions. Here are some examples to get you started:
6 |
7 |
138 | * a bulleted list
139 | * second item
140 | - sublist
141 | - and more
142 | * back to main list
143 | 1. this item has an ordered
144 | 2. sublist
145 | a) you can also use letters
146 | b) another item
147 |
148 |
149 |
150 |
151 |
152 |
a bulleted list
153 |
second item
154 |
155 |
sublist
156 |
and more
157 |
158 |
159 |
back to main list
160 |
161 |
this item has an ordered
162 |
sublist
163 |
164 |
you can also use letters
165 |
another item
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 | Fruit Quantity
178 | -------- -----------
179 | apples 30,200
180 | oranges 1,998
181 | pears 42
182 |
183 | Table: Our fruit inventory
184 |
185 |
186 |
187 |
188 |
189 |
Our fruit inventory
190 |
191 |
192 |
Fruit
193 |
Quantity
194 |
195 |
196 |
197 |
198 |
apples
199 |
30,200
200 |
201 |
202 |
oranges
203 |
1,998
204 |
205 |
206 |
pears
207 |
42
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 | For headings, prefix a line with one or more @#@ signs: one for a major heading, two for a subheading, three for a subsubheading. Be sure to leave space before and after the heading.
217 |
218 |
227 |
228 | h2(#wiki-links). Wiki links
229 |
230 | Links to other wiki pages are formed this way: @[Page Name]()@. (Gitit converts markdown links with empty targets into wikilinks.)
231 |
232 | To link to a wiki page using something else as the link text: @[something else](Page Name)@.
233 |
234 | Note that page names may contain spaces and some special characters. They need not be CamelCase. CamelCase words are _not_ automatically converted to wiki links.
235 |
236 | Wiki pages may be organized into directories. So, if you have several pages on wine, you may wish to organize them like so:
237 |
238 | bc. Wine/Pinot Noir
239 | Wine/Burgundy
240 | Wine/Cabernet Sauvignon
241 |
242 |
243 | Note that a wiki link @[Burgundy]()@ that occurs inside the @Wine@ directory will link to @Wine/Burgundy@, and not to @Burgundy@. To link to a top-level page called @Burgundy@, you'd have to use @[Burgundy](/Burgundy)@.
244 |
245 | To link to a directory listing for a subdirectory, use a trailing slash: @[Wine/]()@ will link to a listing of the @Wine@ subdirectory.
246 |
247 |
248 | fn1. If this looks like code, it's because MathJax is not installed on your system. Contact your administrator to request it.
249 |
250 |
251 | fn2. Or is it so simple?
252 |
253 |
254 |
255 |
--------------------------------------------------------------------------------
/data/markupHelp/HTML:
--------------------------------------------------------------------------------
1 | ~~~~~~~~
2 |