Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e87142ef19 | |||
| aa823b5a2d | |||
| 9012dee888 | |||
| 81d5f1a8bb |
+1
-1
@@ -2,7 +2,7 @@ rvm:
|
||||
- 2.4.0
|
||||
- 2.6.0
|
||||
- 3.0.0
|
||||
- jruby-9.2.9.0
|
||||
- jruby-9.2.18.0
|
||||
jdk:
|
||||
- oraclejdk9
|
||||
before_install:
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
# 5.2.3 2021-04-18
|
||||
|
||||
* Fix bug preventing page titles from being displayed
|
||||
|
||||
# 5.2.1 2021-02-25
|
||||
|
||||
* Fix include call to a missing asset (@benjaminwil). This caused slow first page loads on JRuby.
|
||||
|
||||
+2
-2
@@ -5,8 +5,8 @@ Gem::Specification.new do |s|
|
||||
s.required_ruby_version = '>= 1.9'
|
||||
|
||||
s.name = 'gollum'
|
||||
s.version = '5.2.2'
|
||||
s.date = '2021-03-27'
|
||||
s.version = '5.2.3'
|
||||
s.date = '2021-04-18'
|
||||
s.license = 'MIT'
|
||||
|
||||
s.summary = 'A simple, Git-powered wiki.'
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ require 'rhino' if RUBY_PLATFORM == 'java'
|
||||
require File.expand_path('../gollum/uri_encode_component', __FILE__)
|
||||
|
||||
module Gollum
|
||||
VERSION = '5.2.2'
|
||||
VERSION = '5.2.3'
|
||||
|
||||
def self.assets_path
|
||||
::File.expand_path('gollum/public', ::File.dirname(__FILE__))
|
||||
|
||||
+16
-13
@@ -1,4 +1,5 @@
|
||||
# ~*~ encoding: utf-8 ~*~
|
||||
# encoding: UTF-8
|
||||
|
||||
require 'cgi'
|
||||
require 'sinatra'
|
||||
require 'sinatra/namespace'
|
||||
@@ -40,7 +41,7 @@ Gollum::set_git_max_filesize(190 * 10**6)
|
||||
# See the wiki.rb file for more details on wiki options
|
||||
|
||||
module Precious
|
||||
|
||||
|
||||
# For use with the --base-path option.
|
||||
class MapGollum
|
||||
def initialize(base_path)
|
||||
@@ -63,12 +64,14 @@ module Precious
|
||||
@mg.call(env)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
class App < Sinatra::Base
|
||||
register Mustache::Sinatra
|
||||
register Sinatra::Namespace
|
||||
include Precious::Helpers
|
||||
|
||||
|
||||
Encoding.default_external = "UTF-8"
|
||||
|
||||
dir = File.dirname(File.expand_path(__FILE__))
|
||||
|
||||
set :sprockets, ::Precious::Assets.sprockets(dir)
|
||||
@@ -102,7 +105,7 @@ module Precious
|
||||
@critic_markup = settings.wiki_options[:critic_markup]
|
||||
@redirects_enabled = settings.wiki_options.fetch(:redirects_enabled, true)
|
||||
@per_page_uploads = settings.wiki_options[:per_page_uploads]
|
||||
|
||||
|
||||
@wiki_title = settings.wiki_options.fetch(:title, 'Gollum Wiki')
|
||||
|
||||
forbid unless @allow_editing || request.request_method == 'GET'
|
||||
@@ -120,7 +123,7 @@ module Precious
|
||||
@use_static_assets = settings.wiki_options.fetch(:static, settings.environment != :development)
|
||||
@static_assets_path = settings.wiki_options.fetch(:static_assets_path, ::File.join(File.dirname(__FILE__), 'public/assets'))
|
||||
@mathjax_path = ::File.join(File.dirname(__FILE__), 'public/gollum/javascript/MathJax')
|
||||
|
||||
|
||||
Sprockets::Helpers.configure do |config|
|
||||
config.environment = settings.sprockets
|
||||
config.environment.context_class.class_variable_set(:@@base_url, @base_url)
|
||||
@@ -219,7 +222,7 @@ module Precious
|
||||
|
||||
# AJAX calls only
|
||||
post '/upload_file' do
|
||||
|
||||
|
||||
wiki = wiki_new
|
||||
halt 405 unless wiki.allow_uploads
|
||||
|
||||
@@ -235,7 +238,7 @@ module Precious
|
||||
dir.sub!(/^#{wiki.base_path}/, '') if wiki.base_path
|
||||
# remove base_url and gollum/* subpath if necessary
|
||||
dir.sub!(/^\/gollum\/[-\w]+\//, '')
|
||||
# remove file extension
|
||||
# remove file extension
|
||||
dir.sub!(/#{::File.extname(dir)}$/, '')
|
||||
# revert escaped whitespaces
|
||||
dir.gsub!(/%20/, ' ')
|
||||
@@ -317,7 +320,7 @@ module Precious
|
||||
end
|
||||
|
||||
post '/edit/*' do
|
||||
etag = params[:etag]
|
||||
etag = params[:etag]
|
||||
path = "/#{clean_url(sanitize_empty_params(params[:path]))}"
|
||||
wiki = wiki_new
|
||||
page = wiki.page(::File.join(path, params[:page]))
|
||||
@@ -327,7 +330,7 @@ module Precious
|
||||
# Signal edit collision and return the page's most recent version
|
||||
halt 412, {etag: page.sha, text_data: page.text_data}.to_json
|
||||
end
|
||||
|
||||
|
||||
committer = Gollum::Committer.new(wiki, commit_message)
|
||||
commit = { :committer => committer }
|
||||
|
||||
@@ -348,7 +351,7 @@ module Precious
|
||||
commit[:message] = "Deleted #{filepath}"
|
||||
wiki.delete_file(filepath, commit)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
get '/create/*' do
|
||||
forbid unless @allow_editing
|
||||
@@ -625,7 +628,7 @@ module Precious
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def show_file(file)
|
||||
return unless file
|
||||
if file.on_disk?
|
||||
@@ -683,4 +686,4 @@ module Precious
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -16,6 +16,11 @@ module Precious
|
||||
DEFAULT_AUTHOR = 'you'
|
||||
@@to_xml = { :save_with => Nokogiri::XML::Node::SaveOptions::DEFAULT_XHTML ^ 1, :indent => 0, :encoding => 'UTF-8' }
|
||||
|
||||
def title
|
||||
h1 = @h1_title ? page_header_from_content(@content) : false
|
||||
h1 || @page.url_path_title # url_path_title is the metadata title if present, otherwise the filename-based title
|
||||
end
|
||||
|
||||
def page_header
|
||||
title
|
||||
end
|
||||
@@ -263,11 +268,6 @@ module Precious
|
||||
end
|
||||
result << "</tr>\n</table>\n"
|
||||
end
|
||||
|
||||
def title
|
||||
h1 = @h1_title ? page_header_from_content(@content) : false
|
||||
h1 || @page.url_path_title # url_path_title is the metadata title if present, otherwise the filename-based title
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
+25
-1
@@ -38,7 +38,31 @@ context "Precious::Views::Page" do
|
||||
assert_include @view.breadcrumb, "数学 📘"
|
||||
end
|
||||
|
||||
test "page header retains unicde and ASCII characters" do
|
||||
test 'page <title> is the page header from content, if present' do
|
||||
page_title = 'Page header from content'
|
||||
@wiki.write_page(page_title, :markdown, 'Contents', commit_details)
|
||||
|
||||
@view = Precious::Views::Page.new.tap do |view|
|
||||
view.instance_variable_set :@page, @wiki.page(page_title)
|
||||
view.instance_variable_set :@h1_title, true
|
||||
end
|
||||
|
||||
assert_equal @view.title, 'Page header from content'
|
||||
end
|
||||
|
||||
test 'page <title> is URL path title if no h1 present' do
|
||||
@wiki.write_page('dir/My path title', :markdown, 'Contents', commit_details)
|
||||
page = @wiki.page('dir/My path title')
|
||||
|
||||
@view = Precious::Views::Page.new.tap do |view|
|
||||
view.instance_variable_set :@page, page
|
||||
view.instance_variable_set :@h1_title, false
|
||||
end
|
||||
|
||||
assert_equal @view.title, 'My path title'
|
||||
end
|
||||
|
||||
test "page header retains unicode and ASCII characters" do
|
||||
title = "数学 📘"
|
||||
@wiki.write_page(title, :markdown, "How old is Bilbo?")
|
||||
page = @wiki.page(title)
|
||||
|
||||
Reference in New Issue
Block a user