From 93f86f6af9c35a851031d5a90cccca3fbc51a7f1 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Wed, 15 Apr 2020 20:04:24 +0100 Subject: [PATCH 01/28] [Gitlab] Add Merge request template --- .gitlab/merge_request_templates/contribution.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .gitlab/merge_request_templates/contribution.md diff --git a/.gitlab/merge_request_templates/contribution.md b/.gitlab/merge_request_templates/contribution.md new file mode 100644 index 0000000..b9f1985 --- /dev/null +++ b/.gitlab/merge_request_templates/contribution.md @@ -0,0 +1,16 @@ +## Summary + + + +### QA + + + +### Checklist + +[ ] Is the linter happy? +[ ] Is the byte compiler happy (no warning) ? +[ ] Is it backward compatible +[ ] Did you document your changes ? +[ ] Did you update the CHANGELOG ? +[ ] Did you actually test your changes ? From cfc46220f5fa2011665b1e19e735617fb40da935 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sat, 16 May 2020 11:14:23 +0100 Subject: [PATCH 02/28] Update Typescript extension with lsp --- lib/extensions/typescript.el | 2 +- lib/extensions/typescript/init.el | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/lib/extensions/typescript.el b/lib/extensions/typescript.el index 89777ce..e19bb2e 100644 --- a/lib/extensions/typescript.el +++ b/lib/extensions/typescript.el @@ -10,7 +10,7 @@ ;; Dependencies ---------------------------------- (depends-on 'typescript-mode) -(depends-on 'tide) + (defun typescript-doc () "Something fun.") diff --git a/lib/extensions/typescript/init.el b/lib/extensions/typescript/init.el index f59d8ec..d8d8f21 100644 --- a/lib/extensions/typescript/init.el +++ b/lib/extensions/typescript/init.el @@ -9,18 +9,18 @@ (setq tmp-directory (concat (getenv "HOME") "/.tmp")) ;; aligns annotation to the right hand side (setq company-tooltip-align-annotations t) - - ;; formats the buffer before saving - (add-hook 'before-save-hook 'tide-format-before-save) - (add-hook 'typescript-mode-hook #'setup-tide-mode) - - (tide-setup) (flycheck-mode 1) (setq flycheck-check-syntax-automatically '(save mode-enabled)) + (eldoc-mode 1) - (tide-hl-identifier-mode 1) (company-mode 1)) + +(defun lsp-typescript-config () + (interactive) + (require 'lsp) + (require 'lsp-clients)) + ;;;###autoload (defun extensions/typescript-initialize () "Initialize the typescript extension." @@ -30,8 +30,9 @@ (add-hook 'web-mode-hook (lambda () (when (string-equal "tsx" (file-name-extension buffer-file-name)) - (setup-tide-mode) - (tide-hl-identifier-mode)))) + (setup-tide-mode)))) + + (add-hook 'typescript-mode-hook #'lsp-typescript-config) ;; enable typescript-tslint checker (flycheck-add-mode 'typescript-tslint 'web-mode))) From daf8bf3cdfb80b71cb9848db97d4fb6aec0de97c Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 11:06:41 +0100 Subject: [PATCH 03/28] Revert fpkg to use package.el temporary until we finish Enma --- lib/fpkg.el | 77 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 27 deletions(-) diff --git a/lib/fpkg.el b/lib/fpkg.el index 866e1d6..3a9a84f 100644 --- a/lib/fpkg.el +++ b/lib/fpkg.el @@ -37,37 +37,59 @@ (source 'elpa)) -(defvar bootstrap-version nil - "Bootstrap version of straight. This var is used in straight's installer.") - - -(defvar fpkg-packages-path - (expand-file-name ".fpkg/" fg42-home) - "The path to the directory which FPKG will use to store that packages.") - (defvar fpkg-initilized-p nil "A boolean flag that indicates whether FPKG is initialized or not.") + (defvar required-packages (make-hash-table) "A hash of `fg42-package structure representing required packages.") -;; Functions ---------------------------------- -(defun fpkg-initialize () - "Initilize the straight.e package manager and setup necessary hooks." - (let ((bootstrap-file (concat fpkg-packages-path - "straight/repos/straight.el/bootstrap.el")) - (bootstrap-version 5)) - (make-directory fpkg-packages-path t) - (setq straight-base-dir fpkg-packages-path) - (if (not (file-exists-p bootstrap-file)) - (with-current-buffer - (url-retrieve-synchronously - "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" - 'silent 'inhibit-cookies) - (goto-char (point-max)) - (eval-print-last-sexp)) - (load bootstrap-file nil 'nomessage)))) +;; Functions ---------------------------------- +(defun all-dependencies-installed? () + "Return t if all the dependencies installed." + (let ((result t)) + (dolist (pkg (hash-table-keys required-packages)) + (when (not (package-installed-p pkg)) + (message "'%s' package is not installed" pkg) + (setq result nil))) + result)) + + +(defun install--package (pkg) + "Intall the package PKG via its propreate source." + (let* ((source (fpkg-dependency-source pkg)) + (func-name (concat "install-package-via-" (symbol-name source))) + (install-func (symbol-function (intern func-name)))) + (funcall install-func pkg))) + + +(defun fpkg-initialize () + "Initilize the `package.el' and related stuff to be used in FG42." + (let ((packages (hash-table-values required-packages))) + + (require 'package) + + (add-to-list 'package-archives + '("melpa" . "http://melpa.org/packages/") t) + (when (< emacs-major-version 24) + ;; For important compatibility libraries like cl-lib + (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/"))) + + ;; Initialize package.el + (package-initialize) + + (setq url-http-attempt-keepalives nil) + + (unless (all-dependencies-installed?) + ;; check for new packages (package versions) + (message "%s" "Refreshing package database...") + (package-refresh-contents) + + ;; install the missing packages + (dolist (pkg packages) + (when (not (package-installed-p (fpkg-dependency-name pkg))) + (install--package pkg)))))) (defun fpkg-initialize-once () @@ -76,9 +98,10 @@ (fpkg-initialize))) -(defun depends-on (pkgname) - "Install the given PKGNAME if it isn't installed." - (straight-use-package pkgname)) +(defun depends-on (pkgname &rest args) + "Install the package PKGNAME with respect to the ARGS." + (let ((pkg (apply 'make-fpkg-dependency :name pkgname args))) + (puthash pkgname pkg required-packages))) (provide 'fpkg) From fe59f3823a6a835fddcf02e4e91793d3f48cc657 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 11:25:25 +0100 Subject: [PATCH 04/28] Fix the branch name on gitlab ci configu --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4e32ab6..0ee87fb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,7 +6,7 @@ stages: stage: build before_script: - apt update && apt install -y make wget git emacs sudo - - git clone -b fpkg-v2 https://gitlab.com/FG42/FG42 ~/.fg42/ && cd ~/.fg42/ && make install && + - git clone -b $CI_COMMIT_REF_NAME https://gitlab.com/FG42/FG42 ~/.fg42/ && cd ~/.fg42/ && make install && script: - cd ~/.fg42/ && fg42 -nw --script build.el From 9e221214a5ebef7625dda0f1f5c710b452b46605 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 14:35:09 +0100 Subject: [PATCH 05/28] Fix the build script to install all the dependencies --- build.el | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/build.el b/build.el index 8eb8c20..e91c1b8 100644 --- a/build.el +++ b/build.el @@ -21,27 +21,31 @@ ;; ;;; Commentary: ;;; Code: -(add-to-list 'load-path (concat (getenv "HOME") ".fg42/lib")) +(add-to-list 'load-path (concat (getenv "HOME") "/.fg42/lib")) -(defvar bootstrap-version nil - "Bootstrap version of straight. This var is used in straight's installer.") +(require 'fg42) +(require 'fpkg) -(defun fpkg-initialize () - "Initilize the straight.e package manager and setup necessary hooks." - (let ((bootstrap-file "~/.fg42/.fpkg/straight/repos/straight.el/bootstrap.el") - (bootstrap-version 5)) +(activate-extensions 'editor + 'development + 'web + 'editor-theme + 'javascript + 'ruby + 'clojure + 'haskell + 'php + 'common-lisp + 'python + 'serene + 'typescript + 'arduino + 'java + 'racket + 'irc + 'latex) - (setq straight-base-dir "~/.fg42/.fpkg/") - (if (not (file-exists-p bootstrap-file)) - (with-current-buffer - (url-retrieve-synchronously - "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" - 'silent 'inhibit-cookies) - (goto-char (point-max)) - (eval-print-last-sexp)) - (load bootstrap-file nil 'nomessage)))) - -(fpkg-initialize) +(fg42-initialize) (provide 'build) ;;; build.el ends here From 5b5313741146dc55749099f12f870dcc5c51267b Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 16:29:11 +0100 Subject: [PATCH 06/28] Install gnutls28 before running build script --- .gitlab-ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0ee87fb..2ec1fa7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,11 +1,14 @@ +image: 'debian:stable' stages: - build +before_script: + - apt update && apt install -y make wget git emacs sudo gnutls28 + .build: image: debian:stable-slim stage: build before_script: - - apt update && apt install -y make wget git emacs sudo - git clone -b $CI_COMMIT_REF_NAME https://gitlab.com/FG42/FG42 ~/.fg42/ && cd ~/.fg42/ && make install && script: - cd ~/.fg42/ && fg42 -nw --script build.el From 8d820fc9783323f4deaefb8fef01aec4c4241f3e Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 16:32:01 +0100 Subject: [PATCH 07/28] Remove global before_script from gitlab ci --- .gitlab-ci.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2ec1fa7..d325b27 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,14 +1,11 @@ -image: 'debian:stable' stages: - build -before_script: - - apt update && apt install -y make wget git emacs sudo gnutls28 - .build: image: debian:stable-slim stage: build before_script: + - apt update && apt install -y make wget git emacs sudo gnutls28 - git clone -b $CI_COMMIT_REF_NAME https://gitlab.com/FG42/FG42 ~/.fg42/ && cd ~/.fg42/ && make install && script: - cd ~/.fg42/ && fg42 -nw --script build.el From 867b641068e7a1cc5b16348d6dcdaf2b36b9e5d7 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 16:48:31 +0100 Subject: [PATCH 08/28] Change gnutls28 to gnutls --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d325b27..18a4fe8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,7 +5,7 @@ stages: image: debian:stable-slim stage: build before_script: - - apt update && apt install -y make wget git emacs sudo gnutls28 + - apt update && apt install -y make wget git emacs sudo gnutls - git clone -b $CI_COMMIT_REF_NAME https://gitlab.com/FG42/FG42 ~/.fg42/ && cd ~/.fg42/ && make install && script: - cd ~/.fg42/ && fg42 -nw --script build.el From d304cb16372875ca44067288267d444fcce4b316 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 16:57:30 +0100 Subject: [PATCH 09/28] Try gnutls-bin with the CI --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 18a4fe8..5989f8e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,7 +5,7 @@ stages: image: debian:stable-slim stage: build before_script: - - apt update && apt install -y make wget git emacs sudo gnutls + - apt update && apt install -y make wget git emacs sudo gnutls-bin - git clone -b $CI_COMMIT_REF_NAME https://gitlab.com/FG42/FG42 ~/.fg42/ && cd ~/.fg42/ && make install && script: - cd ~/.fg42/ && fg42 -nw --script build.el From c505d82fe8c0057a0d1c76d0da5d634026a757f5 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 17:09:39 +0100 Subject: [PATCH 10/28] Fix the elpa ssl bug by explicitly set the TLS version --- build.el | 1 + 1 file changed, 1 insertion(+) diff --git a/build.el b/build.el index e91c1b8..e05d39f 100644 --- a/build.el +++ b/build.el @@ -21,6 +21,7 @@ ;; ;;; Commentary: ;;; Code: +(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3") (add-to-list 'load-path (concat (getenv "HOME") "/.fg42/lib")) (require 'fg42) From f8f6ba1119be02d488b278a334970bba1081c049 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 17:40:18 +0100 Subject: [PATCH 11/28] Try debian unstable image with CI --- .gitlab-ci.yml | 1 + build.el | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5989f8e..436dead 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,3 +1,4 @@ +image: "debian:unstable" stages: - build diff --git a/build.el b/build.el index e05d39f..5bcdd63 100644 --- a/build.el +++ b/build.el @@ -22,11 +22,12 @@ ;;; Commentary: ;;; Code: (setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3") +(setq user-directory (concat (getenv "HOME") "/.fg42/lib")) (add-to-list 'load-path (concat (getenv "HOME") "/.fg42/lib")) (require 'fg42) (require 'fpkg) - +(i-am-god) (activate-extensions 'editor 'development 'web From 95123e7d9cf0ad9ba1dd1dfaed0390c6a6495317 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 17:55:13 +0100 Subject: [PATCH 12/28] Set user-emacs-directory to the right path on build.el --- build.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.el b/build.el index 5bcdd63..09d63d2 100644 --- a/build.el +++ b/build.el @@ -22,7 +22,7 @@ ;;; Commentary: ;;; Code: (setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3") -(setq user-directory (concat (getenv "HOME") "/.fg42/lib")) +(setq user-emacs-directory (concat (getenv "HOME") "/.fg42/")) (add-to-list 'load-path (concat (getenv "HOME") "/.fg42/lib")) (require 'fg42) From 2fb1bb61570247c7b2660327078b496a77032891 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 18:04:22 +0100 Subject: [PATCH 13/28] Add the list of disabled abilities to the build script --- build.el | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/build.el b/build.el index 09d63d2..b817af4 100644 --- a/build.el +++ b/build.el @@ -28,6 +28,12 @@ (require 'fg42) (require 'fpkg) (i-am-god) + +(disable 'rbenv 'helm 'spell 'linum 'tabbar + 'smart-mode-line 'desktop-mode 'jedi + 'dired+ 'guru 'emoji 'elpy 'github + 'versioned-backup) + (activate-extensions 'editor 'development 'web From 948fe12c217e61cdf3dcb3d2c05d4f5ace59c81f Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 18:12:28 +0100 Subject: [PATCH 14/28] Turn on debug mode on the build script --- build.el | 1 + 1 file changed, 1 insertion(+) diff --git a/build.el b/build.el index b817af4..d1988ac 100644 --- a/build.el +++ b/build.el @@ -21,6 +21,7 @@ ;; ;;; Commentary: ;;; Code: +(setq debug-on-error t) (setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3") (setq user-emacs-directory (concat (getenv "HOME") "/.fg42/")) (add-to-list 'load-path (concat (getenv "HOME") "/.fg42/lib")) From c206087956c8c242576700c0d1900d000306587b Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 18:19:59 +0100 Subject: [PATCH 15/28] Add fg42-home to the build script --- build.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build.el b/build.el index d1988ac..e9fab2b 100644 --- a/build.el +++ b/build.el @@ -28,6 +28,9 @@ (require 'fg42) (require 'fpkg) +(setq fg42-home (concat (getenv "HOME") "/.fg42/")) +(setq fg42-tmp (concat fg42-home "/tmp")) + (i-am-god) (disable 'rbenv 'helm 'spell 'linum 'tabbar From 129e23cf0d1ee8b194a72533f40de3dc627292ef Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 18:26:25 +0100 Subject: [PATCH 16/28] Add the default theme settings to the build script --- build.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.el b/build.el index e9fab2b..6650792 100644 --- a/build.el +++ b/build.el @@ -30,7 +30,7 @@ (require 'fpkg) (setq fg42-home (concat (getenv "HOME") "/.fg42/")) (setq fg42-tmp (concat fg42-home "/tmp")) - +(theme themes/color-theme-doom-one) (i-am-god) (disable 'rbenv 'helm 'spell 'linum 'tabbar From 7ca54a8d11c595a9b42857b93186d0d1de606c0f Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 19:09:28 +0100 Subject: [PATCH 17/28] Add enough debug messages to debug CI failures around themes --- build.el | 1 + lib/fg42/base.el | 1 + 2 files changed, 2 insertions(+) diff --git a/build.el b/build.el index 6650792..21ce676 100644 --- a/build.el +++ b/build.el @@ -31,6 +31,7 @@ (setq fg42-home (concat (getenv "HOME") "/.fg42/")) (setq fg42-tmp (concat fg42-home "/tmp")) (theme themes/color-theme-doom-one) + (i-am-god) (disable 'rbenv 'helm 'spell 'linum 'tabbar diff --git a/lib/fg42/base.el b/lib/fg42/base.el index d383a85..0bfeba4 100644 --- a/lib/fg42/base.el +++ b/lib/fg42/base.el @@ -21,6 +21,7 @@ LOCAL should be 't' if theme is on FG42 it self" ;; Functions ------------------------------ (defun load-default-theme () "Load the given theme name." + (message "Load theme %s" default-theme) (require default-theme) ;; Setup the face look up function for spaceline From 77880a437149dd59d876abd61aa536400ce8433f Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 20:59:07 +0100 Subject: [PATCH 18/28] Update the README and the CI script with the new releases --- .gitlab-ci.yml | 14 +++++++++++--- README.md | 21 ++++++++++++++++++++- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 436dead..1ca62c4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,18 +13,26 @@ stages: build-branches: extends: .build + script: + - cd /root/.fg42/ && fg42 -nw --script build.el + - cd /root/ && tar zcf ~/fg42.$CI_COMMIT_REF_NAME.tar.gz .fg42/ + - mv ~/fg42.$CI_COMMIT_REF_NAME.tar.gz /builds/$CI_PROJECT_PATH/ + artifacts: + name: "fg42.$CI_COMMIT_REF_SLUG" + when: on_success + paths: + - fg42.$CI_COMMIT_REF_NAME.tar.gz only: - branches - except: - - tags build-package: extends: .build script: - cd /root/.fg42/ && fg42 -nw --script build.el - - tar zcf ~/fg42.$CI_COMMIT_TAG.tar.gz ~/.fg42/ + - cd /root/ && tar zcf ~/fg42.$CI_COMMIT_TAG.tar.gz .fg42/ - mv ~/fg42.$CI_COMMIT_TAG.tar.gz /builds/$CI_PROJECT_PATH/ artifacts: + name: "fg42.$CI_COMMIT_TAG" when: on_success paths: - fg42.$CI_COMMIT_TAG.tar.gz diff --git a/README.md b/README.md index 3ef4049..f9a4a46 100755 --- a/README.md +++ b/README.md @@ -8,6 +8,10 @@ have a handy code editor then **FG42** is the right choice for you. If you need help, or even want to just say hello, try our **IRC** channel on freenode: **#5hit**. +## Download +* [Latest Stable - 2.31.2](https://gitlab.com/FG42/FG42/-/jobs/artifacts/2.31.1/raw/fg42.2.31.2.tar.gz?job=build-package) +* [Latest Master](https://gitlab.com/FG42/FG42/-/jobs/artifacts/2.31.1/raw/fg42.master.tar.gz?job=build-branches) + ## Dependencies In order to run **FG42** you need **GNU Emacs >= 25**. FG42 uses several extensions internally @@ -15,7 +19,22 @@ which each of the has different external dependencies. To gain more information dependencies ( If we failed to tell you inside the **FG42** ) just run the `describe-extension` command. -## Installation +## Install pre built package + +Download one of the prebuilt packages and follow these instructions: + +```bash +# extract the content of the tarball in your home directory +$ tar zxvf .tar.gz -C ~/ +# You can clone it where ever your want +$ cd ~/.fg42/ +$ make install +# Run fg42, It will download and build some lisp dependencies on the first execution. +$ fg42 +``` + + +## Install from source In order to install **FG42**, issue the following commands: From 3ad45df2353f2f4a21e1727e1c77725ca3ae83d6 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 17 May 2020 21:09:59 +0100 Subject: [PATCH 19/28] Update the readme file with recent information --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f9a4a46..8223c2b 100755 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ have a handy code editor then **FG42** is the right choice for you. If you need help, or even want to just say hello, try our **IRC** channel on freenode: **#5hit**. ## Download -* [Latest Stable - 2.31.2](https://gitlab.com/FG42/FG42/-/jobs/artifacts/2.31.1/raw/fg42.2.31.2.tar.gz?job=build-package) -* [Latest Master](https://gitlab.com/FG42/FG42/-/jobs/artifacts/2.31.1/raw/fg42.master.tar.gz?job=build-branches) +* [Latest Stable - 2.31.2](https://gitlab.com/FG42/FG42/-/jobs/artifacts/2.31.2/raw/fg42.2.31.2.tar.gz?job=build-package) +* [Latest Master](https://gitlab.com/FG42/FG42/-/jobs/artifacts/master/raw/fg42.master.tar.gz?job=build-branches) ## Dependencies @@ -19,7 +19,7 @@ which each of the has different external dependencies. To gain more information dependencies ( If we failed to tell you inside the **FG42** ) just run the `describe-extension` command. -## Install pre built package +## Install a pre built package Download one of the prebuilt packages and follow these instructions: From d28b1d855f7862e02f188ebe7ddaa204d518ed7c Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Tue, 19 May 2020 09:35:52 +0100 Subject: [PATCH 20/28] Fix the installation bug by ensuring the /usr/local/bin/ exists --- .gitignore | 7 ++++++- Makefile | 1 + lib/extensions/rust.el | 1 + lib/extensions/rust/init.el | 6 +++++- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 3a93feb..7969193 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,9 @@ lib/**/*.elc tmp/ test-runner/ .fpkg/ -/fg42-wm \ No newline at end of file +/fg42-wm +projectile-bookmarks.eld +smex-items +elpa/ +bm-repository +.fpkg-v3/ \ No newline at end of file diff --git a/Makefile b/Makefile index 99c3911..48b529b 100644 --- a/Makefile +++ b/Makefile @@ -32,6 +32,7 @@ install: @echo 'FG42_WM=true emacs --name FG42 --no-site-file --no-site-lisp --no-splash --title FG42 -l $$FG42_HOME/fg42-config.el "$$@"' >> ./fg42-wm @chmod +x ./fg42 @chmod +x ./fg42-wm + @sudo mkdir -p /usr/local/bin/ @sudo rm -f /usr/local/bin/fg42 @sudo rm -f /usr/local/bin/fg42-wm @sudo ln -s `pwd`/fg42 /usr/local/bin/fg42 diff --git a/lib/extensions/rust.el b/lib/extensions/rust.el index d9ead04..3844afd 100644 --- a/lib/extensions/rust.el +++ b/lib/extensions/rust.el @@ -9,6 +9,7 @@ (depends-on 'rust-mode) (depends-on 'cargo) (depends-on 'flycheck-rust) + (extension rust :version 0.0.1 :on-initialize extensions/rust-initialize diff --git a/lib/extensions/rust/init.el b/lib/extensions/rust/init.el index 7d6ee7a..76bd078 100644 --- a/lib/extensions/rust/init.el +++ b/lib/extensions/rust/init.el @@ -2,10 +2,14 @@ ;;; Commentary: ;;; Code: + +;;;###autoload (defun extensions/rust-initialize () "Initialize Rust extension." (add-hook 'rust-mode-hook #'lsp) (add-hook 'rust-mode-hook #'cargo-minor-mode) (add-hook 'flycheck-mode-hook #'flycheck-rust-setup)) + + (provide 'extensions/rust/init) -;;; init ends here. +;;; init.el ends here From 48f8b4952f7faf6a747601732fe67a7a3416d93d Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Tue, 19 May 2020 09:36:47 +0100 Subject: [PATCH 21/28] Update README for the new bugfix release --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8223c2b..0d1ae0f 100755 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ have a handy code editor then **FG42** is the right choice for you. If you need help, or even want to just say hello, try our **IRC** channel on freenode: **#5hit**. ## Download -* [Latest Stable - 2.31.2](https://gitlab.com/FG42/FG42/-/jobs/artifacts/2.31.2/raw/fg42.2.31.2.tar.gz?job=build-package) +* [Latest Stable - 2.31.3](https://gitlab.com/FG42/FG42/-/jobs/artifacts/2.31.3/raw/fg42.2.31.3.tar.gz?job=build-package) * [Latest Master](https://gitlab.com/FG42/FG42/-/jobs/artifacts/master/raw/fg42.master.tar.gz?job=build-branches) ## Dependencies From 51414ec8a2947b47f7b77cb4b1a48d6faa44d077 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 14 Jun 2020 20:16:57 +0100 Subject: [PATCH 22/28] Add Rustic instead of rust-mode --- lib/extensions/rust.el | 5 ++--- lib/extensions/rust/init.el | 4 +--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/extensions/rust.el b/lib/extensions/rust.el index 3844afd..0c4e218 100644 --- a/lib/extensions/rust.el +++ b/lib/extensions/rust.el @@ -6,9 +6,8 @@ (require 'extensions/rust/init) ;; dependencies -(depends-on 'rust-mode) -(depends-on 'cargo) -(depends-on 'flycheck-rust) +(depends-on 'rustic) + (extension rust :version 0.0.1 diff --git a/lib/extensions/rust/init.el b/lib/extensions/rust/init.el index 76bd078..99a0b1c 100644 --- a/lib/extensions/rust/init.el +++ b/lib/extensions/rust/init.el @@ -6,9 +6,7 @@ ;;;###autoload (defun extensions/rust-initialize () "Initialize Rust extension." - (add-hook 'rust-mode-hook #'lsp) - (add-hook 'rust-mode-hook #'cargo-minor-mode) - (add-hook 'flycheck-mode-hook #'flycheck-rust-setup)) + (setq rustic-format-trigger 'on-save)) (provide 'extensions/rust/init) From e202c1ec62438632b1cf1366413fe2e9fc78f7d5 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Fri, 19 Jun 2020 11:58:48 +0100 Subject: [PATCH 23/28] Wrap smex in an ability --- lib/extensions/editor/init.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/extensions/editor/init.el b/lib/extensions/editor/init.el index 6f84e26..10d1294 100644 --- a/lib/extensions/editor/init.el +++ b/lib/extensions/editor/init.el @@ -290,8 +290,9 @@ (ido-mode t) - (smex-initialize) - (global-set-key (kbd "M-x") 'smex) + (ability smex () + (smex-initialize) + (global-set-key (kbd "M-x") 'smex)) (flx-ido-mode 1) (setq ido-use-faces nil) From 206cb75b8b8767ee010b63de892276e8ee3c9c49 Mon Sep 17 00:00:00 2001 From: yottanami Date: Tue, 4 Aug 2020 15:18:03 +0200 Subject: [PATCH 24/28] Add Typescript to activate extensions. --- config/fg42.user.el | 1 + 1 file changed, 1 insertion(+) diff --git a/config/fg42.user.el b/config/fg42.user.el index 23bb7c7..06f3fb0 100644 --- a/config/fg42.user.el +++ b/config/fg42.user.el @@ -27,6 +27,7 @@ 'web 'editor-theme 'javascript + 'typescript 'ruby 'clojure 'haskell From 8e9b6968c2a9aeec86a90a24ed5b701084edb725 Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 8 Aug 2020 04:48:49 +0430 Subject: [PATCH 25/28] add whitespace mode to yaml mode hook; --- lib/extensions/development/init.el | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/extensions/development/init.el b/lib/extensions/development/init.el index f1dab33..d965da6 100644 --- a/lib/extensions/development/init.el +++ b/lib/extensions/development/init.el @@ -258,6 +258,7 @@ (ability yaml () "YAML editor." (require 'yaml-mode) + (add-hook 'yaml-mode-hook (lambda () (interactive) (whitespace-mode 1))) (add-to-list 'auto-mode-alist '("\\.yml\\'" . yaml-mode)) (add-to-list 'auto-mode-alist '("\\.sls\\'" . yaml-mode))) From 5bcbfae1c41fa68b2f324837beb2fcd8ceba91fc Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sat, 8 Aug 2020 15:00:36 +0430 Subject: [PATCH 26/28] use buffer-local variable for company-backends in go extension --- lib/extensions/go/init.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/extensions/go/init.el b/lib/extensions/go/init.el index e1f6231..b8f7f02 100644 --- a/lib/extensions/go/init.el +++ b/lib/extensions/go/init.el @@ -7,7 +7,8 @@ "Set's up emacs hooks and turn necessary modes on." (lsp) (with-ability yas - (yas-minor-mode-on)) + (yas-minor-mode-on)) + (setq-local company-backends '(company-capf company-dabbrev company-dabbrev-code)) (add-hook 'before-save-hook #'lsp-format-buffer t t) (add-hook 'before-save-hook #'lsp-organize-imports t t) (add-hook 'go-mode-hook 'go-eldoc-setup) From 3969f9232c418838c129c58fbc9723128de00723 Mon Sep 17 00:00:00 2001 From: Pouya Abbassi Date: Sat, 10 Oct 2020 09:55:57 +0330 Subject: [PATCH 27/28] FG42.org init, using Pelican --- .gitignore | 13 +- website/Makefile | 75 +++ website/README.md | 43 ++ website/content/docs.md | 21 + website/content/pages/.404.md.swp | Bin 0 -> 12288 bytes website/content/pages/404.md | 23 + website/content/pages/release-notes.md | 20 + website/pelicanconf.py | 59 ++ website/publishconf.py | 27 + website/requirements.txt | 17 + website/sass/bulma.sass | 312 +++++++++++ website/sass/sass/.DS_Store | Bin 0 -> 6148 bytes website/sass/sass/base/_all.sass | 5 + website/sass/sass/base/generic.sass | 142 +++++ website/sass/sass/base/helpers.sass | 281 ++++++++++ website/sass/sass/base/minireset.sass | 85 +++ website/sass/sass/components/_all.sass | 15 + website/sass/sass/components/breadcrumb.sass | 75 +++ website/sass/sass/components/card.sass | 79 +++ website/sass/sass/components/dropdown.sass | 81 +++ website/sass/sass/components/level.sass | 77 +++ website/sass/sass/components/list.sass | 39 ++ website/sass/sass/components/media.sass | 48 ++ website/sass/sass/components/menu.sass | 57 ++ website/sass/sass/components/message.sass | 87 +++ website/sass/sass/components/modal.sass | 113 ++++ website/sass/sass/components/navbar.sass | 443 +++++++++++++++ website/sass/sass/components/pagination.sass | 149 ++++++ website/sass/sass/components/panel.sass | 103 ++++ website/sass/sass/components/tabs.sass | 151 ++++++ website/sass/sass/elements/_all.sass | 15 + website/sass/sass/elements/box.sass | 24 + website/sass/sass/elements/button.sass | 305 +++++++++++ website/sass/sass/elements/container.sass | 23 + website/sass/sass/elements/content.sass | 155 ++++++ website/sass/sass/elements/form.sass | 1 + website/sass/sass/elements/icon.sass | 21 + website/sass/sass/elements/image.sass | 69 +++ website/sass/sass/elements/notification.sass | 35 ++ website/sass/sass/elements/other.sass | 39 ++ website/sass/sass/elements/progress.sass | 67 +++ website/sass/sass/elements/table.sass | 127 +++++ website/sass/sass/elements/tag.sass | 121 +++++ website/sass/sass/elements/title.sass | 70 +++ website/sass/sass/form/_all.sass | 8 + website/sass/sass/form/checkbox-radio.sass | 21 + website/sass/sass/form/file.sass | 180 +++++++ website/sass/sass/form/input-textarea.sass | 60 +++ website/sass/sass/form/select.sass | 85 +++ website/sass/sass/form/shared.sass | 55 ++ website/sass/sass/form/tools.sass | 205 +++++++ website/sass/sass/grid/_all.sass | 4 + website/sass/sass/grid/columns.sass | 504 ++++++++++++++++++ website/sass/sass/grid/tiles.sass | 34 ++ website/sass/sass/layout/_all.sass | 5 + website/sass/sass/layout/footer.sass | 9 + website/sass/sass/layout/hero.sass | 143 +++++ website/sass/sass/layout/section.sass | 13 + website/sass/sass/utilities/_all.sass | 8 + website/sass/sass/utilities/animations.sass | 5 + website/sass/sass/utilities/controls.sass | 50 ++ .../sass/utilities/derived-variables.sass | 85 +++ website/sass/sass/utilities/functions.sass | 62 +++ .../sass/utilities/initial-variables.sass | 76 +++ website/sass/sass/utilities/mixins.sass | 262 +++++++++ website/tasks.py | 109 ++++ website/theme/static/css/init | 0 website/theme/static/css/pygment.css | 72 +++ website/theme/static/css/pygment.min.css | 1 + .../fonts/Quicksand/Quicksand-Light.woff2 | Bin 0 -> 11488 bytes .../fonts/Quicksand/Quicksand-Medium.woff2 | Bin 0 -> 13616 bytes .../static/fonts/Roboto/Roboto-Bold.woff2 | Bin 0 -> 8996 bytes .../static/fonts/Roboto/Roboto-Italic.woff2 | Bin 0 -> 9936 bytes .../static/fonts/Roboto/Roboto-Regular.woff2 | Bin 0 -> 8992 bytes .../fonts/Ubuntu_Mono/UbuntuMono-Bold.woff2 | Bin 0 -> 12164 bytes .../Ubuntu_Mono/UbuntuMono-Regular.woff2 | Bin 0 -> 12940 bytes website/theme/static/images/articles/.init | 0 website/theme/static/images/articles/docs.png | Bin 0 -> 50742 bytes .../images/favicon/android-chrome-192x192.png | Bin 0 -> 19379 bytes .../images/favicon/android-chrome-512x512.png | Bin 0 -> 36006 bytes .../images/favicon/apple-touch-icon.png | Bin 0 -> 20046 bytes .../static/images/favicon/favicon-16x16.png | Bin 0 -> 6434 bytes .../static/images/favicon/favicon-32x32.png | Bin 0 -> 7419 bytes .../theme/static/images/favicon/favicon.svg | 1 + .../static/images/favicon/site.webmanifest | 1 + website/theme/static/images/logo.png | Bin 0 -> 7727 bytes website/theme/static/images/pages/404.jpg | Bin 0 -> 61592 bytes website/theme/static/images/pages/pgp.jpg | Bin 0 -> 57573 bytes .../static/images/pages/release-notes.png | Bin 0 -> 50742 bytes website/theme/static/js/fa.min.js | 1 + website/theme/static/js/main.js | 50 ++ website/theme/static/js/main.min.js | 3 + website/theme/templates/archives.html | 22 + website/theme/templates/article.html | 120 +++++ website/theme/templates/author.html | 14 + website/theme/templates/authors.html | 23 + website/theme/templates/base.html | 136 +++++ website/theme/templates/categories.html | 23 + website/theme/templates/category.html | 15 + website/theme/templates/google.html | 9 + website/theme/templates/gosquared.html | 14 + website/theme/templates/index.html | 44 ++ website/theme/templates/page.html | 52 ++ website/theme/templates/pagination.html | 11 + website/theme/templates/period_archives.html | 14 + website/theme/templates/tag.html | 14 + website/theme/templates/tags.html | 23 + website/theme/templates/translations.html | 16 + 108 files changed, 6373 insertions(+), 1 deletion(-) create mode 100644 website/Makefile create mode 100644 website/README.md create mode 100644 website/content/docs.md create mode 100644 website/content/pages/.404.md.swp create mode 100644 website/content/pages/404.md create mode 100644 website/content/pages/release-notes.md create mode 100644 website/pelicanconf.py create mode 100644 website/publishconf.py create mode 100644 website/requirements.txt create mode 100644 website/sass/bulma.sass create mode 100644 website/sass/sass/.DS_Store create mode 100644 website/sass/sass/base/_all.sass create mode 100644 website/sass/sass/base/generic.sass create mode 100644 website/sass/sass/base/helpers.sass create mode 100644 website/sass/sass/base/minireset.sass create mode 100644 website/sass/sass/components/_all.sass create mode 100644 website/sass/sass/components/breadcrumb.sass create mode 100644 website/sass/sass/components/card.sass create mode 100644 website/sass/sass/components/dropdown.sass create mode 100644 website/sass/sass/components/level.sass create mode 100644 website/sass/sass/components/list.sass create mode 100644 website/sass/sass/components/media.sass create mode 100644 website/sass/sass/components/menu.sass create mode 100644 website/sass/sass/components/message.sass create mode 100644 website/sass/sass/components/modal.sass create mode 100644 website/sass/sass/components/navbar.sass create mode 100644 website/sass/sass/components/pagination.sass create mode 100644 website/sass/sass/components/panel.sass create mode 100644 website/sass/sass/components/tabs.sass create mode 100644 website/sass/sass/elements/_all.sass create mode 100644 website/sass/sass/elements/box.sass create mode 100644 website/sass/sass/elements/button.sass create mode 100644 website/sass/sass/elements/container.sass create mode 100644 website/sass/sass/elements/content.sass create mode 100644 website/sass/sass/elements/form.sass create mode 100644 website/sass/sass/elements/icon.sass create mode 100644 website/sass/sass/elements/image.sass create mode 100644 website/sass/sass/elements/notification.sass create mode 100644 website/sass/sass/elements/other.sass create mode 100644 website/sass/sass/elements/progress.sass create mode 100644 website/sass/sass/elements/table.sass create mode 100644 website/sass/sass/elements/tag.sass create mode 100644 website/sass/sass/elements/title.sass create mode 100644 website/sass/sass/form/_all.sass create mode 100644 website/sass/sass/form/checkbox-radio.sass create mode 100644 website/sass/sass/form/file.sass create mode 100644 website/sass/sass/form/input-textarea.sass create mode 100644 website/sass/sass/form/select.sass create mode 100644 website/sass/sass/form/shared.sass create mode 100644 website/sass/sass/form/tools.sass create mode 100644 website/sass/sass/grid/_all.sass create mode 100644 website/sass/sass/grid/columns.sass create mode 100644 website/sass/sass/grid/tiles.sass create mode 100644 website/sass/sass/layout/_all.sass create mode 100644 website/sass/sass/layout/footer.sass create mode 100644 website/sass/sass/layout/hero.sass create mode 100644 website/sass/sass/layout/section.sass create mode 100644 website/sass/sass/utilities/_all.sass create mode 100644 website/sass/sass/utilities/animations.sass create mode 100644 website/sass/sass/utilities/controls.sass create mode 100644 website/sass/sass/utilities/derived-variables.sass create mode 100644 website/sass/sass/utilities/functions.sass create mode 100644 website/sass/sass/utilities/initial-variables.sass create mode 100644 website/sass/sass/utilities/mixins.sass create mode 100644 website/tasks.py create mode 100644 website/theme/static/css/init create mode 100644 website/theme/static/css/pygment.css create mode 100644 website/theme/static/css/pygment.min.css create mode 100644 website/theme/static/fonts/Quicksand/Quicksand-Light.woff2 create mode 100644 website/theme/static/fonts/Quicksand/Quicksand-Medium.woff2 create mode 100644 website/theme/static/fonts/Roboto/Roboto-Bold.woff2 create mode 100644 website/theme/static/fonts/Roboto/Roboto-Italic.woff2 create mode 100644 website/theme/static/fonts/Roboto/Roboto-Regular.woff2 create mode 100644 website/theme/static/fonts/Ubuntu_Mono/UbuntuMono-Bold.woff2 create mode 100644 website/theme/static/fonts/Ubuntu_Mono/UbuntuMono-Regular.woff2 create mode 100644 website/theme/static/images/articles/.init create mode 100644 website/theme/static/images/articles/docs.png create mode 100644 website/theme/static/images/favicon/android-chrome-192x192.png create mode 100644 website/theme/static/images/favicon/android-chrome-512x512.png create mode 100644 website/theme/static/images/favicon/apple-touch-icon.png create mode 100644 website/theme/static/images/favicon/favicon-16x16.png create mode 100644 website/theme/static/images/favicon/favicon-32x32.png create mode 100644 website/theme/static/images/favicon/favicon.svg create mode 100644 website/theme/static/images/favicon/site.webmanifest create mode 100644 website/theme/static/images/logo.png create mode 100644 website/theme/static/images/pages/404.jpg create mode 100644 website/theme/static/images/pages/pgp.jpg create mode 100644 website/theme/static/images/pages/release-notes.png create mode 100644 website/theme/static/js/fa.min.js create mode 100644 website/theme/static/js/main.js create mode 100644 website/theme/static/js/main.min.js create mode 100644 website/theme/templates/archives.html create mode 100644 website/theme/templates/article.html create mode 100644 website/theme/templates/author.html create mode 100644 website/theme/templates/authors.html create mode 100644 website/theme/templates/base.html create mode 100644 website/theme/templates/categories.html create mode 100644 website/theme/templates/category.html create mode 100644 website/theme/templates/google.html create mode 100644 website/theme/templates/gosquared.html create mode 100644 website/theme/templates/index.html create mode 100644 website/theme/templates/page.html create mode 100644 website/theme/templates/pagination.html create mode 100644 website/theme/templates/period_archives.html create mode 100644 website/theme/templates/tag.html create mode 100644 website/theme/templates/tags.html create mode 100644 website/theme/templates/translations.html diff --git a/.gitignore b/.gitignore index 7969193..345b979 100644 --- a/.gitignore +++ b/.gitignore @@ -29,4 +29,15 @@ projectile-bookmarks.eld smex-items elpa/ bm-repository -.fpkg-v3/ \ No newline at end of file +.fpkg-v3/ +website/__pycache__/ +website/*.pyc +website/.sass-cache/ +website/theme/static/css/bulma.css +website/output/ +website/public/ +website/*.old.jpg +website/pelican-plugins/ +website/.*.swp +website/*~ +#*# diff --git a/website/Makefile b/website/Makefile new file mode 100644 index 0000000..6fcf43f --- /dev/null +++ b/website/Makefile @@ -0,0 +1,75 @@ +PY?=python3 +PELICAN?=pelican +PELICANOPTS= + +BASEDIR=$(CURDIR) +INPUTDIR=$(BASEDIR)/content +OUTPUTDIR=$(BASEDIR)/public +CONFFILE=$(BASEDIR)/pelicanconf.py +PUBLISHCONF=$(BASEDIR)/publishconf.py + + +DEBUG ?= 0 +ifeq ($(DEBUG), 1) + PELICANOPTS += -D +endif + +RELATIVE ?= 0 +ifeq ($(RELATIVE), 1) + PELICANOPTS += --relative-urls +endif + +help: + @echo 'Makefile for a pelican Web site ' + @echo ' ' + @echo 'Usage: ' + @echo ' make html (re)generate the web site ' + @echo ' make clean remove the generated files ' + @echo ' make regenerate regenerate files upon modification ' + @echo ' make publish generate using production settings ' + @echo ' make serve [PORT=8000] serve site at http://localhost:8000' + @echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 ' + @echo ' make devserver [PORT=8000] serve and regenerate together ' + @echo ' make ssh_upload upload the web site via SSH ' + @echo ' make rsync_upload upload the web site via rsync+ssh ' + @echo ' ' + @echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html ' + @echo 'Set the RELATIVE variable to 1 to enable relative urls ' + @echo ' ' + +html: + $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) + +clean: + [ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR) + +regenerate: + $(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) + +serve: +ifdef PORT + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) +else + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) +endif + +serve-global: +ifdef SERVER + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) -b $(SERVER) +else + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) -b 0.0.0.0 +endif + + +devserver: +ifdef PORT + $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) +else + $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) +endif + +publish: + $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS) + + +.PHONY: html help clean regenerate serve serve-global devserver publish diff --git a/website/README.md b/website/README.md new file mode 100644 index 0000000..c9653e0 --- /dev/null +++ b/website/README.md @@ -0,0 +1,43 @@ +![Build Status](https://gitlab.com/pouya-abbassi/pouyacode/badges/master/build.svg) + +--- + +[FG42](https://fg42.org) built using [Pelican](https://blog.getpelican.com) & [Bulma](https://bulma.io). + +## Build + +``` +pip install -r requirements.txt +git clone git@github.com:getpelican/pelican-plugins.git +make publish +``` + +This will create `public` directory contaning all static files. + +## Email Obfuscation +I use [ROT13](https://en.wikipedia.org/wiki/ROT13) to obfuscate email adresses. +So email adresses that would be visible to users should be generated using this command (or similar tools): + +``` +echo "pcode@protonmail.com" | tr 'A-Za-z' 'N-ZA-Mn-za-m' +#or +tr 'A-Za-z' 'N-ZA-Mn-za-m' <<< "pcode@protonmail.com" +``` + +They are then processed on user's browser using a simple js function. + +## Sample Pages +There is a sample page at `content/docs.md` that has a metadata `status: hidden`. +Remove this metadata to see it in the index page. This page is just for demo purpose. + +Also there are two pages inside `content/pages/` directory with metadata `error: true`. +This makes the background to stretch and fill the page. +The `content/pages/release-notes.md` is also just for demo purpose. + +## Images +Images for articles and pages should be stored at `theme/static/images/articles/` and `theme/static/images/pages/` directory. +These images should be named after their page title so it would be easier to manage. + +## Configs +Development config file is `pelicanconf.py` and the deployment config file is `publishconf.py`. +`SITEURL` and `PLUGINS` are two most important lines of those files. diff --git a/website/content/docs.md b/website/content/docs.md new file mode 100644 index 0000000..556a5f3 --- /dev/null +++ b/website/content/docs.md @@ -0,0 +1,21 @@ +Title: Docs +Description: of Future Gadget 42 +Date: 2020-05-28 05:57:59 +category: Docs +image: docs.png +icon: far fa-clipboard +status: hidden + + +## Title +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + +| Syntax | Description | +| ----------- | ----------- | +| Header | Title | +| Paragraph | Text | + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + +--- +*Image was the preceding FG42 logo.* diff --git a/website/content/pages/.404.md.swp b/website/content/pages/.404.md.swp new file mode 100644 index 0000000000000000000000000000000000000000..aebe8d1b58e2bb182a7069bd02514592ad49525d GIT binary patch literal 12288 zcmeI2Pm2^s7{<%!EisB7a(#^fb+EhV&x-2=5`?hp93+y}fGo>W(_J%NZckOGs(PEb zM9JNoN56w7uYLjj0$#o6m{ShsshQaXvcX-62_(G5JoHSxRnPm@ueuwC?s50~(QR5! zdjjpO5IfJdcYnP!6h9AysBJTsvHyrx=SK`!g@0TaW>X!qjm@=w)~d1BL1no$L79-% za;ki`)?G_y#qk_@6cb#NwR)g4Enup9Dnii3v~Y6y<<(~K}>)NFaajO1egF5 zU;<2l3H(0@g!+Vdh^2hATFz&yNfC>Bu z2}nF?fBuOO$!Qdi=l=))|9?3n#B1mU^bC3mJ%)aQYREzcT7w4At51b^33&{F#S%OAaMrLn@3M*D=2OJ zmzzi<#8-45-OCERoWoTjN2xvG6H`pIkrh%qqs?@A9c|homJv$p6}6?sdc5`_rD!(_ z%b5qU+Ip|Nr&jv{*I*njomyB=ok9&h(8Suxr*sP@*3GGuo_uLrLrttf`!pJFVFmsw z65Fd7vA?j;j^ePfnraj4LwwxC`qe5@+g7<)UsDAv$*e*JvbrV@+M0C1WJ4Ql#Uc-` zLTU`4I;<|1BLDDT+8ayCV22{ikpUnb=9ntBP}Q#VLyE7t$6XN0IqQZ