Skip to content

Instantly share code, notes, and snippets.

@sharapeco
Last active December 27, 2015 23:29
Show Gist options
  • Save sharapeco/7406804 to your computer and use it in GitHub Desktop.
Save sharapeco/7406804 to your computer and use it in GitHub Desktop.
xyzzy で Markdown を書くための設定
;;; -*- Mode: Lisp; Package: EDITOR -*-
;;;
;;; This file is not part of xyzzy.
;;;
;;; Markdown を HTML に変換したりする
;;;
;;; 改変 markdown-mode for #xyzzy (色付け & メジャーモード化) が必要
;;; https://gist.github.com/youz/1339252
(provide "markdown-mode")
(in-package "md")
(defvar *markdown-converter* "c:\\xampp\\php\\php.exe c:\\Apps\\php-tools\\markdown.php"
"markdown-mode: HTMLに変換するためのプログラム")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; HTML に変換
(defun markdown-convert-and-view (&optional (filename (get-buffer-file-name)))
"markdown-mode: このファイルをHTMLに変換して開く"
(interactive)
(let (command
output-file
(bufname "*Markdown conversion*")
(error-message nil))
(when filename
(setq output-file filename)
(when (string-match "^\\(.*\\)\\.\\(md\\|txt\\)$" output-file)
(setq output-file (string-replace-match output-file "\\1")))
(setq output-file (concat output-file ".html"))
(execute-shell-command
(concat *markdown-converter* " \"" filename "\" > \"" output-file "\"") nil nil)
(shell-execute
(concat "file:///" output-file) t))))
(unless *markdown-mode-map*
(setq *markdown-mode-map* (make-sparse-keymap))
(define-key *markdown-mode-map* '(#\C-c #\o) 'md::markdown-convert-and-view)
)
<?php
/// PHP Markdown Extra を使って Markdown を HTML に変換する
/// CSS はこのファイルに直接書く
///
/// PHP Markdown Extra
/// http://michelf.ca/projects/php-markdown/extra/
if ($argc < 2) {
echo 'Please specify input file' . PHP_EOL;
exit(1);
}
// Install PSR-0-compatible class autoloader
spl_autoload_register(function($class){
require preg_replace('{\\\\|_(?!.*\\\\)}', DIRECTORY_SEPARATOR, ltrim($class, '\\')).'.php';
});
// Get Markdown class
use \Michelf\Markdown;
// Read file and pass content through the Markdown praser
$text = @file_get_contents($argv[1]);
if ($text === false) {
echo 'Could not open file: ' . $argv[1] . PHP_EOL;
exit(2);
}
$html = Markdown::defaultTransform($text);
$title = preg_match('{<h1>(.+?)</h1>}i', $html, $m) ? $m[1] : 'Markdown output';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><?php echo $title; ?></title>
<style type="text/css">
/* GitHub stylesheet for MarkdownPad (http://markdownpad.com) */
/* Author: Nicolas Hery - http://nicolashery.com */
/* Version: 29d1c5bc36da364ad5aa86946d420b7bbc54a253 */
/* Source: https://github.com/nicolahery/markdownpad-github */
/* RESET
=============================================================================*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; }
/* BODY
=============================================================================*/
body { font: 16px/1.75 "Segoe UI", Meiryo, sans-serif; color: #333; background-color: #fff; padding: 20px; max-width: 960px; margin: 0 auto; }
body>*:first-child { margin-top: 0 !important; }
body>*:last-child { margin-bottom: 0 !important; }
/* BLOCKS
=============================================================================*/
p, blockquote, ul, ol, dl, table, pre { margin: 15px 0; }
/* HEADERS
=============================================================================*/
h1, h2, h3, h4, h5, h6 { margin: 30px 0 10px; padding: 0; font-weight: bold; -webkit-font-smoothing: antialiased; }
h1 tt, h1 code, h2 tt, h2 code, h3 tt, h3 code, h4 tt, h4 code, h5 tt, h5 code, h6 tt, h6 code { font-size: inherit; }
h1 { font-size: 28px; margin-bottom: 20px; padding-bottom: 5px; border-bottom: solid 4px #ddd; }
h2 { font-size: 24px; border-bottom: 1px solid #ddd; }
h3 { font-size: 18px; }
h4 { font-size: 16px; }
h5 { font-size: 14px; }
h6 { color: #777; font-size: 14px; }
body>h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h4:first-child, body>h5:first-child, body>h6:first-child { margin-top: 0; padding-top: 0; }
a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 { margin-top: 0; padding-top: 0; }
h1+p, h2+p, h3+p, h4+p, h5+p, h6+p { margin-top: 10px; }
/* LINKS
=============================================================================*/
a { color: #4183C4; text-decoration: none; }
a:hover { text-decoration: underline; }
/* LISTS
=============================================================================*/
ul, ol { padding-left: 30px; }
ul li > :first-child,
ol li > :first-child,
ul li ul:first-of-type,
ol li ol:first-of-type,
ul li ol:first-of-type,
ol li ul:first-of-type { margin-top: 0px; }
ul ul, ul ol, ol ol, ol ul { margin-bottom: 0; }
dl { padding: 0; }
dl dt { font-size: 14px; font-weight: bold; font-style: italic; padding: 0; margin: 15px 0 5px; }
dl dt:first-child { padding: 0; }
dl dt>:first-child { margin-top: 0px; }
dl dt>:last-child { margin-bottom: 0px; }
dl dd { margin: 0 0 15px; padding: 0 15px; }
dl dd>:first-child { margin-top: 0px; }
dl dd>:last-child { margin-bottom: 0px; }
/* CODE
=============================================================================*/
pre, code, tt { font-size: 12px; font-family: Consolas, "Liberation Mono", Courier, monospace; }
code, tt { margin: 0 0px; padding: 0px 0px; white-space: nowrap; border: 1px solid #eaeaea; background-color: #f8f8f8; border-radius: 3px; }
pre>code { margin: 0; padding: 0; white-space: pre; border: none; background: transparent; }
pre { background-color: #f8f8f8; border: 1px solid #ccc; font-size: 13px; line-height: 1.33; overflow: auto; padding: 6px 10px; border-radius: 3px; }
pre code, pre tt { background-color: transparent; border: none; }
/* QUOTES
=============================================================================*/
blockquote { border-left: 4px solid #DDD; padding: 0 15px; color: #777; }
blockquote>:first-child { margin-top: 0px; }
blockquote>:last-child { margin-bottom: 0px; }
/* HORIZONTAL RULES
=============================================================================*/
hr { clear: both; margin: 15px 0; height: 0px; overflow: hidden; border: none; background: transparent; border-bottom: 4px solid #ddd; padding: 0; }
/* TABLES
=============================================================================*/
tr { border-top: 1px solid #ccc; background-color: #fff; }
tr:nth-child(2n) { background-color: #f8f8f8; }
th, td { border: 1px solid #ccc; padding: 6px 13px; }
th { font-weight: bold; }
/* IMAGES
=============================================================================*/
img { max-width: 100%; }
</style>
</head>
<body>
<?php echo $html; ?>
</body>
</html>
;; Markdown
(load-library "markdown-mode")
(load-library "markdown-misc")
(push '("\\.md$" . markdown-mode) *auto-mode-alist*)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment