├── .gitignore ├── sample-slides.pdf ├── w3c.json ├── tests ├── escapes-01.test ├── bom-01.test ├── links-14.test ├── links-04.test ├── links-01.test ├── links-02.test ├── links-03.test ├── links-05.test ├── links-13.test ├── links-15.test ├── links-10.test ├── links-26.test ├── links-07.test ├── links-16.test ├── links-29.test ├── links-33.test ├── links-34.test ├── links-35.test ├── links-06.test ├── links-12.test ├── links-17.test ├── links-36.test ├── links-08.test ├── links-32.test ├── links-11.test ├── links-18.test ├── links-28.test ├── links-21.test ├── links-20.test ├── links-30.test ├── links-09.test ├── links-19.test ├── links-23.test ├── links-27.test ├── links-24.test ├── links-25.test ├── scribenick-03.test ├── draft-04.test ├── draft-03.test ├── repo-01.test ├── repo-02.test ├── urldisplay-01.test ├── urldisplay-02.test ├── rrsagent-02.test ├── subst-01.test ├── repo-03.test ├── slide-2.test ├── logo-01.test ├── draft-01.test ├── draft-02.test ├── urldisplay-03.test ├── logo-05.test ├── chairs-03.test ├── scribeirc-02.test ├── logo-02.test ├── subst-04.test ├── repo-05.test ├── slide-4.test ├── repo-06.test ├── repo-07.test ├── chairs-05.test ├── image-07.test ├── repo-04.test ├── chairs-01.test ├── urldisplay-07.test ├── chairs-02.test ├── scribeirc-03.test ├── logo-03.test ├── multscribes-03.test ├── subst-03.test ├── scribenick-09.test ├── topics-01.test ├── scribeirc-01.test ├── zakim-02.test ├── recording-06.test ├── slide-1.test ├── regrets-01.test ├── zakim-04.test ├── logo-04.test ├── zakim-03.test ├── crlf-yahoo-01.test ├── spacecont-03.test ├── chairs-04.test ├── id-01.test ├── scribenick-05.test ├── links-31.test ├── image-02.test ├── urldisplay-06.test ├── spacecont-04.test ├── substcont-01.test ├── substcont-02.test ├── present-01.test ├── repo-08.test ├── oldstyle-01.test ├── urldisplay-04.test ├── present-03.test ├── repo-09.test ├── oldstyle-02.test ├── present-02.test ├── scribenick-07.test ├── image-04.test ├── image-01.test ├── present-04.test ├── slide-3.test ├── image-03.test ├── spacecont-01.test ├── math-02.test ├── collapse-01.test ├── noscribe-02.test ├── recording-01.test ├── subst-07.test ├── substcont-04.test ├── noscribe-01.test ├── substcont-03.test ├── spacecont-02.test ├── cont-07.test ├── multscribes-01.test ├── multscribes-02.test ├── style-01.test ├── keeplines-01.test ├── style-02.test ├── nextmtg-01.test ├── image-06.test ├── collapse-02.test ├── recording-04.test ├── scribenick-13.test ├── scribenick-06.test ├── subst-05.test ├── yahoo-01.test ├── recording-05.test ├── smiley-01.test ├── urldisplay-05.test ├── multscribes-04.test ├── actions-01.test ├── image-05.test ├── recording-02.test ├── noscribe-03.test ├── cont-08.test ├── zakim-01.test ├── encoding-01.test ├── id-02.test ├── substcont-05.test ├── cont-01.test ├── scribenick-12.test ├── cont-03.test ├── scribenick-04.test ├── substcont-06.test ├── subst-02.test ├── repo-10.test ├── cont-02.test ├── repo-15.test ├── subst-06.test ├── actions-02.test ├── scribenick-11.test ├── cont-09.test ├── multscribes-05.test ├── namedanchor-01.test ├── actions-03.test ├── cont-04.test ├── diagnostics-01.test ├── actions-04.test ├── cont-05.test ├── proposed-01.test ├── error-01.test ├── subtopics-01.test ├── underscore-01.test ├── scribenick-10.test ├── recording-03.test ├── namedanchor-03.test ├── namedanchor-04.test ├── namedanchor-02.test ├── queue-01.test ├── speaker-01.test ├── speaker-03.test ├── present-05.test ├── subst-08.test ├── speaker-02.test ├── urldisplay-09.test ├── scribenick-08.test ├── agenda-01.test ├── subtopics-02.test ├── regrets-02.test ├── cont-06.test ├── repo-11.test ├── repo-14.test ├── resolution-01.test ├── subst-10.test ├── math-03.test ├── issue-01.test ├── arrow-01.test ├── emphasis-03.test ├── recording-07.test ├── strawpoll-01.test ├── emphasis-01.test ├── emphasis-04.test ├── cjk-01.test ├── verbatim-01.test ├── emphasis-02.test ├── subst-09.test ├── zakim-05.test ├── backslash-01.test ├── repo-13.test ├── trackbot-01.test ├── cont-10.test ├── rrsagent-03.test ├── scribenick-02.test ├── urldisplay-08.test └── mirc-text-01.test ├── .htaccess ├── .github └── workflows │ └── test.yml ├── .gitattributes ├── README ├── Makefile └── COPYING /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | tests/*.log 3 | tests/*.result 4 | tmp.html 5 | -------------------------------------------------------------------------------- /sample-slides.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/scribe2/HEAD/sample-slides.pdf -------------------------------------------------------------------------------- /w3c.json: -------------------------------------------------------------------------------- 1 | { 2 | "contacts": ["bert-github"] 3 | , "repo-type": "tool" 4 | , "policy": "restricted" 5 | } 6 | -------------------------------------------------------------------------------- /tests/escapes-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if HTML delimiters are escaped 4 | 5 | echo " & " | \ 6 | perl scribe.perl | \ 7 | grep '<img/> & <link>' 8 | -------------------------------------------------------------------------------- /tests/bom-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if a BOM is accepted. 4 | 5 | LC_ALL=C 6 | echo $'\xEF'$'\xBB'$'\xBF'" line 1"$'\n'" line 2" | \ 7 | perl scribe.perl | \ 8 | grep 'line 2' 9 | -------------------------------------------------------------------------------- /tests/links-14.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test that "->" with no URL does not create a link. 4 | 5 | echo " See -> this for more" | \ 6 | perl scribe.perl -urldisplay=full | \ 7 | grep 'See -> this for more' 8 | -------------------------------------------------------------------------------- /tests/links-04.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if URLs are correctly linked 4 | 5 | echo " Try mailto:foo@example.org for me" | \ 6 | perl scribe.perl | \ 7 | grep 'mailto:foo@example.org' 8 | -------------------------------------------------------------------------------- /tests/links-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if URLs are correctly linked 4 | 5 | echo " ftp://example.org/test" | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep 'ftp://example.org/test' 8 | -------------------------------------------------------------------------------- /tests/links-02.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if URLs are correctly linked 4 | 5 | echo " -> https://example.org/test example anchor " | \ 6 | perl scribe.perl | \ 7 | grep 'example anchor' 8 | -------------------------------------------------------------------------------- /tests/links-03.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if incorrect URL syntax after "agenda:" gives a warning 4 | 5 | echo " Agenda: not-a-URL " | \ 6 | perl scribe.perl 2>&1 | \ 7 | grep "* Found 'Agenda:' not followed by a URL: 'not-a-URL'." 8 | -------------------------------------------------------------------------------- /tests/links-05.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if quoted Ralph-links are correctly linked 4 | 5 | echo " -> https://example.org/test 'example anchor' " | \ 6 | perl scribe.perl | \ 7 | grep 'example anchor' 8 | -------------------------------------------------------------------------------- /tests/links-13.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if Ivan-links are correctly recognized. 4 | 5 | echo " See -> this http://example.org/ for more" | \ 6 | perl scribe.perl -urldisplay=full | \ 7 | grep 'See this for more' 8 | -------------------------------------------------------------------------------- /tests/links-15.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if inverted Xueyuan links are correctly linked 4 | 5 | echo " https://example.org/test -> example anchor " | \ 6 | perl scribe.perl | \ 7 | grep 'example anchor' 8 | -------------------------------------------------------------------------------- /tests/links-10.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if Xueyuan Links are correctly recognized. 4 | 5 | echo " Anchor text -> ftp://example.org/test " | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep 'Anchor text' 8 | -------------------------------------------------------------------------------- /tests/links-26.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test of -emphasis in anchor text 4 | 5 | echo " -> https://example.org/test *example anchor* " | \ 6 | perl scribe.perl -emph | \ 7 | grep 'example anchor' 8 | -------------------------------------------------------------------------------- /tests/links-07.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if quoted Ralph-links are correctly linked 4 | 5 | echo ' -> https://example.org/test "example ('"'"') anchor" ' | \ 6 | perl scribe.perl | \ 7 | grep 'example ('"'"') anchor' 8 | -------------------------------------------------------------------------------- /tests/links-16.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if quoted inverted Xueyuan links are correctly linked 4 | 5 | echo " https://example.org/test -> 'example anchor' " | \ 6 | perl scribe.perl | \ 7 | grep 'example anchor' 8 | -------------------------------------------------------------------------------- /tests/links-29.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if emphasis doesn't break links. 4 | 5 | echo " /Anchor text -> ftp://example.org/test/ " | \ 6 | perl scribe.perl --urldisplay=full --emphasis | \ 7 | grep '/Anchor text' 8 | -------------------------------------------------------------------------------- /tests/links-33.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Check that URLs end before punctuation 4 | 5 | echo " ftp://example.org/test: or how to make URLs." | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep 'ftp://example.org/test' 8 | -------------------------------------------------------------------------------- /tests/links-34.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Check that URLs end before punctuation 4 | 5 | echo " ftp://example.org/test! or how to make URLs." | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep 'ftp://example.org/test' 8 | -------------------------------------------------------------------------------- /tests/links-35.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Check that URLs end before punctuation 4 | 5 | echo " ftp://example.org/test? or how to make URLs." | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep 'ftp://example.org/test' 8 | -------------------------------------------------------------------------------- /tests/links-06.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if inverted Xueyuan links with unpaired quotes are correctly linked 4 | 5 | echo " https://example.org/test ->'t is an anchor" | \ 6 | perl scribe.perl | \ 7 | grep "'t is an anchor" 8 | -------------------------------------------------------------------------------- /tests/links-12.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test of Ralph-links/Xueyuan-links without anchor text. 4 | 5 | echo " -> https://example.org/test " | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep -e 'https://example.org/test' 8 | -------------------------------------------------------------------------------- /tests/links-17.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if quoted inverted Xueyuan links are correctly linked 4 | 5 | echo ' https://example.org/test ->"example ('"'"') anchor" ' | \ 6 | perl scribe.perl | \ 7 | grep 'example ('"'"') anchor' 8 | -------------------------------------------------------------------------------- /tests/links-36.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Check that URLs end before punctuation 4 | 5 | echo " ftp://example.org/test.txt. or how to make URLs." | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep 'ftp://example.org/test.txt' 8 | -------------------------------------------------------------------------------- /tests/links-08.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if Ralph-links containing quotes are correctly linked 4 | 5 | echo ' -> https://example.org/test an "example" anchor ' | \ 6 | perl scribe.perl | \ 7 | grep 'an "example" anchor' 8 | -------------------------------------------------------------------------------- /tests/links-32.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Check that URLs end before punctuation 4 | 5 | echo " ftp://example.org/1,2,3,test, or how to make URLs." | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep 'ftp://example.org/1,2,3,test' 8 | -------------------------------------------------------------------------------- /tests/links-11.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if Xueyuan Links containing quotes are correctly recognized. 4 | 5 | echo " The 'anchor text' -> ftp://example.org/test " | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep "The 'anchor text'" 8 | -------------------------------------------------------------------------------- /tests/links-18.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if inverted Xueyuan links containing quotes are correctly linked 4 | 5 | echo ' https://example.org/test -> an "example" anchor ' | \ 6 | perl scribe.perl | \ 7 | grep 'an "example" anchor' 8 | -------------------------------------------------------------------------------- /tests/links-28.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if emphasized Xueyuan Links are correctly recognized. 4 | 5 | echo " _Anchor text_ -> ftp://example.org/test " | \ 6 | perl scribe.perl --urldisplay=full --emphasis | \ 7 | grep 'Anchor text' 8 | -------------------------------------------------------------------------------- /tests/links-21.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if Xueyuan links with quotes are correctly recognized. 4 | 5 | echo " The \"anchor text\" -> ftp://example.org/test " | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep "The "anchor text"" 8 | -------------------------------------------------------------------------------- /tests/links-20.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if Xueyuan Links with unbalanced quotes are correctly recognized. 4 | 5 | echo " The \"anchor text' -> ftp://example.org/test " | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep "The "anchor text'" 8 | -------------------------------------------------------------------------------- /tests/links-30.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if an inverted Xueyuan link accepts a URL in the anchor text. 4 | 5 | echo " The ftp://example.org/1 -> anchor with ftp://example.org/2" | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep "The anchor with ftp://example.org/2" 8 | -------------------------------------------------------------------------------- /tests/links-09.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if quoted inverted Xueyuan links are correctly linked 4 | 5 | echo " Before the link https://example.org/test -> 'example anchor' after the link " | \ 6 | perl scribe.perl | \ 7 | grep 'Before the link example anchor after the link' 8 | -------------------------------------------------------------------------------- /tests/links-19.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test of inverted Xueyuan links without anchor text. 4 | 5 | url="ftp://example.org/test" 6 | 7 | # Get the generated line: 8 | echo " $url -> " | \ 9 | perl scribe.perl --urldisplay=full | \ 10 | grep -E "
$url

" 11 | -------------------------------------------------------------------------------- /tests/links-23.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if two Ivan links in the same line are correctly recognized. 4 | 5 | echo " The -> anchor 1 ftp://example.org/1 and -> anchor 2 ftp://example.org/2 " | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep "The anchor 1 and anchor 2" 8 | -------------------------------------------------------------------------------- /tests/links-27.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test of quoted inverted Xueyuan links and emphasis in the same line. 4 | 5 | echo " /Before the link/ https://example.org/test -> 'example anchor' /after the link/ " | \ 6 | perl scribe.perl -emphasis | \ 7 | grep 'Before the link example anchor after the link' 8 | -------------------------------------------------------------------------------- /tests/links-24.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if two inverted Xueyuan links in the same line are correctly recognized. 4 | 5 | echo " The ftp://example.org/1 -> 'anchor 1' and ftp://example.org/2 ->anchor 2 " | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep "The anchor 1 and anchor 2" 8 | -------------------------------------------------------------------------------- /tests/links-25.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if two Ralph links in the same line are correctly recognized. 4 | 5 | echo " The -> ftp://example.org/1 'anchor 1' and -> ftp://example.org/2 'anchor 2' and more " | \ 6 | perl scribe.perl --urldisplay=full | \ 7 | grep "The anchor 1 and anchor 2 and more" 8 | -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | # Apache - directory config file 2 | 3 | AddDefaultCharset utf-8 4 | AddCharset utf-8 .html .txt .perl 5 | 6 | Options +Indexes 7 | IndexOptions +NameWidth=* 8 | ReadmeName README 9 | 10 | # README is returned as text/plain anyway, but this is needed to 11 | # make it show up in the directory listing. 12 | # 13 | 14 | ForceType 'text/plain' 15 | 16 | -------------------------------------------------------------------------------- /tests/scribenick-03.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if the scribenick is escaped correctly. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < scribenick: A&B 11 | Hi, A&B! 12 | EOF 13 | 14 | perl scribe.perl $TMP1 >$TMP2 || exit 1 15 | grep '
Scribe
A&B
' $TMP2 16 | -------------------------------------------------------------------------------- /tests/draft-04.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # --nofinal does not remove the '- DRAFT -' 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Agenda: https://www.example.org/a/long/path 11 | ScribeNick: foo 12 | EOF 13 | 14 | perl scribe.perl --nofinal <$TMP1 >$TMP2 || exit 1 15 | grep 'DRAFT' $TMP2 16 | -------------------------------------------------------------------------------- /tests/draft-03.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # --final removes the '- DRAFT -' 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Agenda: https://www.example.org/a/long/path 11 | ScribeNick: foo 12 | EOF 13 | 14 | perl scribe.perl --final <$TMP1 >$TMP2 || exit 1 15 | grep 'DRAFT' $TMP2 && exit 1 16 | exit 0 17 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | on: 2 | push: 3 | branches: master 4 | pull_request: 5 | branches: master 6 | name: test 7 | 8 | jobs: 9 | test: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v4 13 | # - uses: shogo82148/actions-setup-perl@v1 14 | - name: Install latexml and perl 15 | run: sudo apt-get install latexml perl 16 | - name: run tests 17 | run: make check 18 | -------------------------------------------------------------------------------- /tests/repo-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if issues are linked. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/slide-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/slide-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Repo: webrtc-pc 11 | Dom: Talking about #32 12 | EOF 13 | 14 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 15 | 16 | grep -E '' $TMP2 || exit 1 17 | exit 0 18 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # * filter=dater 2 | 3 | # The following files are documentation (category 4 | # "linguist-documentation") and should not enter into the statistics 5 | # collected by Linguist: 6 | 7 | README linguist-documentation 8 | sample-*.html linguist-documentation 9 | sample-*.txt linguist-documentation 10 | scribedoc.html linguist-documentation 11 | rescue.html linguist-documentation 12 | tests/*.test linguist-documentation 13 | -------------------------------------------------------------------------------- /tests/repo-02.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if issues are linked 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/slide-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/slide-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Repo: webmachinelearning/webnn 11 | Dom: Talking about PR #34 12 | EOF 13 | 14 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 15 | 16 | grep -E -q '' $TMP2 || exit 1 17 | exit 0 18 | -------------------------------------------------------------------------------- /tests/urldisplay-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # --urlDisplay option requires an argument 4 | 5 | trap 'rm $TMP1 $TMP3' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Agenda: https://www.example.org/a/long/path 11 | ScribeNick: foo 12 | EOF 13 | 14 | perl scribe.perl --urlDisplay <$TMP1 >/dev/null 2>$TMP3 && exit 1 15 | 16 | grep 'Option urldisplay requires an argument' $TMP3 || exit 1 17 | -------------------------------------------------------------------------------- /tests/urldisplay-02.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # --urlDisplay option requires an argument 4 | 5 | trap 'rm $TMP1 $TMP3' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Agenda: https://www.example.org/a/long/path 11 | ScribeNick: foo 12 | EOF 13 | 14 | perl scribe.perl --urlDisplay=foo <$TMP1 >/dev/null 2>$TMP3 && exit 1 15 | 16 | grep -e '--urlDisplay must be break, shorten or full' $TMP3 || exit 1 17 | -------------------------------------------------------------------------------- /tests/rrsagent-02.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if Zakim's list of attendees is recognized 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Leaving. As of this point the attendees were Abbott, Costello, Harpo, 11 | 16:00:00 ... Jose 12 | EOF 13 | 14 | perl scribe.perl $TMP1 >$TMP2 15 | 16 | grep '
Present
Abbott, Costello, Harpo, Jose
' $TMP2 17 | -------------------------------------------------------------------------------- /tests/subst-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test s/../../ command 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Original text 11 | s/Final/Original/G 12 | s/Original/Final/G 13 | Original text 14 | EOF 15 | 16 | perl scribe.perl $TMP1 >$TMP2 || exit 1 17 | 18 | cat $TMP2 19 | 20 | grep 'Original text' $TMP2 && exit 1 21 | [[ $(grep -c 'Final text' $TMP2) == 2 ]] 22 | -------------------------------------------------------------------------------- /tests/repo-03.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test of a repo with a full URL. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/slide-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/slide-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Repo: https://github.com/w3ctag/design-principles/ 11 | Dom: Talking about issue #32 12 | EOF 13 | 14 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 15 | 16 | grep -E '
' $TMP2 || exit 1 17 | exit 0 18 | -------------------------------------------------------------------------------- /tests/slide-2.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if slide insertion works 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/slide-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/slide-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Slideset: https://example.org/slides.pdf 11 | [Slide 1] 12 | EOF 13 | 14 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 15 | cat $TMP2 16 | 17 | grep -E '' $TMP2 || exit 1 18 | exit 0 19 | -------------------------------------------------------------------------------- /tests/logo-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test that the --logo='' option removes the logo. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/logo-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/logo-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Here is some text. 11 | It doesn't really matter. 12 | EOF 13 | 14 | perl scribe.perl --logo='' $TMP1 >$TMP2 || exit 1 15 | 16 | cat $TMP2 17 | 18 | # Check that there is no W3C logo: 19 | grep -F "//www.w3.org/Icons/w3c" $TMP2 20 | test $? != 0 || exit 1 21 | -------------------------------------------------------------------------------- /tests/draft-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # --final and --nodraft are the same 4 | 5 | trap 'rm $TMP1 $TMP2 $TMP3' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 9 | 10 | cat >$TMP1 < Agenda: https://www.example.org/a/long/path 12 | ScribeNick: foo 13 | EOF 14 | 15 | perl scribe.perl --final <$TMP1 >$TMP2 || exit 1 16 | perl scribe.perl --nodraft <$TMP1 >$TMP3 || exit 1 17 | 18 | diff -u $TMP2 $TMP3 19 | -------------------------------------------------------------------------------- /tests/draft-02.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # --nofinal and --draft are the same 4 | 5 | trap 'rm $TMP1 $TMP2 $TMP3' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 9 | 10 | cat >$TMP1 < Agenda: https://www.example.org/a/long/path 12 | ScribeNick: foo 13 | EOF 14 | 15 | perl scribe.perl --nofinal <$TMP1 >$TMP2 || exit 1 16 | perl scribe.perl --draft <$TMP1 >$TMP3 || exit 1 17 | 18 | diff -u $TMP2 $TMP3 19 | -------------------------------------------------------------------------------- /tests/urldisplay-03.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # --urlDisplay option 'break' is default 4 | 5 | trap 'rm $TMP1 $TMP2 $TMP3' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 9 | 10 | cat >$TMP1 < Agenda: https://www.example.org/a/long/path 12 | ScribeNick: foo 13 | EOF 14 | 15 | perl scribe.perl --urlDisplay=break <$TMP1 >$TMP2 || exit 1 16 | perl scribe.perl <$TMP1 >$TMP3 || exit 1 17 | 18 | diff -u $TMP2 $TMP3 19 | -------------------------------------------------------------------------------- /tests/logo-05.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test that the --nologo option removes the logo. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/logo-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/logo-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Here is some text. 11 | It doesn't really matter. 12 | scribeoptions : -nologo 13 | EOF 14 | 15 | perl scribe.perl $TMP1 >$TMP2 || exit 1 16 | 17 | cat $TMP2 18 | 19 | # Check that there is no W3C logo: 20 | grep -F "//www.w3.org/Icons/w3c" $TMP2 21 | test $? != 0 || exit 1 22 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | scribe.perl is a program to convert an IRC log with meeting minutes to HTML. 2 | 3 | It is usually invoked on IRC by RRSAgent[1], but can also be run locally by hand. See scribedoc.html[2] for the IRC conventions it understands. 4 | 5 | This is version 2 of scribe.perl, an improved version of the original scribe.perl[3,4] by David Booth. 6 | 7 | [1] https://www.w3.org/2002/03/RRSAgent 8 | [2] https://w3c.github.io/scribe2/scribedoc.html 9 | [3] https://w3c.github.io/scribe/scribedoc.htm 10 | [4] https://github.com/w3c/scribe 11 | -------------------------------------------------------------------------------- /tests/chairs-03.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if "chair+" and "chair+ foo, bar" are recognized. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Something 11 | Chair+ 12 | Chair +Conny ,Bob 13 | Else 14 | EOF 15 | 16 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 17 | 18 | # Abel, Bob and Conny should all three be there, in alphabetical order: 19 | 20 | grep -E '
Chair.*\bAbel, Bob, Conny\b' $TMP2 21 | -------------------------------------------------------------------------------- /tests/scribeirc-02.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # The scribe's IRC remarks must start with the exact scribenick 4 | # (case-insensitive), i.e., "Ralph", not "won". 5 | 6 | trap 'rm $TMP1 $TMP2' 0 7 | TMP1=`mktemp /tmp/scribeirc-XXXXXX` || exit 1 8 | TMP2=`mktemp /tmp/scribeirc-XXXXXX` || exit 1 9 | 10 | cat >$TMP1 <<-EOF 11 | scribenick: ralph 12 | Bill: We wonn! 13 | Yay! 14 | +1 15 | EOF 16 | 17 | perl scribe.perl $TMP1 >$TMP2 || exit 1 18 | 19 | grep ' class=summary><won> +1

' $TMP2 || exit 1 20 | -------------------------------------------------------------------------------- /tests/logo-02.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test that the -logo option in "scribeoptions" removes the W3C logo. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/logo-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/logo-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Here is some text. 11 | It doesn't really matter. 12 | scribeoptions: -logo '' 13 | EOF 14 | 15 | perl scribe.perl $TMP1 >$TMP2 || exit 1 16 | 17 | cat $TMP2 18 | 19 | # Check that there is no W3C logo: 20 | grep -F "//www.w3.org/Icons/w3c" $TMP2 21 | test $? != 0 || exit 1 22 | -------------------------------------------------------------------------------- /tests/subst-04.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test s/// and i/// commands 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Original text 11 | Anchor text 12 | i|Anchor|s/Original/Changed/| 13 | EOF 14 | 15 | perl scribe.perl $TMP1 >$TMP2 || exit 1 16 | 17 | cat $TMP2 18 | 19 | # The s/// line must be inserted, but not treated as a command itself. 20 | grep 'Original text' $TMP2 || exit 1 21 | grep 's/Original/Changed/' $TMP2 22 | -------------------------------------------------------------------------------- /tests/repo-05.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if repositories are recognized 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/slide-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/slide-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Repo: transitions, webrtc-pc 11 | Dom: Talking about issue #32 and then pull #34 12 | EOF 13 | 14 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 15 | 16 | grep -E '
' $TMP2 || exit 1 17 | grep -E '' $TMP2 || exit 1 18 | exit 0 19 | -------------------------------------------------------------------------------- /tests/slide-4.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if slide insertion works 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/slide-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/slide-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Slideset: https://example.org/ 11 | [Slide 1] 12 | Slideset: 13 | [Slide 3] 14 | EOF 15 | 16 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 17 | cat $TMP2 18 | 19 | grep -E '' $TMP2 || exit 1 20 | grep -E ' class=summary>\[Slide 3\]

' $TMP2 || exit 1 21 | 22 | exit 0 23 | -------------------------------------------------------------------------------- /tests/repo-06.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if github base set in topic works 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/slide-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/slide-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Topic: -> https://github.com/w3c/webrtc-pc WebRTC 1.0 Spec 11 | Dom: Talking about issue #32 and then pull #34 12 | EOF 13 | 14 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 15 | 16 | grep -E '
' $TMP2 || exit 1 17 | grep -E '' $TMP2 || exit 1 18 | exit 0 19 | -------------------------------------------------------------------------------- /tests/repo-07.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if github base set in subtopic works 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/slide-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/slide-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Subtopic: -> https://github.com/w3c/webrtc-pc WebRTC 1.0 Spec 11 | Dom: Talking about issue #32 and then pull #34 12 | EOF 13 | 14 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 15 | 16 | grep -E '' $TMP2 || exit 1 17 | grep -E '' $TMP2 || exit 1 18 | exit 0 19 | -------------------------------------------------------------------------------- /tests/chairs-05.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if empty "chair:" is correctly ignored. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Something 11 | Chair: Bob 12 | Chair: 13 | Else 14 | EOF 15 | 16 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 17 | 18 | # Bob should be chair: 19 | grep -E '
Chair.*Bob' $TMP2 || exit 1 20 | 21 | cat $TMP2 22 | 23 | # There should be a warning about an ignored command: 24 | grep -E 'Ignored empty command "Chair:"' $TMP2 || exit 1 25 | 26 | exit 0 27 | -------------------------------------------------------------------------------- /tests/image-07.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test of images (with "-->") inside a topic. 4 | 5 | trap 'rm $TMP1' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | 8 | url="https://www.w3.org/Icons/w3c_48x48.png" 9 | 10 | # Generate the minutes: 11 | echo -e " scribenick:bar\n Topic: --> Image $url" | \ 12 | perl scribe.perl -embed >$TMP1 13 | 14 | # See if the expected H3 (with an image) is in the minutes: 15 | grep -E "\"Image\"" $TMP1 || exit 1 16 | 17 | # See if the expected line (without the image) is in the ToC: 18 | grep -E "
  • Image
  • " $TMP1 19 | -------------------------------------------------------------------------------- /tests/repo-04.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test that issues are not linked inside other links 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/slide-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/slide-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Repo: https://github.com/w3ctag/design-principles/ 11 | -> https://github.com/w3c/webrtc-pc/issues/32 Issue #32 12 | EOF 13 | 14 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 15 | 16 | grep -E -q '' $TMP2 || exit 1 17 | grep -q '' $TMP2 && exit 1 18 | exit 0 19 | -------------------------------------------------------------------------------- /tests/chairs-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if "chair:" and "chairs:" are recognized. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Something 11 | Chair: Abel 12 | Chairs: Bob & Conny 13 | Else 14 | EOF 15 | 16 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 17 | 18 | grep -E '
    Chair.*\bBob\b' $TMP2 || exit 1 # Bob should be there 19 | grep -E '
    Chair.*\bConny\b' $TMP2 || exit 1 # Conny should be there 20 | grep -E '
    Chair.*\bAbel\b' $TMP2 && exit 1 # Abel should NOT be there 21 | exit 0 22 | -------------------------------------------------------------------------------- /tests/urldisplay-07.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # --urlDisplay option 'shorten' also works via 'ScribeOptions' 4 | 5 | trap 'rm $TMP1 $TMP2 $TMP3' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 9 | 10 | cat >$TMP1 < baz: Hi 12 | bar: https://www.example.org/a/long/path 13 | ScribeNick: foo 14 | EOF 15 | 16 | perl scribe.perl --urlDisplay=shorten <$TMP1 >$TMP2 || exit 1 17 | 18 | echo ' ScribeOptions: -urlDisplay=shorten' >>$TMP1 19 | 20 | perl scribe.perl <$TMP1 >$TMP3 || exit 1 21 | 22 | diff -u $TMP2 $TMP3 23 | -------------------------------------------------------------------------------- /tests/chairs-02.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if "chair:" and "chairs:" are recognized. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Something 11 | Chairs: Bob & Conny 12 | Chair: Abel 13 | Else 14 | EOF 15 | 16 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 17 | 18 | grep -E '
    Chair.*\bBob\b' $TMP2 && exit 1 # Bob should NOT be there 19 | grep -E '
    Chair.*\bConny\b' $TMP2 && exit 1 # Conny should NOT be there 20 | grep -E '
    Chair.*\bAbel\b' $TMP2 || exit 1 # Abel should be there 21 | exit 0 22 | -------------------------------------------------------------------------------- /tests/scribeirc-03.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # After the scribe's IRC remarks, continuation lines still work. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/scribeirc-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/scribeirc-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 <<-EOF 10 | scribenick: ralph 11 | Bill: Let's do a straw poll 12 | +1 13 | +1 14 | +1 15 | ... Consensus! 16 | EOF 17 | 18 | perl scribe.perl $TMP1 >$TMP2 || exit 1 19 | 20 | grep ' class=irc><Ralph> +1

    ' $TMP2 || exit 1 21 | grep ' class="phone s01">Bill: Consensus!

    ' $TMP2 || exit 1 22 | -------------------------------------------------------------------------------- /tests/logo-03.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test that the --logo option adds the given logo 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/logo-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/logo-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Here is some text. 11 | It doesn't really matter. 12 | EOF 13 | 14 | logo='
    Example' 15 | 16 | perl scribe.perl --logo="$logo" $TMP1 >$TMP2 || exit 1 17 | 18 | # Check that there is no W3C logo: 19 | grep -F "//www.w3.org/Icons/w3c" $TMP2 && exit 1 20 | 21 | # Check that there is the "Example" logo: 22 | grep -F "$logo" $TMP2 || exit 1 23 | -------------------------------------------------------------------------------- /tests/multscribes-03.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test multiple concurrent scribes 4 | 5 | trap 'rm $TMP1 $TMP2 $TMP3 $TMP4' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 9 | TMP4=`mktemp /tmp/topics-XXXXXX` || exit 1 10 | 11 | cat >$TMP1 < scribenick: Ben ,Joe , Dina 13 | Joe: I agree. 14 | Ben: me too. 15 | Joe and Ben agree. 16 | EOF 17 | 18 | cat >$TMP4 <Scribe
    Ben, Joe, Dina
    20 | EOF 21 | 22 | perl scribe.perl $TMP1 >$TMP2 23 | grep '
    Scribe' $TMP2 >$TMP3 24 | diff -u $TMP4 $TMP3 25 | -------------------------------------------------------------------------------- /tests/subst-03.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test s/../../ command 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Original text 11 | Original text 12 | s/Original/Intermediate 13 | s/Intermediate/Final/ 14 | s/Original/Intermediate/g 15 | s/Intermediate/Final/G 16 | Intermediate text 17 | EOF 18 | 19 | perl scribe.perl $TMP1 >$TMP2 || exit 1 20 | 21 | cat $TMP2 22 | 23 | grep 'Original text' $TMP2 && exit 1 24 | grep 'Intermediate text' $TMP2 && exit 1 25 | [[ $(grep -c 'Final text' $TMP2) == 3 ]] 26 | -------------------------------------------------------------------------------- /tests/scribenick-09.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if warnings are given for empty scribe commands. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < bar: I just say 11 | 13:28:46 scribe: 12 | 13:28:56 scribenick : 13 | 13:29:06 baz: you say 14 | 13:29:16 bar: OK 15 | EOF 16 | 17 | perl scribe.perl -embedDiagnostics $TMP1 >$TMP2 || exit 1 18 | 19 | # cat $TMP2 20 | 21 | grep 'Ignored empty command "scribe:' $TMP2 || exit 1 22 | grep 'Ignored empty command "scribenick :' $TMP2 || exit 1 23 | -------------------------------------------------------------------------------- /tests/topics-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if topics are recognized 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Not a topic 11 | Topic: First topic 12 | Topic: Second one 13 | Just a line 14 | EOF 15 | 16 | perl scribe.perl $TMP1 >$TMP2 || exit 1 17 | grep -E '
  • First topic
  • ' $TMP2 || exit 1 18 | grep -E '
  • Second one
  • ' $TMP2 || exit 1 19 | grep -E '
  • Not a topic' $TMP2 && exit 1 20 | grep -E '
  • Just a line' $TMP2 && exit 1 21 | exit 0 22 | -------------------------------------------------------------------------------- /tests/scribeirc-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if a scribe can make IRC remarks, i.e., "escape" from his role 4 | # as scribe. 5 | 6 | trap 'rm $TMP1 $TMP2' 0 7 | TMP1=`mktemp /tmp/scribeirc-XXXXXX` || exit 1 8 | TMP2=`mktemp /tmp/scribeirc-XXXXXX` || exit 1 9 | 10 | cat >$TMP1 <<-EOF 11 | scribenick: ralph 12 | Bill: Let's do a straw poll 13 | +1 14 | +1 15 | +1 16 | Bill: Consensus! 17 | EOF 18 | 19 | perl scribe.perl $TMP1 >$TMP2 || exit 1 20 | 21 | grep ' class=irc><Ralph> +1

    ' $TMP2 || exit 1 22 | grep ' class="phone s01">Bill: Consensus!

    ' $TMP2 || exit 1 23 | -------------------------------------------------------------------------------- /tests/zakim-02.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if Zakim's "present: (no one)" is recognized 4 | 5 | trap 'rm $TMP1 $TMP2 $TMP3 $TMP4' 0 6 | TMP1=`mktemp /tmp/zakim-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/zakim-XXXXXX` || exit 1 8 | TMP3=`mktemp /tmp/zakim-XXXXXX` || exit 1 9 | TMP4=`mktemp /tmp/zakim-XXXXXX` || exit 1 10 | 11 | cat >$TMP1 < present: Mike, Ann 13 | 21:13:41 Zakim, who is here? 14 | 21:13:46 Present: (no one) 15 | 21:13:49 OK 16 | EOF 17 | 18 | cat >$TMP4 <Present
  • -
    20 | EOF 21 | 22 | perl scribe.perl $TMP1 >$TMP2 23 | 24 | grep '
    Present' $TMP2 >$TMP3 25 | diff -u $TMP4 $TMP3 26 | -------------------------------------------------------------------------------- /tests/recording-06.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if incorrect "recording" command is ignored. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/slide-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/slide-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Recording: not-a-url 11 | 01:03:04 Topic: First topic 12 | 01:05:02 recording started at :03 13 | 01:08:05 recording ends 14 | 01:10:04 Topic: Second topic 15 | EOF 16 | 17 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 18 | cat $TMP2 19 | echo '---------' 20 | 21 | grep -F 'Second topic' $TMP2 || exit 1 22 | grep -F '
    $TMP1 < Slideset: https://example.org/ 11 | [Slide 1] 12 | Francois: this rocks 13 | [Slide 2] 14 | Dom: I'm unconvinced 15 | EOF 16 | 17 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 18 | cat $TMP2 19 | 20 | grep -E '' $TMP2 || exit 1 21 | grep -E ' 24 | EOF 25 | 26 | perl scribe.perl --emphasis --mathjax=$MATHJAX $TMP1 >$TMP2 27 | 28 | # Extract just the script: 29 | grep '$TMP3 30 | 31 | diff -u $TMP4 $TMP3 32 | -------------------------------------------------------------------------------- /tests/collapse-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test with the number of regrets not surpassing --collapseLimit 4 | 5 | trap 'rm $TMP1 $TMP2 $TMP3 $TMP4' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 9 | TMP4=`mktemp /tmp/topics-XXXXXX` || exit 1 10 | 11 | cat >$TMP1 < bar: I just say 13 | 13:28:46 ... I say nothing 14 | 13:28:56 Better: I say nada 15 | 13:29:06 baz: you say 16 | 13:29:16 bar: OK 17 | 13:29:17 present+ 18 | 13:29:18 present+ 19 | 13:30:18 regrets: aa, bb, cc, dd, ee, ff 20 | EOF 21 | 22 | cat >$TMP3 <Regrets
    aa, bb, cc, dd, ee, ff
    24 | EOF 25 | 26 | perl scribe.perl --collapseLimit=6 $TMP1 >$TMP2 || exit 1 27 | grep '
    Regrets' $TMP2 >$TMP4 28 | diff -u $TMP3 $TMP4 29 | -------------------------------------------------------------------------------- /tests/noscribe-02.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test the "scribenick: *" feature. 4 | 5 | trap 'rm $TMP1 $TMP2 $TMP3 $TMP4' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 9 | TMP4=`mktemp /tmp/topics-XXXXXX` || exit 1 10 | 11 | cat >$TMP1 < Joe: I agree. 13 | Ben: me too. 14 | Joe and Ben agree. 15 | EOF 16 | 17 | cat >$TMP4 < 19 |

    Meeting minutes

    20 |

    Joe: I agree.

    21 |

    Ben: me too.

    22 |

    Joe and Ben agree.

    23 |
    24 | 25 | EOF 26 | 27 | perl scribe.perl --scribenick=* $TMP1 >$TMP2 28 | sed -n -e '/
    /p' $TMP2 >$TMP3 29 | diff -u $TMP4 $TMP3 30 | -------------------------------------------------------------------------------- /tests/recording-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test links to recording. 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/slide-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/slide-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < Recording: https://youtu.be/PjpACM_6IgM 11 | 00:01:02 recording is starting 12 | 01:03:04 Topic: First topic 13 | EOF 14 | 15 | perl scribe.perl -embed $TMP1 >$TMP2 || exit 1 16 | 17 | cat $TMP2 18 | echo '--------' 19 | 20 | grep -F '
    Recording: ' $TMP2 || exit 1 25 | exit 0 26 | -------------------------------------------------------------------------------- /tests/subst-07.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test that a s/// can change --> into -> 4 | 5 | trap 'rm $TMP1 $TMP2 $TMP3 $TMP4' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 9 | TMP4=`mktemp /tmp/topics-XXXXXX` || exit 1 10 | 11 | cat >$TMP1 < Scribe: foo 13 | --> http://www.example.org/ my image 14 | s|--> http://www.example.org/|-> http://www.example.org/ 15 | EOF 16 | 17 | cat >$TMP4 < 19 |

    Meeting minutes

    20 |

    my image

    21 |
    22 |
    23 | EOF 24 | 25 | perl scribe.perl $TMP1 >$TMP2 || exit 1 26 | 27 | # Extract just the minutes 28 | sed -n -e '/
    /p' $TMP2 >$TMP3 29 | 30 | diff -u $TMP4 $TMP3 31 | -------------------------------------------------------------------------------- /tests/substcont-04.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test continuation after a failed s/../../ command by the scribe 4 | 5 | trap 'rm $TMP1 $TMP2 $TMP3 $TMP4' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 9 | TMP4=`mktemp /tmp/topics-XXXXXX` || exit 1 10 | 11 | cat >$TMP1 < Joe: Original text 13 | s/doesnotexist/Final/G 14 | ... And more 15 | EOF 16 | 17 | cat >$TMP3 <

    Joe: Original text

    19 |

    <foo> s/doesnotexist/Final/G

    20 |

    Joe: And more

    21 |
    22 | EOF 23 | 24 | perl scribe.perl $TMP1 >$TMP2 || exit 1 25 | 26 | sed -n -e '/
    /,/<\/section>/p' $TMP2 >$TMP4 27 | 28 | diff -u $TMP3 $TMP4 29 | -------------------------------------------------------------------------------- /tests/noscribe-01.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test the "scribenick: *" feature. 4 | 5 | trap 'rm $TMP1 $TMP2 $TMP3 $TMP4' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 9 | TMP4=`mktemp /tmp/topics-XXXXXX` || exit 1 10 | 11 | cat >$TMP1 < scribenick: * 13 | Joe: I agree. 14 | Ben: me too. 15 | Joe and Ben agree. 16 | EOF 17 | 18 | cat >$TMP4 < 20 |

    Meeting minutes

    21 |

    Joe: I agree.

    22 |

    Ben: me too.

    23 |

    Joe and Ben agree.

    24 |
    25 | 26 | EOF 27 | 28 | perl scribe.perl $TMP1 >$TMP2 29 | sed -n -e '/
    /p' $TMP2 >$TMP3 30 | diff -u $TMP4 $TMP3 31 | -------------------------------------------------------------------------------- /tests/substcont-03.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test continuation after a failed s/../../ command by a non-scribe 4 | 5 | trap 'rm $TMP1 $TMP2 $TMP3 $TMP4' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 9 | TMP4=`mktemp /tmp/topics-XXXXXX` || exit 1 10 | 11 | cat >$TMP1 < Joe: Original text 13 | s/doesnotexist/Final/G 14 | ... And more 15 | EOF 16 | 17 | cat >$TMP3 <

    Joe: Original text

    19 |

    <bar> s/doesnotexist/Final/G

    20 |

    Joe: And more

    21 |
    22 | EOF 23 | 24 | perl scribe.perl $TMP1 >$TMP2 || exit 1 25 | 26 | sed -n -e '/
    /,/<\/section>/p' $TMP2 >$TMP4 27 | 28 | diff -u $TMP3 $TMP4 29 | -------------------------------------------------------------------------------- /tests/spacecont-02.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test if "scribeOptions: -noallowSpaceCont" is recognized 4 | 5 | trap 'rm $TMP1 $TMP2' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | 9 | cat >$TMP1 < scribenick: foo 11 | 13:28:36 bar: I just say 12 | 13:28:46 I say nothing 13 | 13:28:56 baz: I say nada 14 | 13:29:06 baz: you say 15 | 13:29:16 scribeOptions: -noallowSpaceContinuation 16 | EOF 17 | 18 | perl scribe.perl $TMP1 >$TMP2 || exit 1 19 | 20 | grep -E 'bar: I just say

    ' $TMP2 || exit 1 21 | grep -E ' I say nothing

    ' $TMP2 || exit 1 22 | grep -E 'baz: I say nada

    ' $TMP2 || exit 1 23 | grep -E 'baz: you say

    ' $TMP2 || exit 1 24 | exit 0 25 | -------------------------------------------------------------------------------- /tests/cont-07.test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Test that topics can be have continuation lines. 4 | 5 | trap 'rm $TMP1 $TMP2 $TMP3 $TMP4' 0 6 | TMP1=`mktemp /tmp/topics-XXXXXX` || exit 1 7 | TMP2=`mktemp /tmp/topics-XXXXXX` || exit 1 8 | TMP3=`mktemp /tmp/topics-XXXXXX` || exit 1 9 | TMP4=`mktemp /tmp/topics-XXXXXX` || exit 1 10 | 11 | cat >$TMP1 < scribe: foo 13 | Topic: Agendaa, 14 | s/aa/a/ 15 | ... roll call 16 | .. and scribe 17 | present+ bar 18 | q? 19 | s/hmmm/hmm/ 20 | EOF 21 | 22 | cat >$TMP4 < 24 |

    Contents

    25 |
      26 |
    1. Agenda,
      27 | … roll call
      28 | … and scribe
    2. 29 |
    30 | 31 | EOF 32 | 33 | perl scribe.perl $TMP1 >$TMP2 || exit 1 34 | 35 | # Extract just the ToC 36 | sed -n -e '/