Branch: refs/heads/master
  Home:   https://github.com/jenkins-infra/jenkins.io
  Commit: 64e9d2cd436fd0e4be599682a6c9684346d25448
      
https://github.com/jenkins-infra/jenkins.io/commit/64e9d2cd436fd0e4be599682a6c9684346d25448
  Author: Gavin Mogan <git...@gavinmogan.com>
  Date:   2021-10-03 (Sun, 03 Oct 2021)

  Changed paths:
    A content/blog/2010/2010-02-02-welcome-to-continuous-blog.adoc
    R content/blog/2010/2010-02-02-welcome-to-continuous-blog.md
    A content/blog/2010/2010-02-08-breaking-hudson-1-345-released.adoc
    R content/blog/2010/2010-02-08-breaking-hudson-1-345-released.md
    A content/blog/2010/2010-02-08-incoming-more-translations.adoc
    R content/blog/2010/2010-02-08-incoming-more-translations.md
    A 
content/blog/2010/2010-02-10-keeping-your-configuration-and-data-in-subversion.adoc
    R 
content/blog/2010/2010-02-10-keeping-your-configuration-and-data-in-subversion.md
    A content/blog/2010/2010-02-11-spotlight-on-ita-software.adoc
    R content/blog/2010/2010-02-11-spotlight-on-ita-software.md
    A content/blog/2010/2010-02-12-this-week-in-plugins.adoc
    R content/blog/2010/2010-02-12-this-week-in-plugins.md
    A content/blog/2010/2010-02-14-thanks-for-the-help.adoc
    R content/blog/2010/2010-02-14-thanks-for-the-help.md
    A content/blog/2010/2010-02-15-hudson-1-346-released.adoc
    R content/blog/2010/2010-02-15-hudson-1-346-released.md
    A content/blog/2010/2010-02-16-performance-improvements-in-1-346.adoc
    R content/blog/2010/2010-02-16-performance-improvements-in-1-346.md
    A 
content/blog/2010/2010-02-17-getting-started-building-android-apps-with-hudson.adoc
    R 
content/blog/2010/2010-02-17-getting-started-building-android-apps-with-hudson.md
    A content/blog/2010/2010-02-18-spotlight-on-visfleet.adoc
    R content/blog/2010/2010-02-18-spotlight-on-visfleet.md
    A content/blog/2010/2010-02-19-this-week-in-plugins.adoc
    R content/blog/2010/2010-02-19-this-week-in-plugins.md
    A content/blog/2010/2010-02-22-hudson-1-347-released.adoc
    R content/blog/2010/2010-02-22-hudson-1-347-released.md
    A content/blog/2010/2010-02-23-would-you-run-hudson-in-the-cloud.adoc
    R content/blog/2010/2010-02-23-would-you-run-hudson-in-the-cloud.md
    A content/blog/2010/2010-02-24-hudson-at-pycon.adoc
    R content/blog/2010/2010-02-24-hudson-at-pycon.md
    A content/blog/2010/2010-02-25-links-for-2010-02-24.adoc
    R content/blog/2010/2010-02-25-links-for-2010-02-24.md
    A 
content/blog/2010/2010-02-25-sonatype-freeing-projects-from-java-nets-maven-repo.adoc
    R 
content/blog/2010/2010-02-25-sonatype-freeing-projects-from-java-nets-maven-repo.md
    A content/blog/2010/2010-02-25-spotlight-on-springsource.adoc
    R content/blog/2010/2010-02-25-spotlight-on-springsource.md
    A content/blog/2010/2010-02-26-links-for-2010-02-25.adoc
    R content/blog/2010/2010-02-26-links-for-2010-02-25.md
    A content/blog/2010/2010-02-26-this-week-in-plugins.adoc
    R content/blog/2010/2010-02-26-this-week-in-plugins.md
    A content/blog/2010/2010-03-01-hudson-1-348-released.adoc
    R content/blog/2010/2010-03-01-hudson-1-348-released.md
    A 
content/blog/2010/2010-03-01-learn-about-ci-with-hudson-sf-java-user-group.adoc
    R 
content/blog/2010/2010-03-01-learn-about-ci-with-hudson-sf-java-user-group.md
    A content/blog/2010/2010-03-02-call-for-testers-the-older-the-better.adoc
    R content/blog/2010/2010-03-02-call-for-testers-the-older-the-better.md
    A content/blog/2010/2010-03-02-what-new-features-do-you-want-to-see.adoc
    R content/blog/2010/2010-03-02-what-new-features-do-you-want-to-see.md
    A content/blog/2010/2010-03-05-links-for-2010-03-04.adoc
    R content/blog/2010/2010-03-05-links-for-2010-03-04.md
    A 
content/blog/2010/2010-03-05-tag-team-automating-massive-projects-with-hudson-and-artifactory.adoc
    R 
content/blog/2010/2010-03-05-tag-team-automating-massive-projects-with-hudson-and-artifactory.md
    A content/blog/2010/2010-03-07-this-week-in-plugins.adoc
    R content/blog/2010/2010-03-07-this-week-in-plugins.md
    A content/blog/2010/2010-03-08-hudson-1-349-released.adoc
    R content/blog/2010/2010-03-08-hudson-1-349-released.md
    A 
content/blog/2010/2010-03-08-meet-up-and-hack-alongside-kohsuke-and-co.adoc
    R content/blog/2010/2010-03-08-meet-up-and-hack-alongside-kohsuke-and-co.md
    A content/blog/2010/2010-03-09-one-month-of-continuous-blog.adoc
    R content/blog/2010/2010-03-09-one-month-of-continuous-blog.md
    A content/blog/2010/2010-03-12-links-for-2010-03-12.adoc
    R content/blog/2010/2010-03-12-links-for-2010-03-12.md
    A content/blog/2010/2010-03-12-want-some-hudson-stickers.adoc
    R content/blog/2010/2010-03-12-want-some-hudson-stickers.md
    A content/blog/2010/2010-03-13-this-week-in-plugins.adoc
    R content/blog/2010/2010-03-13-this-week-in-plugins.md
    A content/blog/2010/2010-03-14-would-you-like-to-ok.adoc
    R content/blog/2010/2010-03-14-would-you-like-to-ok.md
    A content/blog/2010/2010-03-15-breaking-hudson-1-351-released.adoc
    R content/blog/2010/2010-03-15-breaking-hudson-1-351-released.md
    A content/blog/2010/2010-03-15-hudson-1-350-released.adoc
    R content/blog/2010/2010-03-15-hudson-1-350-released.md
    A content/blog/2010/2010-03-16-slaves-building-robots.adoc
    R content/blog/2010/2010-03-16-slaves-building-robots.md
    A content/blog/2010/2010-03-19-get-excited-and-make-things.adoc
    R content/blog/2010/2010-03-19-get-excited-and-make-things.md
    A content/blog/2010/2010-03-19-links-for-2010-03-19.adoc
    R content/blog/2010/2010-03-19-links-for-2010-03-19.md
    A content/blog/2010/2010-03-19-recap-of-hackathon-part-one.adoc
    R content/blog/2010/2010-03-19-recap-of-hackathon-part-one.md
    A content/blog/2010/2010-03-22-hudson-1-352-released.adoc
    R content/blog/2010/2010-03-22-hudson-1-352-released.md
    A content/blog/2010/2010-03-23-links-for-2010-03-23.adoc
    R content/blog/2010/2010-03-23-links-for-2010-03-23.md
    A content/blog/2010/2010-03-27-this-week-in-plugins.adoc
    R content/blog/2010/2010-03-27-this-week-in-plugins.md
    A content/blog/2010/2010-03-30-resurgence-of-releng.adoc
    R content/blog/2010/2010-03-30-resurgence-of-releng.md
    A content/blog/2010/2010-03-31-hudson-1-353-released.adoc
    R content/blog/2010/2010-03-31-hudson-1-353-released.md
    A content/blog/2010/2010-03-31-screencast-python-on-hudson-part-1.adoc
    R content/blog/2010/2010-03-31-screencast-python-on-hudson-part-1.md
    A content/blog/2010/2010-04-01-announcing-the-hudson-2-0-roadmap.adoc
    R content/blog/2010/2010-04-01-announcing-the-hudson-2-0-roadmap.md
    A content/blog/2010/2010-04-01-regarding-the-start-of-april.adoc
    R content/blog/2010/2010-04-01-regarding-the-start-of-april.md
    A content/blog/2010/2010-04-07-kohsuke-leaves-sun.adoc
    R content/blog/2010/2010-04-07-kohsuke-leaves-sun.md
    A content/blog/2010/2010-04-12-pre-tested-commits-with-git.adoc
    R content/blog/2010/2010-04-12-pre-tested-commits-with-git.md
    A content/blog/2010/2010-04-16-a-new-blog-for-kohsuke.adoc
    R content/blog/2010/2010-04-16-a-new-blog-for-kohsuke.md
    A content/blog/2010/2010-04-16-hudson-1-354-released.adoc
    R content/blog/2010/2010-04-16-hudson-1-354-released.md
    A content/blog/2010/2010-04-24-hudson-1-355-released.adoc
    R content/blog/2010/2010-04-24-hudson-1-355-released.md
    A content/blog/2010/2010-06-09-welcome-to-hudson-labs.adoc
    R content/blog/2010/2010-06-09-welcome-to-hudson-labs.md
    A 
content/blog/2010/2010-06-11-casual-fridays-directing-traffic-with-hudson.adoc
    R 
content/blog/2010/2010-06-11-casual-fridays-directing-traffic-with-hudson.md
    A content/blog/2010/2010-06-14-hudson-1-362-released.adoc
    R content/blog/2010/2010-06-14-hudson-1-362-released.md
    A content/blog/2010/2010-06-22-hudson-1-363-released.adoc
    R content/blog/2010/2010-06-22-hudson-1-363-released.md
    A content/blog/2010/2010-06-23-stickers-starting-to-arrive.adoc
    R content/blog/2010/2010-06-23-stickers-starting-to-arrive.md
    A content/blog/2010/2010-06-28-digg-technical-talk.adoc
    R content/blog/2010/2010-06-28-digg-technical-talk.md
    A 
content/blog/2010/2010-06-29-11th-international-free-software-forum-in-brazil.adoc
    R 
content/blog/2010/2010-06-29-11th-international-free-software-forum-in-brazil.md
    A content/blog/2010/2010-07-05-links-for-2010-07-05.adoc
    R content/blog/2010/2010-07-05-links-for-2010-07-05.md
    A content/blog/2010/2010-07-05-so-youve-found-a-vulnerability-now-what.adoc
    R content/blog/2010/2010-07-05-so-youve-found-a-vulnerability-now-what.md
    A content/blog/2010/2010-07-06-security-fix-hudson-1-365-released.adoc
    R content/blog/2010/2010-07-06-security-fix-hudson-1-365-released.md
    A content/blog/2010/2010-07-07-gee-thanks.adoc
    R content/blog/2010/2010-07-07-gee-thanks.md
    A content/blog/2010/2010-07-12-updated-chrome-extension.adoc
    R content/blog/2010/2010-07-12-updated-chrome-extension.md
    A content/blog/2010/2010-07-13-monitor-hudson-from-your-android.adoc
    R content/blog/2010/2010-07-13-monitor-hudson-from-your-android.md
    A 
content/blog/2010/2010-07-21-hudson-with-selenium-and-sauce-on-demand-videos.adoc
    R 
content/blog/2010/2010-07-21-hudson-with-selenium-and-sauce-on-demand-videos.md
    A content/blog/2010/2010-07-27-hudson-1-368-released.adoc
    R content/blog/2010/2010-07-27-hudson-1-368-released.md
    A content/blog/2010/2010-08-10-big-security-fix-hudson-1-371-released.adoc
    R content/blog/2010/2010-08-10-big-security-fix-hudson-1-371-released.md
    A content/blog/2010/2010-08-11-quiet-period-feature.adoc
    R content/blog/2010/2010-08-11-quiet-period-feature.md
    A content/blog/2010/2010-08-16-hudsonmobi-2-0-hits-the-android-market.adoc
    R content/blog/2010/2010-08-16-hudsonmobi-2-0-hits-the-android-market.md
    A content/blog/2010/2010-08-17-hudson-1-372-sets-sail.adoc
    R content/blog/2010/2010-08-17-hudson-1-372-sets-sail.md
    A content/blog/2010/2010-08-20-hudson-sauce-ondemand-webinar.adoc
    R content/blog/2010/2010-08-20-hudson-sauce-ondemand-webinar.md
    A content/blog/2010/2010-08-29-hudson-user-meet-up-in-copenhagen-oslo.adoc
    R content/blog/2010/2010-08-29-hudson-user-meet-up-in-copenhagen-oslo.md
    A content/blog/2010/2010-08-30-pre-javaone-hudson-meetup.adoc
    R content/blog/2010/2010-08-30-pre-javaone-hudson-meetup.md
    A 
content/blog/2010/2010-09-02-recent-label-and-matrix-project-improvement.adoc
    R 
content/blog/2010/2010-09-02-recent-label-and-matrix-project-improvement.md
    A content/blog/2010/2010-09-04-hudson-events-calendar.adoc
    R content/blog/2010/2010-09-04-hudson-events-calendar.md
    A 
content/blog/2010/2010-09-05-hudsonmobi-dons-a-black-turtleneck-and-jumps-to-ios4.adoc
    R 
content/blog/2010/2010-09-05-hudsonmobi-dons-a-black-turtleneck-and-jumps-to-ios4.md
    A content/blog/2010/2010-09-09-lets-talk-about-hudson-at-javaone.adoc
    R content/blog/2010/2010-09-09-lets-talk-about-hudson-at-javaone.md
    A content/blog/2010/2010-09-17-javaone-taking-shape.adoc
    R content/blog/2010/2010-09-17-javaone-taking-shape.md
    A 
content/blog/2010/2010-09-20-live-blog-kohsukes-presentation-at-javaone.adoc
    R content/blog/2010/2010-09-20-live-blog-kohsukes-presentation-at-javaone.md
    A content/blog/2010/2010-09-20-pre-javaone-hudson-meetup-redux.adoc
    R content/blog/2010/2010-09-20-pre-javaone-hudson-meetup-redux.md
    A content/blog/2010/2010-09-20-tweet-of-the-day.adoc
    R content/blog/2010/2010-09-20-tweet-of-the-day.md
    A content/blog/2010/2010-09-21-javaone-day-one-in-pictures.adoc
    R content/blog/2010/2010-09-21-javaone-day-one-in-pictures.md
    A 
content/blog/2010/2010-09-21-live-blog-john-smart-demos-advanced-hudson-usage.adoc
    R 
content/blog/2010/2010-09-21-live-blog-john-smart-demos-advanced-hudson-usage.md
    A content/blog/2010/2010-09-21-video-kohsuke-talks-hudson-on-otn.adoc
    R content/blog/2010/2010-09-21-video-kohsuke-talks-hudson-on-otn.md
    A content/blog/2010/2010-09-22-javaone-day-two-in-pictures.adoc
    R content/blog/2010/2010-09-22-javaone-day-two-in-pictures.md
    A content/blog/2010/2010-11-23-new-hudson-mailing-lists.adoc
    R content/blog/2010/2010-11-23-new-hudson-mailing-lists.md
    A content/blog/2010/2010-11-30-whos-driving-this-thing.adoc
    R content/blog/2010/2010-11-30-whos-driving-this-thing.md
    A content/blog/2010/2010-12-01-a-brief-update.adoc
    R content/blog/2010/2010-12-01-a-brief-update.md
    A content/blog/2010/2010-12-05-weekend-update-with-andrew-bayer.adoc
    R content/blog/2010/2010-12-05-weekend-update-with-andrew-bayer.md
    A 
content/blog/2011/2011-01-08-installing-plugins-has-always-been-easy-now-its-fast-too.adoc
    R 
content/blog/2011/2011-01-08-installing-plugins-has-always-been-easy-now-its-fast-too.md
    A content/blog/2011/2011-01-11-hudsons-future.adoc
    R content/blog/2011/2011-01-11-hudsons-future.md
    A content/blog/2011/2011-01-29-jenkins.adoc
    R content/blog/2011/2011-01-29-jenkins.md
    A content/blog/2011/2011-02-04-governance-meeting-today.adoc
    R content/blog/2011/2011-02-04-governance-meeting-today.md
    A content/blog/2011/2011-02-04-the-first-24-hours-in-downloads.adoc
    R content/blog/2011/2011-02-04-the-first-24-hours-in-downloads.md
    A content/blog/2011/2011-02-05-first-governance-meeting-recap.adoc
    R content/blog/2011/2011-02-05-first-governance-meeting-recap.md
    A content/blog/2011/2011-03-03-updated-usage-stats-available.adoc
    R content/blog/2011/2011-03-03-updated-usage-stats-available.md
    A 
content/blog/2011/2011-03-21-the-polls-are-open-for-the-jenkins-logo-contest.adoc
    R 
content/blog/2011/2011-03-21-the-polls-are-open-for-the-jenkins-logo-contest.md
    A 
content/blog/2011/2011-04-01-san-francisco-jenkins-meetup-wednesday-april-13th.adoc
    R 
content/blog/2011/2011-04-01-san-francisco-jenkins-meetup-wednesday-april-13th.md
    A 
content/blog/2011/2011-04-04-the-final-two-run-off-vote-for-the-new-jenkins-logo.adoc
    R 
content/blog/2011/2011-04-04-the-final-two-run-off-vote-for-the-new-jenkins-logo.md
    A content/blog/2011/2011-04-14-jenkins-new-look.adoc
    R content/blog/2011/2011-04-14-jenkins-new-look.md
    A content/blog/2011/2011-05-12-ruby-plugins-hack-session-5-12-2011.adoc
    R content/blog/2011/2011-05-12-ruby-plugins-hack-session-5-12-2011.md
    A content/blog/2011/2011-05-12-the-state-of-the-jenkins-project.adoc
    R content/blog/2011/2011-05-12-the-state-of-the-jenkins-project.md
    A content/blog/2011/2011-05-27-ruby-plugins-hack-session-5-27-2011.adoc
    R content/blog/2011/2011-05-27-ruby-plugins-hack-session-5-27-2011.md
    A content/blog/2011/2011-06-08-building-a-software-diamond-with-jenkins.adoc
    R content/blog/2011/2011-06-08-building-a-software-diamond-with-jenkins.md
    A content/blog/2011/2011-06-09-a-big-thanks-to-rackspace.adoc
    R content/blog/2011/2011-06-09-a-big-thanks-to-rackspace.md
    A content/blog/2011/2011-06-14-upcoming-events-in-june-and-early-july.adoc
    R content/blog/2011/2011-06-14-upcoming-events-in-june-and-early-july.md
    A content/blog/2011/2011-06-16-jenkins-long-term-support-release.adoc
    R content/blog/2011/2011-06-16-jenkins-long-term-support-release.md
    A 
content/blog/2011/2011-06-24-ruby-plugins-hack-session-notes-6-23-2011.adoc
    R content/blog/2011/2011-06-24-ruby-plugins-hack-session-notes-6-23-2011.md
    A content/blog/2011/2011-07-18-mirror-mirror-on-the-wall.adoc
    R content/blog/2011/2011-07-18-mirror-mirror-on-the-wall.md
    A content/blog/2011/2011-08-08-jenkins-user-conference.adoc
    R content/blog/2011/2011-08-08-jenkins-user-conference.md
    A content/blog/2011/2011-08-08-jruby-branch-merged.adoc
    R content/blog/2011/2011-08-08-jruby-branch-merged.md
    A content/blog/2011/2011-09-01-call-for-testers-upcoming-lts-update.adoc
    R content/blog/2011/2011-09-01-call-for-testers-upcoming-lts-update.md
    A content/blog/2011/2011-09-19-2011-donation-drive.adoc
    R content/blog/2011/2011-09-19-2011-donation-drive.md
    A content/blog/2011/2011-10-05-ci-dinner-wednesday-at-630.adoc
    R content/blog/2011/2011-10-05-ci-dinner-wednesday-at-630.md
    A 
content/blog/2011/2011-10-17-andrew-bayer-discusses-jenkins-with-tim-obrien.adoc
    R 
content/blog/2011/2011-10-17-andrew-bayer-discusses-jenkins-with-tim-obrien.md
    A content/blog/2011/2011-10-21-report-bugs-and-win-kindle.adoc
    R content/blog/2011/2011-10-21-report-bugs-and-win-kindle.md
    A content/blog/2011/2011-11-07-jenkins-meetup-munich-videos.adoc
    R content/blog/2011/2011-11-07-jenkins-meetup-munich-videos.md
    A 
content/blog/2011/2011-11-10-jenkins-conference-slides-and-videos-online.adoc
    R 
content/blog/2011/2011-11-10-jenkins-conference-slides-and-videos-online.md
    A 
content/blog/2011/2011-11-15-the-beginning-of-a-new-era-ruby-plugins-now-a-reality.adoc
    R 
content/blog/2011/2011-11-15-the-beginning-of-a-new-era-ruby-plugins-now-a-reality.md
    A 
content/blog/2011/2011-12-19-fundraising-drive-update-thank-you-everyone.adoc
    R 
content/blog/2011/2011-12-19-fundraising-drive-update-thank-you-everyone.md
    A content/blog/2011/2011-12-20-thanks-for-the-support-pagerduty.adoc
    R content/blog/2011/2011-12-20-thanks-for-the-support-pagerduty.md
    A 
content/blog/2011/2011-12-23-jenkins-survey-result-and-what-ui-improvement-would-you-like.adoc
    R 
content/blog/2011/2011-12-23-jenkins-survey-result-and-what-ui-improvement-would-you-like.md
    A content/blog/2011/2011-12-28-adding-diagrams-to-wiki.adoc
    R content/blog/2011/2011-12-28-adding-diagrams-to-wiki.md
    A content/blog/2012/2012-01-04-building-jenkins-plugins-with-gradle.adoc
    R content/blog/2012/2012-01-04-building-jenkins-plugins-with-gradle.md
    A 
content/blog/2012/2012-01-05-thank-you-page-for-windows-os-x-installers.adoc
    R content/blog/2012/2012-01-05-thank-you-page-for-windows-os-x-installers.md
    A content/blog/2012/2012-01-20-highlight-video-from-juc-2011.adoc
    R content/blog/2012/2012-01-20-highlight-video-from-juc-2011.md
    A content/blog/2012/2012-02-02-happy-birthday-jenkins.adoc
    R content/blog/2012/2012-02-02-happy-birthday-jenkins.md
    A content/blog/2012/2012-02-21-fosdem-2012-recap.adoc
    R content/blog/2012/2012-02-21-fosdem-2012-recap.md
    A content/blog/2012/2012-02-21-sponsor-a-jenkins-user-conference.adoc
    R content/blog/2012/2012-02-21-sponsor-a-jenkins-user-conference.md
    A content/blog/2012/2012-03-13-why-does-jenkins-have-blue-balls.adoc
    R content/blog/2012/2012-03-13-why-does-jenkins-have-blue-balls.md
    A content/blog/2012/2012-03-26-announcing-the-jenkins-cia.adoc
    R content/blog/2012/2012-03-26-announcing-the-jenkins-cia.md
    A content/blog/2012/2012-05-28-jenkins-a-besoin-de-vous.adoc
    R content/blog/2012/2012-05-28-jenkins-a-besoin-de-vous.md
    A 
content/blog/2012/2012-06-19-jenkins-and-bioinformatics-catch-us-at-bosc-2012.adoc
    R 
content/blog/2012/2012-06-19-jenkins-and-bioinformatics-catch-us-at-bosc-2012.md
    A content/blog/2012/2012-06-22-intro-to-jenkins-meetup-in-copenhagen.adoc
    R content/blog/2012/2012-06-22-intro-to-jenkins-meetup-in-copenhagen.md
    A 
content/blog/2012/2012-08-20-report-intro-to-jenkins-meet-up-in-copenhagen.adoc
    R 
content/blog/2012/2012-08-20-report-intro-to-jenkins-meet-up-in-copenhagen.md
    A content/blog/2012/2012-08-27-volunteers-needed-for-juc-sf.adoc
    R content/blog/2012/2012-08-27-volunteers-needed-for-juc-sf.md
    A 
content/blog/2012/2012-09-24-jenkins-project-meeting-in-the-meat-space-call-for-agenda.adoc
    R 
content/blog/2012/2012-09-24-jenkins-project-meeting-in-the-meat-space-call-for-agenda.md
    A 
content/blog/2012/2012-11-14-sponsor-jenkins-bugs-with-freedom-sponsors.adoc
    R content/blog/2012/2012-11-14-sponsor-jenkins-bugs-with-freedom-sponsors.md
    A 
content/blog/2012/2012-11-18-comunidade-verde-amarela-do-jenkins-uni-vos.adoc
    R 
content/blog/2012/2012-11-18-comunidade-verde-amarela-do-jenkins-uni-vos.md
    A content/blog/2012/2012-12-20-jenkins-keynote-at-fosdem-2013.adoc
    R content/blog/2012/2012-12-20-jenkins-keynote-at-fosdem-2013.md
    A content/blog/2012/2012-12-25-jenkins-meet-up.adoc
    R content/blog/2012/2012-12-25-jenkins-meet-up.md
    A 
content/blog/2013/2013-04-30-registration-and-call-for-papers-open-for-juc-palo-alto.adoc
    R 
content/blog/2013/2013-04-30-registration-and-call-for-papers-open-for-juc-palo-alto.md
    A 
content/blog/2013/2013-05-22-jenkins-user-conference-israel-coming-june-6.adoc
    R 
content/blog/2013/2013-05-22-jenkins-user-conference-israel-coming-june-6.md
    A 
content/blog/2013/2013-07-01-office-hours-this-week-git-plugin-refactoring.adoc
    R 
content/blog/2013/2013-07-01-office-hours-this-week-git-plugin-refactoring.md
    A content/blog/2013/2013-09-23-literate-builds-wtf.adoc
    R content/blog/2013/2013-09-23-literate-builds-wtf.md
    A 
content/blog/2013/2013-11-20-juc-call-for-volunteers-to-join-the-organizing-committee-and-venues.adoc
    R 
content/blog/2013/2013-11-20-juc-call-for-volunteers-to-join-the-organizing-committee-and-venues.md
    A 
content/blog/2013/2013-11-25-summary-report-git-repository-disruption-incident-of-nov-10th.adoc
    R 
content/blog/2013/2013-11-25-summary-report-git-repository-disruption-incident-of-nov-10th.md
    A content/blog/2013/2013-12-05-jenkins-sao-paulo-meetup-this-weekend.adoc
    R content/blog/2013/2013-12-05-jenkins-sao-paulo-meetup-this-weekend.md
    A 
content/blog/2014/2014-03-21-call-for-sponsors-2014-jenkins-user-conferences.adoc
    R 
content/blog/2014/2014-03-21-call-for-sponsors-2014-jenkins-user-conferences.md
    A content/blog/2014/2014-08-28-workflow-plugin-code-walk-through.adoc
    R content/blog/2014/2014-08-28-workflow-plugin-code-walk-through.md
    A content/blog/2014/2014-10-06-gradle-fy-your-jenkins-plugin-project.adoc
    R content/blog/2014/2014-10-06-gradle-fy-your-jenkins-plugin-project.md
    A 
content/blog/2014/2014-10-20-freebsd-project-use-of-jenkins-for-os-testing.adoc
    R 
content/blog/2014/2014-10-20-freebsd-project-use-of-jenkins-for-os-testing.md
    A content/blog/2014/2014-12-03-workflow-plugin-is-1-0.adoc
    R content/blog/2014/2014-12-03-workflow-plugin-is-1-0.md
    A content/blog/2015/2015-04-24-jira-migration-this-weekend.adoc
    R content/blog/2015/2015-04-24-jira-migration-this-weekend.md
    A content/blog/2015/2015-06-22-new-wiki-url-requirement-for-plugins.adoc
    R content/blog/2015/2015-06-22-new-wiki-url-requirement-for-plugins.md
    A content/blog/2015/2015-07-14-juseppe-a-custom-update-site-for-jenkins.adoc
    R content/blog/2015/2015-07-14-juseppe-a-custom-update-site-for-jenkins.md
    A content/blog/2015/2015-07-23-office-hours-are-back.adoc
    R content/blog/2015/2015-07-23-office-hours-are-back.md
    A content/blog/2015/2015-07-24-integrating-kubernetes-and-jenkins.adoc
    R content/blog/2015/2015-07-24-integrating-kubernetes-and-jenkins.md
    A content/blog/2015/2015-07-28-reinforcements-for-the-subversion-plugin.adoc
    R content/blog/2015/2015-07-28-reinforcements-for-the-subversion-plugin.md
    A content/blog/2015/2015-08-03-just-a-month-left-until-juc-u-s-west.adoc
    R content/blog/2015/2015-08-03-just-a-month-left-until-juc-u-s-west.md
    A 
content/blog/2015/2015-08-04-wiki-and-issue-tracker-outage-over-the-weekend.adoc
    R 
content/blog/2015/2015-08-04-wiki-and-issue-tracker-outage-over-the-weekend.md
    A content/blog/2015/2015-08-10-upcoming-office-hour-on-workflow.adoc
    R content/blog/2015/2015-08-10-upcoming-office-hour-on-workflow.md
    A content/blog/2015/2015-08-13-update-wiki-and-issue-tracker-outage.adoc
    R content/blog/2015/2015-08-13-update-wiki-and-issue-tracker-outage.md
    A content/blog/2015/2015-08-20-upcoming-office-hour-on-kubernetes.adoc
    R content/blog/2015/2015-08-20-upcoming-office-hour-on-kubernetes.md
    A content/blog/2015/2015-08-25-announcing-the-travel-grant-program.adoc
    R content/blog/2015/2015-08-25-announcing-the-travel-grant-program.md
    A content/blog/2015/2015-08-31-plugin-spotlight-version-column-plugin.adoc
    R content/blog/2015/2015-08-31-plugin-spotlight-version-column-plugin.md
    A content/blog/2015/2015-09-01-take-the-2015-jenkins-survey.adoc
    R content/blog/2015/2015-09-01-take-the-2015-jenkins-survey.md
    A content/blog/2015/2015-09-07-office-hour-on-proposed-ui-ux-changes.adoc
    R content/blog/2015/2015-09-07-office-hour-on-proposed-ui-ux-changes.md
    A content/blog/2015/2015-09-19-office-hour-on-form-handling-in-jenkins.adoc
    R content/blog/2015/2015-09-19-office-hour-on-form-handling-in-jenkins.md
    A 
content/blog/2015/2015-10-19-upcoming-in-office-hours-fosdem-planning-session.adoc
    R 
content/blog/2015/2015-10-19-upcoming-in-office-hours-fosdem-planning-session.md
    A 
content/blog/2015/2015-10-25-jenkins-2-0-proposal-introduce-a-policy-for-api-deprecation.adoc
    R 
content/blog/2015/2015-10-25-jenkins-2-0-proposal-introduce-a-policy-for-api-deprecation.md
    A 
content/blog/2015/2015-10-27-jenkins-2-0-proposal-split-groovy-out-of-core.adoc
    R 
content/blog/2015/2015-10-27-jenkins-2-0-proposal-split-groovy-out-of-core.md
    A 
content/blog/2015/2015-10-28-jenkins-2-0-proposal-pipeline-as-code-front-and-center.adoc
    R 
content/blog/2015/2015-10-28-jenkins-2-0-proposal-pipeline-as-code-front-and-center.md
    A 
content/blog/2015/2015-10-29-jenkins-2-0-proposal-ux-improvements-part-one.adoc
    R 
content/blog/2015/2015-10-29-jenkins-2-0-proposal-ux-improvements-part-one.md
    A 
content/blog/2015/2015-10-30-jenkins-2-0-proposal-improved-out-of-the-box-user-experience.adoc
    R 
content/blog/2015/2015-10-30-jenkins-2-0-proposal-improved-out-of-the-box-user-experience.md
    A content/blog/2015/2015-11-01-adopt-a-plugin.adoc
    R content/blog/2015/2015-11-01-adopt-a-plugin.md
    A content/blog/2015/2015-11-03-what-jvm-versions-are-running-jenkins.adoc
    R content/blog/2015/2015-11-03-what-jvm-versions-are-running-jenkins.md
    A content/blog/2015/2015-11-04-jenkins-and-docker.adoc
    R content/blog/2015/2015-11-04-jenkins-and-docker.md
    A 
content/blog/2015/2015-11-06-mitigating-unauthenticated-remote-code-execution-0-day-in-jenkins-cli.adoc
    R 
content/blog/2015/2015-11-06-mitigating-unauthenticated-remote-code-execution-0-day-in-jenkins-cli.md
    A content/blog/2015/2015-11-06-october-jams.adoc
    R content/blog/2015/2015-11-06-october-jams.md
    A 
content/blog/2015/2015-11-11-new-jenkins-releases-with-important-security-fixes.adoc
    R 
content/blog/2015/2015-11-11-new-jenkins-releases-with-important-security-fixes.md
    A content/blog/2015/2015-11-16-celebrating-hacksgiving.adoc
    R content/blog/2015/2015-11-16-celebrating-hacksgiving.md
    A content/blog/2015/2015-12-02-hacksgiving-left-overs.adoc
    R content/blog/2015/2015-12-02-hacksgiving-left-overs.md
    A 
content/blog/2015/2015-12-03-pipeline-as-code-with-multibranch-workflows-in-jenkins.adoc
    R 
content/blog/2015/2015-12-03-pipeline-as-code-with-multibranch-workflows-in-jenkins.md
    A content/blog/2015/2015-12-09-security-updates-released-today.adoc
    R content/blog/2015/2015-12-09-security-updates-released-today.md
    A 
content/blog/2015/2015-12-16-workflow-best-practices-and-examples-repo-on-github.adoc
    R 
content/blog/2015/2015-12-16-workflow-best-practices-and-examples-repo-on-github.md
    A content/blog/2015/2015-12-17-fosdem-2016-travel-grant-program.adoc
    R content/blog/2015/2015-12-17-fosdem-2016-travel-grant-program.md
    A 
content/blog/2015/2015-12-18-december-jam-world-tour-jenkins-developers-and-users-meetup-group-sf.adoc
    R 
content/blog/2015/2015-12-18-december-jam-world-tour-jenkins-developers-and-users-meetup-group-sf.md
    A content/blog/2015/2015-12-18-december-jam-world-tour-lima-peru.adoc
    R content/blog/2015/2015-12-18-december-jam-world-tour-lima-peru.md
    A 
content/blog/2015/2015-12-18-december-jam-world-tour-st-petersburg-russia.adoc
    R 
content/blog/2015/2015-12-18-december-jam-world-tour-st-petersburg-russia.md
    A 
content/blog/2015/2015-12-18-join-us-at-the-jenkins-2-0-contributor-summit.adoc
    R 
content/blog/2015/2015-12-18-join-us-at-the-jenkins-2-0-contributor-summit.md
    A content/blog/2015/2015-12-21-december-jam-world-tour-toulouse-france.adoc
    R content/blog/2015/2015-12-21-december-jam-world-tour-toulouse-france.md
    A content/blog/2016/2016-02-24-jenkins-security-update.adoc
    R content/blog/2016/2016-02-24-jenkins-security-update.md
    A content/blog/2016/2016-03-03-gsoc2016-announcement.adoc
    R content/blog/2016/2016-03-03-gsoc2016-announcement.md
    A content/blog/2016/2016-03-24-jenkins-2-beta-released.adoc
    R content/blog/2016/2016-03-24-jenkins-2-beta-released.md
    A content/blog/2016/2016-04-11-jenkins-plugins-security-update.adoc
    R content/blog/2016/2016-04-11-jenkins-plugins-security-update.md
    A content/blog/2016/2016-05-11-security-update.adoc
    R content/blog/2016/2016-05-11-security-update.md
    A content/blog/2016/2016-07-14-2-7-1-re-release.adoc
    R content/blog/2016/2016-07-14-2-7-1-re-release.md
    A content/blog/2017/02/2017-02-01-security-updates.adoc
    R content/blog/2017/02/2017-02-01-security-updates.md
    A content/blog/index.adoc
    R content/blog/index.md
    A content/blog/take-2015-jenkins-survey.adoc
    R content/blog/take-2015-jenkins-survey.md

  Log Message:
  -----------
  Migrate markdown to asciidoc files (#4600)

Its not perfect but seems to pretty good.

Script as follows:
```
const YAML = require('yaml')
const path = require('path');
const fs = require('fs').promises;
const matter = require('gray-matter');
const {spawn, execFileSync} = require('child_process');

async function main() {
  const mdFiles = execFileSync('find', ['content/blog', '-name', 
'*.md']).toString().trim().split("\n").sort();
  execFileSync('gem', ['install', 'kramdown-asciidoc']);
  //const mdFiles = ['./content/blog/2010/2010-03-08-hudson-1-349-released.md']
  for (const file of mdFiles) {
    const newFile = file.substring(0, file.length - path.extname(file).length) 
+ '.adoc'
    console.log(file, '=>', newFile);
    const body = await fs.readFile(file).then(buffer => buffer.toString('utf8'))
    const {content, data} = matter(body);
    const asciidoc = await convertBody(content).then(({stderr, stdout}) => {
      if (stderr) {
        throw new Error(stderr);
      }
      return stdout;
    });
    const asciiDocBody = [
      '---',
      YAML.stringify(data).trim(),
      '---',
      asciidoc.replace('[...]', '&#91;...&#93;')
    ].join("\n")
    await fs.writeFile(newFile, asciiDocBody);
    execFileSync('git', ['add', newFile])
    execFileSync('git', ['rm', file])
  }
}

async function convertBody(body) {
  return new Promise(function (resolve, reject) {
    const command = 'kramdoc';
    const args = [
      '--format=GFM',
      '--html-to-native',
      '--auto-links',
      '--output=-',
      '-',
    ];
    //const command = 'pandoc';
    //const args = [
    //  '--wrap=none',
    //  '--from', 'markdown-yaml_metadata_block',
    //  '-f', 'gfm',
    //  '-t', 'asciidoc',
    //  '--atx-headers',
    //  '-o', '-',
    //  '-',
    //];
    console.log(`${command} ${args.map((a) => `"${a}"`).join(' ')}`);
    const p = spawn(
      command, args, {
      encoding: 'utf8',
      env: {...process.env, LANG: 'en_US.UTF-8', LC_CTYPE: 'en_US.UTF-8'},
      stdio: ['pipe', 'pipe', 'pipe'],
    },
    );
    p.once('error', reject);
    p.once('exit', () => resolve({stderr, stdout, }));

    let stderr = '';
    p.stderr.on('data', (data) => stderr += data);
    p.stderr.on('end', () => {if (stderr.trim()) 
{console.error(stderr.trim());} });
    let stdout = '';
    p.stdout.on('data', (data) => stdout += data);
    p.stdin.write(body);
    p.stdin.end();
  });
}

main().then(console.error);
```

Co-authored-by: Tim Jacomb <21194782+ti...@users.noreply.github.com>


-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-commits+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-commits/jenkins-infra/jenkins.io/push/refs/heads/master/923478-64e9d2%40github.com.

Reply via email to