Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tagged Release for 0.0.1 Iteration #30

Merged
merged 12 commits into from
Aug 31, 2023
39 changes: 39 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
name: Bug report
about: Create a report to help us improve
title: "[BUG] "
labels: bug
assignees: ''

---

**Before Filing a Report**

- Did I read the Documentation and/or docstrings?
- Did I search the `NoteMate.jl` GitHub to see if this bug has already been reported?
- Do I have the latest version of `NoteMate.jl` installed?

**Describe the bug**

A clear and concise description of what the bug is.

**To Reproduce**

1. Julia Version (i.e. output of `julia -v`):

2. Operating system (Mac, Linux, Windows):

3. `NoteMate.jl` version (i.e output of `] status NoteMate` in the REPL)

4. Small code snippet that led to bug:

**Expected Behavior and Actual Behavior**

A clear and concise description of what you expected to happen followed up with an explanation of what actually happened.

**Stacktrace (If Applicable)**

**Screenshots (If Applicable)**

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''

---

**Is your feature request related to a problem? Please explain.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you would like to do and how you would like to do it. Maybe a minimal example of the user interface you imagine for this feature.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# NoteMate.jl - Changelog

## v0.1.0

Initial implmentation of package:

- Added initial documentation

- Tutorial added

- API documented for exports

- Package philosophy added

- Test suite added

4 changes: 1 addition & 3 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
name = "NoteMate"
uuid = "4bd444d9-eedc-4582-9e81-098846183c20"
authors = ["Jacob Zelko <[email protected]>"]
version = "0.0.0"
version = "0.0.1"

[deps]
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
pandoc_jll = "c5432543-76ad-5c9d-82bf-db097047a5e2"
55 changes: 55 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Welcome to `NoteMate.jl`! 📝

[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://jacobzelko.com/NoteMate/dev/)
[![Test Coverage](https://codecov.io/gh/TheCedarPrince/NoteMate/branch/main/graph/badge.svg)](https://app.codecov.io/gh/TheCedarPrince/NoteMate)
[![Build Status](https://github.com/TheCedarPrince/NoteMate/workflows/CI/badge.svg)](https://github.com/TheCedarPrince/NoteMate/actions)
[![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/invenia/BlueStyle)

<!--TODO: Add Zulip reference-->

> The perfect companion for working with your notes 📚

`NoteMate.jl` is a programmatic transformation tool used to parse and manipulate notes whose structure follows the [Open Knowledge Model (OKM)](https://jacobzelko.com/04172022033744-open-knowledge-standard/index.html).
The goal of `NoteMate.jl` is to enable one to focus only on writing without worry of needing to add any special markup to your note *while* having the benefits of quickly sharing thoughts.
In fact, sharing your thoughts, whether locally or on the internet, is never far away as `NoteMate.jl` provides tools to enable your thoughts to be published on [digital gardens](https://www.lekoarts.de/garden/what-is-a-digital-garden).
Finally, due to the way `NoteMate.jl` parses documents, `NoteMate.jl` can transform notes following the OKM and express them in different outputs irrespective of the implementation.

# Installation

To install `NoteMate.jl` currently, one needs to run the following command in their Julia REPL:

```
pkg> add NoteMate
```

# Current Capabilities

Currently, these are some of the high level capabilities `NoteMate.jl` can perform:

- Ingest supported filetypes following OKM layout:

- Markdown

- Parsing of a OKM "Note" object to different support outputs:

- [`Franklin.jl`](https://franklinjl.org) Markdown

- Static site deployment workflows supported for rapid [digital garden](https://www.lekoarts.de/garden/what-is-a-digital-garden) creation:

- [`Franklin.jl`](https://franklinjl.org) Support

- Custom citation rendering and creation via `pandoc`, `bibtex`, and `CSL`

# Websites Using `NoteMate.jl`

Here are some websites that use `NoteMate.jl` to manage their website

- [TheCedarPrince's Personal Website](https://jacobzelko.com) - a [Franklin.jl](https://franklinjl.org)-based website that hosts a blog, note archive, and their research endeavors.

# Contributors

`NoteMate.jl` would not be possible if not for the help and support from our contributors here:

| | | | |
| :---: | :---: | :---: | :---: |
| <img width="50" src="https://avatars2.githubusercontent.com/u/74614227?s=96&v=4"/></br>[SevorisDoe](https://github.com/SevorisDoe) | | | |
2 changes: 2 additions & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
[deps]
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
DocumenterTools = "35a29f4d-8980-5a13-9543-d66fff28ecb8"
LiveServer = "16fef848-5104-11e9-1b77-fb7a48bbb589"
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
NoteMate = "4bd444d9-eedc-4582-9e81-098846183c20"
4 changes: 4 additions & 0 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ makedocs(;
),
pages = [
"Home" => "index.md",
"API Reference" => "api.md",
"Tutorials" => [
"Markdown Tutorial" => "mkd_franklin_tutorial.md"
]
],
)

Expand Down
68 changes: 68 additions & 0 deletions docs/src/api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# API

This is a list of documentation associated with every single **exported** function or object from `NoteMate.jl`.
There are a few different sections with a brief explanation of what these sections are followed by relevant functions.

```@contents
Pages = ["api.md"]
```

## Structs

These are the core objects used to represent various note species within `NoteMate.jl`.
They are designed to be extended or parsed as needed:

```@docs
FranklinNote
Note
```

## Parsing

These functions are built to parse different sorts of files into `NoteMate.jl` objects (i.e. [structs](#structs)).
Multiple sections exist to denote what markup languages are able to be parsed as of now:

### Markdown

The parsing for `NoteMate.jl` supports Markdown -- specifically, [CommonMark Markdown](https://commonmark.org/help/) is supported but support for other variants could be added in the future:

```@docs
find_citation_groups
create_inline_citations
create_references
find_markdown_links
create_relative_links
get_headers
get_sections
get_title_section
```

## Targeting

After [parsing](#parsing) a note into a `NoteMate.jl` object, these functions support translating each object into a specified target output.
These targets are designed to quickly translate one's note to a publishable artifact for the internet (or other future supported platforms).
The following sections denote functions that support a given target:

### Franklin

[`Franklin.jl`](https://franklinjl.org) is a static site generator written in the Julia programming language.
It uses its own variant of markdown called "Franklin Markdown" to assist in publishing content to the web:

```@docs
create_franklin_note
generate_franklin_template
generate_note_summary
generate_bibliography
generate_citation
generate_references
generate_comments
generate_table_of_contents
```

## Miscellaneous

These functions are mostly for occasional use or do not fit cleanly into anyone section yet.

```@docs
sync_file
```
54 changes: 53 additions & 1 deletion docs/src/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,55 @@
# Welcome to the `NoteMate.jl` Docs! 👋

> The perfect companion for working with your notes
> The perfect companion for working with your notes 📚

`NoteMate.jl` is a programmatic transformation tool used to parse and manipulate notes whose structure follows the [Open Knowledge Model (OKM)](https://jacobzelko.com/04172022033744-open-knowledge-standard/index.html).
The goal of `NoteMate.jl` is to enable one to focus only on writing without worry of needing to add any special markup to your note *while* having the benefits of quickly sharing thoughts.
In fact, sharing your thoughts, whether locally or on the internet, is never far away as `NoteMate.jl` provides tools to enable your thoughts to be published on [digital gardens](https://www.lekoarts.de/garden/what-is-a-digital-garden).
Finally, due to the way `NoteMate.jl` parses documents, `NoteMate.jl` can transform notes following the OKM and express them in different outputs irrespective of the implementation.

# Current Capabilities

Currently, these are some of the high level capabilities `NoteMate.jl` can perform:

- Ingest supported filetypes following OKM layout:

- Markdown

- Parsing of a OKM "Note" object to different support outputs:

- [`Franklin.jl`](https://franklinjl.org) Markdown

- Static site deployment workflows supported for rapid [digital garden](https://www.lekoarts.de/garden/what-is-a-digital-garden) creation:

- [`Franklin.jl`](https://franklinjl.org) Support

- Custom citation rendering and creation via `pandoc`, `bibtex`, and `CSL`

# Websites Using `NoteMate.jl`

Here are some websites that use `NoteMate.jl` to manage their website

- [TheCedarPrince's Personal Website](https://jacobzelko.com) - a [Franklin.jl](https://franklinjl.org)-based website that hosts a blog, note archive, and their research endeavors.

# Installation

To install `NoteMate.jl` currently, one needs to run the following command in their Julia REPL:

```
pkg> add https://github.com/TheCedarPrince/NoteMate
```

<!--TODO: Add final instructions before first release! -->

# Long Term Vision for NoteMate.jl

`NoteMate.jl` helps with constructing [digital gardens](https://www.lekoarts.de/garden/what-is-a-digital-garden) for sharing of ideas, insights and information syntheses quickly.
This makes it a good choice for building digital gardens that can be grown with a high-quality, low-tech evidence chain.
Since `NoteMate.jl` follows a modular standard, we think it can be expanded to allow ingestion and translation between many different file formats with different inner-file structures in a bidirectional manner.
As an example, pages in a digital garden may even be able to coalesce multiple notes using the ontology of a note system into aggregate notes in the future.

Since `NoteMate.jl` enforces a common document format with certain information always present, sufficient standardization is present to consider having digital gardens interlink on the web.
Different webpages might reference one another in such ways that they can build off each other, letting people seamlessly jump between different people's ideas and then incorporate them into their own.
Using the approaches here within `NoteMate.jl`, users may eventually be able to also quickly analyze and understand their own knowledge base data that they can leverage to build on other connections across other knowledge bases or in the context of their own work and research.

<!--TODO: Add a philosophy section on the approach NoteMate takes-->
Loading
Loading