awesome-purebasic icon indicating copy to clipboard operation
awesome-purebasic copied to clipboard

A curated list of PureBasic resources.

= Awesome PureBasic Tristano Ajmone [email protected] 2019-12-13 :lang: en // Metadata: :description: pass:[Awesome PureBasic — A curated list of PureBasic resources.] :keywords: purebasic, resources, libraries, source code, projects, open source // TOC Settings: :toclevels: 2 // GitLab setting to show TOC after Preamble :toc: macro // TOC ... HTML Backend Hack to show TOC on the Left ifdef::backend-html5[] :toc: left endif::[] // TOC ... GitHub Hack to show TOC after Preamble (required) ifdef::env-github[] :toc: macro endif::[] // Misc Settings: :experimental: true :icons: font :idprefix: :idseparator: - :linkattrs: true :reproducible: true :sectanchors: :sectnums!: // GitHub Settings: ifdef::env-github[] :tip-caption: :bulb: :note-caption: :information_source: :important-caption: :heavy_exclamation_mark: :caution-caption: :fire: :warning-caption: :warning: endif::[] // ============================================================================== // Custom Attributes for Substitutions // ============================================================================== // Substitutions Helpers: :GitHubFilter: ?tab=repositories&language=purebasic // Project Files: :LICENSE: https://github.com/fantaisie-software/awesome-purebasic/blob/master/LICENSE[MIT License^,title="View License file"] // External Links: :PureBasic: https://www.purebasic.com/[PureBasic^,title="Visit PureBasic website"] :SpiderBasic: https://www.spiderbasic.com/[PureBasic^,title="Visit SpiderBasic website"] // Licenses: :Unlicense: http://unlicense.org[Unlicense^,title="Visit the Unlicense website"] // Users Profiles: :codeprof: https://github.com/codeprof{GitHubFilter}[Stefan Moebius^,title="View Stefan Moebius's profile on GitHub"] :deseven: https://github.com/deseven{GitHubFilter}[deseven^,title="View deseven's profile on GitHub"] :SicroAtGit: https://github.com/SicroAtGit{GitHubFilter}[SicroAtGit^,title="View SicroAtGit's profile on GitHub"] :tajmone: https://github.com/tajmone{GitHubFilter}[Tristano Ajmone^,title="View Tristano Ajmone's profile on GitHub"] // ***************************************************************************** // * * // * Document Preamble * // * * // *****************************************************************************

================================================================================ A curated list of {PureBasic} resources. Created by {tajmone} on January 2^nd^, 2019.

[horizontal] GitHub repository :: https://github.com/fantaisie-software/awesome-purebasic[^] GitLab repository :: https://gitlab.com/tajmone/awesome-purebasic[^] GitHub Pages website :: https://fantaisie-software.github.io/awesome-purebasic[^]

Released under {LICENSE}.

[TIP] Don't forget to star projects you like! (It's free and shows appreciation)

// >>> GitLab/GitHub hacks to ensure TOC is shown after Preamble: >>>>>>>>>>>>>> ifndef::backend-html5[] ''' toc::[] ''' endif::[] ifdef::env-github[] ''' toc::[] ''' endif::[] // <<< GitHub/GitLab hacks <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

// ***************************************************************************** // * * // * COLLECTIONS * // * * // *****************************************************************************

== Collections

Links to PureBasic assets collections.

// ============================================================================= // CODE COLLECTIONS // =============================================================================

=== Code Collections

==== PureBasic CodeArchiv Rebirth

  • https://github.com/SicroAtGit/PureBasic-CodeArchiv-Rebirth[^,title="Visit PureBasic CodeArchiv Rebirth repository"]

A collection of useful codes from the PureBasic forums and other sources, presented in a categorized and quickly accessible format. Every code file/project comes with its own license under which it can be reused.

[horizontal] Maintainer: :: {SicroAtGit}. License: :: Mixed licenses. Status: :: Actively maintained.

// ============================================================================== // EXAMPLES COLLECTIONS // ==============================================================================

=== Examples Collections

Links to collections of PureBasic code examples by various authors.

==== pbsamples

  • https://github.com/deseven/pbsamples[^,title="Visit this repository on GitHub"]

An assorted collection of PB 5.20 examples for Windows and OSX, by {deseven}; released into public domain via {Unlicense}.

==== small-PureBasic-projects

  • https://github.com/codeprof/small-PureBasic-projects[^,title="Visit this repository on GitHub"]

A rich collection of various projects by {codeprof}, mostly released into the public domain (check licenses on a per folder base).

// ============================================================================= // MIXED ASSETS COLLECTIONS // =============================================================================

=== Mixed Assets Collections

==== PureBASIC Archives

A collection of PureBasic resources.

  • https://github.com/tajmone/purebasic-archives[^,title="Visit the PureBASIC Archives repository"]

The project was started by Tristano Ajmone in October 2016 with the goal of creating a collaborative centralized place for gathering and sharing PureBASIC-related resources -- code examples and snippets, libraries, tutorials, books, and links.

In September 2017 the project was temporarily frozen in order to work on a revamped version intended to become a fully browsable HTML project (both online, through GitHub Pages, as well as locally):

  • https://github.com/tajmone/pb-archives-test/[^,title="Visit the Alpha version of the revamped PureBASIC Archives repository"]

Work on the new version of the PB Archives soon came to a halt and was never completed. The main focus of the work concerned the creation of "<<Butler CMS>>" a static website generator from markdown, written entirely in PureBasic. Development of <<Butler CMS>> stopped due to Git integrations problems, which eventually led to the whole project into a dead end.

The original PB Archives repository has only received sporadic updates since then, but its resources are still usable today. The new Alpha version of the PB Archives contains further resources which might still be of interest to many users. Hopefully, the resources gathered in these two projects could be integrated in some actively maintained third party project.

[horizontal] Maintainer: :: {tajmone}. License: :: Mixed licenses. Status: :: Frozen since 2017/09.

// ***************************************************************************** // * * // * PROJECTS * // * * // *****************************************************************************

== Projects

=== Documentation Generators

==== Doxter

Documentation generator written in PureBasic.

  • https://github.com/tajmone/doxter[^,title="Visit Doxter repository"]
  • https://git.io/doxter[^,title="Visit Doxter website"]

Doxter is DRY (Don't Repear Yourself) Documentation-from-source generator leveraging Asciidoctor tagged regions to allow contents reuse across documents via selective inclusions, and a custom weights-based system to control the order in which regions should be rearranged in the final document.

It's a cross-platform and fully standalone command line binary tool. Currently supported languages: PureBasic, SpiderBasic, Alan IF.

[horizontal] Author: :: {tajmone}. License: :: MIT License. Status: :: Usable Alpha, actively maintained.

=== Disassemblers

==== distorm-PB

diStorm Disassembler for PureBasic.

  • https://github.com/ToniPB/distorm-PB[^,title="Visit distorm-PB repository"]

A lightweight, Easy-to-Use and Fast Disassembler/Decomposer Library for x86/AMD64. A Decomposer means that you get a binary structure that describes an instruction rather than textual representation.

Based on Gil Dabah's https://github.com/gdabah/distorm[diStorm3^], and released under GPL license.

=== Website Generators

==== Butler CMS

A command line static (flat-file) website from markdown generator.

  • link:++https://github.com/tajmone/pb-archives-test/tree/source/butler++[^,title="View the source code of Bulter CMS at the new PureBASIC Archives repository"]

Butler CMS is a fully functioning static website generator that leverage PP, pandoc and Highlight to generate HTML documentation from pandoc-markdown source files.

Originally designed to manage the website of the <<PureBASIC Archives>>, Butler was never completed due to problems integrating Git workflow in the site deployment stage (namely, handling ignored files via Bash integration), but the app is capable of converting markdown source documents to a full-fledged static HTML website browsable by categories.

Thanks to PP macros the markdown syntax can be fully extended to incorporate custom elements. And thanks to Highlight integration Butler is able to syntax highlight PureBasic source code hosted either inside the markdown document or by importing it from external source files, making it an ideal tool to create PureBasic documentation with. You can view some example pages online (some images missing), which contain syntax highlighted PureBasic and FAsm code:

  • https://htmlpreview.github.io/?https://raw.githubusercontent.com/tajmone/pb-archives-test/source/tutorials/oop/drac/purebasic-oop-4.html[PureBasic and OOP^,title="Live preview of Butler generated web page: PureBasic and OOP"], by Dräc.
  • http://htmlpreview.github.io/?https://github.com/tajmone/pb-archives-test/blob/source/asm/fasm/tutorials/tajga-fasm-tutorial.html[TAJGA FASM Tutorial^,title="Live preview of Butler generated web page: TAJGA FASM Tutorial"], by Vid.

Currently Butler CMS can be used to create documentation or static websites from pandoc markdown files, and it's fairly well documented -- therefore, starting to use it should be quite straightforward. Along with the full Butler CMS source code (MIT License), the test project contains a full project that ca be used as a starting point, including a pandoc HTML5 web template and a complete Sass/SCSS project to generate the required stylesheets.

[horizontal] Author: :: {tajmone}. License: :: MIT License. Status: :: Working Alpha, currently unmaintained. PB Version: :: 5.61 Dependencies: :: PP 2.1.5 | pandoc >= 2.0.4 |Highlight >= 3.40

// ***************************************************************************** // * * // * PUREBASIC CODERS NETWORK * // * * // *****************************************************************************

== PureBasic Coders Network

Links to GitHub and GitLab users and organizations profiles of PureBasic coders, to help establish connections with each others.

[TIP] Don't forget to follow authors you like!

// ---{ ** EDITING TIP ** }----------------------------------------------------- // Add {GitHubFilter} after a GitHub profile link to show the user's PureBasic // repositories on the landing page! // -----------------------------------------------------------------------------

// ============================================================================= // USERS PROFILES // =============================================================================

=== Users

==== Anatolt

Anatoly Tarasenko (Russia).

:UserID: Anatolt

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== aziascreations

Herwin Bozet (Belgium).

:UserID: aziascreations

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== codeprof

Stefan Moebius (Germany).

:UserID: codeprof

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== creamcast

BORIS.

:UserID: creamcast

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== Dadido3

David Vogel.

:UserID: Dadido3

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== deseven

(Serbia)

:UserID: deseven

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== falsam

(France)

:UserID: falsam

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== Guevara-chan

Victoria Guevara.

:UserID: Guevara-chan

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== Hyneman

:UserID: Hyneman

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== mestnyi33

:UserID: mestnyi33

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== microdevweb

Bielen Pierre (Belgium).

:UserID: microdevweb

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== nueh

Niklas Hennigs.

:UserID: nueh

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== SicroAtGit

(Germany)

:UserID: SicroAtGit

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== SparrowhawkMMU

Jean-Yves.

:UserID: SparrowhawkMMU

  • https://gitlab.com/{UserID}[gitlab.com/{UserID}^]

==== ToniPB

:UserID: ToniPB

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

==== tajmone

Tristano Ajmone (Italy).

:UserID: tajmone

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]
  • https://gitlab.com/{UserID}[gitlab.com/{UserID}^]

// ============================================================================= // ORGANIZATIONS PROFILES // =============================================================================

=== Organizations

Groups of people gathering under GitHub organization profiles to collaborate on PureBasic projects.

==== PureBasic CodeX

:UserID: pbcodex

  • https://github.com/{UserID}{GitHubFilter}[github.com/{UserID}^]

// ***************************************************************************** // * * // * TEMPLATES * // * * // *****************************************************************************

== Templates

Links to useful templates, snippets collections and other reusable PureBasic assets.

=== PureBasic Repository Template

A boilerplate for quickly creating PureBasic projects with all the right settings in place.

  • https://github.com/tajmone/purebasic-repository-template[github.com/tajmone/purebasic-repository-template^]

Thanks to this template you'll be able to create new repositories on GitHub preconfigured to host PureBasic projects, abstracting away the need of manually configuring all the nitty-gritty of cross platform portability.

[horizontal] Maintainer: :: {tajmone}. License: :: CC0 Universal (public domain). Status: :: Actively maintained.

https://github.blog/2019-06-06-generate-new-repositories-with-repository-templates/[Repository templates is a new GitHub feature introduced in June 2019.^,title="Read the original announcement on GitHub blog"]

// EOF //