Skip to main content
We’ve updated our Terms of Service. A new AI Addendum clarifies how Stack Overflow utilizes AI interactions.
deleted 1305 characters in body
Source Link
wyc
  • 555
  • 1
  • 3
  • 9

UPDATE (based on Kerri's answer):

#!/usr/bin/env node

'use strict'

var fs = require('fs')
  , filename = process.argv[2]

if (process.argv.length < 3) {
  console.log('Usage: node ' + process.argv[1] + ' FILENAME')
  process.exit(1)
}

function massReplace(text, replacementArray) {
  let results = text
  for (let [regex, replacement] of replacementArray) {
    results = results.replace(regex, replacement)
  }
  return results
}

function transformHeadings(text, orig) {
  if (orig.match(/^#{1,6}\s/)) {
    return massReplace(text,
     [ [/^###### (.*)/gm, '<h6>$1</h6>'],
       [/^##### (.*)/gm,  '<h5>$1</h5>'],
       [/^#### (.*)/gm,   '<h4>$1</h4>'],
       [/^### (.*)/gm,    '<h3>$1</h3>'],
       [/^## (.*)/gm,     '<h2>$1</h2>'],
       [/^# (.*)/gm,      '<h1>$1</h1>'] ]
    )
  }
}

fs.readFile(filename, 'utf8', function(err, data) {
  if (err) throw err

  data = data.split(/\n\n|^>(?!.)/gm)
  var tree = data.slice()

  console.log(transformHeadings(data, tree))
})

Content in data:

# Title

# Title

## Title 2

Paragraph

UPDATE (based on Kerri's answer):

#!/usr/bin/env node

'use strict'

var fs = require('fs')
  , filename = process.argv[2]

if (process.argv.length < 3) {
  console.log('Usage: node ' + process.argv[1] + ' FILENAME')
  process.exit(1)
}

function massReplace(text, replacementArray) {
  let results = text
  for (let [regex, replacement] of replacementArray) {
    results = results.replace(regex, replacement)
  }
  return results
}

function transformHeadings(text, orig) {
  if (orig.match(/^#{1,6}\s/)) {
    return massReplace(text,
     [ [/^###### (.*)/gm, '<h6>$1</h6>'],
       [/^##### (.*)/gm,  '<h5>$1</h5>'],
       [/^#### (.*)/gm,   '<h4>$1</h4>'],
       [/^### (.*)/gm,    '<h3>$1</h3>'],
       [/^## (.*)/gm,     '<h2>$1</h2>'],
       [/^# (.*)/gm,      '<h1>$1</h1>'] ]
    )
  }
}

fs.readFile(filename, 'utf8', function(err, data) {
  if (err) throw err

  data = data.split(/\n\n|^>(?!.)/gm)
  var tree = data.slice()

  console.log(transformHeadings(data, tree))
})

Content in data:

# Title

# Title

## Title 2

Paragraph
added 99 characters in body
Source Link
wyc
  • 555
  • 1
  • 3
  • 9

Content in data:

# Title

# Title

## Title 2

Paragraph

Content in data:

# Title

# Title

## Title 2

Paragraph
added 1205 characters in body
Source Link
wyc
  • 555
  • 1
  • 3
  • 9

UPDATE (based on Kerri's answer):

#!/usr/bin/env node

'use strict'

var fs = require('fs')
  , filename = process.argv[2]

if (process.argv.length < 3) {
  console.log('Usage: node ' + process.argv[1] + ' FILENAME')
  process.exit(1)
}

function massReplace(text, replacementArray) {
  let results = text
  for (let [regex, replacement] of replacementArray) {
    results = results.replace(regex, replacement)
  }
  return results
}

function transformHeadings(text, orig) {
  if (orig.match(/^#{1,6}\s/)) {
    return massReplace(text,
     [ [/^###### (.*)/gm, '<h6>$1</h6>'],
       [/^##### (.*)/gm,  '<h5>$1</h5>'],
       [/^#### (.*)/gm,   '<h4>$1</h4>'],
       [/^### (.*)/gm,    '<h3>$1</h3>'],
       [/^## (.*)/gm,     '<h2>$1</h2>'],
       [/^# (.*)/gm,      '<h1>$1</h1>'] ]
    )
  }
}

fs.readFile(filename, 'utf8', function(err, data) {
  if (err) throw err

  data = data.split(/\n\n|^>(?!.)/gm)
  var tree = data.slice()

  console.log(transformHeadings(data, tree))
})

UPDATE (based on Kerri's answer):

#!/usr/bin/env node

'use strict'

var fs = require('fs')
  , filename = process.argv[2]

if (process.argv.length < 3) {
  console.log('Usage: node ' + process.argv[1] + ' FILENAME')
  process.exit(1)
}

function massReplace(text, replacementArray) {
  let results = text
  for (let [regex, replacement] of replacementArray) {
    results = results.replace(regex, replacement)
  }
  return results
}

function transformHeadings(text, orig) {
  if (orig.match(/^#{1,6}\s/)) {
    return massReplace(text,
     [ [/^###### (.*)/gm, '<h6>$1</h6>'],
       [/^##### (.*)/gm,  '<h5>$1</h5>'],
       [/^#### (.*)/gm,   '<h4>$1</h4>'],
       [/^### (.*)/gm,    '<h3>$1</h3>'],
       [/^## (.*)/gm,     '<h2>$1</h2>'],
       [/^# (.*)/gm,      '<h1>$1</h1>'] ]
    )
  }
}

fs.readFile(filename, 'utf8', function(err, data) {
  if (err) throw err

  data = data.split(/\n\n|^>(?!.)/gm)
  var tree = data.slice()

  console.log(transformHeadings(data, tree))
})
Made a reasonable guess at a useful title
Link
200_success
  • 145.7k
  • 22
  • 191
  • 481
Loading
added 683 characters in body; edited title
Source Link
wyc
  • 555
  • 1
  • 3
  • 9
Loading
Source Link
wyc
  • 555
  • 1
  • 3
  • 9
Loading