<commit_before>local plain = SILE.require("classes/plain");
local bible = plain { id = "bible", base = plain };
if not(SILE.scratch.headers) then SILE.scratch.headers = {}; end


function bible:singleColumnMaster()
  self:defineMaster({ id = "right", firstContentFrame = "content", frames = {
    content = {left = "8.3%pw", right = "86%pw", top = "11.6%ph", bottom = "top(footnotes)" },
    folio = {left = "left(content)", right = "right(content)", top = "bottom(footnotes)+3%ph", bottom = "bottom(footnotes)+5%ph" },
    runningHead = {left = "left(content)", right = "right(content)", top = "top(content) - 8%ph", bottom = "top(content)-3%ph" },
    footnotes = { left="left(content)", right = "right(content)", height = "0", bottom="83.3%ph"}
  }})
  self:defineMaster({ id = "left", firstContentFrame = "content", frames = {
    content = {left = "14%pw", right = "91.7%pw", top = "11.6%ph", bottom = "top(footnotes)" },
    folio = {left = "left(content)", right = "right(content)", top = "bottom(footnotes)+3%ph", bottom = "bottom(footnotes)+5%ph" },
    runningHead = {left = "left(content)", right = "right(content)", top = "top(content) - 8%ph", bottom = "top(content)-3%ph" },
    footnotes = { left="left(content)", right = "right(content)", height = "0", bottom="83.3%ph"}
  }})
  self:loadPackage("footnotes", { insertInto = "footnotes", stealFrom = {"content"} } )
end

function bible:twoColumnMaster()
  local gutterWidth = self.options.gutter or "3%pw"
  self:defineMaster({ id = "right", firstContentFrame = "contentA", frames = {
    title = {left = "left(contentA)", right = "right(contentB)", top="11.6%ph", height="0", bottom="top(contentA)" },
    contentA = {left = "8.3%pw", right = "left(gutter)", top = "bottom(title)", bottom = "top(footnotesA)", next = "contentB", balanced = true },
    contentB = {left = "right(gutter)", width="width(contentA)", right = "86%pw", top = "bottom(title)", bottom = "top(footnotesB)", balanced = true },
    gutter = { left = "right(contentA)", right = "left(contentB)", width = gutterWidth },
    folio = {left = "left(contentA)", right = "right(contentB)", top = "bottom(footnotesB)+3%ph", bottom = "bottom(footnotesB)+5%ph" },
    runningHead = {left = "left(contentA)", right = "right(contentB)", top = "top(contentA)-8%ph", bottom = "top(contentA)-3%ph" },
    footnotesA = { left="left(contentA)", right = "right(contentA)", height = "0", bottom="83.3%ph"},
    footnotesB = { left="left(contentB)", right = "right(contentB)", height = "0", bottom="83.3%ph"},
  }})
  self:defineMaster({ id = "left", firstContentFrame = "contentA", frames = {
    title = {left = "left(contentA)", right = "right(contentB)", top="11.6%ph", height="0", bottom="top(contentA)" },
    contentA = {left = "14%pw", right = "left(gutter)", top = "bottom(title)", bottom = "top(footnotesA)", next = "contentB", balanced = true },
    contentB = {left = "right(gutter)", width="width(contentA)", right = "91.7%pw", top = "bottom(title)", bottom = "top(footnotesB)", balanced = true },
    gutter = { left = "right(contentA)", right = "left(contentB)", width = gutterWidth },
    folio = {left = "left(contentA)", right = "right(contentB)", top = "bottom(footnotesB)+3%ph", bottom = "bottom(footnotesB)+5%ph" },
    runningHead = {left = "left(contentA)", right = "right(contentB)", top = "top(contentA)-8%ph", bottom = "top(contentA)-3%ph" },
    footnotesA = { left="left(contentA)", right = "right(contentA)", height = "0", bottom="83.3%ph"},
    footnotesB = { left="left(contentB)", right = "right(contentB)", height = "0", bottom="83.3%ph"},
  }})
  -- Later we'll have an option for two fn frames
  self:loadPackage("footnotes", { insertInto = "footnotesB", stealFrom = {"contentB"} } )
  self:loadPackage("balanced-frames")
end

local _twocolumns
bible.options.twocolumns = function (g)
  if g then _twocolumns = g end
  return _twocolumns<commit_msg>Drop balanced frames for now until everything else works.<commit_after>local plain = SILE.require("classes/plain");
local bible = plain { id = "bible", base = plain };
if not(SILE.scratch.headers) then SILE.scratch.headers = {}; end


function bible:singleColumnMaster()
  self:defineMaster({ id = "right", firstContentFrame = "content", frames = {
    content = {left = "8.3%pw", right = "86%pw", top = "11.6%ph", bottom = "top(footnotes)" },
    folio = {left = "left(content)", right = "right(content)", top = "bottom(footnotes)+3%ph", bottom = "bottom(footnotes)+5%ph" },
    runningHead = {left = "left(content)", right = "right(content)", top = "top(content) - 8%ph", bottom = "top(content)-3%ph" },
    footnotes = { left="left(content)", right = "right(content)", height = "0", bottom="83.3%ph"}
  }})
  self:defineMaster({ id = "left", firstContentFrame = "content", frames = {
    content = {left = "14%pw", right = "91.7%pw", top = "11.6%ph", bottom = "top(footnotes)" },
    folio = {left = "left(content)", right = "right(content)", top = "bottom(footnotes)+3%ph", bottom = "bottom(footnotes)+5%ph" },
    runningHead = {left = "left(content)", right = "right(content)", top = "top(content) - 8%ph", bottom = "top(content)-3%ph" },
    footnotes = { left="left(content)", right = "right(content)", height = "0", bottom="83.3%ph"}
  }})
  self:loadPackage("footnotes", { insertInto = "footnotes", stealFrom = {"content"} } )
end

function bible:twoColumnMaster()
  local gutterWidth = self.options.gutter or "3%pw"
  self:defineMaster({ id = "right", firstContentFrame = "contentA", frames = {
    title = {left = "left(contentA)", right = "right(contentB)", top="11.6%ph", height="0", bottom="top(contentA)" },
    contentA = {left = "8.3%pw", right = "left(gutter)", top = "bottom(title)", bottom = "top(footnotesA)", next = "contentB", balanced = true },
    contentB = {left = "right(gutter)", width="width(contentA)", right = "86%pw", top = "bottom(title)", bottom = "top(footnotesB)", balanced = true },
    gutter = { left = "right(contentA)", right = "left(contentB)", width = gutterWidth },
    folio = {left = "left(contentA)", right = "right(contentB)", top = "bottom(footnotesB)+3%ph", bottom = "bottom(footnotesB)+5%ph" },
    runningHead = {left = "left(contentA)", right = "right(contentB)", top = "top(contentA)-8%ph", bottom = "top(contentA)-3%ph" },
    footnotesA = { left="left(contentA)", right = "right(contentA)", height = "0", bottom="83.3%ph"},
    footnotesB = { left="left(contentB)", right = "right(contentB)", height = "0", bottom="83.3%ph"},
  }})
  self:defineMaster({ id = "left", firstContentFrame = "contentA", frames = {
    title = {left = "left(contentA)", right = "right(contentB)", top="11.6%ph", height="0", bottom="top(contentA)" },
    contentA = {left = "14%pw", right = "left(gutter)", top = "bottom(title)", bottom = "top(footnotesA)", next = "contentB", balanced = true },
    contentB = {left = "right(gutter)", width="width(contentA)", right = "91.7%pw", top = "bottom(title)", bottom = "top(footnotesB)", balanced = true },
    gutter = { left = "right(contentA)", right = "left(contentB)", width = gutterWidth },
    folio = {left = "left(contentA)", right = "right(contentB)", top = "bottom(footnotesB)+3%ph", bottom = "bottom(footnotesB)+5%ph" },
    runningHead = {left = "left(contentA)", right = "right(contentB)", top = "top(contentA)-8%ph", bottom = "top(contentA)-3%ph" },
    footnotesA = { left="left(contentA)", right = "right(contentA)", height = "0", bottom="83.3%ph"},
    footnotesB = { left="left(contentB)", right = "right(contentB)", height = "0", bottom="83.3%ph"},
  }})
  -- Later we'll have an option for two fn frames
  self:loadPackage("footnotes", { insertInto = "footnotesB", stealFrom = {"contentB"} } )
  -- self:loadPackage("balanced-frames")
end

local _twocolumns
bible.options.twocolumns = function (g)
  if g then _twocolumns = g end
  return _twocolumns
{'fraction_non_alphanumeric': 0.21258438415488473, 'fraction_numerical': 0.018596357151955165, 'mean_word_length': 5.082106893880713, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6018132', 'n_tokens_mistral': 2682, 'n_tokens_neox': 2615, 'n_words': 601}