Mercurial > zeropaste
view app/assets/javascripts/application.coffee @ 402:a18e19139f57
Markdown preview \o/
author | nanaya <me@myconan.net> |
---|---|
date | Sun, 06 Sep 2015 04:20:50 +0900 |
parents | 851432f21603 |
children | 3d434e15ddb1 |
line wrap: on
line source
#= require jquery #= require bootstrap #= require highlightjs #= require commonmark $(document).on "click", ".js-paste-clear", (e) -> e.preventDefault() $(".js-paste-paste") .val("") .focus() pasteText = -> $(".js-paste-paste").val() || $(".js-paste-pl").text() setHash = (newLocation = window.location.pathname) -> return unless history.replaceState newLocation ||= window.location.pathname history.replaceState null, "", newLocation markdownfy = (plaintext) -> reader = new commonmark.Parser writer = new commonmark.HtmlRenderer(safe: true) writer.render reader.parse(plaintext) $(document).on "click", ".js-show-tab-pl", -> setHash() $(document).on "click", ".js-show-tab-hl", -> setHash "#hl" $hlBox = $(".js-paste-hl") return if $hlBox.data("processed") $hlBox.text pasteText() highlight = -> hljs.highlightBlock($hlBox[0]) setTimeout highlight, 0 $hlBox.data "processed", true $(document).on "click", ".js-show-tab-md", -> setHash "#md" $mdBox = $(".js-paste-md") return if $mdBox.data("processed") $mdBox.html markdownfy(pasteText()) $mdBox.find("a").attr("rel", "nofollow") $mdBox.data "processed", true $(document).on "click", ".js-paste-preview-md", -> return if pasteText() == "" $(".js-paste-preview-md-box").html markdownfy(pasteText()) $(".js-paste-preview-md-modal").modal "show" $(document).on "ready", -> return if $(".js-showing-paste").length < 1 format = window.location.hash.slice(1) $(".js-show-tab-#{format}").click()