librelist archives

« back to archive

[PATCH] switch documentation to olddoc

[PATCH] switch documentation to olddoc

From:
Eric Wong
Date:
2015-01-11 @ 23:05
wrongdoc was difficult to maintain because of the tidy-ffi
dependency and the HTML5 changes in Darkfish could not be
handled well by Tidy.

olddoc is superior as it generates leaner HTML which loads faster,
requires less scrolling and less processing power to render.
Aesthetic comparisons are subjective of course but completely
unimportant compared to speed and accessibility.

The presence of images and CSS on the old (Darkfish-based) site
probably set unreasonable expectations as to my ability and
willingness to view such things.  No more, the new website is
entirely simple HTML which renders well with even the wimpiest
browser (hell, olddoc even tries to generate readable raw HTML).

ref: http://80x24.org/olddoc/
---
 .document                    |  1 -
 .gitignore                   |  3 +-
 .wrongdoc.yml => .olddoc.yml |  0
 GNUmakefile                  |  5 ----
 Rakefile                     | 33 --------------------
 kcar.gemspec                 | 14 ++++-----
 pkg.mk                       | 71 ++++++++++++++------------------------------
 7 files changed, 30 insertions(+), 97 deletions(-)
 rename .wrongdoc.yml => .olddoc.yml (100%)
 delete mode 100644 Rakefile

diff --git a/.document b/.document
index 1ff42e3..cc0b416 100644
--- a/.document
+++ b/.document
@@ -2,6 +2,5 @@ LICENSE
 README
 TODO
 NEWS
-ChangeLog
 lib
 ext/kcar/kcar.c
diff --git a/.gitignore b/.gitignore
index 50ff446..a6c49b4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,8 +11,7 @@ ext/kcar/Makefile
 ext/kcar/kcar.c
 log/
 pkg/
-/NEWS
-/ChangeLog
+/NEWS*
 /.manifest
 /GIT-VERSION-FILE
 /man
diff --git a/.wrongdoc.yml b/.olddoc.yml
similarity index 100%
rename from .wrongdoc.yml
rename to .olddoc.yml
diff --git a/GNUmakefile b/GNUmakefile
index b370afe..929eede 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -2,7 +2,6 @@ all::
 RSYNC_DEST := bogomips.org:/srv/bogomips/kcar
 RAGEL = ragel
 RLFLAGS = -G2
-rfproject := rainbows
 rfpackage := kcar
 pkg_extra += ext/kcar/kcar.c
 ext/kcar/kcar.c: ext/kcar/kcar.rl ext/kcar/kcar_http_common.rl
@@ -10,7 +9,3 @@ ext/kcar/kcar.c: ext/kcar/kcar.rl ext/kcar/kcar_http_common.rl
 include pkg.mk
 $(ext_pfx)/$(ext)/kcar.c: ext/kcar/kcar.c
 $(ext_pfx)/$(ext)/Makefile: ext/kcar/kcar.c
-ifneq ($(VERSION),)
-release::
-	$(RAKE) publish_news VERSION=$(VERSION)
-endif
diff --git a/Rakefile b/Rakefile
deleted file mode 100644
index d5e30f9..0000000
--- a/Rakefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# -*- encoding: binary -*-
-require 'wrongdoc'
-cgit_url = Wrongdoc.config[:cgit_url]
-git_url = Wrongdoc.config[:git_url]
-
-desc "post news article to rubyforge"
-task :publish_news do
-  require 'rubyforge'
-  spec = Gem::Specification.load('kcar.gemspec')
-  tmp = Tempfile.new('rf-news')
-  _, subject, body = `git cat-file tag v#{spec.version}`.split(/\n\n/, 3)
-  tmp.puts subject
-  tmp.puts
-  tmp.puts spec.description.strip
-  tmp.puts ""
-  tmp.puts "* #{spec.homepage}"
-  tmp.puts "* #{spec.email}"
-  tmp.puts "* #{git_url}"
-  tmp.print "\nChanges:\n\n"
-  tmp.puts body
-  tmp.flush
-  system(ENV["VISUAL"], tmp.path) or abort "#{ENV["VISUAL"]} failed: #$?"
-  msg = File.readlines(tmp.path)
-  subject = msg.shift
-  blank = msg.shift
-  blank == "\n" or abort "no newline after subject!"
-  subject.strip!
-  body = msg.join("").strip!
-
-  rf = RubyForge.new.configure
-  rf.login
-  rf.post_news('rainbows', subject, body)
-end
diff --git a/kcar.gemspec b/kcar.gemspec
index a0ca22e..f1dce8d 100644
--- a/kcar.gemspec
+++ b/kcar.gemspec
@@ -1,25 +1,23 @@
 ENV["VERSION"] or abort "VERSION= must be specified"
 manifest = File.readlines('.manifest').map! { |x| x.chomp! }
-require 'wrongdoc'
-extend Wrongdoc::Gemspec
+require 'olddoc'
+extend Olddoc::Gemspec
 name, summary, title = readme_metadata
 
 Gem::Specification.new do |s|
   s.name = %q{kcar}
   s.version = ENV["VERSION"].dup
-  s.homepage = Wrongdoc.config[:rdoc_url]
+  s.homepage = Olddoc.config['rdoc_url']
   s.authors = ["kcar hackers"]
-  s.date = Time.now.utc.strftime('%Y-%m-%d')
   s.description = readme_description
   s.email = %q{kcar@librelist.org}
   s.extra_rdoc_files = extra_rdoc_files(manifest)
   s.files = manifest
-  s.rdoc_options = rdoc_options
-  s.rubyforge_project = %q{rainbows}
   s.summary = summary
   s.test_files = Dir['test/test_*.rb']
   s.extensions = %w(ext/kcar/extconf.rb)
-  s.add_development_dependency('wrongdoc', '~> 1.5')
+  s.add_development_dependency('olddoc', '~> 1.0')
+  s.add_development_dependency('test-unit', '~> 3.0')
 
-  s.license = %w(GPLv2+ Ruby) # disabled for compatibility with older RubyGems
+  s.licenses = %w(GPLv2+ Ruby)
 end
diff --git a/pkg.mk b/pkg.mk
index 4cd5bef..1e40915 100644
--- a/pkg.mk
+++ b/pkg.mk
@@ -1,7 +1,8 @@
 RUBY = ruby
 RAKE = rake
 RSYNC = rsync
-WRONGDOC = wrongdoc
+OLDDOC = olddoc
+RDOC = rdoc
 
 GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
 	@./GIT-VERSION-GEN
@@ -12,14 +13,6 @@ RUBY_VERSION := $(shell $(RUBY) -e 'puts RUBY_VERSION')
 RUBY_ENGINE := $(shell $(RUBY) -e 'puts((RUBY_ENGINE rescue "ruby"))')
 lib := lib
 
-ifeq ($(shell test -f script/isolate_for_tests && echo t),t)
-isolate_libs := tmp/isolate/$(RUBY_ENGINE)-$(RUBY_VERSION)/isolate.mk
-$(isolate_libs): script/isolate_for_tests
-	@$(RUBY) script/isolate_for_tests
--include $(isolate_libs)
-lib := $(lib):$(ISOLATE_LIBS)
-endif
-
 ext := $(firstword $(wildcard ext/*))
 ifneq ($(ext),)
 ext_pfx := tmp/ext/$(RUBY_ENGINE)-$(RUBY_VERSION)
@@ -36,7 +29,7 @@ $(ext_pfx)/$(ext)/%: $(ext)/% $(ext_d)
 	install -m 644 $< $@
 $(ext_pfx)/$(ext)/Makefile: $(ext)/extconf.rb $(ext_d) $(ext_h)
 	$(RM) -f $(@D)/*.o
-	cd $(@D) && $(RUBY) $(CURDIR)/$(ext)/extconf.rb
+	cd $(@D) && $(RUBY) $(CURDIR)/$(ext)/extconf.rb $(EXTCONF_ARGS)
 ext_sfx := _ext.$(DLEXT)
 ext_dl := $(ext_pfx)/$(ext)/$(notdir $(ext)_ext.$(DLEXT))
 $(ext_dl): $(ext_src) $(ext_pfx_src) $(ext_pfx)/$(ext)/Makefile
@@ -48,10 +41,10 @@ else
 build:
 endif
 
-pkg_extra += GIT-VERSION-FILE NEWS ChangeLog LATEST
-ChangeLog: GIT-VERSION-FILE .wrongdoc.yml
-	$(WRONGDOC) prepare
-NEWS LATEST: ChangeLog
+pkg_extra += GIT-VERSION-FILE NEWS LATEST
+NEWS: GIT-VERSION-FILE .olddoc.yml
+	$(OLDDOC) prepare
+LATEST: NEWS
 
 manifest:
 	$(RM) .manifest
@@ -63,28 +56,20 @@ manifest:
 	cmp $@+ $@ || mv $@+ $@
 	$(RM) $@+
 
-doc:: .document .wrongdoc.yml $(pkg_extra)
+doc:: .document .olddoc.yml $(pkg_extra) $(PLACEHOLDERS)
 	-find lib -type f -name '*.rbc' -exec rm -f '{}' ';'
 	-find ext -type f -name '*.rbc' -exec rm -f '{}' ';'
 	$(RM) -r doc
-	$(WRONGDOC) all
+	$(RDOC) -f oldweb
+	$(OLDDOC) merge
 	install -m644 COPYING doc/COPYING
+	install -m644 NEWS doc/NEWS
+	install -m644 NEWS.atom.xml doc/NEWS.atom.xml
 	install -m644 $(shell LC_ALL=C grep '^[A-Z]' .document) doc/
 
 ifneq ($(VERSION),)
 pkggem := pkg/$(rfpackage)-$(VERSION).gem
 pkgtgz := pkg/$(rfpackage)-$(VERSION).tgz
-release_notes := release_notes-$(VERSION)
-release_changes := release_changes-$(VERSION)
-
-release-notes: $(release_notes)
-release-changes: $(release_changes)
-$(release_changes):
-	$(WRONGDOC) release_changes > $@+
-	$(VISUAL) $@+ && test -s $@+ && mv $@+ $@
-$(release_notes):
-	$(WRONGDOC) release_notes > $@+
-	$(VISUAL) $@+ && test -s $@+ && mv $@+ $@
 
 # ensures we're actually on the tagged $(VERSION), only used for release
 verify:
@@ -120,31 +105,18 @@ $(pkgtgz): manifest fix-perms
 
 package: $(pkgtgz) $(pkggem)
 
-test-release:: verify package $(release_notes) $(release_changes)
-	# make tgz release on RubyForge
-	@echo rubyforge add_release -f \
-	  -n $(release_notes) -a $(release_changes) \
-	  $(rfproject) $(rfpackage) $(VERSION) $(pkgtgz)
-	@echo gem push $(pkggem)
-	@echo rubyforge add_file \
-	  $(rfproject) $(rfpackage) $(VERSION) $(pkggem)
-release:: verify package $(release_notes) $(release_changes)
-	# make tgz release on RubyForge
-	rubyforge add_release -f -n $(release_notes) -a $(release_changes) \
-	  $(rfproject) $(rfpackage) $(VERSION) $(pkgtgz)
+release:: verify package
 	# push gem to RubyGems.org
 	gem push $(pkggem)
-	# in case of gem downloads from RubyForge releases page
-	rubyforge add_file \
-	  $(rfproject) $(rfpackage) $(VERSION) $(pkggem)
 else
 gem install-gem: GIT-VERSION-FILE
 	$(MAKE) $@ VERSION=$(GIT_VERSION)
 endif
 
-all:: test
+all:: check
 test_units := $(wildcard test/test_*.rb)
-test: test-unit
+test: check
+check: test-unit
 test-unit: $(test_units)
 $(test_units): build
 	$(RUBY) -I $(lib) $@ $(RUBY_TEST_OPTS)
@@ -154,8 +126,6 @@ ifneq ($(RSYNC_DEST),)
 publish_doc:
 	-git set-file-times
 	$(MAKE) doc
-	find doc/images -type f | \
-		TZ=UTC xargs touch -d '1970-01-01 00:00:06' doc/rdoc.css
 	$(MAKE) doc_gz
 	$(RSYNC) -av doc/ $(RSYNC_DEST)/
 	git ls-files | xargs touch
@@ -163,7 +133,7 @@ endif
 
 # Create gzip variants of the same timestamp as the original so nginx
 # "gzip_static on" can serve the gzipped versions directly.
-doc_gz: docs = $(shell find doc -type f ! -regex '^.*\.\(gif\|jpg\|png\|gz\)$$')
+doc_gz: docs = $(shell find doc -type f ! -regex '^.*\.gz$$')
 doc_gz:
 	for i in $(docs); do \
 	  gzip --rsyncable -9 < $$i > $$i.gz; touch -r $$i $$i.gz; done
@@ -171,5 +141,10 @@ check-warnings:
 	@(for i in $$(git ls-files '*.rb'| grep -v '^setup\.rb$$'); \
 	  do $(RUBY) -d -W2 -c $$i; done) | grep -v '^Syntax OK$$' || :
 
-.PHONY: all .FORCE-GIT-VERSION-FILE doc test $(test_units) manifest
+ifneq ($(PLACEHOLDERS),)
+$(PLACEHOLDERS):
+	echo olddoc_placeholder > $@
+endif
+
+.PHONY: all .FORCE-GIT-VERSION-FILE doc check test $(test_units) manifest
 .PHONY: check-warnings
-- 
EW