Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. scrivener_html

scrivener_html

MITElixir

HTML pagination helpers for Elixir's Scrivener library, supporting multiple CSS frameworks.

GitHubGitHub
124 stars206 forks0 contributors

What is scrivener_html?

Scrivener.Html is a library for Elixir applications that provides view helpers to generate pagination HTML. It works with the Scrivener pagination library to convert page structs into styled navigation links, simplifying the creation of paginated interfaces for web applications. It solves the problem of manually building pagination HTML by offering framework-compatible output and SEO-friendly features.

Target Audience

Elixir developers building web applications with Phoenix or other frameworks that need paginated data displays, particularly those using CSS frameworks like Bootstrap, Foundation, Semantic UI, Materialize, or Bulma.

Value Proposition

Developers choose Scrivener.Html because it offers out-of-the-box support for multiple CSS frameworks, reducing boilerplate code, and provides extensive customization options for link text, icons, and HTML. Its SEO-friendly features, such as automatic rel attributes and helper functions for <head> link tags, give it an edge over basic pagination solutions.

Overview

HTML view helpers for Scrivener

Use Cases

Best For

  • Adding pagination to Elixir Phoenix applications with minimal configuration and framework-specific styling.
  • Generating SEO-optimized pagination links with automatic rel attributes and header link tags for better search engine indexing.
  • Building paginated interfaces that require custom icons or HTML for previous, next, first, and last links.
  • Integrating pagination with nested resources, URL parameters, or custom controller actions in complex routing scenarios.
  • Using raw_pagination_links/2 to create custom HTML output when built-in view styles do not meet design requirements.
  • Supporting multiple CSS frameworks (e.g., Bootstrap 3/4, Foundation, Semantic UI) in a single codebase without rewriting pagination logic.

Not Ideal For

  • Projects using CSS frameworks not explicitly supported, such as Tailwind CSS or Bootstrap 5+.
  • Applications that don't rely on the Scrivener library for pagination, as it's tightly coupled to Scrivener's page structs.
  • Teams needing pagination with heavy client-side interactivity or dynamic updates without server-side HTML regeneration.

Pros & Cons

Pros

Multi-Framework Support

Generates pagination HTML styled for Bootstrap, Foundation, Semantic UI, Materialize, and Bulma out of the box, reducing CSS boilerplate. The README lists six view styles, including bootstrap_v4 for modern versions.

SEO-Friendly Features

Automatically adds rel attributes to links and provides Scrivener.HTML.SEO helpers for <head> link tags, improving search engine indexing without extra code. This is highlighted in the SEO section of the README.

High Customizability

Allows custom text, icons, or HTML for previous/next/first/last links using options like Phoenix.HTML.raw or ~E sigils. Examples in the README show integration with Materialize icons and custom templates.

Flexible Integration

Works with Phoenix.HTML, supports nested resources, URL parameters, and custom controller actions via path and action options. The README provides examples for complex routing scenarios like locale-based scopes.

Cons

Scrivener Dependency Lock-in

Only functions with Scrivener's pagination structs, making it unusable for projects with other pagination libraries or custom implementations, as stated in the project description.

Outdated Framework Versions

View styles target specific, older versions of CSS frameworks (e.g., Bootstrap 3.x/4.x, not 5.x), which may not align with modern dependencies and require manual updates or forks.

Setup Overhead

Requires configuration in mix.exs, config.exs for routes_helper, and view imports, adding complexity for simple use cases or quick prototyping compared to drop-in solutions.

Frequently Asked Questions

Quick Stats

Stars124
Forks206
Contributors0
Open Issues12
Last commit2 years ago
CreatedSince 2015

Tags

#foundation#elixir#elixir-phoenix#ecto#phoenix-framework#html#pagination#semantic#web-development#view-helpers#css-frameworks#seo#html-helpers#bootstrap

Built With

E
Elixir

Included in

Elixir13.1k
Auto-fetched 1 day ago

Related Projects

plugplug

Compose web applications with functions

Stars3,019
Forks607
Last commit1 day ago
surfacesurface

A server-side rendering component library for Phoenix

Stars2,135
Forks146
Last commit7 months ago
commandedcommanded

Use Commanded to build Elixir CQRS/ES applications

Stars2,036
Forks258
Last commit2 months ago
ex_adminex_admin

ExAdmin is an auto administration package for Elixir and the Phoenix Framework

Stars1,197
Forks263
Last commit6 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub