diff --git a/HISTORY.md b/HISTORY.md index 0c118986..33cf1cd0 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,3 +1,13 @@ +# 5.0 / 2020-03-17 + +This is a major new release that substantially cleans up and improves the codebase. It also introduces many new features, bugfixes, and removing major limitations. See [here](https://github.com/gollum/gollum/wiki/5.0-release-notes) for a list of changes. + +**Note**: due to changes in the way in which Gollum handles filenames, you may have to change some links in your wiki when migrating from gollum 4.x. See the [release notes](https://github.com/gollum/gollum/wiki/5.0-release-notes) for more details. + +Many thanks to all the users who have provided feedback, and everyone who has chipped in in the development process! + +Many of these changes have been made possible by removing the default grit adapter in favour of the new [rugged adapter](https://github.com/gollum/rugged_adapter). + # 4.1.0 /2017-03-09 * Added file deletion functionality to file view diff --git a/README.md b/README.md index 26c223b4..9c363f26 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ gollum -- A git-based Wiki [![Build Status](https://travis-ci.org/gollum/gollum.svg?branch=master)](https://travis-ci.org/gollum/gollum) [![Dependency Status](https://gemnasium.com/gollum/gollum.svg)](https://gemnasium.com/gollum/gollum) -Note: this is the development branch for the next major release of Gollum, version 5.0. See [here](https://github.com/gollum/gollum/wiki/5.0-release-notes) for a list of changes and new features. +**Gollum version 5.0 is out!** See [here](https://github.com/gollum/gollum/wiki/5.0-release-notes) for a list of changes and new features compared to Gollum version 4.x. See some [Screenshots](https://github.com/gollum/gollum/wiki/Screenshots) of Gollum's features. ## DESCRIPTION @@ -15,34 +15,17 @@ Gollum is a simple wiki system built on top of Git. A Gollum Wiki is simply a gi * May be written in a variety of [markups](#markups). * Can be edited with your favourite system editor or IDE (changes will be visible after committing) or with the built-in web interface. * Can be displayed in all versions (commits). +* Gollum supports advanced functionality like: + * [UML diagrams](https://github.com/gollum/gollum/wiki#plantuml-diagrams) + * [BibTeX and Citation support](https://github.com/gollum/gollum/wiki/BibTeX-and-Citations) + * Annotations using [CriticMarkup](https://github.com/gollum/gollum/wiki#criticmarkup-annotations) + * Mathematics via [MathJax](https://github.com/gollum/gollum/wiki#mathematics) + * [Macros](https://github.com/gollum/gollum/wiki/Standard-Macros) + * ...and [more](https://github.com/gollum/gollum/wiki). -Gollum can be launched either as a webserver (with the web interface) or in "console mode", where you can use a predefined API to query and manipulate the repository. For more information, see the [Running](#running) and [Configuration](#configuration) sections. +### SYSTEM REQUIREMENTS -For more information on Gollum's capabilities and pitfalls: - -1. [Syntax/capability overview for pages](https://github.com/gollum/gollum/wiki). -2. [Known limitations](https://github.com/gollum/gollum/wiki/Known-limitations). -3. [Troubleshoot guide](https://github.com/gollum/gollum/wiki/Troubleshoot-guide). -4. [Security overview](https://github.com/gollum/gollum/wiki/Security). - -### Videos - -* [Quick impression of gollum](https://www.youtube.com/watch?v=gj1qqK3Oku8) -* [Gollum overview and simple markdown tutorial (german with english subtitles)](https://www.youtube.com/watch?v=wfWgDRmcbU4) -* [Advanced features in action](https://www.youtube.com/watch?v=EauxgxsLDC4) - -## SYSTEM REQUIREMENTS - -| Operating System | Ruby | Adapters | Supported | -| ---------------- | -------------- | ------------------ | --------- | -| Unix/Linux-like | Ruby 1.9.3+ | all except [RJGit](https://github.com/repotag/rjgit) | yes | -| Unix/Linux-like | [JRuby](https://github.com/jruby/jruby) (1.9.3+ compatible) | [RJGit](https://github.com/repotag/rjgit) | yes | -| Windows | Ruby 1.9.3+ | all except [RJGit](https://github.com/repotag/rjgit) | no | -| Windows | [JRuby](https://github.com/jruby/jruby) (1.9.3+ compatible) | [RJGit](https://github.com/repotag/rjgit) | almost1 | - -**Notes:** - -1. You can track the progress at [Support Windows via JRuby - Meta Issue](https://github.com/gollum/gollum/issues/1044). +Gollum runs on Unix-like systems using its [adapter](https://github.com/gollum/rugged_adapter) for [https://github.com/libgit2/rugged](rugged) by default. You can also run Gollum on [JRuby](https://github.com/jruby/jruby) via its [adapter](https://github.com/repotag/gollum-lib_rjgit_adapter) for [RJGit](https://github.com/repotag/rjgit/). On Windows, Gollum runs only on JRuby. ## INSTALLATION @@ -53,12 +36,17 @@ Varies depending on operating system, package manager and Ruby installation. Gen ``` [sudo] gem install gollum ``` - + Installation examples for individual systems can be seen [here](https://github.com/gollum/gollum/wiki/Installation). +To run, simply: + +1. Run: `gollum /path/to/wiki`. +2. Open `http://localhost:4567` in your browser. + ### Markups -Gollum presently ships with support for the following markups: +Gollum allows using different markup languages on different wiki pages. It presently ships with support for the following markups: * [Markdown](http://daringfireball.net/projects/markdown/syntax) (see [below](#Markdown-flavors) for more information on Markdown flavors) * [RDoc](http://rdoc.sourceforge.net/) @@ -79,23 +67,12 @@ By default, Gollum ships with the `kramdown` gem to render Markdown. However, yo See [here](https://github.com/gollum/gollum/wiki/Custom-rendering-gems) for instructions on how to use custom rendering gems and set custom options. -## RUNNING - -Simply: - -1. Navigate to your git repository (wiki) via the command line. -2. Run: `gollum`. -3. Open `http://localhost:4567` in your browser. - -This will start up a web server (WEBrick) running Gollum with a web interface, where you can view and edit your wiki. - -### Running from source +## RUNNING FROM SOURCE 1. `git clone https://github.com/gollum/gollum` 2. `cd gollum` -3. `[sudo] bundle install` (may not always be necessary). +3. `[sudo] bundle install` 4. `bundle exec bin/gollum` - * Like that, gollum assumes the target wiki (git repository) is the project repository itself. If it's not, execute `bundle exec bin/gollum ` instead. 5. Open `http://localhost:4567` in your browser. ### Rack @@ -120,44 +97,47 @@ Gollum comes with the following command line options: | Option | Arguments | Description | | ----------------- | --------- | ----------- | -| --host | [HOST] | Specify the hostname or IP address to listen on. Default: `0.0.0.0`.1 | +| --host | [HOST] | Specify the hostname or IP address to listen on. Default: '0.0.0.0'.1 | | --port | [PORT] | Specify the port to bind Gollum with. Default: `4567`. | -| --config | [FILE] | Specify path to Gollum's configuration file. | +| --config | [FILE] | Specify path to Gollum's configuration file. | | --ref | [REF] | Specify the git branch to serve. Default: `master`. | -| --adapter | [ADAPTER] | Launch Gollum using a specific git adapter. Default: `grit`.2 | -| --bare | none | Tell Gollum that the git repository should be treated as bare. This is only necessary when using the default grit adapter. | +| --adapter | [ADAPTER] | Launch Gollum using a specific git adapter. Default: `rugged`.2 | | --base-path | [PATH] | Specify the leading portion of all Gollum URLs (path info). Setting this to `/wiki` will make the wiki accessible under `http://localhost:4567/wiki/`. Default: `/`. | | --page-file-dir | [PATH] | Specify the subdirectory for all pages. If set, Gollum will only serve pages from this directory and its subdirectories. Default: repository root. | +| --static, --no-static | none | Use static assets. Defaults to false in development/test, true in production/staging. | +| --assets | [PATH] | Set the path to look for static assets. | | --css | none | Tell Gollum to inject custom CSS into each page. Uses `custom.css` from repository root.3,5 | | --js | none | Tell Gollum to inject custom JS into each page. Uses `custom.js` from repository root.3,5 | | --emoji | none | Parse and interpret emoji tags (e.g. `:heart:`) except when the leading colon is backslashed (e.g. `\:heart:`). | | --no-edit | none | Disable the feature of editing pages. | -| --live-preview | none | Enable the live preview feature in page editor. | -| --no-live-preview | none | Disable the live preview feature in page editor. | +| --follow-renames, --no-follow-renames | none | Follow pages across renames in the History view. Default: true. | --allow-uploads | [MODE] | Enable file uploads. If set to `dir`, Gollum will store all uploads in the `/uploads/` directory in repository root. If set to `page`, Gollum will store each upload at the currently edited page.4 | | --mathjax | none | Enables MathJax (renders mathematical equations). By default, uses the `TeX-AMS-MML_HTMLorMML` config with the `autoload-all` extension.5 | +| --critic-markup | none | Enable support for annotations using [CriticMarkup](http://criticmarkup.com/). | | --irb | none | Launch Gollum in "console mode", with a [predefined API](https://github.com/gollum/gollum-lib/). | | --h1-title | none | Tell Gollum to use the first `

` as page title. | | --no-display-metadata | none | Do not render metadata tables in pages. | -| --show-all | none | Tell Gollum to also show files in the file view. By default, only valid pages are shown. | -| --collapse-tree | none | Tell Gollum to collapse the file tree, when the file view is opened. By default, the tree is expanded. | | --user-icons | [MODE] | Tell Gollum to use specific user icons for history view. Can be set to `gravatar`, `identicon` or `none`. Default: `none`. | | --mathjax-config | [FILE] | Specify path to a custom MathJax configuration. If not specified, uses the `mathjax.config.js` file from repository root. | | --template-dir | [PATH] | Specify custom mustache template directory. | +| --template-page | none | Use _Template in root as a template for new pages. Must be committed. | | --help | none | Display the list of options on the command line. | | --version | none | Display the current version of Gollum. | -| --template-page | none | Tell Gollum to use /_Template as the default content for new pages. _Template must be git committed. | +| --versions | none | Display the current version of Gollum and auxiliary gems. | **Notes:** 1. The `0.0.0.0` IP address allows remote access. Should you wish for Gollum to turn into a personal Wiki, use `127.0.0.1`. 2. Before using `--adapter`, you should probably read [this](https://github.com/gollum/gollum/wiki/Git-adapters) first. 3. When `--css` or `--js` is used, respective files must be committed to your git repository or you will get a 302 redirect to the create a page. -4. Files can be uploaded simply by dragging and dropping them onto the editor's text area (this is, however exclusive to the default editor, not the live preview editor). -5. Read the relevant [Security note](https://github.com/gollum/gollum/wiki/Security#custom-cssjs--mathjax-config) before using these. +4. Files can be uploaded simply by dragging and dropping them onto the editor's text area when `--allow-uploads` is used. ### Config file When `--config` option is used, certain inner parts of Gollum can be customized. This is used throughout our wiki for certain user-level alterations, among which [customizing supported markups](https://github.com/gollum/gollum/wiki/Formats-and-extensions) will probably stand out. **All of the mentioned alterations work both for Gollum's config file (`config.rb`) and Rack's config file (`config.ru`).** + +## CONTRIBUTING + +See [CONTRIBUTING](CONTRIBUTING.md) for information on how to submit issues, and how to start hacking on gollum. diff --git a/bin/gollum b/bin/gollum index 92a98a57..1ca546bc 100755 --- a/bin/gollum +++ b/bin/gollum @@ -62,12 +62,9 @@ opts = OptionParser.new do |opts| opts.on("-r", "--ref [REF]", "Specify the branch to serve. Default: 'master'.") do |ref| wiki_options[:ref] = ref end - opts.on("-a", "--adapter [ADAPTER]", "Launch Gollum using a specific git adapter. Default: 'grit'.") do |adapter| + opts.on("-a", "--adapter [ADAPTER]", "Launch Gollum using a specific git adapter. Default: 'rugged'.") do |adapter| Gollum::GIT_ADAPTER = adapter end - opts.on("--bare", "Declare '' to be bare. This is only necessary when using the grit adapter.") do - wiki_options[:repo_is_bare] = true - end opts.on("-b", "--base-path [PATH]", "Specify the leading portion of all Gollum URLs (path info). Default: '/'.", "Example: setting this to '/wiki' will make the wiki accessible under 'http://localhost:4567/wiki/'.") do |base_path| @@ -116,7 +113,7 @@ MSG opts.on("--no-edit", "Disable the feature of editing pages.") do wiki_options[:allow_editing] = false end - opts.on("--follow-renames", "Follow pages across renames in the History view. Default except on jruby.") do + opts.on("--follow-renames", "Follow pages across renames in the History view. Default: true.") do wiki_options[:follow_renames] = true end opts.on("--no-follow-renames", "Do not follow pages across renames in the History view.") do @@ -175,7 +172,7 @@ MSG puts "Running on: #{RUBY_PLATFORM} with Ruby version #{RUBY_VERSION}" puts "Using:" loaded_gemspecs = Gem.loaded_specs - gollum_gems = ['gollum-lib', 'gollum-rjgit_adapter', 'rjgit', 'gollum-grit_adapter', 'grit', 'gollum-rugged_adapter', 'rugged'] + gollum_gems = ['gollum-lib', 'gollum-rjgit_adapter', 'rjgit', 'gollum-rugged_adapter', 'rugged'] puts Gem.loaded_specs.select{|name, spec| gollum_gems.include?(name)}.map {|name, spec| "#{name} #{spec.version}"} puts "Markdown rendering gem: #{GitHub::Markup::Markdown.implementation_name}" puts "Other renderering gems:" diff --git a/test/test_unicode.rb b/test/test_unicode.rb index e9456bff..d3c3fc12 100644 --- a/test/test_unicode.rb +++ b/test/test_unicode.rb @@ -87,15 +87,6 @@ context "Frontend Unicode support" do assert_equal 'ghi', page.version.message end - test 'unicode filenames' do - # we transliterate only when adapter is grit - return if defined?(Gollum::GIT_ADAPTER) && Gollum::GIT_ADAPTER != 'grit' - - @wiki.write_page("ééééé", :markdown, '한글 text', { :name => '', :email => '' }) - page = @wiki.page("eeeee") - assert_equal '한글 text', utf8(page.raw_data) - end - def app Precious::App end