让咕噜宝石与轨道4一起工作



我需要将wiki页面添加到我的应用程序中,我刚刚读到了关于Gollum宝石的文章。

由于我是Rails的新手,我不完全确定如何将单独安装的gem与工作项目集成在一起。

安装gem后的下一步是什么?如何从控制器访问它?我必须创建自己的控制器、视图和模型吗?

此外,我在哪里可以找到如何管理简单wiki页面的有效示例?git存储库缺少示例

https://github.com/gollum/gollum

@编辑

以这篇文章为例,被接受的答案中YourApplication是什么?

如何正确安装github';Rails应用程序中的gollum wiki?

在完成这些步骤后,我是否能够使用视图中的markdown语法,并将其转换为格式化的html?

最近,我尝试将咕噜安装到我的应用程序上。这是我的路线代码。rb

require 'gollum/app'
Rails.application.routes.draw do
    wiki_options = {:universal_toc => false}
    Precious::App.set(:gollum_path, Rails.root.join('wiki').to_s)
    Precious::App.set(:default_markup, :markdown) # set your favorite markup language
    Precious::App.set(:wiki_options, wiki_options)
    mount Precious::App, at:'gollum'
end

我可以使用http://localhost:3000/gollum/. 访问整个咕噜

我必须从根目录创建一个"wiki"目录,并在那里执行git init .,以使咕噜工作

$ mkdir wiki
$ cd wiki
$ git init .

我现在遇到的问题是,这是一个咕噜的简单安装,而我的应用程序中没有所有其他功能,如身份验证和布局。仍在研究如何反映哪个用户执行了哪个提交。

截至目前,这一切都在服务器git帐户下。顺便说一句,使用gollum-libgollum集成到我的应用程序似乎有点容易,但我必须重新实现前端功能。


编辑:所以我在路由中使用Devise来进行身份验证。

authenticate :user do
   mount Precious::App, at: 'gollum'
end

但这也带来了一个小问题,因为Devise试图路由到尚未经过身份验证的咕噜的根,所以它一直处于重定向_操作状态。我正在尝试修复它,以便它重定向到登录页面。在此之前,它仍然为我的用例服务,因为我不希望未经身份验证的用户访问wiki。

我还添加了一种方法,通过使用session["gollum.author"]传递信息来获得golum中每个提交的正确作者。我通过在配置自定义控制器之后从Devise创建会话控制器来做到这一点

class Users::SessionsController < Devise::SessionsController
    # POST /resource/sign_in
    def create
        super do |resource|
            session['gollum.author'] = { name: resource.name, email: resource.email }
        end
    end
    # DELETE /resource/sign_out
    def destroy
        super { session['gollum.author'] = nil }
    end
end

但由于某些原因,会话['ollum.author']Hash将密钥更改为字符串。所以我必须做最后一次破解才能获得带有符号密钥的会话['gollum.author']哈希。

我遵循这篇文章,创建了一个继承Previous::App的应用程序类,并在我的routes.rb 中进行更改

# config/routes.rb
require 'gollum/app'
class App < Precious::App
  before { assign_author }
  helpers do
    def assign_author
      session["gollum.author"].symbolize_keys!
    end
  end
end
Rails.application.routes.draw do
  wiki_options = {:universal_toc => false}
  App.set(:gollum_path, Rails.root.join('wiki').to_s)
  App.set(:default_markup, :markdown) 
  App.set(:wiki_options, wiki_options)
  authenticate :user do
    mount App, at:'gollum'
  end
end    

相关内容

  • 没有找到相关文章

最新更新