olddoc 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b153359b84321c4656018665d07338bbac666d12f905c45db9be3fc9c4944fd4
4
- data.tar.gz: 47a8e3dabb100a59c5f3a3b28e646906ad0fb67467f66a8b71d8d09ed3463d70
3
+ metadata.gz: 14790478480a3a9995861df417903d8e6cadc88441668e4c1ab1b4091a365cf0
4
+ data.tar.gz: d68495eb66d05dab730829d01ecb299270f38856512f0a3bcb2b606c33b0179f
5
5
  SHA512:
6
- metadata.gz: d38527a6d8c1c8919b7c38e91a4aeaab3872d130d464df377a96e6ef0ed159c21c12b5e0cc9621ca2b0e578c7f7ba16df51826e8671988861338d9810f560f6e
7
- data.tar.gz: a308d13fb8bea2bd1849b357fa776ec834ea2932a0eaddfc1d4ceb8d7f6cc2b27ff022b6ef4f88b76acd4858b75774e969a3f4d7c4b36b7aac358fe9c8892789
6
+ metadata.gz: 4d0027f5d3ae1a5d15f846896ecdfa1aec567ac666937b7c5055a279d7482b126ebcc561c4868a55a67ca1afba89471a8a518bb5449fb81d7b10273a69955e5c
7
+ data.tar.gz: 3cf5ef6d6bf09617f0d9ab64bca5caf76c8f8c0a878d67f569a4164b315d86cf75270447dc3089a1d0bf5b19314858667ef67e916dbb0d83fce9ae15bb8932b0
@@ -2,3 +2,4 @@
2
2
  *.1
3
3
  *.5
4
4
  *.html
5
+ *.txt
@@ -1,26 +1,32 @@
1
- # Copyright (C) 2015-2016 all contributors <olddoc-public@80x24.org>
1
+ # Copyright (C) 2015-2019 all contributors <olddoc-public@80x24.org>
2
2
  # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
3
3
  all::
4
4
 
5
5
  INSTALL = install
6
- PANDOC = pandoc
7
- PANDOC_OPTS = -f markdown --email-obfuscation=none
8
- pandoc = $(PANDOC) $(PANDOC_OPTS)
9
- pandoc_html = $(pandoc) --toc -t html --no-wrap
6
+ POD2MAN = pod2man
7
+ -include ../GIT-VERSION-FILE
8
+ release := olddoc $(VERSION)
9
+ POD2MAN_OPTS = -v -r '$(release)' --stderr -d 1994-10-02 -c 'olddoc user manual'
10
+ pod2man = $(POD2MAN) $(POD2MAN_OPTS)
11
+ POD2TEXT = pod2text
12
+ POD2TEXT_OPTS = --stderr
13
+ pod2text = $(POD2TEXT) $(POD2TEXT_OPTS)
10
14
 
15
+ m1 =
16
+ m1 += olddoc.1
11
17
 
12
- man1 := olddoc.1
13
- man5 := olddoc.5
14
- man7 :=
18
+ m5 =
19
+ m5 += olddoc.5
15
20
 
16
- html1 := $(addsuffix .html, $(man1))
17
- html5 := $(addsuffix .html, $(man5))
18
- html7 := $(addsuffix .html, $(man7))
21
+ m7 =
22
+
23
+ man1 := $(m1)
24
+ man5 := $(m5)
25
+ man7 := $(m7)
19
26
 
20
27
  all:: man
21
28
 
22
29
  man: $(man1) $(man5) $(man7)
23
- html: $(html1) $(html5) $(html7)
24
30
 
25
31
  prefix ?= $(HOME)
26
32
  mandir ?= $(prefix)/share/man
@@ -30,24 +36,47 @@ man7dir = $(mandir)/man7
30
36
 
31
37
  gem-man: man
32
38
  $(INSTALL) -d -m 755 ../man
33
- test -z "$(man1)" || $(INSTALL) -m 644 $(man1) ../man
34
- test -z "$(man5)" || $(INSTALL) -m 644 $(man5) ../man
39
+ $(INSTALL) -m 644 $(man1) ../man
40
+ $(INSTALL) -m 644 $(man5) ../man
35
41
  test -z "$(man7)" || $(INSTALL) -m 644 $(man7) ../man
36
42
 
37
43
  install-man: man
38
- $(INSTALL) -d -m 755 $(DESTDIR)$(mandir)
39
- test -z "$(man1)" || $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
40
- test -z "$(man5)" || $(INSTALL) -d -m 755 $(DESTDIR)$(man5dir)
44
+ $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
45
+ $(INSTALL) -d -m 755 $(DESTDIR)$(man5dir)
41
46
  test -z "$(man7)" || $(INSTALL) -d -m 755 $(DESTDIR)$(man7dir)
42
- test -z "$(man1)" || $(INSTALL) -m 644 $(man1) $(DESTDIR)$(man1dir)
43
- test -z "$(man5)" || $(INSTALL) -m 644 $(man5) $(DESTDIR)$(man5dir)
47
+ $(INSTALL) -m 644 $(man1) $(DESTDIR)$(man1dir)
48
+ $(INSTALL) -m 644 $(man5) $(DESTDIR)$(man5dir)
44
49
  test -z "$(man7)" || $(INSTALL) -m 644 $(man7) $(DESTDIR)$(man7dir)
45
50
 
46
- %: %.txt
47
- $(pandoc) -s -t man < $< > $@+ && mv $@+ $@
51
+ %.1 : %.1.pod
52
+ $(pod2man) -s 1 $< $@+
53
+ mv $@+ $@
54
+
55
+ %.5 : %.5.pod
56
+ $(pod2man) -s 5 $< $@+
57
+ mv $@+ $@
58
+
59
+ %.7 : %.7.pod
60
+ $(pod2man) -s 7 $< $@+
61
+ mv $@+ $@
62
+
63
+ mantxt = $(addsuffix .txt, $(m1) $(m5) $(m7))
64
+
65
+ txt :: $(mantxt)
66
+
67
+ all :: txt
68
+
69
+ %.txt : %.pod
70
+ $(pod2text) $< $@+
71
+ touch -r $< $@+
72
+ mv $@+ $@
48
73
 
49
- %.html : %.txt
50
- $(pandoc_html) < $< > $@+ && mv $@+ $@
74
+ html : podtxt2html $(mantxt)
75
+ ./podtxt2html $(mantxt)
51
76
 
52
77
  clean::
53
- $(RM) $(man1) $(man5) $(man7) $(html1) $(html5) $(html7)
78
+ $(RM) $(man1) $(man5) $(man7)
79
+ $(RM) $(addsuffix .txt.gz, $(m1) $(m5) $(m7))
80
+ $(RM) $(addsuffix .txt, $(m1) $(m5) $(m7))
81
+ $(RM) $(addsuffix .html, $(subst .,_,$(m1) $(m5) $(m7)))
82
+ $(RM) $(addsuffix .html.gz, $(subst .,_,$(m1) $(m5) $(m7)))
@@ -0,0 +1,21 @@
1
+ =head1 NAME
2
+
3
+ olddoc - old-fashioned RDoc HTML generator
4
+
5
+ =head1 SYNOPSYS
6
+
7
+ olddoc prepare
8
+
9
+ rdoc -f oldweb
10
+
11
+ rdoc -f dark216
12
+
13
+ =head1 DESCRIPTION
14
+
15
+ olddoc features dark216, and old-fashioned RDoc HTML generator.
16
+ You can also use "olddoc prepare" to generate NEWS files from
17
+ git tags.
18
+
19
+ =head1 SEE ALSO
20
+
21
+ L<olddoc(5)>
@@ -1,19 +1,17 @@
1
- % olddoc(1) olddoc user manual
2
-
3
- # NAME
1
+ =head1 NAME
4
2
 
5
3
  .olddoc.yml - olddoc config file format
6
4
 
7
- # SYNOPSIS
5
+ =head1 SYNOPSIS
8
6
 
9
7
  A YAML file in the top-level project directory named ".olddoc.yml"
10
8
 
11
- # DESCRIPTION
9
+ =head1 DESCRIPTION
12
10
 
13
11
  As olddoc favors consistency over configuration, there is minimal
14
12
  configuration to deal with.
15
13
 
16
- # KEYS
14
+ =head1 KEYS
17
15
 
18
16
  `rdoc_url`, `cgit_url`, and `nntp_url` should be obvious
19
17
 
@@ -21,9 +19,8 @@ configuration to deal with.
21
19
  HTML file that will be merged into RDoc after-the-fact. It is useful
22
20
  for merging non-RDoc generated HTML into the project.
23
21
 
24
- `ml_url` is the mailing list archive location.
25
- `public_email` is the email address of a publically archived mailing list
26
- at `ml_url`
22
+ `ml_url` is the mail archive location.
23
+ `public_email` is the email address of a mail archived at `ml_url`
27
24
 
28
25
  As of olddoc 1.2.0, `ml_url` and `nntp_url` may be YAML arrays
29
26
  with multiple URLs.
@@ -33,6 +30,6 @@ commands or URLs. This allows users of arbitrary version
33
30
  control systems to specify instructions for getting the code
34
31
  and not assume users are familiar with any particular system.
35
32
 
36
- # SEE ALSO
33
+ =head1 SEE ALSO
37
34
 
38
- olddoc(1)
35
+ L<olddoc(1)>
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/ruby
2
+ # Copyright (C) 2019 all contributors <olddoc-public@80x24.org>
3
+ # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
4
+
5
+ # pod2html isn't to my liking, and we need to generate anchors
6
+ # compatible with what pandoc was generating to avoid breaking
7
+ # links. Takes pod2text-generated text and transforms it to
8
+ # an HTML fragment
9
+
10
+ txts = ARGV
11
+ links = {}
12
+ txts.each do |f|
13
+ if f =~ /(\A[\w\-]+)\.(\d)\.txt\z/
14
+ base = $1
15
+ section = $2
16
+ links["#{base}(#{section})"] = "#{base}_#{section}.html"
17
+ else
18
+ abort "#{f} is not of <BASE>.<SECTION>.txt\n"
19
+ end
20
+ end
21
+
22
+ linkre = links.keys.map { |x| Regexp.escape(x) }.join('|')
23
+
24
+ sections = '[A-Z][A-Z ]+'
25
+ txts.each do |f|
26
+ str = File.read(f)
27
+ str = str.split(/^(#{sections})$/mo)
28
+ str = str.map! do |s|
29
+ case s
30
+ when /\A(#{sections})$/o
31
+ # this is to be compatible with HTML fragments pandoc used
32
+ sec = $1
33
+ anchor = sec.downcase.tr(' ', '-')
34
+ %Q(<h1\nid=#{anchor}>#{sec}</h1>)
35
+ else
36
+ s.encode!(xml: :text)
37
+ s.gsub!(/\b(#{linkre})/mo) do |m|
38
+ manref = $1
39
+ if url = links[manref]
40
+ %Q(<a\nhref="#{url}">#{manref}</a>)
41
+ else
42
+ manref
43
+ end
44
+ end
45
+ s.rstrip!
46
+ s.empty? ? '' : "<pre>#{s}</pre>"
47
+ end # case s
48
+ end.join
49
+
50
+ html = f.sub(/.txt\z/, '.html')
51
+ tmp = html + '+'
52
+ File.open(tmp, 'w') { |f| f.write(str) }
53
+ File.rename(tmp, html)
54
+ end
data/GIT-VERSION-GEN CHANGED
@@ -5,7 +5,7 @@
5
5
  CONSTANT = "Olddoc::VERSION"
6
6
  RVF = "lib/olddoc/version.rb"
7
7
  GVF = "GIT-VERSION-FILE"
8
- DEF_VER = "v1.6.0"
8
+ DEF_VER = "v1.7.0"
9
9
  vn = DEF_VER.dup
10
10
 
11
11
  # First see if there is a version file (included in release tarballs),
data/GNUmakefile CHANGED
@@ -41,7 +41,7 @@ doc: $(placeholders)
41
41
  $(MAKE) -C Documentation html
42
42
  rm -rf doc
43
43
  olddoc prepare
44
- rdoc --debug -f oldweb
44
+ rdoc --debug -f dark216
45
45
  olddoc merge
46
46
  ln NEWS.atom.xml doc/
47
47
 
data/README CHANGED
@@ -3,15 +3,17 @@
3
3
  olddoc contains old-fashioned document generators for those who do not
4
4
  wish to impose bloated, new-fangled web cruft on their readers.
5
5
 
6
- olddoc contains oldweb, an HTML generator without any images, frames,
7
- CSS, or JavaScript. It is designed for users of text-based browsers
8
- and/or low-bandwidth connections. oldweb focuses on text as it is
9
- the lowest common denominator for accessibility and compatibility
6
+ olddoc contains dark216, a HTML generator without any images, frames,
7
+ or JavaScript. It is designed for users of text-based browsers
8
+ and/or low-bandwidth connections; yet respects user preference for
9
+ light color schemes in new CSS browsers while favoring darkness for
10
+ power savings on OLED and CRT displays. dark216 focuses on text as
11
+ it is the lowest common denominator for accessibility and compatibility
10
12
  with people and hardware.
11
13
 
12
14
  == Reasons
13
15
 
14
- * No CSS. Encouraging users to use CSS leads to problems like
16
+ * No CSS required. Encouraging users to use CSS leads to problems like
15
17
  copy-paste hijacking: https://thejh.net/misc/website-terminal-copy-paste
16
18
  External CSS also increases page load time as it often blocks page
17
19
  rendering. Asynchronous loading of CSS also causes accessibility
@@ -38,7 +40,7 @@ missing out!
38
40
 
39
41
  gem install olddoc
40
42
  cd $ANY_RDOC_USING_RUBY_PROJECT
41
- rdoc -f oldweb
43
+ rdoc -f dark216
42
44
 
43
45
  You can also use olddoc to generate NEWS entries
44
46
  assuming you have git tags, a README file and .olddoc.yml
@@ -62,14 +64,15 @@ with git(7)) and send them via email to <olddoc-public@80x24.org>
62
64
  == Contact
63
65
 
64
66
  All feedback (comments, results, feature requests, bug reports, patches,
65
- pull-requests) via plain-text mail to the mailing list is very much
66
- appreciated.
67
+ pull-requests) via plain-text email is very much appreciated.
67
68
 
68
- Please send plain-text mail to the list at <olddoc-public@80x24.org>
69
+ Please send plain-text email to us at <olddoc-public@80x24.org>
70
+ Use reply-to-all as we do not require any sort of subscription.
69
71
  HTML will not be read. olddoc is for GUI-phobes, by GUI-phobes.
70
- Mailing list archives available at https://80x24.org/olddoc-public/
71
- and nntp://news.public-inbox.org/inbox.comp.lang.ruby.olddoc
72
- No subscription will ever be necessary to post to the mailing list.
72
+ We archive all of our mail publically at:
73
+
74
+ https://80x24.org/olddoc-public/
75
+ nntp://news.public-inbox.org/inbox.comp.lang.ruby.olddoc
73
76
 
74
77
  == License
75
78
 
data/Rakefile CHANGED
@@ -21,7 +21,7 @@ task :rsync_docs do
21
21
  gz
22
22
  end
23
23
 
24
- files = `git ls-files Documentation/*.txt`.split(/\n/)
24
+ files = `git ls-files -o Documentation/*.txt`.split(/\n/)
25
25
  files.concat(top)
26
26
  files.concat(%w(NEWS NEWS.atom.xml))
27
27
  files.concat(Dir["doc/*.html"].to_a)
data/lib/dark216.rb ADDED
@@ -0,0 +1,40 @@
1
+ # Copyright (C) 2019 all contributors <olddoc-public@80x24.org>
2
+ # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
3
+
4
+ # Loosely derived from Darkfish in the main rdoc distribution
5
+ require_relative 'oldweb'
6
+
7
+ # dark216 is an \RDoc template and not intended as a programming API.
8
+ # It respect prefers-color-scheme:light on newer browsers with CSS
9
+ # support, but favors darkness for power-savings.
10
+ # You may specify it as an \RDoc formatter:
11
+ #
12
+ # rdoc -f dark216 ...
13
+ class Dark216 < Oldweb
14
+ RDoc::RDoc.add_generator(self) # :nodoc:
15
+ include ERB::Util # :nodoc:
16
+
17
+ # description of the generator
18
+ DESCRIPTION = 'minimal dark HTML generator'
19
+
20
+ # default to a dark, web-safe (216 color) palette for power-savings.
21
+ # Color-capable browsers can respect the prefers-color-scheme:light
22
+ # @media query (browser support a work-in-progress)
23
+ STYLE = <<''.gsub(/^\s*/m, '').delete!("\n") # :nodoc:
24
+ @media screen {
25
+ *{background:#000;color:#ccc}
26
+ a{color:#69f}
27
+ a:visited{color:#96f}
28
+ }
29
+ @media screen AND (prefers-color-scheme:light) {
30
+ *{background:#fff;color:#333}
31
+ a{color:#00f}
32
+ a:visited{color:#808}
33
+ }
34
+
35
+ def initialize(*args) # :nodoc:
36
+ super
37
+ @oldweb_style = STYLE
38
+ end
39
+ end
40
+ # :startdoc:
data/lib/olddoc.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015-2016 all contributors <olddoc-public@80x24.org>
1
+ # Copyright (C) 2015-2019 all contributors <olddoc-public@80x24.org>
2
2
  # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
3
3
  module Olddoc # :nodoc:
4
4
  autoload :Gemspec, 'olddoc/gemspec'
@@ -16,3 +16,4 @@ module Olddoc # :nodoc:
16
16
  end
17
17
  end
18
18
  require_relative 'oldweb'
19
+ require_relative 'dark216'
data/lib/oldweb.rb CHANGED
@@ -91,6 +91,7 @@ class Oldweb
91
91
  cgit_url << '#n%d' # lineno
92
92
  @old_vcs_url = cgit_url
93
93
  end
94
+ @oldweb_style = nil # used by dark216
94
95
  end
95
96
 
96
97
  def generate # :nodoc:
@@ -8,4 +8,8 @@ type="application/atom+xml" /><%
8
8
  end
9
9
  %><meta
10
10
  http-equiv="Content-Type"
11
- content="text/html; charset=<%= @options.charset %>">
11
+ content="text/html; charset=<%= @options.charset %>"><%
12
+ if @oldweb_style
13
+ %><style><%= @oldweb_style %></style><%
14
+ end
15
+ %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: olddoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - olddoc hackers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-07 00:00:00.000000000 Z
11
+ date: 2019-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc
@@ -45,8 +45,9 @@ files:
45
45
  - COPYING
46
46
  - Documentation/.gitignore
47
47
  - Documentation/GNUmakefile
48
- - Documentation/olddoc.1.txt
49
- - Documentation/olddoc.5.txt
48
+ - Documentation/olddoc.1.pod
49
+ - Documentation/olddoc.5.pod
50
+ - Documentation/podtxt2html
50
51
  - GIT-VERSION-GEN
51
52
  - GNUmakefile
52
53
  - INSTALL
@@ -55,6 +56,7 @@ files:
55
56
  - Rakefile
56
57
  - TODO
57
58
  - bin/olddoc
59
+ - lib/dark216.rb
58
60
  - lib/olddoc.rb
59
61
  - lib/olddoc/gemspec.rb
60
62
  - lib/olddoc/history.rb
@@ -104,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
106
  - !ruby/object:Gem::Version
105
107
  version: '0'
106
108
  requirements: []
107
- rubygems_version: 3.0.1
109
+ rubygems_version: 3.0.2
108
110
  signing_key:
109
111
  specification_version: 4
110
112
  summary: old-fashioned Ruby documentation generator
@@ -1,21 +0,0 @@
1
- % olddoc(1) olddoc user manual
2
-
3
- # NAME
4
-
5
- olddoc - old-fashioned RDoc HTML generator
6
-
7
- # SYNOPSIS
8
-
9
- `olddoc` prepare
10
-
11
- `rdoc` -f oldweb
12
-
13
- # DESCRIPTION
14
-
15
- olddoc features oldweb, and old-fashioned RDoc HTML generator.
16
- You can also use "olddoc prepare" to generate NEWS files from
17
- git tags.
18
-
19
- # SEE ALSO
20
-
21
- olddoc(5)