| 1 | #!/usr/bin/env bash
|
| 2 | #
|
| 3 | # Usage:
|
| 4 | # doctools/cmark.sh <function name>
|
| 5 | #
|
| 6 | # Example:
|
| 7 | # doctools/cmark.sh download
|
| 8 | # doctools/cmark.sh extract
|
| 9 | # doctools/cmark.sh build
|
| 10 | # doctools/cmark.sh make-symlink
|
| 11 | # doctools/cmark.sh demo-ours # smoke test
|
| 12 |
|
| 13 | set -o nounset
|
| 14 | set -o pipefail
|
| 15 | set -o errexit
|
| 16 |
|
| 17 | REPO_ROOT=$(cd $(dirname $0)/.. && pwd)
|
| 18 | readonly REPO_ROOT
|
| 19 |
|
| 20 | readonly TAR_DIR=$REPO_ROOT/_cache
|
| 21 | readonly DEPS_DIR=$REPO_ROOT/../oil_DEPS
|
| 22 |
|
| 23 | readonly CMARK_VERSION=0.29.0
|
| 24 | readonly URL="https://github.com/commonmark/cmark/archive/$CMARK_VERSION.tar.gz"
|
| 25 |
|
| 26 | # 5/2020: non-hermetic dependency broke with Python 3 SyntaxError! Gah! TODO:
|
| 27 | # make this hermetic.
|
| 28 | #
|
| 29 | # https://pypi.org/project/Pygments/#history
|
| 30 | #
|
| 31 | # 7/2023: Download the wheel file
|
| 32 | # doctools/oils_doc.py OPTIONALLY uses this
|
| 33 | #
|
| 34 | # It's only used in the blog, so let's just put it in the oilshell.org repo,
|
| 35 | # not the oil repo
|
| 36 |
|
| 37 | download-old-pygments() {
|
| 38 | wget --directory _tmp --no-clobber \
|
| 39 | 'https://files.pythonhosted.org/packages/be/39/32da3184734730c0e4d3fa3b2b5872104668ad6dc1b5a73d8e477e5fe967/Pygments-2.5.2-py2.py3-none-any.whl'
|
| 40 | }
|
| 41 |
|
| 42 | demo-theirs() {
|
| 43 | echo '*hi*' | cmark
|
| 44 | }
|
| 45 |
|
| 46 | demo-ours() {
|
| 47 | export PYTHONPATH=.
|
| 48 |
|
| 49 | echo '*hi*' | doctools/cmark.py
|
| 50 |
|
| 51 | # This translates to <code class="language-sh"> which is cool.
|
| 52 | #
|
| 53 | # We could do syntax highlighting in JavaScript, or simply post-process HTML
|
| 54 |
|
| 55 | doctools/cmark.py <<'EOF'
|
| 56 | ```sh
|
| 57 | code
|
| 58 | block
|
| 59 | ```
|
| 60 |
|
| 61 | ```oil
|
| 62 | code
|
| 63 | block
|
| 64 | ```
|
| 65 | EOF
|
| 66 |
|
| 67 | # The $ syntax can be a little language.
|
| 68 | #
|
| 69 | # $oil-issue
|
| 70 | # $cross-ref
|
| 71 | # $blog-tag
|
| 72 | # $oil-source-file
|
| 73 | # $oil-commit
|
| 74 |
|
| 75 | doctools/cmark.py <<'EOF'
|
| 76 | [click here]($xref:re2c)
|
| 77 | EOF
|
| 78 |
|
| 79 | # Hm for some reason it gets rid of the blank lines in HTML. When rendering
|
| 80 | # to text, we would have to indent and insert blank lines? I guess we can
|
| 81 | # parse <p> and wrap it.
|
| 82 |
|
| 83 | doctools/cmark.py <<'EOF'
|
| 84 | Test spacing out:
|
| 85 |
|
| 86 | echo one
|
| 87 | echo two
|
| 88 |
|
| 89 | Another paragraph with `code`.
|
| 90 | EOF
|
| 91 |
|
| 92 | }
|
| 93 |
|
| 94 | "$@"
|