Compare commits
10 Commits
9189ba54cc
...
d6256dfa18
| Author | SHA1 | Date | |
|---|---|---|---|
|
d6256dfa18
|
|||
|
acc2106e67
|
|||
| 08850f4d82 | |||
| d17e421618 | |||
| 56ce939843 | |||
| 30a9f4cc82 | |||
| 3764fdcf99 | |||
| 916584dfe9 | |||
| 681854dc58 | |||
| f02c0777c1 |
25
README.md
25
README.md
@@ -2,7 +2,8 @@
|
||||
|
||||
This repository is to define a backend for, and to serve, my website. The code here is building upon the basis of a project structure and associated source code supplied by the [Elxir](https://elixir-lang.org/) [Phoenix](https://hexdocs.pm/phoenix/installation.html) web framework package(s)/module(s) and the associated CLI utilities.
|
||||
|
||||
This project is a WIP.
|
||||
> [!NOTE]
|
||||
> Not only is this a WIP, but this project is the first time I've ever used the Elixir programming language. As of yet, the source code is not written idiomatically.
|
||||
|
||||
## Execution and installation
|
||||
|
||||
@@ -14,29 +15,31 @@ There are a collection of procedures to follow for proper execution and installa
|
||||
|
||||
Make sure to configure things like the website's name, author, etc., via the `${SUKAATO_SITE_SOURCE_ROOT}/site.toml` file.
|
||||
|
||||
#### Supplying Resources to Themes
|
||||
#### Supply Resources to Themes
|
||||
|
||||
Make sure that subdirectories under path `${SUKAATO_SITE_SOURCE_ROOT}/priv/static/` are appropriately populated. Either follow the active/enabled theme's CSS/SASS path references, or change such path references to match custom `${SUKAATO_SITE_SOURCE_ROOT}/priv/static` prefixed filepaths.
|
||||
|
||||
> [!TIP]
|
||||
> Website theme can be changed by assigning a value to `theme` in `${SUKAATO_SITE_SOURCE_ROOT}/site.toml`.
|
||||
|
||||
References to paths in CSS/SASS file should be absolute paths, insofar as their root is kwown and is `${SUKAATO_SITE_SOURCE_ROOT}/priv/static`. That is, they are relative to the aforementioned path, but not relative to the CSS/SASS file being currently edited.
|
||||
References to paths in CSS/SASS file should be absolute paths, insofar as their root is known and is `${SUKAATO_SITE_SOURCE_ROOT}/priv/static`. That is, they are relative to the aforementioned path, but not relative to the CSS/SASS file being currently edited.
|
||||
|
||||
> [!WARNING]
|
||||
> The paths referenced in CSS/SASS files recursively under `${SUKAATO_SITE_SOURCE_ROOT}/assets/sass/` or `${SUKAATO_SITE_SOURCE_ROOT}/assets/css/` are relative to `${SUKAATO_SITE_SOURCE_ROOT}/priv/static` and not each such CSS/SASS file currently being edited. This is UNLESS subdirectories of `${SUKAATO_SITE_SOURCE_ROOT}/priv/static/` [have not been marked as external in `${SUKAATO_SITE_SOURCE_ROOT}/config/config.exs`](https://hexdocs.pm/phoenix/asset_management.html#images-fonts-and-external-files); in that case, the given filepaths will never be found anyway.
|
||||
> The paths referenced in CSS/SASS files recursively under `${SUKAATO_SITE_SOURCE_ROOT}/assets/sass/` or `${SUKAATO_SITE_SOURCE_ROOT}/assets/css/` are relative to `${SUKAATO_SITE_SOURCE_ROOT}/priv/static` and not each such CSS/SASS file currently being edited. This is UNLESS subdirectories of `${SUKAATO_SITE_SOURCE_ROOT}/priv/static/` [have not been marked as external for/to `:esbuild` in `${SUKAATO_SITE_SOURCE_ROOT}/config/config.exs`](https://hexdocs.pm/phoenix/asset_management.html#images-fonts-and-external-files); in that case, the given filepaths will never be found anyway.
|
||||
|
||||
SASS files can be found under path `${SUKAATO_SITE_SOURCE_ROOT}/assets/sass/themes/**/`, while CSS files can be found under path `${SUKAATO_SITE_SOURCE_ROOT}/assets/css/`.
|
||||
|
||||
> [!TIP]
|
||||
> Avoid editing file `app.css` under `${SUKAATO_SITE_SOURCE_ROOT}/assets/css/` path directly. Edit SASS files under `${SUKAATO_SITE_SOURCE_ROOT}/assets/sass/themes/${theme_name}/` wherein `$theme_name` corresponds to name of enabled/active website theme. The aforementioned `app.css` file should be the final output starting from the preprocessing of SASS files recursively found under any subdirectory at `${SUKAATO_SITE_SOURCE_ROOT}/assets/sass/themes/`. Which subdirectory's SASS files are to be preprocessed as CSS is based on the relative imports in a symbolic link, `app.sass`, directly under `${SUKAATO_SITE_SOURCE_ROOT}/assets/sass/themes/`. This symbolic link should be to an `export.sass` file found directly under `${SUKAATO_SITE_SOURCE_ROOT}/assets/sass/themes/${theme_name}/` corresponding to the active/enabled website theme.
|
||||
|
||||
The website has a default theme supplied, but you are welcome to make your own and then set it in `${SUKAATO_SITE_SOURCE_ROOT}/site.toml`.
|
||||
The website has a default theme supplied, but you are welcome to make your own. Website theme can be changed by assigning a value to `theme` in `${SUKAATO_SITE_SOURCE_ROOT}/site.toml`, so set it there once made.
|
||||
|
||||
> [!TIP]
|
||||
> Make sure that all renderable stylesheet paths for files under `${SUKAATO_SITE_SOURCE_ROOT}/lib/sukaato_web/controllers/page_*` are set to `/assets/app.css`, or a path relative to `${SUKAATO_SITE_SOURCE_ROOT}/priv/static` that has been made external (whether the directory exists yet or not). Again, see about [asset management in Phoenix web framework](https://hexdocs.pm/phoenix/asset_management.html#images-fonts-and-external-files).
|
||||
> Make sure that all renderable stylesheet paths for files under `${SUKAATO_SITE_SOURCE_ROOT}/lib/sukaato_web/controllers/page_*/` are set to `/assets/app.css`, or a path relative to `${SUKAATO_SITE_SOURCE_ROOT}/priv/static` that has been made external (whether the directory exists yet or not) for/to `:esbuild`. Again, see about [asset management in Phoenix web framework](https://hexdocs.pm/phoenix/asset_management.html#images-fonts-and-external-files).
|
||||
|
||||
### Running this project's server
|
||||
#### Supply Resources for Pages
|
||||
|
||||
> **TBC**
|
||||
> This section is unfinished. Check back later.
|
||||
|
||||
### Run the project's server
|
||||
|
||||
This project was built using the Phoenix web framework. To start the Phoenix server:
|
||||
|
||||
@@ -47,7 +50,7 @@ This project was built using the Phoenix web framework. To start the Phoenix ser
|
||||
|
||||
Now you can visit [`localhost:4001`](https://localhost:4001) from your browser.
|
||||
|
||||
### Running this project in production
|
||||
### Run this project in production
|
||||
|
||||
Ready to run in production? Please [check Phoenix web framework's deployment guides](https://hexdocs.pm/phoenix/deployment.html).
|
||||
|
||||
|
||||
29
tasks.org
29
tasks.org
@@ -2,8 +2,27 @@
|
||||
#+email: ajt95@prole.biz
|
||||
#+language: en
|
||||
|
||||
* TODO [#A] Add view render file under `lib/sukaato_web/controllers` and template files under `lib/sukaato_web/controllers/*_html/` :feature:
|
||||
** TODO [#A] Move ".php" extension pages and associated assets from original website project's `public` directory to `lib/sukaato_web/controllers/page_html`
|
||||
** TODO [#A] Remove or substitute PHP in ".php" extension pages with HEEX variables
|
||||
** TODO [#A] Change file extension of ".php" extension pages to ".html.heex"
|
||||
** TODO [#A] Define HEEX variables in template files under `lib/sukaato_web/controllers/*_html/` wherever appropriate, starting directly in the related function in the view render file
|
||||
* PLANNED
|
||||
** TODO [#A] Move Markdown and JSON files used by HEEx pages to new directories ~${SUKAATO_SITE_SOURCE_ROOT}/priv/static/{md,json}~
|
||||
- May require editing some paths in file ~${SUKAATO_SITE_SOURCE_ROOT}/lib/sukaato_web/marker.ex~
|
||||
- May require marking the new paths relative to ~${SUKAATO_SITE_SOURCE_ROOT}/priv/static~ as external to/for ~:esbuild~ in ~${SUKAATO_SITE_SOURCE_ROOT}/config/config.exs~ (see [[https://hexdocs.pm/phoenix/asset_management.html#images-fonts-and-external-files][asset management in Phoenix web framework]])
|
||||
** TODO [#A] Add JSON file containing object list for favorite albums, named "albums.json"
|
||||
*** TODO [#A] Add equivalently structured Elixir default object list in file ~${SUKAATO_SITE_SOURCE_ROOT}/lib/sukaato_web/controllers/page_controller.ex~, using an Elixir struct data type declared in ~${SUKAATO_SITE_SOURCE_ROOT}/lib/sukaato_web/controllers/web_types.ex~
|
||||
*** TODO [#A] Add a HEEx file (with existing route and controller / view function) in ~${SUKAATO_SITE_SOURCE_ROOT}/lib/sukaato_web/controllers/page_html/~ with the same base filename (i.e., "albums.html.heex")
|
||||
** TODO [#A] Add profile and account management page, visible after login to website
|
||||
** TODO [#A] Add page/iframe or page element for drafting, publishing and editing blogposts, visible after login to website
|
||||
- May require use of Phoenix LiveView
|
||||
** TODO [#A] Implement ability for ~SukaatoWeb.Marker~ module in ~${SUKAATO_SITE_SOURCE_ROOT}/lib/sukaato_web/marker.ex~ to parse/render markdown posts or posts in database
|
||||
*** TODO [#A] Add page for feed of blogposts and for individual posts
|
||||
**** TODO [#B] Implement RSS feed for blogpost feed
|
||||
** TODO [#C] Add a page for favorite music albums
|
||||
** TODO [#C] Create or implement APIs for broader administrative capabilities
|
||||
- May require use of Phoenix LiveView
|
||||
** TODO [#A] Implement passkey login authentication flow "thread" to website
|
||||
** TODO [#B] Add basic admin dashboard containing essentials, visible after admin login to website
|
||||
- Should contain announcement publishing
|
||||
- Should contain user managing
|
||||
|
||||
* IN PROGRESS
|
||||
|
||||
* FINISHED
|
||||
|
||||
Reference in New Issue
Block a user