diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..8d8cb91a --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +NEXT_PUBLIC_SITE_ROOT="" \ No newline at end of file diff --git a/.github/workflows/staging.yaml b/.github/workflows/staging.yaml index 310f4902..dc8fc96a 100644 --- a/.github/workflows/staging.yaml +++ b/.github/workflows/staging.yaml @@ -4,9 +4,6 @@ on: push: branches: - main - pull_request: - branches: - - main jobs: deploy: @@ -21,6 +18,10 @@ jobs: with: node-version: 18 + - name: 'Create env file' + run: | + echo "${{ secrets.ENV_STAGING }}" > .env + - name: Install Dependencies run: npm ci diff --git a/.gitignore b/.gitignore index 4d1f2b08..4808020d 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ yarn-error.log* # local env files .env*.local +.env # vercel .vercel diff --git a/README.md b/README.md index 4adeab21..91ccb39b 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ If you'd like to be part of the development of sPhil, kindly follow the instruct ### Environmental Variables -2.0. There are no environmental variables! This is a static website. +2.0. There are no environmental variables! This is a static website. (Caveat: we defined some public variables depending on where the site is hosted.) ### Running the Server diff --git a/src/pages/-contributing/_meta.json b/src/pages/-contributing/_meta.json index 83f6f0d1..1cf75567 100644 --- a/src/pages/-contributing/_meta.json +++ b/src/pages/-contributing/_meta.json @@ -10,5 +10,16 @@ }, "code-of-conduct": { "title": "Code of Conduct" - } + }, + "-- Philosophy": { + "type": "separator", + "title": "Philosophy" + }, + "methodology": "", + "-- Code": { + "type": "separator", + "title": "Code" + }, + "why-these-tools": "", + "github": "" } \ No newline at end of file diff --git a/src/pages/-contributing/code-of-conduct.mdx b/src/pages/-contributing/code-of-conduct.mdx index 3cf8ff5b..c82ebc7e 100644 --- a/src/pages/-contributing/code-of-conduct.mdx +++ b/src/pages/-contributing/code-of-conduct.mdx @@ -2,4 +2,94 @@ searchable: false --- -here be the code of conduct \ No newline at end of file + +# Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. + +We pledge to act in accordance with the tenets and guidelines set out in the [methodology](/-contributing/methodology) to the best of our ability to build _the_ resource for systematic philosophy on the internet, or improve upon it with our collaborators. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at [this e-mail](mailto:logos@systemphil.com). All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of actions. + +**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at [https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/src/pages/-contributing/github.mdx b/src/pages/-contributing/github.mdx new file mode 100644 index 00000000..98dff234 --- /dev/null +++ b/src/pages/-contributing/github.mdx @@ -0,0 +1,30 @@ +--- +searchable: false +--- + +import { Card, Cards } from 'nextra/components' + +# GitHub + + + + + + + \ No newline at end of file diff --git a/src/pages/-contributing/github/conceptual-overview.mdx b/src/pages/-contributing/github/conceptual-overview.mdx new file mode 100644 index 00000000..9779fdf6 --- /dev/null +++ b/src/pages/-contributing/github/conceptual-overview.mdx @@ -0,0 +1,60 @@ +--- +searchable: false +--- + +# GitHub: Conceptual Overview + +```mermaid +graph TD; +subgraph AA [Contributors] +A[User 1]; +B[User 2]; +C[user 3]; +end +subgraph BB [Public] +E[www]; +end +Z[GitHub Repository]; +A --> Z; +B --> Z; +C --> Z; +Z --> E; +``` + +GitHub is a web-based platform designed to facilitate collaborative software development. It serves as a hub for developers to work together on coding projects, track changes, and manage their code repositories. At its core, GitHub uses a version control system called Git, which helps developers manage and track changes to their code. + +One of the fundamental concepts on GitHub is forking. Forking allows a user to create a copy of a repository (a collection of code files and related resources) from another user or organization's GitHub account. This forked repository becomes an independent copy of the original, enabling contributors to make changes without affecting the original codebase. This is particularly useful for suggesting improvements, fixing bugs, or adding new features. + +```mermaid +graph TD; +subgraph AA [User] +A[Forked Repository]; +end +subgraph BB [sPhil] +B[sPhil Reposotory]; +end +B --> A; +``` + +Once you've forked a repository, you can clone it to your local development environment, which means you download a copy of the code to your computer, or you can interact directly with the code through GitHub. From whichever of the two development environment you choose to work from, you can make changes to the code as needed, following the project's guidelines or your own ideas for improvements. + +After making changes, you create a new branch within your forked repository. Branches are like separate lines of development that allow you to work on specific features or bug fixes without affecting the main codebase. Once you've finished making your changes in the branch, you can create a pull request (PR) to propose these changes to the original repository. + +A pull request is a request to the original repository's owner to review and merge your changes into their codebase. It includes a description of the changes, and the repository owner and collaborators can discuss the proposed changes, make additional comments, or request further modifications. Pull requests serve as a vital collaboration tool, enabling team members to evaluate code and ensure that it meets quality standards. + +```mermaid +graph TD; +subgraph AA [User] +A[Forked Repository]; +B[Makes and Commits Edits]; +end +subgraph BB [sPhil] +Z[sPhil Reposotory]; +end +Z --> A; +A --> B; +B --> A; +A -->|Pull Request| Z; +``` + +If your pull request is approved and merged into the original repository, your contributions become part of the project, and others can benefit from your work. This collaborative workflow is central to GitHub's purpose, as it allows developers from around the world to work together, share knowledge, and collectively improve software projects. It also provides transparency and accountability in software development, making it easier for developers to track changes, understand the project's history, and maintain a high-quality codebase. diff --git a/src/pages/-contributing/index.mdx b/src/pages/-contributing/index.mdx index 8cc4f684..091ec943 100644 --- a/src/pages/-contributing/index.mdx +++ b/src/pages/-contributing/index.mdx @@ -1,6 +1,5 @@ --- overridingTitle: "Contributing" -description: "sPhil is open-source philosophy." searchable: false --- @@ -32,7 +31,7 @@ Whether you're a newcomer to philosophy or an experienced philosopher, our encyc We use [GitHub](https://github.com/) to coordinate and edit both the philosophy and the code on sPhil. In fact, the contents of philosophy are directly written into the source code. To get started, you need a GitHub account. You can sign up [here](https://github.com/signup). -Next you'll need to make your way to the [sPhil code repository](https://github.com/Firgrep/sphil). +Next you'll need to make your way to the [sPhil code repository](https://github.com/systemphil/sphil). The contents of this particular guide is intended to get you ready to contribute as quickly as possible to the codebase on GitHub and will therefore have omitted explaining many concepts about that platform. If you feel like you need an overview of just what GitHub is and how it works, see our [conceptual overview](). @@ -146,7 +145,7 @@ Further and more detailed information and the file structure and files will be p To view the source code of articles on GitHub is a straightforward process and doesn't actually require a GitHub account! Below we've outlined how you might navigate to view the source code of a particular article. -1. Assuming you are in the [sPhil repository](https://github.com/Firgrep/sphil) landing page, click on the `src` directory. (When you click on a directory from the initial repository landing page, you will be taken to a different interface that allows you to view individual files as well as a map of the directories and files on your left). +1. Assuming you are in the [sPhil repository](https://github.com/systemphil/sphil) landing page, click on the `src` directory. (When you click on a directory from the initial repository landing page, you will be taken to a different interface that allows you to view individual files as well as a map of the directories and files on your left). 1. You should now be in a more work-convenient interface and there should be a menu with directories (`components`, `pages`, `styles`, `util`, etc.) in the main body of your page as well as an expanded tree of directories to your left. Use either one to navigate. Click on the `pages` directory. 1. You are now in the file structure outlined above. Everything in `/pages` directory concerns routing and content, and in this directory we find the miscellaneous pages. From here, you would to navigate to the philosophical system (or philosopher) of interest. Let's go to `hegel`. 1. You are now in the directory for a specific philosophical system (or philosopher) and will usually find the two `/guides` and `/reference` directories as well as a `_meta.json` and an `index.mdx` file that acts as a particular landing page. Let's continue to `reference`. @@ -191,4 +190,4 @@ In this section we have briefly touched on the basics of using GitHub to create ## Contributing Code -Talk about how to code etc +If you're looking to get involved on the technical side of things, such as the functionality of the website or CI/CD pipelines, the best approach is to head straight to the [sPhil repository](https://github.com/systemphil/sphil) and start from the readme. diff --git a/src/pages/-contributing/methodology.mdx b/src/pages/-contributing/methodology.mdx new file mode 100644 index 00000000..ad19bbef --- /dev/null +++ b/src/pages/-contributing/methodology.mdx @@ -0,0 +1,19 @@ +--- +searchable: false +--- + +# Methodology + +## Spirit of the Method + +The spirit of the method of *sPhil* is deep exegesis of a philosophical system in order to develop and expose a definitive and comprehensive account of its contents. This account is split along an axis that has two ends: on one extreme, is user-friendliness and making knowledge as welcoming and accessible as possible; the other extreme is technical depth and exhaustiveness, where knowledge often requires a highly specialized vocabulary and irregular syntax. Ideally, both of these poles would be achieved in concert but instead of compromising one for the other, we have decided to run with the intensity of each and let the reader be conduit of both. These two poles are called *Guides* and *Reference*, inspired by how software engineers build their technical documentation split between on-boarding of new users and the pure functionality of the system. + +This does not, however, preclude overlap between the two poles and, indeed, some consideration is expected on the side of technical depth that the account should be readable, clear and well-structured just as on the side of introduction the matter should not be false or inaccurate. + +## Exegesis First + +The focus of *sPhil* accounts, whether they are in the Guides or Reference section, is on rendering the contents of a philosophical system explicit. There usually exists a vibrant scholarship around a philosophical system, and we invite contributors to make use of those wherever it is helpful or relevant, but we strongly encourage contributors to explicate the philosophy to the best of their ability rather than deferring that labor to someone else. In other words, the matter at hand should be explicated with only the primary source(s) to the best of one's ability before turning to second hand literature and scholarly disputations. This pattern is already widely used in *Wikipedia*, *The Stanford Encyclopaedia of Philosophy* and *nLab*, where a generic account is given first before turning to specifics and different interpretations, etc. + +## Non-neutral Standpoint + +We do not claim to keep or offer a neutral or non-commital view on a matter. In the realm of pure thinking, such a position cannot really be sustained since it is essentially pretending not to think. We do, however, aim to keep a self-critical and argued stance, where textual evidence is provided for a certain judgment or, where such evidence is lacking or unclear, a reasoned theory, and overall avoid untethered opinions. In other words, *sPhil* will not pretend to hold a view from nowhere but hold the best view developed through collaborative effort. diff --git a/src/pages/-contributing/why-these-tools.mdx b/src/pages/-contributing/why-these-tools.mdx new file mode 100644 index 00000000..af631332 --- /dev/null +++ b/src/pages/-contributing/why-these-tools.mdx @@ -0,0 +1,23 @@ +--- +searchable: false +--- + +# Why These Tools + +## Why Markdown, GitHub, etc? + +Editing and publishing intellectual matter the traditional way often involves a lot of overhead and manual work that has little or nothing to do with the content. This effort makes sense where the manuscript and published work are physically different objects, and even more so where the manuscript was something hand-written which needed to be converted to a printed form. But in the digital age where the input and output is digital text, such expensive hurdles are overcome and replaced with a streamlined process that focuses on the content rather than the formatting of the document. Right? Unfortunately, this is not the case. While the tools have become digital, the practice remains much the same, if not worsened: not only must editors manually format virtually entire documents in order that they are in keeping with the form of the collection, but often times the software used is of varying editions, some of which bring with them strange bugs that find they way into the main editing file and cause bizarre behaviour that itself calls for an arcane investigation. Where the input and output is digital text, such issues should made trivial if not non-existent. + +Markdown is basically simple text but with minimal additions, such as headers, italics, bold, bullet points and a few others. For the majority of tasks, this is all that's needed. Markdown aligns well with our ideal to focus on the content rather than formatting. Where Markdown falls short, however, such as tables, footnotes, and other things, we can simply programmatically extend its functionality through plugins. Another non-trivial reason for using Markdown is that anyone can pick up and start using Markdown without being locked to any particular vendor, and, therefore, in essence the format is universal. + +Git is a versioning control system that is ubiquitous in the world of software. Programmers essentially work in files of text, writing code in text or symbols, creating functionality and interactivity through code in text, and when a particular software grows beyond a dozen or so software enginners it quickly becomes a challenge to keep track of who has written what, what is compatible with what, what version something is, etc. This is where Git comes. It effectivelly "saves" the code one writes but also keeps track of versions, data-integrity, compatibility between versions and much more. Imagine coordinating thousands of engineers on a [very large software](https://github.com/torvalds/linux)! + +GitHub allows one to store and manage one's code. It uses Git but offers a suite of additional tools integrated with the coding workflow. It also offers a friendly interface for one to work directly with code from the browser. Of the additional tools GitHub offers, it is worth mentioning that it has a system of commenting and feedback which is key for developing heavy-duty philosophical ideas. + +What these tools enable us to do is to build consesus on the philosophical material. Simple and basic terms can be hashed out, allowing for exploration of more intricate and detailed material. And where the elementary matters are left wanting, the path is open for us to go back exactly where we need to make the appropriate changes. + +A second crucial feature through these tools is collaboration. If a group working together is unable to be on the same page, then there will always be some externality with regards to the idea and its expression, but through these tools we can can be on the same page, literally, and pool together our mental resources. Philosophy is implicitly systematic, because ideas and patterns are communicated and every philosopher is one instance of how things hang together, informed by the thread of history. Now, we try to make philosophy explicitly systematic, not only in its idea but also its expression. + +Moreover, the open-source principles found in software aligns well with this ideal. Just as every philosopher makes their contribution towards the account of *what is* to develop their understanding, so does the programmer contribute their changes to the code of the program to develop its functionality, and so will we contribute towards the understanding of philosophy with its source being open and accessible to everyone. + +Taking the three points above together, the direction and growth of this project depends as much on its individual contributors as it does on its coordination, such that this cannot but bring together an intellectual community. Indeed, the world of ideas already forms an intellectual community, but it is continually being stunted and entangled in senseless metrics from forces outside. In this digital space, we will aim to keep the senseless from sense unless of course it has a comedic advantage. This leads to the final point, which is that these tools enable us to not only focus on the content that matters but to make the knowledge public and freely available. diff --git a/theme.config.tsx b/theme.config.tsx index c4e75194..4a9702f6 100644 --- a/theme.config.tsx +++ b/theme.config.tsx @@ -4,10 +4,10 @@ import Footer from "@/components/Footer"; import { useRouter } from "next/router"; import { type DocsThemeConfig, useConfig } from "nextra-theme-docs"; -const SITE_ROOT = "https://sphil-test.ey.r.appspot.com/"; +const SITE_ROOT = process.env.NEXT_PUBLIC_SITE_ROOT; const config: DocsThemeConfig = { - docsRepositoryBase: "https://github.com/Firgrep/sphil/tree/main", // root for every edit link + docsRepositoryBase: "https://github.com/systemphil/sphil/tree/main", // root for every edit link editLink: { text: "Edit this page on GitHub", }, @@ -81,7 +81,7 @@ const config: DocsThemeConfig = { light: 215 }, project: { - link: "https://github.com/Firgrep/sphil" // linked icon in the navbar top-right + link: "https://github.com/systemphil/sphil" // linked icon in the navbar top-right }, search: { placeholder: "Search encyclopaedia…",