很棒的榆树
社区驱动的有用 Elm 教程、库和软件列表. 灵感来自于 awesome 列出事情. 请随意改进此列表.
-贡献指南
Learn¶
了解这个很棒的东西是什么.
- Official tutorial — 一般信息和带有示例的深入指南.
- Elm in Action — Manning Publications 为 Elm 初学者提供的深入书籍.
- Architecture Tutorial - 如何创建可与您的应用程序完美扩展的模块化 Elm 代码.
- Exercism Elm Track - 榆树练习集.
- Learn you an Elm - Elm 教程,包含详尽的示例和描述.
- Beginning Elm - 对 Elm 编程语言的简单介绍.
- Elm patterns - Elm 中常见模式的集合.
- Elm Koans - 学习 Elm 的练习.
- Learn Elm - 探索美丽的编程语言,让前端 Web 应用程序的构建和维护变得充满乐趣!
- Learn Elm in Y Minutes - 语法和功能概述. Elm 页面上 learnxinyminutes.com
- Elm Maybe - Dealing with null/Nothing - 使用 Maybe 类型,并带有注释良好的代码示例.
- Programming Elm - 来自《实用程序员》的详尽书籍,涵盖基础知识和高级概念.
- Elm cheat sheet - 语法和功能概述.
- Elm Tutorials on Codementor - 两个关于使用 Elm 构建 Web 应用程序的教程.
- Elm programming language - Elm 作为编程语言的简要概述.
- Elm: A Beginners' Guide to Elm and Data - Elm 和数据初学者课程
- Practical Elm for a Busy Developer - 一本关于开发 Elm 应用程序的实际方面的非初学者书籍.
- Haskell to Elm - Elm 与 Haskell 不同之处的示例集合,针对具有 Haskell 背景的 Elm 初学者.
- A nice app on Elm street - 榆树简介
- The Elmish Book 构建网络应用程序 F# 从首要原则出发遵循 Elm 架构.
- Elm patterns - 编码模式的集合.
- Codings hints - Evan 的自述文件列表.
- Ellies catalog - Ellie 中的小例子集合.
- Elm Cookbook - 一本关于榆树的数字书.
- Awesome Elm PLTD - Elm 编程语言理论和开发的有用资源.
- Elm The Complete Guide - 视频教程,包括 Elm UI、Elm Review、响应式设计、测试等.
Outdated Tutorials and books (Elm 0.18 or earlier)¶
- Elm: Building Reactive Web Apps - 了解如何使用 Elm 构建响应式 Web 应用程序.
- Writing native - 了解如何为 Elm 创建本机 JavaScript 模块.
- Elm: Functional frontend development - 有关基础知识和高级主题的系列文章.
- Elm Seeds - Erik Person 教您 Elm 编程语言的简短截屏视频.
- Elm For Beginners - Video Course - 构建您的第一个 Elm Web 应用程序.
- Single-Page Web Apps in Elm - Elm 教程由五部分组成.
- Elm FAQ - 榆树常见问题解答 Elm Community.
- Elm Tutorial by Auth0 - 有关在 Elm 中构建应用程序(从身份验证到调用 API)的教程.
Articles¶
阅读要点. 查看Elm官方博客: elm-lang.org/blog
Why Elm?¶
- Side-effects of Elm in production - Bellroy 的经验报告
- How Elm Made Our Work Better - 团队如何使用 Elm 为客户构建关键业务 Web 应用程序.
- FP with games in Elm - 在 Elm 中使用游戏从命令式编程切换到函数式编程.
- Blazing Fast HTML - Elm 中的虚拟 DOM.
- Move fast and don’t break things. Running a startup on Elm - 关于瑞典初创公司 Elm 开发的一些想法.
Miscellaneous articles¶
- Learning FP the hard way - Elm 语言的经验.
- Blog of Brian Hicks - 包含有关 Elm 的各种主题的博客.
- Introduction to The Elm Architecture and How to Build our First Application - 一篇描述 Elm 架构以及如何构建简单应用程序的文章
- Functional Programming for Web Frontend by Jan Luxemburk - 一篇关于前端开发函数式编程的学士论文,重点是 Elm.
Outdated articles (Not relevant for current Elm architecture)¶
- Elm for Web Developers - 为考虑迁移到 Elm 的 Web 开发人员提供的注释集合.
- Elm & Components - 一篇博客文章描述了减少 TEA 样板文件的可能方法. 对于组件库和任何有兴趣了解函数类型可以做的令人惊奇的事情的人很有用.
- Composing Features and Behaviours in the Elm Architecture - An article describing how to organize code that follows the Elm architecture into independent features, how to communicate between features, and how to group some of these features together to assemble larger features.
- Getting Started with Elm - Elm 教育教程系列.
- Elm & Guarantees - 现实地了解 Elm 相对于其他选项的优劣.
Videos¶
观看有关 Elm 的精彩演讲
Playlists¶
- Elm Conf 2019 - 2019 年 9 月
- Elm Europe 2019 - Jun 2019
- Elm in the Spring 2019 - Jun 2019
- Oslo Elm Day 2019 - 2019 年 2 月
- Elm Conf 2018 - 2018 年 elm-conf 的所有演讲
- Elm Europe 2018 - 2018 年 Elm Europe 所有演讲的播放列表
- Elm Conf 2017 - 2017 年 elm-conf 的所有演讲
- Elm Europe 2017 - 2017 年 Elm Europe 所有演讲的播放列表
- Oslo Elm Day 2017 - 2017 年奥斯陆榆树日所有演讲的播放列表
- Elm Conf 2016 - 2016 年 elm-conf 的所有演讲
Miscellaneous videos¶
- Dillon Kearns: Types Without Borders | 2018 - elm-conf 2018 讨论使用 GraphQL 等外部模式的端到端类型安全.
- Jamison Dance: Rethinking All Practices - Building Applications in Elm | 2016 - 在 React.js Conf 2016 上发表的演讲,内容涉及 Elm 必须向 JavaScript 世界传授什么以及为什么 JS 开发人员应该考虑尝试它.
- Richard Feldman: Introduction to Elm | 2016 - 演讲对 Elm 进行了广泛、高层次的介绍.
- Amitai Burstein: Frontend with Guarantees | 2016 - 来自 You Gotta Love Frontend 2016 的演讲
- Jessica Kerr: Adventures in Elm | 2016 - 在 GOTO Chicago 2016 上谈论函数式编程与 Elm 的结合.
- Aaron VonderHaar: Codevember | 2016 + ElmLive - 榆树现场视频示例.
- Richard Feldman: Making impossible states impossible | 2016 - 讨论如何在 Elm 中对数据结构进行建模,使无效状态无法表示
- Richard Feldman: Effects as Data | 2015 - 谈论 Elm 如何管理副作用.
- Richard Feldman: Make the Back-End Team Jealous: Elm in Production | 2015 - 关于 Elm 以及在生产中使用它的初始步骤的讨论.
- Evan Czaplicki: Let's be mainstream! User focused design in Elm | 2015 - Elm 之父关于语言背后哲学的演讲.
Video tutorials¶
- Egghead.io: Elm videos - Egghead 的 Elm 视频培训,其中很多都是免费的.
- Elm Basics - 浏览 Elm 作为通用编程语言的所有语法和基本思想.
- Greg Ziegan: Elm live coding videos - YouTube 上的实时编码视频.
News¶
- Official Elm News - Elm 官方博客
- Elm Weekly - 关于 Elm 的每周时事通讯
- Elm Bits - 有关 Elm 的免费每周时事通讯,其中包含精选的新闻、文章、书籍、活动、工具和库.
- Elm News - 所有 Elm 新闻都集中在一处
- Elm Greenwood - Elm 软件包发布
- Elm Reddit - Reddit 中的 Elm 新闻
Podcasts¶
收听有关 Elm 的播客
Individual Podcast episodes¶
- Functional Geekery 33 - 理查德·费尔德曼和泰莎·凯利.
- The Changelog 218 - Elm 与 Evan Czaplicki 和 Richard Feldman
- The Changelog 191 - Richard Feldman 的 Elm 和函数式编程.
- Software Engineering Daily - Elm 与理查德·费尔德曼 (Richard Feldman) 和斯里尼瓦斯·拉奥 (Srinivas Rao).
- The Web Platform Podcast 15 - 使用 Elm、ClojureScript、Om 和 React 进行函数式编程.
- The Web Platform Podcast 76 - Elm 编程语言.
- The Web Platform Podcast 108 - 榆树重访.
- Full Stack Radio 44 - 榆树到底是什么? 在本集中,Joel Clermont 谈论 Elm 和函数式编程.
- InfoQ Podcast 2017-04-27 - Richard Feldman 讨论 Elm 与 React.js 的比较
Testing¶
用于测试 Elm 应用程序的工具和库
- Elm test - 单元测试和模糊测试
- Elm Program test - 测试完整的 Elm 程序
- Elm Spec - 描述 Elm 程序的行为.
Code generators¶
- Elm Bridge - 从 Haskell 生成 Elm 类型
- Elm CodeGen - 生成Elm代码
- Elm TS Interop - 在 Elm 和 TypeScript 之间构建编码器/解码器.
- Elm TypeScript Interop - 从 Elm 生成 TypeScript 定义(“Elm TS Interop”是其改进版本).
- elm-gql - 从 GraphQL 查询生成 GraphQl 客户端代码
- elm-graphql - 从 GraphQL 模式生成 GraphQl 客户端代码
- haskell-to-elm - 从 Haskell 类型生成 Elm 类型、编码器和解码器
- HTML to Elm - 将 HTML 转换为 Elm Html. 将应用程序移植到 Elm 时很有用.
- JSON Schema to Elm - 根据 JSON 模式规范生成 Elm 类型、JSON 解码器、JSON 编码器和模糊测试
- OpenApi Generator - 为 Elm 生成 OpenApi 类型.
- PostCSS Elm Tailwind - 在你的榆树上放一些顺风
- Protoc Gen Elm - 从 .proto 文件生成 Protobuf En/Decoders
- Quicktype - 从 JSON 生成 JSON 解码器和编码器
- Travelm Agency - 从翻译文件生成类型安全的 Elm 代码
Package managers¶
共享 Elm 库的地方.
- elm-package - 共享 Elm 库的命令行工具.
Libraries¶
您可以在以下位置找到数百个高质量的软件包:
- Elm packages - 官方注册表
- Elm Catalog - 在按类别组织的目录中查找包.
- Elm Search - 在 Elm 文档中搜索运算符、函数签名等.
Boilerplates¶
新 Elm 项目的良好起点.
- create-elm-app - 创建无需构建配置的 Elm 应用程序.
- elm-boil - 用于创建易于运行、构建和部署的 Elm 样板项目的命令行实用程序
- elm-live - Elm 的灵活开发服务器. 包括实时重新加载.
- elm-webpack-4-starter - Elm webpack 4 入门模板.
- example-elm-hot-webpack - 显示 Elm 0.19 和 Webpack 热模块重新加载的示例
- Elm Batteries - 适用于 Elm、Parcel、Cypress 和 Netlify 的项目模板和生成器
- IHP + Elm - IHP Haskell 框架提供了内置的 Elm 样板,在前端使用 elm 并在后端使用 haskell 时非常有用
Outdated Boilerplates¶
- elm-webpack-starter - 用于编写 Elm 应用程序的简单 Webpack 设置.
- elm-app-boilerplate - Elm 应用程序的功能齐全的基础项目:Webpack、HMR、ES6、JS 和 Elm 测试、语义 UI、示例代码等.
- elmkit - 一个基于早午餐的轻量级网络应用程序设置. 包括早午餐、热模块更换、Elm、Scss、Elm 测试.
- elm-boilerplate - 一个简单的 Makefile 能够创建 Elm 应用程序.
- elm-init - 新 Elm 项目的交互式设置.
- elm-new - 基于模板生成初始项目脚手架.
- elm-webpack-starter-kid - 一个非常非常基本的 elm + webpack 4 模板.
- generator-elm-mdl - Yeoman 生成器,用于利用 Material Design 的简单 elm 应用程序.
Frameworks¶
将框架方法引入 Elm 的项目(脚手架、路线生成等)
Static analysis¶
- Elm Analyse - Elm 编程语言的 Linter.
- Elm Review - Elm 编程语言的代码审查器.
Static site generators¶
- Elm Pages - 静态站点生成器,可预渲染 HTML 并合并到 Elm 客户端应用程序中(here is a brief comparison with elmstatic).
- Elmstatic - 基于 Elm 的静态站点生成器.
Showcase generators¶
- Elm Book - 基于 Storybook 和 HexDocs 的丰富文档生成器.
- Elm UI Explorer - 展示您的观点和状态.
Run Elm¶
- Ellie - Elm 实时编辑器
- Elm Editor - 高级 Elm 实时编辑器
- run-elm — 从命令行运行 Elm 代码
- elm-instant -atom 包来尝试编辑器中的 elm 代码. 提供可视化 REPL 和预览窗格.
- Glitch - 在浏览器中构建快速、全栈的 Web 应用程序.
- Elm Live - Elm 的灵活开发服务器. 包括实时重新加载!
- Elm Watch - 观看模式下的“elm make”. 快速可靠.
Compile and bundle¶
- elm-compiler - 官方 Elm 编译器.
- elm-webpack-loader - Webpack 加载器 Elm.
- Parcel - 使用包裹捆绑榆木.
- vite-plugin-elm - Elm 的 Vite 插件.
Unmaintained¶
- grunt-elm - 将 Elm 文件编译为 JavaScript 的 Grunt 插件.
Other tools¶
与 Elm 相关的有用工具.
- Elm Catalog - Elm 工具目录.
- Dependabot - 自动更新您的 elm.json 的 PR.
- Elm Doc Preview - Elm 离线文档预览器.
- Elm Format - 自动 Elm 代码格式化程序遵循 Elm Style Guide.
- Elm JSON - 安装、升级和卸载Elm依赖项
- Elm Oracle - 查询有关 elm 源文件中的值的信息. 被大多数编辑器插件使用.
- type-o-rama - JS 类型系统的可移植性.
- Html to Elm - 将 HTML 转换为 Elm.
- elm-posix - 使用Elm编写CLI程序
- Litvis - 用 Elm 进行文学可视化
Editor plugins¶
代码编辑器中支持 Elm 的工具.
Atom¶
- atom-linter-elm-make - Atom 编辑器的 Elm 代码 linter.
- atom-elm-snippets - Atom 的 Elm 片段.
- atom-language-elm - Atom 编辑器的语法突出显示和自动完成.
- elmjutsu - Atom 编辑器的自动完成、转到定义、查找用法、重命名符号等.
- atom-elm-navigator - 侧面板可帮助导航到项目中的任何函数、类型定义或端口.
Emacs¶
- emacs-elm-mode - Emacs 编辑器的语法突出显示、Elm REPL、Elm make 和 Elm 格式集成.
IntelliJ¶
- elm-plugin - IntelliJ IDEA 的 Elm 插件.
Sublime Text¶
- LSP-elm - Elm Language Server for Sublime (Recommended).
- Elm Language Server - Elm 的语言服务器实现
- Elm Syntax Highlighting - Sublime Text 中 Elm 的语法高亮显示.
- Elm Format on Save - Sublime Text 插件可在保存时运行 elm 格式.
Vim/Neovim¶
- theJian/elm.vim - Elm 语法突出显示. 与使用 ale or Neoformat for Neovim 因为 ElmCast/elm-vim 不支持 Elm 0.19.
- ElmCast/elm-vim - Vim/Neovim 的 Elm 0.18 模式.
- vim-elm-help - 在编辑器中离线访问 Elm 文档.
- emmet-vim - 具有 elm 支持的标记扩展.
Visual Studio Code¶
- ElmLS - Elm 语言服务器集成
- Elmmet: Emmet for Elm (Visual Studio Code) - Emmetio 缩写扩展为 Elm 函数的组合,内部有 elm-format'er.
- HTML to Elm for Visual Studio Code - VSCode 插件将 HTML 转换为 Elm
Other editors¶
- elm-light-table - 语法突出显示、REPL、自动完成、包管理以及 Light Table 的更多功能.
Examples¶
一些用 Elm 编写的优秀应用程序.
- Builtwithelm - 使用 Elm 构建的网站,其中包含使用 Elm 构建的项目和应用程序列表.
- Elm SPA Example - 全栈 Elm 应用程序,具有 CRUD 操作、身份验证、路由、分页等. Code / Article / Video
- Elm Example App - Elm 中的一个小型 SPA 示例,用于学习基础知识
- TodoMVC - TodoMVC 应用程序的正确实现.
- TodoMVC with JSON API - 简单、模块化、文档丰富的待办事项应用程序,具有 JSON API 持久性.
- TodoMVC/Firebase - TodoMVC 的叉子演示了启动应用程序, The Elm Architecture 和 Firebase 作为后端.
- TodoMVC in Electron - 在 Electron 中记录并测试了 Elm TodoMVC 应用程序的实现.
- Gipher - 使用 elm 和 firebase 构建的类似 Tinder 的 gif 应用程序!
- Collection of examples - 一系列具有先进技术的示例,适用于现实世界的 Elm 应用程序.
- \<elm-ement> – 自定义元素的最小示例.
- Elm Playground - 为了通过实例学习而实施的 Tiny Elm 项目.
- Elm Architecture in Android - 使用 Kotlin 编程语言和 Anko 库通过 Elm 架构实现的示例 Android 应用程序.
- Elm + Phoenix + Webpack - 最小的 Elm + Phoenix 设置,使用 webpack 而不是 Brunch.
- Spotify Mapper - Elm 应用程序与 Spotify Api 集成,用于搜索和探索新艺术家.
- Pokelmon - 使用 PokéAPI 的 Elm 项目.
- JWT auth with Django + Elm - 使用 Django(后端)和 Elm(前端)进行 JSON Web Token (JWT) 身份验证.
- Bitcoin BR Chrome Extension - Elm 内置 Chrome 扩展,可显示所有巴西交易所的比特币价值.
- Elmstagram - Instagram 的基本 UI 克隆 / 文章 - Part 1 Part 2 Part 3
- Kanban Board in Elm - 使用 Elm 和 HTML5 拖放 API 构建的看板(类似 trello)
- Elm Playground - 纯 SPA(带路由)探索 Elm 的各个方面.
- Elm Hacker News PWA - 使用 Elm 版本 0.18 构建的渐进式 Web 应用程序,使用官方 Hacker-News API
- Elm Narrative Engine - 在 Elm 中构建交互式小说风格故事的框架. 详细示例 elmnarrativeengine.com 展示如何构建“选择你自己的冒险”游戏; 非常适合初学者. 榆树 v.0.19
- Ari's Garden - 一个食谱 site 构建为 SPA,也使用 Elm 解析器.
- Bolster - 端到端加密日记应用程序.
- Conway's Game of Life -康威生命游戏的 Elm 实现. 榆树 v.0.19
Games¶
- elm-games - 用 Elm 制作的优秀游戏列表
- TheSpace App - 像 DApp 这样的 Reddit 地方,在 Elm 中集成了区块链和画布(通过端口).
Community and Support¶
- Companies using Elm - 在生产中使用 Elm 的公司列表.
哪里可以找到帮助.
- Discourse - Elm Discourse 实例(官方论坛).
- Reddit - Reddit 上的 Elm 板.
- IRC - 在 elm freenode 上提问.
- Slack - Elm 松弛社区.
Conferences¶
Inspired by Elm¶
一些受Elm影响的项目
- Bolero - F# in WebAssembly using Elmish
- Bucklescript-TEA - 基于 OCaml/Reason 的 Elm 架构 Bucklescript
- Elchemy - 使用静态类型的类似 Elm 的语法编写 Elixir 代码
- Elmish - Elm-like abstractions for F# apps
- Fabulous - F# Functional App Development, using declarative dynamic UI
- Iced - 受 Elm 启发的 Rust 跨平台 GUI 库
- Redux - JavaScript 应用程序的可预测状态容器.
- SwiftUI
- MAUI - .NET 多平台应用程序用户界面
- Oolong - 受 Elm 启发的 Kotlin 多平台模型-视图-更新 (MVU) 实现.
Beyond the DOM¶
目前 Elm 主要针对浏览器,以下是在 DOM 之外使用 Elm 的一些实验:
- iOS 将 Elm 0.18 用于本机 iOS 应用程序的 POC
- elmish-wasm 将 elm 编译为 Web Assembly 的 POC
- elm-serverless 使用无服务器框架在 Cloud Functions 上运行 Elm 0.18
- elm-posix - 使用Elm编写CLI程序
Who to follow¶
免费关注最新更新. 使用 #elmlang 或者 #elm 井号.
Official Elm | Evan Czaplicki | Richard Feldman | Elm Weekly |
More awesome¶
发现其他令人惊叹的精彩列表.
Awesome Elm 只是 Awesome thing 的一部分,在此处获取更多信息:
-太棒了 @sindresorhus -很棒-很棒 @bayandin