From 490848d9fe7a284565e6815e83ab107c8beb7b1a Mon Sep 17 00:00:00 2001 From: Zhang Chiyuan Date: Thu, 20 Mar 2008 09:53:06 +0000 Subject: [PATCH] preparing for new rst format document --- README | 5 ++--- Rakefile | 15 +++++++++++-- doc/compile-doc.py | 56 ++++++++++++++++++++++++++++++++++++++++++++++ doc/index.rst | 8 +++++++ yasnippet.el | 4 ++-- 5 files changed, 81 insertions(+), 7 deletions(-) create mode 100755 doc/compile-doc.py create mode 100644 doc/index.rst diff --git a/README b/README index f5a149826..b6357e12a 100644 --- a/README +++ b/README @@ -1,6 +1,5 @@ YASnippet re-design and re-writing of my original extension smart-snippet. The goal is ease of use and full features. -You can find a brief configuration guide on the project homepage: -http://code.google.com/p/yasnippet/ . Detailed documentation can also -be found there (the wiki pages on the right sidebar). +Detailed document can be found in the doc directory of the +distribution. \ No newline at end of file diff --git a/Rakefile b/Rakefile index 22f0c7cb9..23a1f9ca5 100644 --- a/Rakefile +++ b/Rakefile @@ -19,9 +19,12 @@ end desc "create a release package" task :package do release_dir = "pkg/yasnippet-#{$version}" - FileUtils.mkdir_p(release_dir) + FileUtils.mkdir_p(release_dir + "/doc") files = ['snippets', 'yasnippet.el', 'Rakefile'] FileUtils.cp_r files, release_dir + Dir['doc/*.html'].each { |f| + FileUtils.cp f, release_dir + '/doc' + f.sub(/^doc/, "") + } FileUtils.rm_r Dir[release_dir + "/**/.svn"] FileUtils.cd 'pkg' sh "tar cjf yasnippet-#{$version}.tar.bz2 yasnippet-#{$version}" @@ -40,4 +43,12 @@ task :release => [:bundle, :package] do end -task :default => :bundle +desc "Generate document" +task :doc do + docs = Dir['doc/*.rst'] + docs.each { |file| + sh "doc/compile-doc.py #{file} #{file.sub(/rst$/, "html")}" + } +end + +task :default => :doc diff --git a/doc/compile-doc.py b/doc/compile-doc.py new file mode 100755 index 000000000..f44cc84e8 --- /dev/null +++ b/doc/compile-doc.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# Compile document to HTML use docutils. + +# ======================================== +# Pygments syntax highlighting +# ======================================== +from pygments.formatters import HtmlFormatter + +# Set to True if you want inline CSS styles instead of classes +INLINESTYLES = False + +from pygments.formatters import HtmlFormatter + +# The default formatter +DEFAULT = HtmlFormatter(noclasses=INLINESTYLES) + +# Add name -> formatter pairs for every variant you want to use +VARIANTS = { + # 'linenos': HtmlFormatter(noclasses=INLINESTYLES, linenos=True), +} + +from docutils import nodes +from docutils.parsers.rst import directives + +from pygments import highlight +from pygments.lexers import get_lexer_by_name, TextLexer + +def pygments_directive(name, arguments, options, content, lineno, + content_offset, block_text, state, state_machine): + try: + lexer = get_lexer_by_name(arguments[0]) + except ValueError: + # no lexer found - use the text one instead of an exception + lexer = TextLexer() + # take an arbitrary option if more than one is given + formatter = options and VARIANTS[options.keys()[0]] or DEFAULT + parsed = highlight(u'\n'.join(content), lexer, formatter) + return [nodes.raw('', parsed, format='html')] + +pygments_directive.arguments = (1, 0, 1) +pygments_directive.content = 1 +pygments_directive.options = dict([(key, directives.flag) for key in VARIANTS]) + +directives.register_directive('sourcecode', pygments_directive) + + +# ======================================== +# Command line processing +# ======================================== +from docutils.core import publish_cmdline, default_description + + +description = ('Generates (X)HTML documents from standalone reStructuredText ' + 'sources. ' + default_description) + +publish_cmdline(writer_name='html', description=description) diff --git a/doc/index.rst b/doc/index.rst new file mode 100644 index 000000000..fbdf16654 --- /dev/null +++ b/doc/index.rst @@ -0,0 +1,8 @@ +=================================================== +YASnippet - Yet Another Snippet extension for Emacs +=================================================== + +:Author: pluskid +:Contact: pluskid@gmail.com +:Date: 2008-03-20 +:Version: $Revision: 1 $ diff --git a/yasnippet.el b/yasnippet.el index dd856f43b..5979f474d 100644 --- a/yasnippet.el +++ b/yasnippet.el @@ -3,7 +3,7 @@ ;; Copyright 2008 pluskid ;; ;; Author: pluskid -;; Version: 0.3.2 +;; Version: 0.4.0 ;; X-URL: http://code.google.com/p/yasnippet/ ;; This file is free software; you can redistribute it and/or modify @@ -142,7 +142,7 @@ Here's an example: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Internal variables ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defvar yas/version "0.3.2") +(defvar yas/version "0.4.0") (defvar yas/snippet-tables (make-hash-table) "A hash table of snippet tables corresponding to each major-mode.") -- 2.39.2