Compare commits

...

2 commits

Author SHA1 Message Date
393c757d65
Remove custom prologues and epilogues 2024-09-12 06:13:51 +04:00
0994541af9
tmp 2024-09-12 06:06:19 +04:00
7 changed files with 11 additions and 93 deletions

View file

@ -1,7 +1,3 @@
Gemtext prolofue
Annotation paragraph text Annotation paragraph text
@ -33,10 +29,6 @@ Chapter 2 paragraph text
Gemtext epilogue
## Related articles ## Related articles
=> ./foo-bar 1) 2024-09-12 Foo Bar => ./foo-bar 1) 2024-09-12 Foo Bar

View file

@ -1,6 +1,3 @@
<div>
HTTP prologue
</div>
<div class="nice-annotation"> <div class="nice-annotation">
<p> <p>
<span> <span>
@ -79,8 +76,7 @@ Chapter 2 paragraph text
</span> </span>
</p> </p>
<div> <div>
HTTP epilogue <hr/>
</div>
<h2>Related articles</h2> <h2>Related articles</h2>
<ol> <ol>
@ -101,3 +97,4 @@ September 12, 2024
(<a href="https://web.archive.org/arch/example.com">web.archive.org</a>) (<a href="https://web.archive.org/arch/example.com">web.archive.org</a>)
</li> </li>
</ol> </ol>
</div>

View file

@ -1,8 +1,3 @@
article.prologue do |custom|
custom.for :html, 'HTTP prologue'
custom.for :gemtext, 'Gemtext prolofue'
end
article.annotation do |annotation| article.annotation do |annotation|
annotation.paragraph do |paragraph| annotation.paragraph do |paragraph|
paragraph.text 'Annotation paragraph text' paragraph.text 'Annotation paragraph text'
@ -54,11 +49,6 @@ end
article.epilogue do |custom|
custom.for :html, 'HTTP epilogue'
custom.for :gemtext, 'Gemtext epilogue'
end
article.footnotes_category 'Related articles' do |category| article.footnotes_category 'Related articles' do |category|
category.footnote( category.footnote(
category: :self, category: :self,

View file

@ -21,7 +21,6 @@ require_relative 'repubmark/elems/article'
# Always inside Article # Always inside Article
require_relative 'repubmark/elems/annotation' require_relative 'repubmark/elems/annotation'
require_relative 'repubmark/elems/custom_logue'
require_relative 'repubmark/elems/footnotes_category' require_relative 'repubmark/elems/footnotes_category'
# Always inside Article, Chapter # Always inside Article, Chapter
require_relative 'repubmark/elems/chapter' require_relative 'repubmark/elems/chapter'

View file

@ -29,20 +29,18 @@ module Repubmark
def to_html def to_html
[ [
@prologue&.to_html,
@annotation&.to_html, @annotation&.to_html,
@chapter&.to_html, @chapter&.to_html,
@epilogue&.to_html, @footnotes_categories.any? ? "<div>\n<hr/>\n" : nil,
*@footnotes_categories.map(&:to_html), *@footnotes_categories.map(&:to_html),
@footnotes_categories.any? ? "</div>\n" : nil,
].compact.join.freeze ].compact.join.freeze
end end
def to_gemtext def to_gemtext
[ [
@prologue&.to_gemtext,
@annotation&.to_gemtext, @annotation&.to_gemtext,
@chapter&.to_gemtext, @chapter&.to_gemtext,
@epilogue&.to_gemtext,
*@footnotes_categories.map(&:to_gemtext), *@footnotes_categories.map(&:to_gemtext),
].compact.join("\n\n\n").freeze ].compact.join("\n\n\n").freeze
end end
@ -51,21 +49,9 @@ module Repubmark
# Builder methods # # Builder methods #
################### ###################
def prologue
raise 'Prologue already exists' if @prologue
raise 'Prologue after annotation' if @annotation
raise 'Prologue after chapters' if @chapters
raise 'Prologue after epilogue' if @epilogue
@prologue = CustomLogue.new self
yield @prologue
nil
end
def annotation def annotation
raise 'Annotation already exists' if @annotation raise 'Annotation already exists' if @annotation
raise 'Annotation after chapters' if @chapter raise 'Annotation after chapters' if @chapter
raise 'Annotation after epilogue' if @epilogue
@annotation = Annotation.new self @annotation = Annotation.new self
yield @annotation yield @annotation
@ -78,8 +64,6 @@ module Repubmark
end end
def method_missing(method_name, ...) def method_missing(method_name, ...)
raise 'Chapters after epilogue' if @epilogue
chapter = @chapter || Chapter.new(self) chapter = @chapter || Chapter.new(self)
if chapter.respond_to? method_name if chapter.respond_to? method_name
@chapter = chapter @chapter = chapter
@ -89,14 +73,6 @@ module Repubmark
end end
end end
def epilogue
raise 'Epilogue already exists' if @epilogue
@epilogue = CustomLogue.new self
yield @epilogue
nil
end
def footnotes_category(name) def footnotes_category(name)
footnotes_category = FootnotesCategory.new self, name footnotes_category = FootnotesCategory.new self, name
@footnotes_categories << footnotes_category @footnotes_categories << footnotes_category

View file

@ -1,40 +0,0 @@
# frozen_string_literal: true
module Repubmark
module Elems
class CustomLogue < Base
parents :Article
def initialize(parent)
super parent
@for = {}
end
#################
# Basic methods #
#################
def to_html
"<div>\n#{@for[:html].strip}\n</div>\n".freeze if @for[:html]
end
def to_gemtext
"#{@for[:gemtext].strip}\n".freeze if @for[:gemtext]
end
###################
# Builder methods #
###################
def for(format, str)
raise 'Invalid format' unless FORMATS.include? format
raise 'Format already configured' if @for.key? format
str = String(str).strip.freeze
return if str.empty?
@for[format] = str
end
end
end
end

View file

@ -39,11 +39,15 @@ module Repubmark
result += "</span>\n" result += "</span>\n"
end end
end end
result += %(<a href="#{url}">#{text}</a>\n) result += %(<a href="#{url}">#{text}</a>)
else else
result += %(#{text}\n) result += text
end
if descr
result += " &mdash; #{descr}\n"
else
result += "\n"
end end
result += " &mdash; #{descr}\n" if descr
if alt_urls&.any? if alt_urls&.any?
result += %[(#{ result += %[(#{
alt_urls.map do |alt_url| alt_urls.map do |alt_url|