Module: PBSimply::ACCS
- Included in:
- PBSimply
- Defined in:
- lib/pbsimply/accs.rb
Overview
ACCS namespace.
Constant Summary collapse
- DEFINITIONS =
{}
- INDEX =
Built-in Accs index eRuby string.
"<%= YAML.dump(\n {\n \"title\" => @index[\"title\"],\n \"date\" => @index[\"date\"],\n \"author\" => @index[\"author\"]\n }\n) %>\n---\n\n<%\narticles = Hash.new {|h,k| h[k] = Array.new }\n\nif @config[\"accs_across_category\"]\n @indexes.each {|filename, index| articles[\"default\"].push index }\nelse\n @indexes.each {|filename, index| articles[(index[\"category\"] || \"default\")].push index }\nend\n\n%>\n\n% articles.keys.sort.each do |catname|\n% cat = articles[catname]\n\n% unless articles.length == 1\n# <%= catname %>\n% end\n\n<%\n sort_method = case @config[\"accs_sort_by\"]\n when \"title\"\n lambda {|i| [i[\"title\"].to_s, i[\"date\"]] }\n when \"name\"\n lambda {|i| [i[\"_filename\"].to_s, i[\"title\"].to_s, i[\"date\"]] }\n when \"serial\"\n lambda {|i| [i[\"serial\"].to_s, i[\"date\"], i[\"_filename\"].to_s] }\n else\n lambda {|i| [i[\"date\"], i[\"title\"].to_s, i[\"_last_update\"].to_i] }\n end\n\n list = if @config[\"accs_order\"] == \"desc\"\n cat.sort_by(&sort_method).reverse\n else\n cat.sort_by(&sort_method)\n end\n\n list.each do |i|\n%>* [<%= i[\"title\"] %>](<%= i[\"page_url\"] %>)\n<% end %>\n\n% end\n"
Instance Method Summary collapse
-
#accsmode ⇒ Object
Turn on ACCS processing mode.
-
#process_accs ⇒ Object
letsaccs.
-
#single_accs(filename, frontmatter) ⇒ Object
letsaccs in single page.
Instance Method Details
#accsmode ⇒ Object
Turn on ACCS processing mode.
96 97 98 99 100 |
# File 'lib/pbsimply/accs.rb', line 96 def accsmode @accs_processing = true @singlemode = true @skip_index = true end |
#process_accs ⇒ Object
letsaccs
This method called on the assumption that processed all documents and run as directory mode.
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/pbsimply/accs.rb', line 64 def process_accs STDERR.puts "Processing ACCS index..." if File.exist?(File.join(@dir, ".accsindex.erb")) erbtemplate = File.read(File.join(@dir, ".accsindex.erb")) elsif File.exist?(".accsindex.erb") erbtemplate = File.read(".accsindex.erb") else erbtemplate = INDEX end # Get infomation @accs_index = Psych.unsafe_load(File.read([@dir, ".accs.yaml"].join("/"))) @accs_index["title"] ||= (@config["accs_index_title"] || "Index") @accs_index["date"] ||= Time.now.strftime("%Y-%m-%d") @accs_index["pagetype"] = "accs_index" @index = @frontmatter.merge @accs_index @hooks.accs.run({index: @index, indexes: @indexes}) doc = ERB.new(erbtemplate, trim_mode: "%<>").result(binding) File.open(File.join(@dir, ".index.md"), "w") do |f| f.write doc end accsmode @dir = File.join(@dir, ".index.md") main end |
#single_accs(filename, frontmatter) ⇒ Object
letsaccs in single page.
103 104 105 106 107 108 109 |
# File 'lib/pbsimply/accs.rb', line 103 def single_accs filename, frontmatter unless @skip_index @indexes[filename] = frontmatter @db.dump(@indexes) end process_accs end |