Skip to content

Instantly share code, notes, and snippets.

@mikeal
Last active June 14, 2022 12:36
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mikeal/e87fae29728fea1761b7 to your computer and use it in GitHub Desktop.
Save mikeal/e87fae29728fea1761b7 to your computer and use it in GitHub Desktop.
The easiest way to get comments out of any code file... seriously?!?
var highlight = require('highlight.js')
var cheerio = require('cheerio')
var strip = ['/', '#', ' ', '*', "<", ">", '-', '\\']
function getComments (str) {
var html = highlight.highlightAuto(str).value
var $ = cheerio.load(html)
var lines = $('span.hljs-comment').map(function(i, el) {return $(this).text();}).get()
return lines.map(function (l) {
while (l.length && strip.indexOf(l[0]) !== -1) {
l = l.slice(1)
}
return l
})
}
module.exports = getComments
@ahmadnassri
Copy link

curious, did you investigate doing something on the engine level? surely that's more efficient and guaranteed to capture all sorts of comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment