|
- require 'gollum-lib'
-
-
- class WikiPage < ApplicationRecord
- WIKI_PATH = Rails.root.join('wiki').to_s
-
- belongs_to :tag, optional: true
- belongs_to :created_user, class_name: 'User', foreign_key: 'created_user_id'
- belongs_to :updated_user, class_name: 'User', foreign_key: 'updated_user_id'
-
- validates :title, presence: true, length: { maximum: 255 }, uniqueness: true
-
- def markdown
- wiki = Gollum::Wiki.new(WIKI_PATH)
- page = wiki.page(title)
- page&.raw_data
- end
-
- def markdown= content
- wiki = Gollum::Wiki.new(WIKI_PATH)
-
- page = wiki.page(title)
-
- commit_info = { message: "Update #{ title }",
- name: current_user.id,
- email: 'dummy@example.com' }
-
- if page
- page.update(content, commit: commit_info)
- else
- wiki.write_page(title, :markdown, content, commit_info)
- end
- end
- end
|