GithubHelp home page GithubHelp logo

rugged_adapter's Introduction

gollum -- A git-based Wiki

Gem Version Build Status Open Source Helpers Cutting Edge Dependency Status Docker Pulls

See the wiki for extensive documentation, along with screenshots of Gollum's features.

DESCRIPTION

Gollum is a simple wiki system built on top of Git. A Gollum Wiki is simply a git repository of a specific nature:

  • A Gollum repository's contents are human-editable text or markup files.

  • Pages may be organized into directories any way you choose.

  • Other content can also be included, for example images, PDFs and headers/footers for your pages.

  • Gollum pages:

    • May be written in a variety of markups.
    • Can be edited with your favourite editor (changes will be visible after committing) or with the built-in web interface.
    • Can be displayed in all versions, reverted, etc.
  • Gollum strives to be compatible with GitHub and GitLab wikis.

    • Just clone your GitHub/GitLab wiki and view and edit it locally!
  • Gollum supports advanced functionality like:

SYSTEM REQUIREMENTS

Gollum runs both on Unix-like systems and on Windows.

Gollum runs either using 'normal' Ruby (MRI) or JRuby (Ruby on the Java Virtual Machine). On Windows, Gollum runs only using JRuby (either from source, or prebuilt).

On MRI, Gollum uses the rugged git library, while on JRuby/Java it utilizes the rjgit and JGit libraries. See here for more info.

INSTALLATION

As a Ruby Gem

Ruby is best installed either via RVM or a package manager of choice. Then simply: gem install gollum

Installation examples for individual systems can be seen here.

To run, simply:

  1. Run: gollum /path/to/wiki where /path/to/wiki is an initialized Git repository.
  2. Open http://localhost:4567 in your browser.

Via Docker

See here for instructions on how to run Gollum via Docker.

As a web application resource (Java)

The latest Release of Gollum will always contain a downloadable gollum.war file that can be directly executed on any system with a working Java installation:

java -jar gollum.war -S gollum <your-gollum-arguments-here>

Misc

See below for information on running Gollum from source, as a Rack app, and more.

MARKUPS

Gollum allows using different markup languages on different wiki pages. It presently ships with support for the following markups:

You can easily activate support for other markups by installing additional renderers (any that are supported by github-markup):

  • AsciiDoc -- gem install asciidoctor
  • Creole -- gem install creole
  • MediaWiki -- gem install wikicloth
  • Org -- gem install org-ruby
  • Pod -- requires Perl >= 5.10 (the perl command must be available on your command line)
    • Lower versions should install Pod::Simple from CPAN.
  • ReStructuredText -- requires python >= 3
    • Note that Gollum will also need you to install docutils for python
  • Textile -- gem install RedCloth

Markdown flavors

By default, Gollum ships with the kramdown gem to render Markdown. However, you can use any Markdown renderer supported by github-markup. This includes CommonMark support via the commonmarker gem. The first installed renderer from the list will be used (e.g., redcarpet will NOT be used if github/markdown is installed). Just gem install the renderer of your choice.

See here for instructions on how to use custom rendering gems and set custom options.

RUNNING FROM SOURCE

  1. git clone https://github.com/gollum/gollum
  2. cd gollum
  3. [sudo] bundle install
  4. bundle exec bin/gollum
  5. Open http://localhost:4567 in your browser.

Rack

Gollum can also be run with any rack-compatible web server. More on that over here.

Rack, with an authentication server

Gollum can also be run alongside a CAS (Central Authentication Service) SSO (single sign-on) server. With a bit of tweaking, this adds basic user-support to Gollum. To see an example and an explanation, navigate over here.

Service

Gollum can also be run as a service. More on that over here.

ENVIRONMENT

Gollum uses the environment variable APP_ENV primarily to control how the underlying Sinatra app behaves:

  • development – reload the app on every request
  • production – load the app only once

CONFIGURATION

Gollum comes with the command line options listed below. Note that there are some additional 'minor' options to tweak Gollum's behaviour that do not have commandline options, but can be configured in config.rb.

Option Arguments Description
--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.
--ref [REF] Specify the git branch to serve. Default: master.
--bare none Tell Gollum that the git repository should be treated as bare.
--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 wiki root.3
--js none Tell Gollum to inject custom JS into each page. Uses custom.js from wiki root.3
--no-edit none Disable the feature of editing pages.
--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
--math [RENDERER] Enable rendering of mathematical equations. Valid renderers: mathjax, katex. Default: katex. Add custom configuration for the renderer to math.config.js and commit it to the repo.
--critic-markup none Enable support for annotations using CriticMarkup.
--irb none Launch Gollum in "console mode", with a predefined API.
--h1-title none Tell Gollum to use the first <h1> as page title.
--no-display-metadata none Do not render metadata tables in pages.
--user-icons [MODE] Tell Gollum to use specific user icons for history view. Can be set to gravatar, identicon or none. Default: none.
--template-dir [PATH] Specify custom mustache template directory. Only overrides templates that exist in this directory.
--template-page none Use _Template in root as a template for new pages. Must be committed.
--emoji none Parse and interpret emoji tags (e.g. :heart:) except when the leading colon is backslashed (e.g. \:heart:).
--lenient-tag-lookup none Internal links resolve case-insensitively, will treat spaces as hyphens, and will match the first page found with a certain filename, anywhere in the repository. Provides compatibility with Gollum 4.x.
--help none Display the list of options on the command line.
--version none Display the current version of Gollum.
--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 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 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 will probably stand out.

See here for documentation about settings configurable in config.rb.

All of the mentioned alterations and options work both for Gollum's config file (config.rb) and Rack's config file (config.ru).

CONTRIBUTING

Please consider helping out! See CONTRIBUTING for information on how to submit issues, and how to start hacking on gollum.

rugged_adapter's People

Contributors

adamniedzielski avatar bartkamphorst avatar blackglory avatar dahie avatar dometto avatar glensc avatar heavywatal avatar hiroponz avatar jhominal avatar lew21 avatar mishina2228 avatar svoop avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rugged_adapter's Issues

Cannot load such file -- gollum-lib (LoadError)

For the life of me, I can't figure this out (although I'm fairly new to Ruby).

When I try to follow your instructions, I get this when I attempt to run

gollum --adapter rugged
>/mydir/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- gollum-lib (LoadError)  

I've also tried installing gollum and the rugged_adapter from source with no luck. Running mac on Yosemite

Rename Blob#is_symlink

The RJGit version is called #is_symlink?, which is more idiomatic. This should be added to the adapter specs, too.

`Gollum::Git::Index#commit` does not set `:committer`

As the title indicates, Gollum::Git::Index#commit does not set the :committer option.

As a comparison, Grit sets committer in Grit::Index#commit to the same value as author.

I have only hit that issue because, as the :committer value is not set, Rugged attempted to use the configured value, which was empty in my situation, and thus threw an exception:

Rugged::ConfigError - Config value 'user.name' was not found

What is the target behavior?

  • Committer is set to the same value as Author;
    • That would follow the same behavior as grit;
  • Committer is set to a default value;
    • That would also be fine - after all, the actual entity committing to the repository is not the wiki user, but the gollum software;
  • rugged_adapter does not work unless user.name is configured;
    • That would be less than ideal, but is the current behavior;

If the behavior changes, how should it be specced?

  • Should we check that the expected value of committer on the returned Gollum::Git::Commit object?
    • However, committer information is not part of the Adapter API, as it is unnecessary for Gollum;
  • Should we check that a call to commit will not raise an exception?
    • However, the conditions for the exception to occur require that user.name not be set, on any level - however, a developer running the specs is extremely likely to have user.name set in his user file, making the spec useless;
  • Do we spec this behavior only for rugged_adapter, not in adapter_specs?

Yes, I know I am writing far too much for a one-line change...

Breaks gollum's revert_page

gollum-lib's Wiki#revert_page depends on the underlying git adapter providing an apply_patch method. Unfortunately, due to grit's unreliability, the tests for Wiki#revert_page were commented out a long time ago. So while rugged_adapter passes all of gollum-lib's tests, it breaks gollum's "Revert Changes" functionality when you swap it in as the git adapter because apply_patch was never actually implemented.

Pagination is disabled in `Git#versions_for_path`

Hello,

I was wondering why, in Git#versions_for_path, both :max_count and :skip are removed from the options hash:

def versions_for_path(path = nil, ref = nil, options = {})
  options.delete :max_count
  options.delete :skip
  log(ref, path, options)
end

That leads to a big performance regression for me, as I have a very deep wiki history (the wiki was migrated).

The corresponding function in Grit only disables pagination when the :follow option is enabled:

def versions_for_path(path = nil, ref = nil, options = nil)
  if options[:follow]
    options[:pretty] = 'raw'
    options.delete :max_count
    options.delete :skip
    logstr = log(path, ref, options)
    Gollum::Git::Commit.list_from_string(repo, logstr)
  else
    repo.log(ref, path, options).map {|grit_commit| Gollum::Git::Commit.new(grit_commit)}
  end
end

LFS support?

Does the adapter support git-lfs? LFS support would be especially nice for wikis with upload support turned on. I've found that the wiki uploads I often make are file types that would be much better tracked in the repo using git-lfs (image files for example).

Searching generates false-positives

Searching for a keyword while using the rugged adapter sometimes generates false positives. For example, in a private wiki consisting of 150+ pages, searching for citrix returned the following results:

Notice that the few results are uploaded screenshots and are included as expected. Due to a file encoding issue in my environment, some of the expected results were NOT returned because the search term was not listed in the filename exactly as searched. For example, none of these pages were included in the search result:

image

However, towards the end of the screenshot, you will notice that pages that do not mention the search term nor contain the search term in their name are returned, even though gollum thinks there were 0 matches (the 0 in parenthesis next to the page title). A complete list of false positives can be seen below:

image

Crash when comparing versions

Compare 2 versions for a wiki page.

-- Crash Report log information --------------------------------------------
   See Crash Report log file under the one of following:
     * ~/Library/Logs/DiagnosticReports
     * /Library/Logs/DiagnosticReports
   for more details.
Don't forget to include the above Crash Report log file in bug reports.

-- Control frame information -----------------------------------------------
c:0046 p:---- s:0279 e:000278 CFUNC  :to_enum
c:0045 p:---- s:0276 e:000275 CFUNC  :each_patch
c:0044 p:0004 s:0272 e:000271 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/diff.rb:18
c:0043 p:0039 s:0268 e:000267 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/gollum-rugged_adapter-0.4.4/lib/rugged_adapter/git_layer_rugged.rb:580
c:0042 p:0075 s:0259 e:000258 BLOCK  /usr/local/lib/ruby/gems/2.5.0/gems/gollum-4.1.2/lib/gollum/app.rb:505 [FINISH]
c:0041 p:---- s:0250 e:000249 CFUNC  :call
c:0040 p:0015 s:0243 e:000242 BLOCK  /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1610 [FINISH]
c:0039 p:0011 s:0238 e:000237 BLOCK  /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:975
c:0038 p:0005 s:0235 e:000232 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:994
c:0037 p:0022 s:0229 e:000228 BLOCK  /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:975
c:0036 p:0026 s:0225 e:000224 BLOCK  /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1015 [FINISH]
c:0035 p:---- s:0222 e:000221 CFUNC  :catch
c:0034 p:0126 s:0217 e:000216 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1013
c:0033 p:0012 s:0205 e:000204 BLOCK  /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:973 [FINISH]
c:0032 p:---- s:0197 e:000196 CFUNC  :each
c:0031 p:0034 s:0193 e:000192 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:972
c:0030 p:0044 s:0186 e:000185 BLOCK  /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1085
c:0029 p:0003 s:0183 e:000182 BLOCK  /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067 [FINISH]
c:0028 p:---- s:0180 e:000179 CFUNC  :catch
c:0027 p:0007 s:0175 e:000174 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067
c:0026 p:0005 s:0170 e:000169 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1082
c:0025 p:0005 s:0165 e:000164 BLOCK  /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:907
c:0024 p:0003 s:0162 e:000161 BLOCK  /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067 [FINISH]
c:0023 p:---- s:0159 e:000158 CFUNC  :catch
c:0022 p:0007 s:0154 e:000153 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067
c:0021 p:0085 s:0149 e:000148 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:907
c:0020 p:0009 s:0144 e:000143 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:895
c:0019 p:0008 s:0139 e:000138 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/xss_header.rb:18
c:0018 p:0044 s:0131 e:000130 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/path_traversal.rb:16
c:0017 p:0023 s:0125 e:000124 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/json_csrf.rb:18
c:0016 p:0038 s:0116 e:000115 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/base.rb:49
c:0015 p:0038 s:0110 e:000109 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/base.rb:49
c:0014 p:0008 s:0104 e:000103 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/frame_options.rb:31
c:0013 p:0016 s:0096 e:000095 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/nulllogger.rb:9
c:0012 p:0008 s:0091 e:000090 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/head.rb:13
c:0011 p:0008 s:0083 e:000082 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/show_exceptions.rb:25
c:0010 p:0009 s:0073 e:000072 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:182
c:0009 p:0008 s:0066 e:000065 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:2013
c:0008 p:0010 s:0061 e:000060 BLOCK  /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487
c:0007 p:0017 s:0058 e:000057 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1787
c:0006 p:0005 s:0053 e:000052 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487
c:0005 p:0323 s:0048 E:000c70 METHOD /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/handler/webrick.rb:88
c:0004 p:0197 s:0032 e:000031 METHOD /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpserver.rb:140
c:0003 p:0290 s:0021 e:000020 METHOD /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpserver.rb:96
c:0002 p:0142 s:0009 e:000008 BLOCK  /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/server.rb:307 [FINISH]
c:0001 p:---- s:0003 e:000002 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
/usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/server.rb:307:in `block in start_thread'
/usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpserver.rb:96:in `run'
/usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpserver.rb:140:in `service'
/usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/handler/webrick.rb:88:in `service'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1787:in `synchronize'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487:in `block in call'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:2013:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:182:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/show_exceptions.rb:25:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/head.rb:13:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/nulllogger.rb:9:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/frame_options.rb:31:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/base.rb:49:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/base.rb:49:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/json_csrf.rb:18:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/path_traversal.rb:16:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/xss_header.rb:18:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:895:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:907:in `call!'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `invoke'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `catch'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `block in invoke'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:907:in `block in call!'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1082:in `dispatch!'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `invoke'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `catch'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `block in invoke'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1085:in `block in dispatch!'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:972:in `route!'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:972:in `each'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:973:in `block in route!'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1013:in `process_route'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1013:in `catch'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1015:in `block in process_route'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `block (2 levels) in route!'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:994:in `route_eval'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `block (3 levels) in route!'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1610:in `block in compile!'
/usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1610:in `call'
/usr/local/lib/ruby/gems/2.5.0/gems/gollum-4.1.2/lib/gollum/app.rb:505:in `block in <class:App>'
/usr/local/lib/ruby/gems/2.5.0/gems/gollum-rugged_adapter-0.4.4/lib/rugged_adapter/git_layer_rugged.rb:580:in `diff'
/usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/diff.rb:18:in `patches'
/usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/diff.rb:18:in `each_patch'
/usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/diff.rb:18:in `to_enum'

-- Machine register context ------------------------------------------------
 rax: 0x0000000107c72000 rbx: 0x00007fd99c4a2fb8 rcx: 0x0000000022a3ac90
 rdx: 0x0000000022a3fff8 rdi: 0x0000000107c77368 rsi: 0x0000700000892000
 rbp: 0x000070000088c9e0 rsp: 0x000070000088c9e0  r8: 0x00007fd99c4a2fb8
  r9: 0x00007fd99bc0c060 r10: 0x00007fd99bc0c398 r11: 0xffff9001073e5368
 r12: 0x0000000022a3fff8 r13: 0x0000000001e5110c r14: 0x0000000107c72000
 r15: 0x0000000000000000 rip: 0x00007fff7d354f49 rfl: 0x0000000000010202

-- C level backtrace information -------------------------------------------
0   libruby.2.5.dylib                   0x00000001042f8553 rb_print_backtrace + 29
1   libruby.2.5.dylib                   0x00000001042f8636 rb_vm_bugreport + 120
2   libruby.2.5.dylib                   0x00000001041e58f7 rb_bug_context + 206
3   libruby.2.5.dylib                   0x0000000104295ce3 sigill + 0
4   libsystem_platform.dylib            0x00007fff7d351f5a _sigtramp + 26
5   libsystem_platform.dylib            0x00007fff7d354f49 _platform_memmove$VARIANT$Haswell + 41

-- Other runtime information -----------------------------------------------

* Loaded script: /usr/local/bin/gollum

* Loaded features:

    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/enc/encdb.bundle
    5 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/enc/trans/transdb.bundle
    6 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/rbconfig.rb
    7 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/compatibility.rb
    8 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/defaults.rb
    9 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/deprecate.rb
   10 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/errors.rb
   11 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/version.rb
   12 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/requirement.rb
   13 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/platform.rb
   14 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/basic_specification.rb
   15 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/stub_specification.rb
   16 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/util/list.rb
   17 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/stringio.bundle
   18 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/specification.rb
   19 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/exceptions.rb
   20 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/defaults/operating_system.rb
   21 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/dependency.rb
   22 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/core_ext/kernel_gem.rb
   23 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/monitor.rb
   24 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb
   25 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems.rb
   26 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/path_support.rb
   27 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/version.rb
   28 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/core_ext/name_error.rb
   29 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/levenshtein.rb
   30 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/jaro_winkler.rb
   31 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checker.rb
   32 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/delegate.rb
   33 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
   34 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
   35 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/name_error_checkers.rb
   36 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/method_name_checker.rb
   37 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/key_error_checker.rb
   38 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/null_checker.rb
   39 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/formatters/plain_formatter.rb
   40 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean.rb
   41 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/tsort.rb
   42 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/request_set/gem_dependency_api.rb
   43 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/request_set/lockfile/parser.rb
   44 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/request_set/lockfile/tokenizer.rb
   45 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/request_set/lockfile.rb
   46 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/request_set.rb
   47 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/util.rb
   48 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb
   49 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/errors.rb
   50 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/set.rb
   51 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb
   52 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb
   53 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
   54 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb
   55 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb
   56 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb
   57 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb
   58 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb
   59 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb
   60 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb
   61 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/state.rb
   62 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb
   63 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb
   64 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb
   65 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb
   66 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/resolver.rb
   67 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb
   68 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo.rb
   69 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/molinillo.rb
   70 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/activation_request.rb
   71 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/conflict.rb
   72 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/dependency_request.rb
   73 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/requirement_list.rb
   74 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/stats.rb
   75 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/set.rb
   76 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/api_set.rb
   77 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/composed_set.rb
   78 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/best_set.rb
   79 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/current_set.rb
   80 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/git_set.rb
   81 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/index_set.rb
   82 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/installer_set.rb
   83 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/lock_set.rb
   84 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/vendor_set.rb
   85 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/source_set.rb
   86 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/specification.rb
   87 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/spec_specification.rb
   88 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/api_specification.rb
   89 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/git_specification.rb
   90 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/index_specification.rb
   91 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/installed_specification.rb
   92 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/local_specification.rb
   93 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/lock_specification.rb
   94 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver/vendor_specification.rb
   95 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/resolver.rb
   96 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/uri/rfc2396_parser.rb
   97 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/uri/rfc3986_parser.rb
   98 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/uri/common.rb
   99 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/uri/generic.rb
  100 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/uri/ftp.rb
  101 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/uri/http.rb
  102 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/uri/https.rb
  103 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/uri/ldap.rb
  104 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/uri/ldaps.rb
  105 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/uri/mailto.rb
  106 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/uri.rb
  107 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/source/git.rb
  108 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/source/installed.rb
  109 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/source/specific_file.rb
  110 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/source/local.rb
  111 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/source/lock.rb
  112 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/source/vendor.rb
  113 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/source.rb
  114 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/optparse.rb
  115 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/digest.bundle
  116 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/digest.rb
  117 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/digest/md5.bundle
  118 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/digest/sha1.bundle
  119 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/ostruct.rb
  120 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rubygems/bundler_version_finder.rb
  121 /usr/local/lib/ruby/gems/2.5.0/gems/posix-spawn-0.3.13/lib/posix_spawn_ext.bundle
  122 /usr/local/lib/ruby/gems/2.5.0/gems/posix-spawn-0.3.13/lib/posix/spawn/version.rb
  123 /usr/local/lib/ruby/gems/2.5.0/gems/posix-spawn-0.3.13/lib/posix/spawn/child.rb
  124 /usr/local/lib/ruby/gems/2.5.0/gems/posix-spawn-0.3.13/lib/posix/spawn.rb
  125 /usr/local/lib/ruby/gems/2.5.0/gems/posix-spawn-0.3.13/lib/posix-spawn.rb
  126 /usr/local/lib/ruby/gems/2.5.0/gems/github-markup-1.7.0/lib/github/markup/implementation.rb
  127 /usr/local/lib/ruby/gems/2.5.0/gems/github-markup-1.7.0/lib/github/markup/command_implementation.rb
  128 /usr/local/lib/ruby/gems/2.5.0/gems/github-markup-1.7.0/lib/github/markup/gem_implementation.rb
  129 /usr/local/lib/ruby/gems/2.5.0/gems/github-markup-1.7.0/lib/github/markup/markdown.rb
  130 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rdoc.rb
  131 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/cgi/core.rb
  132 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/cgi/escape.bundle
  133 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/cgi/util.rb
  134 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/cgi/cookie.rb
  135 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/cgi.rb
  136 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rdoc/markup.rb
  137 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rdoc/markup/formatter.rb
  138 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/strscan.bundle
  139 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rdoc/markup/to_joined_paragraph.rb
  140 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rdoc/markdown/entities.rb
  141 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rdoc/markdown/literals.rb
  142 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rdoc/markdown.rb
  143 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rdoc/rd.rb
  144 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rdoc/markup/parser.rb
  145 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rdoc/markup/pre_process.rb
  146 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rdoc/tom_doc.rb
  147 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rdoc/text.rb
  148 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/rdoc/markup/to_html.rb
  149 /usr/local/lib/ruby/gems/2.5.0/gems/github-markup-1.7.0/lib/github/markup/rdoc.rb
  150 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/shellwords.rb
  151 /usr/local/lib/ruby/gems/2.5.0/gems/github-markup-1.7.0/lib/github/markup.rb
  152 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/nokogiri.bundle
  153 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/version.rb
  154 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/syntax_error.rb
  155 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/pp/node.rb
  156 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/pp/character_data.rb
  157 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/pp.rb
  158 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/parse_options.rb
  159 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/sax/document.rb
  160 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/sax/parser_context.rb
  161 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/sax/parser.rb
  162 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/sax/push_parser.rb
  163 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/sax.rb
  164 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/searchable.rb
  165 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/node/save_options.rb
  166 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/node.rb
  167 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/attribute_decl.rb
  168 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/element_decl.rb
  169 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/element_content.rb
  170 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/character_data.rb
  171 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/namespace.rb
  172 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/attr.rb
  173 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/dtd.rb
  174 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/cdata.rb
  175 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/text.rb
  176 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/document.rb
  177 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/document_fragment.rb
  178 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/processing_instruction.rb
  179 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/node_set.rb
  180 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/syntax_error.rb
  181 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/xpath/syntax_error.rb
  182 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/xpath.rb
  183 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/xpath_context.rb
  184 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/builder.rb
  185 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/reader.rb
  186 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/notation.rb
  187 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/entity_decl.rb
  188 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/entity_reference.rb
  189 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/schema.rb
  190 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml/relax_ng.rb
  191 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xml.rb
  192 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xslt/stylesheet.rb
  193 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/xslt.rb
  194 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/entity_lookup.rb
  195 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/document.rb
  196 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/document_fragment.rb
  197 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/sax/parser_context.rb
  198 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/sax/parser.rb
  199 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/sax/push_parser.rb
  200 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/element_description.rb
  201 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/element_description_defaults.rb
  202 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html.rb
  203 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/decorators/slop.rb
  204 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/node.rb
  205 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/xpath_visitor.rb
  206 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/racc/cparse.bundle
  207 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/racc/parser.rb
  208 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/parser_extras.rb
  209 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/parser.rb
  210 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/tokenizer.rb
  211 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css/syntax_error.rb
  212 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/css.rb
  213 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri/html/builder.rb
  214 /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.2/lib/nokogiri.rb
  215 /usr/local/lib/ruby/gems/2.5.0/gems/sanitize-2.1.0/lib/sanitize/version.rb
  216 /usr/local/lib/ruby/gems/2.5.0/gems/sanitize-2.1.0/lib/sanitize/config.rb
  217 /usr/local/lib/ruby/gems/2.5.0/gems/sanitize-2.1.0/lib/sanitize/config/restricted.rb
  218 /usr/local/lib/ruby/gems/2.5.0/gems/sanitize-2.1.0/lib/sanitize/config/basic.rb
  219 /usr/local/lib/ruby/gems/2.5.0/gems/sanitize-2.1.0/lib/sanitize/config/relaxed.rb
  220 /usr/local/lib/ruby/gems/2.5.0/gems/sanitize-2.1.0/lib/sanitize/transformers/clean_cdata.rb
  221 /usr/local/lib/ruby/gems/2.5.0/gems/sanitize-2.1.0/lib/sanitize/transformers/clean_comment.rb
  222 /usr/local/lib/ruby/gems/2.5.0/gems/sanitize-2.1.0/lib/sanitize/transformers/clean_element.rb
  223 /usr/local/lib/ruby/gems/2.5.0/gems/sanitize-2.1.0/lib/sanitize.rb
  224 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-4.1.2/lib/gollum/uri_encode_component.rb
  225 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-4.1.2/lib/gollum.rb
  226 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/etc.bundle
  227 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/fileutils.rb
  228 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/tmpdir.rb
  229 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/tempfile.rb
  230 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/multipart.rb
  231 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/date_core.bundle
  232 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/date.rb
  233 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/time.rb
  234 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/utils.rb
  235 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack.rb
  236 /usr/local/lib/ruby/gems/2.5.0/gems/tilt-2.0.8/lib/tilt/dummy.rb
  237 /usr/local/lib/ruby/gems/2.5.0/gems/tilt-2.0.8/lib/tilt/mapping.rb
  238 /usr/local/lib/ruby/gems/2.5.0/gems/tilt-2.0.8/lib/tilt/template.rb
  239 /usr/local/lib/ruby/gems/2.5.0/gems/tilt-2.0.8/lib/tilt.rb
  240 /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/version.rb
  241 /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection.rb
  242 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/erb.rb
  243 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/request.rb
  244 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/showexceptions.rb
  245 /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/show_exceptions.rb
  246 /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/ext.rb
  247 /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/version.rb
  248 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/body_proxy.rb
  249 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/response.rb
  250 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/commonlogger.rb
  251 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/securerandom.rb
  252 /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb
  253 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/builder.rb
  254 /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/main.rb
  255 /usr/local/lib/ruby/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra.rb
  256 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/pathname.bundle
  257 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/pathname.rb
  258 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/rugged.bundle
  259 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/index.rb
  260 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/object.rb
  261 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/commit.rb
  262 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/version.rb
  263 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/repository.rb
  264 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/reference.rb
  265 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/walker.rb
  266 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/tree.rb
  267 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/tag.rb
  268 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/branch.rb
  269 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/diff/hunk.rb
  270 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/diff/line.rb
  271 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/diff/delta.rb
  272 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/diff.rb
  273 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/patch.rb
  274 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/remote.rb
  275 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/credentials.rb
  276 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/attributes.rb
  277 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/blob.rb
  278 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged/submodule_collection.rb
  279 /usr/local/lib/ruby/gems/2.5.0/gems/rugged-0.26.0/lib/rugged.rb
  280 /usr/local/lib/ruby/gems/2.5.0/gems/mime-types-3.1/lib/mime/type.rb
  281 /usr/local/lib/ruby/gems/2.5.0/gems/mime-types-3.1/lib/mime/types/cache.rb
  282 /usr/local/lib/ruby/gems/2.5.0/gems/mime-types-3.1/lib/mime/types/container.rb
  283 /usr/local/lib/ruby/gems/2.5.0/gems/mime-types-data-3.2016.0521/lib/mime/types/data.rb
  284 /usr/local/lib/ruby/gems/2.5.0/gems/mime-types-3.1/lib/mime/types/loader.rb
  285 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/logger.rb
  286 /usr/local/lib/ruby/gems/2.5.0/gems/mime-types-3.1/lib/mime/types/logger.rb
  287 /usr/local/lib/ruby/gems/2.5.0/gems/mime-types-3.1/lib/mime/type/columnar.rb
  288 /usr/local/lib/ruby/gems/2.5.0/gems/mime-types-3.1/lib/mime/types/_columnar.rb
  289 /usr/local/lib/ruby/gems/2.5.0/gems/mime-types-3.1/lib/mime/types/registry.rb
  290 /usr/local/lib/ruby/gems/2.5.0/gems/mime-types-3.1/lib/mime/types.rb
  291 /usr/local/lib/ruby/gems/2.5.0/gems/mime-types-3.1/lib/mime-types.rb
  292 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-rugged_adapter-0.4.4/lib/rugged_adapter/git_layer_rugged.rb
  293 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-rugged_adapter-0.4.4/lib/rugged_adapter.rb
  294 /usr/local/lib/ruby/gems/2.5.0/gems/gemojione-3.3.0/lib/gemojione/version.rb
  295 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/json/version.rb
  296 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/json/generic_object.rb
  297 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/json/common.rb
  298 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/json/ext/parser.bundle
  299 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/json/ext/generator.bundle
  300 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/json/ext.rb
  301 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/json.rb
  302 /usr/local/lib/ruby/gems/2.5.0/gems/gemojione-3.3.0/lib/gemojione/index.rb
  303 /usr/local/lib/ruby/gems/2.5.0/gems/gemojione-3.3.0/lib/gemojione.rb
  304 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/git_access.rb
  305 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/hook.rb
  306 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/committer.rb
  307 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/pagination.rb
  308 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/blob_entry.rb
  309 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/wiki.rb
  310 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/page.rb
  311 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/macro/navigation.rb
  312 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/macro/all_pages.rb
  313 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/macro/series.rb
  314 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/macro/global_toc.rb
  315 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/macro.rb
  316 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/file.rb
  317 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/file_view.rb
  318 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/versions.rb
  319 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/exception.rb
  320 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/syntax_error.rb
  321 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/psych.bundle
  322 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/omap.rb
  323 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/set.rb
  324 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/class_loader.rb
  325 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/scalar_scanner.rb
  326 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/nodes/node.rb
  327 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/nodes/stream.rb
  328 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/nodes/document.rb
  329 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/nodes/sequence.rb
  330 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/nodes/scalar.rb
  331 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/nodes/mapping.rb
  332 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/nodes/alias.rb
  333 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/nodes.rb
  334 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/streaming.rb
  335 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/visitors/visitor.rb
  336 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/visitors/to_ruby.rb
  337 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/visitors/emitter.rb
  338 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/handler.rb
  339 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/tree_builder.rb
  340 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/visitors/yaml_tree.rb
  341 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/json/ruby_events.rb
  342 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/visitors/json_tree.rb
  343 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/visitors/depth_first.rb
  344 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/visitors.rb
  345 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/parser.rb
  346 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/coder.rb
  347 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/core_ext.rb
  348 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/stream.rb
  349 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/json/yaml_events.rb
  350 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/json/tree_builder.rb
  351 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/json/stream.rb
  352 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych/handlers/document_stream.rb
  353 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/psych.rb
  354 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/yaml.rb
  355 /usr/local/lib/ruby/gems/2.5.0/gems/rouge-2.2.1/lib/rouge.rb
  356 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/base64.rb
  357 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/helpers.rb
  358 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/markup.rb
  359 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/markups.rb
  360 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/sanitization.rb
  361 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/filter/macro.rb
  362 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/filter/sanitize.rb
  363 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/socket.bundle
  364 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/io/wait.bundle
  365 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/socket.rb
  366 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/timeout.rb
  367 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/net/protocol.rb
  368 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/zlib.bundle
  369 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/net/http/exceptions.rb
  370 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/net/http/header.rb
  371 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/enc/windows_31j.bundle
  372 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/net/http/generic_request.rb
  373 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/net/http/request.rb
  374 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/net/http/requests.rb
  375 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/net/http/response.rb
  376 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/net/http/responses.rb
  377 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/net/http/proxy_delta.rb
  378 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/net/http/backward.rb
  379 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/net/http.rb
  380 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/open-uri.rb
  381 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/filter/wsd.rb
  382 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/openssl.bundle
  383 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/openssl/bn.rb
  384 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/openssl/pkey.rb
  385 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/openssl/cipher.rb
  386 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/openssl/config.rb
  387 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/openssl/digest.rb
  388 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/openssl/x509.rb
  389 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/openssl/buffering.rb
  390 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin17/io/nonblock.bundle
  391 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/openssl/ssl.rb
  392 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/openssl/pkcs5.rb
  393 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/openssl.rb
  394 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/net/https.rb
  395 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/filter/remote_code.rb
  396 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/filter/code.rb
  397 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/filter/emoji.rb
  398 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/filter/metadata.rb
  399 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/filter/plantuml.rb
  400 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/filter/render.rb
  401 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/filter/tags.rb
  402 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/filter/toc.rb
  403 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/filter/plain_text.rb
  404 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib/filter.rb
  405 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-lib-4.2.7/lib/gollum-lib.rb
  406 /usr/local/lib/ruby/gems/2.5.0/gems/mustache-0.99.8/lib/mustache/enumerable.rb
  407 /usr/local/lib/ruby/gems/2.5.0/gems/mustache-0.99.8/lib/mustache/parser.rb
  408 /usr/local/lib/ruby/gems/2.5.0/gems/mustache-0.99.8/lib/mustache/generator.rb
  409 /usr/local/lib/ruby/gems/2.5.0/gems/mustache-0.99.8/lib/mustache/template.rb
  410 /usr/local/lib/ruby/gems/2.5.0/gems/mustache-0.99.8/lib/mustache/context.rb
  411 /usr/local/lib/ruby/gems/2.5.0/gems/mustache-0.99.8/lib/mustache/settings.rb
  412 /usr/local/lib/ruby/gems/2.5.0/gems/mustache-0.99.8/lib/mustache.rb
  413 /usr/local/lib/ruby/gems/2.5.0/gems/mustache-0.99.8/lib/mustache/sinatra.rb
  414 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/comparable.rb
  415 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/base.rb
  416 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/chrome.rb
  417 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/edge.rb
  418 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/gecko.rb
  419 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/internet_explorer.rb
  420 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/opera.rb
  421 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/webkit.rb
  422 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/wechat_browser.rb
  423 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/windows_media_player.rb
  424 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/itunes.rb
  425 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/apple_core_media.rb
  426 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/libavformat.rb
  427 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/playstation.rb
  428 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/podcast_addict.rb
  429 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers/vivaldi.rb
  430 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/browsers.rb
  431 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/operating_systems.rb
  432 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent/version.rb
  433 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/user_agent.rb
  434 /usr/local/lib/ruby/gems/2.5.0/gems/useragent-0.16.10/lib/useragent.rb
  435 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/configuration/base.rb
  436 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/configuration/configurator.rb
  437 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/configuration/acts_as_url.rb
  438 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/configuration/string_extensions.rb
  439 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/configuration.rb
  440 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/localization/conversion_expressions.rb
  441 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/localization/converter.rb
  442 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/localization/default_conversions.rb
  443 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/localization/backend/base.rb
  444 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/localization/backend/internal.rb
  445 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/localization/backend/i18n.rb
  446 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/localization.rb
  447 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/string_extensions.rb
  448 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/unidecoder.rb
  449 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/acts_as_url/adapter/base.rb
  450 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/acts_as_url/adapter/active_record.rb
  451 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/acts_as_url/adapter/data_mapper.rb
  452 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/acts_as_url/adapter/mongoid.rb
  453 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/acts_as_url/adapter.rb
  454 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/acts_as_url.rb
  455 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/version.rb
  456 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex/core_ext.rb
  457 /usr/local/lib/ruby/gems/2.5.0/gems/stringex-2.8.2/lib/stringex.rb
  458 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-4.1.2/lib/gollum/views/layout.rb
  459 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-4.1.2/lib/gollum/views/editable.rb
  460 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-4.1.2/lib/gollum/views/has_page.rb
  461 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-4.1.2/lib/gollum/helpers.rb
  462 /usr/local/lib/ruby/gems/2.5.0/gems/gollum-4.1.2/lib/gollum/app.rb
  463 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/handler.rb
  464 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/compat.rb
  465 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/version.rb
  466 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpversion.rb
  467 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httputils.rb
  468 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/singleton.rb
  469 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/utils.rb
  470 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/log.rb
  471 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/config.rb
  472 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/server.rb
  473 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/accesslog.rb
  474 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/htmlutils.rb
  475 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/cookie.rb
  476 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpstatus.rb
  477 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httprequest.rb
  478 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpresponse.rb
  479 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpservlet/abstract.rb
  480 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpservlet/filehandler.rb
  481 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpservlet/cgihandler.rb
  482 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpservlet/erbhandler.rb
  483 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpservlet/prochandler.rb
  484 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpservlet.rb
  485 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpserver.rb
  486 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpauth/authenticator.rb
  487 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpauth/basicauth.rb
  488 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpauth/digestauth.rb
  489 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpauth/userdb.rb
  490 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpauth/htpasswd.rb
  491 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpauth/htdigest.rb
  492 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpauth/htgroup.rb
  493 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick/httpauth.rb
  494 /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/webrick.rb
  495 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/content_length.rb
  496 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/handler/webrick.rb
  497 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/head.rb
  498 /usr/local/lib/ruby/gems/2.5.0/gems/rack-1.6.9/lib/rack/nulllogger.rb
  499 /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/base.rb
  500 /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/frame_options.rb
  501 /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/http_origin.rb
  502 /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/ip_spoofing.rb
  503 /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/json_csrf.rb
  504 /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/path_traversal.rb
  505 /usr/local/lib/ruby/gems/2.5.0/gems/rack-protection-1.5.4/lib/rack/protection/xss_header.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

[IMPORTANT]
Don't forget to include the Crash Report log file under
DiagnosticReports directory in bug reports.

Symbol not found: _iconv_open

Hi,

I run:gollum --adapter rugged
then open "localhost:4567" in my browser, but failed, error info is:

== Sinatra (v1.4.8) has taken the stage on 4567 for development with backup from WEBrick
[2017-02-16 15:41:53] INFO WEBrick::HTTPServer#start: pid=15669 port=4567
localhost - - [16/Feb/2017:15:42:08 CST] "GET / HTTP/1.1" 302 0

  • -> /
    dyld: lazy symbol binding failed: Symbol not found: _iconv_open
    Referenced from: /opt/local/lib/ruby2.1/gems/2.1.0/gems/rugged-0.24.6.1/lib/rugged/rugged.bundle`
    Expected in: flat namespace

dyld: Symbol not found: _iconv_open
Referenced from: /opt/local/lib/ruby2.1/gems/2.1.0/gems/rugged-0.24.6.1/lib/rugged/rugged.bundle`
Expected in: flat namespace

fish: 'gollum --adapter rugged' terminated by signal SIGABRT (Abort)

thanks.

Grep broken in files containing many unicode characters

Just saw that search always returns 0 matches on files containing many (e.g.) Chinese characters. It's breaking the search loop here . The rugged docs say:

The heuristic used to guess if a file is binary is taken from core git: Searching for NUL bytes and looking for a reasonable ratio of printable to non-printable characters among the first 4000 bytes.

So the unicode characters are likely causing the ratio to be beyond what is deemed "reasonable". We have imposed the restriction on binary files to improve search speed, but it looks like we'll have to disable that for rugged.

Handle encoding uniformly

As per #19, we need to think about a way to handle the following encoding statements uniformly:

$ grep -r "force_encoding" lib/
lib//rugged_adapter/git_layer_rugged.rb:          files << [patch.delta.new_file[:path].force_encoding("UTF-8"), new_deletions, new_additions, patch.changes] # Rugged seems to generate the stat diffs in the other direciton than grit does by default, so switch the order of additions and deletions.
lib//rugged_adapter/git_layer_rugged.rb:            next unless line.force_encoding("UTF-8").match(/#{Regexp.escape(query)}/i)
lib//rugged_adapter/git_layer_rugged.rb:        patches.map  {|patch| OpenStruct.new(:diff => patch.to_s.split("\n")[2..-1].join("\n").force_encoding("UTF-8"))}.reverse # First remove two superfluous lines. Rugged seems to order the diffs differently than Grit, so reverse.

Search is broken if there are images in repo

Hi.

If there's an image in the repository, any research will result in an error "Invalid bytes in UTF-8".

This is caused because the search tries to encode line of files in utf-8 before trying to match a regexp, but as image are binary files, they can not be encoded so it throws an error.

It's line 170 in git_layer_rugged.rb

page.raw_data not get converted to utf-8

After switching to rugged adapter i started getting incompatible character encodings: ASCII-8BIT and UTF-8 errors and found that page.raw_data is returned in ASCII-8BIT encoding (was utf-8 using grit). I guess this should be converted inside adapter.

Please release 2.0.1, relaxing rugged dependency.

Gollum is unusable on Ruby 3.2 because Rugged 1.1 has a compilation error.
A couple simple releases are needed to keep the dependency chain building properly.

Please release a 2.0.1 upgrade based on master, as-is. This includes:
#56

Once this is done, gollum-lib needs a 5.x release (either 5.2.3 or 5.3)
making a change to the gollum-rugged_adapter dependency here:
https://github.com/gollum/gollum-lib/blob/master/gollum-lib.gemspec

Please help make the ruby 3.2 upgrade experience amazing for us all!

UTF8 directory name

Dockerfile:

FROM ruby
RUN apt-get -y update && apt-get -y install libicu-dev cmake
RUN gem install gollum
RUN gem install github-markdown org-ruby gollum-rugged_adapter 
VOLUME /wiki
WORKDIR /wiki
CMD ["gollum", "--port", "80", "--adapter", "rugged", "--allow-uploads", "page"]
EXPOSE 80

when the directory name has UTF8 character,gollum has error:

http://192.168.2.188:4567/create/%E6%95%99%E7%A8%8B/44444 -> /javascript/editor/langs/markdown.js?_=1484796691146
[2017-01-19 11:32:30] ERROR URI::InvalidURIError: URI must be ascii only "http://192.168.2.188:4567/\u6559\u7A0B/44444"
        /usr/local/lib/ruby/2.4.0/uri/rfc3986_parser.rb:21:in `split'
        /usr/local/lib/ruby/2.4.0/uri/rfc3986_parser.rb:73:in `parse'
        /usr/local/lib/ruby/2.4.0/uri/rfc3986_parser.rb:117:in `convert_to_uri'
        /usr/local/lib/ruby/2.4.0/uri/generic.rb:1099:in `merge'
        /usr/local/lib/ruby/2.4.0/webrick/httpresponse.rb:277:in `setup_header'
        /usr/local/bundle/gems/rack-1.6.5/lib/rack/handler/webrick.rb:16:in `setup_header'
        /usr/local/lib/ruby/2.4.0/webrick/httpresponse.rb:207:in `send_response'
        /usr/local/lib/ruby/2.4.0/webrick/httpserver.rb:112:in `run'
        /usr/local/lib/ruby/2.4.0/webrick/server.rb:290:in `block in start_thread'
192.168.2.189 - - [19/Jan/2017:11:32:30 UTC] "POST /create HTTP/1.1" 303 0
http://192.168.2.188:4567/create/%E6%95%99%E7%A8%8B/44444 -> /create
192.168.2.189 - - [19/Jan/2017:11:32:33 UTC] "POST /create HTTP/1.1" 200 1547
http://192.168.2.188:4567/create/%E6%95%99%E7%A8%8B/44444 -> /create

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.