diff --git a/.ci/deploy-docs.sh b/.ci/deploy-docs.sh new file mode 100755 index 000000000..8c60a2242 --- /dev/null +++ b/.ci/deploy-docs.sh @@ -0,0 +1,25 @@ +set -o errexit -o nounset + +if [ "$TRAVIS_OS_NAME" == "linux" -a "$CC" == "gcc" -a "$TRAVIS_PULL_REQUEST" == "false" -a "$TRAVIS_BRANCH" == "master" ] +then + DOCSDIR=build-docs + REVISION=$(git rev-parse --short HEAD) + + rm -rf $DOCSDIR || exit + mkdir $DOCSDIR + cd $DOCSDIR + + cp ../docs/html/* . + + git init + git config user.name "Travis CI" + git config user.email "travis@harfbuzz.org" + git remote add upstream "https://$GH_TOKEN@github.com/$TRAVIS_REPO_SLUG.git" + git fetch upstream + git reset upstream/gh-pages + + touch . + git add -A . + git commit -m "Rebuild docs for $REVISION" + git push -q upstream HEAD:gh-pages +fi diff --git a/.travis.yml b/.travis.yml index 817811c4a..798f5eec6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,7 @@ env: - CFLAGS="-Werror --coverage" - CXXFLAGS="-Werror --coverage" - LDFLAGS="--coverage" + - secure: "EysLG1MB6WCvDVpls5jsJAYsXcbHTmSFYl11UlAQCNfU+MBv7qiuOR6im3tM4ISzt4TY+OQXxEktMFRT+8govLR4UWo8dwmZ4P/2GqMbsZNPVSLkbDEy6hVv7xe5X4mp+npHthY1Z1YOLKGAh/u1PymySZz6qAzsCZ6Fq/H5Ri8=" install: - if [ "$TRAVIS_OS_NAME" == "linux" ]; then pip install --user nose; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then pip install --user cpp-coveralls; fi # for coveralls.io code coverage tracking @@ -23,11 +24,14 @@ install: script: - NOCONFIGURE=1 ./autogen.sh - export CONFIGURE_OPTS="--with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2" + - if [ "$TRAVIS_OS_NAME" == "linux" -a "$CC" == "gcc" ]; then export CONFIGURE_OPTS="$CONFIGURE_OPTS --enable-gtk-doc"; fi - if [ "$TRAVIS_OS_NAME" == "osx" ]; then export CONFIGURE_OPTS="$CONFIGURE_OPTS --with-coretext"; fi - ./configure $CONFIGURE_OPTS - make - make check - if [ "$TRAVIS_OS_NAME" == "linux" -a "$CC" == "gcc" ]; then rm -f src/.libs/NONE.gcov; touch src/NONE; coveralls; fi +after_success: + - bash .ci/deploy-docs.sh notifications: irc: "irc.freenode.org#harfbuzz" email: harfbuzz@lists.freedesktop.org diff --git a/docs/HarfBuzz.png b/docs/HarfBuzz.png new file mode 100644 index 000000000..d58d9fc5a Binary files /dev/null and b/docs/HarfBuzz.png differ diff --git a/docs/Makefile.am b/docs/Makefile.am index f605f24b4..5e6fd2b3c 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -65,17 +65,19 @@ EXTRA_HFILES=$(top_builddir)/src/hb-version.h # Images to copy into HTML directory. # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png -HTML_IMAGES= +HTML_IMAGES= \ + HarfBuzz.png # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files= \ - usermanual-ch01.xml \ - usermanual-ch02.xml \ - usermanual-ch03.xml \ - usermanual-ch04.xml \ - usermanual-ch05.xml \ - usermanual-ch06.xml \ + usermanual-buffers-language-script-and-direction.xml \ + usermanual-fonts-and-faces.xml \ + usermanual-glyph-information.xml \ + usermanual-hello-harfbuzz.xml \ + usermanual-install-harfbuzz.xml \ + usermanual-opentype-features.xml \ + usermanual-what-is-harfbuzz.xml \ version.xml # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded diff --git a/docs/harfbuzz-docs.xml b/docs/harfbuzz-docs.xml index 60ff8e28d..7d2232f60 100644 --- a/docs/harfbuzz-docs.xml +++ b/docs/harfbuzz-docs.xml @@ -7,24 +7,56 @@ HarfBuzz Manual - - for HarfBuzz &version;. - - + + HarfBuzz + + + HarfBuzz is an OpenType + text shaping engine. + + + The current HarfBuzz codebase, formerly known as harfbuzz-ng, is + versioned 1.x.x and is stable and under active maintenance. This is + what is used in latest versions of Firefox, GNOME, ChromeOS, Chrome, + LibreOffice, XeTeX, Android, and KDE, among other places. The canonical + source tree is available + here. + Also available on + github. + See for release tarballs. + + + The old HarfBuzz codebase, these days known as harfbuzz-old, was + derived from FreeType, + Pango, and + Qt and is available + here. + It is not actively developed or maintained, and is extremely buggy. All + users are encouraged to switch over to the new HarfBuzz as soon as + possible. There are no release tarballs of old HarfBuzz whatsoever. + + User's manual - - - - - - + + + + + + + + + + This document is for HarfBuzz &version;. + + + Reference manual Harfbuzz API diff --git a/docs/usermanual-ch03.xml b/docs/usermanual-buffers-language-script-and-direction.xml similarity index 100% rename from docs/usermanual-ch03.xml rename to docs/usermanual-buffers-language-script-and-direction.xml diff --git a/docs/usermanual-ch04.xml b/docs/usermanual-fonts-and-faces.xml similarity index 100% rename from docs/usermanual-ch04.xml rename to docs/usermanual-fonts-and-faces.xml diff --git a/docs/usermanual-ch06.xml b/docs/usermanual-glyph-information.xml similarity index 100% rename from docs/usermanual-ch06.xml rename to docs/usermanual-glyph-information.xml diff --git a/docs/usermanual-ch02.xml b/docs/usermanual-hello-harfbuzz.xml similarity index 100% rename from docs/usermanual-ch02.xml rename to docs/usermanual-hello-harfbuzz.xml diff --git a/docs/usermanual-install-harfbuzz.xml b/docs/usermanual-install-harfbuzz.xml new file mode 100644 index 000000000..be8ac8d12 --- /dev/null +++ b/docs/usermanual-install-harfbuzz.xml @@ -0,0 +1,70 @@ + + Install Harfbuzz +
+ Download + + For tarball releases of HarfBuzz, look + here. + At the same place you will + also find Win32 binary bundles that include libharfbuzz DLL, hb-view.exe, + hb-shape.exe, and all dependencies. + + + The canonical source tree is available + here. + Also available on github. + + + The API that comes with hb.h will + not change incompatibly. Other, peripheral, headers are more likely to go + through minor modifications, but again, will do our best to never change + API in an incompatible way. We will never break the ABI. + + + If you are not sure whether Pango or HarfBuzz is right for you, read + this. + +
+
+ Building + + On Linux, install the development packages for FreeType, Cairo, and GLib. + For example, on Ubuntu / Debian, you would do: + +sudo apt-get install gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev + + whereas on Fedora, RHEL, CentOS, and other Red Hat based systems you would do: + +sudo yum install gcc gcc-c++ freetype-devel glib2-devel cairo-devel + + or using MacPorts: + +sudo port install freetype glib2 cairo + + + + If you are using a tarball, you can now proceed to running + configure and make as with any + other standard package. That should leave you with a shared library in + src/, and a few utility programs including hb-view + and hb-shape under util/. + + + If you are bootstraping from git, you need a few more tools before you + can run autogen.sh for the first time. Namely, + pkg-config and ragel. + Again, on Ubuntu / Debian: + +sudo apt-get install autoconf automake libtool pkg-config ragel gtk-doc-tools + + and on Fedora, RHEL, CentOS: + +sudo yum install autoconf automake libtool pkgconfig ragel gtk-doc + + or using MacPorts: + +sudo port install autoconf automake libtool pkgconfig ragel gtk-doc + + +
+
diff --git a/docs/usermanual-ch05.xml b/docs/usermanual-opentype-features.xml similarity index 100% rename from docs/usermanual-ch05.xml rename to docs/usermanual-opentype-features.xml diff --git a/docs/usermanual-ch01.xml b/docs/usermanual-what-is-harfbuzz.xml similarity index 100% rename from docs/usermanual-ch01.xml rename to docs/usermanual-what-is-harfbuzz.xml