diff --git a/textlayout/resources/gap-analysis-github.js b/textlayout/resources/gap-analysis-github.js index ef55a7b..072141c 100644 --- a/textlayout/resources/gap-analysis-github.js +++ b/textlayout/resources/gap-analysis-github.js @@ -1,204 +1,199 @@ -var owner = 'w3c'; +var owner = 'w3c' -var sections = {}; -var debug = false; +var sections = {} +var debug = false -var issues = []; -var maxpages = 5; +var issues = [] +var maxpages = 5 -var totals=0; -var counter=maxpages; +var totals=0 +var counter=maxpages function getAllData (repo, doc) { - let arr = []; - for (let p=1; p < maxpages+1; p++) { - arr.push(fetch('https://api.github.com/repos/w3c/'+repo+'/issues?per_page=100&page='+p)); - } - - return Promise.all(arr) - .then(function (responses) { - return Promise.all(responses.map(function(res) { - return res.json(); - })); - }).then(function(data) { - issues = issues.concat(data[0]); - totals = issues.length; - // group issues by label, adding to the labels array - for (var i=0; i\n' - out += '

#'+theData[i].number+' '+theData[i].title+'

\n' - out += '

' - - var body = theData[i].body - - // make GH images into img element - function convertToImg(str, p1, p2, s) { - return ''+p1+'' - } - var test = /!\[([^\]]+)\]\(([^\)]+)\)/g - body = body.replace(test, convertToImg) - - // create html links - function convert(str, p1, p2, s) { - return ''+p1+'' - } - var test = /\[([^\]]+)\]\(([^\)]+)\)/g - body = body.replace(test, convert) - - // create convert code segments links - function convertcode(str, p1, s) { - p1 = p1.replace(//g,'>') - return ''+p1+'' - } - test = /`([^`]+)`/g - body = body.replace(test, convertcode) - - // convert unordered lists to markup - function convertlists(str, initial, startMarkup, endMarkup) { - var lines = body.split('\n') - inList = false - for (let l=0;l' - } - else if (lines[l].startsWith(initial)) { - inList = true - lines[l] = startMarkup+'

  • '+lines[l].substring(1)+'
  • ' - } - else if (! lines[l].startsWith(initial) && inList) { - inList = false - lines[l] = endMarkup+lines[l] - } - else { - inList = false - } - } - return lines.join('\n') - } - body = convertlists(body, '-', '') - body = body.replace(/\n\d+\./g, '\n§') - body = convertlists(body, '§', '
      ', '
    ') - - // convert quoted text to blockquote - function convertquotes(str, initial) { - var lines = body.split('\n') - inList = false - for (let l=0;l' - } - else if (lines[l].startsWith(initial)) { - inList = true - lines[l] = '
    '+lines[l].substring(1)+'
    ' - } - else if (! lines[l].startsWith(initial) && inList) { - inList = false - lines[l] = '
    '+lines[l] - } - else { - inList = false - } - } - return lines.join('\n') - } - body = convertquotes(body, '>') - - // remove blank p markup - test = /

    <\/p>/g - body = body.replace(test,'') - - // split into paragraphs - out += body.replace(/\r\n\r\n/g,'

    ') - out += '

    \n' - out += '\n' - } - } - document.getElementById('insert-'+sectionId).innerHTML = out - - // figure out priority for section - var priority = document.getElementById(sectionId).className - if (labelSet.has('p:basic')) priority = 'basic' - else if (labelSet.has('p:advanced')) priority = 'advanced' - else if (labelSet.has('p:broken')) priority = 'broken' - else if (labelSet.has('p:ok')) priority = 'ok' - if (priority !== '') document.getElementById(sectionId).className = priority - window.summary[sectionId] = priority -} + if (debug) console.log('sectionID',sectionId, 'doc',doc, 'repo',repo) + var labelSet = new Set([]) + var out = '' + for (let i=0;i\n' + out += '

    #'+theData[i].number+' '+theData[i].title+'

    \n' + out += '

    ' + + var body = theData[i].body + + // make GH images into img element + function convertToImg(str, p1, p2, s) { + return ''+p1+'' + } + var test = /!\[([^\]]+)\]\(([^\)]+)\)/g + body = body.replace(test, convertToImg) + + // create html links + function convert(str, p1, p2, s) { + return ''+p1+'' + } + var test = /\[([^\]]+)\]\(([^\)]+)\)/g + body = body.replace(test, convert) + + // create convert code segments links + function convertcode(str, p1, s) { + p1 = p1.replace(//g,'>') + return ''+p1+'' + } + test = /`([^`]+)`/g + body = body.replace(test, convertcode) + + // convert unordered lists to markup + function convertlists(str, initial, startMarkup, endMarkup) { + var lines = body.split('\n') + inList = false + for (let l=0;l' + else if (lines[l].startsWith(initial)) { + inList = true + lines[l] = startMarkup+'

  • '+lines[l].substring(1)+'
  • ' + } + else if (! lines[l].startsWith(initial) && inList) { + inList = false + lines[l] = endMarkup+lines[l] + } + else { + inList = false + } + } + return lines.join('\n') + } + + body = convertlists(body, '-', '
      ', '
    ') + body = body.replace(/\n\d+\./g, '\n§') + body = convertlists(body, '§', '
      ', '
    ') + + // convert quoted text to blockquote + function convertquotes(str, initial) { + var lines = body.split('\n') + inList = false + for (let l=0;l' + else if (lines[l].startsWith(initial)) { + inList = true + lines[l] = '
    '+lines[l].substring(1)+'
    ' + } + else if (! lines[l].startsWith(initial) && inList) { + inList = false + lines[l] = '
    '+lines[l] + } + else inList = false + } + return lines.join('\n') + } + + body = convertquotes(body, '>') + + // remove blank p markup + test = /

    <\/p>/g + body = body.replace(test,'') + + // split into paragraphs + out += body.replace(/\r\n\r\n/g,'

    ') + out += '

    \n' + out += '\n' + } + } + + document.getElementById('insert-'+sectionId).innerHTML = out + + // figure out priority for section + var priority = document.getElementById(sectionId).className + if (labelSet.has('p:basic')) priority = 'basic' + else if (labelSet.has('p:advanced')) priority = 'advanced' + else if (labelSet.has('p:broken')) priority = 'broken' + else if (labelSet.has('p:ok')) priority = 'ok' + if (priority !== '') document.getElementById(sectionId).className = priority + window.summary[sectionId] = priority + } @@ -210,88 +205,88 @@ window.summary = {} function setUpSummary () { - summary.vertical_text = document.getElementById('vertical_text').className - summary.bidi_text = document.getElementById('bidi_text').className + summary.vertical_text = document.getElementById('vertical_text').className + summary.bidi_text = document.getElementById('bidi_text').className - summary.charset = document.getElementById('charset').className - summary.fonts = document.getElementById('fonts').className - summary.font_style = document.getElementById('font_style').className - summary.glyphs = document.getElementById('glyphs').className - summary.cursive = document.getElementById('cursive').className - summary.transforms = document.getElementById('transforms').className - summary.baselines = document.getElementById('baselines').className - summary.segmentation = document.getElementById('segmentation').className - summary.punctuation_etc = document.getElementById('punctuation_etc').className - summary.text_decoration = document.getElementById('text_decoration').className - summary.quotations = document.getElementById('quotations').className - summary.inline_notes = document.getElementById('inline_notes').className - summary.data_formats = document.getElementById('data_formats').className + summary.charset = document.getElementById('charset').className + summary.fonts = document.getElementById('fonts').className + summary.font_style = document.getElementById('font_style').className + summary.glyphs = document.getElementById('glyphs').className + summary.cursive = document.getElementById('cursive').className + summary.transforms = document.getElementById('transforms').className + summary.baselines = document.getElementById('baselines').className + summary.segmentation = document.getElementById('segmentation').className + summary.punctuation_etc = document.getElementById('punctuation_etc').className + summary.text_decoration = document.getElementById('text_decoration').className + summary.quotations = document.getElementById('quotations').className + summary.inline_notes = document.getElementById('inline_notes').className + summary.data_formats = document.getElementById('data_formats').className - summary.line_breaking = document.getElementById('line_breaking').className - summary.hyphenation = document.getElementById('hyphenation').className - summary.justification = document.getElementById('justification').className - summary.spacing = document.getElementById('spacing').className - summary.lists = document.getElementById('lists').className - summary.initials = document.getElementById('initials').className + summary.line_breaking = document.getElementById('line_breaking').className + summary.hyphenation = document.getElementById('hyphenation').className + summary.justification = document.getElementById('justification').className + summary.spacing = document.getElementById('spacing').className + summary.lists = document.getElementById('lists').className + summary.initials = document.getElementById('initials').className - summary.page_layout = document.getElementById('page_layout').className - summary.footnotes_etc = document.getElementById('footnotes_etc').className - summary.headers_footers = document.getElementById('headers_footers').className - summary.interaction = document.getElementById('interaction').className + summary.page_layout = document.getElementById('page_layout').className + summary.footnotes_etc = document.getElementById('footnotes_etc').className + summary.headers_footers = document.getElementById('headers_footers').className + summary.interaction = document.getElementById('interaction').className - if (debug) console.log(summary) -} + if (debug) console.log(summary) + } function printSummary (tentative) { - // creates the summary at the bottom of the page that is copy/pasted into the language matrix data - // tentative is false for work in progress in a group, true for pages done by individuals - - var out = '' - for (let i=0;i