From 116d4c385c6f9ba270876bca5fe90c1cb8a01f31 Mon Sep 17 00:00:00 2001 From: RunasSudo Date: Thu, 28 Oct 2021 01:23:33 +1100 Subject: [PATCH] Build docs as HTML --- .gitignore | 7 ++ README.md | 2 +- docs/options.md | 8 +- homepage/404.html | 25 ++++ homepage/Gemfile | 15 +++ homepage/Gemfile.lock | 72 +++++++++++ homepage/_config.yml | 28 +++++ homepage/_layouts/default.html | 48 ++++++++ homepage/_layouts/post.html | 11 ++ homepage/_plugins/include_absolute.rb | 168 ++++++++++++++++++++++++++ homepage/about.md | 12 ++ homepage/assets/headerimg.png | Bin 0 -> 94088 bytes homepage/docs/options.md | 23 ++++ homepage/index.html | 111 +++++++++++++++++ 14 files changed, 525 insertions(+), 5 deletions(-) create mode 100644 homepage/404.html create mode 100644 homepage/Gemfile create mode 100644 homepage/Gemfile.lock create mode 100644 homepage/_config.yml create mode 100644 homepage/_layouts/default.html create mode 100644 homepage/_layouts/post.html create mode 100644 homepage/_plugins/include_absolute.rb create mode 100644 homepage/about.md create mode 100644 homepage/assets/headerimg.png create mode 100644 homepage/docs/options.md create mode 100644 homepage/index.html diff --git a/.gitignore b/.gitignore index 42680c5..9599041 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,10 @@ /target /html/opentally.js /html/opentally_*.wasm + +# Jekyll +/homepage/_site +/homepage/.sass-cache +/homepage/.jekyll-cache +/homepage/.jekyll-metadata +/homepage/vendor diff --git a/README.md b/README.md index 0d72cb7..09d7ee2 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ OpenTally is highly customisable, including options for: After preparing the [BLT file](https://yingtongli.me/git/OpenTally/about/docs/blt.md), open the web UI. Select the BLT file, and click *Count*. OpenTally will count the election and display the results in a count sheet. -By clicking *Show advanced options*, you can customise the options used for the count. A detailed explanation of the various options can be found [here](https://yingtongli.me/git/OpenTally/about/docs/options.md). +By clicking *Show advanced options*, you can customise the options used for the count. A detailed explanation of the various options can be found [here](/opentally/docs/options.html). Once the count is complete, you can click *Print result* to generate a printable result report. diff --git a/docs/options.md b/docs/options.md index 59d7b87..e974f9b 100644 --- a/docs/options.md +++ b/docs/options.md @@ -27,7 +27,7 @@ The preset dropdown allows you to choose from a hardcoded list of preloaded STV Exceptions: -* [E1] When generating random numbers, OpenTally uses a [deterministic random number generator based on SHA-256](rng.md), rather than the Wichmann–Hill(-based) algorithm. +* [E1] When generating random numbers, OpenTally uses a [deterministic random number generator based on SHA-256](https://yingtongli.me/git/OpenTally/about/docs/rng.md), rather than the Wichmann–Hill(-based) algorithm. * [E2] When breaking ties backwards, OpenTally selects the candidate who had more/fewer votes at the last stage when *any* tied candidate had more/fewer votes, rather than the method described in the legislation (when each all had unequal votes). The OpenTally developers regard the method described in the legislation as a defect. For an independent discussion, see Conway et al. * [E3] A tie between 2 candidates for the final vacancy will be broken backwards then at random, rather than the method described in the legislation. * [E4] Bulk exclusion is not performed, as the prescribed rules are more conservative than OpenTally's. See also the section on *Bulk exclusion* for further discussion. @@ -36,7 +36,7 @@ Exceptions: * [E7] No distinction is made between stages and substages (during exclusion). This affects only the numbering of stages and not the result. * [E8] By default, the quota is always calculated to 2 decimal places. For full ERS76 (ERS73) compliance, set *Round quota to 0 d.p.* when the quota is more than 100 (100 or more). -For details of validation, see [validation.md](validation.md). +For details of validation, see [validation.md](https://yingtongli.me/git/OpenTally/about/docs/validation.md). This functionality is not available on the command line. @@ -158,11 +158,11 @@ This option allows you to input an arbitrary value to seed the deterministic ran The default value is the current date, formatted YYYYMMDD. -The algorithm used by the random number generator is specified at [rng.md](rng.md). +The algorithm used by the random number generator is specified at [rng.md](https://yingtongli.me/git/OpenTally/about/docs/rng.md). ## Constraints (--constraints) -This file selector allows you to load a [CON file](con.md) specifying constraints on the election. For example, if a certain minimum or maximum number of candidates can be elected from a particular category. +This file selector allows you to load a [CON file](https://yingtongli.me/git/OpenTally/about/docs/con.md) specifying constraints on the election. For example, if a certain minimum or maximum number of candidates can be elected from a particular category. OpenTally applies constraints using the Grey–Fitzgerald method. Whenever a candidate is declared elected or excluded, any candidate who must be elected to secure a conformant result is deemed *guarded*, and any candidate who must not be elected to secure a conformant result is deemed *doomed*. Any candidate who is doomed is excluded at the next opportunity. Any candidate who is guarded is prevented from being excluded. diff --git a/homepage/404.html b/homepage/404.html new file mode 100644 index 0000000..086a5c9 --- /dev/null +++ b/homepage/404.html @@ -0,0 +1,25 @@ +--- +permalink: /404.html +layout: default +--- + + + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
diff --git a/homepage/Gemfile b/homepage/Gemfile new file mode 100644 index 0000000..b642850 --- /dev/null +++ b/homepage/Gemfile @@ -0,0 +1,15 @@ +source "https://rubygems.org" +gem "jekyll", "~> 4.2.0" + +# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem +# and associated library. +platforms :mingw, :x64_mingw, :mswin, :jruby do + gem "tzinfo", "~> 1.2" + gem "tzinfo-data" +end + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] + +# For Ruby 3.0 +gem "webrick", "~> 1.7" diff --git a/homepage/Gemfile.lock b/homepage/Gemfile.lock new file mode 100644 index 0000000..91a5227 --- /dev/null +++ b/homepage/Gemfile.lock @@ -0,0 +1,72 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) + colorator (1.1.0) + concurrent-ruby (1.1.9) + em-websocket (0.5.2) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + eventmachine (1.2.7) + ffi (1.15.4) + forwardable-extended (2.6.0) + http_parser.rb (0.6.0) + i18n (1.8.10) + concurrent-ruby (~> 1.0) + jekyll (4.2.1) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (~> 2.0) + jekyll-watch (~> 2.0) + kramdown (~> 2.3) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (~> 0.4.0) + pathutil (~> 0.9) + rouge (~> 3.0) + safe_yaml (~> 1.0) + terminal-table (~> 2.0) + jekyll-sass-converter (2.1.0) + sassc (> 2.0.1, < 3.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + kramdown (2.3.1) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.3) + listen (3.7.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (4.0.6) + rb-fsevent (0.11.0) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.5) + rouge (3.26.1) + safe_yaml (1.0.5) + sassc (2.4.0) + ffi (~> 1.9) + terminal-table (2.0.0) + unicode-display_width (~> 1.1, >= 1.1.1) + unicode-display_width (1.8.0) + webrick (1.7.0) + +PLATFORMS + x86_64-linux + +DEPENDENCIES + jekyll (~> 4.2.0) + tzinfo (~> 1.2) + tzinfo-data + wdm (~> 0.1.1) + webrick (~> 1.7) + +BUNDLED WITH + 2.2.26 diff --git a/homepage/_config.yml b/homepage/_config.yml new file mode 100644 index 0000000..c53c7cf --- /dev/null +++ b/homepage/_config.yml @@ -0,0 +1,28 @@ +# Site settings + +title: OpenTally +baseurl: "/opentally" +url: "https://yingtongli.me" + +git_url: "https://yingtongli.me/git/OpenTally" + +# Build settings + +plugins: [] +kramdown: + smart_quotes: ["apos", "apos", "quot", "quot"] + typographic_symbols: {"mdash": "---", "ndash": "--"} + +# Exclude from processing. + +# exclude: +# - .sass-cache/ +# - .jekyll-cache/ +# - gemfiles/ +# - Gemfile +# - Gemfile.lock +# - node_modules/ +# - vendor/bundle/ +# - vendor/cache/ +# - vendor/gems/ +# - vendor/ruby/ diff --git a/homepage/_layouts/default.html b/homepage/_layouts/default.html new file mode 100644 index 0000000..1b10045 --- /dev/null +++ b/homepage/_layouts/default.html @@ -0,0 +1,48 @@ +--- +--- + + + + + + + {% if post.title %}{{ post.title }}{% else %}{{ site.title }}{% endif %} + + + + +
+ + + {{ content }} +
+ + + + + + diff --git a/homepage/_layouts/post.html b/homepage/_layouts/post.html new file mode 100644 index 0000000..9dda375 --- /dev/null +++ b/homepage/_layouts/post.html @@ -0,0 +1,11 @@ +--- +layout: default +--- + +
+
+

{{ page.title }}

+ + {{ content }} +
+
diff --git a/homepage/_plugins/include_absolute.rb b/homepage/_plugins/include_absolute.rb new file mode 100644 index 0000000..7112911 --- /dev/null +++ b/homepage/_plugins/include_absolute.rb @@ -0,0 +1,168 @@ +module Jekyll + module Tags + class IncludeAbsoluteTagError < StandardError + attr_accessor :path + + def initialize(msg, path) + super(msg) + @path = path + end + end + + class IncludeAbsoluteTag < Liquid::Tag + VALID_SYNTAX = %r! + ([\w-]+)\s*=\s* + (?:"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'|([\w\.-]+)) + !x + VARIABLE_SYNTAX = %r! + (?[^{]*(\{\{\s*[\w\-\.]+\s*(\|.*)?\}\}[^\s{}]*)+) + (?.*) + !mx + + FULL_VALID_SYNTAX = %r!\A\s*(?:#{VALID_SYNTAX}(?=\s|\z)\s*)*\z! + VALID_FILENAME_CHARS = %r!^[\w/\.-]+$! + + def initialize(tag_name, markup, tokens) + super + matched = markup.strip.match(VARIABLE_SYNTAX) + if matched + @file = matched["variable"].strip + @params = matched["params"].strip + else + @file, @params = markup.strip.split(%r!\s+!, 2) + end + validate_params if @params + @tag_name = tag_name + end + + def syntax_example + "{% #{@tag_name} 'file.ext' param='value' param2='value' %}" + end + + def parse_params(context) + params = {} + markup = @params + + while (match = VALID_SYNTAX.match(markup)) + markup = markup[match.end(0)..-1] + + value = if match[2] + match[2].gsub(%r!\\"!, '"') + elsif match[3] + match[3].gsub(%r!\\'!, "'") + elsif match[4] + context[match[4]] + end + + params[match[1]] = value + end + params + end + + def validate_file_name(file) + if file !~ VALID_FILENAME_CHARS + raise ArgumentError, <<-MSG +Invalid syntax for include tag. File contains invalid characters or sequences: + + #{file} + +Valid syntax: + + #{syntax_example} + +MSG + end + end + + def validate_params + unless @params =~ FULL_VALID_SYNTAX + raise ArgumentError, <<-MSG +Invalid syntax for include tag: + + #{@params} + +Valid syntax: + + #{syntax_example} + +MSG + end + end + + # Grab file read opts in the context + def file_read_opts(context) + context.registers[:site].file_read_opts + end + + # Render the variable if required + def render_variable(context) + if @file =~ VARIABLE_SYNTAX + partial = context.registers[:site] + .liquid_renderer + .file("(variable)") + .parse(@file) + partial.render!(context) + end + end + + def render(context) + site = context.registers[:site] + + file = render_variable(context) || @file + # strip leading and trailing quote's + file = file.gsub!(/\A'|'\Z/, '') + validate_file_name(file) + + source = File.expand_path(context.registers[:site].config['source']).freeze + path = File.join(source, file) + return unless path + + partial = Liquid::Template.parse(read_file(path, context)) + + context.stack do + context["include"] = parse_params(context) if @params + begin + partial.render!(context) + rescue Liquid::Error => e + e.template_name = path + e.markup_context = "included " if e.markup_context.nil? + raise e + end + end + end + + def valid_include_file?(path, dir, safe) + !outside_site_source?(path, dir, safe) && File.file?(path) + end + + def outside_site_source?(path, dir, safe) + safe && !realpath_prefixed_with?(path, dir) + end + + def realpath_prefixed_with?(path, dir) + File.exist?(path) && File.realpath(path).start_with?(dir) + rescue StandardError + false + end + + # This method allows to modify the file content by inheriting from the class. + def read_file(file, context) + File.read(file, **file_read_opts(context)) + end + + private + + def could_not_locate_message(file, includes_dirs, safe) + message = "Could not locate the included file '#{file}' in any of "\ + "#{includes_dirs}. Ensure it exists in one of those directories and" + message + if safe + " is not a symlink as those are not allowed in safe mode." + else + ", if it is a symlink, does not point outside your site source." + end + end + end + end +end + +Liquid::Template.register_tag("include_absolute", Jekyll::Tags::IncludeAbsoluteTag) diff --git a/homepage/about.md b/homepage/about.md new file mode 100644 index 0000000..648190f --- /dev/null +++ b/homepage/about.md @@ -0,0 +1,12 @@ +--- +layout: post +title: "About OpenTally" +--- + +
{% include_absolute '../README.md' %}
+ + diff --git a/homepage/assets/headerimg.png b/homepage/assets/headerimg.png new file mode 100644 index 0000000000000000000000000000000000000000..0aa52cfad12603b936e138da0d6b72a712e415a2 GIT binary patch literal 94088 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 z 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
  • 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 literal 0 HcmV?d00001 diff --git a/homepage/docs/options.md b/homepage/docs/options.md new file mode 100644 index 0000000..569e1f0 --- /dev/null +++ b/homepage/docs/options.md @@ -0,0 +1,23 @@ +--- +layout: post +title: "Advanced options" +--- + +
    {% include_absolute '../docs/options.md' %}
    + + + + diff --git a/homepage/index.html b/homepage/index.html new file mode 100644 index 0000000..1d96378 --- /dev/null +++ b/homepage/index.html @@ -0,0 +1,111 @@ +--- +layout: default +--- + + +
    +
    +
    +
    +
    +

    Advanced online election counting

    +

    Count instant runoff and single transferable vote elections for free, no downloads or sign-up required

    + +
    +
    +
    Screenshot of OpenTally
    +
    +
    +
    + + +
    +
    +
    +

    Key features

    +
    +
    +
    +

    Runs in your browser

    +

    No downloads or sign-ups are required. OpenTally counts are computed entirely inside your browser, and no data ever leaves your computer.

    +
    +
    +

    Wide range of STV systems

    +

    OpenTally supports Gregory (inclusive and exclusive, weighted and unweighted), Meek and Wright variants of the single transferable vote.

    +
    +
    +

    Support for arbitrary constraints

    +

    OpenTally is the only publicly available election counting software to support arbitrary combinations of constraints, such as gender quotas and other affirmative action requirements.

    +
    +
    +

    Free and open source

    +

    Source code for OpenTally is publicly available under the GNU AGPLv3.

    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +

    From our blog

    +

    Latest news and posts from the OpenTally blog

    +
    +
    +
    +
    +
    +
    +
    +
    Dev Log
    +
    Parcels? Subparcels? Not just for STV hand counts!
    +

    Single transferable vote rules designed for hand-counting often contain references to ‘parcels’ (or ‘bundles’ or ‘batches’), ‘further parcels’ and sometimes even ‘subparcels’.

    +

    For example, consider the 4th stage of the ERS97 model election. 107 of Glazier's and Wright's ballot papers are aggregated according to…

    +
    + +
    +
    +
    +
    +
    +
    Dev Log
    +
    Implementing a BLT parser by hand in Rust (vs pest and combine)
    +

    OpenTally is open-source software which can count single transferable vote elections specified using the BLT file format.

    +

    Earlier this month, I replaced OpenTally's previous naive string-manipulation-based BLT parser with one using pest. A new parser was necessary to support extensions to the BLT

    +
    + +
    +
    +
    +
    +
    +
    Dev Log
    +
    Asyncify with vanilla JS/WebAssembly (wasm-bindgen compatible)
    +

    WebAssembly is a technology for executing compiled programs in the web browser at near-native speeds. However, it has a number of current limitations, including that it does not support coroutines/asynchronicity.

    +

    In OpenTally, WebAssembly is used to run code for counting an election. This…

    +
    + +
    +
    +
    +
    +
    + Read More +
    +
    +
    +