@@ 16,16 16,29 @@ name: balkon
-- | | | +--- code changes with no API change
version: 0.1.0.0
+stability: experimental
+
-- A short (one-line) description of the package.
-synopsis: Text layout engine built on top of HarfBuzz
+synopsis: Text layout engine built on top of HarfBuzz.
-- A longer description of the package.
--- description:
+description:
+ .
+ Given an input text and formatting options, Balkón produces an inline
+ layout with defined glyph positions and box coordinates, all within a
+ containing unit called a paragraph.
+ .
+ Internally, HarfBuzz is used to shape individual runs of text, each of
+ which fits within one line and has a constant script, direction, language,
+ and formatting. Balkón abstracts this so that you can provide text with any
+ mix of these attributes and a desired line width for line breaking.
-- URL for the project homepage or repository.
-homepage:
+-- TODO: Set homepage when this project has one.
+-- homepage:
-- A URL where users can report bugs.
+-- TODO: Set issue tracker URL when this project has one.
-- bug-reports:
-- The license under which the package is released.
@@ 37,20 50,50 @@ license-file: LICENSE
-- The package author(s).
author: Jaro
--- An email address to which users can send suggestions, bug reports, and patches.
+-- An email address to which users can send suggestions, bug reports,
+-- and patches.
maintainer: jaro@argonaut-constellation.org
-- A copyright notice.
-- copyright:
+
category: Text
--- Extra doc files to be distributed with the package, such as a CHANGELOG or a README.
+-- Extra doc files to be distributed with the package, such as a CHANGELOG
+-- or a README.
extra-doc-files: CHANGELOG.md
--- Extra source files to be distributed with the package, such as examples, or a tutorial module.
--- extra-source-files:
+-- Extra source files to be distributed with the package, such as examples,
+-- or a tutorial module.
+extra-source-files:
+ assets/fonts/ubuntu/LICENCE.txt,
+ assets/fonts/ubuntu/TRADEMARKS.txt,
+ assets/fonts/ubuntu/Ubuntu-R.ttf,
+ assets/fonts/ubuntu/copyright.txt
+
+source-repository head
+ type: git
+ location: https://git.argonaut-constellation.org/~jaro/balkon
+ branch: main
+
+common language
+ -- Base language which the package is written in.
+ default-language: Haskell2010
+ -- LANGUAGE extensions used by modules in this package.
+ -- other-extensions:
+common warnings
+ ghc-options: -Wall
+
+-- TODO: Utilise internal libraries
+-- (https://cabal.readthedocs.io/en/3.4/cabal-package.html#sublibs)
+-- to avoid exposing modules solely for tests.
library
+ import: language, warnings
+
+ -- Directories containing source files.
+ hs-source-dirs: src
+
-- Modules exported by the library.
exposed-modules:
Data.Text.ParagraphLayout,
@@ 60,9 103,6 @@ library
-- Modules included in this library but not exported.
other-modules: Data.Text.Script
- -- LANGUAGE extensions used by modules in this package.
- -- other-extensions:
-
-- Other library packages from which modules are imported.
build-depends:
base ^>=4.15.1.0,
@@ 71,19 111,8 @@ library
text-icu ^>=0.8.0.2,
unicode-data-scripts ^>=0.2.0.1
- -- Directories containing source files.
- hs-source-dirs: src
-
- -- Base language which the package is written in.
- default-language: Haskell2010
-
- ghc-options: -Wall
-
test-suite balkon-test
- -- Base language which the package is written in.
- default-language: Haskell2010
-
- ghc-options: -Wall
+ import: language, warnings
-- The interface type and version of the test suite.
type: exitcode-stdio-1.0